| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| ##@package GM.Commands.ClearFruitAttr  | 
| #  | 
| # @todo:ÖØÖÃÊôÐÔ¹ûʵÊý¾Ý  | 
| # @author hxp  | 
| # @date 2014-11-4  | 
| # @version 1.1  | 
| #  | 
| # @change: "2014-12-04 15:30" hxp ÊôÐÔ¹ûʵ֧³Ö°´¸öÊý»ò°´ÊôÐÔµã¿ØÖÆÉÏÏÞ  | 
| #  | 
| # ÏêϸÃèÊö: ÖØÖÃÊôÐÔ¹ûʵÊý¾Ý  | 
| #  | 
| #---------------------------------------------------------------------  | 
| #"""Version = 2014-12-04 15:30"""  | 
| #---------------------------------------------------------------------  | 
|   | 
| import ChConfig  | 
| import GameWorld  | 
| import IpyGameDataPY  | 
| import PlayerControl  | 
| import PlayerAttrFruit  | 
| import ItemControler  | 
| import IPY_GameWorld  | 
| #---------------------------------------------------------------------  | 
| #È«¾Ö±äÁ¿  | 
| #---------------------------------------------------------------------  | 
|   | 
| #---------------------------------------------------------------------  | 
| #Â߼ʵÏÖ  | 
| ## GMÃüÁîÖ´ÐÐÈë¿Ú  | 
| #  @param curPlayer µ±Ç°Íæ¼Ò  | 
| #  @param list ²ÎÊýÁбí [npcID]  | 
| #  @return None  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def OnExec(curPlayer, paramList):  | 
|       | 
|     clearFuncIndex = paramList[0] if len(paramList) > 0 else -1  | 
|     isGiveFruitItem = paramList[1] if len(paramList) > 1 else 0  | 
|     if clearFuncIndex == 99:  | 
|         clearFuncIndex = -1  | 
|         isGiveFruitItem = 1  | 
|           | 
|     giveFruitItemList = []  | 
|       | 
|     ipyDataMgr = IpyGameDataPY.IPY_Data()  | 
|     for i in xrange(ipyDataMgr.GetAttrFruitCount()):  | 
|         ipyData = ipyDataMgr.GetAttrFruitByIndex(i)  | 
|         itemID = ipyData.GetID()  | 
|         funcIndex = ipyData.GetFuncID()  | 
|         limitType = PlayerAttrFruit.Def_LimitType_Cnt  | 
|           | 
|         if clearFuncIndex not in [-1, funcIndex]:  | 
|             continue  | 
|           | 
|         # ÖØÖøÃÎïÆ·ÒÑʹÓøöÊý/ÊôÐÔ  | 
|         if limitType == PlayerAttrFruit.Def_LimitType_Cnt:  | 
|             PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_AttrFruitEatCnt % itemID, 0)  | 
|         elif limitType == PlayerAttrFruit.Def_LimitType_Attr:  | 
|             PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_AttrFruitAddValue % itemID, 0)  | 
|           | 
|         itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)  | 
|         # ÖØÖøÃÎïÆ·Ëù¼ÓµÄÊôÐÔÖµ  | 
|         if itemData:  | 
|             for i in range(itemData.GetEffectCount()):  | 
|                 curEffect = itemData.GetEffectByIndex(i)  | 
|                 effectID = curEffect.GetEffectID()  | 
|                   | 
|                 if effectID not in ChConfig.ItemEffect_AttrDict:  | 
|                     continue  | 
|                   | 
|                 attrKey = ChConfig.Def_PlayerKey_FruitAttr % (funcIndex, effectID)  | 
|                 curPlayer.SetDict(attrKey, 0)  | 
|                   | 
|             if isGiveFruitItem:  | 
|                 giveFruitItemList.append([itemID, ipyData.GetMaxUseCnt()])  | 
|                   | 
|     PlayerAttrFruit.Sync_AttrFruitEatCnt(curPlayer)  | 
|       | 
|     # Ë¢ÐÂÊôÐÔ  | 
|     PlayerControl.PlayerControl(curPlayer).ReCalcAllState()  | 
|       | 
|     for itemID, itemCount in giveFruitItemList:  | 
|         if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, True, [IPY_GameWorld.rptItem]):  | 
|             break  | 
|     GameWorld.DebugAnswer(curPlayer, "OK!")  | 
|     return  | 
|   |