#!/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)
|
|
curPlayer.SetDict(ChConfig.Def_PlayerKey_FruitFightPowerEx % (funcIndex), 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, PlayerAttrFruit.GetMaxEatCnt(curPlayer, itemID)])
|
|
PlayerAttrFruit.Sync_AttrFruitEatCnt(curPlayer)
|
|
# Ë¢ÐÂÊôÐÔ
|
PlayerControl.PlayerControl(curPlayer).ReCalcAllState()
|
|
for itemID, itemCount in giveFruitItemList:
|
if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem]):
|
break
|
GameWorld.DebugAnswer(curPlayer, "OK!")
|
return
|
|