xdh
2019-02-21 92eee67f85cbd29feb1287ae5a15ad0c787e95cb
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
âOQ\c@sKddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlmZddlZejZddddddgZed    ƒ\ZZZd
„Z d „Z!e"d „Z#d „Z$e%d„Z&dd„Z(dd„Z)d„Z*d„Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d„Z6d„Z7d„Z8d „Z9d!„Z:d"„Z;dS(#iÿÿÿÿN(tIntTypetweekdaytyeartmonthtdaythourtminuteicCsMtƒ\}}|t}|r#dStj|kr\|tjd}|r\t||ƒq\ntj|kr˜|tjd}|r˜tj||ƒq˜ntj|krÔ|tjd}|rÔt    j
||ƒqÔntj |kr |tj d}|r t ||ƒq ntj |krI|tj d}|rItj||ƒqIndS(Ni(t__GetOperationActionInfotOperationAction_TodayInfot ShareDefinetOperationActionName_ExpRatetSync_OperationAction_ExpRatet!OperationActionName_FairyCeremonytPlayerFairyCeremonyt"Sync_OperationAction_FairyCeremonyt$OperationActionName_NewFairyCeremonytPlayerNewFairyCeremonyt%Sync_OperationAction_NewFairyCeremonytOperationActionName_RealmPointtSync_OperationAction_RealmPointt"OperationActionName_FeastRedPackettPlayerFamilyRedPackettSync_FeastRedPacket(t    curPlayertisReloadtOperationActionInfotoperationActionDicttipyData((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt OnPlayerLogin>s2
cCs™tƒ\}}|t}|r#dStjƒ}xctjD]X}tj|}|j|ƒ}|j    |iƒ}||tj
<tj tj ||ƒq9WdS(N( RtOperationAction_MapServerInfot    GameWorldt GetGameWorldR    tOperationActionNameListtChConfigt!Def_WorldKey_OperationActionStatet GetDictByKeytgett ActKey_StatetSendMapServerMsgExt'Def_Notify_WorldKey_OperationActionInfo(RRtmapServerInfoDictt    gameWorldtactNametdictNametstatetsendMapServerMsgDict((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt!SendMapServerOperationActionStatecs
   cGCsý d}tjtjƒd}tj|ƒ}tjƒ}|j}|dkrRdnd}d||f}|rˆ|t|krˆt    |fSd|j
