hzr
2018-08-09 3346f8aae7f8abbd4b27c4564cbb802e7e717cc9
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
œ%`[c@s?ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlmZddlZejZddddddgZed    ƒ\ZZZd
„Zd „Zed „Zd „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(tIntTypetweekdaytyeartmonthtdaythourtminuteicCstƒ\}}|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 ndS(Ni( t__GetOperationActionInfotOperationAction_TodayInfot ShareDefinetOperationActionName_ExpRatetSync_OperationAction_ExpRatetOperationActionName_BossRebornt GameWorldBosstSync_OperationAction_BossRebornt!OperationActionName_FairyCeremonytPlayerFairyCeremonyt"Sync_OperationAction_FairyCeremonytOperationActionName_RealmPointtSync_OperationAction_RealmPoint(t    curPlayertisReloadtOperationActionInfotoperationActionDicttipyData((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt OnPlayerLogin=s*
cCs¥tƒ\}}|t}|r#dStjƒ}xotjD]d}tj|}|j|ƒ}|rs|j    |iƒni}||tj
<tj tj ||ƒq9WdS(N( RtOperationAction_MapServerInfot    GameWorldt GetGameWorldR    tOperationActionNameListtChConfigt!Def_WorldKey_OperationActionStatet GetDictByKeytgett ActKey_StatetSendMapServerMsgExt'Def_Notify_WorldKey_OperationActionInfo(RRtmapServerInfoDictt    gameWorldtactNametdictNametstatetsendMapServerMsgDict((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt!SendMapServerOperationActionState\s
   c) Cs3d}tjtjƒd}tj|ƒ}|rK|t|krKt|fStjƒ}d|j    |j
|j |j |j f}tjj|tjƒ}tjd||fƒi}i}tjƒ}    tjƒ}
xótjD]è} t|
|    | ƒ} g} g}i}d}xn| D]f}|jƒ}|jƒ}t|dƒrjt|dƒrj|jƒ}|jƒ}n g}g}t|dƒr‘|jƒni}t|dƒr²|jƒni}t |ƒt |ƒkrótj!d    | |j"ƒfƒqng}g}t}t}| s| rÉtjjd
|tjƒ}tjjd
|tjƒtj#d dƒ}|}|}|j$|ƒ|j$|ƒ||kož|knrï| j$|ƒ|j$|ƒt%}qïn&tjjd
|tjƒ}tjjd |tjƒ}||ko|knrïxÏt&|ƒD]¾\} }!|| }"d |j    |j
|j |!f}#d |j    |j
|j |"f}$tjj|#tjƒ}tjj|$tjƒ}|j$|ƒ|j$|ƒ| j$|ƒ|j$|ƒt%}q*Wnxt&|ƒD]\}%}||%}xy|j'ƒD]k\}&}'|tj#d|&ƒ}(|(j    |j    kr|(j
|j
kr|(j |j kr|'||(<t%}qqWxy|j'ƒD]k\}&}'|tj#d|&ƒ}(|(j    |j    kr›|(j
|j
kr›|(j |j kr›|'||(<t%}q›q›WqüW| r"| r"qntjd| |j"ƒ|j(ƒfƒ|r| sm|jƒ|jƒkry|}qyqqW|s•| s•|s•|rÜ|| ||g|| <t)|| |ƒ|| <qÜqÜWtj*||||gƒ}tjd|ƒtjd|ƒtjd|ƒ|r)t+t%ƒnt%|fS(NRis%d-%d-%d %02d:%02d:00s*¼ÓÔØ±¾ÈÕÔËÓª»î¶¯ÐÅÏ¢: %s, openServerDay=%stGetStartTimeListtGetEndTimeListtGetNotifyInfoStarttGetNotifyInfoEnds5»î¶¯ÅäÖÿªÊ¼¼°½áÊøÊ±¼ä¸öÊý²»Æ¥Åä! actName=%s,cfgID=%ss %s 00:00:00tdayss %s 23:59:59s%d-%d-%d %s:00tminutess>    ±¾ÈÕÐèÒª´¦ÀíµÄÔËÓª»î¶¯ÐÅÏ¢: actName=%s,cfgID=%s,actMark=%ss*±¾ÈÕÔËÓª»î¶¯ÐÅÏ¢¼ÓÔØÍê±Ï!isRefreshState=%ss    operationActionDict=%ss#    mapServerOperationActionDict=%s(,tPlayerDBGSEventtGetDBGSTrig_ByKeyt Def_ServerDayt IpyGameDataPYt GetConfigExtOperationAction_OpenServerDaytFalseRt GetServerTimeRRRRRtdatetimetstrptimeRtTYPE_Time_FormattLogt GetServerIDtIPY_DataR    Rt%__GetOperationActionServerIpyDataListtNonet GetStartDatet
GetEndDatethasattrR,R-R.R/tlentErrLogtGetCfgIDt    timedeltatappendtTruet    enumeratetitemst
GetActMarkt%__GetOperationActionMapServerInfoDictt SetConfigExtDispose_OperationActionState()tisRefreshStatetkeyt openServerDayRt
serverTimetcurDateTimeStrt curDateTimeRtmapServerOperationActionDicttserverIDt
ipyDataMgrR'tcurServerActIpyDataListt needStartListt needEndListtneedNotifyDicttactivityIpyDataRt startDateStrt
endDateStrtstartHMStrListt endHMStrListtnotifyInfoDictStarttnotifyInfoDictEndt    startListtendListt
isActivitytisNotifyt startDayDatet
endDayDatet startDateTimet endDateTimethmIndext
startHMStrtendHMStrt startTimeStrt
endTimeStrtdtIndext notifyMinutet
notifyInfotnotifyDateTime((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRqs²
 (      !!,     
 
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(tgetattrtxrangeRMttupletGetServerIDListR!RIRLRJt
isinstancetinttlistRER8(RYRXR't actGroupDictt actCfgCounttcfgIndexRtactMarkt serverIDTupletserverIpyDataDictt ipyDataListRZtgeneralIpyDataListt    isGeneralt serverIDInfo((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR@ñs:  
 6
 cCsõ|s
iS|jƒ}tjjd|tjƒ}||j}|dkrltjd||||fƒiStt    j
|j ƒƒƒ}i}|t j krÅi|jƒt j6|jƒt j6}nô|t jkrÑ|jƒ}|r8d|j|j|jf}    tjj|    tjƒ}
tt    j
|
j ƒƒƒ}n|jƒ} |t| ƒkr`| dn| |} i|t j6|jƒt j6|jƒt j6|jƒt j6|jƒt j6| t j6| t j6}nè|t j kr£|jƒ}|rDd|j|j|jf}    tjj|    tjƒ}
tt    j
|
j ƒƒƒ}n|j!ƒ} |t| ƒkrl| dn| |}i|t j6|j"ƒt j#6|t j$6}n|t j%krÅi|t j6}nô|t j&kr—|jƒ}|r8d|j|j|jf}    tjj|    tjƒ}
tt    j
|
j ƒƒƒ}n|j'ƒ}|t|ƒkr`|dn||}i|t j6|j"ƒt j#6|t j(6}n"|t j)kr¹i|t j6}n|t j*krñi|jƒt j6|j+ƒt j,6}n|S(Ns %s 00:00:00isV        ²»´¦ÀíÔËÓªµØÍ¼Êý¾Ý: startDateStr=%s,curDateTime=%s,startDayDate=%s,dayIndex=%ss%d-%d-%d 00:00:00iÿÿÿÿ(-RBR:R;RR<R0RtDebugLogR{ttimetmktimet    timetupleR    R
t
GetLVLimittActKey_LVLimitt GetAddExpRatetActKey_AddExpRatetOperationActionName_CostRebatet GetIsDayResetRRRtGetTemplateIDListREt    ActKey_IDtActKey_StartDateRCtActKey_EndDatetActKey_IsDayResettActKey_TemplateIDtActKey_TemplateIDListtOperationActionName_SpringSaletGetShopTypeListRGt ActKey_CfgIDtActKey_ShopTypeListR t OperationActionName_FlashGiftbagtGetGiftbagTypeListtActKey_GiftbagTypeListRRt GetMultipletActKey_RealmPointMulti(RVR'RR_RitdayIndextactIDR%t
isDayResett actIDDateStrt actIDDateTimettemplateIDListt
templateIDt shopTypeListt todayShopTypetgiftbagTypeListt todayGiftbag((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRNsv         & 
  &   & c Csttƒ\}}|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|}| r®|j|ƒ|kr®qŽn|j||ƒ|rÖ|j|iƒni}tj|}|jtjƒ}|dkr¨|r¨tj|ƒ|kr¨tj||ƒ|tj krNt!j"ƒn|tj#krjt$j%ƒn|tj&kr¨tjtj'ƒ}tjtj(||ƒq¨n|dkré|tj&krétjtj(|ƒ}||tj)<n|tj*kr|rÕ|    rÕt+|    ƒqÕnÁ|tj,kr5|rÕ|    rÕqÕn |tj krc|rÕ|    rÕt!j-|    ƒqÕnr|tj#krª|rŽ|    rŽt$j.|    ƒn|dkrÕt$j/ƒqÕn+|tj0krÕ|rÕ|    rÕt1|    ƒqÕn||tj2<tj3tj4||ƒtj5d||||fƒqŽWdS(Ns%d-%d-%d %d:%d:00iis1ÔËÓª»î¶¯±ä¸ü: actName=%s,state=%s,dictName=%s, %s(6RR8RRRRR9R:R;RRRRRRR<R    RRAtindexRKt PlayerControlt WorldNotifyRR tSetDictR!R2tDef_OperationActIDR’R3tSetDBGSTrig_ByKeyR R tResetBossRebornPointRRtResetFairyCeremonytNeedWorldLVOperationActNameListt"Def_Notify_WorldKey_WorldAverageLvtDef_OActWorldLVtActKey_WorldLVR
