#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GM.Commands.Gubao # # @todo:¹Å±¦ # @author hxp # @date 2025-10-11 # @version 1.0 # # ÏêϸÃèÊö: ¹Å±¦ # #------------------------------------------------------------------------------- #"""Version = 2025-10-11 21:00""" #------------------------------------------------------------------------------- import GameWorld import IpyGameDataPY import ItemControler import PlayerGubao def OnExec(curPlayer, msgList): if not msgList: GameWorld.DebugAnswer(curPlayer, "ÖØÖùű¦: Gubao 0") GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦: Gubao ¹Å±¦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() itemID = ipyData.GetUnlockItemID() if ItemControler.GetItemCountByID(curPlayer, itemID): ItemControler.SetItemCountByID(curPlayer, itemID, 0) # ÖØÖà if not PlayerGubao.IsGubaoActivated(curPlayer, gubaoID): continue if gubaoID not in gubaoIDList: gubaoIDList.append(gubaoID) PlayerGubao.SetGubaoInfo(curPlayer, gubaoID, 0, 0, 0) GameWorld.DebugAnswer(curPlayer, "ÖØÖùű¦OK") else: return 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 itemID = ipyData.GetUnlockItemID() ItemControler.SetItemCountByID(curPlayer, itemID, pieceCount) GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦(%s)Ë鯬ID:%s,ÊýÁ¿:%s" % (gubaoID, itemID, pieceCount)) return else: gubaoID = value1 lv = msgList[1] if len(msgList) > 1 else 1 star = msgList[2] if len(msgList) > 2 else 0 layer = msgList[3] if len(msgList) > 3 else 0 ipyData = IpyGameDataPY.GetIpyGameData("Gubao", gubaoID) if not ipyData: GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦!gubaoID=%s" % gubaoID) return quality = ipyData.GetGubaoQuality() layer = min(layer, ipyData.GetSpecEffLayerMax()) starIpyDataList = IpyGameDataPY.GetIpyGameDataList("GubaoStar", quality) if starIpyDataList: lastStarIpyData = starIpyDataList[-1] star = min(star, lastStarIpyData.GetGubaoStar()) lvIpyDataList = IpyGameDataPY.GetIpyGameDataList("GubaoLV", quality) if lvIpyDataList: lastLVIpyData = lvIpyDataList[-1] lv = min(lv, lastLVIpyData.GetLessEqualLV()) GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦:%s,¼¶(%s),ÐÇ(%s),²ã(%s)" % (gubaoID, lv, star, layer)) PlayerGubao.SetGubaoInfo(curPlayer, gubaoID, lv, star, layer) gubaoIDList.append(gubaoID) PlayerGubao.RefreshGubaoAttr(curPlayer) PlayerGubao.Sync_GubaoInfo(curPlayer, gubaoIDList) return