hwj35
2025-06-16 12bfd1cd414e0fa14310a800df8288a844d6489f
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
ìÇgc@s·ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl!Z!ej"Z#ddddddgZ$e%d    ƒ\Z&Z'Z(d
„Z)d „Z*e+d „Z,d „Z-d„Z.d„Z/e0e0d„Z1d„Z2d„Z3e4d„Z5e+d„Z6e+d„Z7d„Z8d„Z9d„Z:d„Z;d„Z<d„Z=d„Z>d„Z?d„Z@d„ZAd „ZBd!d"„ZCdS(#iÿÿÿÿN(tIntTypetweekdaytyeartmonthtdaythourtminuteicCs’tjƒrdStdtƒ\}}|s/dS|t}|rCdStj|kr||tjd}|r|t||ƒq|ntj|kr¸|tjd}|r¸t    j
||ƒq¸ntj |krô|tj d}|rôt j ||ƒqôntj|kr-|tjd}|r-t||ƒq-ntj|kri|tjd}|ritj||ƒqintj|krŽtj|tjƒndS(Nt
needReloadi(t    GameWorldt IsCrossServert__GetOperationActionInfotFalsetOperationAction_TodayInfot ShareDefinetOperationActionName_ExpRatetSync_OperationAction_ExpRatet!OperationActionName_FairyCeremonytPlayerFairyCeremonyt"Sync_OperationAction_FairyCeremonyt$OperationActionName_NewFairyCeremonytPlayerNewFairyCeremonyt%Sync_OperationAction_NewFairyCeremonytOperationActionName_RealmPointtSync_OperationAction_RealmPointt"OperationActionName_FeastRedPackettPlayerFamilyRedPackettSync_FeastRedPackett!OperationActionName_LuckyTreasuretPlayerUniversalGameRectSendUniversalGameRecInfot&Def_UniversalGameRecType_LuckyTreasure(t    curPlayertisReloadtOperationActionInfotoperationActionDicttipyData((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt OnPlayerLoginCs> 
cCs¾tjƒtjƒrdStƒ\}}|t}|r=dSxztjD]o}|j|iƒ}|tj    krŸxE|j
ƒD]}tj tj ||ƒq{WqGtj tj ||ƒqGWdS(N( tCrossActionControltSendMapServerCrossActionStateRR    R
tOperationAction_MapServerInfoR tOperationActionNameListtgettMultiActNumOperationActNameListtvaluestSendMapServerMsgExt'Def_Notify_WorldKey_OperationActionInfo(R R!tmapServerInfoDicttactNametsendMapServerMsgDicttactNumMapMsgDict((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt!SendMapServerOperationActionStateqs
 
cCsD|rt|dƒr|jƒS|tjkr9tjdStjdS(sW »ñÈ¡ÔËÓª»î¶¯·Ö×é±àºÅ
        ¼ÓÈëÁË·Ö×é±àºÅ¸ÅÄµ«ÓÉÓÚÓÐЩ»î¶¯Åä±í»¹ÊǾɹæÔòÅäÖã¬ÎªÁË×ö¹æÔò¼æÈݾÉÅä±í£¬¼õÉÙÅäÖñí¸Ä¶¯¼°´úÂë¸Ä¶¯ÕâÀï×öÏÂ×ÔÊÊÓ¦·ÖÅäĬÈÏ·Ö×é±àºÅ
        »î¶¯ÀàÐͶ¨Ò壺
        1-ĬÈÏ£¨½ö¿ÉÅäÖÿª·þÌì¡¢ÈÕÆÚ¡¢ÖÜÑ­»·W¿ªÍ·+Êý×Ö£¬ÓÅÏȼ¶ ¿ª·þÌì > ÈÕÆÚ > ÖÜx£©
                                        ·Ç¿ª·þÅäÖõĿª·þǰXÌì²»¿ª£¬²»ÊܺϷþÓ°Ï죬¹¦ÄÜÅäÖñí¿ÉÅäÖÃǰXÌìºó½»²æ¿É¿ª£¬Ã¿ÈÕÖØÖõĻǰXÌìºóĬÈϿɿª
        2-ºÏ·þ£¨½ö¿ÉÅäÖÃMix¿ªÍ·+Êý×Ö£¬ÈçMix1´ú±íºÏ·þµÚ1Ì죬ÒÔ´ËÀàÍÆ£©
        3-½ÚÈÕ£¨½ö¿ÉÅäÖÃÈÕÆÚ£¬²»ÊÜ¿ª·þ¡¢ºÏ·þÓ°Ï죩
        
        »î¶¯·Ö×é±àºÅ = »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ
    t    GetActNumi
(thasattrR3R tFeastOperationActionNameListt ActType_FeasttActType_OpenComm(R/R#((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytGetOperationActNum‹s
 
 cCs|dS(Ni
((tactNum((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytGetOperationActType sc
Cstjƒjtjƒtjƒjtjƒ}tjdt|ƒƒxÆ|jƒD]¸\}}x©|jƒD]›\}}|\}}}}    |j    ƒ}
|
j
|ƒ|
j |ƒ|
j |ƒ|
j |ƒ|
j|ƒ|
j|    ƒtjd||||||    fƒqkWqRWdS(Ns$±£´æÔËÓª»î¶¯ÊÀ½çµÈ¼¶ÏÞÖÆ¿ªÆôÐÅÏ¢: %ss\    actName=%s,cfgID=%s,recStartDateStr=%s,recEndDateStr=%s,recLimitWorldLV=%s,recWorldLV=%s(RtGetUniversalRecMgrtDeleteR t,Def_UniversalGameRecType_ActWorldLVLimitInfot GetTypeListtLogtlentitemstAddRect SetStrValue1t SetStrValue2t SetStrValue3t    SetValue1t    SetValue2t    SetValue3( tactWorldLVLimitInfot recDataListR/tcfgLimitInfoDicttcfgIDt    limitInfotrecStartDateStrt recEndDateStrtrecLimitWorldLVt
recWorldLVtrecData((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt__SaveActWorldLVLimitInfo¤s            "c
    Csi}tjƒjtjƒ}tjd|jƒƒxÇt|jƒƒD]³}|j|ƒ}|j    ƒ}|j
