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