hxp
2019-02-14 672e40734e22ec612e24b3d086f7779a161fb411
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
Þd\c@s    ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlmZddlZejZddddddgZed    ƒ\ZZZd
„Zd „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„Z/d„Z0d„Z1d„Z2d„Z3d„Z4dS(iÿÿÿÿN(tIntTypetweekdaytyeartmonthtdaythourtminuteicCsrtƒ\}}|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||ƒqIntj|krntj|tjƒndS(Ni(t__GetOperationActionInfotOperationAction_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 OnPlayerLogin9s6
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!SendMapServerOperationActionState`s
   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 GetConfigExR"t GetServerTimeRtOperationAction_ReloadSigntFalseRRRRtdatetimetstrptimeR%tTYPE_Time_Formatt
GetFuncCfgt GetServerIDtIPY_DatatLogR    R$t%__GetOperationActionServerIpyDataListtlentNonetGetCfgIDt GetStartDatet
GetEndDatet
GetActMarktGetServerIDListtisdigittintt    timedeltatFeastOperationActionNameListtsecondthasattrR5R6R7R8R9tErrLogR:R;tappendtTruet    enumeratetitemstkeystupdatet ActKey_CfgIDR=R4ttimetmktimet    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.pyRush     
(              )       !!!    !  /,!         
      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(RZR"R[t GetPlatformtgetattrtxrangeRSR®RLRPttupleRTR(R\R_R]t
isinstanceRVtlistRNRE(RwRvR.tplatformt actGroupDictt actCfgCounttcfgIndexRtactMarkt platformListt serverIDTupletserverIpyDataDictt ipyDataListRxtgeneralIpyDataListt    isGeneralt serverIDInfo((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRM^sJ  !# 
 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(DRRERR!R"R#RCRFRGRRRRRR%RHR    R$ROtindexR^t PlayerControlt WorldNotifyR&R'tSetDictR(R>tDef_OperationActIDRgRfR?tSetDBGSTrig_ByKeytNeedWorldLVOperationActNameListt"Def_Notify_WorldKey_WorldAverageLvtDef_OActWorldLVtOperationActionName_BossRebornt GameWorldBosstResetBossRebornPointR R tResetFairyCeremonyRRtResetNewFairyCeremonyRRtOnResetFeastRedPackettOperationActionName_FlashSalet PlayerStoretResetFlashSaleBuyCnttActKey_WorldLVR
R tOperationActionName_CostRebatetSetBossRebornNeedPointR]RtOnFairyCeremonyEndRtOnNewFairyCeremonyEndRRRR)R*R+RL(t reloadRefreshRRRR,R-RsR.R0RRRt
notifyDicttdIndexR˜R™t    notifyKeyt    paramListR/tpreStateR1tdbOperationActIDKeytcurActIDRªtworldLVt
actWorldLV((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRjŒ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("RNR5R6R>R?R@tChPyNetSendPackttagGCMultiExpRateInfotClearR"tGetOperationActionDateStrRQt    StartDateRRtEndtDatet ActivityTimeR^ttagGCMultiExpRateTimet    StartTimetEndtTimeR\tActivityTimeCountt
GetLVLimittLimitLVt GetAddExpRatet
AddExpRatetGetPlayerManagerR±tGetPlayerCounttGetPlayerByIndexROt    GetInitOKt NetPackCommont SendFakePack(    RRRmtmultiExpRateInfotit    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äR"RåRQRæRRRçt GetMultipletMultipleRíRît GetPointLimitt
LimitPointRñR±RòRóRORôRõRö(RRRmtmultiRealmPointInfoRüRø((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR,s& 
 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ƒ| d} 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ì|rz|| krztjd|ƒ}|sÎg}ntjdt|ƒƒx~|D]v}|jƒ}|jƒ}||kr&|j|ƒnd}|j||jƒ|gƒtjd|||fƒqìWtjd|ƒn tjdƒtjdƒtjƒ}|jƒ}xt|ƒD]ô}|j|ƒ}|jƒ}||krýtjd|ƒq¹n|jƒ}|s6|j|gƒtjd|ƒq¹nd|krq||krqtjd||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<qÕWqW|j||| |!|"gƒtjd|||| |!|"fƒqÅWtj+|||gƒ}tjd|ƒtjd ƒ|dS(!NtTodayDailyActionInfoiiR3t    MixServers ===== ¼ÓÔØ½ñÌìÈÕ³£»î¶¯ÐÅÏ¢ =====s$¿ª·þÊÇÐÇÆÚ%s, ¿ª·þµÚ%sÌì, µ±Ç°ÐÇÆÚ%ss×î´óÓÐЧ¶¨ÖÆ¿ª·þÌì: %ss,ÊÇ·ñºÏ·þ: %s, ºÏ·þÌì: %s, ×î´ó¶¨ÖƺϷþÌì: %stDailyActionCustoms"    ±¾Öܶ¨ÖƵĿª·þÈÕ³£»î¶¯ÌõÊý: %ss@    Ôö¼Ó±¾ÈÕ¿ª·þÈÕ³£»î¶¯ÐÅÏ¢: customType=%s,dailyID=%s,dataID=%ss&    ±¾Öܶ¨ÖƵĿª·þÈÕ³£ÅäÖñíIDÁбí: %ss$    ±¾Öܶ¨ÖƵĿª·þÈÕ³£»î¶¯IDÁбí: %ss!    ½ñÌì¶¨ÖÆµÄ¿ª·þÈÕ³£±íIDÁбí=%stDailyActionCustomMixs"    ½ñÌì¶¨ÖÆµÄºÏ·þÈÕ³£»î¶¯ÌõÊý: %sis@    Ôö¼Ó±¾ÈպϷþÈÕ³£»î¶¯ÐÅÏ¢: customType=%s,dailyID=%s,dataID=%ss$    ½ñÌì¶¨ÖÆµÄºÏ·þÈÕ³£»î¶¯IDÁбí: %ss0    ³¬¹ý×î´ó¶¨ÖÆ¿ª·þÌ죬²»¶¨ÖÆ£¬×ß³£¹æÈÕ³£ÅäÖã¡s    ´¦Àí³£¹æÈÕ³£»î¶¯ÅäÖÃs:    ³£¹æ»î¶¯IDÅäÖÃÊǽñÌìµÄ¶¨ÖƻID£¬²»´¦Àí£¡: dailyID=%ss(    Ôö¼Ó±¾ÈÕ³£¿ªÈÕ³£»î¶¯ÐÅÏ¢: dailyID=%st0s5    ²»ÊÇÈÕ³£»î¶¯¿ªÆôÐÇÆÚ: dailyID=%s,openWeekLimit=%ss    -----------------------s%s %02d:%02d:%02dR<sm    Ôö¼Ó±¾ÈÕÏÞʱÈÕ³£»î¶¯ÐÅÏ¢: customType=%s,dailyID=%s,openList=%s,overList=%s,goonStateDict=%s,notifyDict=%ss%±¾ÈÕÈÕ³£»î¶¯ÐÅÏ¢¼ÓÔØÍê±Ï! loadSign=%ss==============================================================(,R>R?R@tDef_IsMixServertDef_MixServerDayRARBR"RCtstrRRVRctChangeTimeNumToStrR%tTYPE_Time_YmdFormattGameWorldProcesstGetOpenServerWeekdayRIRLtGetIpyGameDataListNotLogRNtGetIDt
GetDailyIDR\tGetOpenServerDaytGetOpenTimeListRKtGetDailyActionCountR±tGetDailyActionByIndextGetOpenTimeDictR`t GetNotifyInfoRFRGRHRRRWt GetDurationR(R_Ri(-RlRmt isMixServert mixServerDaytloadSignRttodayActionInfotdayTimetweekDaytcurTimet
curDateStrtopenServerWeekdaytcurMaxCustomServerDaytmaxCustomServerDayMixtcustomDailyIDListtdailyTimeInfoListtcustomIpyDataListt customIDListttodayCustomIDListt customIpyDatatdataIDtdailyIDt
customTypeRwtdailyActionCountRøt dailyIpyDatat openTimeDictt openTimeListRtnotifyInfoDicttopenListtoverListt goonStateDictRÙt    OpenStateRRt openTimeStrt openDateTimet overDateTimetopenStateTimeListR¡R¢R£((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt__GetTodayDailyActionInfoGsÔ              !                   
     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:R"R#RCRRRNR_RÂRÃR    t$Def_Notify_WorldKey_DailyActionStateR'tDailyActionID_FamilyRobBossRËt(SyncMapServer_HorsePetRobBossPlayerCountR*RÄRLt __DoLogic_GameServer_ActionState(ttodayDailyActionInfoR-Rt curHourMinutet
actionInfot dailyActionIDR0R2R3R4RÙt    goonStateR9t 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:R"R#R    R;R'R*(R?R-RARBR/R0((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytSendMapServerDailyActionStates      
 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(RARBRORKR±tGetFBStateTimeCounttGetFBStateTimeByIndexRt GetDataMapIDtGetStartWeekdayt GetStartHourtGetStartMinutet
GetEndHourt GetEndMinuteR(R\R_RhtGetFBStateTimeCustomCounttGetFBStateTimeCustomByIndextGetOpenServerWeekRtGetFBStateTimeCustomMixCounttGetFBStateTimeCustomMixByIndextGetMixServerDayRiR"RL(RltnotResetIDListtmapStateTimeDictRwRø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!__GetFBStateEndTimeNotResetIDList"s„    &   
 
 
 c    Csød}tjtjƒd}tjtjƒ}tjtjƒd}|||g}tj|ƒ}|r€|d|kr€|dStjtjƒd}tjƒ}|j    ƒd|j
