hwj35
4 天以前 af4dc775b476decdc0692c2def06bbceda21c8d0
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
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
)lLjc @s¦ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl mZddlZddlZddlZddlZddlZddlZddlZejdƒdZdad„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd d„Z d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&d„Z'dd„Z(dd„Z)d„Z*d„Z+d„Z,d„Z-d„Z.e/d„Z0e j1d„Z2d„Z3d „Z4d!„Z5d"„Z6d#„Z7d$„Z8d%„Z9d&„Z:d'„Z;ddd(„Z=d)„Z>dd*„Z?d+„Z@d,„ZAd-„ZBd.„ZCd/„ZDd0„ZEd1„ZFd2„ZGd3„ZHd4„ZId5„ZJdd6„ZKd7„ZLeMd8„ZNd9„ZOd:„ZPd;„ZQe    jRd<„ZSd=„ZTd>„ZUd?„ZVd@„ZWdA„ZXdB„ZYdC„ZZdD„Z[dE„Z\dF„Z]dG„Z^dH„Z_dI„Z`dJ„ZaejƒZbejcƒZdejeƒZfdK„ZgdL„ZhdM„ZidN„ZjdO„ZkdP„ZldQ„ZmdR„ZndS„ZodT„ZpdU„ZqdV„ZrdW„ZsdX„ZtdY„ZudZ„Zvd[„Zwd\„Zxd]„Zcd^„Zyddd_„Zzddd`„Z{ddda„Z|db„Z}dc„Z~dd„Zde„Z€df„Zdg„Z‚dh„Zƒdi„Z„dj„Z…dk„Z†dl„Z‡dm„Zˆdn„Z‰do„ZŠdp„Z‹dqZŒdr„Zds„ZŽdt„Zdu„Zdv„Z‘dw„Z’dx„Z“dy„Z”dz„Z•d{„Z–d|Z—d}„Z˜d~„Z™d„Zšddddddddddd€„
Z›d„ZœdeMd‚„Zdƒ„Zžd„„ZŸd…„Z d†„Z¡d‡„Z¢dddˆ„Z£d‰„Z¤dŠ„Z¥dd‹„Z¦ddŒ„Z§dd„Z¨e/dŽ„Z©d„Zªe/d„Z«d‘„Z¬d’„Z­d“„Z®d”„Z¯d•„Z°d–„Z±d—„Z²d˜„Z³d™„Z´dš„Zµe    jRd›„Z¶e    jRdœ„Z·e    jRd„Z¸e    jRdž„Z¹e    jReMdŸ„Zºd „Z»d¡„Z¼d¢„Z½dd£„Z¾d¤„Z¿d¥„ZÀd¦„ZÁd§„ZÂd¨„ZÃd©„ZÄdª„ZÅd«„ZÆd¬„ZÇd­„ZÈd®„ZÉd¯„ZÊd°„ZËdd±„ZÌe/d²„ZÍe/gd³„ZÎe/gd´„ZÏe/gdµ„ZÐe/d¶„ZÑdddd·„ZÒdddd¸„ZÓdddd¹„ZÔe/ddº„ZÕd»„ZÖd¼„Z×d½„ZØdd¾„ZÙddeMd¿„ZÚddÀ„ZÛdS(ÁiÿÿÿÿN(tDecimaliÐticCsftjƒ||}t|ƒ}x?|D]7}t||ƒ}tjj|ƒrTq'nt|ƒq'WdS(N(tChConfigt
GetAppPatht__GetFuncFileNameListt__GetSysModulesScriptPathtsystmodulesthas_keyt
__import__(tpathDirt    importDirt
scriptPatht fileNameListtfileNamet
importPath((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    ImportAllLs  cCsdS(N((R R ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt ReloadScriptbscCsÊtdƒxŒtjjƒD]{\}}yXt|ƒ}d|ksMd|krSwn|d    krstd|ƒwnt|ƒWqtk
r”qqXqWddl}|j    dƒtdƒt
j ƒdS(
NsR=============================== ReloadScript Begin ===============================s\Lib\s\DLLs\t
PyGameDatas%s Ä£¿é²»ÖضÁ!iÿÿÿÿtscriptsP=============================== ReloadScript End ===============================(s
PyGameData( tLogRRtitemststrtDebugLogtreloadt    ExceptiontDataRecordPackt    DR_Reloadt ReadChConfigtOnReloadConfig(tnamet
reloadPathtpathStrR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt__ReloadScript{s"
 
 
cCs¾g}tjj|ƒs*td|ƒ|Stj|ƒ}x~|D]v}|jdƒ}t|ƒdkrmq@n|\}}|jdƒdkr”q@n|tj    kr©q@n|j
|ƒq@W|S(Ns&ReloadScript Err, path = %s is not dirs.it__init__i( tostpathtisdirtErrLogtlistdirtsplittlentfindRtTYPE_Load_Module_Exttappend(R R t    filesListtfilet
fileStructRtfileExt((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR–s   cCs'|}|dkr#|d|}n|S(NRs.((R RtsysModulesPath((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¸s cCsttj|t|ƒƒƒS(N(tinttmathtceiltfloat(txtdiv((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetIntUpperÅscCsttj|ƒƒS(N(R2R3R4(R6((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetFloatUpperÍsicCs;td|ƒ}tj|d||dƒ}|t|ƒS(Ni
i(tpowtrandomtrandintR5(tminXtmaxXtprecistmultipletran((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetFloatRanâscCsh||kr||krdStj||||ƒ}ttj|ƒƒ}|dkrd|d}n|S(Niih(R3tatan2R2tdegrees(tStartXtStartYtEndXtEndYtradtth((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetAngleðs  c CsZtƒ}tjtj||dƒtj||dƒƒ}d}d}|dkrs|||}|||}nx¯tdt|ƒƒD]˜}    t||    d|||    d|ƒ}
t||    d|||    d|ƒ} x?t|
| ƒD].} |j| ƒdkrqïn|j    | ƒqïWq‰Wddg|krVd|krV|j
ddƒn|S(Nigð?gii(ii(ii( tlistR3tsqrtR:trangeR)tFiveInOtherOutt    GetAllPostcountR,tinsert( tmatrixtplayerXtplayerYtdestXtdestYtresulttdisttcostsintitxlisttylisttcurPos((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt MatrixCircle8s"    3 ((c
Csœtjtj||dƒtj||dƒƒ}d}d}|dkrj|||}|||}nt|||ƒ}t|||ƒ}    ||    fS(Nigð?gi(R3RMR:R2(
tposDistRVRWtposXtposYRYRZR[tresultXtresultY((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytPosInLineByDistRs3 c
Csœtjtj||dƒtj||dƒƒ}d}d}|dkrj|||}|||}nt|||ƒ}t|||ƒ}    ||    fS(Nigð?gi(R3RMR:R2(
RaRVRWRbRcRYRZR[RdRe((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytPosInLineByDistExas3 cCs;t|ƒ}tt|ƒƒ}||kr1|gS||gS(N(R2tMyRound(tnumtnum1tnum2((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyROus
  cCs?g}x2|D]*}x!|D]}|j||fƒqWq W|S(N(R,(R]R^tposlistR6ty((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRP€s
  cCs ||dS(Nid((tvaluetpercent((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
GetPercentscCs-yt|ƒ}|SWntk
r(|SXdS(N(R2t
ValueError(tinputtdefValueRX((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytToIntDef˜s
  cCsƒyjt|ƒttgkr|S|jƒsJ|jdƒrY|djƒrYt|ƒ}n t|ƒ}|SWntk
r~|SXdS(Ns-i(ttypeR2R5tisdigitt
startswithRq(tinputStrRsRX((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytToNumDefŸs+  cCsttt||ƒ|ƒƒS(N(R2tmintmax(RrtminNumtmaxNum((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    ToIntArea²scCsb|jdƒ}t|ƒdkr%dSx6|D].}t||ƒtkrKdSt||ƒ}q,W|S(Ns.i(R(R)tNonethasattrtTruetgetattr(t
curCallObjtcallNametcallListt curCallName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytParseNameGetObj»s cCs9t||ƒ}|dkrdSt|ƒtkr5dS|S(N(R‡RtcallableR(RƒR„((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetExecFuncÏs  cCstS(N(R(tcurItem((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckItemIsMaxEndureßscCs!tt||ƒt||ƒƒS(N(R{tabs(RbRcttagXttagY((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDistïscCsAtjt||dƒt||dƒƒ}|s7|St|ƒS(Ni(R3RMR:R9(RbRcRRŽttoIntRY((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    GetDistExús-cCs@|dkrdS||ks8tjd|dƒ|kr<dSdS(Nii(R;R<(tratetmaxRate((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    CanHappens
 (cCsH|jƒtjd|dƒ}x!|D]}||kr?q'n|SWdS(Nii(tsortR;R<R(trateListR“t    ranNumbertnumber((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytWhichCanHappens
  cCsJ| s| rtS|jƒ|jƒkrF|jƒ|jƒkrFtStS(N(tFalsetGetIDtGetGameObjTypeR(tsrcObjtdesObj((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    IsSameObj$s
0cCst|jƒ|jƒƒS(N(tIsSameCountry_Namet
GetCountry(RRž((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsSameCountry4scCs6||krtS|tjks.|tjkr2tStS(N(Rt IPY_GameWorldttcNewRš(tsrcNametdesName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR =s
 cCs>|jƒ}|jƒ}|dks0|dkr4tS||kS(Ni(t GetFamilyIDRš(RRžt    srcFamilyt    desFamily((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsSameFamilyMs
  cCs#|jƒdtjgkrdStS(Ni(t
GetGMLevelRt Def_GM_LV_GodR(t    curPlayer((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsGMZscCs|jƒdkrtStS(Ni(tGetRealPlayerIDRRš(R­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsMirrorPlayerascCs-| s%|jƒdks%|jƒr)tStS(s€ÊÇ·ñÕý³£¿ÉÓõij£¹æÍæ¼Ò£¬Ò»°ãÓÃÓÚÅжÏÊÇ·ñÊÇÒ»¸öÕý³£µÄÍæ¼Ò
    ¿ÉÓÃÓÚ·â°ü֪ͨÅжϡ¢»î¶¯Íæ¼ÒÅжϵÈÒ»Çнö´¦ÀíÕæÊµ³£¹æÍæ¼ÒµÄÑéÖ¤
    i(R›tIsEmptyRšR(R­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsNormalPlayergs%cCs,tƒ}t|ƒ}|jdƒd}|S(Ns.i(tGetCurrentTimeRR((tcurTimet
curTimeStr((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCurrentDataTimeStrxs     c
Csrg}|s|Stjd|ƒ}|sLtd|||||f|ƒ|Sxÿ|D]÷}|jƒ}    |jƒ}
||    ksS||
krqSn|jƒ} | r¿|dkr¿|| kr¿qSn|jƒ} |jƒ} |j    ƒ}|dkr|t
j kr| r|| 7}n8|dkr?|t
j kr?|r?||7}n
|| 7}|SWtd|||||f|ƒ|S(s»ñÈ¡Íæ¼Ò»î¶¯°ñµ¥Áì½±½±Àø
    @param playerID: Áì½±Íæ¼ÒID
    @param billID: ÉϰñID£¬²»Ò»¶¨ÊÇÍæ¼ÒID£¬±ÈÈ繫»áID
    @param billRank: ÉϰñÃû´Î
    @param awardTemplateID: »î¶¯½±ÀøÄ£°æID
    @param billValue: °ñµ¥ÉϰñÖµ£¬Noneʱ²»´¦Àí
    @param fmLV: »î¶¯Ê±µÄ¹«»á³ÉÔ±µÈ¼¶£¬Noneʱ²»´¦Àí
    tActBillboardAwardsY»î¶¯°ñµ¥½±ÀøÄ£°æÕÒ²»µ½Ä£°æ! billID=%s,billRank=%s,awardTemplateID=%s,billValue=%s,fmLV=%ssY»î¶¯°ñµ¥½±ÀøÄ£°æÕÒ²»µ½½±Àø! billID=%s,billRank=%s,awardTemplateID=%s,billValue=%s,fmLV=%sN( t IpyGameDataPYtGetIpyGameDataListR&tGetRankAtGetRankBt GetNeedValueRtGetAwardItemListtGetLeaderAwardItemListtGetEliteAwardItemListtIPY_PlayerDefinet    fmlLeadert    fmlMember(tplayerIDtbillIDtbillRanktawardTemplateIDt    billValuetfmLVtplayerAwardItemListt ipyDataListtipyDatatRankAtRankBt    needValuet awardItemListtleaderAwardItemListteliteAwardItemList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetActBillboardTempAward€s8           ! ! 
cCs^i}tjd|ƒ}|rZx9|D].}|jƒ}|jƒ}||t|ƒ<q%Wn|S(NtActGuess(R¸R¹t
GetAwardIDtGetRightRankListttuple(tguessTemplateIDtrightRankAwardIDDicttguessIpyDataListRËtawardIDt rightRankList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetActGuessRightRankAwardIDDict·s   cCsïg}xbt|ƒD]T\}}|d}    t|ƒ|krE||nd}
|
|kr|j|    ƒqqWt|ƒ} |j| dƒ} | |kr¢g|| <n|| } || krÈ| j|ƒntd||| | t| ƒfƒdS(sgͳ¼Æ»î¶¯¾º²Â½á¹û
    @param playerID: ²ÎÓ뾺²ÂµÄÍæ¼ÒID
    @param playerGuessIDList: Íæ¼Ò¾º²ÂÑ¡ÔñµÄID˳ÐòÁбí
    @param finalRankIDList: »î¶¯×îÖÕÅÅÃû˳ÐòÁбí
    @param rightRankAwardIDDict: GetActGuessRightRankAwardIDDict ·µ»ØÖµ
    @param statGuessRetDict: Í³¼Æ½á¹û {awardID:[²ÂÖеÄÍæ¼ÒID, ...], ...}
    @param actName: »î¶¯Ãû³Æ£¬¿ÉÑ¡²ÎÊý£¬Êä³öÈÕÖ¾ÓÃ
    iisC    %sͳ¼ÆÍæ¼Ò¾º²Â½á¹û: playerID=%s,rightRankTuple=%s,awardID=%s,%sN(t    enumerateR)R,RÖtgetR(RÃtplayerGuessIDListtfinalRankIDListRØtstatGuessRetDicttactNameRÛtindextfinalIDtranktguessIDtrightRankTupleRÚtrightPlayerIDList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytStatActGuessRetÃs     
"    
 cCstjd|ƒS(NtActTime(R¸tGetIpyGameData(tcfgID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetActIpyDataÞscCstt|ƒƒS(N(tGetActTypeIpyDataRí(Rì((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetActTypeIpyDataByCfgIDàscCs)|s
dStjd|jƒ|jƒƒS(NtActType(R¸RëtGetActFuncTypet GetActTempID(t
actIpyData((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRîäscCsZ|s
dStjdt|ƒƒ}|s,dSx'|D]}t||jƒƒr3|Sq3WdS(NtActZone(R¸R¹tGetActZoneSigntCheckServerIDInListtGetServerIDList(Rót actServerIDtzoneIpyDataListt zoneIpyData((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetActZoneIpyDataês cCs£|s
dS|jƒ}|jƒ}| r7|r7|dStƒ}||krPdS|j|ƒ}|dks}|t|ƒkr›td|jƒ|fƒdS||S(NRis)GetActZoneSignError: cfgID=%s,platform=%s(tGetPlatformListtGetZoneSignListtGetAppIDRãR)R&tGetCfgID(Rót platformListt zoneSignListtplatformRã((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRõös        cCs8|tjkriStj|}||kr0iS||S(N(Rt g_actionDict(RâtactNumt
actNumDict((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt __GetActInfos   cCs8|tjkriStj|}||kr0iS||S(N(Rtg_crossActionDict(RâRR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt__GetCrossActInfos   cCsit||ƒ}|s't||ƒ}n|r1|S|tjkrDiStj|}||kraiS||S(N(RRRtg_operationActionDict(RâRtactInfoR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
GetActInfos  cCsc|dks|dks| r#dS|jƒ}|s9dS|t|ƒkrU|dn||}|S(Niiÿÿÿÿ(RtGetTemplateIDListR)(RËRìtdayIndexttemplateIDListt
templateID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetTemplateID%s &cCsD|dkrdS|sdS|t|ƒkr6|dn||}|S(Niiÿÿÿÿ(RR)(RR R((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetTemplateIDByList.s  &cCs|jdƒ}t|ddƒ}|d}t|tjƒ}|jdƒ}t|ƒdkrj|dn|d}t|tjƒ}    ||krÔ||j}
|
|d} |    |j|d} t| | ƒ} nd} |tj    | d|ƒ} | tj    d|dƒ}| || fS(Nt_iitdays(
R(R2tChangeStrToDatetimeRtTYPE_Time_Format_DayR)RRztdatetimet    timedelta(t startDateStrt
endDateStrt curDateTimetstartSplitListtloopDayststartLoopDateStrtstartLoopDateTimet endSplitListtendLoopDateStrtendLoopDateTimetpassDayst    loopTimest loopTimeMaxt startDateTimet endDateTime((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetOperationActionLoopDate6s 
&  cCsì|stjjƒ}n|jƒ}|jƒ}|sUd|j|j|jf}n|szd|j|j|jf}n|jdƒdkrµd|krµ|jdƒ rµ||fSddl    }|j
ƒr,|j ƒj t jƒd}|tjdt|ƒ|ƒ}|tjdt|ƒ|ƒ}n~|jd    ƒr¢|j ƒj t jƒd}|tjdt|dƒ|ƒ}|tjdt|dƒ|ƒ}n|jd
ƒr|j ƒj t jƒd}|tjdt|d ƒ|ƒ}|tjdt|d ƒ|ƒ}n’|jdƒrq|jƒd}|jd ƒ}    |    d }
t|
dƒ} |tjd| |ƒ}t|    ƒdkrÀ|    d} t| tjƒ} | |krÀ| }qÀn|jƒd}|jd ƒ}|d }t|dƒ}|tjd||ƒ}t|ƒdkrª|d}t|tjƒ}||krV|}n||krn|}qnqªn9|jdƒržt|||ƒ\}}}n |}|}d|j|j|jf}d|j|j|jf}||fS(Ns%d-%d-%ds-itWtLiÿÿÿÿiRtKtMixis|i(Rttodayt GetStartDatet
GetEndDatetyeartmonthtdayRQRwt    DBDataMgrRvtGetEventTrigMgrtGetValuet ShareDefinet Def_ServerDayRR2RttDef_MixServerDaytweekdayR(R)RRRR'(RËRRRR2tdiffDayR%R&t
curWeekdaytstartWeekDateInfot startWeekInfot startWeekdayRRt startWeekDaytendWeekDateInfot endWeekInfot
endWeekdayR R!R((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetOperationActionDateStrNsj  1
   #$'$'
 
 
 
      c
Cs_|jtjƒ}|sdStj||ƒ}|s8dSt|dƒsKdS|jƒ}|sadS|jƒ}|jƒ}|j    ƒ}    t
}
|} |jtj dƒs°|
| fSt |t j|tƒ} | sòtd|||f|    ƒ|
| fSt|dƒsdn    |jƒ} |jtjƒ}tƒ}t
}| r]t}td|||f|    ƒn$|s†t}td|||f|    ƒnû|rat||ƒ\}}||ko¸|knrãt}
td||||f|    ƒq||kr;|rt}td||||f|    ƒq^td    ||||f|    ƒqtd
||||f|    ƒt}n t}
td |||f|    ƒ|r/t}
t|d ƒs¢dn    |jƒ}d |j|j|jf}|dkrõtjjd|t jƒ}ntjjd|t jƒ}ttj|jƒƒƒ} ntd|||||| |
f|    ƒ|
| fS(NtGetRelateFuncIDis?¹ØÁª¹¦ÄÜ먦ÆôĬÈϲ»¿ª»î¶¯! actName=%s,cfgID=%s,relateFuncID=%st GetIsDayResetsA¹ØÁª¹¦Äܻ£¬Ã¿ÈÕÖØÖõĻ! actName=%s,cfgID=%s,relateFuncID=%ssC¹ØÁª¹¦Äܻ£¬Íæ¼ÒÊ״οªÆô»î¶¯! actName=%s,cfgID=%s,relateFuncID=%ss3¹ØÁª¹¦Äܻ£¬Õý³£»î¶¯ÖÐ! actName=%s,cfgID=%s,%s~%ssE¹ØÁª¹¦Äܻ£¬»î¶¯½áÊø£¬ÖØÐ¿ªÊ¼Ñ­»·Ð»! actName=%s,cfgID=%s,%s~%ss9¹ØÁª¹¦Äܻ£¬»î¶¯½áÊø£¬²»Ñ­»·! actName=%s,cfgID=%s,%s~%sse¹ØÁª¹¦Äܻ£¬Íæ¼Ò»î¶¯ID³¬¹ýµ±Ç°Ê±¼ä£¬¿ÉÄÜÊǵ÷ʱ¼äÒýÆð£¬ÖØÐ¿ªÊ¼Ñ­»·Ð»! actName=%s,cfgID=%s,%s~%ssA¹ØÁª¹¦Äܻ£¬ÓÀ¾Ã¿ª·ÅµÄ»î¶¯! actName=%s,cfgID=%s,relateFuncID=%st GetResetTypes%d-%d-%dis %s 05:00:00s %s 00:00:00s^¹ØÁª¹¦Äܻ! actName=%s,cfgID=%s,actNum=%s,relateFuncID=%s,playerActID=%s,actID=%s,isInAct=%s( RÞR5t ActKey_CfgIDR¸tGetIpyGameDataNotLogR€RCtGetFuncActDayst GetFuncLoopt GetPlayerIDRšt ActKey_StatetGetDictValueByBitRt"Def_Player_Dict_GameFuncFirstTouchRRRDt ActKey_ActNumR³tGetActRelateFuncDateRER/R0R1RtstrptimetTYPE_Time_FormatR2ttimetmktimet    timetuple(R­RâR
t playerActIDRìRËt relateFuncIDt funcActDaystfuncLoopRÃtisInActtactIDtisOpent    isDayRestRt
serverTimetnewActt startDayDatet
endDayDatet    resetTypeR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetActRelateFuncInfosr    
 
!            !  c Cs|jƒ}t|dƒs!dn    |jƒ}t|dƒsBdn    |jƒ}|r]d}nt|tjƒ}|r2t|ƒd }|dkrÀtjj    d|tjƒtj
d|ƒ}q°|dkrÿtjj    d    |tjƒtj
d|dƒ}q°tjj    d    |tjƒtj
d|dƒ}n~|j ƒ}    |dkritjj    d|    tjƒ}nG|dkr”tjj    d    |    tjƒ}ntjj    d    |    tjƒ}|rød
|j |j |jf}
d
|j |j |jf}    |
|    fS||fS( NRDiREii
s %s 04:59:59Ris %s 23:59:59s%d-%d-%d(RHR€RDREtChangeTimeNumToDatetimeRRQRRRPRR.R/R0R1( RËt    startTimet returnYmdStrRWR\RaR_t startDayStrR`RR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyROès0 !!     / 33   
cCs tjjƒS(N(RR,(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR³ scCs tjjƒS(N(RR,(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetServerTime scCstjjtjjƒƒdS(Ni(Rt isocalendarR,(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetWeekOfYearscCs_|jƒjdƒd}ytjj||ƒSWn(tk
rZ}td||fƒdSXdS(Ns.is%s : %s(tstripR(RRPt BaseExceptionR&(ttimeStrt    timeFomatte((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDateTimeByStr$scCs_|jƒjdƒd}ytjj||ƒSWn(tk
rZ}td||fƒdSXdS(Ns.is%s : %s(RjR(RRPRkR(Rlt
timeFormatRn((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDateTimeByFormatStr4scCs@t|ƒ}|dkr*td|ƒdS|jd|jdS(Ns GetPastHour Err dateTimeStr = %siii(t__GetPastTimeDeltaRR&Rtseconds(t dateTimeStrt pastTimeDelta((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetPastHourCs
  cCsDt|ƒ}|dkr*td|ƒdS|jdd|jdS(Ns"GetPastMinute Err dateTimeStr = %siii<(RrRR&RRs(RtRu((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetPastMinutePs
  cCsDt|ƒ}|dkr*td|ƒdS|jddd|jS(Ns"GetPastMinute Err dateTimeStr = %siii<(RrRR&RRs(RtRu((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPastSeconds^s
  cCs9tƒ}t|ƒ}|dks-|dkr1dS||S(N(R³RoR(tcompareTimeStrt curDataTimetcompareDataTime((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRrls
     cCs$||}|jdd|jdS(Nii<(RRs(R´ttagTimet    diff_Time((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDiff_Minute|s
cCsqt|ƒ}tj|j|j|jdddƒ}t|ƒ}tj|j|j|jdddƒ}||jS(Ni(RcRR/R0R1R(ttimeAttimeBt    dateTimeAt    dateTimeB((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetDiff_Days
 ' 'cCsyt|ƒ}tj|j|j|jdddƒ}ttj|jƒƒƒ}|||t    |ddƒdd}|S(Nii;iiii(
RcRR/R0R1R2RRRSRTR{(RdtaddDayst    startDatet startZeroDatet startZeroTimetendTime((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetEndTimeByZeroTime‰s
 ''cCstƒtjd|ƒS(NR(R³RR(tdiffDays((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDatetimeByDiffDays˜scCstƒj|ƒ}t|ƒS(N(t GetNPCManagert FindNPCByIDt__GetSummonTagNPC(tnpcIDtcurTag((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRŸscCs;tƒ}|j|ƒ}|s-t|ƒ}n|r7|SdS(N(RŒtFindGameNPCByNPCIDtFindSummerNPCByNPCID(RtnpcMgrtfindNPC((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytFindNPCByNPCID£s    cCsgtƒ}xWt|jƒƒD]C}|j|ƒ}|jƒdkrIqn|jƒ|kr|SqWdS(Ni(RŒtxrangetGetSummonNPCCounttGetSummonNPCAtR›tGetNPCID(RR“RãtcurNPC((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR’¬s    cCsstƒ}xct|j|ƒƒD]L}|j||ƒ}|jƒ}|dkrUqn||jƒkr|SqWdS(Ni(RŒR–tGetNPCCountByGWIndextGetNPCByIndexByGWIndexR›R™(t    copyMapIDRtgameNPCManagerRãRštcurID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytFindNPCByNPCIDEx¶s      cCstƒj|ƒ}t|ƒS(N(RŒt GetNPCByIndexRŽ(tnpcIndexR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¡ÆscCstS(N(t __GameWorld(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetGameWorldÕscCs
tjƒS(N(R£RŒ(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRŒÝscCs
tjƒS(N(R£tGetTeamManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¥åscCs
tjƒS(N(R£tGetPlayerManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¦íscCs
tjƒS(N(R£tGetMapItemManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR§õscCs
tjƒS(N(R£tGetMapCopyPlayerManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¨ýscCs
tjƒS(N(R£tGetMap(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR©scCs9tƒ}||kr|S||}|jd|ƒ}|S(Nt    DataMapID(tGetMapIDTxtInfoRÞ(tmapIDt mapIDTxtInfotmapInfot    dataMapID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMapDataMapIDs      
cCsÚtjrtjSit_tjƒ}|d}t|ƒ}xv|jƒD]h}|jdƒ}| sHt|ƒdkr|qHnt|dƒ}t|dƒ}i|d6tj|<qHWt    d|ƒt    dtjƒtjS(    Ns>\ZoneServerGroup\map1_8G\MapServer\MapServerData\Map\MapID.txts    i    iiRªsLoad %ssg_mapIDTxtInfo=%s(
Rtg_mapIDTxtInfoRtGetServerRootPathtopent    readlinesR(R)R2R(trootPathtmapIDTxttftlinetlineListttMapIDt
dDataMapID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR«s          
 cCs
tjƒS(N(R£tGetMail(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¼(scCs
tjƒS(N(R£t    GetScript(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR½0scCs
tjƒS(N(R£t    GetGameFB(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¾8scCs
tjƒS(N(R£tGetAllFbNPCManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¿@scCsj|dkrdS|jƒ}|tjkrAtƒj|jƒƒS|tjkrftƒj|jƒƒS|S(N(    RtGetGameNPCObjTypeR£t
gnotSummonRŒtFindSummonNPCByIDR›tgnotPett FindPetByID(t    curTagNPCtnpcObj((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRŽHs  cCsA|jƒtjkr=|jƒtjtjtjgkr=tSdS(N(RœR£tgotNPCtGetTypetntWalltntDeert ntDefenceMaxR(tcurObj((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetNPC_Is_GateYs9cCs‡|jƒ}|jƒ}|tjkr7tƒj|ƒS|tjkrPt|ƒS|tjkrot    ƒj
|ƒSt d||fƒdS(Ns*»ñµÃobjÀàʧ°Ü objType = %s , objIndex = %s( RœtGetIndexR£t    gotPlayerR¦tGetPlayerByIndexRÇR¡tgotItemR§tGetPoolItemByIndexR&R(tobjtobjTypetobjIndex((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetObjDetailds  
cCs[|tjkrtƒj|ƒS|tjkr8t|ƒS|tjkrWtƒj|ƒSdS(N(
R£RÏR¨tFindPlayerByIDRÇRRÑR§t GetItemByIDR(tobjIDRÔ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetObjys
cCstS(N(t ItemFactory(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetItemFactoryŠscCstS(N(tGameData(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetGameData’scCs*|jƒtjkrdSt||ƒdS(N(R«RR¬t DebugAnswer(R­tmsg((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGodLog›s cCstjd|||fƒdS(Ns%s    %s    %s(tLogUItMsg(RàRÃtpar((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR©scCstjd|||fƒdS(Ns%s    %s    ###Error:%s(RâRã(RàRÃRä((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR&´scCs1tƒjƒsdStjd|||fƒdS(Ns%s    %s    PyDebug:%s(R¤t GetDebugLevelRâRã(RàRÃRä((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR½scGsjtjƒsdSd}d}y||}Wn||d }|d}nXtjd|||fƒtS(Niiÿÿÿÿs%s    %s    PyDebug:%s(R£RåRâRãR(t    logFormattargsRäRÃRà((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
DebugLogExÄs cCsÎtsÊtjƒ}|d}tjj|ƒsOtd|ƒtd|ƒ‚ntjƒ}|j    |ƒd\}}|j
||ƒs¡td|||fƒdSt |j ||ƒƒat dtƒntS(    NsT\ZoneServerGroup\rungate\InterfaceServer\MultiServerWarProxyServer\Config\config.inisÎÞ·¨ÕÒµ½Îļþ = %stConfigtServerIDs#%s ÕÒ²»µ½ÅäÖÃ: section=%s,option=%sis¶ÁÈ¡ MergeServerID=%s(RéRê(t MergeServerIDRR²R#R$tisfileR&Rt ConfigParsertreadt
has_optionRtRÞR(RµtmergeServerIniFiletmergeServerInitsectiontoption((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMergeServerIDØs 
   cCs tƒjƒS(N(R¤tGetServerVersion(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRõóscCstƒtjkS(N(t GetServerTypeR5tserverType_Cross(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsCrossServeröscCstƒtjkS(N(RöR5tserverType_CrossCenter(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsCrossCenterúscCs™tƒs dStƒdkr dSd}tjƒ}x`|jƒD]R}|tj}|tjkr?|d7}|dkr‘tdddt    ƒdSq?q?WdS(NttestiitCrossCenterUniquenessErrs¿ç·þÖÐÐÄÖ»ÔÊÐíÅäÖÃһ̨t
isRaiseErr(
RúRþRtGetServerConfigDicttvaluesR5tserverCfgIndex_ServerTypeRùtSendGameErrorExR(t    serverCntt
serverDictt
serverInfot
serverType((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckCrossCenterUniquenessErrþs      
  cCstƒtjkS(N(RöR5tserverType_Main(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsMainServerscCstƒtjkS(N(RöR5tserverType_Battle(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsBattleServerscCstjdƒ}|dkrŒd}tjƒ}tƒjƒ}||kry||}|tj}t    d|||fƒntj
d|ƒn|S(Nt
ServerTypeis;¼ÓÔØ±¾·þ·þÎñÆ÷ÀàÐÍ: serverID=%s,ServerType=%s,serverInfo=%s( R¸t GetConfigExRRRþR¤t GetServerIDR5RRt SetConfigEx(R RtserverIDR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRös   
 cCstjddƒS(NRt    GroupName(RtGetServersRouteConfig(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetServerGroupName'scCsdS(N((((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMixServerDict+scCs|S(N((R((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMainServerID=scCstjddƒS(NRtAppID(RtGetPyMongoConfig(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRþFscCs
|dkS(NRûtyun(stestR((R((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsTestPlatformJscCs=|jƒ}tƒt|jdƒdtjƒ}|jdS(Ns ii(tGetCreateRoleTimeR³RoR(RRR(R­tcreateRoleTimetdiffTime((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCreateRoleDaysLs &s@cCst|jƒƒS(N(tGetAccIDServerIDtGetAccID(R­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerServerIDXscCs7|jtƒ}t|ƒdkr%dSt|ddƒS(Niiiÿÿÿÿi(R(tDef_AccID_Split_SignR)Rt(taccIDtinfoList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRYscCs9|jƒ}|jtƒ}t|ƒdkr1dS|dS(NiRiÿÿÿÿ(RR(R R)(R­R!R"((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerServerSID]s cCstjj|dƒS(NR(Rtg_dbPlayerIDMapRÞ(RÃ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDBPlayerAccIDByIDcscCs™|dkrtS|stSxx|D]p}t|ttfƒrrt|ƒdkrr|d|kom|dknst|tƒr!||kr!tSq!WtS(Niii(RRšRt
isinstanceRLRÖR)R2(Rt serverIDListt serverIDInfo((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRögs  KcCs1|jƒjƒ}|s-t|jƒƒ}n|S(N(tGetAccountDatat GetOperatortGetAppIDByAccIDR(R­tappID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerPlatformƒscCs,|jtƒ}|d }tj|ƒ}|S(Niþÿÿÿ(R(R tjoin(t    gameAccIDR"t
paInfoListt platformAccID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlatformAccIDŠs
cCs|jtƒ}|dS(Niþÿÿÿ(R(R (R/R"((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR+scCs-tj|jƒ|jƒjƒdƒjƒS(Ntmobile(tmd5RR)tGetLastLoginTimet    hexdigest(R­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetSessionID”scCs|jtjƒS(N(tNomalDictGetPropertyRtDef_Player_Dict_Account_Type(R­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetAccountType—stPDict_ChannelCodeNumcCs·tjdƒ}|s&|jtƒdS|jƒ}||krYtd||jƒƒdSxW|jƒD]I\}}||krf|jt|ƒt    d||f|jƒƒPqfqfWdS(Nt ChannelCodes?Can not find channel code(%s) in ChannelCode.txt, please check!s#SetPlayerChannelCode code=%s,num=%s(
RtGetEvalChConfigtNomalDictDelPropertyR;RÿR&RJRtNomalDictAddPropertyR(R­t channelCodetChannelCodeDicttcodeListtcodeNumtcode((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSetPlayerChannelCodeŸs    cCs>|jtƒ}|dkrdStjdƒ}|j|dƒS(NiRR<(R8R;RR=RÞ(R­RCRA((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerChannelCode¸s
 cCsttjƒƒS(N(Rtuuidtuuid1(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetGUIDÀsc
 
Cs/tƒj||||||||||    ƒ
dS(N(R¤tDataServer_HugeTradeRec(
t    tradeGoldt tradeSilvert tradeItemIDttradeItemCounttsenderIDt
senderGoldt senderSilvert
receiverIDt receiverGoldtreceiverSilver((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytNoteDownLargeTradeÐs    cCsZ|tjkr+|j||||dƒn+|tjkrV|j|||d|ƒndS(Ni(R£tTYPE_Price_Gold_MoneytInterface_GoldRectTYPE_Price_Gold_Paper(R­ttypeIDt    typeCountttypeNamet    moneyTypet
moneyCount((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytLogin_Interface_GoldRecês
cCsÇtƒj||ƒs6td||f|jƒƒdS|j|||ƒt|ƒ|rÃ|jƒjƒ}|rÃddl}|j    |ƒj
|j ƒ|j ƒdƒ\}}|j||ƒqÃndS(Ns5ResetPlayerPos ³¢ÊÔÒÆ¶¯µ½Õϰ­µã, posX = %s, posY = %siÿÿÿÿi( R©tCanMoveR&R›tResetPostClearPlayerPosCountt    GetPetMgrt GetFightPett    NPCCommont
NPCControltGetMoveNearPostGetPosXtGetPosY(R­RbRctreasont
isResetPettrolePetRd((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytResetPlayerPosûs
 0cCs|jdƒ|jdƒdS(Ni(t SetMoveCounttSetMoveDistDiff(R­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRas  cCsB|s
tSt|dƒ|ko5t|dƒknr>tSdS(Nii(RRo(R´tactSect((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsAtActTimes
0cCsdS(Ni((tcurLV((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
GetReMoney+scCs8||j|ƒtj|kr$tS|j||ƒtS(N(t GetTickByTypeRtTYPE_Player_Tick_TimeRšt SetTickByTypeR(R­tfuncKeyttick((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSetPlayerTickTime5s cCsöi}x‚|D]z}t|ƒdkr7|\}}}n*t|ƒdkr |\}}d}nq ||f}|j|dƒ|||<q Wg}x^|jƒD]P\}}|\}}|dkrØ|j||gƒqž|j|||gƒqžW|S(Niii(R)RRÞRR,(titemListtitemDicttitemInfotitemIDt    itemCountt isAuctionItemtkeyt    mItemList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt MergeItemList=s"         c Cs2|dkr|Sg}t|ƒ}||kr2|S||krox|D]}|j|dƒqEW|rk|SgStj|ƒ}|rŠ|n |dd}xˆt|ƒD]z}tjd|ƒ}    x_t|ƒD]Q\}
}|    |dkrìqÊn|j|dƒt||
ƒ}|dd}PqÊWq¥W|r.|SgS(Niiiÿÿÿÿ(    R)R,tcopytdeepcopyRNR;R<RÝt ResetRiseList( triseListt    randomNumRsR“tdataInfotlistLentdatat tempRiseListR\R’tj((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByRandomListExZs,         cCs½t|ƒ}|dkrgS||kr-|Stj|ƒ}|dkrZ||ddnd}||d}||d|!}x"|D]}|dc||8<q†Wtj|d|!|ƒS(Nii(R)R‚Rƒ(R…tdelIndext riseListLenRŠt lastBaseRetetbaseRatettempListtriseInfo((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR„s   $ c
Cs°g}x£t|ƒD]•\}}|\}}|dkr=|n|||dd}|s_|n|t||dƒ}|sƒ|n|dd|}    |j|    |fƒqW|S(NiigˆÃ@iÿÿÿÿ(RÝR2R,(
t
srcPieListtplusRatet plusPieListR\trateInfoR’tinfotsrcRatetnewRatetspecRate((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlusPieList“s ($cCs4|s
|Stjd|ddƒ}t|||ƒS(Niiÿÿÿÿ(R;R<tGetResultByRiseList(trandListRsR’((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByRandomList¡scCs0x)|D]!}||dkr#qn|dSW|S(Nii((R…tpointRst    smallList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRœ¬s
     cCs¢g}d}x_|D]W}|ds)qn||d7}|j|t|ƒdkr\|dn|dgƒqW|sx|Stjd|ddƒ}t|||ƒS(Niiiiÿÿÿÿ(R,R)R;R<Rœ(t
weightListRsRtweightR—R’((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByWeightList·s 
7cCsmxDtt|ƒƒD]0}|dkr+qn||c||d7<qWtjd|dƒ}t|||ƒS(Niiiÿÿÿÿ(RNR)R;R<tGetResultByRiseIndex(RtisCriticalDownwardR\RŸ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetIndexByIndependRateÊs  cCs"tjdtjƒ}t||ƒS(Ni(R;R<RtDef_NPCMapDropRateR¤(RR’((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByRandomIndexÚscCs~xwtdt|ƒƒD]`}||}t|tƒr>|}n
|d}|rc||kruqqun||kruqn|SWdS(Niiÿÿÿÿ(RNR)R&R2(R…RŸR¥RãtelementtcmpPoint((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¤äs
    
      cCs|S(N((tfunc((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetPsycoFuncýscCs tjdƒS(Nt PsycoSwitch(RR=(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt__GetPsycoIsOpen
scCshtdtƒƒg}x7tjjƒD]&}|j||jdƒdgƒq'Wttj    d|ƒdS(NsPsycoReload Begin : time = %ss.iÿÿÿÿR(
RR¶RRtkeysR,R(t
TravelFileRt
ScriptPath(RwtmoduleNameListt
moduleName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt PsycoReloads $cCsØxÑtj||ƒD]¼}|jdƒr/qn|jdƒd}xN|D]F\}}||krgqIntjj|ƒ}|s…qInt|ƒqIWtjj    ||d|ƒrt
||d|d|ƒqqWdS(Ns.is\( R#R'RwR(RRRÞRR$R%R°(R tfilePathR²Rt curModuleNamet
reloadNameR³tmodule((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR° s #cCsMt|dƒd}t|dƒdd}t|dƒd}|||fS(Nièii<(R2(t    inputTimet curTimeHourt curTimeMinutet curTimeSecond((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeInputTime>scCs/|jƒ}tjdƒ}||kr+tStS(NtDef_Mission_DR_MinLV(tGetLVRR=RšR(R­tplayerLVtminDRLV((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
IsMissonDRHs
  cCsBtjddƒrtSyt|tjddƒƒWntSXtS(Nt EncodingTexii(R¸t
GetFuncCfgRtunicodeRš(t    inputText((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytEncodingToUnicodeWscCstjddƒS(NRÃi(R¸RÄ(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCharacterEncodingescCs/y |jtjƒjtƒƒSWn|SX|S(N(tdecodeR5tDef_Game_Character_EncodingtencodeRÈ(RÆ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    GbkToCodehs
 cCs/y |jtƒƒjtjƒSWn|SX|S(N(RÉRÈRËR5RÊ(RÆ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    CodeToGbkps
 cCs.tjj||ƒjƒ}ttj|ƒƒS(N(RRPRTR2RRRS(RlRp((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeTimeStrToNum{scCstj|tj|ƒƒS(N(RRtstrftimet    localtime(ttimeNumRp((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeTimeNumToStr‚scCs.tj|tj|ƒƒ}tjj||ƒS(N(RRRÏRÐRRP(RÑRpRl((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRcˆscCs>ytjj||ƒSWn tjddddddƒSXdS(Ni²iii(RRP(RlRp((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRŒscCs/|j|ƒ}|r+d||jf}n|S(Ns%s.%s(RÏt microsecond(tdateTRptisMstdate_str((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeDatetimeToStr“scCsttj|jƒƒƒS(N(R2RRRSRT(RÔ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeDatetimeToNumœscCstttƒƒd tjƒS(Ni
(RÎRR³RR(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetTodayTimežsc
Csgt|ƒ}tƒ}tj}|j|j|j|jf\}}}}|j|j|j|jf\}}    }
} ||krº||    krº||
krº||ko­| knr¶tSt    St
j
|||dddƒ} t
j
||    |
dddƒ} | | j }|dkr3||krtS| |kr/tSt    S|dkrc| |krOtS||kr_tSt    StS(s°ÅжÏÖ¸¶¨timeÖµÓëµ±Ììʱ¼ä¶Ô±ÈÊÇ·ñΪÓÎÏ·ÄÚµÄͬһÌì£»ÌØÊâʱ¼äµã¹ýÌìºó²ÅË㲻ͬÌì
    ¸Ãº¯ÊýÒ»°ãÓÃÓÚÅжÏij¸ö¹¦ÄܼǼµÄ°æ±¾ÌìÊÇ·ñÓëµ±Ììʱ¼äÊÇͬһÌìµÄÂß¼­
    @return: ÊÇ·ñͬһÌì
    iiiÿÿÿÿ( RcR³R5tDef_OnEventHourR/R0R1thourRšRRR(t    checkTimet    checkDatetcurDateRÚtchkYeartchkMonthtchkDaytchkHourtcurYeartcurMonthtcurDaytcurHourt checkDateExt    curDateExRŠ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckTimeIsSameServerDayEx¢s2         **$       cCs`t|ƒ}tjj|ƒd}|rMt|ƒ}tjj|ƒd}n    tƒ}||kS(siÅжÏÖ¸¶¨timeÖµÓëµ±Ììʱ¼ä¶Ô±ÈÊÇ·ñΪÓÎÏ·ÄÚµÄͬһÖÜ£»ÌØÊâʱ¼äµã¹ýÌìºó²ÅË㲻ͬÌì
    @return: ÊÇ·ñͬһÖÜ
    i(RcRRhRi(RÜR´RÝt    checkWeekRÞtcurWeek((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckTimeIsSameWeekÙs      cCs^| s| rtSt|ƒ}t|ƒ}|j|jko]|j|jko]|j|jkS(N(RšRcR/R0R1(RÜR´RÝRÞ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckTimeIsSameDateæs
  cCsO|jƒjƒ}|jƒjƒ}tjdƒ}t|jddƒƒ}|S(Nt AreaNameInfotNameExprR(R)R*t    GetAreaIDRR=tevalRÞ(R­toperatortareaIDt areaNameInfotareaName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetAreaNameñs
cCst|ƒ}tj|ƒS(N(RötCommFunct    GetStrCrc(R­Rõ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
GetAreaCrcÿs cCs;x4|jƒD]&\}}|j|dƒ|||<q WdS(Ni(RRÞ(tdict1tdict2RRn((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt AddDictValue    scCsPxI|jƒD];\}}|j|dƒ}||||tj||<q WdS(Ni(RRÞR5tDef_MaxRateValue(RúRûRRntvalue1((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCalcAttrDictPer    s!cCs|td|ƒdS(Ni
(R:(tnumValuet    dataIndex((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDataByDigitPlace     scCsY|dks'|dks'|tjkr+|St||ƒ}|td|ƒ||7}|S(Nii    i
(R5tDef_PDictDigitCntRR:(RRt    dataValuet    lastTagLV((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeDataByDigitPlace)    s
'cCs4td|ƒ}td||ƒ}|||}|S(s½»ñȡij¸öÊýÖµÖУ¬´ÓÓÒÍù×óÊýµÚxλ¿ªÊ¼£¬½ØÍ¼nλµÃµ½µÄÊý¾Ý
    @param dataValue: Ô­Ê¼ÊýÖµ
    @param fromRight: ´ÓÓÒÍù×óÊýµÚxλ¿ªÊ¼£¬´Ó1¿ªÊ¼
    @param bits: ½ØÈ¡nλ
    @return: ÊýÖµvalue
    i
(R:(Rt    fromRighttbitstlPowtrPowtcurValue((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR44    scCsJtd|ƒ}td||ƒ}|||}||}||||S(síÐÞ¸Äij¸öÊýÖµ£¬´ÓÓÒÍù×óÊýµÚxλ¿ªÊ¼£¬½ØÍ¼nλµÃµ½µÄÊý¾Ý£¬Ì滻Ϊ¾ßÌåÊýÖµ
    @param dataValue: Ô­Ê¼ÊýÖµ
    @param fromRight: ´ÓÓÒÍù×óÊýµÚxλ¿ªÊ¼£¬´Ó1¿ªÊ¼
    @param bits: ½ØÈ¡nλ
    @param updValue: Ìæ»»Öµ
    @return: Ð޸ĺóµÄvalueÖµ
    i
(R:(RRRtupdValueR    R
t    leftValuet
rightValue((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSetValue@    s
 
cCs|d|>@rdSdS(s¸ µÃµ½Ä³¸ö×Ö½ÚÖµÖÐijһλ(Bit)µÄÖµ
    @param dataValue: ´ýȡֵµÄ×Ö½ÚÖµ
    @param index: ´ý¶ÁȡλµÄÐòºÅ£¬´ÓÓÒÏò×ó0¿ªÊ¼£¬0-7Ϊһ¸öÍêÕû×Ö½ÚµÄ8¸öλ
    @return: ·µ»Ø¶ÁÈ¡¸ÃλµÄÖµ£¬0»ò1
    ii((RRã((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetBitValueN    scCs|r|d|>BS|d|>@S(sß ¸ü¸Äij¸ö×Ö½ÚÖµÖÐijһλ(Bit)µÄÖµ
    @param dataValue: ×¼±¸¸ü¸ÄµÄ×Ö½ÚÔ­Öµ
    @param index: ´ý¸ü¸ÄλµÄÐòºÅ£¬´ÓÓÒÏò×ó0¿ªÊ¼£¬0-7Ϊһ¸öÍêÕû×Ö½ÚµÄ8¸öλ
    @param val: Ä¿±êλԤ¸ü¸ÄµÄÖµ£¬0»ò1
    @return: ·µ»Ø¸ü¸Äºó×Ö½ÚµÄÖµ
    i((RRãtval((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt SetBitValueV    s cCsJt|ƒtt|ƒƒdkr,t|ƒSt|ƒt|t|ƒƒS(Ngà?(RŒR2(Ri((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRhd    scCsT||kr||Sx9|jƒD]+\}}t|tƒr!||kr!|Sq!WdS(N(RR&RÖ(tattrDicttfindKeyRRn((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDictValueByKeyl    s  cCs~||kr||Sxc|jƒD]U\}}t|tƒr!t|ƒdkr!|d|kom|dknr!|Sq!W|S(Niii(RR&RÖR)(tsrcDictRRstrangeKeyRn((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDictValueByRangeKeyy    s  EcCs |r dnd}||}|S(Nii    ((tbittisBint perKeyMaxBittkeyNum((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDictKeyNumByBitƒ    s
c Cs|r dnd}||}|s,||n|t||gƒ}|j|ƒ}||}    |rŠ|td|    ƒ@}
|
rdnd}
nt||    ƒ}
|
S(Nii    iii(RÖR8R:R( R­t    keyFormatRRtkeyParamRRtkeyNamet    dictValuetbitIndextbitValue((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRL    s
'
c Cs|r dnd}||}|s,||n|t||gƒ}|j|ƒ}    ||}
|r©|r~|    td|
ƒB} q»|    td|dƒdtd|
ƒ@} nt|    |
|ƒ} | dkrÚ|j|dƒnddl} | j||| ƒ|    | fS(Nii    iiiiÿÿÿÿ(RÖR8R:RR>t PlayerControltNomalDictSetProperty( R­RRRnRRRRR R!R"t updDictValueR$((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSetDictValueByBit§    s
'
+  c    Cs€|r dnd}ttj|t|ƒƒƒ}xHt|ƒD]:}|sT||n|t||gƒ}|j|ƒq>WdS(Nii    (R2R3R4R5RNRÖR>(    R­RtmaxLenRRRtkeyCntR\R ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytResetDictAllBitValue¿    s 'cCsG||||g}t|ƒ}tƒjdddd|t|ƒƒdS(NitSendBroadcastMergeClient(RR¦tGameServer_QueryPlayerResultR)(toperTypeR¬R‡tisRepeattmsgList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSendBroadcastMergeÍ    s %cCsA||g}t|ƒ}tƒj|||d|t|ƒƒdS(NtSendMergerChildMsg(RR¦R,R)(R-tdataMsgt srcPlayerIDt    queryTypetqueryIDR/((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt!SendMergerChildToCenterStringData×    s
  cCsOt||gƒ}tƒj|||d|t|ƒƒtd||fƒdS(NtSendMsgToCrossServers·¢ËÍ¿ç·þÐÅÏ¢: %s, %s(RR¦R,R)R(tmsgTypeR2R3R4R5R/((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR7Þ    s%cCsUt|||gƒ}tƒj|||d|t|ƒƒtd|||fƒdS(NtSendMsgToClientServers*·¢ËÍ×Ó·þÐÅÏ¢: %s, %s, serverGroupIDList=%s(RR¦R,R)R(R8R2tserverGroupIDListR3R4R5R/((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR9å    s%cCsp||kr||St|jƒƒ}|dkrZx%|D]}||kr9||Sq9Wn|rl||dS|S(Niiÿÿÿÿ(tsortedR¯(t    orderDicttordert isDefaultLastt defaultValuet    orderListtdOrder((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetOrderValueByDictñ    s    cCs8||j|ƒtj|kr$tS|j||ƒtS(N(RsRRtRšRuR(R­ttickTypeRw((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckPlayerTickÿ    s cCs¾|jƒ}tƒsd|}|jƒ}|s1dSddl}|jtji|d6|g|ƒdSt|dƒr‚|jƒ}nt    ||ƒ|j
tj ƒj t ƒƒ}|j|ƒdS(sUתÂëºóÔÙ·¢DebugAnswer
    @param curPlayer: ¿ç·þ·þÎñÆ÷ʱ֧³ÖÖ±½Ó´«Èë crossPlayer
    Niÿÿÿÿttextt    GetPlayer(RJRRtCrossMsgtSendToClientServerR5tC2S_GMDebugAnswerR€RFRRÉRÊRËRÈRß(R­RERÃt crossPlayert mainServerIDRG((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRß
s       #  cCs6|d}tƒj|ƒ}|r2t||ƒndS(NRE(R¦R×Rß(R2RÃRER­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRI
s
 
cCs<t||ƒtƒjƒr+t|ƒ‚n td|ƒdS(NtMapServerRaiseException(R&R¤RåRt SendGameError(terrorMsgRÃ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytRaiseException%
s
  cCsVtd||f|ƒt||ƒ|s9tƒjƒrRtd||fƒ‚ndS(NsSendGameErrorEx: %s -> %ss%s -> %s(R&RMR¤RåR(terrTypetmsgInfoRÃRý((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR.
s
 cCs“tjddƒ}tƒ}tjddƒ}|d|||tƒjƒf}|rp|dtj|ƒ}ntƒjddddd|ƒd    S(
sx ÏòÔËά·¢ËÍÓʼþ£¬ÓÃÓÚÐèÒª½ô¼±´¦ÀíµÄÐÅÏ¢
    @param errType: ´íÎóÀàÐÍ£¬×Ô¶¨Òå¼´¿É
    @param msgInfo: ´íÎóÐÅÏ¢£¬¿ÉÑ¡
    t EventReportt OpenStateUrltconnectt USER_DB_NAMEs*?Type=%s&groupID=%s&userDBName=%s&mapID=%ss &MsgInfo=%sRiN(    RRRR©tGetMapIDturllibt
quote_plusR¤tEventReport_EventReport(RPRQtgetUrlt    groupNamet
userDBName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRM5
s    #(ÜRÀR£RâRR¸R;R3RRRR#R÷R5tdecimalRRRR‚RíRRWR4RGtsetrecursionlimittServerRootPathRëRRR!RRR8R9RBRKR`RfRgRORPRpRtRyR~R‡R‰R‹RRR‘RýR”R™RŸR¢R RªR®R°R²R¶RRÒRÜRéRíRïRîRûRõRRR RRR'RBRbRšROR³RgRiRQRoRqRvRwRxRrR~RƒR‰R‹RR•R’R R¡R£RÞRÝtIPY_ItemFactoryRÛR¤RŒR¥R¦R§R¨R©R°R«R¼R½R¾R¿RŽRÍRÖRÚRÜRáRR&RRèRôRõRøRúRRR
RöRRRRþRRR RRR#R%RöR-R2R+R7R:R;RERFRIRUR^RlRaRpRrRxRRŒR„R›RžRœR£R¦R¨R¤R¬R®R´R°R½RÂRÇRÈRÌRÍRÎRÒRcRR×RØRÙRéRìRíRöRùRüRÿRRR4RRRRhRRRRLR'R*R0R6R7R9RBRDRßRIRORRM(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt<module>'s¬                                     "                  H                                                                                                  7                                                                O    K #                                                                     
                                                                                                                                                                                                                                                   
        '              
                     
                                     7