1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/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