hxp
3 天以前 8e76a6859474df07c12e0b4ff0ea3bfd321675eb
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
E%ˆic @sRddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl m Z ddlZddlZddlZddlZddlZddlZddlZejdƒdZdad„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd d„Zd„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„Z/e j0d„Z1d„Z2d „Z3d!„Z4d"„Z5d#„Z6d$„Z7d%„Z8d&„Z9d'„Z:d(„Z;d)„Z<d*„Z=d+„Z>d,„Z?d-„Z@eAd.„ZBd/„ZCd0„ZDd1„ZEejFd2„ZGd3„ZHd4„ZId5„ZJd6„ZKd7„ZLd8„ZMd9„ZNd:„ZOd;„ZPd<„ZQd=„ZRd>„ZSd?„ZTd@„ZUejƒZVejWƒZXejYƒZZdA„Z[dB„Z\dC„Z]dD„Z^dE„Z_dF„Z`dG„ZadH„ZbdI„ZcdJ„ZddK„ZedL„ZfdM„ZgdN„ZhdO„ZidP„ZjdQ„ZkdR„ZldS„ZWdT„ZmdddU„ZndddV„ZodddW„ZpdX„ZqdY„ZrdZ„Zsd[„Ztd\„Zud]„Zvd^„Zwd_„Zxd`„Zyda„Zzdb„Z{dc„Z|dd„Z}de„Z~df„Zdg„Z€dhZdi„Z‚dj„Zƒdk„Z„dl„Z…dm„Z†dn„Z‡do„Zˆdp„Z‰dq„ZŠdr„Z‹dsZŒdt„Zdu„ZŽdv„Zdddddddddddw„
Zdx„Z‘deAdy„Z’dz„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«ejFd’„Z¬ejFd“„Z­ejFd”„Z®ejFd•„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¼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.d¯„ZÉd°„ZÊd±„ZËddd²„ZÌdd³d´„ZÍdddµ„ZÎd¶„ZÏd·„ZÐdd¸„ZÑddeAd¹„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    ImportAllKs  cCsdS(N((R R ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt ReloadScriptascCsÊ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__ReloadScriptzs"
 
 
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 MatrixCircle7s"    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.pytPosInLineByDistQs3 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.pytPosInLineByDistEx`s3 cCs;t|ƒ}tt|ƒƒ}||kr1|gS||gS(N(R2tMyRound(tnumtnum1tnum2((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyROts
  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.pyRPs
  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 IsSameCountry3scCs6||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 IsSameFamilyLs
  cCs#|jƒdtjgkrdStS(Ni(t
GetGMLevelRt Def_GM_LV_GodR(t    curPlayer((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsGMYscCs|jƒdkrtStS(Ni(tGetRealPlayerIDRRš(R­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsMirrorPlayer`scCs-| s%|jƒdks%|jƒr)tStS(s€ÊÇ·ñÕý³£¿ÉÓõij£¹æÍæ¼Ò£¬Ò»°ãÓÃÓÚÅжÏÊÇ·ñÊÇÒ»¸öÕý³£µÄÍæ¼Ò
    ¿ÉÓÃÓÚ·â°ü֪ͨÅжϡ¢»î¶¯Íæ¼ÒÅжϵÈÒ»Çнö´¦ÀíÕæÊµ³£¹æÍæ¼ÒµÄÑéÖ¤
    i(R›tIsEmptyRšR(R­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsNormalPlayerfs%cCs,tƒ}t|ƒ}|jdƒd}|S(Ns.i(tGetCurrentTimeRR((tcurTimet
curTimeStr((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCurrentDataTimeStrws     cCs8|tjkriStj|}||kr0iS||S(N(Rtg_operationActionDict(tactNametactNumt
actNumDict((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)(tipyDatatcfgIDtdayIndexttemplateIDListt
templateID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetTemplateID‡s &cCsD|dkrdS|sdS|t|ƒkr6|dn||}|S(Niiÿÿÿÿ(RR)(RÀR¿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)RÅRztdatetimet    timedelta(t startDateStrt
endDateStrt curDateTimetstartSplitListtloopDayststartLoopDateStrtstartLoopDateTimet endSplitListtendLoopDateStrtendLoopDateTimetpassDayst    loopTimest loopTimeMaxt startDateTimet endDateTime((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetOperationActionLoopDate˜s 
&  cCsãtjjƒ}|jƒ}|jƒ}|sLd|j|j|jf}n|sqd|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ƒrh|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ƒ}||krM|}n||kre|}qeq¡n9|jdƒr•t|||ƒ\}}}n |}|}d|j|j|jf}d|j|j|jf}||fS(Ns%d-%d-%ds-itWtLiÿÿÿÿiRÅtKtMixis|i(RÈttodayt GetStartDatet
GetEndDatetyeartmonthtdayRQRwt    DBDataMgrRvtGetEventTrigMgrtGetValuet ShareDefinet Def_ServerDayRÉR2RttDef_MixServerDaytweekdayR(R)RÆRRÇRÙ(R½RÌRÊRËRätdiffDayR×RØt
curWeekdaytstartWeekDateInfot startWeekInfot startWeekdayRÏRÐt startWeekDaytendWeekDateInfot endWeekInfot
endWeekdayRÒRÓRÄ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetOperationActionDateStr°sh  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( tgetRçt ActKey_CfgIDt IpyGameDataPYtGetIpyGameDataNotLogR€RõtGetFuncActDayst GetFuncLoopt GetPlayerIDRšt ActKey_StatetGetDictValueByBitRt"Def_Player_Dict_GameFuncFirstTouchRRRöt ActKey_ActNumR³tGetActRelateFuncDateR÷RáRâRãRÈtstrptimetTYPE_Time_FormatR2ttimetmktimet    timetuple(R­R¸tactInfot playerActIDR¾R½t relateFuncIDt funcActDaystfuncLooptplayerIDtisInActtactIDtisOpent    isDayRestR¹t
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( NRöiR÷ii
s %s 04:59:59RÅis %s 23:59:59s%d-%d-%d(RüR€RöR÷tChangeTimeNumToDatetimeRRRRÈRRÉRàRáRâRã( R½t    startTimet returnYmdStrR RRRt startDayStrRRËRÊ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRIs0 !!     / 33   
cCs tjjƒS(N(RÈRÞ(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR³lscCs tjjƒS(N(RÈRÞ(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetServerTimenscCstjjtjjƒƒdS(Ni(RÈt 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(RÈRt 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(R R(RÈRR!R(R"t
timeFormatR$((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDateTimeByFormatStr•scCs@t|ƒ}|dkr*td|ƒdS|jd|jdS(Ns GetPastHour Err dateTimeStr = %siii(t__GetPastTimeDeltaRR&RÅtseconds(t dateTimeStrt pastTimeDelta((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetPastHour¤s
  cCsDt|ƒ}|dkr*td|ƒdS|jdd|jdS(Ns"GetPastMinute Err dateTimeStr = %siii<(R(RR&RÅR)(R*R+((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<(R(RR&RÅR)(R*R+((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPastSeconds¿s
  cCs9tƒ}t|ƒ}|dks-|dkr1dS||S(N(R³R%R(tcompareTimeStrt curDataTimetcompareDataTime((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR(Ís
     cCs$||}|jdd|jdS(Nii<(RÅR)(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(RRÈRáRâRãRÅ(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(
RRÈRáRâRãR2RRRR{(RtaddDayst    startDatet startZeroDatet startZeroTimetendTime((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetEndTimeByZeroTimeês
 ''cCstƒtjd|ƒS(NRÅ(R³RÈRÉ(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.pyRCscCs;tƒ}|j|ƒ}|s-t|ƒ}n|r7|SdS(N(RBtFindGameNPCByNPCIDtFindSummerNPCByNPCID(REtnpcMgrtfindNPC((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytFindNPCByNPCIDs    cCsgtƒ}xWt|jƒƒD]C}|j|ƒ}|jƒdkrIqn|jƒ|kr|SqWdS(Ni(RBtxrangetGetSummonNPCCounttGetSummonNPCAtR›tGetNPCID(RERItindextcurNPC((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRH s    cCsstƒ}xct|j|ƒƒD]L}|j||ƒ}|jƒ}|dkrUqn||jƒkr|SqWdS(Ni(RBRLtGetNPCCountByGWIndextGetNPCByIndexByGWIndexR›RO(t    copyMapIDREtgameNPCManagerRPRQtcurID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytFindNPCByNPCIDExs      cCstƒj|ƒ}t|ƒS(N(RBt GetNPCByIndexRD(tnpcIndexRF((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRX'scCstS(N(t __GameWorld(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetGameWorld6scCs
tjƒS(N(RZRB(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRB>scCs
tjƒS(N(RZtGetTeamManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR\FscCs
tjƒS(N(RZtGetPlayerManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR]NscCs
tjƒS(N(RZtGetMapItemManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR^VscCs
tjƒS(N(RZtGetMapCopyPlayerManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR_^scCs
tjƒS(N(RZtGetMap(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR`fscCs9tƒ}||kr|S||}|jd|ƒ}|S(Nt    DataMapID(tGetMapIDTxtInfoRø(tmapIDt mapIDTxtInfotmapInfot    dataMapID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMapDataMapIDis      
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    iiRasLoad %ssg_mapIDTxtInfo=%s(
Rtg_mapIDTxtInfoRtGetServerRootPathtopent    readlinesR(R)R2R(trootPathtmapIDTxttftlinetlineListttMapIDt
dDataMapID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRbrs          
 cCs
tjƒS(N(RZtGetMail(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRs‰scCs
tjƒS(N(RZt    GetScript(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRt‘scCs
tjƒS(N(RZt    GetGameFB(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRu™scCs
tjƒS(N(RZtGetAllFbNPCManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRv¡scCsj|dkrdS|jƒ}|tjkrAtƒj|jƒƒS|tjkrftƒj|jƒƒS|S(N(    RtGetGameNPCObjTypeR£t
gnotSummonRBtFindSummonNPCByIDR›tgnotPett FindPetByID(t    curTagNPCtnpcObj((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRD©s  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_Gateºs9cCs‡|jƒ}|jƒ}|tjkr7tƒj|ƒS|tjkrPt|ƒS|tjkrot    ƒj
|ƒSt d||fƒdS(Ns*»ñµÃobjÀàʧ°Ü objType = %s , objIndex = %s( RœtGetIndexR£t    gotPlayerR]tGetPlayerByIndexR~RXtgotItemR^tGetPoolItemByIndexR&R(tobjtobjTypetobjIndex((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetObjDetailÅs  
cCs[|tjkrtƒj|ƒS|tjkr8t|ƒS|tjkrWtƒj|ƒSdS(N(
R£R†R_tFindPlayerByIDR~RCRˆ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—Rtpar((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR
scCstjd|||fƒdS(Ns%s    %s    ###Error:%s(R™Rš(R—RR›((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—RR›((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRscGsjtjƒsdSd}d}y||}Wn||d }|d}nXtjd|||fƒtS(Niiÿÿÿÿs%s    %s    PyDebug:%s(RZRœR™RšR(t    logFormattargsR›RR—((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 MergeServerIDRRiR#R$tisfileR&Rt ConfigParsertreadt
has_optionRtRøR(RltmergeServerIniFiletmergeServerInitsectiontoption((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMergeServerID9s 
   cCs tƒjƒS(N(R[tGetServerVersion(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¬TscCstƒtjtjgkS(N(t GetServerTypeRçtserverType_CrosstserverType_CrossCenter(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsCrossServerWscCstƒtjkS(N(R­RçR¯(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsCrossCenter[scCs†tƒs dSd}tjƒ}x`|jƒD]R}|tj}|tjkr,|d7}|dkr~tdddtƒdSq,q,WdS(NiitCrossCenterUniquenessErrs¿ç·þÖÐÐÄÖ»ÔÊÐíÅäÖÃһ̨t
isRaiseErr(    R±RtGetServerConfigDicttvaluesRçtserverCfgIndex_ServerTypeR¯tSendGameErrorExR(t    serverCntt
serverDictt
serverInfot
serverType((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckCrossCenterUniquenessErr_s      
  cCstƒtjkS(N(R­RçtserverType_Main(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsMainServeroscCstƒtjkS(N(R­RçtserverType_Battle(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsBattleServersscCs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 GetServerIDRçR¶Rt SetConfigEx(RÁR¹tserverIDRº((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR­ws   
 cCstjddƒS(Ntplatformt    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(NRÆt PlatformName(RtGetPyMongoConfig(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetPlatform§scCstjddƒS(NRÆtAppID(RRÍ(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetAppIDªscCs
|dkS(Nttesttyun(RÑRÒ((RÆ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsTestPlatform®scCs=|jƒ}tƒt|jdƒdtjƒ}|jdS(Ns ii(tGetCreateRoleTimeR³R%R(RRÇRÅ(R­tcreateRoleTimetdiffTime((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCreateRoleDays°s &s@cCst|jƒƒS(N(tGetAccIDServerIDtGetAccID(R­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerServerID¼scCs7|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ؽscCs9|jƒ}|jtƒ}t|ƒdkr1dS|dS(NiRiÿÿÿÿ(RÙR(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.pytGetDBPlayerAccIDByIDÇscCs™|dkrtS|stSxx|D]p}t|ttfƒrrt|ƒdkrr|d|kom|dknst|tƒr!||kr!tSq!WtS(Niii(RRšRt
isinstanceRLttupleR)R2(RÅt serverIDListt serverIDInfo((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckServerIDInListËs  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(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øRµR&RþRtNomalDictAddPropertyR(R­t channelCodetChannelCodeDicttcodeListtcodeNumtcode((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSetPlayerChannelCodes    cCs>|jtƒ}|dkrdStjdƒ}|j|dƒS(NiRRù(RõRøRRúRø(R­RRþ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerChannelCodes
 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.pytNoteDownLargeTrade4s    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_GoldRecNs
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
isResetPettrolePetR!((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.pyRus  cCsB|s
tSt|dƒ|ko5t|dƒknr>tSdS(Nii(RR%(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
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.pytSetPlayerTickTime™s 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<t    enumeratet ResetRiseList( triseListt    randomNumRsR“tdataInfotlistLentdatat tempRiseListR\R’tj((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByRandomListEx¾s,         cCs½t|ƒ}|dkrgS||kr-|Stj|ƒ}|dkrZ||ddnd}||d}||d|!}x"|D]}|dc||8<q†Wtj|d|!|ƒS(Nii(R)R?R@(RCtdelIndext riseListLenRHt lastBaseRetetbaseRatettempListtriseInfo((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRBås   $ c
Cs°g}x£t|ƒD]•\}}|\}}|dkr=|n|||dd}|s_|n|t||dƒ}|sƒ|n|dd|}    |j|    |fƒqW|S(NiigˆÃ@iÿÿÿÿ(RAR2R,(
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.pytGetResultByRandomListscCs0x)|D]!}||dkr#qn|dSW|S(Nii((RCtpointRst    smallList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRZs
     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<RZ(t
weightListRsR[tweightRUR’((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByWeightLists 
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_NPCMapDropRateRb(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(RCR]RcRPtelementtcmpPoint((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRbHs
    
      cCs|S(N((tfunc((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetPsycoFuncascCs tjdƒS(Nt PsycoSwitch(RRú(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt__GetPsycoIsOpennscCshtdtƒƒg}x7tjjƒD]&}|j||jdƒdgƒq'Wttj    d|ƒdS(NsPsycoReload Begin : time = %ss.iÿÿÿÿR(
RR¶RRtkeysR,R(t
TravelFileRt
ScriptPath(R4tmoduleNameListt
moduleName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt PsycoReloadus $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%Rn(R tfilePathRpRt curModuleNamet
reloadNameRqtmodule((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRn„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
IsMissonDR¬s
  cCsBtjddƒrtSyt|tjddƒƒWntSXtS(Nt EncodingTexii(Rút
GetFuncCfgRtunicodeRš(t    inputText((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytEncodingToUnicode»scCstjddƒS(NRi(RúR‚(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCharacterEncodingÉscCs/y |jtjƒjtƒƒSWn|SX|S(N(tdecodeRçtDef_Game_Character_EncodingtencodeR†(R„((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    GbkToCodeÌs
 cCs/y |jtƒƒjtjƒSWn|SX|S(N(R‡R†R‰RçRˆ(R„((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    CodeToGbkÔs
 cCs.tjj||ƒjƒ}ttj|ƒƒS(N(RÈRRR2RR(R"R&((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeTimeStrToNumßscCstj|tj|ƒƒS(N(Rtstrftimet    localtime(ttimeNumR&((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeTimeNumToStræscCs.tj|tj|ƒƒ}tjj||ƒS(N(RRRŽRÈR(RR&R"((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRìscCstjj||ƒS(N(RÈR(R"R&((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRÆðscCsttj|jƒƒƒS(N(R2RRR(tdateT((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ÿÿÿÿ( RR³RçtDef_OnEventHourRáRâRãthourRšRRÈRÅ(t    checkTimet    checkDatetcurDateR”tchkYeartchkMonthtchkDaytchkHourtcurYeartcurMonthtcurDaytcurHourt checkDateExt    curDateExR@((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckTimeIsSameServerDayExüs2         **$       cCs5t|ƒ}tjj|ƒd}tƒ}||kS(siÅжÏÖ¸¶¨timeÖµÓëµ±Ììʱ¼ä¶Ô±ÈÊÇ·ñΪÓÎÏ·ÄÚµÄͬһÖÜ£»ÌØÊâʱ¼äµã¹ýÌìºó²ÅË㲻ͬÌì
    @return: ÊÇ·ñͬһÖÜ
    i(RRÈRR(R–R—t    checkWeektcurWeek((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckTimeIsSameWeek3s     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
GetAreaCrcMs cCs;x4|jƒD]&\}}|j|dƒ|||<q WdS(Ni(RRø(tdict1tdict2R<Rn((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt AddDictValueVscCsPxI|jƒD];\}}|j|dƒ}||||tj||<q WdS(Ni(RRøRçtDef_MaxRateValue(R³R´R<Rntvalue1((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCalcAttrDictPeras!cCs|td|ƒdS(Ni
(R:(tnumValuet    dataIndex((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDataByDigitPlacenscCsY|dks'|dks'|tjkr+|St||ƒ}|td|ƒ||7}|S(Nii    i
(RçtDef_PDictDigitCntR»R:(R¹Rºt    dataValuet    lastTagLV((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeDataByDigitPlacews
'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.pyRæ‚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ÁtupdValueRÂ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((R½RP((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetBitValueœ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½RPtval((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt SetBitValue¤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)(tsrcDictRÍRstrangeKeyRn((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    keyFormatRÒRÓtkeyParamRÔRÕtkeyNamet    dictValuetbitIndextbitValue((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRÝ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¿Rût PlayerControltNomalDictSetProperty( R­R×RÒRnRÓRØ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âRû(    R­R×tmaxLenRÓRØ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)(toperTypeRcREtisRepeattmsgList((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(tmsgTypeRëRìRíRîRè((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]RåR)R(RñRëtserverGroupIDListRìRíRîRè((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRò3    s%cCsp||kr||St|jƒƒ}|dkrZx%|D]}||kr9||Sq9Wn|rl||dSdS(Niiÿÿÿÿ(tsortedRmR(t    orderDicttordert isDefaultLastt    orderListtdOrder((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetOrderValueByDict?    s    cCs8||j|ƒtj|kr$tS|j||ƒtS(N(R0RR1RšR2R(R­ttickTypeR4((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckPlayerTickM    s cCs‹|jƒ}tjdƒ}|d}|d}|d}d}x:t|ƒD],\}}||krn|}Pn|d}qLW||d}    ||d}
|t|ƒkr°dn||} d} d} xg|jƒD]Y\}}||    ksÓ|| krýqÓnt|ƒ}| |7} ||krÓ| |7} qÓqÓW||krY| |jtj|ƒ7} n|dkrk|n||    |
| | }||fS(Nt ClientLVRuleiiiiŸ†(    R}RRúRAR)RRõRtDef_PDict_SplitExpLVCnt(R­tserverLVt clientLVRuletTransRealLVListtTransNewLvListtSplitLVExpDictttransCntR\treallvtcurTransRealLVtcurNewLVtnextTransRealLVtcurTransAddSplitLVtcurTransTotalSplitLVt splitRealLVt splitLVListt splitLVExCnttshowLV((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetClientLVW    s6 
 
 
 " 
  (cCsAt||||gƒ}tƒj|ddd|t|ƒƒdS(s
    @todo: Ìí¼ÓÍæ¼Ò¼Ç¼
    @param recType: Í¨ÓüǼÀàÐÍ, ¶ÔÓ¦ ShareDefine.Def_PlayerRecTypeList
    @param valueList: ÊýÖµÁбí[value1, value2, ...], °´Ë³Ðò, Ö§³Övalue1 ~ value8
    @param userData: ×Ô¶¨Òå×Ö·ûÐÅÏ¢
    @param notifyType: 0-²»Í¨Öª; 1-֪ͨµ¥Ìõ; 2-֪ͨȫ²¿
    it AddPlayerRecN(RR]RåR)(RtrecTypet    valueListtuserDatat
notifyTypetmsgStr((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR|    s%icCsDt|||||gƒ}tƒj|ddd|t|ƒƒdS(sÓ
    @todo: Ìí¼ÓGameServer´æ´¢Í¨ÓüǼ
    @param recType: Í¨ÓüǼÀàÐÍ, ¶ÔÓ¦ ShareDefine.Def_UniversalGameRecTypeList
    @param valueList: ÊýÖµÁбí[value1, value2, ...], °´Ë³Ðò, Ö§³Övalue1 ~ value5
    @param strValueList: ×Ö·ûÖµÁбí[strValue1, strValue2, ...], °´Ë³Ðò, Ö§³ÖstrValue1 ~ strValue3
    @param notifyType: 0-²»Í¨Öª; 1-֪ͨ±¾ÈË; 2-֪ͨȫ·þ£»3-֪ͨ±¾È˵¥Ìõ£»4-֪ͨȫ·þµ¥Ìõ
    @param isSort: ´æ´¢¼Ç¼ÂúÐèɾ³ýʱÊÇ·ñÐèÒªÏȰ´Ê±¼äÅÅÐò, Ä¬ÈÏ1ÊÇ, ÏȽøÏȳö
    itAddUniversalGameRecN(RR]RåR)(RRRt strValueListRtisSortR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRˆ    s    %cCs;t||gƒ}tƒj|ddd|t|ƒƒdS(s³
    @todo: É¾³ýGameServer´æ´¢Í¨ÓüǼ
    @param recType: Í¨ÓüǼÀàÐÍ, ¶ÔÓ¦ ShareDefine.Def_UniversalGameRecTypeList
    @param notifyType: 0-²»Í¨Öª; 1-֪ͨ±¾ÈË; 2-֪ͨȫ·þ
    itDelUniversalGameRecN(RR]RåR)(RRRR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR•    s%cCs |jƒ}tƒrd|}|jƒ}|s1dSddl}|jtji|d6|g|ƒdSt||ƒ|jtj    ƒj
t ƒƒ}|j |ƒdS(sUתÂëºóÔÙ·¢DebugAnswer
    @param curPlayer: ¿ç·þ·þÎñÆ÷ʱ֧³ÖÖ±½Ó´«Èë crossPlayer
    Niÿÿÿÿttext( RþR°RËtCrossMsgtSendToClientServerRçtC2S_GMDebugAnswerRR‡RˆR‰R†R–(R­RRt crossPlayert mainServerIDR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR–     s       #  cCs6|d}tƒj|ƒ}|r2t||ƒndS(NR(R]RŽR–(RëRRR­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¶    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&R!R[RœR(terrTypetmsgInfoRR³((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(    RRÍRÉR`tGetMapIDturllibt
quote_plusR[tEventReport_EventReport(R$R%tgetUrlt    groupNamet
userDBName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR!Í    s    #(ÔR£R™RRúR;R3RRÈRR#R°RçtdecimalRRR?R¤RR+RñRtsetrecursionlimittServerRootPathR¢RRR!RRR8R9RBRKR`RfRgRORPRpRtRyR~R‡R‰R‹RRR‘R¶R”R™RŸR¢R RªR®R°R²R¶R»RÂRÃRÙRôRRšRR³RRRR%R'R,R-R.R(R4R9R?RARCRKRHRWRXRZR•R”tIPY_ItemFactoryR’R[RBR\R]R^R_R`RgRbRsRtRuRvRDR„RR‘R“R˜RR&RRŸR«R¬R°R±R¼R¾RÀR­RÉRÊRËRÎRÐRÓR×RÛRÚRØRÞRàRåRêRïRèRôR÷RøRRRRRR)RR-R/R5R>RRJRBRYR\RZRaRdRfRbRjRlRrRnR{R€R…R†RŠR‹RŒRRRÆR’R“R£R¦R¯R²RµR¸R»R¿RæRÈRÉRËRhRÎRÑRÖRRàRãRéRïRðRòRúRüRRRRR–RR#R·R!(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt<module>'sœ                                    "                  H                                                                                                                          N    K #                                                                     
                                                                                                                                                                                                                                                    
        '              
                     
                                 7                                                                 
 
     
    %