|j |j |j|j f}tjj|tjƒ}    tjddƒ}
i} i} tjƒ} tjƒ}tjd|    | ||
|fƒx^ tjD]S }t|| |ƒ}tjd    |t|ƒfƒg}g}i}d}xÒ
|D]Ê
}|jƒ}|jƒ}|jƒ}tjd
||jƒ|jƒ||||    fƒ|j ƒrÂ|j ƒrÂt!|ƒt!|ƒ}}||dkr<tjd ||||fƒq|n|    tj"d ||ƒ}|    tj"d ||ƒ}d |j
|j |j f}d |j
|j |j f}tjd||fƒn¸|tj#krz||
krtjd||||fƒq|n|    tj"d |
|ƒ}tjjd||j|j |j$ftjƒ}||krztjd|||fƒq|qznt%|dƒr³t%|dƒr³|j&ƒ}|j'ƒ} n g}g} t%|dƒrÚ|j(ƒni}!t%|dƒrû|j)ƒni}"t%|dƒr|j*ƒni}#t|ƒt| ƒkr]tj+d|||| fƒq|nt%|dƒsrdn    |j,ƒ}$|$dkrÅtjjd|tjƒ}%tjjd|tjƒ}&nŸ|$dkrtjjd|tjƒ}%tjjd|tjƒtj"d dƒ}&nHtjjd|tjƒ}%tjjd|tjƒtj"d dƒ}&t%|dƒsydn    |j-ƒ}'tjd|$|%|&|| |'fƒg}(g})i}*i}+i},t    }-t    }.t    }/t    }0| sì|  r`|%}1|&}2|(j.|1ƒ|)j.|2ƒ|%|    ko)|&knrZ|j.|1ƒ|j.|2ƒt/}-|    |&k}0qZnú|%|    kow|&knrZ|    |&k}0xÏt0|ƒD]¾\}3}4| |3}5d|    j
|    j |    j |4f}6d|    j
|    j |    j |5f}7tjj|6tjƒ}1tjj|7tjƒ}2|(j.|1ƒ|)j.|2ƒ|j.|1ƒ|j.|2ƒt/}-q•Wn|'rÖ|%rÖ|%tj"d|' ƒ}8|8j
|    j
kr¼|8j |    j kr¼|8j |    j kr¼t/}/ntjd |8|/fƒntjd!|(ƒtjd"|)ƒtjd#|ƒtjd$|ƒxt0|(ƒD]\}9}1|)|9}2xy|!j1ƒD]k\}:};|1tj"d|:ƒ}<|<j
|    j
krJ|<j |    j krJ|<j |    j krJ|;|*|<<t/}.qJqJWxy|"j1ƒD]k\}:};|2tj"d|:ƒ}<|<j
|    j
krÆ|<j |    j krÆ|<j |    j krÆ|;|+|<<t/}.qÆqÆW|#r't|#ƒdkr'|#d \}=}>t|#ƒdkry    |#dng}?|>|?g};d1\}@}Axœ|=r2
|>r2
|@|Akr2
|@d7}@|1tj"d|=|@ƒ}<|<|2kræ    Pn|<j
|    j
krš    |<j |    j krš    |<j |    j krš    |;|,|<<t/}.qš    qš    Wq'q'W|*sL
|+sL
|,rÍ
tjd&|!j2ƒ|*fƒtjd'|"j2ƒ|+fƒtjd(|#|,j2ƒfƒ|j3|*ƒ|j3|+ƒ|j3|,ƒn|- rè
|. rè
|/ rè
q|ntjd)||/|-|0|.fƒ|-s |/r|| s( |-rF |0 rF |}i|tj46}B|%|    koU |&knr d}C|%}Dt%|d*ƒs{ dn    |j5ƒ}E|Es™ |r¿ | r¿ |    |%j6}C|Dtj"d |Cƒ7}Dnt!t7j8|Dj9ƒƒƒ}F|C|Btj:<|F|Btj;<tjd+|E|D|Ffƒn|j<ƒ|j<ƒ|B| |<tjd,|BƒqF q|q|W|sb |sb |sb |r(||||g| |<q(q(Wtj=||| | gƒ}tjd-||fƒtjd.| ƒtjd/| ƒtjd0ƒ|ró t>t/ƒnt/|fS(2NRiiis%s_%ss%d-%d-%d %02d:%02d:00tOperationActionsf===== ¼ÓÔØ±¾ÈÕÔËÓª»î¶¯ÐÅÏ¢: %s, serverID=%s,openServerDay=%s,customMaxServerDay=%s,reloadSign=%s =====s&¼ÓÔØÔËÓª»î¶¯: actName=%s,¿É´¦ÀíÌõÊý=%ssb    cfgID=%s,mark=%s,serverIDList=%s,startDateStr=%s,endDateStr=%s,openServerDay=%s,curDateTime=%ssR        µ±Ç°¿ª·þÌ쳬¹ý»î¶¯½áÊø¿ª·þÌ죬²»´¦Àí! cfgID=%s,%s ~ %s < openServerDay(%s)tdayss%d-%d-%ds!        ¿ª·þÌìת»¯ÎªÈÕÆÚ: %s ~ %ssO        °´ÈÕÆÚ¿ªµÄÔÚ¿ª·þ¶¨ÖÆÏÞÖÆÌìÄÚ£¬²»´¦Àí! cfgID=%s,%s ~ %s,openServerDay=%ss%s %02d:%02d:%02dsm        °´ÈÕÆÚ¿ªµÄ¿ªÊ¼ÈÕÆÚÔÚ¿ª·þ¶¨ÖÆÏÞÖÆÌìÄÚ£¬²»´¦Àí! cfgID=%s,curStartDateTime=%s,customMaxServerDateTime=%stGetStartTimeListtGetEndTimeListtGetNotifyInfoStarttGetNotifyInfoEndtGetNotifyInfoLoops_        »î¶¯ÅäÖÿªÊ¼¼°½áÊøÊ±¼ä¸öÊý²»Æ¥Åä! actName=%s,cfgID=%s,startHMStrList=%s,endHMStrList=%st GetResetTypes %s 05:00:00is %s 00:00:00tGetAdvanceMinutessf        resetType=%s,startDayDate=%s,endDayDate=%s,startHMStrList=%s,endHMStrList=%s,advanceMinutes=%ss%d-%d-%d %s:00tminutess3        advanceNoticeDateTime=%s,isAdvanceNotice=%ss        startList=%ss        end  List=%ss        needStartList=%ss        need  EndList=%sids'        startNotifyDict: minutes=%s, %ss'        end  NotifyDict: minutes=%s, %ss'        loop NotifyDict: lopInfo=%s, %ss^        ÐèÒª´¦ÀíµÄÔËÓª»î¶¯ÐÅÏ¢: cfgID=%s,isAdvanceNotice=%s,isActivity=%s,isEnd=%s,isNotify=%st GetIsDayResets.        isDayRest=%s,actIDDateTime=%s,actID=%ss        activityInfoDict=%ss8±¾ÈÕÔËÓª»î¶¯ÐÅÏ¢¼ÓÔØÍê±Ï!reloadSign=%s,isRefreshState=%ss    operationActionDict=%ss#    mapServerOperationActionDict=%ss==============================================================(iid(?tPlayerDBGSEventtGetDBGSTrig_ByKeyt Def_ServerDayt IpyGameDataPYt GetConfigExRt GetServerTimeRtOperationAction_ReloadSigntFalseRRRRtdatetimetstrptimeR!tTYPE_Time_Formatt
GetFuncCfgt GetServerIDtIPY_DatatLogR    R t%__GetOperationActionServerIpyDataListtlentNonetGetCfgIDt GetStartDatet
GetEndDatet
GetActMarktGetServerIDListtisdigittintt    timedeltatFeastOperationActionNameListtsecondthasattrR1R2R3R4R5tErrLogR6R7tappendtTruet    enumeratetitemstkeystupdatet ActKey_CfgIDR9R0ttimetmktimet    timetupletActKey_DayIndext    ActKey_IDtsortt SetConfigExtDispose_OperationActionState(GtisRefreshStatetkeyt openServerDayRt
serverTimetcurHourtreloadSignHourt
reloadSigntcurDateTimeStrt curDateTimetcustomMaxServerDayRtmapServerOperationActionDicttserverIDt
ipyDataMgrR*tcurServerActIpyDataListt needStartListt needEndListtneedNotifyDicttactivityIpyDataRtcfgIDt startDateStrt
endDateStrtstartServerDayt endServerDaytopenServerDateTimetendServerDateTimetcustomMaxServerDateTimetcurStartDateTimetstartHMStrListt endHMStrListtnotifyInfoDictStarttnotifyInfoDictEndtnotifyInfoLoopInfot    resetTypet startDayDatet
endDayDatetadvanceMinutest    startListtendListtstartNotifyDictt endNotifyDicttloopNotifyDictt
isActivitytisNotifytisAdvanceNoticetisEndt startDateTimet endDateTimethmIndext
startHMStrtendHMStrt startTimeStrt
endTimeStrtadvanceNoticeDateTimetdtIndext notifyMinutet
notifyInfotnotifyDateTimet loopMinutest loopNotifyKeytloopNotifyParamListt    loopCountt loopMaxCounttactivityInfoDicttdayIndext actIDDateTimet    isDayResttactID((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRxsh     
(              )       !!!    !  /,!         
      6    
6
 6
 "  
 6
    !   
 
 
  c CsHt|d|ƒs(tjd|ƒgStjƒ}i}t|d|ƒƒ}xìt|ƒD]Þ}t|d|ƒ|ƒ}|jƒ}t|dƒsgn    |jƒ}    |    rä||    krätjd||    ||j    ƒfƒq]nt
