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