#!/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 #--------------------------------------------------------------------- #Âß¼­ÊµÏÖ ## 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 ÀàÐÍ ½ø¶ÈÖµ") 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)) 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