|j ƒƒ}
|j |iƒ} | j |
gƒ} | j |ƒ| | |
<| ||<q]Wg} xü|jƒD]î\}} g}t}xÀ| jƒD]²\}
} |
s•| }qwnx‘|
D]‰}t|tƒr½||kst|tƒsÛt|t
ƒrœt|ƒdkrœ|d|ko |dknrœ| | 7} t}PqœqœWqwW|rR| |7} qRqRW| S(    Ns
Get%sCounts,ûÓиÃÔËÓª»î¶¯ÀàÐͶÔÓ¦»î¶¯Ê±¼ä±í! actName=%ss Get%sByIndextGetPlatformListsC·Ç±¾Æ½Ì¨»î¶¯£¬²»È¡£¡platform=%s,platformList=%s,actName=%s,cfgID=%siii(RVRRWt GetPlatformtgetattrtxrangeRORªRHRLttupleRPR$RXR[RYt
isinstanceRRtlistRJRA(RsRrR*tplatformt actGroupDictt actCfgCounttcfgIndexRtactMarkt platformListt serverIDTupletserverIpyDataDictt ipyDataListRttgeneralIpyDataListt    isGeneralt serverIDInfo((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRIasJ  !# 
 6
 c Cs ttƒ\}}|p|}|t}|t}tjƒ}tjƒ}tjjd|j    |j