ƒ}|j ƒ}|j ƒ}|j ƒ}|jƒ}    ||kr¾i||<n||||    g|||<tjd||||||    fƒqHW|S(Ns$¼ÓÔØÔËÓª»î¶¯ÊÀ½çµÈ¼¶ÏÞÖÆ¿ªÆôÐÅÏ¢: %ss\    actName=%s,cfgID=%s,recStartDateStr=%s,recEndDateStr=%s,recLimitWorldLV=%s,recWorldLV=%s(RR;R>R R=R?tCounttxrangetAtt GetStrValue1t GetStrValue2t GetStrValue3t    GetValue1t    GetValue2t    GetValue3(
RIRJtindexRRRNROR/RLRPRQ((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt__GetActWorldLVLimitInfo¶s"            c} Csd}tjtjƒd}tjtjƒ}tjtjƒd}tj|ƒ}tjƒ}|j    }|dkrzdnd}    ||||    g}
|r²|t
|
kr²t |fS|sÂt |fSd|j |j |j|j    |jf} tjj| tjƒ} tjddƒ} tjddƒ}tjddƒ}i}i}tjƒ}tjƒ}tjƒ}| jƒd}tjtjƒ}tƒ}i}tjd    | |||||||
fƒtjd
||fƒxtjD]}||kri||<ntjd |||fƒt||||ƒ}tjd t |ƒƒt!|| |ƒ\}}}}}} tjd | ƒxs|D]k}!t"|!dƒsŸgn    |!j#ƒ}"t"|!dƒsÀgn    |!j$ƒ}#t"|!dƒságn    |!j%ƒ}$|!j&ƒ}%|!j'ƒ}&|!j(ƒ}'t)||!ƒ}(t*|(ƒ})| rf|(| krf| |(}*t+t+|*j,ƒƒ|ƒ}+n|}+tjd|%|(|&|'||+||| |"|#|$f ƒd},d}-|tj.kr|(||krçi|(tj/6|||(<n|j0|iƒj0|(ƒ}.n|j0|ƒ}.|&sJd|j |j |jf}&tjd|&ƒn|'s€d|j |j |jf}'tjd|'ƒn|&j1dƒ}/|/r{|%|kré||%\}0}1}2}3}4tjd|%|0|&|1|'|2|3|4fƒq„n|%|krtjd|%|&|'fƒq„n|%|krc||%\}5}&}'}6}7tjd|%|&|'|5|6|7fƒq„ntj2|!ƒ\}&}'n|)tj3kr”
|&j1dƒo¥|'j1dƒ}8|/ oÝ|8 oÝ|&j4dƒdkoÝ|'j4dƒdk}9|&j5ƒrÊ|'j5ƒrÊt6|&ƒt6|'ƒ}:};||;dkrDtjd|%|&|'|fƒq„n| tj7d|:|ƒ}<| tj7d|;|ƒ}=d|<j |<j |<jf}&d|=j |=j |=jf}'tjd|&|'fƒqY |&j1dƒr¹tj8|&dƒtj8|'dƒ}:};||;dkr3tjd|%|&|'|fƒq„n| tj7d|:|ƒ}<| tj7d|;|ƒ}=d|<j |<j |<jf}&d|=j |=j |=jf}'tjd |&|'fƒqY |8sË|9sË|/rt
||+krtjd!|%|&|'||+| fƒq„n|%|krT||%\}>}?}2}3}4tjd"|%|>|&|?|'|2|3|4fƒq„n|%|krtjd#|%|&|'t9||%ƒfƒq„n|8rÂtj2|!ƒ\}&}'tjd$|&|'fƒn| tj7dd|ƒ}@| tj7d|+|ƒ}Atjjd%|&|Aj    |Aj|Aj:ftjƒ}B|@|Bko>    |Aknr‘
t"|!d&ƒsX    dn    |!j;ƒ}C|C rš    || krš    tjd'|%|@|B|Afƒq„n|C r
|| kr
tjjd(|Aj |Aj |Ajftjƒtj7ddƒ},tjd)|%|,fƒn|| krq
tjjd(|Aj |Aj |Ajftjƒtj7ddƒ}-d|-j |-j |-jf}-qq
qY tjd*|%|&|'fƒq„nÅ|)tj<krã |&j1d+ƒ sÃ
|'j1d+ƒ rã
tjd,|%|&|'fƒq„n|s     tjd-|%|&|'fƒq„nt6|&d.ƒt6|'d.ƒ}D}E||Edkr] tjd/|%|&|'|fƒq„n| tj7d|D|ƒ}<| tj7d|E|ƒ}=d|<j |<j |<jf}&d|=j |=j |=jf}'tjd0|&|'fƒnv|)tj=kr? |&j4dƒdks |'j4dƒdkrY tjd1|%|&|'fƒq„qY ntjd2|%|(fƒq„t"|!d3ƒr’ t"|!d4ƒr’ |!j>ƒ}F|!j?ƒ}Gn d5}Fd5}Gt"|!d6ƒr× t"|!d7ƒr× |!j@ƒ}H|!jAƒ}In g}Hg}It"|!d8ƒrþ |!jBƒni}Jt"|!d9ƒr |!jCƒni}Kt"|!d:ƒr@ |!jDƒni}Lt |Hƒt |Iƒkr tjEd;||%|H|Ifƒq„nt"|!d&ƒs– dn    |!j;ƒ}Ct"|!d<ƒs· dn    |!jFƒ}M|Mdkr
tjjd=|&tjƒ}Ntjjd=|'tjƒ}OnŸ|Mdkratjjd=|&tjƒ}Ntjjd>|'tjƒtj7ddƒ}OnHtjjd>|&tjƒ}Ntjjd>|'tjƒtj7ddƒ}Ot"|!d?ƒs¾dn    |!jGƒ}Ptjd@|M|N|O|H|I|Pfƒd}Q|N}R|Pr|Ntj7dA|P ƒ}Q|Q}Rn|Js+dntH|JjIƒƒ}S|Sdkrw|Ntj7dA|Sƒ}T|T|Rkrw|T}Rqwn| |Rks| |Okr¢tjdBƒq„n|.rê| |Nkrê|.d}UtjdC|Uj&ƒ|%|P|S|Rfƒq„n|.r)| |Okr)|.d}UtjdD|Uj&ƒ|%fƒq„nt"|!dEƒs>dn    |!jJƒ}V|Vr0tjdF|V|fƒd5}W|j0|iƒ}X|%|XkrªdG}W|X|%\}Y}Z}[}\n$dH}W|&|'|V|f\}Y}Z}[}\||krçi||<n|Y|Z|[|\g|||%<|[|\kr0tjdI|[|\|Wfƒq„q0ng}]g}^i}_i}`i}ai}b|N| kok|Okn}c| |Ok}dt }et }f|H s–|I r¿|N}g|O}h|]jK|gƒ|^jK|hƒn¯x¬tL|HƒD]ž\}i}j|I|i}kdJ| j | j | j|jf}ldJ| j | j | j|kf}mtjj|ltjƒ}gtjj|mtjƒ}h|]jK|gƒ|^jK|hƒqÌW|QrÍ|Qj | j kr³|Qj | j kr³|Qj| jkr³tM}fntjdK|Q|ffƒntjdL|]ƒtjdM|^ƒgg}n}o|FrÐ|Cr{|njKtjjdJ| j | j | j|Fftjƒƒ|ojKtjjdJ| j | j | j|GftjƒƒqÐ|njKtjjdN|&|Fftjƒƒ|ojKtjjdN|'|GftjƒƒntjdO|nƒtjdP|oƒxtL|]ƒD]\}p}g|^|p}hxy|JjNƒD]k\}q}r|gtj7dA|qƒ}s|sj | j kr"|sj | j kr"|sj| jkr"|r|_|s<tM}eq"q"Wxy|KjNƒD]k\}q}r|htj7dA|qƒ}s|sj | j krž|sj | j krž|sj| jkrž|r|`|s<tM}eqžqžW|Lrÿt |Lƒdkrÿ|Ld \}t}ut |LƒdkrQ|Ldng}v|u|vg}rd^\}w}xxœ|tr
|ur
|w|xkr
|wd7}w|gtj7dA|t|wƒ}s|s|hkr¾Pn|sj | j krr|sj | j krr|sj| jkrr|r|a|s<tM}eqrqrWqÿqÿW|_s$|`s$|ar¥tjdR|JjIƒ|_fƒtjdS|KjIƒ|`fƒtjdT|L|ajIƒfƒ|bjO|_ƒ|bjO|`ƒ|bjO|aƒntjdU|%|c|d|e|ffƒ|tj.kr||kríi||<n|!|]|^|b|n|og|||(<n|!|]|^|b|n|og||<|cr„i|%tjP6|(tj/6}y|tjQkr~tRjS|N|O|NjTƒ|ytjU<n|-r¥|-|ytjV<tjdV|-ƒn| |NjT}z|!j'ƒj1dƒr"tj8|!j'ƒdƒ}:|Csò|Hrÿ|Irÿ|:|z}{n|:}{tjdW|C|:|{fƒnu|N}||Cs:|HrS|IrS||tj7d|zƒ7}|n|,rb|,}|nt6tWjX||jYƒƒƒ}{tjdX|C|||{fƒ|z|ytjZ<|{|ytj[<tjdY|yƒ|tj.krâ|y|||(<qï|y||<q„q„WqãWtj\||
||gƒ}t]|ƒtjdZ|
|fƒtjd[|ƒtjd\|ƒtjd]ƒ|rut^tMƒntM|fS(_NR!iiis%d-%d-%d %02d:%02d:00tOperationActionit    MixServers£===== ¼ÓÔØ±¾ÈÕÔËÓª»î¶¯ÐÅÏ¢: %s, serverGroupID=%s,openServerDay=%s,customMaxServerDay=%s,isMixServer=%s,mixServerDay=%s,maxCustomServerDayMix=%s,reloadSign=%s =====s    ½ñÈÕÖÜ%s, curWorldLV=%ss5¼ÓÔØÔËÓª»î¶¯: actName=%s,platform=%s,serverGroupID=%ss    ¿É´¦ÀíÌõÊý=%ss    kOpenServerActInfo=%stGetPlatformListtGetServerGroupIDListtGetServerGroupIDListExcepts»    cfgID=%s,actNum=%s,startDateStr=%s,endDateStr=%s,openServerDay=%s,actCustomServerDayMax=%s,isMixServer=%s,mixServerDay=%s,curDateTime=%s,platformList=%s,serverGroupIDList=%s,Except=%ss%d-%d-%ds7        ¿ªÊ¼ÈÕÆÚΪ¿Õ£¬Ä¬ÈÏÿÌ죬½ñÈÕΪ: startDateStr=%ss5        ½áÊøÈÕÆÚΪ¿Õ£¬Ä¬ÈÏÿÌ죬½ñÈÕΪ: endDateStr=%stLsa        °´ÈÕÆÚÑ­»·µÄÔÚ°´ÈÕÆÚ¿ªÆôµÄʱ¼äÄÚ£¬²»´¦Àí! cfgID=%s,%s(%s) ~ %s(%s) in ymdCfgID=%s,%s ~ %ssd        °´ÈÕÆÚÑ­»·µÄδµ½¿ªÆôÑ­»·ÈÕÆÚ»òÒѽáÊøÑ­»·ÈÕÆÚ£¬²»´¦Àí! cfgID=%s,startDateStr=%s,endDateStr=%ss        °´ÈÕÆÚÑ­»·µÄ»¹Î´Ñ­»·µ½µ±Ç°ÅäÖ㬲»´¦Àí! cfgID=%s,startDateStr=%s,endDateStr=%s,loopCfgIDList=%s,loopIndex=%s,loopTimes=%stWs-sR        µ±Ç°¿ª·þÌ쳬¹ý»î¶¯½áÊø¿ª·þÌ죬²»´¦Àí! cfgID=%s,%s ~ %s < openServerDay(%s)tdayss!        ¿ª·þÌìת»¯ÎªÈÕÆÚ: %s ~ %stKsS        µ±Ç°¿ª·þÌ쳬¹ý»î¶¯½áÊøK¿ª·þÌ죬²»´¦Àí! cfgID=%s,%s ~ %s < openServerDay(%s)s"        K¿ª·þÌìת»¯ÎªÈÕÆÚ: %s ~ %ssz        °´ÈÕÆÚ/ÖÜ¿ªµÄÔÚ¿ª·þ¶¨ÖÆÏÞÖÆÌìÄÚ£¬²»´¦Àí! cfgID=%s,%s ~ %s,openServerDay=%s,actCustomServerDayMax=%s,K¿ª·þÌìÐÅÏ¢=%ssk        ³£¹æ»î¶¯£¬°´ÐÇÆÚ¿ªÆôµÄÔÚ°´ÈÕÆÚ¿ªÆôµÄʱ¼äÄÚ£¬²»´¦Àí! cfgID=%s,%s(%s) ~ %s(%s) in ymdCfgID=%s,%s ~ %ssr        ³£¹æ»î¶¯£¬°´ÐÇÆÚ¿ªÆôµÄδµ½¿ªÆôÑ­»·ÈÕÆÚ»òÒѽáÊøÑ­»·ÈÕÆÚ£¬²»´¦Àí! cfgID=%s,startDateStr=%s,endDateStr=%s, %ss         ÐÇÆÚXת»¯ÎªÈÕÆÚ: %s ~ %ss%s %02d:%02d:%02dt GetIsDayResets‹        °´ÈÕÆÚ/ÖÜ¿ªµÄ¿ªÊ¼ÈÕÆÚÔÚ¿ª·þ¶¨ÖÆÏÞÖÆÌìÄÚ£¬²»´¦Àí! cfgID=%s,curServerOpenDateTime=%s<=curStartDateTime=%s<=customMaxServerDateTime=%ss%d-%d-%d 00:00:00so        ¿ª·þÌìºó¿É¿ªÆôµÄ·ÇÿÈÕÖØÖû! »î¶¯IDÈÕÆÚÌØÊâÉèÖÃΪ¿ª·þ¶¨ÖÆÌì½áÊøºóÒ»Ìì! cfgID=%s,actIDDateTimeSpec=%ssX        ¿ª·þ³£¹æ»î¶¯£¬ÅäÖÃʱ¼ä¸ñʽ²»Ö§³Ö£¬²»´¦Àí! cfgID=%s,startDateStr=%s,endDateStr=%stMixsN        ºÏ·þ»î¶¯£¬ÅäÖ÷ǺϷþÌ죬²»´¦Àí! cfgID=%s,startDateStr=%s,endDateStr=%ss.        ·ÇºÏ·þ·þÎñÆ÷£¬²»´¦Àí! cfgID=%s,%s ~ %sisQ        µ±Ç°ºÏ·þÌ쳬¹ý»î¶¯½áÊøºÏ·þÌ죬²»´¦Àí! cfgID=%s,%s ~ %s < mixServerDay(%s)s!        ºÏ·þÌìת»¯ÎªÈÕÆÚ: %s ~ %ssL        ½ÚÈջ£¬ÅäÖ÷ÇÈÕÆÚ£¬²»´¦Àí! cfgID=%s,startDateStr=%s,endDateStr=%ss:        ·Ç·¨ÅäÖã¬Î´Öª»î¶¯ÀàÐÍ£¬²»´¦Àí! cfgID=%s,actNum=%stGetJoinStartTimetGetJoinEndTimettGetStartTimeListtGetEndTimeListtGetNotifyInfoStarttGetNotifyInfoEndtGetNotifyInfoLoops_        »î¶¯ÅäÖÿªÊ¼¼°½áÊøÊ±¼ä¸öÊý²»Æ¥Åä! actName=%s,cfgID=%s,startHMStrList=%s,endHMStrList=%st GetResetTypes %s 05:00:00s %s 00:00:00tGetAdvanceMinutessf        resetType=%s,startDayDate=%s,endDayDate=%s,startHMStrList=%s,endHMStrList=%s,advanceMinutes=%stminutess        ·Ç»î¶¯Ê±¼ä£¡²»´¦Àí£¡s¦        ÒѾ­´æÔÚÐèÒª´¦ÀíµÄÅäÖÃID(%s)£¡ µ±Ç°ÐèÒªÌáǰ֪ͨ»ò¹ã²¥µÄ»î¶¯Î´´ïµ½»î¶¯¿ªÊ¼Ê±¼ä£¬²»´¦Àí£¡cfgID=%s,advanceMinutes=%s,minNotifyStartMinute=%s,startDayDateJudge=%ssM        ÒѾ­´æÔÚÐèÒª´¦ÀíµÄÅäÖÃID(%s)£¡ µ±Ç°¸ÕºÃ½áÊøµÄʱ¼äµã£¬²»´¦Àí£¡cfgID=%stGetLimitWorldLVs%        limitWorldLV=%s,curWorldLV=%stOldtNewsi        »î¶¯Ê±¼äÄÚ£¬µ«·þÎñÆ÷ÊÀ½çµÈ¼¶Î´´ïµ½¿ªÆô»î¶¯ÊÀ½çµÈ¼¶£¬²»´¦Àí£¡recLimitWorldLV=%s > recWorldLV=%s %ss%d-%d-%d %s:00s3        advanceNoticeDateTime=%s,isAdvanceNotice=%ss        startList=%ss        end  List=%ss%s %s:00s        joinStartTimeList=%ss        joinEndTime  List=%sids'        startNotifyDict: minutes=%s, %ss'        end  NotifyDict: minutes=%s, %ss'        loop NotifyDict: lopInfo=%s, %ss]        ÐèÒª´¦ÀíµÄÔËÓª»î¶¯ÐÅÏ¢: cfgID=%s,isActTime=%s,isEnd=%s,isNotify=%s,isAdvanceNotice=%ss        startDateSync=%ss/        isDayRest=%s,startServerDay=%s,actID=%ss.        isDayRest=%s,actIDDateTime=%s,actID=%ss        activityInfoDict=%ss8±¾ÈÕÔËÓª»î¶¯ÐÅÏ¢¼ÓÔØÍê±Ï!reloadSign=%s,isRefreshState=%ss    operationTodayActionDict=%ss#    mapServerOperationActionDict=%ss==============================================================(iid(_tPlayerDBGSEventtGetDBGSTrig_ByKeyt Def_ServerDaytDef_IsMixServertDef_MixServerDayt IpyGameDataPYt GetConfigExRt GetServerTimeRtOperationAction_ReloadSignR RRRRtdatetimetstrptimetChConfigtTYPE_Time_FormattGetFuncEvalCfgt
GetFuncCfgt GetPlatformtGetServerGroupIDtIPY_DataRR t"Def_Notify_WorldKey_WorldAverageLvR^R?R(t%__GetOperationActionServerIpyDataListR@t&__GetOperationActionDisableIpyDataInfoR4RaRbRctGetCfgIDt GetStartDatet
GetEndDateR8R:tmaxR+tNoneR*t ActKey_ActNumR)t
startswithtGetOperationActionDateStrR7tcounttisdigittintt    timedeltatToIntDeftstrtsecondRhtActType_MixServerR6RjRkRmRnRoRpRqtErrLogRrRstmintkeysRutappendt    enumeratetTrueRAtupdatet ActKey_CfgIDtOperationActionName_LoginAwardtGameWorldAverageLvtGetWorldLVListByTimeRftActKey_WorldLVListtActKey_StartDateSyncttimetmktimet    timetupletActKey_DayIndext    ActKey_IDt SetConfigExRStDispose_OperationActionState(}tisRefreshStateRtkeyt openServerDayt isMixServert mixServerDayR!t
serverTimetcurHourtreloadSignHourt
reloadSigntcurDateTimeStrt curDateTimetstartDateInCustomCanOpenListtcustomMaxServerDaytmaxCustomServerDayMixtoperationTodayActionDicttmapServerOperationActionDicttplatformt serverGroupIDt
ipyDataMgrt
curWeekdayt
curWorldLVtactWorldLVLimitInfoOldtactWorldLVLimitInfoNewR/tcurServerActIpyDataListtcoverDisableLoopIpyDataInfotdisableLoopCfgIDDicttotherLoopCfgIDDicttcoverDisableWeekIpyDataInfotdisableWeekCfgIDDicttkOpenServerActInfoR#t platformListtserverGroupIDListtserverGroupIDListExceptRLt startDateStrt
endDateStrR9tactTypetkOpenServerCfgIDInfotactCustomServerDayMaxtactIDDateTimeSpect startDateSynctcurActTodayInfot actByLoopYmdt loopStartDatet loopEndDatetymdCfgIDt ymdStartDatet
ymdEndDatet loopCfgIDListt    loopIndext    loopTimest    actByWeekt    actByDatetstartServerDayt endServerDaytopenServerDateTimetendServerDateTimet startWeekDatet endWeekDatetcurServerOpenDateTimetcustomMaxServerDateTimetcurStartDateTimet    isDayResttstartMixServerDaytendMixServerDaytjoinStartTimeStrtjoinEndTimeStrtstartHMStrListt endHMStrListtnotifyInfoDictStarttnotifyInfoDictEndtnotifyInfoLoopInfot    resetTypet startDayDatet
endDayDatetadvanceMinutestadvanceNoticeDateTimetstartDayDateJudgetminNotifyStartMinutetminNotifyStartDateTimetactivityIpyDatat limitWorldLVt recInfoTypetworldLVLimitInfoRNRORPRQt    startListtendListtstartNotifyDictt endNotifyDicttloopNotifyDictt
notifyDictt    isActTimetisEndtisNotifytisAdvanceNoticet startDateTimet endDateTimethmIndext
startHMStrtendHMStrt startTimeStrt
endTimeStrtjoinStartTimeListtjoinEndTimeListtdtIndext notifyMinutet
notifyInfotnotifyDateTimet loopMinutest loopNotifyKeytloopNotifyParamListt    loopCountt loopMaxCounttactivityInfoDicttdayIndextactIDt actIDDateTime((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR
És´     
 
(              $ !!!    
    ,            8'                !   % !*      !!!    !!  /,!            
    
!              
 6     8;),
6
 6
 "  
 6
     ##         
  c Cs?t|d|ƒs(tjd|ƒgSg}t|d|ƒƒ}xôt|ƒD]æ}t|d|ƒ|ƒ}t|dƒs…gn    |jƒ}t|dƒs¦gn    |jƒ}    t|dƒsÇgn    |jƒ}
|rë||krëqQn|
rt} x‡|
D]} t    | t
ƒr| |ksst    | t ƒs=t    | t ƒrþt | ƒdkrþ| d|kon| d    knrþt} PqþqþW| rqQqn|    s¦|j|ƒqQxŽ|    D]†} t    | t
ƒrÎ| |ks"t    | t ƒsìt    | t ƒr­t | ƒdkr­| d|ko| d    knr­|j|ƒPq­q­WqQW|S(
Ns
Get%sCounts,ûÓиÃÔËÓª»î¶¯ÀàÐͶÔÓ¦»î¶¯Ê±¼ä±í! actName=%ss Get%sByIndexRaRbRciii(R4RRtgetattrRURaRbRcR t
isinstanceR—tlistttupleR@R¢R ( RÃRÁRÂR/RÈt actCfgCounttcfgIndexR#RÏRÐRÑtisExcepttserverGroupIDInfo((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR‹˜s>!!! 6     6  c, Csäi}i}i}i}i}i}d|j|j|jf}    tj|    tjƒ}
x¨|D] } | jƒ} | jƒ} | j    ƒ}t
|| ƒ}| j dƒrJ||kr½g||<n||}tj | ƒ\} }tj| tjƒ}tj|tjƒ}||
ks|
|kr1| |g|| <qü|j | ||gƒq\|j dƒr¥tj|dƒ}|rü||kr‹i||<n||}||| <qüq\| j dƒrtj| ||ƒ\}}}||
ksê|
|krý| |g|| <qü| |f}||kr"i||<n||}||krag|||g}}||g||<n||\}}|j | ƒq\| jdƒdkr\||kr¯g||<n||}tj| tjƒ}tj|tjƒ}|j | ||gƒq\q\Wi}i} i}!x||jƒD]n\}}|j|gƒ}||krVg||<n||}"x*|jƒD]\}}#|\} }|#\}}|\}}}|dt|ƒ}$d}%x^t|ƒD]P\}&}'|&|$krþ|'}%|"j |'||gƒqÇ|| ||$|g| |'<qÇWxk|D]c\}(}}||koH|knsi||kod|knr"|||(||g|!|%<q"q"WqmWqWi})x4|jƒD]&\}}|j|gƒ}|j|gƒ}*xó|D]ë\}+}}xk|D]c\}(}}||ko|kns8||ko3|knrñ|||(||g|)|+<qñqñWxk|*D]c\}'}}||ko…|kns¦||ko¡|knr_|||'||g|)|+<q_q_WqÛWq¤W|!|| |)||fS(    Ns%d-%d-%dReRgiRds-ii(RRRRtChangeStrToDatetimeRƒtTYPE_Time_YmdFormatRRŽRR8R“R”R R™tGetOperationActionLoopDateR•RAR)R@R¡(,R/R»RÈtactNumYMDIpyDataInfotactNumLoopIpyDataInfotactNumWeekIpyDataInfoRÍRÊRÎtcurDateTimeYmdStrtcurDateTimeYmdR#RLRÒRÓR9tweekIpyDataListRéRêtendKOpenServerDayRÕRÛRÜRâtloopKeytloopIpyDataDictRàt loopDateInfotymdIpyDataListRÞRßtnowLoopYMDIpyDataInfoRËRÉtloopIpyDataListtloopInfoRát curLoopCfgIDR]t    loopCfgIDRÝRÌtloopIpyDatListt    weekCfgID((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRŒÂsª      
 
 
 
 
   8(8 8(c(Csà
tjƒrtj|ƒdSttƒ\}}|p8|}|t}|t}tjƒ}tj    ƒ}t
j
j d|j |j |j|j|jftjƒ}x8
tjD]-
}||krÃq«n|tjkrå||jƒ}n ||g}xã    |D]Û    }    d}
tj} d} |    jtjdƒ} ||krÃg}|tjkrn| ||krx||| }qxn
||}t|tƒrÃt|ƒdkrÃ|\} }}}}}xNt|ƒD]@\}}||}||koë|knr¾|d}
Pq¾q¾W|rsx€t|ƒD]W\}}||}||koB|knrTtj} Pq||krtj } qqWn|
r‚tjntj} ||krÀ||\}}t!j"d||ƒqÀqÃntj#|}|tjkrð|d| 7}n|j$|ƒ}tj%|}|tjkr,|d| 7}n|j$|ƒ}| r`||
kr`|| kr`qùntj&d|| ||
|| fƒ|j'||
ƒ|j'|| ƒt(j)|} t(j*|}!|tjkrë| d| 7} |!d| 7}!nt(j+| ƒ}"|    jtj,dƒ}#|    jtj-dƒ}$|"|#krÅtj&d|"|#fƒt(j.| |#ƒ|"rô|tj/kr‚t0j1| | |$ƒqô|tj2kr§t3j1| | |$ƒqô|tj4krÌt5j1| | |$ƒqô|tj6krôt7j1| | |$ƒqôn|#r£|tj8kr?t(j+tj9ƒ}%t(j.|!|%ƒtj&d|%ƒn|tj:kr[t;j<ƒqÂ|tj=krwt>j?ƒqÂ|tj@kr“tAjBƒqÂ|tjCkr¾| r tDjE| |$ƒq qÂ|tjFkrÝtGjH| ƒqÂ|tjIkrütJjK| ƒqÂ|tj/krt0jK| ƒqÂ|tj2kr=t3jK| | ƒqÂ|tj4kr_t5jK| | ƒqÂ|tj6krt7jK| | ƒqÂ|tjLkrÂtMjK| ƒqÂqÜ|tjIkrÜtJj1| ƒqÜntj&d    |"|#fƒ|
rp|tj/krt0jN| | |$ƒqp|tj2kr)t3jN| | ƒqp|tj4krKt5jN| | ƒqp|tj6krpt7jN| | ƒqpn|#r`|"|#kr`|| kr`tj&d
|| fƒ| tjkr·q`| tj kr`|tj/krët0jO| | |$ƒq]|tj2krt3jO| | |$ƒq]|tj4kr5t5jO| | |$ƒq]|tj6kr]t7jO| | |$ƒq]q`n| r¥|tj8kr¥t(j+|!ƒ}&|&|    tjP<tj&d |&ƒn|tjQkrÐ|rh
| rh
tR| ƒqh
n˜|tj:krþ|rh
| rh
t;jStTƒqh
nj|tjUkri    ||
krh
|
rh
d || f}'tj&d |'ƒtjVtjW|'tXtYjYƒƒƒqh
nÿ|tj=kr¼    |r”    | r”    t>jZ| ƒn||
krh
|
dkrh
t>j[ƒqh
n¬|tj@kr
|rç    | rç    tAj\| ƒn||
krh
|
dkrh
tAj]ƒqh
nY|tj^kr:
|rh
| rh
t_| ƒqh
n.|tjCkrh
|rh
| rh
tDj`| ƒqh
n|
|    tja<| |    tjb<tjVtjc||    ƒtj&d|    ƒ|tjkrÊ
|    ||| <qù|    ||<qùWq«WdS(Ns%d-%d-%d %d:%d:00iiis_%ssTÔËÓª»î¶¯±ä¸ü: actName=%s,actNum=%s,preState=%s,state=%s,preStateJoin=%s,stateJoin=%ss'    dbActID±ä¸ü: dbActID=%s,curActID=%ss&    ¼Ç¼»î¶¯¿ªÆôʱÊÀ½çµÈ¼¶: worldLV=%ss'    dbActID²»±ä: dbActID=%s,curActID=%ss.    ²ÎÓë״̬±ä¸ü: preStateJoin=%s,stateJoin=%ss    »î¶¯ÊÀ½çµÈ¼¶: actWorldLV=%ss%s|%ss    Æï³èÊ¢Ñ翪ʼ: relatedID=%ss    sendMapServerMsgDict: %s(dRR    R%tDispose_CrossActStateR
R R R't GetGameWorldRRR‚RRRRRRƒR„R R(R*R+tActStateJoin_NoneR‘R)R’R%R&R@R¡tActStateJoin_StarttActStateJoin_Endt PlayerControlt WorldNotifyt!Def_WorldKey_OperationActionStatet GetDictByKeyt%Def_WorldKey_OperationActionStateJoinR?tSetDictRxtDef_OperationActIDtDef_OActWorldLVRyR®R­tSetDBGSTrig_ByKeytOperationActionName_BossTrialtPlayerActBossTrialtOnActEndtOperationActionName_XianXiaMJtPlayerActXianXiaMJtOperationActionName_GubaotPlayerActGubaot!OperationActionName_HorsePetTraintPlayerActHorsePetTraintNeedWorldLVOperationActNameListRŠtOperationActionName_BossRebornt GameWorldBosstResetBossRebornPointRRtResetFairyCeremonyRRtResetNewFairyCeremonyRRtOnResetFeastRedPackettOperationActionName_FlashSalet PlayerStoretResetFlashSaleBuyCntt"OperationActionName_GarbageSortingtPlayerActGarbageSortingt
OnActStartt#OperationActionName_FamilyCTGAssisttPlayerActFamilyCTGAssisttOnActInStateRefresht OnActJoinEndtActKey_WorldLVRRtSetBossRebornNeedPointR¢t!OperationActionName_HorsePetFeastR,t(Def_Notify_WorldKey_ActionBossRebornSignR—RªRtOnFairyCeremonyEndRtOnNewFairyCeremonyEndRRRt ActKey_StatetActKey_StateJoinR-((t reloadRefreshR R!R¿R.t    gameWorldR»R/tcurActMapInfoDictListR0tstatet    stateJoinR#R9ttodayActInfoListRRR    RRtdIndexRRtjIndextjoinStartDateTimetendJoinDateTimet    notifyKeyt    paramListtdictNametpreStatet dictNameJoint preStateJointdbOperationActIDKeytdbOperationActWorldLVKeytdbActIDtcurActIDR!tworldLVt
actWorldLVt    relatedID((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR°5sX   
 
          
!
 
 
        #         )      c
Cs|s
dSt|jƒƒt|jƒƒkr2dStj|ƒ\}}tjƒ}|jƒ||_||_    g|_
x^t |jƒƒD]J\}}|jƒ|}tj ƒ}||_ ||_|j
j|ƒq‹Wt|j
ƒ|_|jƒ|_|jƒ|_|sytjƒ}    xkt|    jƒƒD]D}|    j|ƒ}|dks.|jƒ rbq.ntj||ƒq.Wntj||ƒdS(N(R@RmRnRR”tChPyNetSendPackttagGCMultiExpRateInfotCleart    StartDatetEndtDatet ActivityTimeR¡ttagGCMultiExpRateTimet    StartTimetEndtTimeR tActivityTimeCountt
GetLVLimittLimitLVt GetAddExpRatet
AddExpRatetGetPlayerManagerRUtGetPlayerCounttGetPlayerByIndexR‘t    GetInitOKt NetPackCommont SendFakePack(
R#RRÒRÓtmultiExpRateInfotit    startTimetendTimettimeInfot playerManager((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR's8$ 
                      cCsø|s
dStj|ƒ\}}tjƒ}|jƒ||_||_|jƒ|_|j    ƒ|_
|j ƒ|_ |sätj ƒ}xkt|jƒƒD]D}|j|ƒ}|dks™|jƒ rÍq™ntj||ƒq™Wntj||ƒdS(N(RR”RˆttagGCMultiRealmPointInfoRŠR‹RŒt GetMultipletMultipleR’R“t GetPointLimitt
LimitPointR–RUR—R˜R‘R™RšR›(R#RRÒRÓtmultiRealmPointInfoR¡R((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRIs& 
         c- Csßd}tjtjƒd}tjtjƒ}tjtjƒd}|||g}tj|ƒ}|r€|d|kr€|dSg}tjƒ}t    |j
