#!/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
|
|