|j |j |j ftjƒ}x€tjD]u}d}d}    ||kr||\}    }
} } ||
krä|
j|ƒd}nf|| krùd}nQxNt|
ƒD]@\} }| | }||ko3|knr| d}PqqW|| kr| |\}}tjd||ƒqntj|}|j|ƒ}| r´||kr´qŽn|j||ƒ|j|iƒ}tj|}|jtjƒ}|jtjdƒ}|rtj|ƒ|krtj ||ƒ|tj!krptjtj"ƒ}tj tj#||ƒn|tj$krŒt%j&ƒq|tj'kr¨t(j)ƒq|tj*krÄt+j,ƒq|tj-krï|    rt.j/|    |ƒqq|tj0krt1j2|    ƒqn|tj!krFtjtj#|ƒ}||tj3<n|tj4krq|r¿|    r¿t5|    ƒq¿nN|tj6kr’|r¿|    r¿q¿n-|tj$krÀ|r¿|    r¿t%j7t8ƒq¿nÿ|tj'kr|rë|    rët(j9|    ƒn||kr¿|dkr¿t(j:ƒq¿n¬|tj*krf|r>|    r>t+j;|    ƒn||kr¿|dkr¿t+j<ƒq¿nY|tj=kr‘|r¿|    r¿t>|    ƒq¿n.|tj-kr¿|r¿|    r¿t.j?|    ƒq¿n||tj@<tjAtjB||ƒtjCd|||||fƒqŽWdS(Ns%d-%d-%d %d:%d:00iis=ÔËÓª»î¶¯±ä¸ü: actName=%s,preState=%s,state=%s,dictName=%s, %s(DRRARRRRR?RBRCRRRRRR!RDR    R RKtindexRZt PlayerControlt WorldNotifyR"R#tSetDictR$R:tDef_OperationActIDRcRbR;tSetDBGSTrig_ByKeytNeedWorldLVOperationActNameListt"Def_Notify_WorldKey_WorldAverageLvtDef_OActWorldLVtOperationActionName_BossRebornt GameWorldBosstResetBossRebornPointR R tResetFairyCeremonyRRtResetNewFairyCeremonyRRtOnResetFeastRedPackettOperationActionName_FlashSalet PlayerStoretResetFlashSaleBuyCnttActKey_WorldLVR
R tOperationActionName_CostRebatetSetBossRebornNeedPointRYRtOnFairyCeremonyEndRtOnNewFairyCeremonyEndRRRR%R&R'RH(t reloadRefreshRRRR(R)RoR*R,RR‹RŒt
notifyDicttdIndexR”R•t    notifyKeyt    paramListR+tpreStateR-tdbOperationActIDKeytcurActIDR¦tworldLVt
actWorldLV((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRfs¤ 
 
         
 
              $c    Cs²|s
dSt|jƒƒt|jƒƒkr2dStjtjƒd}tjƒ}|jƒt    j
|j ƒ|ƒ|_ t    j
|j ƒ|ƒ|_g|_x^t|jƒƒD]J\}}|jƒ|}tjƒ}||_||_|jj|ƒq°Wt|jƒ|_|jƒ|_|jƒ|_|sžt    jƒ}xkt|jƒƒD]D}|j|ƒ}|dksS|jƒ r‡qSnt j!||ƒqSWnt j!||ƒdS(Ni("RJR1R2R:R;R<tChPyNetSendPackttagGCMultiExpRateInfotClearRtGetOperationActionDateStrRMt    StartDateRNtEndtDatet ActivityTimeRZttagGCMultiExpRateTimet    StartTimetEndtTimeRXtActivityTimeCountt
GetLVLimittLimitLVt GetAddExpRatet
AddExpRatetGetPlayerManagerR­tGetPlayerCounttGetPlayerByIndexRKt    GetInitOKt NetPackCommont SendFakePack(    RRRitmultiExpRateInfotit    startTimetendTimettimeInfot playerManager((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR s8$ 
              cCs|s
dStjtjƒd}tjƒ}|jƒtj|jƒ|ƒ|_    tj|j
ƒ|ƒ|_ |j ƒ|_ |jƒ|_|jƒ|_|s    tjƒ}xkt|jƒƒD]D}|j|ƒ}|dks¾|jƒ ròq¾ntj||ƒq¾Wntj||ƒdS(Ni(R:R;R<RÞttagGCMultiRealmPointInfoRàRRáRMRâRNRãt GetMultipletMultipleRéRêt GetPointLimitt
LimitPointRíR­RîRïRKRðRñRò(RRRitmultiRealmPointInfoRøRô((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR/s& 
 c)
CsAd}tjtjƒd}tj|ƒ}|rI|d|krI|dSg}tjƒ}t|jƒdƒ}t    t
j
ƒƒ}tj |t j ƒ}tjƒ}tjddƒ|d}    tjdƒtjd|||fƒtjd|    ƒg}
g} ||    kr)tjd|ƒ} tjd    t| ƒƒg} g}x­| D]¥}|jƒ}|jƒ}||
kr„|
j|ƒn| j|ƒ|jƒ|krJ|j|ƒt}| j||jƒ|gƒtjd
|||fƒqJqJWtjd | ƒtjd |
ƒtjd |ƒn tjdƒtjdƒtjƒ}|jƒ}xüt|ƒD]î}|j|ƒ}|jƒ}||
kr¬tjd|ƒqhn|jƒ}|så|j|gƒtjd|ƒqhnd|kr ||kr tjd||jƒfƒqhnd|kr6|dn||}| jt ||gƒqhWtjdƒx| D]•\}}}|jƒ}|j!ƒ}g}g}i}i}d}x|D]\} }!d|| |!df}"t"j"j#|"t j$ƒ}#|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<q~WqºW|j|||||gƒtjdt    |ƒ|||||fƒqnWtj+|||gƒ}tjdƒtjdƒ|dS(NtTodayDailyActionInfoiiR/s ===== ¼ÓÔØ½ñÌìÈÕ³£»î¶¯ÐÅÏ¢ =====s(    ¿ª·þÊÇÐÇÆÚ%s, ¿ª·þµÚ%sÌì, µ±Ç°ÐÇÆÚ%ss    ×î´óÓÐЧ¶¨ÖÆ¿ª·þÌì: %stDailyActionCustoms    ±¾Öܶ¨ÖƵÄÈÕ³£»î¶¯ÌõÊý: %ss:    Ôö¼Ó±¾ÈÕÈÕ³£»î¶¯ÐÅÏ¢: isCustom=%s,dailyID=%s,dataID=%ss"    ±¾Öܶ¨ÖƵÄÈÕ³£ÅäÖñíIDÁбí: %ss     ±¾Öܶ¨ÖƵÄÈÕ³£»î¶¯IDÁбí: %ss    ½ñÌì¶¨ÖÆµÄÈÕ³£±íIDÁбí=%ss0    ³¬¹ý×î´ó¶¨ÖÆ¿ª·þÌ죬²»¶¨ÖÆ£¬×ß³£¹æÈÕ³£ÅäÖã¡s    ´¦Àí³£¹æÈÕ³£»î¶¯ÅäÖÃs:    ³£¹æ»î¶¯IDÅäÖÃÊǽñÌìµÄ¶¨ÖƻID£¬²»´¦Àí£¡: dailyID=%ss(    Ôö¼Ó±¾ÈÕ³£¿ªÈÕ³£»î¶¯ÐÅÏ¢: dailyID=%st0s5    ²»ÊÇÈÕ³£»î¶¯¿ªÆôÐÇÆÚ: dailyID=%s,openWeekLimit=%ss    -----------------------s%s %02d:%02d:%02dR8sg    Ôö¼Ó±¾ÈÕÈÕ³£»î¶¯ÐÅÏ¢: isCustom=%s,dailyID=%s,openList=%s,overList=%s,goonStateDict=%s,notifyDict=%ss±¾ÈÕÈÕ³£»î¶¯ÐÅÏ¢¼ÓÔØÍê±Ï!s==============================================================(,R:R;R<R=R>RR?tstrRRRR_tChangeTimeNumToStrR!tTYPE_Time_YmdFormattGameWorldProcesstGetOpenServerWeekdayRERHtGetIpyGameDataListNotLogRJtGetIDt
GetDailyIDRXtGetOpenServerDayRYtGetOpenTimeListRGtGetDailyActionCountR­tGetDailyActionByIndextGetOpenTimeDictR\RAt GetNotifyInfoRBRCRDRRRSt GetDurationR$R[Re()RhRiRÿttodayActionInfotdayTimetweekDaytcurTimet
curDateStrtopenServerWeekdaytcurMaxCustomServerDaytcustomDailyIDListtdailyTimeInfoListtcustomIpyDataListt customIDListttodayCustomIDListt customIpyDatatdataIDtdailyIDtisCustomRstdailyActionCountRôt dailyIpyDatat openTimeDictt openTimeListRtnotifyInfoDicttopenListtoverListt goonStateDictRÕt    OpenStateRRt openTimeStrt openDateTimet overDateTimetopenStateTimeListRRžRŸ((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt__GetTodayDailyActionInfoJs¨          !           
    $  cCsßtƒ}|sdStjƒ}tjƒ}|j|jf}x›|D]“}|d}d}t|ƒdkrud}nÎ|d\}}}    }