ƒdƒ}t t j ƒƒ}    tj |    tjƒ}
tjƒ} tjddƒ} tjddƒ} tjdƒtjd| ||fƒtjd| ƒtjd    ||| fƒg}g}|| kr“tjd
| ƒ}|sŠg}ntjd t|ƒƒg}g}x­|D]¥}|jƒ}|jƒ}||krî|j|ƒn|j|ƒ|jƒ|kr´|j|ƒd}|j||jƒ|gƒtjd |||fƒq´q´Wtjd |ƒtjd|ƒtjd|ƒn|rš|| kršg}tjƒ}x»t|jƒƒD]§}|j|ƒ}|jƒ}|jƒ}||kr|j|ƒn|jƒ|krÊ|j|ƒd}|j||jƒ|gƒtjd|||fƒqÊqÊWtjd|ƒtjd|ƒn tjdƒtjdƒtjƒ}|j ƒ}x+t|ƒD]}|j!|ƒ}|jƒ}|t"j#gkr#tjd|ƒqÙn||krFtjd|ƒqÙn|j$ƒ}|s|j|gƒtjd|ƒqÙnd|krº||krºtjd||j%ƒfƒqÙnd|krÐ|dn||}d}|j|||gƒqÙWtjdƒx—|D]\}}}|jƒ}|j&ƒ}g}g} i}!i}"d}#x|D]\}$}%d|
|$|%df}&t'j'j(|&tj)ƒ}'|j|'j*|'j+fƒ|'t'j,d|j-ƒƒ}(| j|(j*|(j+fƒ|!j.|#gƒ})|)j|'|(fƒ|)|!|#<xF|j/ƒD]8\}*}+|'t'j,d|*ƒ},|+|"|,j*|,j+f<qWqZW|j||| |!|"gƒtjd|||| |!|"fƒqWtj0|||gƒ}tjd|ƒtjd ƒ|dS(!NtTodayDailyActionInfoiiR_R`s ===== ¼ÓÔØ½ñÌìÈÕ³£»î¶¯ÐÅÏ¢ =====s$¿ª·þÊÇÐÇÆÚ%s, ¿ª·þµÚ%sÌì, µ±Ç°ÐÇÆÚ%ss×î´óÓÐЧ¶¨ÖÆ¿ª·þÌì: %ss,ÊÇ·ñºÏ·þ: %s, ºÏ·þÌì: %s, ×î´ó¶¨ÖƺϷþÌì: %stDailyActionCustoms    ¶¨ÖƵĿª·þÈÕ³£»î¶¯ÌõÊý: %ss@    Ôö¼Ó±¾ÈÕ¿ª·þÈÕ³£»î¶¯ÐÅÏ¢: customType=%s,dailyID=%s,dataID=%ss"    ¶¨ÖƵĿª·þÈÕ³£ÅäÖñíIDÁбí: %ss     ¶¨ÖƵĿª·þÈÕ³£»î¶¯IDÁбí: %ss!    ½ñÌì¶¨ÖÆµÄ¿ª·þÈÕ³£±íIDÁбí=%sis@    Ôö¼Ó±¾ÈպϷþÈÕ³£»î¶¯ÐÅÏ¢: customType=%s,dailyID=%s,dataID=%ss     ¶¨ÖƵĺϷþÈÕ³£»î¶¯IDÁбí: %ss!    ½ñÌì¶¨ÖÆµÄºÏ·þÈÕ³£±íIDÁбí=%ss0    ³¬¹ý×î´ó¶¨ÖÆ¿ª·þÌ죬²»¶¨ÖÆ£¬×ß³£¹æÈÕ³£ÅäÖã¡s    ´¦Àí³£¹æÈÕ³£»î¶¯ÅäÖÃs$    ²»ÐèÒª´¦ÀíµÄÈÕ³£»î¶¯! dailyID=%ss:    ³£¹æ»î¶¯IDÅäÖÃÊǽñÌìµÄ¶¨ÖƻID£¬²»´¦Àí£¡: dailyID=%ss(    Ôö¼Ó±¾ÈÕ³£¿ªÈÕ³£»î¶¯ÐÅÏ¢: dailyID=%st0s5    ²»ÊÇÈÕ³£»î¶¯¿ªÆôÐÇÆÚ: dailyID=%s,openWeekLimit=%ss    -----------------------s%s %02d:%02d:%02dRtsm    Ôö¼Ó±¾ÈÕÏÞʱÈÕ³£»î¶¯ÐÅÏ¢: customType=%s,dailyID=%s,openList=%s,overList=%s,goonStateDict=%s,notifyDict=%ss%±¾ÈÕÈÕ³£»î¶¯ÐÅÏ¢¼ÓÔØÍê±Ï! loadSign=%ss==============================================================(1RxRyRzR{R|R}R~RRRšRR—RªtChangeTimeNumToStrRƒR-tGameWorldProcesstGetOpenServerWeekdayR†R?tGetIpyGameDataListNotLogR@tGetIDt
GetDailyIDR tGetOpenServerDaytGetOpenTimeListR‰RUtGetDailyActionCustomMixCounttGetDailyActionCustomMixByIndextGetMixServerDaytGetDailyActionCounttGetDailyActionByIndexR tDailyActionID_CrossBattlefieldtGetOpenTimeDictRŸt GetNotifyInfoRR‚R„RRR˜t GetDurationR)RAR¯(-R²R³R´RµtloadSignR¨ttodayActionInfotdayTimetweekDaytcurTimet
curDateStrtopenServerWeekdaytcurMaxCustomServerDayR¾tcustomDailyIDListtdailyTimeInfoListtcustomIpyDataListt customIDListttodayCustomIDListt customIpyDatatdataIDtdailyIDt
customTypeRÃRtdailyActionCountt dailyIpyDatat openTimeDictt openTimeListR#tnotifyInfoDicttopenListtoverListt goonStateDictR    t    OpenStateRRt openTimeStrt openDateTimet overDateTimetopenStateTimeListRRR((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt__GetTodayDailyActionInfodsÞ              !     !           
     cCs$tjƒrtjƒntƒ}|s,dStjƒ}tjƒ}|j|jf}xÇ|D]¿}|d}d}t    |ƒdkrŽd}nÎ|d\}}}    }
