cehua-TT
2018-09-21 3b92f6e8c56c92c6b5d078309c8a06a8034ec484
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
|›[c@sBddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlmZddlZejZddddddgZed    ƒ\ZZZd
„Zd „Zed „Z d „Z!e"d„Z#dd„Z%dd„Z&d„Z'd„Z(d„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(tIntTypetweekdaytyeartmonthtdaythourtminuteicCsÕtƒ\}}|t}|r#dStj|kr\|tjd}|r\t||ƒq\ntj|kr˜|tjd}|r˜tj||ƒq˜ntj|krÑ|tjd}|rÑt    ||ƒqÑndS(Ni(
t__GetOperationActionInfotOperationAction_TodayInfot ShareDefinetOperationActionName_ExpRatetSync_OperationAction_ExpRatet!OperationActionName_FairyCeremonytPlayerFairyCeremonyt"Sync_OperationAction_FairyCeremonytOperationActionName_RealmPointtSync_OperationAction_RealmPoint(t    curPlayertisReloadtOperationActionInfotoperationActionDicttipyData((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt OnPlayerLogin>s"
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!SendMapServerOperationActionStateYs
   cCCsÑ d}tjtjƒd}tj|ƒ}tjƒ}|j}|dkrRdnd}d||f}|rˆ|t|krˆt    |fSd|j
