#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package GM.Commands.Horse
|
#
|
# @todo:×øÆï
|
# @author hxp
|
# @date 2025-11-04
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ×øÆï
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2025-11-04 14:30"""
|
#-------------------------------------------------------------------------------
|
|
import GameWorld
|
import IpyGameDataPY
|
import PlayerControl
|
import PlayerHorse
|
import ChConfig
|
|
def OnExec(curPlayer, msgList):
|
|
if not msgList:
|
GameWorld.DebugAnswer(curPlayer, "ÖØÖÃËùÓÐ: Horse 0")
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖý׼¶: Horse ½× [µÈ¼¶ ¾Ñé]")
|
GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÍâ¹Û: Horse s0 [Íâ¹ÛID]")
|
GameWorld.DebugAnswer(curPlayer, "Ìí¼ÓÍâ¹Û: Horse s1 Íâ¹ÛID [ÓÐЧÃë]")
|
GameWorld.DebugAnswer(curPlayer, "Íâ¹ÛÐǼ¶: Horse s2 Íâ¹ÛID ÐǼ¶")
|
return
|
|
ipyDataMgr = IpyGameDataPY.IPY_Data()
|
syncSkinIDList = []
|
value1 = msgList[0]
|
if value1 == 0:
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorseClassLV, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorseLV, PlayerHorse.HorseLVStart)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorseExp, 0)
|
PlayerControl.SetHorseSkinID(curPlayer, PlayerHorse.GetDefaultHorseSkinID())
|
syncSkinIDList = __ResetHorseSkin(curPlayer, 0)
|
|
elif value1 == "s0":
|
horseSkinID = msgList[1] if len(msgList) > 1 else 0
|
syncSkinIDList = __ResetHorseSkin(curPlayer, horseSkinID)
|
|
elif value1 == "s1":
|
horseSkinID = msgList[1] if len(msgList) > 1 else 0
|
expireTimes = msgList[2] if len(msgList) > 2 else None
|
if PlayerHorse.AddHorseSkin(curPlayer, horseSkinID, expireTimes, True):
|
endTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorseSkinEndTime % horseSkinID)
|
endTimeStr = "ÓÀ¾Ã" if not endTime else GameWorld.ChangeTimeNumToStr(endTime)
|
GameWorld.DebugAnswer(curPlayer, "Ìí¼ÓÍâ¹Û³É¹¦:%s,µ½ÆÚ:%s" % (horseSkinID, endTimeStr))
|
else:
|
GameWorld.DebugAnswer(curPlayer, "Ìí¼ÓÍâ¹Ûʧ°Ü:%s" % (horseSkinID))
|
return
|
|
elif value1 == "s2":
|
horseSkinID = msgList[1] if len(msgList) > 1 else 0
|
setStar = msgList[2] if len(msgList) > 2 else 0
|
ipyData = IpyGameDataPY.GetIpyGameData("HorseSkin", horseSkinID)
|
if not ipyData:
|
GameWorld.DebugAnswer(curPlayer, "¸ÃÍâ¹Û²»´æÔÚ:%s" % horseSkinID)
|
return
|
setStar = min(setStar, ipyData.GetStarMax())
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÍâ¹Û:%s,ÐÇ:%s" % (horseSkinID, setStar))
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorseSkinStar % horseSkinID, setStar)
|
syncSkinIDList.append(horseSkinID)
|
|
# ÉèÖý׼¶: Horse ½× [µÈ¼¶ ¾Ñé]
|
else:
|
classLV = msgList[0] if len(msgList) > 0 else 0
|
horseLV = msgList[1] if len(msgList) > 1 else 0
|
exp = msgList[2] if len(msgList) > 2 else 0
|
maxIpyData = ipyDataMgr.GetHorseClassByIndex(-1)
|
classLV = min(classLV, maxIpyData.GetClassLV())
|
classIpyData = IpyGameDataPY.GetIpyGameData("HorseClass", classLV)
|
horseLV = max(PlayerHorse.HorseLVStart, min(horseLV, classIpyData.GetMaxHorseLV()))
|
exp = min(exp, classIpyData.GetLVUPItemCnt())
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorseClassLV, classLV)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorseLV, horseLV)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorseExp, exp)
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖÃ×øÆï½×:%s,µÈ¼¶:%s,¾Ñé:%s" % (classLV, horseLV, exp))
|
|
PlayerHorse.SyncHorseClassInfo(curPlayer)
|
syncSkinIDList and PlayerHorse.SyncHorseSkinInfo(curPlayer, syncSkinIDList)
|
PlayerHorse.RefreshHorseAttr(curPlayer)
|
return
|
|
def __ResetHorseSkin(curPlayer, horseSkinID=0):
|
syncSkinIDList = []
|
if not horseSkinID:
|
ipyDataMgr = IpyGameDataPY.IPY_Data()
|
for index in range(ipyDataMgr.GetHorseSkinCount()):
|
ipyData = ipyDataMgr.GetHorseSkinByIndex(index)
|
horseSkinID = ipyData.GetSkinID()
|
if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_HorseSkinState, horseSkinID):
|
continue
|
GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_HorseSkinState, horseSkinID, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorseSkinEndTime % horseSkinID, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorseSkinStar % horseSkinID, 0)
|
syncSkinIDList.append(horseSkinID)
|
else:
|
ipyData = IpyGameDataPY.GetIpyGameData("HorseSkin", horseSkinID)
|
if not ipyData:
|
GameWorld.DebugAnswer(curPlayer, "¸ÃÍâ¹Û²»´æÔÚ:%s" % horseSkinID)
|
return
|
GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_HorseSkinState, horseSkinID, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorseSkinEndTime % horseSkinID, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorseSkinStar % horseSkinID, 0)
|
syncSkinIDList.append(horseSkinID)
|
GameWorld.DebugAnswer(curPlayer, "ɾ³ýÍâ¹Û:%s" % syncSkinIDList)
|
return syncSkinIDList
|
|