R RRRtOnFairyCeremonyEndRRR"R#R$R=(t reloadRefreshRRRR%R&RVR'R)RReRft
notifyDicttdIndexRkRlt    notifyKeyt    paramListR(R*tdbOperationActIDKeytcurActIDtworldLVt
actWorldLV((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRPas‚ 
 
         
 
   '         !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(RER,R-tChPyNetSendPackttagGCMultiExpRateInfotClearRBt    StartDateRCtEndtDatet ActivityTimeRKttagGCMultiExpRateTimet    StartTimetEndtTimeRItActivityTimeCountR‹tLimitLVRt
AddExpRateRtGetPlayerManagerRwtGetPlayerCounttGetPlayerByIndexRAt    GetInitOKt NetPackCommont SendFakePack(RRtmultiExpRateInfotit    startTimetendTimettimeInfot playerManager((sY.\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ÄRBRÅRCRÆRŸtMultipleR‹RÌRRÎRwRÏRÐRARÑRÒRÓ(RRtmultiRealmPointInfoRÙRÕ((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRès" 
 c
Csid}tjtjƒd}tj|ƒ}|rI|d|krI|dSg}tjƒ}t|jƒdƒ}t    t
j
ƒƒ}tj |t j ƒ}tjd|||fƒtjƒ}|jƒ}    xot|    ƒD]a}
|j|
ƒ} | jƒ} | jƒ} || kr-tjd| | fƒq×nt| jƒƒ}|sl|j| gƒtjd| ƒq×nd|kr§||kr§tjd| |jƒfƒq×n| jƒ}g}g}i}i}d}d|krç|dn||}x|D]\}}d    |||df}tjj|t jƒ}|j|j|jfƒ|tjd
| j ƒƒ}|j|j|jfƒ|j!|gƒ}|j||fƒ|||<xF|j"ƒD]8\}}|tjd
|ƒ}|||j|jf<q¼WqøW|j| ||||gƒtjd | ||||fƒq×Wtj#|||gƒ}tjd ƒ|dS( NtTodayDailyActionInfoiis5¼ÓÔØ±¾ÈÕÈÕ³£»î¶¯ÐÅÏ¢: %s, weekDay=%s,openServerDay=%ss:    ²»ÊÇÈÕ³£»î¶¯¿ªÆôÌìÊý: dailyID=%s,openServerDayLimit=%ss$    Ôö¼Ó±¾ÈÕÈÕ³£»î¶¯ÐÅÏ¢: dailyID=%st0s5    ²»ÊÇÈÕ³£»î¶¯¿ªÆôÐÇÆÚ: dailyID=%s,openWeekLimit=%ss%s %02d:%02d:%02dR1s[    Ôö¼Ó±¾ÈÕÈÕ³£»î¶¯ÐÅÏ¢: dailyID=%s,openList=%s,overList=%s,goonStateDict=%s,notifyDict=%ss±¾ÈÕÈÕ³£»î¶¯ÐÅÏ¢¼ÓÔØÍê±Ï!($R2R3R4R5R6RR9tstrRR{RˆtChangeTimeNumToStrRtTYPE_Time_YmdFormatR=R?tGetDailyActionCountRwtGetDailyActionByIndext
GetDailyIDtGetOpenServerDaytevalt GetOpenTimeRItkeyst GetNotifyInfoR:R;R<RRRHt GetDurationR!RLRO(RRRSRÝttodayActionInfotdayTimetweekDaytcurTimet
curDateStrRYtdailyActionCountRÕt dailyIpyDatatdailyIDtopenServerDayLimitt openTimeDicttnotifyInfoDicttopenListtoverListt goonStateDictRºt    OpenStatet openTimeListRRt openTimeStrt openDateTimet overDateTimetopenStateTimeListRsRtRu((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt__GetTodayDailyActionInfosj        
     cCsºtƒ}|sdStjƒ}tjƒ}|j|jf}xv|D]n}|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 |ƒ|krkqDntj ||ƒ|j||ƒtjd|||fƒt||ƒqDWdS(Niis7ÈÕ³£»î¶¯×´Ì¬±ä¸ü: dailyActionID=%s,state=%s,dictName=%s(RÿRRR9RRRERLR­R®R    t$Def_Notify_WorldKey_DailyActionStateR R#R¯R=t __DoLogic_GameServer_ActionState(ttodayDailyActionInfoR&Rìt curHourMinutet
actionInfot dailyActionIDR)RöR÷RøRºt    goonStateRþt dateTimeInfoR¼R½R(((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytDispose_DailyActionStateSs@       
               $   cCsstƒ}|sdStjƒ}xM|D]E}|d}tj|}|j|ƒ}|r&tj||ƒq&q&WdS(Ni(RÿRRR    RR R#(RR&RRR(R)((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytSendMapServerDailyActionStates      
 cCs¬d}tj|ƒ}|dkr¨i}tjƒ}xät|jƒƒD]Ð}|j|ƒ}|jƒ}|jƒ}|j    ƒ|j
