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
µ/oic @s4ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    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{dcZ|dd„Z}de„Z~df„Zdg„Z€dh„Zdi„Z‚dj„Zƒdk„Z„dl„Z…dm„Z†dnZ‡do„Zˆdp„Z‰dq„ZŠdddddddddddr„
Z‹ds„ZŒdeAdt„Zdu„ZŽdv„Zdw„Zdx„Z‘dy„Z’dddz„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¦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Íddµ„ZÎddd¶„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  cCsttƒ}|jƒ}||jtjƒtjtjkr?dS|jtj|ƒtƒrit|ƒdSt    ƒdS(N(
t GetGameWorldtGetTickt GetTickByTypeRtTYPE_Map_Tick_ReloadScripttTYPE_Map_Tick_Timet SetTickByTypet__GetPsycoIsOpent PsycoReloadt__ReloadScript(R R t    gameWorldttick((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt ReloadScriptas         
cCs½xŒtjjƒD]{\}}yXt|ƒ}d|ksCd|krIwn|dkritd|ƒwnt|ƒWqtk
rŠqqXqWddl}|jdƒt    dt
ƒƒdS(    Ns\Lib\s\DLLs\t
PyGameDatas%s Ä£¿é²»ÖضÁ!iÿÿÿÿtscriptsReload Begin : time = %s(s
PyGameData( RRtitemststrtDebugLogtreloadt    ExceptiontDataRecordPackt    DR_ReloadtLogtGetCurrentDataTimeStr(tnamet
reloadPathtpathStrR$((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRzs      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(R;R<R=(R?((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetFloatUpperÊsicCs;td|ƒ}tj|d||dƒ}|t|ƒS(Ni
i(tpowtrandomtrandintR>(tminXtmaxXtprecistmultipletran((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetFloatRanßscCsh||kr||krdStj||||ƒ}ttj|ƒƒ}|dkrd|d}n|S(Niih(R<tatan2R;tdegrees(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( tlistR<tsqrtRCtrangeR2tFiveInOtherOutt    GetAllPostcountR5tinsert( tmatrixtplayerXtplayerYtdestXtdestYtresulttdisttcostsintitxlisttylisttcurPos((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt MatrixCircle5s"    3 ((c
Csœtjtj||dƒtj||dƒƒ}d}d}|dkrj|||}|||}nt|||ƒ}t|||ƒ}    ||    fS(Nigð?gi(R<RVRCR;(
tposDistR_R`tposXtposYRbRcRdtresultXtresultY((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytPosInLineByDistOs3 c
Csœtjtj||dƒtj||dƒƒ}d}d}|dkrj|||}|||}nt|||ƒ}t|||ƒ}    ||    fS(Nigð?gi(R<RVRCR;(
RjR_R`RkRlRbRcRdRmRn((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytPosInLineByDistEx^s3 cCs;t|ƒ}tt|ƒƒ}||kr1|gS||gS(N(R;tMyRound(tnumtnum1tnum2((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRXrs
  cCs?g}x2|D]*}x!|D]}|j||fƒqWq W|S(N(R5(RfRgtposlistR?ty((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRY}s
  cCs ||dS(Nid((tvaluetpercent((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
GetPercentŒscCs-yt|ƒ}|SWntk
r(|SXdS(N(R;t
ValueError(tinputtdefValueRa((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(ttypeR;R>tisdigitt
startswithRz(tinputStrR|Ra((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytToNumDefœs+  cCsttt||ƒ|ƒƒS(N(R;tmintmax(R{tminNumtmaxNum((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(R1R2tNonethasattrtTruetgetattr(t
curCallObjtcallNametcallListt curCallName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytParseNameGetObj¸s cCs9t||ƒ}|dkrdSt|ƒtkr5dS|S(N(RRˆtcallableRŠ(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(RkRlttagXttagY((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDistìscCsAtjt||dƒt||dƒƒ}|s7|St|ƒS(Ni(R<RVRCRB(RkRlR–R—ttoIntRb((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    GetDistEx÷s-cCs@|dkrdS||ks8tjd|dƒ|kr<dSdS(Nii(RDRE(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(tsortRDRERˆ(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 IsSameCountry1scCs6||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 IsSameFamilyJs
  cCs#|jƒdtjgkrdStS(Ni(t
GetGMLevelRt Def_GM_LV_GodRŠ(t    curPlayer((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsGMWscCs|jƒdkrtStS(Ni(tGetRealPlayerIDRŠR£(R¶((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsMirrorPlayer^scCs=| s%|jƒdks%|jƒr)tSt|ƒr9tStS(s€ÊÇ·ñÕý³£¿ÉÓõij£¹æÍæ¼Ò£¬Ò»°ãÓÃÓÚÅжÏÊÇ·ñÊÇÒ»¸öÕý³£µÄÍæ¼Ò
    ¿ÉÓÃÓÚ·â°ü֪ͨÅжϡ¢»î¶¯Íæ¼ÒÅжϵÈÒ»Çнö´¦ÀíÕæÊµ³£¹æÍæ¼ÒµÄÑéÖ¤
    i(R¤tIsEmptyR£R¹RŠ(R¶((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsNormalPlayerds
% cCs,tƒ}t|ƒ}|jdƒd}|S(Ns.i(tGetCurrentTimeR R1(tcurTimet
curTimeStr((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR'us     cCs8|tjkriStj|}||kr0iS||S(N(Rtg_operationActionDict(tactNametactNumt
actNumDict((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ÿÿÿÿ(RˆtGetTemplateIDListR2(tipyDatatcfgIDtdayIndexttemplateIDListt
templateID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetTemplateID…s &cCsD|dkrdS|sdS|t|ƒkr6|dn||}|S(Niiÿÿÿÿ(RˆR2(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(
R1R;tChangeStrToDatetimeRtTYPE_Time_Format_DayR2RÍRƒtdatetimet    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¬||fS|j    ƒrt
ƒj t j ƒd}|tjdt|ƒ|ƒ}|tjdt|ƒ|ƒ}nx|jdƒr‡t
ƒj t j ƒd}|tjdt|dƒ|ƒ}|tjdt|dƒ|ƒ}n|jd    ƒrút
ƒj t jƒd}|tjdt|d
ƒ|ƒ}|tjdt|d
ƒ|ƒ}n’|jdƒrS|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ƒ}||kr8|}n||krP|}qPqŒn9|jdƒr€t|||ƒ\}}}n |}|}d|j|j|jf}d|j|j|jf}||fS( Ns%d-%d-%ds-itWtLiRÍtKtMixis|i(RÐttodayt GetStartDatet
GetEndDatetyeartmonthtdayRZR€RRtGetGameWorldDictByKeyt ShareDefinetDef_Notify_WorldKey_ServerDayRÑR;R}t Def_Notify_WorldKey_MixServerDaytweekdayR1R2RÎRRÏ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®sf  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ŠR!Rüt ActKey_ActNumR¼tGetActRelateFuncDateRýRéRêRëRÐtstrptimetTYPE_Time_FormatR;ttimetmktimet    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(RR‰RüRýtChangeTimeNumToDatetimeRR R RÐR
RÑRèRéRêRë( RÅt    startTimet returnYmdStrRRRRt startDayStrRRÓRÒ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR    Fs0 !!     / 33   
cCs tjjƒS(N(RÐRæ(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¼iscCs tjjƒS(N(RÐRæ(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetServerTimekscCstjjtjjƒƒdS(Ni(RÐt isocalendarRæ(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetWeekOfYearyscCs_|jƒjdƒd}ytjj||ƒSWn(tk
rZ}td||fƒdSXdS(Ns.is%s : %s(tstripR1RÐR
t 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&R1RÐR
R'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__GetPastTimeDeltaRˆR/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.RˆR/RÍR/(R0R1((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.RˆR/RÍR/(R0R1((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ëR;R R RR„(R taddDayst    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.pyRIýscCs;tƒ}|j|ƒ}|s-t|ƒ}n|r7|SdS(N(RHtFindGameNPCByNPCIDtFindSummerNPCByNPCID(RKtnpcMgrtfindNPC((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytFindNPCByNPCIDs    cCsgtƒ}xWt|jƒƒD]C}|j|ƒ}|jƒdkrIqn|jƒ|kr|SqWdS(Ni(RHtxrangetGetSummonNPCCounttGetSummonNPCAtR¤tGetNPCID(RKROtindextcurNPC((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRN
s    cCsstƒ}xct|j|ƒƒD]L}|j||ƒ}|jƒ}|dkrUqn||jƒkr|SqWdS(Ni(RHRRtGetNPCCountByGWIndextGetNPCByIndexByGWIndexR¤RU(t    copyMapIDRKtgameNPCManagerRVRWtcurID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytFindNPCByNPCIDExs      cCstƒj|ƒ}t|ƒS(N(RHt GetNPCByIndexRJ(tnpcIndexRL((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.pyR3scCs
tjƒS(N(R`RH(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRH;scCs
tjƒS(N(R`tGetTeamManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRaCscCs
tjƒS(N(R`tGetPlayerManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRbKscCs
tjƒS(N(R`tGetMapItemManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRcSscCs
tjƒS(N(R`tGetMapCopyPlayerManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRd[scCs
tjƒS(N(R`tGetMap(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRecscCs9tƒ}||kr|S||}|jd|ƒ}|S(Nt    DataMapID(tGetMapIDTxtInfoRþ(tmapIDt mapIDTxtInfotmapInfot    dataMapID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMapDataMapIDfs      
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    iiRfsLoad %ssg_mapIDTxtInfo=%s(
Rtg_mapIDTxtInfoRtGetServerRootPathtopent    readlinesR1R2R;R&(trootPathtmapIDTxttftlinetlineListttMapIDt
dDataMapID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRgos          
 cCs
tjƒS(N(R`tGetMail(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRx†scCs
tjƒS(N(R`t    GetScript(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRyŽscCs
tjƒS(N(R`t    GetGameFB(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRz–scCs
tjƒS(N(R`tGetAllFbNPCManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR{žscCsj|dkrdS|jƒ}|tjkrAtƒj|jƒƒS|tjkrftƒj|jƒƒS|S(N(    RˆtGetGameNPCObjTypeR¬t
gnotSummonRHtFindSummonNPCByIDR¤tgnotPett FindPetByID(t    curTagNPCtnpcObj((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRJ¦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    gotPlayerRbtGetPlayerByIndexRƒR^tgotItemRctGetPoolItemByIndexR/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‹RdtFindPlayerByIDRƒRIRRct 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(Rt GetDebugLevelRžRŸ(RœRR ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR!scGsjtjƒsdSd}d}y||}Wn||d }|d}nXtjd|||fƒdS(Niiÿÿÿÿs%s    %s    PyDebug:%s(R`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 MergeServerIDRRnR,R-tisfileR/R#t ConfigParsertreadt
has_optionR}RþR&(RqtmergeServerIniFiletmergeServerInitsectiontoption((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMergeServerID6s 
   cCs tƒjƒS(N(RtGetServerVersion(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR±QscCsttjddƒdƒdkS(Ntplatformt BattleServerii(R}t ReadChConfigtGetPyMongoConfig(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsBattleServerTscCstjddƒS(NR²t    GroupName(R´tGetServersRouteConfig(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetServerGroupNameXscCsttjddƒdƒS(NR²tGroupIDi(R}R´Rµ(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetServerGroupID\sc
Cstjdƒ}|dkrôtjƒdtƒ}tjj|ƒsXt    dd|ƒqôt
|dƒ}|j ƒ}|j ƒt |ƒ}i}xA|jƒD]3\}}t|ƒ}x|D]}    |||    <q»WqœWtjd|ƒtd|ƒn|sþ|S|j||ƒS(NtServerIDMainServerDicts\MixServerMap_%s.jsontGetMainServerIDErrorsfile can not found. %strbs¼ÓÔØ ServerIDMainServerDict=%s(Rt GetConfigExRˆRtGetServerConfigPatht GetPlatformR,R-R¨tSendGameErrorExRoRªtclosetevalRR;t SetConfigExR&Rþ(
tserverIDR¼tfilePathtfileObjtcontenttMixServerMapDicttmainServerIDStrt serverIDListt mainServerIDtsID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMainServerID`s&  
   cCstjdƒ}|j|dƒS(Nt DBPlatformNumi(R´tGetDBEvalChConfigRþ(R²tplatformNumDict((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlatformServerNumyscCstjddƒS(NR²t PlatformName(R´Rµ(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRÁ†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+R1RRÏ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(R1tDef_AccID_Split_SignR2R}(taccIDtinfoList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRܦscCs9|jƒ}|jtƒ}t|ƒdkr1dS|dS(NiRiÿÿÿÿ(RÝR1RßR2(R¶RàRá((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerServerSIDªs cCs3ttjdd|ƒdƒ}|dkr/|SdS(NR²s%sMainServerIDi(R}R´RµRˆ(t accIDPlatformRÍ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerMainServerID°s cCstjj|dƒS(NR(Rtg_dbPlayerIDMapRþ(R((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDBPlayerAccIDByID¸scCs1|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þÿÿÿ(R1Rßtjoin(t    gameAccIDRát
paInfoListt platformAccID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlatformAccIDÔs
cCs|jtƒ}|dS(Niþÿÿÿ(R1Rß(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(
R´tGetEvalChConfigtNomalDictDelPropertyRùtvaluesR/RRtNomalDictAddPropertyR!(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ùR´RûRþ(R¶RR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerChannelCodes
 cCsttjƒƒS(N(R tuuidtuuid1(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetGUID
sc
 
Cs/tƒj||||||||||    ƒ
dS(N(RtDataServer_HugeTradeRec(
t    tradeGoldt tradeSilvert tradeItemIDttradeItemCounttsenderIDt
senderGoldt senderSilvert
receiverIDt receiverGoldtreceiverSilver((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytNoteDownLargeTrades    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_GoldRec4s
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( RetCanMoveR/R¤tResetPostClearPlayerPosCountt    GetPetMgrt GetFightPett    NPCCommont
NPCControltGetMoveNearPostGetPosXtGetPosY(R¶RkRltreasont
isResetPettrolePetR#((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytResetPlayerPosEs
 0cCs|jdƒ|jdƒdS(Ni(t SetMoveCounttSetMoveDistDiff(R¶((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR [s  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 IsAtActTimefs
0cCsdS(Ni((tcurLV((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
GetReMoneyuscCs8||j|ƒtj|kr$tS|j||ƒtS(N(RRtTYPE_Player_Tick_TimeR£RRŠ(R¶tfuncKeyR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSetPlayerTickTimes 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(R2RˆRþRR5(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ÿÿÿÿ(    R2R5tcopytdeepcopyRWRDREt    enumeratet ResetRiseList( triseListt    randomNumR|RœtdataInfotlistLentdatat tempRiseListReR›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(R2R>R?(RBtdelIndext riseListLenRGt lastBaseRetetbaseRatettempListtriseInfo((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRAËs   $ c
Cs°g}x£t|ƒD]•\}}|\}}|dkr=|n|||dd}|s_|n|t||dƒ}|sƒ|n|dd|}    |j|    |fƒqW|S(NiigˆÃ@iÿÿÿÿ(R@R;R5(
t
srcPieListtplusRatet plusPieListRetrateInfoR›tinfotsrcRatetnewRatetspecRate((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlusPieListÝs ($cCs4|s
|Stjd|ddƒ}t|||ƒS(Niiÿÿÿÿ(RDREtGetResultByRiseList(trandListR|R›((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByRandomListëscCs0x)|D]!}||dkr#qn|dSW|S(Nii((RBtpointR|t    smallList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRYös
     cCs¢g}d}x_|D]W}|ds)qn||d7}|j|t|ƒdkr\|dn|dgƒqW|sx|Stjd|ddƒ}t|||ƒS(Niiiiÿÿÿÿ(R5R2RDRERY(t
weightListR|RZtweightRTR›((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByWeightLists 
7cCsmxDtt|ƒƒD]0}|dkr+qn||c||d7<qWtjd|dƒ}t|||ƒS(Niiiÿÿÿÿ(RWR2RDREtGetResultByRiseIndex(RZtisCriticalDownwardReR\((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetIndexByIndependRates  cCs"tjdtjƒ}t||ƒS(Ni(RDRERtDef_NPCMapDropRateRa(RZR›((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ÿÿÿÿ(RWR2t
isinstanceR;(RBR\RbRVtelementtcmpPoint((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRa.s
    
      cCs|S(N((tfunc((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetPsycoFuncGscCs tjdƒS(Nt PsycoSwitch(R´Rû(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRTscCshtdtƒƒg}x7tjjƒD]&}|j||jdƒdgƒq'Wttj    d|ƒdS(NsPsycoReload Begin : time = %ss.iÿÿÿÿR(
R&R'RRtkeysR5R1t
TravelFileRt
ScriptPath(RtmoduleNameListt
moduleName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR[s $cCsØxÑtj||ƒD]¼}|jdƒr/qn|jdƒd}xN|D]F\}}||krgqIntjj|ƒ}|s…qInt|ƒqIWtjj    ||d|ƒrt
||d|d|ƒqqWdS(Ns.is\( R,R0R€R1RRRþR"R-R.Rm(R RÇRoRt curModuleNamet
reloadNameRptmodule((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRmjs #cCsMt|dƒd}t|dƒdd}t|dƒd}|||fS(Nièii<(R;(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(tGetLVR´RûR£RŠ(R¶tplayerLVtminDRLV((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
IsMissonDR’s
  cCsBtjddƒrtSyt|tjddƒƒWntSXtS(Nt EncodingTexii(Rt
GetFuncCfgRŠtunicodeR£(t    inputText((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytEncodingToUnicode¡scCstjddƒS(NR~i(RR(((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
 cCsttjddƒdƒS(NtMerget IsMergeServeri(R}R´Rµ(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsCrossServerÂscCs tƒrtjddƒStjS(NR‰t CrossZoneName(R‹R´RµRtg_crossZoneName(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCrossZoneNameÆs    cCsVtƒrtƒStj\}}|s,tƒSttjƒƒ}|||}t|ƒS(N(R‹R'Rtg_crossServerTimeInfoR;R tChangeTimeNumToStr(tlastCrossServerTimetlastServerTimeR½tcrossServerTime((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCrossServerTimeStrÌs    cCs.tjj||ƒjƒ}ttj|ƒƒS(N(RÐR
RR;R R (R(R,((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeTimeStrToNumÚscCstj|tj|ƒƒS(N(R tstrftimet    localtime(ttimeNumR,((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRáscCs.tj|tj|ƒƒ}tjj||ƒS(N(R R–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(R;R R R(tdateT((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeDatetimeToNumñscCstttƒƒd tjƒS(Ni
(R•R R¼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    curDateExRF((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckTimeIsSameServerDayEx÷s2         **$       cCs5t|ƒ}tjj|ƒd}tƒ}||kS(siÅжÏÖ¸¶¨timeÖµÓëµ±Ììʱ¼ä¶Ô±ÈÊÇ·ñΪÓÎÏ·ÄÚµÄͬһÖÜ£»ÌØÊâʱ¼äµã¹ýÌìºó²ÅË㲻ͬÌì
    @return: ÊÇ·ñͬһÖÜ
    i(RRÐR$R%(RžRŸt    checkWeektcurWeek((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckTimeIsSameWeek.s     cCsO|jƒjƒ}|jƒjƒ}tjdƒ}t|jddƒƒ}|S(Nt AreaNameInfotNameExprR(RçRèt    GetAreaIDR´RûRÄRþ(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
GetAreaCrcHs cCs;x4|jƒD]&\}}|j|dƒ|||<q WdS(Ni(RRþ(tdict1tdict2R;Rw((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt AddDictValueQscCsPxI|jƒD];\}}|j|dƒ}||||tj||<q WdS(Ni(RRþRítDef_MaxRateValue(RºR»R;Rwtvalue1((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCalcAttrDictPer\s!cCs|td|ƒdS(Ni
(RC(tnumValuet    dataIndex((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDataByDigitPlaceiscCsY|dks'|dks'|tjkr+|St||ƒ}|td|ƒ||7}|S(Nii    i
(RítDef_PDictDigitCntRÂRC(RÀRÁt    dataValuet    lastTagLV((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeDataByDigitPlacers
'cCs4td|ƒ}td||ƒ}|||}|S(s½»ñȡij¸öÊýÖµÖУ¬´ÓÓÒÍù×óÊýµÚxλ¿ªÊ¼£¬½ØÍ¼nλµÃµ½µÄÊý¾Ý
    @param dataValue: Ô­Ê¼ÊýÖµ
    @param fromRight: ´ÓÓÒÍù×óÊýµÚxλ¿ªÊ¼£¬´Ó1¿ªÊ¼
    @param bits: ½ØÈ¡nλ
    @return: ÊýÖµvalue
    i
(RC(RÄt    fromRighttbitstlPowtrPowtcurValue((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetValue}scCsJtd|ƒ}td||ƒ}|||}||}||||S(síÐÞ¸Äij¸öÊýÖµ£¬´ÓÓÒÍù×óÊýµÚxλ¿ªÊ¼£¬½ØÍ¼nλµÃµ½µÄÊý¾Ý£¬Ì滻Ϊ¾ßÌåÊýÖµ
    @param dataValue: Ô­Ê¼ÊýÖµ
    @param fromRight: ´ÓÓÒÍù×óÊýµÚxλ¿ªÊ¼£¬´Ó1¿ªÊ¼
    @param bits: ½ØÈ¡nλ
    @param updValue: Ìæ»»Öµ
    @return: Ð޸ĺóµÄvalueÖµ
    i
(RC(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ÄRV((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ÄRVtval((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt SetBitValueŸs cCsJt|ƒtt|ƒƒdkr,t|ƒSt|ƒt|t|ƒƒS(Ngà?(R•R;(Rr((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRq­scCsT||kr||Sx9|jƒD]+\}}t|tƒr!||kr!|Sq!WdS(N(RRfttuple(tattrDicttfindKeyR;Rw((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(RRfRÔR2(tsrcDictRÖR|trangeKeyRw((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öRCRÂ( 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öRCRÆRüt PlayerControltNomalDictSetProperty( R¶RàRÛRwRÜ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    (R;R<R=R>RWRÔRü(    R¶RàtmaxLenRÜRáRÝtkeyCntReRâ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytResetDictAllBitValue    s 'cCsG||||g}t|ƒ}tƒjdddd|t|ƒƒdS(NitSendBroadcastMergeClient(R RbtGameServer_QueryPlayerResultR2(toperTypeRhRDtisRepeattmsgList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSendBroadcastMerge    s %cCsA||g}t|ƒ}tƒj|||d|t|ƒƒdS(NtSendMergerChildMsg(R RbRîR2(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(R RbRîR2R!(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(R RbRîR2R!(RúRôtserverGroupIDListRõRöR÷Rñ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRû.    s%cCsp||kr||St|jƒƒ}|dkrZx%|D]}||kr9||Sq9Wn|rl||dSdS(Niiÿÿÿÿ(tsortedRlRˆ(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(RRR2R£RRŠ(R¶ttickTypeR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckPlayerTickH    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Ÿ†(    RzR´RûR@R2RRöRtDef_PDict_SplitExpLVCnt(R¶tserverLVt clientLVRuletTransRealLVListtTransNewLvListtSplitLVExpDictttransCntRetreallvtcurTransRealLVtcurNewLVtnextTransRealLVtcurTransAddSplitLVtcurTransTotalSplitLVt splitRealLVt splitLVListt splitLVExCnttshowLV((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetClientLVR    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(R RbRîR2(RtrecTypet    valueListtuserDatat
notifyTypetmsgStr((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRw    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(R RbRîR2(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(R RbRîR2(RRRR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR"    s%cCsBt||jƒƒ|jtjƒjtƒƒ}|j|ƒdS(sתÂëºóÔÙ·¢DebugAnswerN(R!RR„RíR…R†RƒR›(R¶ttext((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR››    s cCs<t||ƒtƒjƒr+t|ƒ‚n td|ƒdS(NtMapServerRaiseException(R/RR¡R#t SendGameError(terrorMsgR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytRaiseException§    s
  cCsPtd||f|ƒt||ƒtƒjƒrLtd||fƒ‚ndS(NsSendGameErrorEx: %s -> %ss%s -> %s(R/R%RR¡R#(terrTypetmsgInfoR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR°    s
 cCsœtjddƒ}tjddƒ}tjddƒ}|d|||tƒjƒf}|ry|dtj|ƒ}ntƒjd    d    d    d    d
|ƒd S( sx ÏòÔËά·¢ËÍÓʼþ£¬ÓÃÓÚÐèÒª½ô¼±´¦ÀíµÄÐÅÏ¢
    @param errType: ´íÎóÀàÐÍ£¬×Ô¶¨Òå¼´¿É
    @param msgInfo: ´íÎóÐÅÏ¢£¬¿ÉÑ¡
    t EventReportt OpenStateUrlR²Rºtconnectt USER_DB_NAMEs*?Type=%s&groupID=%s&userDBName=%s&mapID=%ss &MsgInfo=%sRiN(R´RµRetGetMapIDturllibt
quote_plusRtEventReport_EventReport(R(R)tgetUrltgroupIDt
userDBName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR%·    s#(ÑR¬RžR´RRDR<RRÐRR,R·RítdecimalRR R>R©RR/RòRtsetrecursionlimittServerRootPathR§RRRRRRARBRKRTRiRoRpRXRYRyR}R‚R‡RR’R”R˜RŠRšR½RR¢R¨R«R©R³R·R¹R»R'RÃRÊRËRáRúRR£R    R¼R#R%R R+R-R2R3R4R.R:R?RERGRIRQRNR]R^R`RšR™tIPY_ItemFactoryR—RRHRaRbRcRdReRlRgRxRyRzR{RJR‰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éRõRøRùRRRRRR+R R/R1R4R=RˆRIRARXR[RYR`RcReRaRjRRRmRxR}R‚RƒR‡RˆR‹RŽR”R•RRRÎRšR›R«R®R¶R¹R¼R¿RÂRÆRÌRÐRÑRÓRqR×RÚRßRRéRìRòRøRùRûRRRRRR"R›R'RÂR%(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt<module>'s–                                    "                  H                                                                                                                          M    K #                                                                     
                                                                                                                                                                                                                                
        '              
                     
                                            7                                                                 
 
     
    %