#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package GM.Commands.HJG
|
#
|
# @todo:»Ã¾³¸ó
|
# @author hxp
|
# @date 2025-10-15
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: »Ã¾³¸ó
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2025-10-15 09:30"""
|
#-------------------------------------------------------------------------------
|
|
import ChConfig
|
import GameWorld
|
import IpyGameDataPY
|
import PlayerControl
|
import PlayerHJG
|
import ChatBox
|
import Face
|
|
def OnExec(curPlayer, msgList):
|
|
if not msgList:
|
GameWorld.DebugAnswer(curPlayer, "---------- %s" % GameWorld.GetCurrentDataTimeStr())
|
GameWorld.DebugAnswer(curPlayer, "Ìí¼Ó³ÆºÅ: HJG t1 ³ÆºÅID [ÓÐЧÃë]")
|
GameWorld.DebugAnswer(curPlayer, "ɾ³ý³ÆºÅ: HJG t0 [³ÆºÅID]")
|
GameWorld.DebugAnswer(curPlayer, "³ÆºÅÐǼ¶: HJG ts ³ÆºÅID ÐǼ¶")
|
GameWorld.DebugAnswer(curPlayer, "Ìí¼ÓÐÎÏó: HJG m1 ÐÎÏóID [ÓÐЧÃë]")
|
GameWorld.DebugAnswer(curPlayer, "ɾ³ýÐÎÏó: HJG m0 [ÐÎÏóID]")
|
GameWorld.DebugAnswer(curPlayer, "ÐÎÏóÐǼ¶: HJG ms ÐÎÏóID ÐǼ¶")
|
GameWorld.DebugAnswer(curPlayer, "ÓÐЧÃë:²»Ìî¶Á±í,0-ÓÀ¾Ã,>0Ö¸¶¨ÓÐЧÃë")
|
Face.OnExec(curPlayer, msgList)
|
ChatBox.OnExec(curPlayer, msgList)
|
return
|
|
syncTitleIDList = []
|
syncModelIDList = []
|
ipyDataMgr = IpyGameDataPY.IPY_Data()
|
value1 = msgList[0]
|
|
# ɾ³ý³ÆºÅ
|
if value1 == "t1":
|
titleID = msgList[1] if len(msgList) > 1 else 0
|
if not titleID:
|
for index in range(ipyDataMgr.GetTitleCount()):
|
ipyData = ipyDataMgr.GetTitleByIndex(index)
|
titleID = ipyData.GetTitleID()
|
if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_TitleState, titleID):
|
continue
|
GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_TitleState, titleID, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TitleEndTime % titleID, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TitleStar % titleID, 0)
|
syncTitleIDList.append(titleID)
|
else:
|
ipyData = IpyGameDataPY.GetIpyGameData("Title", titleID)
|
if not ipyData:
|
GameWorld.DebugAnswer(curPlayer, "¸Ã³ÆºÅ²»´æÔÚ:%s" % titleID)
|
return
|
GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_TitleState, titleID, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TitleEndTime % titleID, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TitleStar % titleID, 0)
|
syncTitleIDList.append(titleID)
|
GameWorld.DebugAnswer(curPlayer, "ɾ³ý³ÆºÅ:%s" % syncTitleIDList)
|
|
# Ìí¼Ó³ÆºÅ
|
elif value1 == "t1":
|
titleID = msgList[1] if len(msgList) > 1 else 0
|
expireTimes = msgList[2] if len(msgList) > 2 else None
|
if PlayerHJG.AddTitle(curPlayer, titleID, expireTimes, True):
|
endTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TitleEndTime % titleID)
|
endTimeStr = "ÓÀ¾Ã" if not endTime else GameWorld.ChangeTimeNumToStr(endTime)
|
GameWorld.DebugAnswer(curPlayer, "Ìí¼Ó³ÆºÅ³É¹¦:%s,µ½ÆÚ:%s" % (titleID, endTimeStr))
|
else:
|
GameWorld.DebugAnswer(curPlayer, "Ìí¼Ó³ÆºÅʧ°Ü:%s" % (titleID))
|
|
# ³ÆºÅÐǼ¶
|
elif value1 == "ts":
|
titleID = msgList[1] if len(msgList) > 1 else 0
|
setStar = msgList[2] if len(msgList) > 2 else 0
|
ipyData = IpyGameDataPY.GetIpyGameData("Title", titleID)
|
if not ipyData:
|
GameWorld.DebugAnswer(curPlayer, "¸Ã³ÆºÅ²»´æÔÚ:%s" % titleID)
|
return
|
setStar = min(setStar, ipyData.GetStarMax())
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖóƺÅÐǼ¶:%s,ÐÇ:%s" % (titleID, setStar))
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TitleStar % titleID, setStar)
|
syncTitleIDList.append(titleID)
|
|
# ɾ³ýÐÎÏó
|
elif value1 == "m0":
|
modelID = msgList[1] if len(msgList) > 1 else 0
|
if not modelID:
|
for index in range(ipyDataMgr.GetModelCount()):
|
ipyData = ipyDataMgr.GetModelByIndex(index)
|
modelID = ipyData.GetModelID()
|
if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_ModelState, modelID):
|
continue
|
GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_ModelState, modelID, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ModelEndTime % modelID, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ModelStar % modelID, 0)
|
syncModelIDList.append(modelID)
|
else:
|
ipyData = IpyGameDataPY.GetIpyGameData("Model", modelID)
|
if not ipyData:
|
GameWorld.DebugAnswer(curPlayer, "¸ÃÐÎÏó²»´æÔÚ:%s" % modelID)
|
return
|
GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_ModelState, modelID, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ModelEndTime % modelID, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ModelStar % modelID, 0)
|
syncModelIDList.append(modelID)
|
GameWorld.DebugAnswer(curPlayer, "ɾ³ýÐÎÏó:%s" % syncModelIDList)
|
|
# Ìí¼ÓÐÎÏó
|
elif value1 == "m1":
|
modelID = msgList[1] if len(msgList) > 1 else 0
|
expireTimes = msgList[2] if len(msgList) > 2 else None
|
if PlayerHJG.AddModel(curPlayer, modelID, expireTimes, True):
|
endTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ModelEndTime % modelID)
|
endTimeStr = "ÓÀ¾Ã" if not endTime else GameWorld.ChangeTimeNumToStr(endTime)
|
GameWorld.DebugAnswer(curPlayer, "Ìí¼ÓÐÎÏó³É¹¦:%s,µ½ÆÚ:%s" % (modelID, endTimeStr))
|
else:
|
GameWorld.DebugAnswer(curPlayer, "Ìí¼ÓÐÎÏóʧ°Ü:%s" % (modelID))
|
|
# ÐÎÏóÐǼ¶
|
elif value1 == "ms":
|
modelID = msgList[1] if len(msgList) > 1 else 0
|
setStar = msgList[2] if len(msgList) > 2 else 0
|
ipyData = IpyGameDataPY.GetIpyGameData("Model", modelID)
|
if not ipyData:
|
GameWorld.DebugAnswer(curPlayer, "¸ÃÐÎÏó²»´æÔÚ:%s" % modelID)
|
return
|
setStar = min(setStar, ipyData.GetStarMax())
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÐÎÏóÐǼ¶:%s,ÐÇ:%s" % (modelID, setStar))
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ModelStar % modelID, setStar)
|
syncModelIDList.append(modelID)
|
|
if syncTitleIDList:
|
PlayerHJG.RefreshHJGAttr(curPlayer)
|
PlayerHJG.SyncTitleInfo(curPlayer, syncTitleIDList)
|
|
if syncModelIDList:
|
PlayerHJG.RefreshHJGAttr(curPlayer)
|
PlayerHJG.SyncModelInfo(curPlayer, syncModelIDList)
|
return
|