||kr¹d}nq||krÎd}n\xY|    j
ƒD]K\} } x<| D]4} | d|ko| dknrî| }PqîqîWqÛW||
kr\|
|\}}t j d||ƒnt j|}|j|ƒ}||krŠq]n|rÒ|t jkrÒtjƒtjt j|ttjƒƒƒqÒntj||ƒ|j||ƒtjd|||fƒt|||ƒq]WdS(Niis7ÈÕ³£»î¶¯×´Ì¬±ä¸ü: dailyActionID=%s,state=%s,dictName=%s(RR    R%tDispose_CrossDailyActionStateRÚRBRRRR@RARFRGR t$Def_Notify_WorldKey_DailyActionStateRItDailyActionID_FamilyRobBossRZt(SyncMapServer_HorsePetRobBossPlayerCountR,RlR—RªRKR?t __DoLogic_GameServer_ActionState(ttodayDailyActionInfoRrR¾t curHourMinutet
actionInfot dailyActionIDRtRÒRÓRÔR    t    goonStateRÙt dateTimeInfoR{R|R}t beforeState((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytDispose_DailyActionStateõsN         
               $    
)cCsÕtjƒ}tjƒr%tjƒnIxFtjD];}tj|}|j|ƒ}|r/tj    ||ƒq/q/Wt
ƒ}|sdSxM|D]E}|d}tj |}|j|ƒ}|rˆtj    ||ƒqˆqˆWdS(Ni( RRBR    R%t"SendMapServerCrossDailyActionStateR tCrossDailyActionIDListt)Def_Notify_WorldKey_CrossDailyActionStateRIR,RÚRÜ(RrRãR}RtRàRâ((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytSendMapServerDailyActionState9s$         
 cCsd}tj|ƒ}|dkr™i}tjƒ}xÞt|jƒƒD]Ê}|j|ƒ}|jƒ}|jƒ}|j    ƒ|j
