#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GM.Commands.Hero # # @todo:Î佫ӢÐÛ # @author hxp # @date 2025-06-11 # @version 1.0 # # ÏêϸÃèÊö: Î佫ӢÐÛ # #------------------------------------------------------------------------------- #"""Version = 2025-06-11 11:00""" #------------------------------------------------------------------------------- import PlayerHero import ShareDefine import IpyGameDataPY import PlayerControl import GameWorld import ChConfig ## GMÃüÁîÖ´ÐÐÈë¿Ú # @param curPlayer µ±Ç°Íæ¼Ò # @param msgList ²ÎÊýÁбí # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def OnExec(curPlayer, msgList): if not msgList: GameWorld.DebugAnswer(curPlayer, "Î佫֨ÖÃ: Hero 0 ±³°üλÖÃ") GameWorld.DebugAnswer(curPlayer, "Î佫µÈ¼¶: Hero l ±³°üλÖà ÉèÖõȼ¶") GameWorld.DebugAnswer(curPlayer, "Î佫ÉýÐÇ: Hero s ±³°üλÖà ÉýxÐÇ") GameWorld.DebugAnswer(curPlayer, "Îä½«Í»ÆÆ: Hero b ±³°üλÖà ÉèÖõȼ¶") GameWorld.DebugAnswer(curPlayer, "Î佫¾õÐÑ: Hero a ±³°üλÖà ÉèÖõȼ¶") GameWorld.DebugAnswer(curPlayer, "Î佫ͼ¼ø: Hero t Î佫ID ͼ¼øÐǼ¶ ͼ¼øÍ»ÆÆµÈ¼¶") GameWorld.DebugAnswer(curPlayer, "ÖØÖÃͼ¼ø: Hero t 0") GameWorld.DebugAnswer(curPlayer, "Î佫Ƥ·ô: Hero sk Î佫ID Ƥ·ôË÷Òý ÊÇ·ñ½âËø") GameWorld.DebugAnswer(curPlayer, "Çå¿ÕÎ佫: ClearPack 35") GameWorld.DebugAnswer(curPlayer, "ÐÂÔöÎ佫: MakeItemCount Ó¢ÐÛID [¸öÊý]") return value = msgList[0] value2 = msgList[1] if len(msgList) > 1 else 0 # ͼ¼ø if value == "t": if not value2: heroIDList = [] ipyDataMgr = IpyGameDataPY.IPY_Data() for index in range(ipyDataMgr.GetHeroCount()): ipyData = ipyDataMgr.GetHeroByIndex(index) heroIDList.append(ipyData.GetHeroID()) else: heroIDList = [value2] if value2 == 0: syncHeroIDList = [] for heroID in heroIDList: if not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HeroBook % heroID): continue syncHeroIDList.append(heroID) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HeroBook % heroID, 0) GameWorld.DebugAnswer(curPlayer, "ÖØÖÃͼ¼øOK!") else: heroID = value2 syncHeroIDList = [heroID] bookStarLV = msgList[2] if len(msgList) > 2 else 0 bookBreakLV = msgList[3] if len(msgList) > 3 else 0 if (bookStarLV or bookStarLV) and not PlayerHero.GetHeroBookInitState(curPlayer, heroID): PlayerHero.SetHeroBookInitState(curPlayer, heroID, 1) PlayerHero.SetHeroBookStarLV(curPlayer, heroID, bookStarLV) PlayerHero.SetHeroBookBreakLV(curPlayer, heroID, bookBreakLV) GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÎ佫(%s)ͼ¼øÐǼ¶(%s),Í»ÆÆ(%s)" % (heroID, bookStarLV, bookBreakLV)) PlayerHero.Sync_HeroInfo(curPlayer, syncHeroIDList) return # Ƥ·ô if value == "sk": heroID = value2 skinIndex = msgList[2] if len(msgList) > 2 else 0 isActive = msgList[3] if len(msgList) > 3 else 0 PlayerHero.ActiveHeroSkin(curPlayer, heroID, skinIndex, isActive) return itemIndex = value2 heroItem = PlayerHero.GetHeroItem(curPlayer, itemIndex) if not heroItem: GameWorld.DebugAnswer(curPlayer, "²»´æÔÚÎ佫: itemIndex=%s" % itemIndex) return if value == 0: PlayerHero.InitHeroItem(heroItem.GetItem()) heroItem.Sync_Item() GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÎ佫: itemIndex=%s" % (itemIndex)) return # µÈ¼¶ if value == "l": heroLV = msgList[2] if len(msgList) > 2 else 1 LVMax = PlayerHero.GetHeroLVMax(heroItem) heroLV = min(LVMax, heroLV) heroItem.SetUserAttr(ShareDefine.Def_IudetHeroLV, heroLV) GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÎ佫µÈ¼¶: %s,itemIndex=%s" % (heroLV, itemIndex)) return # ÐǼ¶ if value == "s": addStar = msgList[2] if len(msgList) > 2 else 1 curStar = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroStar) starMax = PlayerHero.GetHeroStarMax(heroItem) if curStar >= starMax: GameWorld.DebugAnswer(curPlayer, "Î佫ÒÑÂúÐÇ: %s,itemIndex=%s" % (curStar, itemIndex)) return updStar = min(curStar + addStar, starMax) PlayerHero.DoHeroUpdStar(curPlayer, heroItem, updStar) GameWorld.DebugAnswer(curPlayer, "¸üÐÂÎ佫ÐǼ¶: %s,itemIndex=%s" % (updStar, itemIndex)) return # Í»ÆÆ if value == "b": breakLV = msgList[2] if len(msgList) > 2 else 0 PlayerHero.SetHeroBreakLV(heroItem, breakLV) GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÎä½«Í»ÆÆ: %s,itemIndex=%s" % (breakLV, itemIndex)) return # ¾õÐÑ if value == "a": awakeLV = msgList[2] if len(msgList) > 2 else 0 PlayerHero.SetHeroAwakeLV(heroItem, awakeLV) GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÎ佫¾õÐÑ: %s,itemIndex=%s" % (awakeLV, itemIndex)) return return