hxp
2025-12-20 c32f8d566f4dd0800a2836058aef06b6461df668
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
7<ic @s"ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    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?„ZTejƒZUejVƒZWejXƒZYd@„ZZdA„Z[dB„Z\dC„Z]dD„Z^dE„Z_dF„Z`dG„ZadH„ZbdI„ZcdJ„ZddK„ZedL„ZfdM„ZgdN„ZhdO„ZidP„ZjdQ„ZkdR„ZVdS„ZldddT„ZmdddU„ZndddV„ZodW„ZpdX„ZqdY„ZrdZ„Zsd[„Ztd\„Zud]„Zvd^„Zwd_„Zxd`„ZydaZzdb„Z{dc„Z|dd„Z}de„Z~df„Zdg„Z€dh„Zdi„Z‚dj„Zƒdk„Z„dlZ…dm„Z†dn„Z‡do„Zˆdddddddddddp„
Z‰dq„ZŠdeAdr„Z‹ds„ZŒdt„Zdu„ZŽdv„Zdw„Zdddx„Z’dy„Z“dz„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ŠqqXqWtdtƒƒdS(Ns\Lib\s\DLLs\t
PyGameDatas%s Ä£¿é²»ÖضÁ!sReload Begin : time = %s(s
PyGameData(    RRtitemststrtDebugLogtreloadt    ExceptiontLogtGetCurrentDataTimeStr(tnamet
reloadPathtpathStr((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(R8R9R:(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(R9tatan2R8tdegrees(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( tlistR9tsqrtR@trangeR/tFiveInOtherOutt    GetAllPostcountR2tinsert( tmatrixtplayerXtplayerYtdestXtdestYtresulttdisttcostsintitxlisttylisttcurPos((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt MatrixCircle3s"    3 ((c
Csœtjtj||dƒtj||dƒƒ}d}d}|dkrj|||}|||}nt|||ƒ}t|||ƒ}    ||    fS(Nigð?gi(R9RSR@R8(
tposDistR\R]tposXtposYR_R`RatresultXtresultY((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytPosInLineByDistMs3 c
Csœtjtj||dƒtj||dƒƒ}d}d}|dkrj|||}|||}nt|||ƒ}t|||ƒ}    ||    fS(Nigð?gi(R9RSR@R8(
RgR\R]RhRiR_R`RaRjRk((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytPosInLineByDistEx\s3 cCs;t|ƒ}tt|ƒƒ}||kr1|gS||gS(N(R8tMyRound(tnumtnum1tnum2((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRUps
  cCs?g}x2|D]*}x!|D]}|j||fƒqWq W|S(N(R2(RcRdtposlistR<ty((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRV{s
  cCs ||dS(Nid((tvaluetpercent((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
GetPercentŠscCs-yt|ƒ}|SWntk
r(|SXdS(N(R8t
ValueError(tinputtdefValueR^((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(ttypeR8R;tisdigitt
startswithRw(tinputStrRyR^((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytToNumDefšs+  cCsttt||ƒ|ƒƒS(N(R8tmintmax(RxtminNumtmaxNum((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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(RhRittagXttagY((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDistêscCsAtjt||dƒt||dƒƒ}|s7|St|ƒS(Ni(R9RSR@R?(RhRiR“R”ttoIntR_((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    GetDistExõs-cCs@|dkrdS||ks8tjd|dƒ|kr<dSdS(Nii(RARB(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(tsortRARBR…(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    IsSameObjs
0cCst|jƒ|jƒƒS(N(tIsSameCountry_Namet
GetCountry(R£R¤((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsSameCountry/scCs6||krtS|tjks.|tjkr2tStS(N(R‡t IPY_GameWorldttcNewR (tsrcNametdesName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¦8s
 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 IsSameFamilyHs
  cCs#|jƒdtjgkrdStS(Ni(t
GetGMLevelRt Def_GM_LV_GodR‡(t    curPlayer((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsGMUscCs|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.pytIsNormalPlayerbs
% cCs,tƒ}t|ƒ}|jdƒd}|S(Ns.i(tGetCurrentTimeRR.(tcurTimet
curTimeStr((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR$ss     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…tGetTemplateIDListR/(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…R/(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.R8tChangeStrToDatetimeRtTYPE_Time_Format_DayR/RÊ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
GetEndDatetyeartmonthtdayRWR}R|RtGetGameWorldDictByKeyt ShareDefinetDef_Notify_WorldKey_ServerDayRÎR8Rzt Def_Notify_WorldKey_MixServerDaytweekdayR.R/RË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_FormatR8ttimetmktimet    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 returnYmdStrRRRRt startDayStrRRÐRÏ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRDs0 !!     / 33   
cCs tjjƒS(N(RÍRã(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¹gscCs tjjƒS(N(RÍRã(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetServerTimeiscCstjjtjjƒƒdS(Ni(RÍt isocalendarRã(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetWeekOfYearwscCs_|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@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*(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)R…R,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èR8R    R
R R(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.pyRDëscCs;tƒ}|j|ƒ}|s-t|ƒ}n|r7|SdS(N(RCtFindGameNPCByNPCIDtFindSummerNPCByNPCID(RFtnpcMgrtfindNPC((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(RCtxrangetGetSummonNPCCounttGetSummonNPCAtR¡tGetNPCID(RFRJtindextcurNPC((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRIøs    cCsstƒ}xct|j|ƒƒD]L}|j||ƒ}|jƒ}|dkrUqn||jƒkr|SqWdS(Ni(RCRMtGetNPCCountByGWIndextGetNPCByIndexByGWIndexR¡RP(t    copyMapIDRFtgameNPCManagerRQRRtcurID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytFindNPCByNPCIDExs      cCstƒj|ƒ}t|ƒS(N(RCt GetNPCByIndexRE(tnpcIndexRG((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRYscCstS(N(t __GameWorld(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR!scCs
tjƒS(N(R[RC(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRC)scCs
tjƒS(N(R[tGetTeamManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR\1scCs
tjƒS(N(R[tGetPlayerManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR]9scCs
tjƒS(N(R[tGetMapItemManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR^AscCs
tjƒS(N(R[tGetMapCopyPlayerManager(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR_IscCs
tjƒS(N(R[tGetMap(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR`QscCs9tƒ}||kr|S||}|jd|ƒ}|S(Nt    DataMapID(tGetMapIDTxtInfoRû(tmapIDt mapIDTxtInfotmapInfot    dataMapID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMapDataMapIDTs      
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/R8R#(trootPathtmapIDTxttftlinetlineListttMapIDt
dDataMapID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRb]s          
 cCs
tjƒS(N(R[tGetMail(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRstscCs
tjƒS(N(R[t    GetScript(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRt|scCs
tjƒS(N(R[t    GetGameFB(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRu„scCs
tjƒS(N(R[tGetAllFbNPCManager(((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(    R…tGetGameNPCObjTypeR©t
gnotSummonRCtFindSummonNPCByIDR¡tgnotPett FindPetByID(t    curTagNPCtnpcObj((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRE”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~RYtgotItemR^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~RDRˆ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(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
DebugLogExs 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,R"t ConfigParsertreadt
has_optionRzRûR#(RltmergeServerIniFiletmergeServerInitsectiontoption((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMergeServerID$s 
   cCs tƒjƒS(N(RtGetServerVersion(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¬?scCsttjddƒdƒdkS(Ntplatformt BattleServerii(Rzt ReadChConfigtGetPyMongoConfig(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsBattleServerBscCsttjddƒdƒS(NR­tGroupIDi(RzR¯R°(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetServerGroupIDFsc
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(Rýt GetConfigExR…RtGetServerConfigPatht GetPlatformR)R*R£tSendGameErrorExRjR¥tclosetevalRR8t SetConfigExR#Rû(
tserverIDR´tfilePathtfileObjtcontenttMixServerMapDicttmainServerIDStrt serverIDListt mainServerIDtsID((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMainServerIDJs&  
   cCstjdƒ}|j|dƒS(Nt DBPlatformNumi(R¯tGetDBEvalChConfigRû(R­tplatformNumDict((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlatformServerNumcscCstjddƒS(NR­t PlatformName(R¯R°(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¹pscCs
|dkS(Nttesttyun(RÍRÎ((R­((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsTestPlatformsscCs=|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/Rz(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 cCs3ttjdd|ƒdƒ}|dkr/|SdS(NR­s%sMainServerIDi(RzR¯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þÿÿÿ(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(
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³RúRø((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(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_GoldRecs
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³RhRitreasont
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.pyREs  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 IsAtActTimePs
0cCsdS(Ni((tcurLV((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
GetReMoney_scCs8||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.pytSetPlayerTickTimeis 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/R…RûRR2(titemListtitemDicttitemInfotitemIDt    itemCountt isAuctionItemtkeyt    mItemList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt MergeItemListqs"         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/R2tcopytdeepcopyRTRARBt    enumeratet ResetRiseList( triseListt    randomNumRyR™tdataInfotlistLentdatat tempRiseListRbR˜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/R6R7(R:tdelIndext riseListLenR?t lastBaseRetetbaseRatettempListtriseInfo((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR9µs   $ c
Cs°g}x£t|ƒD]•\}}|\}}|dkr=|n|||dd}|s_|n|t||dƒ}|sƒ|n|dd|}    |j|    |fƒqW|S(NiigˆÃ@iÿÿÿÿ(R8R8R2(
t
srcPieListtplusRatet plusPieListRbtrateInfoR˜tinfotsrcRatetnewRatetspecRate((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlusPieListÇs ($cCs4|s
|Stjd|ddƒ}t|||ƒS(Niiÿÿÿÿ(RARBtGetResultByRiseList(trandListRyR˜((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByRandomListÕscCs0x)|D]!}||dkr#qn|dSW|S(Nii((R:tpointRyt    smallList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRQàs
     cCs¢g}d}x_|D]W}|ds)qn||d7}|j|t|ƒdkr\|dn|dgƒqW|sx|Stjd|ddƒ}t|||ƒS(Niiiiÿÿÿÿ(R2R/RARBRQ(t
weightListRyRRtweightRLR˜((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ÿÿÿÿ(RTR/RARBtGetResultByRiseIndex(RRtisCriticalDownwardRbRT((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetIndexByIndependRateþs  cCs"tjdtjƒ}t||ƒS(Ni(RARBRtDef_NPCMapDropRateRY(RRR˜((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByRandomIndexscCs~xwtdt|ƒƒD]`}||}t|tƒr>|}n
|d}|rc||kruqqun||kruqn|SWdS(Niiÿÿÿÿ(RTR/t
isinstanceR8(R:RTRZRQtelementtcmpPoint((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRYs
    
      cCs|S(N((tfunc((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetPsycoFunc1scCs tjdƒS(Nt PsycoSwitch(R¯Ró(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR>scCshtdtƒƒg}x7tjjƒD]&}|j||jdƒdgƒq'Wttj    d|ƒdS(NsPsycoReload Begin : time = %ss.iÿÿÿÿR(
R#R$RRtkeysR2R.t
TravelFileRt
ScriptPath(RtmoduleNameListt
moduleName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyREs $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-R}R.RRRûR!R*R+Re(R R¿RgRt curModuleNamet
reloadNameRhtmodule((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyReTs #cCsMt|dƒd}t|dƒdd}t|dƒd}|||fS(Nièii<(R8(t    inputTimet curTimeHourt curTimeMinutet curTimeSecond((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeInputTimerscCs/|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(Rýt
GetFuncCfgR‡tunicodeR (t    inputText((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytEncodingToUnicode‹scCstjddƒS(NRvi(RýRw(((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{(Ry((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}(Ry((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    CodeToGbk¤s
 cCsttjddƒdƒS(NtMerget IsMergeServeri(RzR¯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_crossServerTimeInfoR8R    tChangeTimeNumToStr(tlastCrossServerTimetlastServerTimeRºtcrossServerTime((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCrossServerTimeStr¶s    cCs.tjj||ƒjƒ}ttj|ƒƒS(N(RÍRR R8R    R
(R%t
timeFormat((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(R8R    R
R (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    curDateExRA((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.pytCheckTimeIsSameWeeks     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
GetAreaCrc2s cCs;x4|jƒD]&\}}|j|dƒ|||<q WdS(Ni(RRû(tdict1tdict2R3Rt((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt AddDictValue;scCsPxI|jƒD];\}}|j|dƒ}||||tj||<q WdS(Ni(RRûRêtDef_MaxRateValue(R³R´R3Rttvalue1((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCalcAttrDictPerFs!cCs|td|ƒdS(Ni
(R@(tnumValuet    dataIndex((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDataByDigitPlaceSscCsY|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.pytChangeDataByDigitPlace\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.pytGetValuegscCsJtd|ƒ}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.pytSetValuess
 
cCs|d|>@rdSdS(s¸ µÃµ½Ä³¸ö×Ö½ÚÖµÖÐijһλ(Bit)µÄÖµ
    @param dataValue: ´ýȡֵµÄ×Ö½ÚÖµ
    @param index: ´ý¶ÁȡλµÄÐòºÅ£¬´ÓÓÒÏò×ó0¿ªÊ¼£¬0-7Ϊһ¸öÍêÕû×Ö½ÚµÄ8¸öλ
    @return: ·µ»Ø¶ÁÈ¡¸ÃλµÄÖµ£¬0»ò1
    ii((R½RQ((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½RQtval((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt SetBitValue‰s cCsJt|ƒtt|ƒƒdkr,t|ƒSt|ƒt|t|ƒƒS(Ngà?(R’R8(Ro((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRn—scCsT||kr||Sx9|jƒD]+\}}t|tƒr!||kr!|Sq!WdS(N(RR^ttuple(tattrDicttfindKeyR3Rt((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ÏRytrangeKeyRt((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ÔRtRÕ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    (R8R9R:R;RTRÍRô(    R³RÙtmaxLenRÕRÚRÖtkeyCntRbRÛ((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytResetDictAllBitValueòs 'cCsG||||g}t|ƒ}tƒjdddd|t|ƒƒdS(NitSendBroadcastMergeClient(RR]tGameServer_QueryPlayerResultR/(toperTypeRcR<tisRepeattmsgList((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSendBroadcastMerge    s %cCsA||g}t|ƒ}tƒj|||d|t|ƒƒdS(NtSendMergerChildMsg(RR]RçR/(RètdataMsgt srcPlayerIDt    queryTypetqueryIDRê((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt!SendMergerChildToCenterStringData
    s
  cCsOt||gƒ}tƒj|||d|t|ƒƒtd||fƒdS(NtSendMsgToCrossServers·¢ËÍ¿ç·þÐÅÏ¢: %s, %s(RR]RçR/R (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ô    s%cCsp||kr||St|jƒƒ}|dkrZx%|D]}||kr9||Sq9Wn|rl||dSdS(Niiÿÿÿÿ(tsortedRdR…(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(RRR*R RR‡(R³ttickTypeR((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckPlayerTick2    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Ÿ†(    RrR¯RóR8R/RRîRtDef_PDict_SplitExpLVCnt(R³tserverLVt clientLVRuletTransRealLVListtTransNewLvListtSplitLVExpDictttransCntRbtreallvtcurTransRealLVtcurNewLVtnextTransRealLVtcurTransAddSplitLVtcurTransTotalSplitLVt splitRealLVt splitLVListt splitLVExCnttshowLV((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetClientLV<    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.pyRa    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.pyRm    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.pyRz    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,RRRœ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°R`tGetMapIDturllibt
quote_plusRtEventReport_EventReport(R!R"tgetUrltgroupIDt
userDBName((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¡    s#(ÏR©R™R¯RýRAR9RRÍRR)R°RêtdecimalRR    R6R¤RR(RêRþtsetrecursionlimittServerRootPathR¢RRRRRR>R?RHRQRfRlRmRURVRvRzRR„RRR‘R•R‡R—R¶RšRŸR¥R¨R¦R°R´R¶R¸R$RÀRÇRÈRÞR÷RR RR¹R R"RR(R-R.R/R)R5R:R@RBRDRLRIRXRYR[R•R”tIPY_ItemFactoryR’RRCR\R]R^R_R`RgRbRsRtRuRvRER„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üRýRR RR#RR'R)R,R5R…RAR9RPRSRQRXR[R]RYRbRRReRpRuRzR{RR€RƒR†RŒRŽRˆRRËR“R”R¤R§R¯R²RµR¸R»R¿RÅRÉRÊRÌRnRÐRÓRØRRâRåRëRñRòRôRüRþRRRRR–R RºR(((saD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt<module>'s’                                    "                  H                                                                                                                          M    K #                                                                 
                                                                                                                                                                                                                            
        '              
                     
                                            7                                                                 
 
     
    %