hwj35
2025-03-06 dd6e4b64952f7ec9a93bae9e1aa333021d52859e
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
    œgc@s“ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZedƒ\ZZZd„Zd„Zd„Zd„Zed„Zd„Zd    „Zed
„Zed „Z d d „Z!d„Z"d„Z#d„Z$d„Z%d„Z&d„Z'd„Z(d„Z)dS(iÿÿÿÿNicCsdS(N((t    curPlayer((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pyt OnPlayerLogin-sc Cs­tjƒsdStjƒjtjƒtjs3dStjdƒtjƒj    tjƒ}xNtjj
ƒD]=\}}x.|j
ƒD] \}}|j tj ƒs¥qn|j tj dƒ}|j tj dƒ}|j tjdƒ}|j tjdƒ}|j tjdƒ}    |jƒ}
|
j|ƒ|
jt|    ƒƒ|
j|ƒ|
j|ƒ|
j|ƒ|
j|ƒ|
j|ƒtjd|||||||    fƒqWqhWdS(Ns±£´æ¿ç·þÔËÓª»î¶¯ÐÅϢͨÓüǼ: itsY    actName=%s,cfgID=%s,state=%s,stateJoin=%s,actID=%s,templateID=%s,serverIDRangeList=%s(t    GameWorldt IsCrossServertGetUniversalRecMgrtDeletet ShareDefinet%Def_UniversalGameRecType_CrossActInfot
PyGameDatatg_crossActInfoDicttLogt GetTypeListtitemstgett ActKey_StatetActKey_StateJoint    ActKey_IDtActKey_TemplateIDtActKey_ServerIDRangeListtAddRect SetStrValue1t SetStrValue3tstrt    SetValue1t    SetValue2t    SetValue3t    SetValue4t    SetValue5( t recDataListtactNamet actInfoDicttcfgIDtactInfotstatet    stateJointactIDt
templateIDtserverIDRangeListtrecData((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pyt OnServerClose0s6                 %cCsnt||ƒ}|sdS|jtjƒ}|jtjƒ}|satjd|||fƒdS|jdƒS(NsVActKey_IpyDataInfoΪ¿Õ, ÕÒ²»µ½¿ç·þ»î¶¯ËùÊô·ÖÇø! actName=%s, serverGroupID=%s, cfgID=%stZoneID(tGetCrossActInfoByServerGroupIDRRt ActKey_CfgIDtActKey_IpyDataInfoRtErrLog(Rt serverGroupIDRR t ipyDataInfo((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pytGetCrossActZoneIDSs    c Cstj}|rü||krü||}xÔ|jƒD]Ã}|jtjdƒsSq2n|jtjƒ}|sqq2nx|D]y}t|tƒr™||ksít|t    ƒs·t|t
ƒrxt |ƒdkrx|d|koè|dknrx|SqxWq2Wnt j d||fƒdS(s»ñÈ¡×Ó·þIDËùÊô¿ç·þ»î¶¯ÐÅÏ¢£¬ ¿ç·þ¡¢×Ó·þͨÓÃ
        @param serverGroupID: ·þÎñÆ÷ID»ò·þÎñÆ÷·ÖID
                                ¿ç·þ»î¶¯±íÅäÖõÄÊÇ·þÎñÆ÷ID£¬¶ø×Ó·þºÏ·þºóÒÔÖ÷·þµÄ·þÎñÆ÷ID×÷Ϊ·þÎñÆ÷×éID£¬ËùÒÔÁ½ÖÖ·þÎñÆ÷IDÔڴ˺¯ÊýÖÐͨÓÃ
        @return: None or ActKey_IpyDataInfo
    iiis>ÕÒ²»µ½·þÎñÆ÷×éID¶ÔÓ¦¿ç·þ»î¶¯·ÖÇø! actName=%s, serverGroupID=%sN(R    R
tvaluesRRRRt
isinstancetintttupletlisttlenRtDebugLog(RR.tcrossActInfoDicttcurActInfoDictRR&t    groupInfo((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pyR*`s     
 6cCs‹tƒ}||krdS||}||kr3dS||}|r‡|jtjiƒ}|sbdS|jddƒ}||kr‡dSn|S(NR)i(tGetCrossActInfoDictRRR,(RR tzoneIDR8R9R!t ipyDataDictt    ipyZoneID((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pytGetCrossActInfoByCfgID{s     
 
 cCs§tjdkr it_tjƒjtjƒ}tjd|j    ƒƒxVt
|j    ƒƒD]?}|j |ƒ}|j ƒ}|j ƒ}|r™t|ƒng}|jƒ}|jƒ}|jƒ}|jƒ}    |jƒ}
|sçqZn|tjkritj|<ntj|} i|tj6|tj6|    tj6|tj6|tj6|
tj6} i} | j| ƒ| | tj<| | |<tjd||| fƒqZWntjS(Ns$¼ÓÔØÍ¨ÓüǼÖеĿç·þÔËÓª»î¶¯ÐÅÏ¢: %ss    actName=%s,cfgID=%s, %s(R    R
tNoneRRR RRR tCounttxrangetAtt GetStrValue1t GetStrValue3tevalt    GetValue1t    GetValue2t    GetValue3t    GetValue4t    GetValue5RRRR+RRtupdatet ActKey_DBInfo(RtindexR'Rt    strValue3R&R R"R$R%R#RtdbInfoR!((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pyR;Žs8            !   
!cCsÝg}i}t|d|ƒƒ}xvt|ƒD]h}t|d|ƒ|ƒ}|jƒ}||kr€g||<|j|ƒn||}    |    j|ƒq/Wg}
x5|D]-}||}    t} g} g} xµ|    D]­}|jƒ}| j|ƒ|jƒ}||krb||rb||}|
j|ƒ|tjkrb|tj    }t
j d||fƒqbn|sqt } qÑ| j |ƒqÑW| r·t|    ƒdkr·t
jd|| fƒq¨ng}x©tt| ƒƒD]•}| |\}}x|t|ƒD]n}| |\}}||ko |knr5|j|ƒn||koL|knró|j|ƒqóqóWqÐW|rt
jd|| |fƒq¨nxC|    D];}|jƒ}||krÄ||rÄq–n|
j|ƒq–Wq¨W|
S(Ns
Get%sCounts Get%sByIndexsC    Ê¹ÓÃÒѾ­ÔڻÖеļǼµÄÇø·þ·Ö×é: cfgID=%s,serverIDRangeList=%sis]    Í¬×é»î¶¯·þÎñÆ÷IDÅäÖÃÒì³££¬ÓÐÈ«·þ¿ª·ÅµÄ£¬Ö»ÄÜÅäÖÃ1Ìõ£¬²»´¦Àí! actGroupName=%s,cfgIDList=%ss_    Í¬×é»î¶¯·þÎñÆ÷IDÅäÖÃÒì³££¬Óн»²æ£¬²»´¦Àí! actGroupName=%s,cfgIDList=%s,errorServerIDList=%s(tgetattrRBtGetActGroupNametappendtFalsetGetCfgIDtGetServerIDRangeListRtCrossActLockServerGroupIDListRRR tTruetextendR6R-(t
ipyDataMgrRRt groupNameListR:t actCfgCounttcfgIndextipyDatat actGroupNametgroupIpyDataListtparseIpyDataListtallOpent    cfgIDListtallServerIDRangeListR R&R!terrorServerIDListtitcheckIDAtcheckIDBtjt    serverIDAt    serverIDB((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pyt__GetParseIpyDataList±sj  
 
 
 
                cJCs^d}tj|ƒ}tjƒ}d|j|j|jf}|j}|dkrXdnd}d||f}|rŽ|t|krŽt    |fSd||j|j
f}t j j |t jƒ}    i}
i} tjƒ} tjdƒtjd|    |fƒtƒ} tjd    | ƒx· tjD]¬ }tjd
|ƒt| d |ƒs`tjd |ƒqn| j|iƒ}t| ||ƒ}xD |D]< }|jƒ}|jƒ}|jƒ}|jƒ}tjd |||||    fƒ|s|}tjd|ƒn|s!|}tjd|ƒn|jdƒo<|jdƒ}|rttj|ƒ\}}tjd||fƒnt|dƒr­t|dƒr­|jƒ}|jƒ}n d}d}t|dƒròt|dƒrò|j ƒ}|j!ƒ}n g}g}t|dƒr|j"ƒni}t|dƒr:|j#ƒni}t|dƒr[|j$ƒng}t%|ƒt%|ƒkr™tjd||||fƒnt|dƒs®dn    |j&ƒ}t|dƒsÏdn    |j'ƒ}|dkr"t j j d|t jƒ} t j j d|t jƒ}!nŸ|dkryt j j d|t jƒ} t j j d |t jƒt j(d!dƒ}!nHt j j d |t jƒ} t j j d |t jƒt j(d!dƒ}!tjd"|| |!||fƒ|    | ksù|    |!kr,t    }"||ks|| r2tjd#ƒq‹q2nt)}"tjd$||"fƒg}#g}$i}%i}&i}'i}(|sœ| })|!}*|#j*|)ƒ|$j*|*ƒnÅxÂt+|ƒD]´\}+},|+t%|ƒkrËPn||+}-d%|    j|    j|    j|,f}.d%|    j|    j|    j|-f}/t j j |.t jƒ})t j j |/t jƒ}*|#j*|)ƒ|$j*|*ƒq©Wtjd&|#ƒtjd'|$ƒgg}0}1|rd|r|0j*t j j d%|    j|    j|    j|ft jƒƒ|1j*t j j d%|    j|    j|    j|ft jƒƒqd|0j*t j j d(||ft jƒƒ|1j*t j j d(||ft jƒƒntjd)|0ƒtjd*|1ƒx t+|#ƒD]ý\}2})|$|2}*xs|j,ƒD]e\}3}4|)t j(d+|3ƒ}5|5j|    jkr¶|5j|    jkr¶|5j|    jkr¶|4|%|5<q¶q¶Wxs|j,ƒD]e\}3}4|*t j(d+|3ƒ}5|5j|    jkr,|5j|    jkr,|5j|    jkr,|4|&|5<q,q,W|r“t%|ƒdkr“|d \}6}7t%|ƒdkrÙ|dng}8|7|8g}4d=\}9}:x–|6rŒ    |7rŒ    |9|:krŒ    |9d7}9|    t j(d+|6|9ƒ}5|5|*krF    Pn|5j|    jkrú|5j|    jkrú|5j|    jkrú|4|'|5<qúqúWq“q“W|%s¦    |&s¦    |'r]
tjd-t%|%j-ƒƒt.|%j-ƒƒfƒtjd.t%|&j-ƒƒt.|&j-ƒƒfƒtjd/t%|'j-ƒƒt.|'j-ƒƒfƒ|(j/|%ƒ|(j/|&ƒ|(j/|'ƒn||
krv
i|
|<n||#|$|(|0|1g|
||<|| krµ
ggg| |<n| |\};}<|| krÞ
i| |<n| |}||kr i||<n||}=i}>t0j1|d0ƒ}?x:|?D]2}@|@d>krB q* nt2||@ƒƒ|>|@d2<q* W|>j/i|d36|d46ƒtjd5|>ƒ|=j/i|tj36|>tj46ƒtj5|=ksË |tj6krá |j7ƒ|=tj5<nd?\}A}B}C|"r€ x±|D]©}D|Djƒ}E|Djƒ}F|F|kr+ Pn|E|<kr= qý n|<j8|Eƒ|E|krp ||E}Gd|Gtj9<n|E|;kr‚ qý n|;j*|Eƒtjd6|E|Ffƒqý W||<krÆ |<j*|ƒn|    | j:}B| }H|së |r |r |Ht j(d!|Bƒ7}Hnt;t<j=|Hj>ƒƒƒ}Atjd7||H|Afƒt|d8ƒrœ |j?ƒ}I|Bt%|Iƒkrp |Id9n|I|B}Cqœ n||;krœ |;j*|ƒn|=j/i|Atj96|Ctj@6|BtjA6ƒq‹WqWtjB|||
| gƒ}tjd:||fƒtjd;|
ƒtjd<| ƒtjd    | ƒtjdƒ|rTtCt)ƒnt)|fS(@Nt CrossActInfos%d-%d-%diis%s %ss%s %02d:%02d:00s==============================================================s1¼ÓÔØ±¾ÈÕ¿ç·þÔËÓª»î¶¯ÐÅÏ¢: %s, reloadSign=%s =====s    crossActInfoDict=%ss¼ÓÔØ¿ç·þÔËÓª»î¶¯: actName=%ss
Get%sCounts4    Ã»Óиÿç·þÔËÓª»î¶¯ÀàÐͶÔÓ¦»î¶¯Ê±¼ä±í! actName=%ssJ    cfgID=%s,actGroupName==%s,startDateStr=%s,endDateStr=%s,curDateTime=%ss7        ¿ªÊ¼ÈÕÆÚΪ¿Õ£¬Ä¬ÈÏÿÌ죬½ñÈÕΪ: startDateStr=%ss5        ½áÊøÈÕÆÚΪ¿Õ£¬Ä¬ÈÏÿÌ죬½ñÈÕΪ: endDateStr=%stWs         ÐÇÆÚXת»¯ÎªÈÕÆÚ: %s ~ %stGetJoinStartTimetGetJoinEndTimeRtGetStartTimeListtGetEndTimeListtGetNotifyInfoStarttGetNotifyInfoEndtGetNotifyInfoLoops_        »î¶¯ÅäÖÿªÊ¼¼°½áÊøÊ±¼ä¸öÊý²»Æ¥Åä! actName=%s,cfgID=%s,startHMStrList=%s,endHMStrList=%st GetIsDayResett GetResetTypeis %s 05:00:00is %s 00:00:00tdayssT        resetType=%s,startDayDate=%s,endDayDate=%s,startHMStrList=%s,endHMStrList=%ss        ·Ç»î¶¯Ê±¼ä£¡²»´¦Àí£¡s9        ÐèÒª´¦ÀíµÄ¿ç·þÔËÓª»î¶¯ÐÅÏ¢: cfgID=%s,isActTime=%ss%d-%d-%d %s:00s        startList=%ss        end  List=%ss%s %s:00s        joinStartTimeList=%ss        joinEndTime  List=%stminutesids        startNotifyDict: %s, %ss        end  NotifyDict: %s, %ss        loop NotifyDict: %s, %stGetRVit    StartDatetEndDates        ipyDataDict=%ssK        Ç°Ãæ´æÔڻµÄ·Ö×飬ÔòÇ¿ÖÆ½áÊø»î¶¯£¡ befCfgID=%s,befActGroupName=%ss/        isDayReset=%s,actIDDateTime=%s,actID=%stGetTemplateIDListiÿÿÿÿs<±¾ÈÕ¿ç·þÔËÓª»î¶¯ÐÅÏ¢¼ÓÔØÍê±Ï!reloadSign=%s,isRefreshState=%ss    actTimeInfoDict=%ss    actCfgIDInfoDict=%s(iid(sGetNotifyInfoStartsGetNotifyInfoEndsGetNotifyInfoLoopsGetServerIDRangeList(iii(Dt IpyGameDataPYt GetConfigExRt GetServerTimetyeartmonthtdaythourtCrossAct_ReloadSignRTtminutetdatetimetstrptimetChConfigtTYPE_Time_FormattIPY_DataR R;RtCrossActNameListthasattrR-RRlRURRt GetStartDatet
GetEndDatet
startswithtGetOperationActionDateStrRoRpRqRrRsRtRuR6RvRwt    timedeltaRXRSt    enumerateR tkeystsortedRLtCommFunctget_class_methodRQR+R,RRWRVtremoveRRxR3ttimetmktimet    timetupleR}RtActKey_DayIndext SetConfigExtDispose_CrossActState(JtisRefreshStatetkeyRmt
serverTimet
curDateStrtcurHourtreloadSignHourt
reloadSigntcurDateTimeStrt curDateTimetactTimeInfoDicttactCfgIDInfoDictRZR8RR9RaR^R R_t startDateStrt
endDateStrt    actByWeektjoinStartTimeStrtjoinEndTimeStrtstartHMStrListt endHMStrListtnotifyInfoDictStarttnotifyInfoDictEndtnotifyInfoLoopInfot
isDayResett    resetTypet startDayDatet
endDayDatet    isActTimet    startListtendListtstartNotifyDictt endNotifyDicttloopNotifyDictt
notifyDictt startDateTimet endDateTimethmIndext
startHMStrtendHMStrt startTimeStrt
endTimeStrtjoinStartTimeListtjoinEndTimeListtdtIndext notifyMinutet
notifyInfotnotifyDateTimet loopMinutest loopNotifyKeytloopNotifyParamListt    loopCountt loopMaxCountt endCfgIDListt actCfgIDListtcurCfgActInfoDictR=tmethodst method_nameR$tdayIndexR%t
befIpyDatatbefCfgIDtbefActGroupNametbefCfgActInfoDictt actIDDateTimettemplateIDList((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pyt__GetCrossActInfoös’     
              !!!    !!  /,          
  8;),
66"  
 6///        
 
  !       
     ,   c6Csi
ttƒ\}}|p|}|t}|t}tƒ}tjƒ}tjjd|j    |j
|j |j |j ftjƒ}g}g}i}    x’tjD]‡}
|
|ks|
|ks|
|krÍqn||
} ||
\} } | | }x0|D](}|| krqøn| |\}}}}}}t}d}tj}|jƒ}|jƒ}|jƒ}|||
kr†i||
|<n||
|}|| kr–xNt|ƒD]@\}}||}||koÚ|knr­|d}Pq­q­W|r
||dk}n|r{x€t|ƒD]W\}} ||}!| |koJ|!knr\tj}Pq||!krtj}qqWq–|rŠtjntj}n|jtjƒ}"||kr|"dkr||\}#}$d}%g}&g}'|'jtj|%|#|$g|"gƒtj |&|'ƒqn|jtj!iƒ}(|(jtj"dƒ})|(jtj#dƒ}*|(jtj$dƒ}+|(jtj%dƒ},|(jtj&dƒ}-|(jtjdƒ}.t}/|+|krÔ|.|"krÔt}/n|jtj%dƒ}0|jtj&dƒ}1| r6|)|kr6|*|kr6|,|0kr6|/ r6qøntj'd|
||||)|||,|0|/|*|f ƒ||tj"<||tj#<i|0tj%6|tj"6|1tj&6|tj$6|"tj6|tj#6}(|(|tj!<|
|    kríi|    |
<n||    |
|<|,|0ks |/rtj'd|
||||,|0|/|-fƒ|
tj(kr[t)j*||-|ƒnó|
tj+krƒt,j-||||ƒnË|
tj.kr«t/j-||||ƒn£|
tj0krÓt1j-||||ƒn{|
tj2krût3j-||||ƒnS|
tj4kr#t5j-||||ƒn+|j|
||||||,|0|/|-g
ƒt}2|j|
||)|||||2|-g    ƒnf|)|kråt}2tj'd|
||||)||2|-fƒ|j|
||)|||||2|-g    ƒn|r§|
tj+krt,j6|||ƒq§|
tj.kr5t/j6|||ƒq§|
tj0krZt1j6|||ƒq§|
tj2krt3j6|||ƒq§|
tj4kr§t5j6|||ƒq§n|0r¼|,|0kr¼|*|kr¼tj'd|*|fƒ|tjkrîq¼|tjkr¼|
tj+kr"t,j7|||ƒq¹|
tj.krGt/j7|||ƒq¹|
tj0krlt1j7|||ƒq¹|
tj2kr‘t3j7|||ƒq¹|
tj4kr¹t5j7|||ƒq¹q¼ntj8tj9|
||
ƒ| rø|rø||
|=||
s    ||
=ntj'd    |
||fƒqøqøWqW|    rM    g}&t:j;tj<|    |&ƒnx‰|D]}3|3\
}
}}}}}},}0}/}-tj'd|
||||,|0|/|-fƒ|
tj=krT    ddl>}4|4j*||ƒqT    qT    Wx‰|D]}3|3\    }
}})}}}}}2}-tj'd|
||||)||2|-fƒ|
tj?krà    ddl@}5|5jA||2|ƒqà    qà    WdS(
Ns%d-%d-%d %d:%d:00iiiÿÿÿÿs¢¿ç·þÔËÓª»î¶¯×´Ì¬: actName=%s,cfgID=%s,groupName=%s,zoneID=%s,dbState=%s -> state=%s,isEnd=%s, dbActID=%s -> actID=%s,forceReset=%s, dbStateJoin=%s -> stateJoin=%sso    »î¶¯ID±ä¸ü: actName=%s,cfgID=%s,groupName=%s,zoneID=%s,dbActID=%s -> actID=%s,forceReset=%s,dbTemplateID=%ssr    »î¶¯×´Ì¬±ä¸ü: actName=%s,cfgID=%s,groupName=%s,zoneID=%s,dbState=%s -> state=%s,actIDChange=%s,dbTemplateID=%ss-    ²ÎÓë״̬±ä¸ü: dbStateJoin=%s,stateJoin=%ss;    ÒƳý½áÊøµÄ»î¶¯: actName=%s,cfgID=%s,crossActInfoDict=%s(BRÝRTtCrossAct_TodayInfotCrossAct_CfgIDInfoR;RR€R‡RˆRR‚RƒR„R†R‰RŠRRŒRXtActStateJoin_NoneRURRt    GetZoneIDR“tActStateJoin_StarttActStateJoin_EndRRR@RStCrossNotify_CrossActt PlayerControlt CrossNotifyExRMRRR+RRR tCrossActName_CTGBillboardtCrossActCTGBillboardt OnActIDChangetCrossActName_BossTrialtPlayerActBossTrialtOnCrossActIDChangetCrossActName_XianXiaMJtPlayerActXianXiaMJtCrossActName_GubaotPlayerActGubaotCrossActName_HorsePetTraintPlayerActHorsePetTraintCrossActName_LianqitPlayerActLianqitOnCrossActInStateRefreshtOnCrossActJoinEndtSendMapServerMsgExt Def_Notify_WorldKey_CrossActInfot CrossRealmMsgtSendMsgToClientServertCrossServerMsg_CrossActInfotCrossActName_AllRechargetCrossActAllRechargetCrossActName_LuckyCloudBuytCrossLuckyCloudBuytOnLuckyCloudBuyStateChange(6t reloadRefreshtisReloadRmR¨R©R8R§t actChangeListtactStateChangeListtsysnCrossActInfoDictRt timeInfoDictRÑRÒRcR R^R¹RºR¾RÆRÇtisEndR"R#t    groupNameR<RtdIndexR¿RÀtjIndextjoinStartDateTimetendJoinDateTimeR&t    notifyKeyt    paramListtcountrytserverGroupIDListtcrossNotifyListRPtdbStatet dbStateJointdbCfgIDtdbActIDt dbTemplateIDtdbServerIDRangeListt
forceResetR$R%t actIDChanget
changeInfoRýRÿ((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pyRžs4 
 
     $
 
          
 
 
       "    2    ,  !         ++      +  
 
% $       !      icCsQtƒ\}}|rdStƒ}|r1|gng}tjtj||ƒdS(sP Í¬²½¿ç·þÔËÓª»î¶¯ÐÅÏ¢µ½×Ó·þÎñÆ÷
    @param serverGroupID: Îª0ʱͬ²½ËùÓÐ×Ó·þ
    N(RÝR;RùRúRRû(R.Rt_RR((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pytSync_CrossActInfoToClientServer×s    cCsLtjd|ƒtjdks'| r3it_nx¯|jƒD]¡\}}xP|jƒD]B\}}|tjkr„itj|<ntj|}|||<qYW|tjkrÊddl}|j    dƒntj
tj ||ƒq@Wx`tjjƒD]O\}}x@|jƒD]2\}}|j tj dƒstj||=qqWqõWdS(Ns.===== ÊÕµ½¿ç·þ·þÎñÆ÷ͬ²½µÄ¿ç·þÔËÓª»î¶¯×´Ì¬: %siÿÿÿÿi(RR R    R
R@R RRþRÿtSync_LuckyCloudBuyRoundInfoR÷RøRR(RRtsyncActInfoDictR t syncActInfoRRÿR!((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pyRûés$   cCsÚtjdkriStjj|iƒ}|s2iStj|ƒ}x’|jƒD]„}|jtjdƒsoqNntj    |kr„qNn|tj    }|s›|Sx4|D],\}}||koÅ|knr¢|Sq¢WqNWiS(Ni(
R    R
R@RRtGetPlayerServerIDR1RRR(RRRtplayerServerIDR!R&RjRk((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pytGetPlayerCrossActInfos$  cCs]tjdkrdStj}x:tjD]/}|j|iƒ}tjtj||ƒq&WdS(N(    R    R
R@RRŒRRR÷Rø(RRR((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pytSendMapServerCrossActionStates    c    Cs‡d}ttjƒƒ}tj|tjƒ}|}tj|ƒ}|rq|d|krqtjd|ƒ|dSg}tj    ƒ}t
|j ƒdƒ}tj dƒtj d|ƒg}tj ƒ}    xÜt|    jƒƒD]È}
|    j|
ƒ} | jƒ} | jƒ} | s6|j| gƒtj d| ƒqÜnd| krq|| krqtj d    | | jƒfƒqÜnd| kr‡| dn| |}|j|| gƒqÜWtj d
ƒx‘|D]‰\}}|jƒ} |jƒ}g}g}i}i}d}x|D]\}}d |||df}tjj|tjƒ}|j|j|jfƒ|tjd |jƒƒ}|j|j|jfƒ|j|gƒ}|j||fƒ|||<xF|jƒD]8\}}|tjd |ƒ}|||j|jf<qÉWqW|j| ||||gƒtj d | ||||fƒq¼Wtj|||gƒ}tj d|ƒtj dƒ|dS(NtTodayCrossDailyActionInfois/ÒѾ­¼ÓÔØ¹ý±¾ÈÕ¿ç·þÈÕ³£»î¶¯´¦ÀíÐÅÏ¢£¡loadSign=%sis$===== ¼ÓÔØ½ñÌì¿ç·þÈÕ³£»î¶¯ÐÅÏ¢ =====s
µ±Ç°ÐÇÆÚ%ss,    Ôö¼Ó±¾ÈÕ³£¿ª¿ç·þÈÕ³£»î¶¯ÐÅÏ¢: dailyID=%st0s9    ²»ÊÇ¿ç·þÈÕ³£»î¶¯¿ªÆôÐÇÆÚ: dailyID=%s,openWeekLimit=%ss    -----------------------s%s %02d:%02d:%02dRys_    Ôö¼Ó±¾ÈÕ¿ç·þÈÕ³£»î¶¯ÐÅÏ¢: dailyID=%s,openList=%s,overList=%s,goonStateDict=%s,notifyDict=%ss)±¾ÈÕ¿ç·þÈÕ³£»î¶¯ÐÅÏ¢¼ÓÔØÍê±Ï! loadSign=%ss==============================================================( R3R™RtChangeTimeNumToStrR‰tTYPE_Time_YmdFormatR~RR7R€RtweekdayR R‹RBtGetCrossDailyActionCounttGetCrossDailyActionByIndext
GetDailyIDtGetOpenTimeDictRSR”t GetNotifyInfoR‡RˆRŠR„R†R’t GetDurationRR R(R tcurTimeR¢tloadSigntTodayDailyActionInfottodayActionInfotdayTimetweekDaytdailyTimeInfoListRZRft dailyIpyDatatdailyIDt openTimeDictt openTimeListR^tnotifyInfoDicttopenListtoverListt goonStateDictR¾t    OpenStateR„R†t openTimeStrt openDateTimet overDateTimetopenStateTimeListRÉRÊRË((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pyt__GetTodayCrossDailyActionInfo*sp         
     cCsRtƒ}|sdStjƒ}tjƒ}|j|jf}i}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|| krR| |\}}g}tj    |d||ƒnt
j |}|j |ƒ}||kr€qJn|rá|t jkr©tt j|ƒn|t
jkrátjt
j|ttjƒƒƒqán|||<tj||ƒ|j||ƒtjd|||fƒqJW|rNg}tjt
j||ƒndS(Niis;¿ç·þÈÕ³£»î¶¯×´Ì¬±ä¸ü: dailyActionID=%s,state=%s,dictName=%s(RCRt GetGameWorldR€R„R†R6R RåtWorldNotifyCrossRt)Def_Notify_WorldKey_CrossDailyActionStatet GetDictByKeyR‰tDef_CrossDailyMapt__openCrossDailyMaptCrossDailyActionID_YaomoBossR÷t(Def_Notify_WorldKey_ActionBossRebornSignR3R™tSetDictR RùRút$CrossServerMsg_CrossDailyActionState(ttodayDailyActionInfot    gameWorldR3t curHourMinutetsysnCrossDailyActionStateDictt
actionInfot dailyActionIDR"R;R<R=R¾t    goonStateRBt dateTimeInfoR RRtdictNamet beforeState((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pytDispose_CrossDailyActionState~sV       
               $    )
c
Cs|tjkrdStj|}tjƒ}|rt|d|ƒri}x—tt|d|ƒƒƒD]y}t|d|ƒ|ƒ}|jƒ}|jƒ}|j    ƒ}||krÄg||<n||}    |    j
||gƒqhWx-|j ƒD]\}}    t j ||    ƒqòWndS(Ns
Get%sCounts Get%sByIndex(R‰tDef_CrossZoneMapTableNameR~R‹RtrangeRQRátGetMapIDt GetCopyMapIDRSR tPlayerFBtSendMapOpenFBEx(
tmapIDt zoneTypeNameRZt realMapInfoRNR^R<t    realMapIDt    copyMapIDtcopyPropertyList((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pyRIÉs$  #     
cCsstƒ}|sdStjƒ}xM|D]E}|d}tj|}|j|ƒ}|r&tj||ƒq&q&WdS(Ni(RCRRDRRFRGR÷(RNRORRRSRVR"((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pyt"SendMapServerCrossDailyActionStateÝs      
 cCsttjƒ}xa|jƒD]S\}}tj|}tj||ƒ|j||ƒtjd|||fƒqWdS(Ns?ÊÕµ½¿ç·þÈÕ³£»î¶¯×´Ì¬±ä¸ü: dailyActionID=%s,state=%s,dictName=%s(RRDR RRFR÷RLR (tmsgDataRORSR"RV((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pyRMîs  (*RRRåR~RèRëRîRðRòRôRùR    R]R‰R–R‡R™RZR…RÞRßRR(R0R*R@R?R;RlRXRÝRTRžRRûR"R#RCRXRIReRM(((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossActionControl.pyt<module>sH                         #              #    E ÿ Ñ                 T    K