#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GM.Commands.Zhanling # # @todo:Õ½Áî # @author hxp # @date 2024-07-12 # @version 1.0 # # ÏêϸÃèÊö: Õ½Áî # #------------------------------------------------------------------------------- #"""Version = 2024-07-12 19:00""" #------------------------------------------------------------------------------- import ChConfig import PlayerControl import PlayerZhanling import GameWorld import time #--------------------------------------------------------------------- #Âß¼­ÊµÏÖ ## GMÃüÁîÖ´ÐÐÈë¿Ú # @param curPlayer µ±Ç°Íæ¼Ò # @param msgList ²ÎÊýÁбí # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def OnExec(curPlayer, msgList): if not msgList: GameWorld.DebugAnswer(curPlayer, "ÖØÖý±Àø: Zhanling 0 ÀàÐÍ") GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÕ½Áî: Zhanling ÀàÐÍ ÊÇ·ñ¼¤»îÆÕͨ ¸ß¼¶") GameWorld.DebugAnswer(curPlayer, "ÉèÖýø¶È: Zhanling v ÀàÐÍ ½ø¶ÈÖµ") GameWorld.DebugAnswer(curPlayer, "ÉèÖõǼ: Zhanling d µÇ¼սÁîÒѵǼÌìÊý") return value = msgList[0] if value == 0: zhanlingType = msgList[1] if len(msgList) > 1 else 1 backValue = msgList[2] if len(msgList) > 2 else None PlayerZhanling.ResetZhanling(curPlayer, zhanlingType, backValue) GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÕ½Áî(%s)!" % (zhanlingType)) elif value == "v": zhanlingType = msgList[1] if len(msgList) > 1 else 0 value1 = msgList[2] if len(msgList) > 2 else 0 retValue = PlayerZhanling.SetZhanlingValue(curPlayer, zhanlingType, value1) if retValue == None: GameWorld.DebugAnswer(curPlayer, "¸ÃÕ½Áî²»ÓÃÉèÖýø¶ÈÖµ! %s" % (zhanlingType)) return GameWorld.DebugAnswer(curPlayer, "Õ½Áî½ø¶È:Type=%s,V=%s" % (zhanlingType, retValue)) elif value == "d": zhanlingType = 5 loginDays = msgList[1] if len(msgList) > 1 else 1 curTime = int(time.time()) firstLoginTime = curTime - (loginDays - 1) * 3600 * 24 PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingValue1 % zhanlingType, firstLoginTime) PlayerZhanling.SyncZhanlingInfo(curPlayer, zhanlingType) GameWorld.DebugAnswer(curPlayer, "µÇ¼սÁîÒѵǼÌìÊý:%s" % (GameWorld.GetDiff_Day(curTime, firstLoginTime) + 1)) else: zhanlingType = value activiteC = msgList[1] if len(msgList) > 1 else 0 activiteH = msgList[2] if len(msgList) > 2 else 0 state = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ZhanlingState) if activiteC: updState = state|pow(2, zhanlingType) else: updState = state&(pow(2, 31 + 1) - 1 - pow(2, zhanlingType)) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingState, updState) state = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ZhanlingStateH) if activiteH: updState = state|pow(2, zhanlingType) else: updState = state&(pow(2, 31 + 1) - 1 - pow(2, zhanlingType)) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingStateH, updState) PlayerZhanling.SyncZhanlingInfo(curPlayer, zhanlingType) GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÕ½ÁîÀàÐÍ:%s ÆÕͨ:%s ¸ß¼¶:%s" % (zhanlingType, activiteC, activiteH)) return