||kr d}nq||krµd}n\xY|    jƒD]K\} } x<| D]4} | d|koú| dknrÕ| }PqÕqÕWqÂW||
krC|
|\}}tj    d||ƒnt
j |}|j |ƒ|krkqDn|r|t
j krtjƒqntj||ƒ|j||ƒtjd|||fƒt||ƒqDWdS(Niis7ÈÕ³£»î¶¯×´Ì¬±ä¸ü: dailyActionID=%s,state=%s,dictName=%s(R.RRR?RRRJR[R¾R¿R    t$Def_Notify_WorldKey_DailyActionStateR#tDailyActionID_FamilyRobBossRÇt(SyncMapServer_HorsePetRobBossPlayerCountR&RÀRHt __DoLogic_GameServer_ActionState(ttodayDailyActionInfoR)Rt curHourMinutet
actionInfot dailyActionIDR,R&R'R(RÕt    goonStateR-t dateTimeInfoR×RØR+((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytDispose_DailyActionState¿sF       
               $   cCsstƒ}|sdStjƒ}xM|D]E}|d}tj|}|j|ƒ}|r&tj||ƒq&q&WdS(Ni(R.RRR    R/R#R&(R3R)R5R6R+R,((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytSendMapServerDailyActionStateþs      
 cCs8d}tj|ƒ}|dkr4i}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ƒtj|||gƒ}tjdƒtjd|ƒtjd|ƒn|S(NtFBStateEndTimeNotResets1¼ÓÔØ¸±±¾×´Ì¬½áÊøÊ±¼ä²»ÐèÒªÖØÖÃ״ֵ̬µÄÊý¾ÝIDÁбí:s    ²»ÐèÒªÖØÖõij£¹æID: %ss    ²»ÐèÒªÖØÖõ͍֯ID: %s(R=R>RKRGR­tGetFBStateTimeCounttGetFBStateTimeByIndexRt GetDataMapIDtGetStartWeekdayt GetStartHourtGetStartMinutet
GetEndHourt GetEndMinuteR$RXR[RdtGetFBStateTimeCustomCounttGetFBStateTimeCustomByIndextGetOpenServerWeekR
ReRRH(RhtnotResetIDListtmapStateTimeDictRsRôtfbStateTimeIpyDataRt    dataMapIDt startWeekDayt    startHourt startMinutet
endWeekDaytendHourt    endMinutet startTimeListt endTimeDicttFBStateEndTimeNotResetIDListR÷RötcustomStateTimeDictRtopenWeektopenDayt"FBStateEndTimeNotResetCustomIDList((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt!__GetFBStateEndTimeNotResetIDLists\    &   
 
 cCs›d}tjtjƒd}tj|ƒ}|rI|d|krI|dStjtjƒd}tjƒ}|jƒd|j|j    }}}t