|j |j |j|j f}tjj|tjƒ}    d}
i} i} tjƒ} tjƒ}tjd|    | ||
|fƒx>
tjD]3
}t|| |ƒ}tjd    |t|ƒfƒg}g}i}d}x²    |D]ª    }|jƒ}|jƒ}|jƒ}tjd
||jƒ|jƒ||||    fƒ|jƒr²|jƒr²t |ƒt |ƒ}}||kr,tjd ||||fƒqpn|    tj!d ||ƒ}|    tj!d ||ƒ}d |j
|j |j f}d |j
|j |j f}tjd||fƒn/||
krátjd||||fƒqpnt"|dƒrt"|dƒr|j#ƒ}|j$ƒ}n g}g}t"|dƒrA|j%ƒni}t"|dƒrb|j&ƒni} t"|dƒrƒ|j'ƒni}!t|ƒt|ƒkrÄtj(d||||fƒqpnt"|dƒsÙdn    |j)ƒ}"|"dkr,tjjd|tjƒ}#tjjd|tjƒ}$nHtjjd|tjƒ}#tjjd|tjƒtj!d dƒ}$t"|dƒs‰dn    |j*ƒ}%tjd|"|#|$|||%fƒg}&g}'i}(i})i}*t    }+t    },t    }-| sö| r^|#}.|$}/|&j+|.ƒ|'j+|/ƒ|#|    ko3|$knrL|j+|.ƒ|j+|/ƒt,}+qLnî|#|    kou|$knrLxÏt-|ƒD]¾\}0}1||0}2d|    j
|    j |    j |1f}3d|    j
|    j |    j |2f}4tjj|3tjƒ}.tjj|4tjƒ}/|&j+|.ƒ|'j+|/ƒ|j+|.ƒ|j+|/ƒt,}+q‡Wn|%rÈ|#rÈ|#tj!d|% ƒ}5|5j
|    j
kr®|5j |    j kr®|5j |    j kr®t,}-ntjd|5|-fƒntjd|&ƒtjd|'ƒtjd |ƒtjd!|ƒx÷t-|&ƒD]é\}6}.|'|6}/xy|j.ƒD]k\}7}8|.tj!d|7ƒ}9|9j
|    j
kr<|9j |    j kr<|9j |    j kr<|8|(|9<t,},q<q<Wxy| j.ƒD]k\}7}8|/tj!d|7ƒ}9|9j
|    j
kr¸|9j |    j kr¸|9j |    j kr¸|8|)|9<t,},q¸q¸W|!rt|!ƒd"kr|!\}:};|;gg}8d/\}<}=xœ|:rþ|;rþ|<|=krþ|<d7}<|.tj!d|:|<ƒ}9|9|/kr²Pn|9j
|    j
krf|9j |    j krf|9j |    j krf|8|*|9<t,},qfqfWqqW|(s    |)s    |*r™    tjd$|j/ƒ|(fƒtjd%| j/ƒ|)fƒtjd&|!|*j/ƒfƒ|j0|(ƒ|j0|)ƒ|j0|*ƒn|+ r´    |, r´    |- r´    qpntjd'||-|+|,fƒ|+sÝ    |-rp| sü    |jƒ|jƒkr |}i|tj16}>|#|    ko)
|$knrå
d}?|#}@t"|d(ƒsO
dn    |j2ƒ}A|Asm
|r“
|r“
|    |#j3}?|@tj!d |?ƒ7}@nt t4j5|@j6ƒƒƒ}B|?|>tj7<|B|>tj8<tjd)|A|@|Bfƒn|j9ƒ|j9ƒ|>| |<tjd*|>ƒq qpqpW|s6 |s6 |s6 |r||||g| |<qqWtj:||| | gƒ}tjd+||fƒtjd,| ƒtjd-| ƒtjd.ƒ|rÇ t;t,ƒnt,|fS(0NRiiis%s_%ss%d-%d-%d %02d:%02d:00isf===== ¼ÓÔØ±¾ÈÕÔËÓª»î¶¯ÐÅÏ¢: %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=%stGetStartTimeListtGetEndTimeListtGetNotifyInfoStarttGetNotifyInfoEndtGetNotifyInfoLoops_        »î¶¯ÅäÖÿªÊ¼¼°½áÊøÊ±¼ä¸öÊý²»Æ¥Åä! 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=%ss%d-%d-%d %s:00tminutess3        advanceNoticeDateTime=%s,isAdvanceNotice=%ss        startList=%ss        end  List=%ss        needStartList=%ss        need  EndList=%siids'        startNotifyDict: minutes=%s, %ss'        end  NotifyDict: minutes=%s, %ss'        loop NotifyDict: lopInfo=%s, %ssU        ÐèÒª´¦ÀíµÄÔËÓª»î¶¯ÐÅÏ¢: cfgID=%s,isAdvanceNotice=%s,isActivity=%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_ReloadSigntFalseRRRRtdatetimetstrptimeRtTYPE_Time_Formatt GetServerIDtIPY_DatatLogR    Rt%__GetOperationActionServerIpyDataListtlentNonetGetCfgIDt GetStartDatet
GetEndDatet
GetActMarktGetServerIDListtisdigittintt    timedeltathasattrR*R+R,R-R.tErrLogR/R0tappendtTruet    enumeratetitemstkeystupdatet ActKey_CfgIDR2R)ttimetmktimet    timetupletActKey_DayIndext    ActKey_IDtsortt SetConfigExtDispose_OperationActionState(CtisRefreshStatetkeyt openServerDayRt
serverTimetcurHourtreloadSignHourt
reloadSigntcurDateTimeStrt curDateTimetcustomMaxServerDayRtmapServerOperationActionDicttserverIDt
ipyDataMgrR$tcurServerActIpyDataListt needStartListt needEndListtneedNotifyDicttactivityIpyDataRtcfgIDt startDateStrt
endDateStrtstartServerDayt endServerDaytopenServerDateTimetendServerDateTimetstartHMStrListt endHMStrListtnotifyInfoDictStarttnotifyInfoDictEndtnotifyInfoLoopInfot    resetTypet startDayDatet
endDayDatetadvanceMinutest    startListtendListtstartNotifyDictt endNotifyDicttloopNotifyDictt
isActivitytisNotifytisAdvanceNoticet startDateTimet endDateTimethmIndext
startHMStrtendHMStrt startTimeStrt
endTimeStrtadvanceNoticeDateTimetdtIndext notifyMinutet
notifyInfotnotifyDateTimet loopMinutest loopNotifyKeyt    loopCountt loopMaxCounttactivityInfoDicttdayIndext actIDDateTimet    isDayResttactID((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRnsL     
(              )   !!!    ! ,!         
      6    
6
 6
 
 6
   !   
 
 
  c Cs¸i}t|d|ƒƒ}xt|ƒD]‚}t|d|ƒ|ƒ}|jƒ}t|jƒƒ}|j|iƒ}    |    j|gƒ}
