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