j ƒ}|dkr¼tj d|ƒgStj ddƒ|d}tjdƒtjd|||||fƒtjd|ƒtjƒ}    g}
g} ||kr[tjd    |ƒ} tjd
t| ƒƒg} g}xµ| D]­}|jƒ}|jƒ}||
kr®|
j|ƒn| j|ƒ|jƒ|krt|j|ƒt||}}}| j||||gƒtjd ||fƒqtqtWtjd | ƒtjd |
ƒtjd|ƒn tjdƒtjdƒxét|    jƒƒD]Õ}|    j|ƒ}|jƒ}|jƒ}||
krÞtjd||fƒqˆnt|jƒ|jƒ}}}||kr-tjd||||fƒqˆn| j||||gƒtjd ||fƒqˆWtj||| gƒ}tjdƒtjdƒ|dS(NtTodayFBStateTimeInfoiis.»ñÈ¡¿ª·þÊÇÐÇÆÚ¼¸Êý¾Ý´íÎó£¡openServerWeekday=%sR/s"===== ¼ÓÔØ½ñÌ츱±¾×´Ì¬Ê±¼ä±í =====s4    ¿ª·þÊÇÐÇÆÚ%s, ¿ª·þµÚ%sÌì, µ±Ç°ÐÇÆÚ%s,%sµã%s·Ö £¡s    ×î´óÓÐЧ¶¨ÖÆ¿ª·þÌì: %stFBStateTimeCustoms    ±¾Öܶ¨ÖƵĸ±±¾»î¶¯ÌõÊý: %ss3    ½ñÌìÒª´¦ÀíµÄ¸±±¾×´Ì¬ÅäÖÃ: ÊÇ·ñ¶¨ÖÆ=%s,dataID=%ss    ±¾Öܶ¨ÖƵÄÅäÖñíIDÁбí: %ss    ±¾Öܶ¨ÖƵĸ±±¾µØÍ¼Áбí: %ss    ½ñÌì¶¨ÖÆµÄ±íIDÁбí=%ss4    ³¬¹ý×î´ó¶¨ÖÆ¿ª·þÌ죬²»¶¨ÖÆ£¬×ß³£¹æ¸±±¾×´Ì¬Ê±¼ä£¡s    ´¦Àí³£¹æ¸±±¾×´Ì¬Ê±¼äÅäÖÃs?    dataID=%s,dataMapID=%s, ÔÚ±¾Öܶ¨ÖƵĸ±±¾µØÍ¼ÁбíÀï,²»´¦Àí£¡sT    dataID=%s,dataMapID=%s, ²»ÊDZ¾ÌìµÄ¸±±¾»î¶¯,²»´¦Àí£¡curWeekDay=%s,startWeekDay=%ss±¾ÈÕ¸±±¾»î¶¯×´Ì¬ÐÅÏ¢¼ÓÔØÍê±Ï!s==============================================================(R:R;R<R=R>RR?RRRRRRWRERHRGRRJRR>RXR
RYR­R<R=RAR?Re(RhRiRYRot
curWeekDayRkt    curMinuteRRRstcustomMapIDListtfbStateTimeInfoListRRRRRRJR RKRNRôRI((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt__GetTodayFBStateTimeInfoFst $                         c#    Cstƒ\}}tjtjƒd}tjƒ}|jƒd|j|j}}}|d|d|}t    j
ƒ}tj d|||||fƒtj d|ƒtj d|ƒtj ƒ}    t ƒ}
xA|
D]9\} } } }|jƒ}|jƒ}tj d| ||fƒ|jƒ|jƒ}}|jƒ|jƒ}}| dkr`|} n| dkru|} n| d|d|}| d|d|}|jƒ}|rO|tjd    | |ƒ}tj|j|j|j||dƒ}||}|jd
d |jd }||krO||\}}tjd||ƒqOntt}}||krqt}n†||kr®| r||ks¢| r÷||kr÷t}q÷nI|rÛ||krÛ||kpÕ||k}n||koò|kn}|r d}d} n$|rÕ|j ƒ}|j!ƒ} nqÕt"j#|}!|    j$|!ƒ|kr¢tj%|!|ƒ|    j&|!|ƒ|r…t'|ƒntj(d |||!fƒnt"j)|}"|    j$|"ƒ| krÕtj%|"| ƒ|    j&|"| ƒtj(d|| |"fƒt*|"| ƒqÕqÕWdS(Nii'idsF¸±±¾×´Ì¬Ê±¼ä±í״̬´¦Àí...¿ª·þÊÇÐÇÆÚ%s, ¿ª·þµÚ%sÌì, µ±Ç°ÐÇÆÚ%s,%sµã%s·Ös#    FBStateEndTimeNotResetIDList=%ss)    FBStateEndTimeNotResetCustomIDList=%ss&    isCustom=%s,dataID=%s,dataMapID=%siR0iii<s>¸±±¾ÊÇ·ñ¿É½øÈë±ä¸ü: dataMapID=%s,updCanEnter=%s,canEnterKey=%ss=¸±±¾×´Ì¬±ä¸ü: dataMapID=%s,updStateValue=%s,fbFuncStateKey=%s(+RXR:R;R<RR?RRRRRtDebugLogRR_RR>R@RARBRCtGetNotifyInfoDictRBRSRRRR0tsecondsR¾R¿RARYt GetCanEntert GetStateValueR    tDef_Notify_WorldKey_FBCanEnterR#R&RÀtSaveFBOpenRecordRHtDef_Notify_WorldKey_FBFuncStateR2(#RSRWRiRoR[RkR\t
curTimeWHMRR)R^R RKRNRRRJRLRMRORPt startTimeWHMt
endTimeWHMR%R”t diffDateTimet
diffMinuteR×RØtisUpdatetisResett updCanEntert updStateValuet canEnterKeytfbFuncStateKey((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytDispose_FBStateTimeŽs~ $                       '
        %         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(RR?RRR    t*Def_UniversalGameRecType_LimitFBOpenRecordtGetUniversalRecMgrt GetTypeListRKtrangetCounttAtt    GetValue1tevalt GetStrValue1tAddRect    SetValue1t SetStrValue1RRXRJR&t Def_Notify_WorldKey_FBOpenRecord( tmapIDRt    curDayStrt fbOpenRecordtrecTypetuniversalRecMgrtrecTypeListDatat findRecDataR½tuniversalRecDatatrecMapIDt
recordList((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRfñs8                
 cCs‚i}tj}tjƒ}|j|ƒ}xQt|jƒƒD]=}|j|ƒ}|jƒ}t    |j
ƒƒ}|||<q=W|S(N( R    RtRRuRvRwRxRyRzR{R|(RƒR„R…R†R½RˆR‰RŠ((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytGetFBOpenRecords      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(RRR=RGR­R<R=R>RcRXR    ReR#R&Rgt*Def_Notify_WorldKey_FBEnterTimeLimiitMapIDR‹R€( tfbEnterTimeLimitMapIDListt sendMapIDListR)RsRôRIRJRqtcanEnterRrt fbFuncStateRƒ((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytSendMapServerFBFuncState"s.          cCstjƒrdStƒdS(N(Rt IsCrossServertDispose_ActionGoOnByDayKey(ttick((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytDispose_Action_GoOn_ByDayFs 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( RZtATTR_CALL_TIMERVRYRRHR¬ttypeRR!tDef_Cmp_Greatert Def_Cmp_Lowert Def_Cmp_Equ(RR÷R½tcallObjt
curCallObjtwday((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytCompareActTimeWs$  cCsH|s
tStj|dƒ|ko;tj|dƒknrDtStS(Nii(RYRtGetDateTimeByStrRA(RtactSect((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt IsAtActTime{s &cCsî|tjtjkr&tj|ƒnÄ|tjtjkrLtj|ƒnž|tjtj    krut
j ||ƒnu|tjtj kržt j||ƒnL|tjtjkrÄtj|ƒn&|tjtjkrêtj|ƒndS(N(R    RgR!tDef_FBMapID_FamilyPartytPlayerFamilyPartytFamilyPartyStateChangetDef_FBMapID_FamilyWartGameWorldFamilyWartOnFamilyWarStateChangetDef_FBMapID_XMZZt
PlayerXMZZtOnXMZZStateChangetDef_FBMapID_FamilyInvadetPlayerFamilySWRHtOnSWRHStateChangeR/R0RÇtOnHorsePetRobBossActionChangetDailyActionID_CrossReamPKt CrossRealmPKt$OnCrossRealmPKDailyActionStateChange(R+tisOpen((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR2scCsXtjtjƒ}tjtjƒ}tjtjƒ}tjdƒ}|\}}}||ksr|rƒ||krƒtjdƒdStj    }tj
}t j ƒtj|ƒ}    |    sºdn    t |    ƒ}    tj|ƒ}
|
sádn    t |
ƒ}
tjtjƒ} tjd|||fƒtjd|||    |
| fƒ||ksW|ræ||kræd}    xYt|dƒD]H\} } | dkr‰Pn| d}| |kr¥qmnd    |    | f}    qmWtj|tj|    ƒƒtjd
|    ƒnt|    ƒt|ƒkrôtjd ƒxæt|dƒD]Ò\} } | dkr7Pnt | ƒ|    krOqn| d}| |krkqn|
|    kr­|    j|
ƒ}|    |d t | ƒ|    |d}    n t | ƒ}    tj|tj|    ƒƒtjd | ||    fƒPqWn|    s tjd ƒdS|
rQ|
|    krQ|    j|
ƒd}|t|    ƒkrHdn|}nd}tj|    |ƒ}tj||ƒ|dks˜|t|ƒkr­tjd|ƒdStjd|ƒtjƒ}||dd}xu|jƒD]g\}}|j|ƒ|krqénd\}}}}}}}t||||||||||ƒ
qéWdS(NtActionControlByDayKeyRepeatsûÓÐÕýʽ½øÈëÖÜÆÚÑ­»·£¬²»´¦Àí!ts=´¦ÀíÖÜÆÚÑ­»·: openServerDay=%s,isMixServer=%s,mixServerDay=%ss_    startRepeatOpenDay=%s,startRepeatMixDay=%s,repeatOrder=%s,preRepeatNum=%s,worldAverageLV=%sii    is%s%ss"    ¿ªÊ¼Ñ­»·, Éú³ÉÑ­»·±àºÅ˳Ðò: %ss2    »¹Ã»È«²¿¿ªÊ¼Ñ­»·£¬ÅжÏÊÇ·ñÓж¯Ì¬Ð²åÈëµÄÑ­»·..sC        ±àºÅ%s, needWorldAverageLV=%s,²åÈëÑ­»·,¸üÐÂÑ­»·±àºÅ˳Ðò: %ss    Ã»ÓпÉÑ­»·µÄ»î¶¯!s'    ÏÂÒ»¸öÑ­»·±àºÅ´íÎó!nextRepeatNum=%ss*    ¹ýÌì±ä¸üÑ­»·»î¶¯×´Ì¬, nextRepeatNum=%sii;(iiiiiii;(R:R;R<tDef_IsMixServertDef_MixServerDayt ReadChConfigtGetEvalChConfigRRHtDef_TeHuiRepeatOrderKeytDef_TeHuiRepeatNumKeytGameWorldAverageLvtOpenWorldAverageLvRR    RÄRZRÂtToIntDefRJR½RR[R#t__ChangeDA_ActionSign(Rit isMixServert mixServerDayt repeatDayInfotstartRepeatOpenDaytstartRepeatMixDayt
repeatListtDef_RepeatOrderKeytDef_RepeatNumKeyt repeatOrdert preRepeatNumtworldAverageLVRôt
repeatInfotneedWorldAverageLVt insertIndextnextRepeatIndext nextRepeatNumR)tnextRepeatDictR+tsignIDtcurDaytbeginDaytbeginHtbeginMtendDaytendHtendM((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytDoLogic_ActionByDayKeyOnDay¶sˆ         
     
 
  '  ! )cCs‘tjƒrdStjdƒtjtjƒ}tjtjƒ}tjtjƒ}tj    dƒ}|s|t
|d|ƒnt
|d|ƒdS(Ns´¦ÀíÌØ»Ý״̬ÐÅÏ¢...tActionControlByDayKeyGoOnii( RR’R`R:R;R<RµR¶R·R¸t__DoActionGoOnByDayKeyCheck(RiR¿RÀtallActionGoOnInfo((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR“s  cCsItjƒ}tjƒ}x*|D]"}|d\}}}|d\}}    }
||ks||kriqn|d} |d} |j| ƒ| kr˜qndddd||g} dddd|    |
g}||kròt|| ƒtjkròqn||krt||ƒtjkrqnt|| | ||||||    |
ƒ
qWdS(Niiiis-(    RR?RR#RžR!R™R˜R¾(tgoOnListRÑRR)t goOnControlRÒRÓRÔRÕRÖR×R+RÐt    beginTimeRö((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRÚ,s&   
 
$$)c
    Csåt||||||||    ƒ\}
} ttjƒƒ} tjd|||
| | fƒ|j||ƒ|jtj||
ƒ|jtj|| ƒtj    |} |j| | ƒtj
| | ƒtj
||ƒt ||ƒdS(NsG»î¶¯×´Ì¬±ä¸ü: dictName=%s,signID=%s,beginTime=%s,endTime=%s,actionID=%s( tGetBeginEndTimeByDayRRR_RRHRÀR    t'Def_Notify_WorldKey_DayAction_BeginTimet%Def_Notify_WorldKey_DayAction_EndTimet Def_Notify_WorldKey_DayAction_IDR&R2(R)R+RÐRÑRÒRÓRÔRÕRÖR×RÞRötactionIDt actionIDKey((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR¾Ps'      cCsØtd||ƒ}tj|ƒ}    t|    ƒjdƒd}
d|
d ||f}
tj|
tjƒ} td||ƒ} tj| ƒ} t| ƒjdƒd}d|d ||f}tj|tjƒ}| |fS(Nis.s%s %02d:%02d:00i
s%s %02d:%02d:59(    tmaxRtGetDatetimeBySubDaysRtsplittChangeTimeStrToNumR!RDtGetDatetimeByDiffDays(R+RÑRÒRÓRÔRÕRÖR×t beginDiffDayst beginDateTimetbeginDateTimeStrt beginTimeNumt endDiffDaysR•tendDateTimeStrt
endTimeNum((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRßks(<R!RBRR·R¾R    R:R»R°R¦R£R=R©R¬RÇRR RRRÞRñRÍttypesRR_RtTime_YmdFormatR–RwR@RRRR.RYRRIRARfRKR RR.R9R:RXR_RsRfR‹R‘R•RžR¡R2RØR“RÚR¾Rß(((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt<module>sf                               %     é    . ~ "     u    ?        7    H    c    $         $        $        )    b        $