|
j|ƒ|
|    |<|    ||<q)Wg} xü|jƒD]î\}}    g} t} xÀ|    jƒD]²\}}
|s|
} qçnx‘|D]‰}t    |t
ƒr-||kst    |t ƒsKt    |tƒr t |ƒdkr |d|ko||dknr | |
7} t } Pq q WqçW| rÂ| | 7} qÂqÂW| S(Ns
Get%sCounts Get%sByIndexiii(tgetattrtxrangeRGttupleRHRRNRQROt
isinstanceRJtlistRBR:(RiRhR$t actGroupDictt actCfgCounttcfgIndexRtactMarkt serverIDTupletserverIpyDataDictt ipyDataListRjtgeneralIpyDataListt    isGeneralt serverIDInfo((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRAIs:  
 6
 cCs'ttƒ\}}|p|}|t}|t}tjƒ}tjƒ}tjjd|j    |j
|j |j |j ftjƒ}xœtjD]‘}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ƒ}|dkr¢|r¢tj|ƒ|kr¢tj||ƒ|tj krgtjtj!ƒ}tjtj"||ƒn|tj#krƒt$j%ƒq¢|tj&kr¢t'j(ƒq¢n|dkrã|tj krãtjtj"|ƒ}||tj)<n|tj*kr|rÛ|    rÛt+|    ƒqÛnÍ|tj,kr/|rÛ|    rÛqÛn¬|tj#kr]|rÛ|    rÛt$j-t.ƒqÛn~|tj&kr°|rˆ|    rˆt'j/|    ƒn||krÛ|dkrÛt'j0ƒqÛn+|tj1krÛ|rÛ|    rÛt2|    ƒqÛn||tj3<tj4tj5||ƒtj6d|||||fƒqŽWdS(Ns%d-%d-%d %d:%d:00iis=ÔËÓª»î¶¯±ä¸ü: actName=%s,preState=%s,state=%s,dictName=%s, %s(7RR:RRRRR8R;R<RRRRRRR=R    RRCtindexRPt PlayerControlt WorldNotifyRRtSetDictRR3tDef_OperationActIDRYR4tSetDBGSTrig_ByKeytNeedWorldLVOperationActNameListt"Def_Notify_WorldKey_WorldAverageLvtDef_OActWorldLVtOperationActionName_BossRebornt GameWorldBosstResetBossRebornPointR R tResetFairyCeremonytActKey_WorldLVR
R tOperationActionName_CostRebatetSetBossRebornNeedPointRORtOnFairyCeremonyEndRRRR R!R@(t reloadRefreshRRRR"R#ReR$R&RRR€t
notifyDicttdIndexR‡Rˆt    notifyKeyt    paramListR%tpreStateR'tdbOperationActIDKeytcurActIDtworldLVt
actWorldLV((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR\ns„ 
 
         
 
   '       $cCs„|s
dSt|jƒƒt|jƒƒkr2dStjƒ}|jƒ|jƒ|_|jƒ|_    g|_
x^t |jƒƒD]J\}}|jƒ|}tj ƒ}||_ ||_|j
j|ƒq‚Wt|j
ƒ|_|jƒ|_|jƒ|_|sptjƒ}xkt|jƒƒD]D}|j|ƒ}|dks%|jƒ rYq%ntj||ƒq%Wntj||ƒdS(N(RBR*R+tChPyNetSendPackttagGCMultiExpRateInfotClearREt    StartDateRFtEndtDatet ActivityTimeRPttagGCMultiExpRateTimet    StartTimetEndtTimeRNtActivityTimeCountt
GetLVLimittLimitLVt GetAddExpRatet
AddExpRateRtGetPlayerManagerRtGetPlayerCounttGetPlayerByIndexRCt    GetInitOKt NetPackCommont SendFakePack(RRtmultiExpRateInfotit    startTimetendTimettimeInfot playerManager((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR Øs6$ 
              cCsà|s
dStjƒ}|jƒ|jƒ|_|jƒ|_|jƒ|_|j    ƒ|_
|sÌt j ƒ}xkt |jƒƒD]D}|j|ƒ}|dks|jƒ rµqntj||ƒqWntj||ƒdS(N(RÆttagGCMultiRealmPointInfoRÈRERÉRFRÊt GetMultipletMultipleRÐRÑRRÔRRÕRÖRCR×RØRÙ(RRtmultiRealmPointInfoRßRÛ((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRùs" 
 c'
Cspd}tjtjƒd}tj|ƒ}|rI|d|krI|dSg}tjƒ}t|jƒdƒ}t    t
j
ƒƒ}tj |t j ƒ}tjƒ}tjd||||fƒg}    g}
tjd||ƒ} | rg} xk| D]c} | jƒ}| jƒ}||    kr/|    j|ƒn|
jt| jƒ| gƒ| j|ƒqõWtjdt| ƒ| |    fƒntjƒ}|jƒ}xüt|ƒD]î}|j|ƒ}|jƒ}||    krètjd|ƒq¤n|jƒ}|s!|j|gƒtjd|ƒq¤nd    |kr\||kr\tjd
||jƒfƒq¤nd    |krr|d    n||}|
jt||gƒq¤Wtjd ƒ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ƒqªWtj)|||gƒ}tjdƒ|dS(NtTodayDailyActionInfoiis<¼ÓÔØ±¾ÈÕÈÕ³£»î¶¯ÐÅÏ¢: %s, µ±Ç°ÐÇÆÚ%s,¿ª·þµÚ%sÌì,¿ª·þÊÇÐÇÆÚ%stDailyActionCustoms@    ±¾µØ¶¨ÖÆÈÕ³£»î¶¯ÌõÊý: %s, ÅäÖñíIDÁбí=%s, ¶¨ÖƻIDÁбí=%ss:    ³£¹æ»î¶¯IDÅäÖÃÊǽñÌìµÄ¶¨ÖƻID£¬²»´¦Àí£¡: dailyID=%ss(    Ôö¼Ó±¾ÈÕ³£¿ªÈÕ³£»î¶¯ÐÅÏ¢: dailyID=%st0s5    ²»ÊÇÈÕ³£»î¶¯¿ªÆôÐÇÆÚ: dailyID=%s,openWeekLimit=%ss    -----------------------s%s %02d:%02d:%02dR1sg    Ôö¼Ó±¾ÈÕÈÕ³£»î¶¯ÐÅÏ¢: isCustom=%s,dailyID=%s,openList=%s,overList=%s,goonStateDict=%s,notifyDict=%ss±¾ÈÕÈÕ³£»î¶¯ÐÅÏ¢¼ÓÔØÍê±Ï!(*R3R4R5R6R7RR8tstrRRJRUtChangeTimeNumToStrRtTYPE_Time_YmdFormattGameWorldProcesstGetOpenServerWeekdayR@tGetIpyGameDataListNotLogtGetIDt
GetDailyIDRNROtGetOpenTimeListRBR?tGetDailyActionCountRtGetDailyActionByIndextGetOpenTimeDictRRR:t GetNotifyInfoR;R<R=RRRKt GetDurationRRQR[('R^R_RättodayActionInfotdayTimetweekDaytcurTimet
curDateStrtopenServerWeekdaytcustomDailyIDListtdailyTimeInfoListtcustomIpyDataListt customIDListt customIpyDatatdataIDtdailyIDRitdailyActionCountRÛt dailyIpyDatat openTimeDictt openTimeListtisCustomRtnotifyInfoDicttopenListtoverListt goonStateDictR½t    OpenStateRRt openTimeStrt openDateTimet overDateTimetopenStateTimeListRR‘R’((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt__GetTodayDailyActionInfosŒ      #         
    $ 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(RRRR8RRRBRQR¬R­R    t$Def_Notify_WorldKey_DailyActionStateRtDailyActionID_FamilyRobBossRµt(SyncMapServer_HorsePetRobBossPlayerCountR R®R@t __DoLogic_GameServer_ActionState(ttodayDailyActionInfoR#Röt curHourMinutet
actionInfot dailyActionIDR&RR    R
R½t    goonStateRt dateTimeInfoR¿RÀR%((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytDispose_DailyActionStatewsF       
               $   cCsstƒ}|sdStjƒ}xM|D]E}|d}tj|}|j|ƒ}|r&tj||ƒq&q&WdS(Ni(RRRR    RRR (RR#RRR%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(R6R7RCR?RtGetFBStateTimeCounttGetFBStateTimeByIndexRít GetDataMapIDtGetStartWeekdayt GetStartHourtGetStartMinutet
GetEndHourt GetEndMinuteRRNRQRZtGetFBStateTimeCustomCounttGetFBStateTimeCustomByIndextGetOpenServerWeektGetOpenServerDayR[RR@(R^tnotResetIDListtmapStateTimeDictRiRÛtfbStateTimeIpyDataRt    dataMapIDt startWeekDayt    startHourt startMinutet
endWeekDaytendHourt    endMinutet startTimeListt endTimeDicttFBStateEndTimeNotResetIDListRÞRÝtcustomStateTimeDictRÿtopenWeektopenDayt"FBStateEndTimeNotResetCustomIDList((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt!__GetFBStateEndTimeNotResetIDListÇs\    &   
 
 c*    CsZtƒ\}}tjtjƒd}tjƒ}|jƒd|j|j}}}|d|d|}t    j
ƒ}tj d|||||fƒtj d|ƒtj d|ƒtj ƒ}    t jƒ}
g} g} t jd||ƒ} | rg}x|| D]t}|jƒ}|jƒ}|| kr?| j|ƒnt||}}}| j||||gƒ|j|ƒqWtj dt| ƒ|fƒnxŒt|
jƒƒD]x}|
j|ƒ}|jƒ}|jƒ}|| krïq°nt|jƒ|jƒ}}}| j||||gƒq°Wx'| D]\}}}}|jƒ}|jƒ}|jƒ|jƒ}}|jƒ|jƒ}}|d    kr¤|}n|d    kr¹|}n|d|d|}|d|d|}|jƒ}|r“|tj d
||ƒ}tj|j!|j"|j#||d    ƒ}||} | j$d d | j%d }!|!|kr“||!\}"}#t&j'd    |"|#ƒq“ntt}$}%||krµt}$n†||krò|rÓ||ksæ| r;||kr;t}%q;nI|r||kr||kp||k}$n||ko6|kn}$|%rPd    }&d    }'n$|$r3|j(ƒ}&|j)ƒ}'nq3t*j+|}(|    j,|(ƒ|&krætj-|(|&ƒ|    j.|(|&ƒ|&rÉt/|ƒntj0d||&|(fƒnt*j1|})|    j,|)ƒ|'kr3tj-|)|'ƒ|    j.|)|'ƒtj0d||'|)fƒt2|)|'ƒq3q3WdS(Nii'idsE¸±±¾×´Ì¬Ê±¼ä±í״̬´¦Àí...¿ª·þÊÇÐÇÆÚ%s,¿ª·þµÚ%sÌì, µ±Ç°ÐÇÆÚ%s,%sµã%s·Ös#    FBStateEndTimeNotResetIDList=%ss)    FBStateEndTimeNotResetCustomIDList=%stFBStateTimeCustoms)    ¶¨ÖƸ±±¾»î¶¯ÌõÊý: %s, ÅäÖñíIDÁбí=%siR)iii<s>¸±±¾ÊÇ·ñ¿É½øÈë±ä¸ü: dataMapID=%s,updCanEnter=%s,canEnterKey=%ss=¸±±¾×´Ì¬±ä¸ü: dataMapID=%s,updStateValue=%s,fbFuncStateKey=%s(3R;R3R4R5RR8RRRRêRëtDebugLogRR6R?RìRíR RNRORBRRRR:R!R"R#R$R%tGetNotifyInfoDictR;RKRRRR)tsecondsR¬R­t GetCanEntert GetStateValueR    tDef_Notify_WorldKey_FBCanEnterRR R®tSaveFBOpenRecordR@tDef_Notify_WorldKey_FBFuncStateR(*R6R:R_Ret
curWeekDayRat    curMinutet
curTimeWHMRúR#RitcustomMapIDListtfbStateTimeInfoListRýRþRÿRR-RR.R1RÛR,RR/R0R2R3t startTimeWHMt
endTimeWHMRR‡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(RR8RRR    t*Def_UniversalGameRecType_LimitFBOpenRecordtGetUniversalRecMgrt GetTypeListRCtrangetCounttAtt    GetValue1tevalt GetStrValue1tAddRect    SetValue1t SetStrValue1RçRNRBR t Def_Notify_WorldKey_FBOpenRecord( tmapIDRøt    curDayStrt fbOpenRecordtrecTypetuniversalRecMgrtrecTypeListDatat findRecDataR«tuniversalRecDatatrecMapIDt
recordList((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRCxs8                
 cCs‚i}tj}tjƒ}|j|ƒ}xQt|jƒƒD]=}|j|ƒ}|jƒ}t    |j
