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