#!/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-ÖïÏÉ;35-ÖïÏÉ×°±¸;") 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