| #!/usr/bin/python | 
| # -*- coding: GBK -*- | 
| #------------------------------------------------------------------------------- | 
| # | 
| ##@package GM.Commands.CustomAward | 
| # | 
| # @todo:×Ô¶¨Òå½±Àø | 
| # @author hxp | 
| # @date 2023-09-22 | 
| # @version 1.0 | 
| # | 
| # ÏêϸÃèÊö: ×Ô¶¨Òå½±Àø | 
| # | 
| #------------------------------------------------------------------------------- | 
| #"""Version = 2023-09-22 13:30""" | 
| #------------------------------------------------------------------------------- | 
|   | 
| import GameWorld | 
| import PlayerCustomAward | 
| import IpyGameDataPY | 
| import PlayerControl | 
| import ChConfig | 
|   | 
| ## GMÃüÁîÖ´ÐÐÈë¿Ú | 
| #  @param curPlayer µ±Ç°Íæ¼Ò | 
| #  @param msgList ²ÎÊýÁбí [] | 
| #  @return None | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷. | 
| def OnExec(curPlayer, msgList): | 
|     if not msgList: | 
|         GameWorld.DebugAnswer(curPlayer, "ÖØÖÃËùÓÐ: CustomAward 0") | 
|         GameWorld.DebugAnswer(curPlayer, "ÉèÖý±Àø: CustomAward ID ÊÇ·ñ¿ÉÁì  ÊÇ·ñÒÑÁì") | 
|         return | 
|      | 
|     cmdType = msgList[0] | 
|     if cmdType == 0: | 
|         awardIDMax = 0 | 
|         ipyDataMgr = IpyGameDataPY.IPY_Data() | 
|         for index in range(ipyDataMgr.GetCustomAwardCount()): | 
|             ipyData = ipyDataMgr.GetCustomAwardByIndex(index) | 
|             if awardIDMax < ipyData.GetAwardID(): | 
|                 awardIDMax = ipyData.GetAwardID() | 
|                  | 
|         keyNumMax = GameWorld.GetDictKeyNumByBit(awardIDMax) | 
|         for keyNum in range(keyNumMax + 1): | 
|             PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CustomAwardCanGet % keyNum, 0) | 
|             PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CustomAwardGetState % keyNum, 0) | 
|              | 
|         PlayerCustomAward.Sync_CustomAwardInfo(curPlayer, None, True) | 
|         GameWorld.DebugAnswer(curPlayer, "ÖØÖÃOK") | 
|     else: | 
|         awardID = cmdType | 
|         canGet = msgList[1] if len(msgList) > 1 else 0 | 
|         getState = msgList[2] if len(msgList) > 2 else 0 | 
|         ipyData = IpyGameDataPY.GetIpyGameData("CustomAward", awardID) | 
|         if not ipyData: | 
|             GameWorld.DebugAnswer(curPlayer, "²»´æÔڸý±ÀøID:%s" % awardID) | 
|             return | 
|         GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_CustomAwardCanGet, awardID, canGet) | 
|         GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_CustomAwardGetState, awardID, getState) | 
|         PlayerCustomAward.Sync_CustomAwardInfo(curPlayer, awardID, True) | 
|         GameWorld.DebugAnswer(curPlayer, "½±ÀøID:%s,¿ÉÁì:%s,ÒÑÁì:%s" % (awardID, canGet, getState)) | 
|          | 
|     return |