#!/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
|