ƒ|j ƒ}}    }
|j ƒ|j ƒ|jƒ} } } |j|gigƒ\}}|j||    |
gƒ| | | g||<||g||<qFWg}x_|jƒD]Q\}}|\}}x6|jƒD](\}}||krR|j|ƒqRqRWq-Wtj||ƒ}tjd|ƒn|S(NtFBStateEndTimeNotResets4¼ÓÔØ¸±±¾×´Ì¬½áÊøÊ±¼ä²»ÐèÒªÖØÖÃ״ֵ̬µÄÊý¾ÝIDÁбí: %s(R5R6RAR?RwtGetFBStateTimeCounttGetFBStateTimeByIndextGetIDt GetDataMapIDtGetStartWeekdayt GetStartHourtGetStartMinutet GetEndWeekdayt
GetEndHourt GetEndMinuteR!RIRLRORR=(RRtFBStateEndTimeNotResetIDListtmapStateTimeDictRYRÕtfbStateTimeIpyDatatdataIDt    dataMapIDt startWeekDayt    startHourt startMinutet
endWeekDaytendHourt    endMinutet startTimeListt endTimeDictRØR×((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt!__GetFBStateEndTimeNotResetIDListžs0    &&  c$Cs'tƒ}tjtjƒd}tjtjƒd}tjƒ}|jƒd|j|j    }}}|d|d|}tj
d||||||fƒtj ƒ}t j ƒ}    xjt|    jƒƒD]V}
|    j|
ƒ} | jƒ} | jƒ} | jƒ}| jƒ}||kr qÉn||kr2qÉn| jƒ| jƒ| jƒ}}}| jƒ| jƒ| jƒ}}}|dkr“|}n|dkr¨|}n|d|d|}|d|d|}| jƒ}|r‚|tjd||ƒ}tj|j|j|j ||dƒ}||}|j!dd|j"d    }||kr‚||\}}t#j$d||ƒq‚nt%t%}}||kr¤t&}nd||kr¿| |k}nI|rì||krì||kpæ||k}n||ko|kn}|rd} d}!n$|rÉ| j'ƒ} | j(ƒ}!nqÉt)j*| }"|j+|"ƒ| kr³tj,|"| ƒ|j-|"| ƒ| r–t.| ƒntj/d
| | |"fƒnt)j0| }#|j+|#ƒ|!krÉtj,|#|!ƒ|j-|#|!ƒtj/d | |!|#fƒt1|#|!ƒqÉqÉWdS( Nii'ids¸±±¾×´Ì¬Ê±¼ä±í״̬´¦Àí...openServerWeek=%s,openServerDay=%s,curWeekDay=%s,curHour=%s,curMinute=%s,FBStateEndTimeNotResetIDList=%siR0iii<s>¸±±¾ÊÇ·ñ¿É½øÈë±ä¸ü: dataMapID=%s,updCanEnter=%s,canEnterKey=%ss=¸±±¾×´Ì¬±ä¸ü: dataMapID=%s,updStateValue=%s,fbFuncStateKey=%s(2R"R2R3tDef_ServerWeekR4RR9RRRR‡RR5R?RwR R R RtGetOpenServerWeekRåRRRRRRtGetNotifyInfoDictR:RHRRRR0tsecondsR­R®R8RJt GetCanEntert GetStateValueR    tDef_Notify_WorldKey_FBCanEnterR R#R¯tSaveFBOpenRecordR=tDef_Notify_WorldKey_FBFuncStateR($RtopenServerWeekRSRVt
curWeekDaytcurHourt    curMinutet
curTimeWHMR&RYRÕRRRtopenServerWeekLimitRóRRRRRRt startTimeWHMt
endTimeWHMRõRkt diffDateTimet
diffMinuteR¼R½tisUpdatetisResett updCanEntert updStateValuet canEnterKeytfbFuncStateKey((sY.\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(RR9RRR    t*Def_UniversalGameRecType_LimitFBOpenRecordtGetUniversalRecMgrt GetTypeListRAtrangetCounttAtt    GetValue1Ræt GetStrValue1tAddRect    SetValue1t SetStrValue1RßRIRER#t Def_Notify_WorldKey_FBOpenRecord( tmapIDRît    curDayStrt fbOpenRecordtrecTypetuniversalRecMgrtrecTypeListDatat findRecDataR¬tuniversalRecDatatrecMapIDt
recordList((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR*"s8                
 cCs‚i}tj}tjƒ}|j|ƒ}xQt|jƒƒD]=}|j|ƒ}|jƒ}t    |j
