hxp
2023-02-08 cb1d20b4aff8ca422a12a18f024a65b201687ec0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/usr/bin/python
# -*- coding: GBK -*-
 
##@package ClearPack
# Çå³ýÖ¸¶¨°ü¹üÎïÆ·
#
# @author Mark
# @date 2010-4-21
# @version 1.3
#
# ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
# @change: "2012-06-27 15:30" whx Ôö¼ÓsetCount´íÎóoss¼Ç¼
# @change: "2012-08-10 15:00" zhangxi ÐÞ¸ÄOSS¼Ç¼
# @change: "2013-07-04 10:00" Alee ÐÂÔö±³°ü
#---------------------------------------------------------------------
#"""Version = 2013-07-04 10:00"""
#---------------------------------------------------------------------
import GameWorld
import ItemControler
import ShareDefine
 
## GMÃüÁîÖ´ÐÐÈë¿Ú
#  @param curPlayer µ±Ç°Íæ¼Ò
#  @param playerList ²ÎÊýÁбí [¡¾curPlayer , packIndex¡¿ , itemID , itemCount]
#  @return None or True
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def OnExec(curPlayer, playerList):
    if not playerList:
        GameWorld.DebugAnswer(curPlayer, "±³°üÀàÐÍ:1-×°±¸;2-±³°ü;5-²Ö¿â;30-Ѱ±¦;32-ÉñÊÞ;33-ÉñÊÞ×°±¸;34-À¬»øÊÕ¼¯")
        return
    
    if len(playerList) == 1:
        GameWorld.DebugAnswer(curPlayer, "Çå¿Õ±³°ü: %s" % playerList[0])
        __DoLogic_Clear_Pack( curPlayer , int(playerList[0]) )
        return
    
    if len(playerList) == 2:
        __DoLogic_Clear_Pack_SingItem( curPlayer , int(playerList[0]) , int( playerList[1] ) )
        return
    
    if len(playerList) == 3:
        __DoLogic_Clear_Pack_SingItem_Count( curPlayer , int(playerList[0]) , int( playerList[1]) , int( playerList[2] ) )
        return
   
    return True
 
## É¾³ý°ü¹üÖÐÖ¸¶¨IDµÄÎïÆ· º¬ÊýÁ¿
#  @param curPlayer µ±Ç°Íæ¼Ò
#  @param packIndex ±³°üÀàÐÍË÷Òý
#  @param itemID ÎïÆ·ID
#  @param itemCount ÎïÆ·ÊýÁ¿
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def __DoLogic_Clear_Pack_SingItem_Count( curPlayer , packIndex , itemID , itemCount ):
    if packIndex < 0 or packIndex >= ShareDefine.rptMax:
        return
    
    backPack = curPlayer.GetItemManager().GetPack(packIndex)
    for i in range(backPack.GetCount()):
        curItem = backPack.GetAt(i)
        
        if not curItem or curItem.IsEmpty():
            continue
        
        if curItem.GetItemTypeID() != itemID:
            continue
        
        if curItem.GetCount() <= itemCount:
            curItem.Clear()
        else:
            ItemControler.SetItemCount(curItem, curItem.GetCount() - itemCount, 
                                       curPlayer.GetPlayerID(), curPlayer.GetAccID(), 
                                       curPlayer.GetPlayerName())
        
    return
 
## É¾³ý°ü¹üÖÐÖ¸¶¨IDµÄÎïÆ· 
#  @param curPlayer µ±Ç°Íæ¼Ò
#  @param packIndex ±³°üÀàÐÍË÷Òý
#  @param itemID ÎïÆ·ID
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def __DoLogic_Clear_Pack_SingItem( curPlayer , packIndex , itemID ):
    if packIndex < 0 or packIndex >= ShareDefine.rptMax:
        return
    
    backPack = curPlayer.GetItemManager().GetPack(packIndex)
    for i in range(backPack.GetCount()):
        curItem = backPack.GetAt(i)
        
        if not curItem or curItem.IsEmpty():
            continue
        
        if curItem.GetItemTypeID() != itemID:
            continue
        
        curItem.Clear()
    
    return
 
## É¾³ý°ü¹üÖÐËùÓеÄÎïÆ·
#  @param curPlayer µ±Ç°Íæ¼Ò
#  @param packIndex ±³°üÀàÐÍË÷Òý
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def __DoLogic_Clear_Pack( curPlayer , packIndex ):
    if packIndex < 0 or packIndex >= ShareDefine.rptMax:
        return
    
    backPack = curPlayer.GetItemManager().GetPack(packIndex)
    for i in range(backPack.GetCount()):
        curItem = backPack.GetAt(i)
        
        if not curItem or curItem.IsEmpty():
            continue
        
        curItem.Clear()
    return