#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package GM.Commands.Horse
|
#
|
# @todo:×øÆï
|
# @author hxp
|
# @date 2019-12-17
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ×øÆï
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2019-12-17 18:30"""
|
#-------------------------------------------------------------------------------
|
|
import GameWorld
|
import ChConfig
|
import PlayerControl
|
import PlayerHorse
|
import IpyGameDataPY
|
import time
|
|
#---------------------------------------------------------------------
|
#Â߼ʵÏÖ
|
|
## GMÃüÁîÖ´ÐÐÈë¿Ú
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param msgList ²ÎÊýÁбí
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnExec(curPlayer, msgList):
|
|
if not msgList:
|
GameWorld.DebugAnswer(curPlayer, "ÖØÖÃËùÓÐ: Horse 0")
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖýø½×: Horse µÈ½× µ¤Êý")
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÅàÑø: Horse ÅàÑøÀàÐÍ µÈ½× µ¤Êý")
|
GameWorld.DebugAnswer(curPlayer, "È«²¿»Ã»¯: Horse skin 1")
|
GameWorld.DebugAnswer(curPlayer, "ÖØÖûû¯: Horse skin 0")
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖûû¯: Horse skin »Ã»¯ID ״̬")
|
return
|
|
if msgList[0] == "skin":
|
if len(msgList) == 2:
|
skinState = msgList[1]
|
ipyDataMgr = IpyGameDataPY.IPY_Data()
|
for index in xrange(ipyDataMgr.GetHorseSkinPlusCount()):
|
skinPlusIpyData = ipyDataMgr.GetHorseSkinPlusByIndex(index)
|
skinID = skinPlusIpyData.GetID()
|
__GMSetHorseSkinState(curPlayer, skinID, skinState, skinPlusIpyData.GetSkinValidTime())
|
elif len(msgList) == 3:
|
skinID = msgList[1]
|
skinState = msgList[2]
|
skinPlusIpyData = IpyGameDataPY.GetIpyGameData("HorseSkinPlus", skinID)
|
if not skinPlusIpyData:
|
GameWorld.DebugAnswer(curPlayer, "×øÆï»Ã»¯ID²»´æÔÚ! skinID=%s" % skinID)
|
return
|
__GMSetHorseSkinState(curPlayer, skinID, skinState, skinPlusIpyData.GetSkinValidTime())
|
else:
|
return
|
|
elif len(msgList) == 1:
|
if msgList[0] == 0:
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserLV, 1)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserEatItemCount, 0)
|
for trainType in xrange(1, PlayerHorse.GetHorseTrainTypes() + 1):
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserTrainLV % trainType, 1)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserTrainItemCount % trainType, 0)
|
|
ipyDataMgr = IpyGameDataPY.IPY_Data()
|
for index in xrange(ipyDataMgr.GetHorseSkinPlusCount()):
|
skinPlusIpyData = ipyDataMgr.GetHorseSkinPlusByIndex(index)
|
skinID = skinPlusIpyData.GetID()
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserSkinEndTime % skinID, 0)
|
GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_HorserSkinPlusState, skinID, 0)
|
|
elif len(msgList) == 2:
|
lv, eatItemCount = msgList
|
if lv < 1:
|
GameWorld.DebugAnswer(curPlayer, "µÈ¼¶²»ÄÜСÓÚ1")
|
return
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserLV, lv)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserEatItemCount, eatItemCount)
|
|
elif len(msgList) == 3:
|
trainType, trainLV, eatItemCount = msgList
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserTrainLV % trainType, trainLV)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserTrainItemCount % trainType, eatItemCount)
|
|
else:
|
return
|
|
PlayerHorse.RefreshHorseAttr(curPlayer)
|
PlayerHorse.PlayerHorseLogin(curPlayer)
|
return
|
|
def __GMSetHorseSkinState(curPlayer, skinID, skinState, validTime=0):
|
if not skinState:
|
GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_HorserSkinPlusState, skinID, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserSkinEndTime % skinID, 0)
|
else:
|
GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_HorserSkinPlusState, skinID, 1)
|
if validTime > 0:
|
updSkinEndTime = int(time.time()) + validTime
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserSkinEndTime % skinID, updSkinEndTime)
|
return
|
|