ƒƒ}|||<q=W|S(N( R    R=RR>R?R@RARBRCRæRD(RKRLRMRNR¬RPRQRR((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytGetFBOpenRecordFs      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(RRR5R?RwR R RR'RIR    R)R R#R+t*Def_Notify_WorldKey_FBEnterTimeLimiitMapIDRSRH( tfbEnterTimeLimitMapIDListt sendMapIDListR&RYRÕRRR:tcanEnterR;t fbFuncStateRK((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytSendMapServerFBFuncStateSs.          cCstjƒrdStƒdS(N(Rt IsMergeServertDispose_ActionGoOnByDayKey(ttick((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytDispose_Action_GoOn_ByDayws cCsÊtjƒr=tjtjƒs"dStjtjƒtƒdStƒtjtjƒ}tjtj    ƒ}t
j dƒ}||dkr‹dS||dks«||dkr¶t ƒdStjtjƒdS(Nt#ActionControlByDayInitOpenServerDayiii( RRZR2R3tDef_MergeServerOpenActionDaytSetDBGSTrig_ServerTimetSendBroadcastMergeOpenActionDaytDoLogic_ActionByDayKeyOnDaytDef_ServerLastOpenActionDayR4t ReadChConfigtGetEvalChConfigtNewRingOpenActionDay(tlastOpenActionDayRSt initDayList((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytDoLogic_ServerLastOpenActionDay‡s"  cCstjtjdƒtƒdS(Ni(R2R±RctOpenActionDay_Reset(((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRfªscCsdS(N((((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRj·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( RKtATTR_CALL_TIMERDRJRR=RvttypeRRtDef_Cmp_Greatert Def_Cmp_Lowert Def_Cmp_Equ(RîRØR¬tcallObjt
curCallObjtwday((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytCompareActTimeÊs$  cCsH|s
tStj|dƒ|ko;tj|dƒknrDtStS(Nii(RJRtGetDateTimeByStrR8(RîtactSect((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt IsAtActTimeîs &cCs¢|tjtjkr&tj|ƒnx|tjtjkrLtj|ƒnR|tjtj    krut
j ||ƒn)|tjtj kržt j||ƒndS(N(R    R+RtDef_FBMapID_FamilyPartytPlayerFamilyPartytFamilyPartyStateChangetDef_FBMapID_FamilyWartGameWorldFamilyWartOnFamilyWarStateChangetDef_FBMapID_XMZZt
PlayerXMZZtOnXMZZStateChangetDef_FBMapID_FamilyInvadetPlayerFamilySWRHtOnSWRHStateChange(R(tisOpen((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRscCs3tjtjƒ}tjtjdi|d6ƒdS(NitDay(R2R3R_tMergeBroadcasttSendBroadcastMergeR(tmergeServerOpenActionDay((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRa+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;(R2R3R4tDef_IsMixServertDef_MixServerDayRdReRR=tDef_TeHuiRepeatOrderKeytDef_TeHuiRepeatNumKeytGameWorldAverageLvtOpenWorldAverageLvRßR    RµRKR±tToIntDefRER¬RRLR t__ChangeDA_ActionSign(RSt isMixServert mixServerDayt repeatDayInfotstartRepeatOpenDaytstartRepeatMixDayt
repeatListtDef_RepeatOrderKeytDef_RepeatNumKeyt repeatOrdert preRepeatNumtworldAverageLVRÕt
repeatInfotneedWorldAverageLVt insertIndextnextRepeatIndext nextRepeatNumR&tnextRepeatDictR(tsignIDtcurDaytbeginDaytbeginHtbeginMtendDaytendHtendM((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRb5sˆ         
     
 
  '  ! )cCs‘tjƒrdStjdƒtjtjƒ}tjtjƒ}tjtjƒ}tj    dƒ}|s|t
|d|ƒnt
|d|ƒdS(Ns´¦ÀíÌØ»Ý״̬ÐÅÏ¢...tActionControlByDayKeyGoOnii( RRZR‡R2R3R4RŠR‹RdRet__DoActionGoOnByDayKeyCheck(RSR’R“tallActionGoOnInfo((sY.\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-(    RR9RR RsRRnRmR‘(tgoOnListR¤RîR&t goOnControlR¥R¦R§R¨R©RªR(R£t    beginTimeR×((sY.\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( tGetBeginEndTimeByDayR{RˆRR=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((sY.\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 endDiffDaysRltendDateTimeStrt
endTimeNum((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR±ês(<RR:RRdR­R    R2R…RŽR{RxR5R~RR RRÂRÒttypesRRˆRátTime_YmdFormatRkR@R7RRRR+RJRR@RNR8RPRAR RRÿRR    R"R<R*RSRYR]RiRfRjRsRvRRaRbR[R¬R‘R±(((sY.\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt<module>sf                                €    %    K f !     R    :            h    $         $        #             $        +    
    b        $