|j }}}    t j ƒ}
|
dkrótjd|
ƒgStjddƒ|
d} 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´tjd|ƒ}|sg}ntjdt|ƒƒx†|D]~}|jƒ}|jƒ}||krX|j|ƒnd||}}}|j||||gƒtjd||fƒqWtjd|ƒn tjdƒtjdƒxét| jƒƒD]Õ}| j|ƒ}|jƒ}|jƒ}||kr7tjd||fƒqánd|jƒ|jƒ}}}||kr†tjd||||fƒqán|j||||gƒtjd||fƒqáWtj|||gƒ}tjd|ƒtjdƒ|dS(NtTodayFBStateTimeInfoiis.»ñÈ¡¿ª·þÊÇÐÇÆÚ¼¸Êý¾Ý´íÎó£¡openServerWeekday=%sR3Rs"===== ¼ÓÔØ½ñÌ츱±¾×´Ì¬Ê±¼ä±í =====s0¿ª·þÊÇÐÇÆÚ%s, ¿ª·þµÚ%sÌì, µ±Ç°ÐÇÆÚ%s,%sµã%s·Ö £¡s×î´óÓÐЧ¶¨ÖÆ¿ª·þÌì: %ss,ÊÇ·ñºÏ·þ: %s, ºÏ·þÌì: %s, ×î´ó¶¨ÖƺϷþÌì: %stFBStateTimeCustoms"    ±¾Öܶ¨ÖƵĿª·þ¸±±¾»î¶¯ÌõÊý: %ss9    ½ñÌìÒª´¦ÀíµÄ¿ª·þ¸±±¾×´Ì¬ÅäÖÃ: customType=%s,dataID=%ss"    ±¾Öܶ¨ÖƵĿª·þ¸±±¾±íIDÁбí: %ss"    ±¾Öܶ¨ÖƵĿª·þ¸±±¾µØÍ¼Áбí: %ss!    ½ñÌì¶¨ÖÆµÄ¿ª·þ¸±±¾±íIDÁбí=%stFBStateTimeCustomMixs"    ±¾ÈÕ¶¨ÖƵĺϷþ¸±±¾»î¶¯ÌõÊý: %sis9    ½ñÌìÒª´¦ÀíµÄºÏ·þ¸±±¾×´Ì¬ÅäÖÃ: customType=%s,dataID=%ss"    ±¾ÈÕ¶¨ÖƵĺϷþ¸±±¾µØÍ¼Áбí: %ss4    ³¬¹ý×î´ó¶¨ÖÆ¿ª·þÌ죬²»¶¨ÖÆ£¬×ß³£¹æ¸±±¾×´Ì¬Ê±¼ä£¡s    ´¦Àí³£¹æ¸±±¾×´Ì¬Ê±¼äÅäÖÃs?    dataID=%s,dataMapID=%s, ÔÚ±¾Öܶ¨ÖƵĸ±±¾µØÍ¼ÁбíÀï,²»´¦Àí£¡sU    dataID=%s,dataMapID=%s, ²»ÊDZ¾ÌìµÄ¸±±¾»î¶¯,²»´¦Àí£¡ curWeekDay=%s,startWeekDay=%ss5    ½ñÌìÒª´¦ÀíµÄ¸±±¾×´Ì¬ÅäÖÃ: customType=%s,dataID=%ss)±¾ÈÕ¸±±¾»î¶¯×´Ì¬ÐÅÏ¢¼ÓÔØÍê±Ï! loadSign=%ss==============================================================(R>R?R@RR    RARBR"RCRRRR RR[RIRLRKRRNRRJR\RR±RHRIRKRi(RlRmRRRRkRst
curWeekDayRot    curMinuteR!R"R#RwtcustomMapIDListtfbStateTimeInfoListR&R'R(R)R*RYR,RZR]RøRX((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt__GetTodayFBStateTimeInfoqsž $                                    c" Cs¹tƒ\}}}tjƒ}|jƒd|j|j}}}|d|d|}tjƒ}tƒ}    xE|    D]=\}
} } } | 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'idiR4iii<is>¸±±¾ÊÇ·ñ¿É½øÈë±ä¸ü: dataMapID=%s,updCanEnter=%s,canEnterKey=%ss=¸±±¾×´Ì¬±ä¸ü: dataMapID=%s,updStateValue=%s,fbFuncStateKey=%s(%RjR"RCRRRR#RrRRJRLRMRNROtGetNotifyInfoDictRFRWRRRR4tsecondsRÂRÃRER]t GetCanEntert GetStateValueR    tDef_Notify_WorldKey_FBCanEnterR'R*RÄtSaveFBOpenRecordRLtDef_Notify_WorldKey_FBFuncStateR>("RbRfRiRsRnRoRot
curTimeWHMR-RqR,RZR]RR*RYR[R\R^R_t startTimeWHMt
endTimeWHMR1R˜t diffDateTimet
diffMinuteRÛRÜtisUpdatetisResett updCanEntert updStateValuet canEnterKeytfbFuncStateKey((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytDispose_FBStateTimeÎst $                      '
                 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(R"RCRRR    t*Def_UniversalGameRecType_LimitFBOpenRecordtGetUniversalRecMgrt GetTypeListROtrangetCounttAtt    GetValue1tevalt GetStrValue1tAddRect    SetValue1t SetStrValue1R
R\RNR*t Def_Notify_WorldKey_FBOpenRecord( tmapIDRt    curDayStrt fbOpenRecordtrecTypetuniversalRecMgrtrecTypeListDatat findRecDataRÁtuniversalRecDatatrecMapIDt
recordList((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyRx3s8                
 cCs‚i}tj}tjƒ}|j|ƒ}xQt|jƒƒD]=}|j|ƒ}|jƒ}t    |j
