#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package GM.Commands.TTL  
 | 
#  
 | 
# @todo:ͨÌìÁî  
 | 
# @author hxp  
 | 
# @date 2022-01-17  
 | 
# @version 1.0  
 | 
#  
 | 
# ÏêϸÃèÊö: Í¨ÌìÁî  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#"""Version = 2022-01-17 19:00"""  
 | 
#-------------------------------------------------------------------------------  
 | 
  
 | 
import GameWorld  
 | 
import PlayerControl  
 | 
import PlayerTongTianLing  
 | 
import IpyGameDataPY  
 | 
import ChConfig  
 | 
import time  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
#Â߼ʵÏÖ  
 | 
## GMÃüÁîÖ´ÐÐÈë¿Ú  
 | 
#  @param curPlayer µ±Ç°Íæ¼Ò  
 | 
#  @param paramList ²ÎÊýÁÐ±í  
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def OnExec(curPlayer, paramList):  
 | 
      
 | 
    if not paramList:  
 | 
        GameWorld.DebugAnswer(curPlayer, "ÖØÖÃͨÌìËùÓÐ: TTL 0")  
 | 
        GameWorld.DebugAnswer(curPlayer, "ÖØÖÃͨÌìµÈ¼¶: TTL 0 1")  
 | 
        GameWorld.DebugAnswer(curPlayer, "ÖØÖÃͨÌìÈÎÎñ: TTL 0 2")  
 | 
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃͨÌìµÈ¼¶: TTL 1 µÈ¼¶ ¾Ñé ÊÇ·ñ¼¤»îͨÌìÁî")  
 | 
        GameWorld.DebugAnswer(curPlayer, "Ôö¼ÓͨÌìÈÎÎñ: TTL 2 ÈÎÎñÀàÐÍ Ôö¼Ó½ø¶ÈÖµ")  
 | 
        return  
 | 
      
 | 
    value = paramList[0]  
 | 
    if not value:  
 | 
        value1 = paramList[1] if len(paramList) > 1 else 0  
 | 
        if value1 == 1:  
 | 
            resetTTLV(curPlayer)  
 | 
            GameWorld.DebugAnswer(curPlayer, "ÖØÖÃͨÌìµÈ¼¶OK!")  
 | 
        elif value1 == 2:  
 | 
            resetTTTask(curPlayer)  
 | 
            GameWorld.DebugAnswer(curPlayer, "ÖØÖÃͨÌìÈÎÎñOK!")  
 | 
        else:  
 | 
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TTL_StartTime, int(time.time()))  
 | 
            resetTTLV(curPlayer)  
 | 
            resetTTTask(curPlayer)  
 | 
            GameWorld.DebugAnswer(curPlayer, "ÖØÖÃͨÌìËùÓÐOK!")  
 | 
              
 | 
        return  
 | 
      
 | 
    if value == 1:  
 | 
        ttLV, ttState = PlayerTongTianLing.GetTongTianLingLVInfo(curPlayer)  
 | 
        ttLV = paramList[1] if len(paramList) > 1 else ttLV  
 | 
        setPoint = paramList[2] if len(paramList) > 2 else 0  
 | 
        setState = paramList[3] if len(paramList) > 3 else ttState  
 | 
          
 | 
        ttLV = min(ttLV, IpyGameDataPY.IPY_Data().GetTongTianLVCount() - 1)  
 | 
        ttState = 1 if setState else 0  
 | 
        PlayerTongTianLing.SetTongTianLingLVInfo(curPlayer, ttLV, ttState)  
 | 
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TTL_LVPoint, setPoint)  
 | 
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃͨÌìµÈ¼¶: LV=%s,expPoint=%s,state=%s" % (ttLV, setPoint, ttState))  
 | 
        PlayerTongTianLing.SyncTongTianLVInfo(curPlayer)  
 | 
          
 | 
    elif value == 2:  
 | 
        ttTaskType = paramList[1] if len(paramList) > 1 else 0  
 | 
        addValue = paramList[2] if len(paramList) > 2 else 0  
 | 
        GameWorld.DebugAnswer(curPlayer, "Ôö¼ÓͨÌìÈÎÎñ½ø¶È: taskType=%s,addVlue=%s" % (ttTaskType, addValue))  
 | 
        PlayerTongTianLing.AddTongTianTaskValue(curPlayer, ttTaskType, addValue)  
 | 
          
 | 
    return  
 | 
  
 | 
def resetTTTask(curPlayer):  
 | 
      
 | 
    for i in xrange(PlayerTongTianLing.TTL_TaskAwardKeyCount):  
 | 
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TTL_TaskAwardRecord % i, 0)  
 | 
          
 | 
    syncTaskInfoList = []  
 | 
    for ttTaskType in ChConfig.TTLTaskTypeList:  
 | 
        for isDailyTask in [0, 1]:  
 | 
            curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TTL_TaskValue % (ttTaskType, isDailyTask))  
 | 
            if not curValue:  
 | 
                continue  
 | 
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TTL_TaskValue % (ttTaskType, isDailyTask), 0)  
 | 
            syncTaskInfoList.append([ttTaskType, isDailyTask])  
 | 
    PlayerTongTianLing.SyncTongTianTaskInfo(curPlayer, syncTaskInfoList)  
 | 
    PlayerTongTianLing.SyncTongTianTaskAward(curPlayer)  
 | 
    return  
 | 
  
 | 
def resetTTLV(curPlayer):  
 | 
    for i in xrange(PlayerTongTianLing.TTL_LVAwardKeyCount):  
 | 
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TTL_CommAwardRecord % i, 0)  
 | 
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TTL_XianAwardRecord % i, 0)  
 | 
    PlayerTongTianLing.SetTongTianLingLVInfo(curPlayer, 0, 0)  
 | 
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TTL_LVPoint, 0)  
 | 
    PlayerTongTianLing.SyncTongTianLVInfo(curPlayer)  
 | 
    return  
 | 
  
 | 
  
 | 
  
 |