#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GM.Commands.Gubao # # @todo:¹Å±¦ # @author hxp # @date 2023-01-5 # @version 1.0 # # ÏêϸÃèÊö: ¹Å±¦ # #------------------------------------------------------------------------------- #"""Version = 2023-01-5 15:30""" #------------------------------------------------------------------------------- import GameWorld import IpyGameDataPY import PlayerGubao import PlayerControl import ChConfig #--------------------------------------------------------------------- #Âß¼­ÊµÏÖ ## GMÃüÁîÖ´ÐÐÈë¿Ú # @param curPlayer µ±Ç°Íæ¼Ò # @param msgList ²ÎÊýÁбí # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def OnExec(curPlayer, msgList): if not msgList: GameWorld.DebugAnswer(curPlayer, "ÖØÖùű¦: Gubao 0") GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦: Gubao ¹Å±¦ID µÈ¼¶ ÐǼ¶") GameWorld.DebugAnswer(curPlayer, "ÉèÖÃЧ¹û: Gubao e ¹Å±¦ID Ч¹ûÀàÐÍ ½ø¶ÈÖµ") GameWorld.DebugAnswer(curPlayer, "ÉèÖÃË鯬: Gubao p ¹Å±¦ID ÊýÁ¿") return gubaoIDList = [] value1 = msgList[0] if len(msgList) == 1: if msgList[0] == 0: ipyDataMgr = IpyGameDataPY.IPY_Data() for index in range(ipyDataMgr.GetGubaoCount()): ipyData = ipyDataMgr.GetGubaoByIndex(index) gubaoID = ipyData.GetGubaoID() if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GubaoPiece % gubaoID): PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GubaoPiece % gubaoID, 0) if gubaoID not in gubaoIDList: gubaoIDList.append(gubaoID) _, star = PlayerGubao.GetGubaoLVInfo(curPlayer, gubaoID) if not star: continue if gubaoID not in gubaoIDList: gubaoIDList.append(gubaoID) PlayerGubao.SetGubaoLVInfo(curPlayer, gubaoID, 0, 0) for effType in PlayerGubao.NeedGubaoItemEffValueTypeList: PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GubaoItemEffValue % (gubaoID, effType), 0) PlayerGubao.Sync_GubaoItemEffInfo(curPlayer, force=True) GameWorld.DebugAnswer(curPlayer, "ÖØÖùű¦OK") elif value1 == "p": gubaoID = msgList[1] if len(msgList) > 1 else 0 pieceCount = msgList[2] if len(msgList) > 2 else 0 ipyData = IpyGameDataPY.GetIpyGameData("Gubao", gubaoID) if not ipyData: GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦!gubaoID=%s" % gubaoID) return PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GubaoPiece % gubaoID, pieceCount) GameWorld.DebugAnswer(curPlayer, "ÉèÖÃË鯬ÊýÁ¿: ID:%s,ÊýÁ¿:%s" % (gubaoID, pieceCount)) PlayerGubao.Sync_GubaoPieceInfo(curPlayer, [gubaoID]) return elif len(msgList) == 3: gubaoID, lv, star = msgList ipyData = IpyGameDataPY.GetIpyGameData("Gubao", gubaoID) if not ipyData: GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦!gubaoID=%s" % gubaoID) return starIpyData = IpyGameDataPY.GetIpyGameData("GubaoStar", gubaoID, star) if not starIpyData: GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦ÐǼ¶!gubaoID=%s,star=%s" % (gubaoID, star)) return gubaoType = ipyData.GetGubaoType() quality = ipyData.GetGubaoQuality() lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", gubaoType, quality, lv) if not lvIpyData: GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦Æ·Öʵȼ¶!gubaoID=%s,gubaoType=%s,quality=%s,lv=%s" % (gubaoID, gubaoType, quality, lv)) return GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦:%s,µÈ¼¶(%s),ÐÇ(%s)" % (gubaoID, lv, star)) PlayerGubao.SetGubaoLVInfo(curPlayer, gubaoID, lv, star) gubaoIDList.append(gubaoID) elif value1 == "e": if len(msgList) != 4: return _, gubaoID, effType, effValue = msgList if effType not in PlayerGubao.NeedGubaoItemEffValueTypeList: GameWorld.DebugAnswer(curPlayer, "¹Å±¦Ð§¹ûÖµÀàÐͽö°üº¬:%s" % str(PlayerGubao.NeedGubaoItemEffValueTypeList)) return ipyData = IpyGameDataPY.GetIpyGameData("Gubao", gubaoID) if not ipyData: GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦!gubaoID=%s" % gubaoID) return PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GubaoItemEffValue % (gubaoID, effType), effValue) PlayerGubao.Sync_GubaoItemEffInfo(curPlayer, gubaoID, effType, True) GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦:%s,Ч¹ûÀàÐÍ(%s),Öµ(%s)" % (gubaoID, effType, effValue)) else: return PlayerGubao.RefreshGubaoAttr(curPlayer) PlayerGubao.Sync_GubaoInfo(curPlayer, gubaoIDList) PlayerGubao.Sync_GubaoPieceInfo(curPlayer, gubaoIDList) return