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
#!/usr/bin/python
# -*- coding: GBK -*-
 
##@package ClearItem
# Çå³ý±³°üÎïÆ·
#
# @author Mark
# @date 2010-4-21
# @version 1.2
#
# ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
#
# Ä£¿éÏêϸ˵Ã÷
# @change: "2012-06-27 15:30" whx Ôö¼ÓsetCount´íÎóoss¼Ç¼
# @change: "2012-08-10 15:00" zhangxi ÐÞ¸ÄOSS¼Ç¼
 
import IPY_GameWorld
import Lang
import ItemControler
 
"""Version = 2012-08-10 15:00"""
## GMÃüÁîÖ´ÐÐÈë¿Ú
#  @param curPlayer µ±Ç°Íæ¼Ò
#  @param playerList ²ÎÊýÁбí [] [index] [index, count]
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def OnExec(curPlayer,playerList):
    if not len( playerList ):
        __DoLogic_ClearAllItem( curPlayer )
        return
    
    if len( playerList ) == 1:
        __DoLogic_ClearSingItem( curPlayer , int(playerList[0])  )
        return
    
    if len( playerList ) == 2:
        __DoLogic_ClearSingItem_Count( curPlayer , int(playerList[0]) , int(playerList[1])  )
    
    return True
 
## Çå³ý¹Ì¶¨ÊýÁ¿µÄ±³°üij¸ö¸ñ×Ó
#  @param curPlayer µ±Ç°Íæ¼Ò
#  @param itemIndex ±³°üË÷Òý
#  @param itemCount Çå³ýÊýÁ¿
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def __DoLogic_ClearSingItem_Count( curPlayer , itemIndex , itemCount  ):
    backPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
    curItem = backPack.GetAt( itemIndex )
    
    if not curItem or curItem.IsEmpty():
        return
    
    if curItem.GetCount() < itemCount:
        curItem.Clear()
    else:
        ItemControler.SetItemCount(curItem, curItem.GetCount() - itemCount, curPlayer.GetPlayerID(), 
                                   curPlayer.GetAccID(), curPlayer.GetPlayerName())
    
    return
 
## Çå³ýËùÓб³°üÎïÆ·
#  @param curPlayer µ±Ç°Íæ¼Ò
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def __DoLogic_ClearAllItem( curPlayer ):
    
    backPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
    
    for i in range(backPack.GetCount()):
        curItem = backPack.GetAt(i)
        
        if not curItem or curItem.IsEmpty():
            continue
        
        curItem.Clear()
    
    return
 
## Çå³ý±³°üijË÷ÒýµÄÎïÆ·
#  @param curPlayer µ±Ç°Íæ¼Ò
#  @param itemIndex ±³°üË÷Òý
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def __DoLogic_ClearSingItem( curPlayer , itemIndex ):
    backPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
    curItem = backPack.GetAt( itemIndex )
    
    if not curItem or curItem.IsEmpty():
        return
    
    curItem.Clear()
    return