ƒ|j ƒ}}    }
||j ƒ|j ƒ} } } |j|gigƒ\}}|j||    |
gƒ| | | g||<||g||<qFWg}x_|jƒD]Q\}}|\}}x6|jƒD](\}}||krL|j|ƒqLqLWq'W|jƒi}xét|jƒƒD]Õ}|j|ƒ}|jƒ}|jƒ}|jƒ|jƒ}}|j
ƒ|j ƒ}    }
|j ƒ|j ƒ} } |j|gigƒ\}}|j|||    |
gƒ||| | g||<||g||<qŸWg}x_|jƒD]Q\}}|\}}x6|jƒD](\}}||kr°|j|ƒq°q°Wq‹W|jƒi}xÖt|jƒƒD]Â}|j|ƒ}|jƒ}|jƒ}|jƒ}|j
ƒ|j ƒ}    }
|j ƒ|j ƒ} } |j|gigƒ\}}|j||    |
gƒ|| | g||<||g||<qWg}x_|jƒD]Q\}}|\}}x6|jƒD](\}}||kr|j|ƒqqWqÜW|jƒtj||||gƒ}tjdƒtjd|ƒtjd|ƒtjd|ƒn|S(NtFBStateEndTimeNotResets1¼ÓÔØ¸±±¾×´Ì¬½áÊøÊ±¼ä²»ÐèÒªÖØÖÃ״ֵ̬µÄÊý¾ÝIDÁбí:s    ²»ÐèÒªÖØÖõij£¹æ³£¹æID: %ss    ²»ÐèÒªÖØÖõĿª·þ¶¨ÖÆID: %ss    ²»ÐèÒªÖØÖõĺϷþ¶¨ÖÆID: %s(R}R~R‘R‰RUtGetFBStateTimeCounttGetFBStateTimeByIndexR¯t GetDataMapIDtGetStartWeekdayt GetStartHourtGetStartMinutet
GetEndHourt GetEndMinuteR)R RAtsorttGetFBStateTimeCustomCounttGetFBStateTimeCustomByIndextGetOpenServerWeekR±tGetFBStateTimeCustomMixCounttGetFBStateTimeCustomMixByIndexRµR¯RR?(R²tnotResetIDListtmapStateTimeDictRÃRtfbStateTimeIpyDataRÊt    dataMapIDt startWeekDayt    startHourt startMinutet
endWeekDaytendHourt    endMinutet startTimeListt endTimeDicttFBStateEndTimeNotResetIDListR RŸtcustomStateTimeDictRÉtopenWeektopenDayt"FBStateEndTimeNotResetCustomIDListtcustomMixStateTimeDictt
openMixDayt%FBStateEndTimeNotResetCustomMixIDList((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt!__GetFBStateEndTimeNotResetIDListSs„    &   
 
 
 c    Csd}tjtjƒd}tjtjƒ}tjtjƒd}|||g}tj|ƒ}|r€|d|kr€|dStjtjƒd}tjƒ}|j    ƒd|j
