hxp
6 天以前 ad855ce4746d51bf96434d5e8f7abd710778f723
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
299
300
>œjc @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„ZJd6„ZKdd7„ZLd8„ZMeNd9„ZOd:„ZPd;„ZQd<„ZRe    jSd=„ZTd>„ZUd?„ZVd@„ZWdA„ZXdB„ZYdC„ZZdD„Z[dE„Z\dF„Z]dG„Z^dH„Z_dI„Z`dJ„ZadK„ZbejƒZcejdƒZeejfƒZgdL„ZhdM„ZidN„ZjdO„ZkdP„ZldQ„ZmdR„ZndS„ZodT„ZpdU„ZqdV„ZrdW„ZsdX„ZtdY„ZudZ„Zvd[„Zwd\„Zxd]„Zyd^„Zdd_„Zzddd`„Z{ddda„Z|dddb„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‹dq„ZŒdrZ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šd€„Z›ddddddddddd„
Zœd‚„ZdeNdƒ„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    jSdœ„Z·e    jSd„Z¸e    jSdž„Z¹e    jSdŸ„Zºe    jSeNd „Z»d¡„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ÛddeNdÁ„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îäscCsct|ƒ}|sdStjdt|ƒƒ}|s8dSx$|D]}|jƒ|kr?|Sq?WdS(NtActZone(RíR¸R¹tGetActZoneSignt    GetZoneID(RìtzoneIDRótzoneIpyDataListt zoneIpyData((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetActZoneIpyDataByZoneIDês  cCsZ|s
dStjdt|ƒƒ}|s,dSx'|D]}t||jƒƒr3|Sq3WdS(NRô(R¸R¹RõtCheckServerIDInListtGetServerIDList(Rót actServerIDRøRù((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(R R    Rtg_operationActionDict(RâRtactInfoR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
GetActInfo%s  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 GetTemplateID2s &cCsD|dkrdS|sdS|t|ƒkr6|dn||}|S(Niiÿÿÿÿ(RR)(RRR((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.pytGetOperationActionLoopDateCs 
&  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ËRRRR5tdiffDayR(R)t
curWeekdaytstartWeekDateInfot startWeekInfot startWeekdayR R!t startWeekDaytendWeekDateInfot endWeekInfot
endWeekdayR#R$R((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetOperationActionDateStr[sj  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ÞR8t ActKey_CfgIDR¸tGetIpyGameDataNotLogR€RFtGetFuncActDayst GetFuncLoopt GetPlayerIDRšt ActKey_StatetGetDictValueByBitRt"Def_Player_Dict_GameFuncFirstTouchRRRGt ActKey_ActNumR³tGetActRelateFuncDateRHR2R3R4RtstrptimetTYPE_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( NRGiRHii
s %s 04:59:59Ris %s 23:59:59s%d-%d-%d(RKR€RGRHtChangeTimeNumToDatetimeRRTRRRSRR1R2R3R4( RËt    startTimet returnYmdStrRZR_RdRbt startDayStrRcRR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRRõ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 GetServerTimescCstjjtjjƒƒdS(Ni(Rt isocalendarR/(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetWeekOfYear(scCs_|jƒjdƒd}ytjj||ƒSWn(tk
rZ}td||fƒdSXdS(Ns.is%s : %s(tstripR(RRSt BaseExceptionR&(ttimeStrt    timeFomatte((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDateTimeByStr1scCs_|jƒjdƒd}ytjj||ƒSWn(tk
rZ}td||fƒdSXdS(Ns.is%s : %s(RmR(RRSRnR(Rot
timeFormatRq((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDateTimeByFormatStrAscCs@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 GetPastHourPs
  cCsDt|ƒ}|dkr*td|ƒdS|jdd|jdS(Ns"GetPastMinute Err dateTimeStr = %siii<(RuRR&RRv(RwRx((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetPastMinute]s
  cCsDt|ƒ}|dkr*td|ƒdS|jddd|jS(Ns"GetPastMinute Err dateTimeStr = %siii<(RuRR&RRv(RwRx((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPastSecondsks
  cCs9tƒ}t|ƒ}|dks-|dkr1dS||S(N(R³RrR(tcompareTimeStrt curDataTimetcompareDataTime((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRuys
     cCs$||}|jdd|jdS(Nii<(RRv(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(RfRR2R3R4R(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(
RfRR2R3R4R2RURVRWR{(RgtaddDayst    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¿5scCs
tjƒS(N(R¦t    GetScript(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRÀ=scCs
tjƒS(N(R¦t    GetGameFB(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRÁEscCs
tjƒS(N(R¦tGetAllFbNPCManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRÂMscCsj|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‘Us  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_Gatefs9cCs‡|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 GetObjDetailqs  
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.pytGetObj†s
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 GetServerTypeR8tserverType_Cross(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsCrossServerscCstƒtjkS(N(RùR8tserverType_CrossCenter(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsCrossCenterscCs™tƒs dStƒdkr dSd}tjƒ}x`|jƒD]R}|tj}|tjkr?|d7}|dkr‘tdddt    ƒdSq?q?WdS(NttestiitCrossCenterUniquenessErrs¿ç·þÖÐÐÄÖ»ÔÊÐíÅäÖÃһ̨t
isRaiseErr(
RýRRtGetServerConfigDicttvaluesR8tserverCfgIndex_ServerTypeRütSendGameErrorExR(t    serverCntt
serverDictt
serverInfot
serverType((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckCrossCenterUniquenessErr s      
  cCstƒtjkS(N(RùR8tserverType_Main(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsMainServerscCstƒtjkS(N(RùR8tserverType_Battle(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsBattleServer"scCs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 GetConfigExRRRR§t GetServerIDR8RRt SetConfigEx(RRtserverIDR((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.pytGetServerGroupName4scCsdS(N((((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMixServerDict8scCs|S(N((R((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMainServerIDJscCstjddƒS(NRtAppID(RtGetPyMongoConfig(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRSscCs
|dkS(NRþtyun(stestR((R((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsTestPlatformWscCs=|jƒ}tƒt|jdƒdtjƒ}|jdS(Ns ii(tGetCreateRoleTimeR³RrR(RRR(R­tcreateRoleTimetdiffTime((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCreateRoleDaysYs &s@cCst|jƒƒS(N(tGetAccIDServerIDtGetAccID(R­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerServerIDescCs7|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.pyR fscCs9|jƒ}|jtƒ}t|ƒdkr1dS|dS(NiRiÿÿÿÿ(R!R(R#R)(R­R$R%((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerServerSIDjs cCstjj|dƒS(NR(Rtg_dbPlayerIDMapRÞ(RÃ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDBPlayerAccIDByIDpscCs™|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ûts  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ƒ}t|ƒdkr)|dSdS(NiiþÿÿÿR(R(R#R)(R2R%((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR.œscCs-tj|jƒ|jƒjƒdƒjƒS(Ntmobile(tmd5R!R,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>RR&RMRtNomalDictAddPropertyR(R­t channelCodetChannelCodeDicttcodeListtcodeNumtcode((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSetPlayerChannelCode¬s    cCs>|jtƒ}|dkrdStjdƒ}|j|dƒS(NiRR?(R;R>RR@RÞ(R­RFRD((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
isResetPettrolePetRg((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytResetPlayerPoss
 0cCs|jdƒ|jdƒdS(Ni(t SetMoveCounttSetMoveDistDiff(R­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRds  cCsB|s
tSt|dƒ|ko5t|dƒknr>tSdS(Nii(RRr(R´tactSect((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsAtActTime)s
0cCsdS(Ni((tcurLV((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
GetReMoney8scCs8||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.pytSetPlayerTickTimeBs 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 MergeItemListJs"         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.pytGetResultByRandomListExgs,         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__GetPsycoIsOpenscCshtdtƒƒg}x7tjjƒD]&}|j||jdƒdgƒq'Wttj    d|ƒdS(NsPsycoReload Begin : time = %ss.iÿÿÿÿR(
RR¶RRtkeysR,R(t
TravelFileRt
ScriptPath(RztmoduleNameListt
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.pytChangeInputTimeKscCs/|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
IsMissonDRUs
  cCsBtjddƒrtSyt|tjddƒƒWntSXtS(Nt EncodingTexii(R¸t
GetFuncCfgRtunicodeRš(t    inputText((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytEncodingToUnicodedscCstjddƒS(NRÆi(R¸RÇ(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCharacterEncodingrscCs/y |jtjƒjtƒƒSWn|SX|S(N(tdecodeR8tDef_Game_Character_EncodingtencodeRË(RÉ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    GbkToCodeus
 cCs/y |jtƒƒjtjƒSWn|SX|S(N(RÌRËRÎR8RÍ(RÉ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    CodeToGbk}s
 cCs.tjj||ƒjƒ}ttj|ƒƒS(N(RRSRWR2RURV(RoRs((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeTimeStrToNumˆscCstj|tj|ƒƒS(N(RUtstrftimet    localtime(ttimeNumRs((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeTimeNumToStrscCs.tj|tj|ƒƒ}tjj||ƒS(N(RURÒRÓRRS(RÔRsRo((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRf•scCs>ytjj||ƒSWn tjddddddƒSXdS(Ni²iii(RRS(RoRs((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(tdateTRstisMstdate_str((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeDatetimeToStr scCsttj|jƒƒƒS(N(R2RURVRW(R×((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeDatetimeToNum©scCs:|s
tS|r ||kr tS|r6||kr6tStS(N(RšR(RˆtendDatet    checkDate((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt CheckDateIn«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ÿÿÿÿ( RfR³R8tDef_OnEventHourR2R3R4thourRšRRR(t    checkTimeRÝtcurDateRà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(RfRRkRl(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šRfR2R3R4(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Þ(tdict1tdict2R‚Rn((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt AddDictValue#    scCsPxI|jƒD];\}}|j|dƒ}||||tj||<q WdS(Ni(RRÞR8tDef_MaxRateValue(RÿRR‚Rntvalue1((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
(R8tDef_PDictDigitCntRR:(RRt    dataValuet    lastTagLV((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeDataByDigitPlaceD    s
'cCs4td|ƒ}td||ƒ}|||}|S(s½»ñȡij¸öÊýÖµÖУ¬´ÓÓÒÍù×óÊýµÚxλ¿ªÊ¼£¬½ØÍ¼nλµÃµ½µÄÊý¾Ý
    @param dataValue: Ô­Ê¼ÊýÖµ
    @param fromRight: ´ÓÓÒÍù×óÊýµÚxλ¿ªÊ¼£¬´Ó1¿ªÊ¼
    @param bits: ½ØÈ¡nλ
    @return: ÊýÖµvalue
    i
(R:(R    t    fromRighttbitstlPowtrPowtcurValue((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR7O    scCsJtd|ƒ}td||ƒ}|||}||}||||S(síÐÞ¸Äij¸öÊýÖµ£¬´ÓÓÒÍù×óÊýµÚxλ¿ªÊ¼£¬½ØÍ¼nλµÃµ½µÄÊý¾Ý£¬Ì滻Ϊ¾ßÌåÊýÖµ
    @param dataValue: Ô­Ê¼ÊýÖµ
    @param fromRight: ´ÓÓÒÍù×óÊýµÚxλ¿ªÊ¼£¬´Ó1¿ªÊ¼
    @param bits: ½ØÈ¡nλ
    @param updValue: Ìæ»»Öµ
    @return: Ð޸ĺóµÄvalueÖµ
    i
(R:(R    R R tupdValueRRt    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((R    Rã((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetBitValuei    scCs|r|d|>BS|d|>@S(sß ¸ü¸Äij¸ö×Ö½ÚÖµÖÐijһλ(Bit)µÄÖµ
    @param dataValue: ×¼±¸¸ü¸ÄµÄ×Ö½ÚÔ­Öµ
    @param index: ´ý¸ü¸ÄλµÄÐòºÅ£¬´ÓÓÒÏò×ó0¿ªÊ¼£¬0-7Ϊһ¸öÍêÕû×Ö½ÚµÄ8¸öλ
    @param val: Ä¿±êλԤ¸ü¸ÄµÄÖµ£¬0»ò1
    @return: ·µ»Ø¸ü¸Äºó×Ö½ÚµÄÖµ
    i((R    Rãtval((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt SetBitValueq    s cCsJt|ƒtt|ƒƒdkr,t|ƒSt|ƒt|t|ƒƒS(Ngà?(RŒR2(Ri((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRh    scCsT||kr||Sx9|jƒD]+\}}t|tƒr!||kr!|Sq!WdS(N(RR)RÖ(tattrDicttfindKeyR‚Rn((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDictValueByKey‡    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.pytGetDictValueByRangeKey”    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ÖR;R:R( R­t    keyFormatRRtkeyParamR R!tkeyNamet    dictValuetbitIndextbitValue((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyROª    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ÖR;R:R RAt PlayerControltNomalDictSetProperty( R­R#RRnRR$R R!R%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ÖRA(    R­R#tmaxLenRR$R tkeyCntR\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©R1R)(R2tdataMsgt srcPlayerIDt    queryTypetqueryIDR4((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©R1R)R(tmsgTypeR7R8R9R:R4((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR<ù    s%cCsUt|||gƒ}tƒj|||d|t|ƒƒtd|||fƒdS(NtSendMsgToClientServers*·¢ËÍ×Ó·þÐÅÏ¢: %s, %s, serverGroupIDList=%s(RR©R1R)R(R=R7tserverGroupIDListR8R9R:R4((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR>
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(RvRRwRšRxR(R­ttickTypeRz((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckPlayerTick
s cCstƒsµt|tƒrB|}ddl}|jƒj|ƒ}n|}|s`td|ƒdS|jƒ}|jƒ}|s‚dSddl    }|j
t j i|d6|g|ƒdSt |dƒrÓ|jƒ}n|jƒ}t||ƒ|jt jƒjtƒƒ}|j|ƒdS(sUתÂëºóÔÙ·¢DebugAnswer
    @param curPlayer: ¿ç·þ·þÎñÆ÷ʱ֧³ÖÖ±½Ó´«Èë crossPlayer
    iÿÿÿÿNs DebugAnswerÕÒ²»µ½crossPlayer! %sttextt    GetPlayer(R R)R2t CrossPlayertGetCrossPlayerMgrtFindCrossPlayerR&RMRtCrossMsgtSendToClientServerR8tC2S_GMDebugAnswerR€RKRRÌRÍRÎRËRâ(R­RJRÃRLt crossPlayert mainServerIDRO((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRâ!
s.        #   cCs6|d}tƒj|ƒ}|r2t||ƒndS(NRJ(R©RÚRâ(R7RÃRJR­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRQB
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.pytRaiseExceptionI
s
  cCsVtd||f|ƒt||ƒ|s9tƒjƒrRtd||fƒ‚ndS(NsSendGameErrorEx: %s -> %ss%s -> %s(R&RUR§RèR(terrTypetmsgInfoRÃR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRR
s
 cCstjddƒ}tƒ}tjƒ}|d|||tƒjƒf}|rj|dtj|ƒ}ntƒj    ddddd|ƒdS(sx ÏòÔËά·¢ËÍÓʼþ£¬ÓÃÓÚÐèÒª½ô¼±´¦ÀíµÄÐÅÏ¢
    @param errType: ´íÎóÀàÐÍ£¬×Ô¶¨Òå¼´¿É
    @param msgInfo: ´íÎóÐÅÏ¢£¬¿ÉÑ¡
    t EventReportt OpenStateUrls*?Type=%s&groupID=%s&userDBName=%s&mapID=%ss &MsgInfo=%sRiN(
RRRt    GetDBNameR¬tGetMapIDturllibt
quote_plusR§tEventReport_EventReport(RXRYtgetUrlt    groupNamet
userDBName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRUY
s     #(ÞRÀR£RåRR¸R;R3RRRR#RüR8tdecimalRRUR…RðRR^R7RJtsetrecursionlimittServerRootPathRîRRR!RRR8R9RBRKR`RfRgRORPRpRtRyR~R‡R‰R‹RRR‘RR”R™RŸR¢R RªR®R°R²R¶RRÒRÜRéRíRïRîRúRþRõR    R RRRR*REReRšRRR³RjRlRTRrRtRyRzR{RuR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ýR    R R RùRRRRRRR#R"R R&R(RûR0R5R.R:R=R>RHRIRLRXRaRoRdRsRuR{R„RR‡RžR¡RŸR¦R©R«R§R¯R±R·R³RÀRÅRÊRËRÏRÐRÑRÕRfRRÚRÛRÞRßRîRñRòRûRþRRRR R7RRRRhRRR"ROR,R/R5R;R<R>RGRIRâRQRWRRU(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt<module>'s°                                     "                  H                                                                                                  7                                                                     O    K #                                                                     
                                                                                                                                                                                                                                                   
        '              
                     
                                         7                                                                  
 
         !