xdh
2019-02-21 607215ae749819ad901b5f76ae60e9e3a3397be5
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
¤aV\c @s¢ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl mZddlZddlZddlZddlZddlZejdƒdZdad„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd d„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%dd„Z&d„Z'd„Z(d„Z)d„Z*d„Z+d„Z,e j-d„Z.d„Z/d„Z0d „Z1d!„Z2d"„Z3d#„Z4d$„Z5d%„Z6d&„Z7ej8d'„Z9d(„Z:d)„Z;d*„Z<d+„Z=d,„Z>d-„Z?d.„Z@d/„ZAd0„ZBd1„ZCd2„ZDejƒZEejFƒZGejHƒZId3„ZJd4„ZKd5„ZLd6„ZMd7„ZNd8„ZOd9„ZPd:„ZQd;„ZRd<„ZSd=„ZTd>„ZUd?„ZVd@„ZWdA„ZXdB„ZYdC„ZFdD„ZZdddE„Z[dddF„Z\dddG„Z]dH„Z^dI„Z_dJ„Z`dK„ZadL„ZbdM„ZcdN„ZddO„ZedPZfdQ„ZgdR„ZhdS„ZidT„ZjdU„ZkdV„ZldW„ZmdXZndY„ZodZ„Zpddddddddddd[„
Zqd\„Zrdesd]„Ztd^„Zud_„Zvd`„Zwda„Zxdddb„Zzdc„Z{dd„Z|dde„Z}ddf„Z~dg„Ze€dh„Zdi„Z‚e€dj„Zƒdk„Z„dl„Z…dm„Z†dn„Z‡do„Zˆdp„Z‰dq„ZŠdr„Z‹ds„ZŒdt„Zdu„ZŽej8dv„Zej8dw„Zej8dx„Z‘dy„Z’dz„Z“d{„Z”d|„Z•d}„Z–d~„Z—d„Z˜d€„Z™d„Zšdd‚„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¥dddŽ„Z¦ddd„Z§d„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((sbE:\SnxxServerCode\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((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt ReloadScriptas         
cCszxbtjjƒD]Q\}}y.|dkr?td|ƒwnt|ƒWqtk
r`qqXqWtdtƒƒdS(Nt
PyGameDatas%s Ä£¿é²»ÖضÁ!sReload Begin : time = %s(s
PyGameData(RRtitemstDebugLogtreloadt    ExceptiontLogtGetCurrentDataTimeStr(tnamet
reloadPath((sbE:\SnxxServerCode\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((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRs   cCs'|}|dkr#|d|}n|S(NRs.((R RtsysModulesPath((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¯s cCsttj|t|ƒƒƒS(N(tinttmathtceiltfloat(txtdiv((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetIntUpper¼scCsttj|ƒƒS(N(R6R7R8(R:((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetFloatUpperÄsicCs;td|ƒ}tj|d||dƒ}|t|ƒS(Ni
i(tpowtrandomtrandintR9(tminXtmaxXtprecistmultipletran((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetFloatRanÙscCsh||kr||krdStj||||ƒ}ttj|ƒƒ}|dkrd|d}n|S(Niih(R7tatan2R6tdegrees(tStartXtStartYtEndXtEndYtradtth((sbE:\SnxxServerCode\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( tlistR7tsqrtR>trangeR-tFiveInOtherOutt    GetAllPostcountR0tinsert( tmatrixtplayerXtplayerYtdestXtdestYtresulttdisttcostsintitxlisttylisttcurPos((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt MatrixCircle/s"    3 ((c
Csœtjtj||dƒtj||dƒƒ}d}d}|dkrj|||}|||}nt|||ƒ}t|||ƒ}    ||    fS(Nigð?gi(R7RQR>R6(
tposDistRZR[tposXtposYR]R^R_tresultXtresultY((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytPosInLineByDistIs3 c
Csœtjtj||dƒtj||dƒƒ}d}d}|dkrj|||}|||}nt|||ƒ}t|||ƒ}    ||    fS(Nigð?gi(R7RQR>R6(
ReRZR[RfRgR]R^R_RhRi((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytPosInLineByDistExXs3 cCs;t|ƒ}tt|ƒƒ}||kr1|gS||gS(N(R6tMyRound(tnumtnum1tnum2((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRSls
  cCs?g}x2|D]*}x!|D]}|j||fƒqWq W|S(N(R0(RaRbtposlistR:ty((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRTws
  cCs ||dS(Nid((tvaluetpercent((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
GetPercent†scCs-yt|ƒ}|SWntk
r(|SXdS(N(R6t
ValueError(tinputtdefValueR\((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytToIntDefs
  cCsttt||ƒ|ƒƒS(N(R6tmintmax(RvtminNumtmaxNum((sbE:\SnxxServerCode\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((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytParseNameGetObj¥s cCs9t||ƒ}|dkrdSt|ƒtkr5dS|S(N(R†R~tcallableR€(R‚Rƒ((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetExecFunc¹s  cCstS(N(R€(tcurItem((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckItemIsMaxEndureÉscCs!tt||ƒt||ƒƒS(N(Rztabs(RfRgttagXttagY((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDistÙscCs1ttjt||dƒt||dƒƒƒS(Ni(R=R7RQR>(RfRgRŒR((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    GetDistExäscCs$tjd|dƒ|kr dSdS(Nii(R?R@(tratetmaxRate((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    CanHappeníscCsH|jƒtjd|dƒ}x!|D]}||kr?q'n|SWdS(Nii(tsortR?R@R~(trateListR‘t    ranNumbertnumber((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytWhichCanHappenøs
  cCsJ| s| rtS|jƒ|jƒkrF|jƒ|jƒkrFtStS(N(tFalsetGetIDtGetGameObjTypeR€(tsrcObjtdesObj((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    IsSameObj    s
0cCst|jƒ|jƒƒS(N(tIsSameCountry_Namet
GetCountry(R›Rœ((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsSameCountryscCs6||krtS|tjks.|tjkr2tStS(N(R€t IPY_GameWorldttcNewR˜(tsrcNametdesName((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRž"s
 cCs>|jƒ}|jƒ}|dks0|dkr4tS||kS(Ni(t GetFamilyIDR˜(R›Rœt    srcFamilyt    desFamily((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsSameFamily2s
  cCs#|jƒdtjgkrdStS(Ni(t
GetGMLevelRt Def_GM_LV_GodR€(t    curPlayer((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytIsGM?scCs,tƒ}t|ƒ}|jdƒd}|S(Ns.i(tGetCurrentTimetstrR,(tcurTimet
curTimeStr((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR#Ks     cCs_|jƒs|St|ƒ}tjjƒ}|tjd||ƒ}d|j|j|jfS(s°»ñÈ¡ÔËÓª»î¶¯¶ÔÓ¦ÈÕÆÚ£¬´æÊý×Ö´ú±í¿ª·þÌìÅäÖã¬ÐèҪת»¯Îª¶ÔÓ¦µÄÈÕÆÚ
    @param dateInfo: ÔËÓª»î¶¯±íÅäÖõÄÈÕÆÚÐÅÏ¢, Èç¹ûÊÇ´¿Êý×Ö´ú±í¿ª·þÌì
    @param openServerDay: µ±Ç°¿ª·þÌì
    tdayss%d-%d-%d(tisdigitR6tdatetimettodayt    timedeltatyeartmonthtday(tdateInfot openServerDaytactionServerDayt curDateTimetactionDateTime((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetOperationActionDateStrSs   cCs tjjƒS(N(R³R´(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR­cscCs_|jƒjdƒd}ytjj||ƒSWn(tk
rZ}td||fƒdSXdS(Ns.is%s : %s(tstripR,R³tstrptimet BaseExceptionR*(ttimeStrt    timeFomatte((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDateTimeByStrvscCs@t|ƒ}|dkr*td|ƒdS|jd|jdS(Ns GetPastHour Err dateTimeStr = %siii(t__GetPastTimeDeltaR~R*R±tseconds(t dateTimeStrt pastTimeDelta((sbE:\SnxxServerCode\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É((sbE:\SnxxServerCode\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É((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPastSeconds s
  cCs9tƒ}t|ƒ}|dks-|dkr1dS||S(N(R­RÅR~(tcompareTimeStrt curDataTimetcompareDataTime((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRÆ®s
     cCs$||}|jdd|jdS(Nii<(R±RÇ(R¯ttagTimet    diff_Time((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDiff_Minute¾s
cCsqt|ƒ}tj|j|j|jdddƒ}t|ƒ}tj|j|j|jdddƒ}||jS(Ni(tChangeTimeNumToDatetimeR³R¶R·R¸R±(ttimeAttimeBt    dateTimeAt    dateTimeB((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetDiff_DayÃs
 ' 'cCstƒtjd|ƒS(NR±(R­R³Rµ(tdiffDays((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDatetimeByDiffDaysÐscCstƒj|ƒ}t|ƒS(N(t GetNPCManagert FindNPCByIDt__GetSummonTagNPC(tnpcIDtcurTag((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRÜ×scCs;tƒ}|j|ƒ}|s-t|ƒ}n|r7|SdS(N(RÛtFindGameNPCByNPCIDtFindSummerNPCByNPCID(RÞtnpcMgrtfindNPC((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytFindNPCByNPCIDÛs    cCsgtƒ}xWt|jƒƒD]C}|j|ƒ}|jƒdkrIqn|jƒ|kr|SqWdS(Ni(RÛtxrangetGetSummonNPCCounttGetSummonNPCAtR™tGetNPCID(RÞRâtindextcurNPC((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRáäs    cCstƒj|ƒ}t|ƒS(N(RÛt GetNPCByIndexRÝ(tnpcIndexRß((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRëóscCstS(N(t __GameWorld(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRscCs
tjƒS(N(RíRÛ(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRÛ
scCs
tjƒS(N(RítGetTeamManager(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRîscCs
tjƒS(N(RítGetPlayerManager(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRïscCs
tjƒS(N(RítGetMapItemManager(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRð"scCs
tjƒS(N(RítGetMapCopyPlayerManager(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRñ*scCs
tjƒS(N(RítGetMap(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRò2scCs
tjƒS(N(RítGetMail(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRó:scCs
tjƒS(N(Rít    GetScript(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRôBscCs
tjƒS(N(Rít    GetGameFB(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRõJscCs
tjƒS(N(RítGetAllFbNPCManager(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRöRscCs|dkrdS|jƒ}|tjkrAtƒj|jƒƒS|tjkrftƒj|jƒƒS|tj    kr‹tƒj
|jƒƒS|S(N( R~tGetGameNPCObjTypeR¡t
gnotSummonRÛtFindSummonNPCByIDR™t    gnotTruckt FindTruckByIDtgnotPett FindPetByID(t    curTagNPCtnpcObj((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRÝZs  cCsA|jƒtjkr=|jƒtjtjtjgkr=tSdS(N(RšR¡tgotNPCtGetTypetntWalltntDeert ntDefenceMaxR€(tcurObj((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetNPC_Is_Gatens9cCs‡|jƒ}|jƒ}|tjkr7tƒj|ƒS|tjkrPt|ƒS|tjkrot    ƒj
|ƒSt d||fƒdS(Ns*»ñµÃobjÀàʧ°Ü objType = %s , objIndex = %s( RštGetIndexR¡t    gotPlayerRïtGetPlayerByIndexRRëtgotItemRðtGetPoolItemByIndexR*R~(tobjtobjTypetobjIndex((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetObjDetailys  
cCs[|tjkrtƒj|ƒS|tjkr8t|ƒS|tjkrWtƒj|ƒSdS(N(
R¡RRñtFindPlayerByIDRRÜR
Rðt GetItemByIDR~(tobjIDR ((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetObjŽs
cCstS(N(t ItemFactory(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetItemFactoryŸscCstS(N(tGameData(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetGameData§scCs*|jƒtjkrdSt||ƒdS(N(R©RRªt DebugAnswer(R«tmsg((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGodLog°s cCstjd|||fƒdS(Ns%s    %s    %s(tLogUItMsg(RtplayerIDtpar((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR"¾scCstjd|||fƒdS(Ns%s    %s    ###Error:%s(RR(RRR((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR*ÉscCs1tƒjƒsdStjd|||fƒdS(Ns%s    %s    PyDebug:%s(Rt GetDebugLevelRR(RRR((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRÒscCsÎ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 MergeServerIDRtGetServerRootPathR'R(tisfileR*R!t ConfigParsertreadt
has_optionRxtgetR"(trootPathtmergeServerIniFiletmergeServerInitsectiontoption((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetMergeServerIDÝs 
   cCs tƒjƒS(N(RtGetServerVersion(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR/øscCsttjddƒdƒS(NtplatformtGroupIDi(Rxt ReadChConfigtGetPyMongoConfig(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetServerGroupIDûscCstjdƒ}|j|dƒS(Nt DBPlatformNumi(R2tGetDBEvalChConfigR((R0tplatformNumDict((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlatformServerNumÿscCstjddƒS(NR0t PlatformName(R2R3(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetPlatform scCsttƒddƒS(Nii(Rxt GetServerSID(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetServerIDscCstjddƒS(NR0R!(R2R3(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR;scCs=|jƒ}tƒt|jdƒdtjƒ}|jdS(Ns ii(tGetCreateRoleTimeR­RÅR,RtTYPE_Time_Format_DayR±(R«tcreateRoleTimetdiffTime((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCreateRoleDayss &s@cCsC|jƒ}|jtƒ}t|ƒdkr1dSt|ddƒS(Niiiÿÿÿÿi(tGetAccIDR,tDef_AccID_Split_SignR-R6(R«taccIDtinfoList((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerServerID%s cCs9|jƒ}|jtƒ}t|ƒdkr1dS|dS(NiRiÿÿÿÿ(RBR,RCR-(R«RDRE((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerServerSID*s cCs6ttjdd|ƒdƒ}|dkr/|StƒS(NR0s%sMainServerID(RxR2R3R~R<(t accIDPlatformt mainServerID((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerMainServerID0s cCs|jƒjƒS(N(tGetAccountDatat GetOperator(R«((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerPlatformJscCs,|jtƒ}|d }tj|ƒ}|S(Niþÿÿÿ(R,RCtjoin(t    gameAccIDREt
paInfoListt platformAccID((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlatformAccIDNs
cCs-tj|jƒ|jƒjƒdƒjƒS(Ntmobile(tmd5RBRKtGetLastLoginTimet    hexdigest(R«((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetSessionIDTscCs|jtjƒS(N(tNomalDictGetPropertyRtDef_Player_Dict_Account_Type(R«((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetAccountTypeWstPDict_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(
R2tGetEvalChConfigtNomalDictDelPropertyR[tvaluesR*t GetPlayerIDRtNomalDictAddPropertyR(R«t channelCodetChannelCodeDicttcodeListtcodeNumtcode((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSetPlayerChannelCode_s    cCs>|jtƒ}|dkrdStjdƒ}|j|dƒS(NiRR\(RXR[R2R]R((R«ReRc((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlayerChannelCodexs
 c
 
Cs/tƒj||||||||||    ƒ
dS(N(RtDataServer_HugeTradeRec(
t    tradeGoldt tradeSilvert tradeItemIDttradeItemCounttsenderIDt
senderGoldt senderSilvert
receiverIDt receiverGoldtreceiverSilver((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytNoteDownLargeTradeŽs    cCsZ|tjkr+|j||||dƒn+|tjkrV|j|||d|ƒndS(Ni(R¡tTYPE_Price_Gold_MoneytInterface_GoldRectTYPE_Price_Gold_Paper(R«ttypeIDt    typeCountttypeNamet    moneyTypet
moneyCount((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytLogin_Interface_GoldRec¨s
cCsÇtƒj||ƒs6td||f|jƒƒdS|j|||ƒt|ƒ|rÃ|jƒjƒ}|rÃddl}|j    |ƒj
|j ƒ|j ƒdƒ\}}|j||ƒqÃndS(Ns5ResetPlayerPos ³¢ÊÔÒÆ¶¯µ½Õϰ­µã, posX = %s, posY = %siÿÿÿÿi( RòtCanMoveR*R™tResetPostClearPlayerPosCountt    GetPetMgrt GetFightPett    NPCCommont
NPCControltGetMoveNearPostGetPosXtGetPosY(R«RfRgtreasont
isResetPettrolePetRƒ((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytResetPlayerPos¹s
 0cCs|jdƒ|jdƒdS(Ni(t SetMoveCounttSetMoveDistDiff(R«((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR€Ïs  cCsB|s
tSt|dƒ|ko5t|dƒknr>tSdS(Nii(R€RÅ(R¯tactSect((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsAtActTimeÚs
0cCsdS(Ni((tcurLV((sbE:\SnxxServerCode\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((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSetPlayerTickTimeó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-R0tcopytdeepcopyRRR?R@t    enumeratet ResetRiseList( triseListt    randomNumRwR‘tdataInfotlistLentdatat tempRiseListR`Rtj((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByRandomListExs,         cCs½t|ƒ}|dkrgS||kr-|Stj|ƒ}|dkrZ||ddnd}||d}||d|!}x"|D]}|dc||8<q†Wtj|d|!|ƒS(Nii(R-R•R–(R™tdelIndext riseListLenRžt lastBaseRetetbaseRatettempListtriseInfo((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR˜(s   $ c
Cs°g}x£t|ƒD]•\}}|\}}|dkr=|n|||dd}|s_|n|t||dƒ}|sƒ|n|dd|}    |j|    |fƒqW|S(NiigˆÃ@iÿÿÿÿ(R—R6R0(
t
srcPieListtplusRatet plusPieListR`trateInfoRtinfotsrcRatetnewRatetspecRate((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetPlusPieList:s ($cCs4|s
|Stjd|ddƒ}t|||ƒS(Niiÿÿÿÿ(R?R@tGetResultByRiseList(trandListRwR((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByRandomListHscCs0x)|D]!}||dkr#qn|dSW|S(Nii((R™tpointRwt    smallList((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR°Ss
     cCsg}d}xO|D]G}||d7}|j|t|ƒdkrL|dn|dgƒqW|shdStjd|ddƒ}t||ƒS(Niiiiÿÿÿÿ(R0R-R?R@R°(t
weightListR±tweightR«R((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByWeightList^s 7cCsmxDtt|ƒƒD]0}|dkr+qn||c||d7<qWtjd|dƒ}t|||ƒS(Niiiÿÿÿÿ(RRR-R?R@tGetResultByRiseIndex(R±tisCriticalDownwardR`R³((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetIndexByIndependRateos  cCs"tjdtjƒ}t||ƒS(Ni(R?R@RtDef_NPCMapDropRateR¸(R±R((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetResultByRandomIndexscCs~xwtdt|ƒƒD]`}||}t|tƒr>|}n
|d}|rc||kruqqun||kruqn|SWdS(Niiÿÿÿÿ(RRR-t
isinstanceR6(R™R³R¹RételementtcmpPoint((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¸‰s
    
      cCs|S(N((tfunc((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetPsycoFunc¢scCs tjdƒS(Nt PsycoSwitch(R2R](((sbE:\SnxxServerCode\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#RRtkeysR0R,t
TravelFileRt
ScriptPath(RtmoduleNameListt
moduleName((sbE:\SnxxServerCode\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'R+t
startswithR,RRR(R R(R)RÄ(R tfilePathRÆRt curModuleNamet
reloadNameRÇtmodule((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRÄÅs #cCsMt|dƒd}t|dƒdd}t|dƒd}|||fS(Nièii<(R6(t    inputTimet curTimeHourt curTimeMinutet curTimeSecond((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeInputTimeãscCs/|jƒ}tjdƒ}||kr+tStS(NtDef_Mission_DR_MinLV(tGetLVR2R]R˜R€(R«tplayerLVtminDRLV((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
IsMissonDRís
  cCsatjdƒ}t|ƒdkr/tdƒtS|dr=tSyt||dƒWntSXtS(Nt EncodingTexisEncodingTex.txt Error len != 2ii(R2R]R-R*R˜R€tunicode(t    inputTextt encodingList((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytEncodingToUnicodeüs
 
cCs7tjdƒ}t|ƒdkr/tdƒdS|dS(NR×isEncodingTex.txt Error len != 2tutf8i(R2R]R-R*(RÚ((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCharacterEncodings
 
cCs^tjdƒ}t|ƒdkr/tdƒ|Sy |jtjƒjtƒƒSWn|SX|S(NR×isEncodingTex.txt Error len != 2(    R2R]R-R*tdecodet ShareDefinetDef_Game_Character_EncodingtencodeRÝ(RÙRÚ((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt    GbkToCodes
 cCsttjddƒdƒS(NtMerget IsMergeServeri(RxR2R3(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt IsCrossServer(scCs tƒrtjddƒStjS(NRãt CrossZoneName(RåR2R3Rtg_crossZoneName(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetCrossZoneName,s    cCs.tjj||ƒjƒ}ttj|ƒƒS(N(R³RÀt    timetupleR6ttimetmktime(RÂt
timeFormat((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeTimeStrToNum5scCstj|tj|ƒƒS(N(Rêtstrftimet    localtime(ttimeNumRì((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeTimeNumToStr<scCs.tj|tj|ƒƒ}tjj||ƒS(N(RêRîRïR³RÀ(RðRìRÂ((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRÓBsc
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ÿÿÿÿ( RÓR­RßtDef_OnEventHourR¶R·R¸thourR˜R€R³R±(t    checkTimet    checkDatetcurDateRòtchkYeartchkMonthtchkDaytchkHourtcurYeartcurMonthtcurDaytcurHourt checkDateExt    curDateExRÙ((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckTimeIsSameServerDayExFs2         **$       cCsO|jƒjƒ}|jƒjƒ}tjdƒ}t|jddƒƒ}|S(Nt AreaNameInfotNameExprR(RKRLt    GetAreaIDR2R]tevalR((R«toperatortareaIDt areaNameInfotareaName((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetAreaName€s
cCst|ƒ}tj|ƒS(N(R
tCommFunct    GetStrCrc(R«R    ((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt
GetAreaCrcŽs cCs;x4|jƒD]&\}}|j|dƒ|||<q WdS(Ni(RR((tdict1tdict2tkeyRr((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt AddDictValue—scCsPxI|jƒD];\}}|j|dƒ}||||tj||<q WdS(Ni(RR(RßtDef_MaxRateValue(RRRRrtvalue1((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCalcAttrDictPer¢s!cCs|td|ƒdS(Ni
(R>(tnumValuet    dataIndex((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDataByDigitPlace¯scCsY|dks'|dks'|tjkr+|St||ƒ}|td|ƒ||7}|S(Nii    i
(RßtDef_PDictDigitCntRR>(RRt    dataValuet    lastTagLV((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytChangeDataByDigitPlace¸s
'cCsJt|ƒtt|ƒƒdkr,t|ƒSt|ƒt|t|ƒƒS(Ngà?(R‹R6(Rm((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRlÇscCsT||kr||Sx9|jƒD]+\}}t|tƒr!||kr!|Sq!WdS(N(RR½ttuple(tattrDicttfindKeyRRr((sbE:\SnxxServerCode\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½RR-(tsrcDictRRwtrangeKeyRr((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDictValueByRangeKeyÜs  Ec Cs|r dnd}||}|s,||n|t||gƒ}|j|ƒ}||}    |rŠ|td|    ƒ@}
|
rdnd}
nt||    ƒ}
|
S(Nii    iii(RRXR>R( R«t    keyFormattbittisBintkeyParamt perKeyMaxBittkeyNumtkeyNamet    dictValuetbitIndextbitValue((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetDictValueByBitî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ÿÿÿÿ(RRXR>RR^t PlayerControltNomalDictSetProperty( R«R#R$RrR%R&R'R(R)R*R+t updDictValueR.((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSetDictValueByBits
'
+  c    Cs€|r dnd}ttj|t|ƒƒƒ}xHt|ƒD]:}|sT||n|t||gƒ}|j|ƒq>WdS(Nii    (R6R7R8R9RRRR^(    R«R#tmaxLenR%R&R'tkeyCntR`R)((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytResetDictAllBitValues 'cCsG||||g}t|ƒ}tƒjdddd|t|ƒƒdS(NitSendBroadcastMergeClient(R®RïtGameServer_QueryPlayerResultR-(toperTypetmapIDR›tisRepeattmsgList((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytSendBroadcastMerge,s %cCsA||g}t|ƒ}tƒj|||d|t|ƒƒdS(NtSendMergerChildMsg(R®RïR6R-(R7tdataMsgt srcPlayerIDt    queryTypetqueryIDR:((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt!SendMergerChildToCenterStringData6s
  cCsOt||gƒ}tƒj|||d|t|ƒƒtd||fƒdS(NtSendMsgToCrossServers·¢ËÍ¿ç·þÐÅÏ¢: %s, %s(R®RïR6R-R(tmsgTypeR=R>R?R@R:((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRB=s%cCsUt|||gƒ}tƒj|||d|t|ƒƒtd|||fƒdS(NtSendMsgToClientServers*·¢ËÍ×Ó·þÐÅÏ¢: %s, %s, serverGroupIDList=%s(R®RïR6R-R(RCR=tserverGroupIDListR>R?R@R:((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRDDs%cCsp||kr||St|jƒƒ}|dkrZx%|D]}||kr9||Sq9Wn|rl||dSdS(Niiÿÿÿÿ(tsortedRÃR~(t    orderDicttordert isDefaultLastt    orderListtdOrder((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytGetOrderValueByDictPs    cCs8||j|ƒtj|kr$tS|j||ƒtS(N(RRR’R˜RR€(R«ttickTypeR((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pytCheckPlayerTick^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ÓR2R]R—R-RRXRtDef_PDict_SplitExpLVCnt(R«tserverLVt clientLVRuletTransRealLVListtTransNewLvListtSplitLVExpDictttransCntR`treallvtcurTransRealLVtcurNewLVtnextTransRealLVtcurTransAddSplitLVtcurTransTotalSplitLVt splitRealLVt splitLVListt splitLVExCnttshowLV((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt GetClientLVhs6 
 
 
 " 
  (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-֪ͨȫ·þ
    @param isSort: ´æ´¢¼Ç¼ÂúÐèɾ³ýʱÊÇ·ñÐèÒªÏȰ´Ê±¼äÅÅÐò, Ä¬ÈÏ1ÊÇ, ÏȽøÏȳö
    itAddUniversalGameRecN(R®RïR6R-(RtrecTypet    valueListt strValueListt
notifyTypetisSorttmsgStr((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRbs    %cCs;t||gƒ}tƒj|ddd|t|ƒƒdS(s³
    @todo: É¾³ýGameServer´æ´¢Í¨ÓüǼ
    @param recType: Í¨ÓüǼÀàÐÍ, ¶ÔÓ¦ ShareDefine.Def_UniversalGameRecTypeList
    @param notifyType: 0-²»Í¨Öª; 1-֪ͨ±¾ÈË; 2-֪ͨȫ·þ
    itDelUniversalGameRecN(R®RïR6R-(RcRRfRh((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyRišs%cCs9t|ƒ|jtjƒjtƒƒ}|j|ƒdS(sתÂëºóÔÙ·¢DebugAnswerN(RRÞRßRàRáRÝR(R«ttext((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyR¥s
 (©R¡RR2R?R7RR³RR't    MapConfigR Rßt
PyMapTabletdecimalRRêR•R%RRTtsetrecursionlimittServerRootPathR"RRRRRR<R=RFRORdRjRkRSRTRtRxR}R†RˆRŠRŽRRR’R—RR RžR¨R¬R#R¾R­tTYPE_Time_FormatRÅRÊRËRÌRÆRÒRØRÚRÜRäRáRëRíRRtIPY_ItemFactoryRRRÛRîRïRðRñRòRóRôRõRöRÝRRRRRR"R*RR.R/R4R8R:R<R;RARCRFRGRJRMRRRWRZR[RgRhRtR}R˜R‹R€RR‘R”R~R R˜R¯R²R°R·R€RºR¼R¸RÁRRRÄRÑRÖRÛRÝRâRåRèRíRñRÓRR
R RRRRRlRR"R-R1R4R;RARBRDRLRNRaRbRiR(((sbE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorld.pyt<module>'sF                                   "                  H                                                                                                                                                                                                                                                                                                                                             
    '                  
                     
            
                    :                                           
     
    %