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