ƒƒ}|||<q=W|S(N( R    R†R"R‡RˆR‰RŠR‹RŒRRŽ(R•R–R—R˜RÁRšR›Rœ((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytGetFBOpenRecordWs      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(R"R#RARKR±RHRIRJRuR\R    RwR'R*Ryt*Def_Notify_WorldKey_FBEnterTimeLimiitMapIDRR’( tfbEnterTimeLimitMapIDListt sendMapIDListR-RwRøRXRYRƒtcanEnterR„t fbFuncStateR•((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytSendMapServerFBFuncStateds.          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_TIMERZR]R"RLR°ttypeRR%tDef_Cmp_Greatert Def_Cmp_Lowert Def_Cmp_Equ(RRûRÁtcallObjt
curCallObjtwday((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pytCompareActTimeŠs$  cCsH|s
tStj|dƒ|ko;tj|dƒknrDtStS(Nii(R]R"tGetDateTimeByStrRE(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    RyR%tDef_FBMapID_FamilyPartytPlayerFamilyPartytFamilyPartyStateChangetDef_FBMapID_FamilyWartGameWorldFamilyWartOnFamilyWarStateChangetDef_FBMapID_XMZZt
PlayerXMZZtOnXMZZStateChangetDef_FBMapID_FamilyInvadetPlayerFamilySWRHtOnSWRHStateChangeR;R<RËtOnHorsePetRobBossActionChangetDailyActionID_CrossReamPKt CrossRealmPKt$OnCrossRealmPKDailyActionStateChange(R/tisOpen((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyR>Às(5R%RFR"RÂR    R>R¾R´R±RAR·RºRËRR RRR RâRõRÑttypesRRcR tTime_YmdFormatR¤R‰RDRR!R R2R]RRMRERjROR RR:RERFRjRrR…RxRR£R¬R¯R>(((siE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldActionControl.pyt<module>sX                              '     é    . ~ "     ‹    ?        O    ]    e    $         &    $