|j }}}    t j ƒ}
|
dkrótjd|
ƒgStjddƒ} tjddƒ} tjdƒtjd|
||||    fƒtjd    | ƒtjd
||| fƒtjƒ} g}g}|| krÅtjd |
ƒ}|s´g}ntjd t|ƒƒg}g}xµ|D]­}|jƒ}|jƒ}||kr|j|ƒn|j|ƒ|jƒ|krÞ|j|ƒd||}}}|j||||gƒtjd ||fƒqÞqÞWtjd|ƒtjd|ƒtjd|ƒn|rÔ|| krÔg}tjƒ} xÃt| jƒƒD]¯}| j|ƒ}|jƒ}|jƒ}||krE|j|ƒn|jƒ|krü|j|ƒd||}}}|j||||gƒtjd||fƒqüqüWtjd|ƒtjd|ƒn tjdƒtjdƒxét| jƒƒD]Õ}| j|ƒ}|jƒ}|jƒ}||krWtjd||fƒqnd|jƒ|jƒ}}}||kr¦tjd||||fƒqn|j||||gƒtjd||fƒqWtj|||gƒ}tjd|ƒtjdƒ|dS(NtTodayFBStateTimeInfoiis.»ñÈ¡¿ª·þÊÇÐÇÆÚ¼¸Êý¾Ý´íÎó£¡openServerWeekday=%sR_R`s"===== ¼ÓÔØ½ñÌ츱±¾×´Ì¬Ê±¼ä±í =====s0¿ª·þÊÇÐÇÆÚ%s, ¿ª·þµÚ%sÌì, µ±Ç°ÐÇÆÚ%s,%sµã%s·Ö £¡s×î´óÓÐЧ¶¨ÖÆ¿ª·þÌì: %ss,ÊÇ·ñºÏ·þ: %s, ºÏ·þÌì: %s, ×î´ó¶¨ÖƺϷþÌì: %stFBStateTimeCustoms    ¶¨ÖƵĿª·þ¸±±¾»î¶¯ÌõÊý: %ss9    ½ñÌìÒª´¦ÀíµÄ¿ª·þ¸±±¾×´Ì¬ÅäÖÃ: customType=%s,dataID=%ss    ¶¨ÖƵĿª·þ¸±±¾±íIDÁбí: %ss    ¶¨ÖƵĿª·þ¸±±¾µØÍ¼Áбí: %ss!    ½ñÌì¶¨ÖÆµÄ¿ª·þ¸±±¾±íIDÁбí=%sis9    ½ñÌìÒª´¦ÀíµÄºÏ·þ¸±±¾×´Ì¬ÅäÖÃ: customType=%s,dataID=%ss    ¶¨ÖƵĺϷþ¸±±¾µØÍ¼Áбí: %ss!    ½ñÌì¶¨ÖÆµÄºÏ·þ¸±±¾±íIDÁбí=%ss4    ³¬¹ý×î´ó¶¨ÖÆ¿ª·þÌ죬²»¶¨ÖÆ£¬×ß³£¹æ¸±±¾×´Ì¬Ê±¼ä£¡s    ´¦Àí³£¹æ¸±±¾×´Ì¬Ê±¼äÅäÖÃs;    dataID=%s,dataMapID=%s, ÔÚ¶¨ÖƵĸ±±¾µØÍ¼ÁбíÀï,²»´¦Àí£¡sU    dataID=%s,dataMapID=%s, ²»ÊDZ¾ÌìµÄ¸±±¾»î¶¯,²»´¦Àí£¡ curWeekDay=%s,startWeekDay=%ss5    ½ñÌìÒª´¦ÀíµÄ¸±±¾×´Ì¬ÅäÖÃ: customType=%s,dataID=%ss)±¾ÈÕ¸±±¾»î¶¯×´Ì¬ÐÅÏ¢¼ÓÔØÍê±Ï! loadSign=%ss==============================================================( RxRyRzR{R|R}R~RRRRRR¬R­RR†R?R‰R®R@R¯RïR R±RURùRúRµRíRîRðR¯(R²R³R´RµR¼RR»t
curWeekDayR·t    curMinuteRÂRÃR¾RÃtcustomMapIDListtfbStateTimeInfoListRÆRÇRÈRÉRÊRþRÌRÿRRRý((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt__GetTodayFBStateTimeInfo¢s¢ $                                 c# CsÂtƒ\}}}tjƒ}|jƒd|j|j}}}|d|d|}tjƒ}tƒ}    xN|    D]F\}
} } } | jƒ}| j    ƒ}| j
ƒ| j ƒ}}| j ƒ| j ƒ}}| dkrå|} n| dkrú|} n| d|d|}| d|d|}| jƒ}|rÔ|tjd| |ƒ}tj|j|j|j||dƒ}||}|jdd|jd}||krÔ||\}}tjd||ƒqÔntt}}||kröt}n¤||krQ|
dkr||ksE|
d    kr2||ksE|
rš||kršt}qšnI|r~||kr~||kpx||k}n||ko•|kn}|r¯d}d}n$|rt| jƒ}| jƒ}nqttj|} |j| ƒ|krEtj| |ƒ|j | |ƒ|r(t!|ƒntj"d
||| fƒntj#|}!|j|!ƒ}"|"|krttj|!|ƒ|j |!|ƒtj"d |||!fƒt$|!||"ƒqtqtWdS( Nii'idiRfiii<is>¸±±¾ÊÇ·ñ¿É½øÈë±ä¸ü: dataMapID=%s,updCanEnter=%s,canEnterKey=%ss=¸±±¾×´Ì¬±ä¸ü: dataMapID=%s,updStateValue=%s,fbFuncStateKey=%s(%RRRRRRRBRR¯RïRñRòRóRôtGetNotifyInfoDictRR˜RRRRftsecondsRFRGR R¢t GetCanEntert GetStateValueR tDef_Notify_WorldKey_FBCanEnterRIR,RKtSaveFBOpenRecordR?tDef_Notify_WorldKey_FBFuncStateRß(#RR RR»RR·Rt
curTimeWHMRrRRÌRÿRR#RÊRþRRRRt startTimeWHMt
endTimeWHMRÑRt diffDateTimet
diffMinuteR{R|tisUpdatetisResett updCanEntert updStateValuet canEnterKeytfbFuncStateKeyRæ((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytDispose_FBStateTimesv $                      '
                  c Cs|tjƒ}d|j|jf}i}tj}tjƒ}|j|ƒ}d}x`t    |j
ƒƒD]L}|j |ƒ}    |    j ƒ}
|
|kr›|    }nt |    jƒƒ||
<qeW|sú|jƒ}|j|ƒ|jt|gƒƒ|g||<nkt |jƒƒ} || kra| j|ƒt| ƒdkrA| d=n|jt| ƒƒ| ||<ndStjtj|ƒdS(Ns%02d%02dii(RRRRR t*Def_UniversalGameRecType_LimitFBOpenRecordR;R>R‘trangeRTRVRZtevalRWRBRFRCRšR R@R,t Def_Notify_WorldKey_FBOpenRecord( tmapIDRÀt    curDayStrt fbOpenRecordtrecTypetuniversalRecMgrtrecTypeListDatat findRecDataR]tuniversalRecDatatrecMapIDt
recordList((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRgs8                
 cCs‚i}tj}tjƒ}|j|ƒ}xQt|jƒƒD]=}|j|ƒ}|jƒ}t    |j