ƒƒ}|||<q=W|S(N( R    RURRVRWRXRYRZR[R\R](RdReRfRgR«RiRjRk((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(RRR6R?RRRR R@RNR    RBRR RDt*Def_Notify_WorldKey_FBEnterTimeLimiitMapIDRlRa( tfbEnterTimeLimitMapIDListt sendMapIDListR#RiRÛR,R-RRtcanEnterRSt fbFuncStateRd((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytSendMapServerFBFuncState©s.          cCstjƒrdStƒdS(N(Rt IsMergeServertDispose_ActionGoOnByDayKey(ttick((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytDispose_Action_GoOn_ByDayÍs cCsÊtjƒr=tjtjƒs"dStjtjƒtƒdStƒtjtjƒ}tjtj    ƒ}t
j dƒ}||dkr‹dS||dks«||dkr¶t ƒdStjtjƒdS(Nt#ActionControlByDayInitOpenServerDayiii( RRsR3R4tDef_MergeServerOpenActionDaytSetDBGSTrig_ServerTimetSendBroadcastMergeOpenActionDaytDoLogic_ActionByDayKeyOnDaytDef_ServerLastOpenActionDayR5t ReadChConfigtGetEvalChConfigtNewRingOpenActionDay(tlastOpenActionDayR_t initDayList((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytDoLogic_ServerLastOpenActionDayÝs"  cCstjtjdƒtƒdS(Ni(R3R°R|tOpenActionDay_Reset(((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRscCsdS(N((((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRƒ scCsÙ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( RPtATTR_CALL_TIMERLRORR@RœttypeRRtDef_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(RORtGetDateTimeByStrR:(RøtactSect((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt IsAtActTimeDs &cCsÈ|tjtjkr&tj|ƒnž|tjtjkrLtj|ƒnx|tjtj    krut
j ||ƒnO|tjtj kržt j||ƒn&|tjtjkrÄtj|ƒndS(N(R    RDRtDef_FBMapID_FamilyPartytPlayerFamilyPartytFamilyPartyStateChangetDef_FBMapID_FamilyWartGameWorldFamilyWartOnFamilyWarStateChangetDef_FBMapID_XMZZt
PlayerXMZZtOnXMZZStateChangetDef_FBMapID_FamilyInvadetPlayerFamilySWRHtOnSWRHStateChangeRRRµtOnHorsePetRobBossActionChange(R%tisOpen((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRVscCs3tjtjƒ}tjtjdi|d6ƒdS(NitDay(R3R4RxtMergeBroadcasttSendBroadcastMergeR(tmergeServerOpenActionDay((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRz„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;(R3R4R5tDef_IsMixServertDef_MixServerDayR}R~RR@tDef_TeHuiRepeatOrderKeytDef_TeHuiRepeatNumKeytGameWorldAverageLvtOpenWorldAverageLvRçR    R²RPR°tToIntDefRBR«RRQRt__ChangeDA_ActionSign(R_t isMixServert mixServerDayt repeatDayInfotstartRepeatOpenDaytstartRepeatMixDayt
repeatListtDef_RepeatOrderKeytDef_RepeatNumKeyt repeatOrdert preRepeatNumtworldAverageLVRÛt
repeatInfotneedWorldAverageLVt insertIndextnextRepeatIndext nextRepeatNumR#tnextRepeatDictR%tsignIDtcurDaytbeginDaytbeginHtbeginMtendDaytendHtendM((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR{Žsˆ         
     
 
  '  ! )cCs‘tjƒrdStjdƒtjtjƒ}tjtjƒ}tjtjƒ}tj    dƒ}|s|t
|d|ƒnt
|d|ƒdS(Ns´¦ÀíÌØ»Ý״̬ÐÅÏ¢...tActionControlByDayKeyGoOnii( RRsR=R3R4R5R¤R¥R}R~t__DoActionGoOnByDayKeyCheck(R_R¬R­tallActionGoOnInfo((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRtð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-(    RR8RRRŒRR‡R†R«(tgoOnListR¾RøR#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( tGetBeginEndTimeByDayRJRURR@R®R    t'Def_Notify_WorldKey_DayAction_BeginTimet%Def_Notify_WorldKey_DayAction_EndTimet Def_Notify_WorldKey_DayAction_IDR R(R#R%R½R¾R¿RÀRÁRÂRÃRÄRÊRÝtactionIDt actionIDKey((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR«(s'      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(    tmaxRtGetDatetimeBySubDaysRçtsplittChangeTimeStrToNumRR=tGetDatetimeByDiffDays(R%R¾R¿RÀRÁRÂRÃRÄt beginDiffDayst beginDateTimetbeginDateTimeStrt beginTimeNumt endDiffDaysRˆtendDateTimeStrt
endTimeNum((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRËCs(<RR;RR}R¬R    R3RŸR¨R”R‘R6R—RšRµR RêRÆRØttypesRRURétTime_YmdFormatR„RXR9RRRR(RORRAR:R\RCR RRRRR;RTRCRlRrRvR‚RRƒRŒRRRzR{RtRÆR«RË(((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt<module>sf                                 Û    % j !     e    ?        7    z    $         $        #             $        .    
    b        $