ƒƒ}|||<q=W|S(N( R R*RR;R>R+RTRVRZR,RW(R0R1R2R3R]R5R6R7((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytGetFBOpenRecord‹s      c Cs=g}g}tjƒ}tjƒ}xãt|jƒƒD]Ï}|j|ƒ}|jƒ}|jƒr€||kr€|j    |ƒn||kr7t
j |}|j |ƒ}|rÁtj ||ƒnt
j|}    |j |    ƒ}
|
rötj |    |
ƒn|j    |ƒq7q7Wtj t
j|ƒtƒ} tj t
j| ƒdS(N(RRBR}R‰RURíRîRïRR R RRIR,Rt*Def_Notify_WorldKey_FBEnterTimeLimiitMapIDR8R-( tfbEnterTimeLimitMapIDListt sendMapIDListRrRÃRRýRþR'tcanEnterR(t fbFuncStateR0((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytSendMapServerFBFuncState˜s.          cCsÙxÏttƒD]Á\}}||dkr/q nt||ƒtkrUtjdƒdSt||ƒ}t|ƒtkr|ƒd}|||kr dSq n|||kr³q n|||krÊt    j
St    j SWt    j S(Ns-s###ϵͳʱ¼ä»ñµÃÒì³££¬ÎÞ´ËÊôÐÔi( R¡tATTR_CALL_TIMER4R¢RR?R$ttypeRRƒtDef_Cmp_Greatert Def_Cmp_Lowert Def_Cmp_Equ(RÀR R]tcallObjt
curCallObjtwday((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytCompareActTime¾s$  cCsH|s
tStj|dƒ|ko;tj|dƒknrDtStS(Nii(R¢RtGetDateTimeByStrR (RÀtactSect((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt IsAtActTimeâs &icCsC|tjtjkr)tj||ƒn|tjtjkrOtj    |ƒnð|tjtj
krxt j ||ƒnÇ|tjtj kr¡tj||ƒnž|tjtjkrÇtj|ƒnx|tjtjkrítj|ƒnR|tjtjgkrtj|ƒn)|tjtjgkr?tj|ƒndS(N(R RÜtDailyActionID_FamilyPartytPlayerFamilyPartytFamilyPartyStateChangeRRƒtDef_FBMapID_FamilyWartGameWorldFamilyWartOnFamilyWarStateChangetDef_FBMapID_XMZZt
PlayerXMZZtOnXMZZStateChangetDef_FBMapID_FamilyInvadetPlayerFamilySWRHtOnSWRHStateChangeRÝRZtOnHorsePetRobBossActionChangetDailyActionID_CrossReamPKt CrossRealmPKt$OnCrossRealmPKDailyActionStateChangetDailyActionID_FamilyBoss1tPlayerFamilyBosstOnAllFamilyBossStateChangetDailyActionID_HorsePetBosstPlayerHorsePetBosstOnHorsePetBossStateChange(R}tisOpenRæ((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRßõs"(DRƒRRRFR RxRYRORLR}RRRURZRRRRfRcRPRSRURWRR¦R\R_R%R¬RˆRšR`ttypesRRªR-tTime_YmdFormatR?R+R€R R'R$R2R‘R8R:RSR^R¢R
R‹RŒR R°RRRÚRçRëRRR)RR8R>RGRJRß(((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt<module>sx                                        .                 ÿР   *    s ò "     ‘    D        O    _    f    $         &    $