cehua_ZWJ
2019-01-30 6afaa4408f4e09e3e95dbd92f0d1cd5a1fb2942b
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
ŠF\c @sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl mZddlZddlZddlZddlZejdƒdZdad„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd d„Zd„Zd„Zd„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„Z/d „Z0d!„Z1d"„Z2d#„Z3d$„Z4d%„Z5d&„Z6ej7d'„Z8d(„Z9d)„Z:d*„Z;d+„Z<d,„Z=d-„Z>d.„Z?d/„Z@d0„ZAd1„ZBd2„ZCejƒZDejEƒZFejGƒZHd3„ZId4„ZJd5„ZKd6„ZLd7„ZMd8„ZNd9„ZOd:„ZPd;„ZQd<„ZRd=„ZSd>„ZTd?„ZUd@„ZVdA„ZWdB„ZXdC„ZEdD„ZYdddE„ZZdddF„Z[dddG„Z\dH„Z]dI„Z^dJ„Z_dK„Z`dL„ZadM„ZbdN„ZcdO„ZddPZedQ„ZfdR„ZgdS„ZhdT„ZidU„ZjdV„ZkdW„ZldXZmdY„ZndZ„Zoddddddddddd[„
Zpd\„Zqderd]„Zsd^„Ztd_„Zud`„Zvda„Zwdddb„Zydc„Zzdd„Z{dde„Z|ddf„Z}dg„Z~edh„Z€di„Zedj„Z‚dk„Zƒdl„Z„dm„Z…dn„Z†do„Z‡dp„Zˆdq„Z‰dr„ZŠds„Z‹dt„ZŒej7du„Zej7dv„ZŽej7dw„Zdx„Zdy„Z‘dz„Z’d{„Z“d|„Z”d}„Z•d~„Z–d„Z—d€„Z˜dd„Z™egd‚„Zšegdƒ„Z›egd„„Zœed…„Zdddd†„Zždddd‡„ZŸddddˆ„Z ed‰„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((s.\\GameWorld.pyt    ImportAllJs  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((s.\\GameWorld.pyt ReloadScript`s         
cCszxbtjjƒD]Q\}}y.|dkr?td|ƒwnt|ƒWqtk
r`qqXqWtdtƒƒdS(Nt
PyGameDatas%s Ä£¿é²»ÖضÁ!sReload Begin : time = %s(R(RRtitemstDebugLogtreloadt    ExceptiontLogtGetCurrentDataTimeStr(tnamet
reloadPath((s.\\GameWorld.pyRys   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((s.\\GameWorld.pyRŒs   cCs'|}|dkr#|d|}n|S(NRs.((R RtsysModulesPath((s.\\GameWorld.pyR®s cCsttj|t|ƒƒƒS(N(tinttmathtceiltfloat(txtdiv((s.\\GameWorld.pyt GetIntUpper»scCsttj|ƒƒS(N(R6R7R8(R:((s.\\GameWorld.pyt GetFloatUpperÃsicCs;td|ƒ}tj|d||dƒ}|t|ƒS(Ni
i(tpowtrandomtrandintR9(tminXtmaxXtprecistmultipletran((s.\\GameWorld.pyt GetFloatRanØscCsh||kr||krdStj||||ƒ}ttj|ƒƒ}|dkrd|d}n|S(Niih(R7tatan2R6tdegrees(tStartXtStartYtEndXtEndYtradtth((s.\\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((s.\\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((s.\\GameWorld.pytPosInLineByDistHs3 c
Csœtjtj||dƒtj||dƒƒ}d}d}|dkrj|||}|||}nt|||ƒ}t|||ƒ}    ||    fS(Nigð?gi(R7RQR>R6(
ReRZR[RfRgR]R^R_RhRi((s.\\GameWorld.pytPosInLineByDistExWs3 cCs;t|ƒ}tt|ƒƒ}||kr1|gS||gS(N(R6tMyRound(tnumtnum1tnum2((s.\\GameWorld.pyRSks
  cCs?g}x2|D]*}x!|D]}|j||fƒqWq W|S(N(R0(RaRbtposlistR:ty((s.\\GameWorld.pyRTvs
  cCs ||dS(Nid((tvaluetpercent((s.\\GameWorld.pyt
GetPercent…scCs-yt|ƒ}|SWntk
r(|SXdS(N(R6t
ValueError(tinputtdefValueR\((s.\\GameWorld.pytToIntDefŽs
  cCsttt||ƒ|ƒƒS(N(R6tmintmax(RvtminNumtmaxNum((s.\\GameWorld.pyt    ToIntArea›scCsb|jdƒ}t|ƒdkr%dSx6|D].}t||ƒtkrKdSt||ƒ}q,W|S(Ns.i(R,R-tNonethasattrtTruetgetattr(t
curCallObjtcallNametcallListt curCallName((s.\\GameWorld.pytParseNameGetObj¤s cCs9t||ƒ}|dkrdSt|ƒtkr5dS|S(N(R†R~tcallableR€(R‚Rƒ((s.\\GameWorld.pyt GetExecFunc¸s  cCstS(N(R€(tcurItem((s.\\GameWorld.pytCheckItemIsMaxEndureÈscCs!tt||ƒt||ƒƒS(N(Rztabs(RfRgttagXttagY((s.\\GameWorld.pytGetDistØscCs1ttjt||dƒt||dƒƒƒS(Ni(R=R7RQR>(RfRgRŒR((s.\\GameWorld.pyt    GetDistExãscCs$tjd|dƒ|kr dSdS(Nii(R?R@(tratetmaxRate((s.\\GameWorld.pyt    CanHappenìscCsH|jƒtjd|dƒ}x!|D]}||kr?q'n|SWdS(Nii(tsortR?R@R~(trateListR‘t    ranNumbertnumber((s.\\GameWorld.pytWhichCanHappen÷s
  cCsJ| s| rtS|jƒ|jƒkrF|jƒ|jƒkrFtStS(N(tFalsetGetIDtGetGameObjTypeR€(tsrcObjtdesObj((s.\\GameWorld.pyt    IsSameObjs
0cCst|jƒ|jƒƒS(N(tIsSameCountry_Namet
GetCountry(R›Rœ((s.\\GameWorld.pyt IsSameCountryscCs6||krtS|tjks.|tjkr2tStS(N(R€t IPY_GameWorldttcNewR˜(tsrcNametdesName((s.\\GameWorld.pyRž!s
 cCs>|jƒ}|jƒ}|dks0|dkr4tS||kS(Ni(t GetFamilyIDR˜(R›Rœt    srcFamilyt    desFamily((s.\\GameWorld.pyt IsSameFamily1s
  cCs#|jƒdtjgkrdStS(Ni(t
GetGMLevelRt Def_GM_LV_GodR€(t    curPlayer((s.\\GameWorld.pytIsGM>scCs,tƒ}t|ƒ}|jdƒd}|S(Ns.i(tGetCurrentTimetstrR,(tcurTimet
curTimeStr((s.\\GameWorld.pyR#Js     cCs_|jƒs|St|ƒ}tjjƒ}|tjd||ƒ}d|j|j|jfS(s°»ñÈ¡ÔËÓª»î¶¯¶ÔÓ¦ÈÕÆÚ£¬´æÊý×Ö´ú±í¿ª·þÌìÅäÖã¬ÐèҪת»¯Îª¶ÔÓ¦µÄÈÕÆÚ
    @param dateInfo: ÔËÓª»î¶¯±íÅäÖõÄÈÕÆÚÐÅÏ¢, Èç¹ûÊÇ´¿Êý×Ö´ú±í¿ª·þÌì
    @param openServerDay: µ±Ç°¿ª·þÌì
    tdayss%d-%d-%d(tisdigitR6tdatetimettodayt    timedeltatyeartmonthtday(tdateInfot openServerDaytactionServerDayt curDateTimetactionDateTime((s.\\GameWorld.pytGetOperationActionDateStrRs   cCs tjjƒS(N(R³R´(((s.\\GameWorld.pyR­bscCs_|jƒjdƒd}ytjj||ƒSWn(tk
rZ}td||fƒdSXdS(Ns.is%s : %s(tstripR,R³tstrptimet BaseExceptionR*(ttimeStrt    timeFomatte((s.\\GameWorld.pytGetDateTimeByStruscCs@t|ƒ}|dkr*td|ƒdS|jd|jdS(Ns GetPastHour Err dateTimeStr = %siii(t__GetPastTimeDeltaR~R*R±tseconds(t dateTimeStrt pastTimeDelta((s.\\GameWorld.pyt GetPastHour„s
  cCsDt|ƒ}|dkr*td|ƒdS|jdd|jdS(Ns"GetPastMinute Err dateTimeStr = %siii<(RÆR~R*R±RÇ(RÈRÉ((s.\\GameWorld.pyt GetPastMinute‘s
  cCsDt|ƒ}|dkr*td|ƒdS|jddd|jS(Ns"GetPastMinute Err dateTimeStr = %siii<(RÆR~R*R±RÇ(RÈRÉ((s.\\GameWorld.pytGetPastSecondsŸs
  cCs9tƒ}t|ƒ}|dks-|dkr1dS||S(N(R­RÅR~(tcompareTimeStrt curDataTimetcompareDataTime((s.\\GameWorld.pyRÆ­s
     cCs$||}|jdd|jdS(Nii<(R±RÇ(R¯ttagTimet    diff_Time((s.\\GameWorld.pytGetDiff_Minute½s
cCsqt|ƒ}tj|j|j|jdddƒ}t|ƒ}tj|j|j|jdddƒ}||jS(Ni(tChangeTimeNumToDatetimeR³R¶R·R¸R±(ttimeAttimeBt    dateTimeAt    dateTimeB((s.\\GameWorld.pyt GetDiff_DayÂs
 ' 'cCstƒtjd|ƒS(NR±(R­R³Rµ(tdiffDays((s.\\GameWorld.pytGetDatetimeByDiffDaysÏscCstƒj|ƒ}t|ƒS(N(t GetNPCManagert FindNPCByIDt__GetSummonTagNPC(tnpcIDtcurTag((s.\\GameWorld.pyRÜÖscCs;tƒ}|j|ƒ}|s-t|ƒ}n|r7|SdS(N(RÛtFindGameNPCByNPCIDtFindSummerNPCByNPCID(RÞtnpcMgrtfindNPC((s.\\GameWorld.pytFindNPCByNPCIDÚs    cCsgtƒ}xWt|jƒƒD]C}|j|ƒ}|jƒdkrIqn|jƒ|kr|SqWdS(Ni(RÛtxrangetGetSummonNPCCounttGetSummonNPCAtR™tGetNPCID(RÞRâtindextcurNPC((s.\\GameWorld.pyRáãs    cCstƒj|ƒ}t|ƒS(N(RÛt GetNPCByIndexRÝ(tnpcIndexRß((s.\\GameWorld.pyRëòscCstS(N(t __GameWorld(((s.\\GameWorld.pyRscCs
tjƒS(N(RíRÛ(((s.\\GameWorld.pyRÛ    scCs
tjƒS(N(RítGetTeamManager(((s.\\GameWorld.pyRîscCs
tjƒS(N(RítGetPlayerManager(((s.\\GameWorld.pyRïscCs
tjƒS(N(RítGetMapItemManager(((s.\\GameWorld.pyRð!scCs
tjƒS(N(RítGetMapCopyPlayerManager(((s.\\GameWorld.pyRñ)scCs
tjƒS(N(RítGetMap(((s.\\GameWorld.pyRò1scCs
tjƒS(N(RítGetMail(((s.\\GameWorld.pyRó9scCs
tjƒS(N(Rít    GetScript(((s.\\GameWorld.pyRôAscCs
tjƒS(N(Rít    GetGameFB(((s.\\GameWorld.pyRõIscCs
tjƒS(N(RítGetAllFbNPCManager(((s.\\GameWorld.pyRöQscCs|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((s.\\GameWorld.pyRÝYs  cCsA|jƒtjkr=|jƒtjtjtjgkr=tSdS(N(RšR¡tgotNPCtGetTypetntWalltntDeert ntDefenceMaxR€(tcurObj((s.\\GameWorld.pytGetNPC_Is_Gatems9cCs‡|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((s.\\GameWorld.pyt GetObjDetailxs  
cCs[|tjkrtƒj|ƒS|tjkr8t|ƒS|tjkrWtƒj|ƒSdS(N(
R¡RRñtFindPlayerByIDRRÜR
Rðt GetItemByIDR~(tobjIDR ((s.\\GameWorld.pytGetObjs
cCstS(N(t ItemFactory(((s.\\GameWorld.pytGetItemFactoryžscCstS(N(tGameData(((s.\\GameWorld.pyt GetGameData¦scCs*|jƒtjkrdSt||ƒdS(N(R©RRªt DebugAnswer(R«tmsg((s.\\GameWorld.pytGodLog¯s cCstjd|||fƒdS(Ns%s    %s    %s(tLogUItMsg(RtplayerIDtpar((s.\\GameWorld.pyR"½scCstjd|||fƒdS(Ns%s    %s    ###Error:%s(RR(RRR((s.\\GameWorld.pyR*ÈscCs1tƒjƒsdStjd|||fƒdS(Ns%s    %s    PyDebug:%s(Rt GetDebugLevelRR(RRR((s.\\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((s.\\GameWorld.pytGetMergeServerIDÜs 
   cCs tƒjƒS(N(RtGetServerVersion(((s.\\GameWorld.pyR/÷scCsttjddƒdƒS(NtplatformtGroupIDi(Rxt ReadChConfigtGetPyMongoConfig(((s.\\GameWorld.pytGetServerGroupIDúscCstjdƒ}|j|dƒS(Nt DBPlatformNumi(R2tGetDBEvalChConfigR((R0tplatformNumDict((s.\\GameWorld.pytGetPlatformServerNumþscCstjddƒS(NR0t PlatformName(R2R3(((s.\\GameWorld.pyt GetPlatform scCsttƒddƒS(Nii(Rxt GetServerSID(((s.\\GameWorld.pyt GetServerIDscCstjddƒS(NR0R!(R2R3(((s.\\GameWorld.pyR;scCs=|jƒ}tƒt|jdƒdtjƒ}|jdS(Ns ii(tGetCreateRoleTimeR­RÅR,RtTYPE_Time_Format_DayR±(R«tcreateRoleTimetdiffTime((s.\\GameWorld.pytGetCreateRoleDayss &s@cCsC|jƒ}|jtƒ}t|ƒdkr1dSt|ddƒS(Niiiÿÿÿÿi(tGetAccIDR,tDef_AccID_Split_SignR-R6(R«taccIDtinfoList((s.\\GameWorld.pytGetPlayerServerID$s cCs9|jƒ}|jtƒ}t|ƒdkr1dS|dS(NiRiÿÿÿÿ(RBR,RCR-(R«RDRE((s.\\GameWorld.pytGetPlayerServerSID)s cCs6ttjdd|ƒdƒ}|dkr/|StƒS(NR0s%sMainServerID(RxR2R3R~R<(t accIDPlatformt mainServerID((s.\\GameWorld.pytGetPlayerMainServerID/s cCs|jƒjƒS(N(tGetAccountDatat GetOperator(R«((s.\\GameWorld.pytGetPlayerPlatformIscCs,|jtƒ}|d }tj|ƒ}|S(Niþÿÿÿ(R,RCtjoin(t    gameAccIDREt
paInfoListt platformAccID((s.\\GameWorld.pytGetPlatformAccIDMs
cCs-tj|jƒ|jƒjƒdƒjƒS(Ntmobile(tmd5RBRKtGetLastLoginTimet    hexdigest(R«((s.\\GameWorld.pyt GetSessionIDSscCs|jtjƒS(N(tNomalDictGetPropertyRtDef_Player_Dict_Account_Type(R«((s.\\GameWorld.pytGetAccountTypeVstPDict_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((s.\\GameWorld.pytSetPlayerChannelCode^s    cCs>|jtƒ}|dkrdStjdƒ}|j|dƒS(NiRR\(RXR[R2R]R((R«ReRc((s.\\GameWorld.pytGetPlayerChannelCodews
 c
 
Cs/tƒj||||||||||    ƒ
dS(N(RtDataServer_HugeTradeRec(
t    tradeGoldt tradeSilvert tradeItemIDttradeItemCounttsenderIDt
senderGoldt senderSilvert
receiverIDt receiverGoldtreceiverSilver((s.\\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((s.\\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ƒ((s.\\GameWorld.pytResetPlayerPos¸s
 0cCs|jdƒ|jdƒdS(Ni(t SetMoveCounttSetMoveDistDiff(R«((s.\\GameWorld.pyR€Îs  cCsB|s
tSt|dƒ|ko5t|dƒknr>tSdS(Nii(R€RÅ(R¯tactSect((s.\\GameWorld.pyt IsAtActTimeÙs
0cCsdS(Ni((tcurLV((s.\\GameWorld.pyt
GetReMoneyèscCs8||j|ƒtj|kr$tS|j||ƒtS(N(RRtTYPE_Player_Tick_TimeR˜RR€(R«tfuncKeyR((s.\\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((s.\\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((s.\\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((s.\\GameWorld.pytGetPlusPieList9s ($cCs4|s
|Stjd|ddƒ}t|||ƒS(Niiÿÿÿÿ(R?R@tGetResultByRiseList(trandListRwR((s.\\GameWorld.pytGetResultByRandomListGscCs0x)|D]!}||dkr#qn|dSW|S(Nii((R™tpointRwt    smallList((s.\\GameWorld.pyR°Rs
     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((s.\\GameWorld.pytGetResultByWeightList]s 7cCsmxDtt|ƒƒD]0}|dkr+qn||c||d7<qWtjd|dƒ}t|||ƒS(Niiiÿÿÿÿ(RRR-R?R@tGetResultByRiseIndex(R±tisCriticalDownwardR`R³((s.\\GameWorld.pytGetIndexByIndependRatens  cCs"tjdtjƒ}t||ƒS(Ni(R?R@RtDef_NPCMapDropRateR¸(R±R((s.\\GameWorld.pytGetResultByRandomIndex~scCs~xwtdt|ƒƒD]`}||}t|tƒr>|}n
|d}|rc||kruqqun||kruqn|SWdS(Niiÿÿÿÿ(RRR-t
isinstanceR6(R™R³R¹RételementtcmpPoint((s.\\GameWorld.pyR¸ˆs
    
      cCs|S(N((tfunc((s.\\GameWorld.pyt GetPsycoFunc¡scCs tjdƒS(Nt PsycoSwitch(R2R](((s.\\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((s.\\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((s.\\GameWorld.pyRÄÄs #cCsMt|dƒd}t|dƒdd}t|dƒd}|||fS(Nièii<(R6(t    inputTimet curTimeHourt curTimeMinutet curTimeSecond((s.\\GameWorld.pytChangeInputTimeâscCs/|jƒ}tjdƒ}||kr+tStS(NtDef_Mission_DR_MinLV(tGetLVR2R]R˜R€(R«tplayerLVtminDRLV((s.\\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((s.\\GameWorld.pytEncodingToUnicodeûs
 
cCs7tjdƒ}t|ƒdkr/tdƒdS|dS(NR×isEncodingTex.txt Error len != 2tutf8i(R2R]R-R*(RÚ((s.\\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Ú((s.\\GameWorld.pyt    GbkToCodes
 cCsttjddƒdƒS(NtMerget IsMergeServeri(RxR2R3(((s.\\GameWorld.pyt IsCrossServer'scCs.tjj||ƒjƒ}ttj|ƒƒS(N(R³RÀt    timetupleR6ttimetmktime(RÂt
timeFormat((s.\\GameWorld.pytChangeTimeStrToNum.scCstj|tj|ƒƒS(N(Rçtstrftimet    localtime(ttimeNumRé((s.\\GameWorld.pytChangeTimeNumToStr5scCs.tj|tj|ƒƒ}tjj||ƒS(N(RçRëRìR³RÀ(RíRéRÂ((s.\\GameWorld.pyRÓ;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ÿÿÿÿ( RÓR­RßtDef_OnEventHourR¶R·R¸thourR˜R€R³R±(t    checkTimet    checkDatetcurDateRïtchkYeartchkMonthtchkDaytchkHourtcurYeartcurMonthtcurDaytcurHourt checkDateExt    curDateExRÙ((s.\\GameWorld.pytCheckTimeIsSameServerDayEx?s2         **$       cCsO|jƒjƒ}|jƒjƒ}tjdƒ}t|jddƒƒ}|S(Nt AreaNameInfotNameExprR(RKRLt    GetAreaIDR2R]tevalR((R«toperatortareaIDt areaNameInfotareaName((s.\\GameWorld.pyt GetAreaNameys
cCst|ƒ}tj|ƒS(N(RtCommFunct    GetStrCrc(R«R((s.\\GameWorld.pyt
GetAreaCrc‡s cCs;x4|jƒD]&\}}|j|dƒ|||<q WdS(Ni(RR((tdict1tdict2tkeyRr((s.\\GameWorld.pyt AddDictValuescCsPxI|jƒD];\}}|j|dƒ}||||tj||<q WdS(Ni(RR(RßtDef_MaxRateValue(R R R Rrtvalue1((s.\\GameWorld.pytCalcAttrDictPer›s!cCs|td|ƒdS(Ni
(R>(tnumValuet    dataIndex((s.\\GameWorld.pytGetDataByDigitPlace¨scCsY|dks'|dks'|tjkr+|St||ƒ}|td|ƒ||7}|S(Nii    i
(RßtDef_PDictDigitCntRR>(RRt    dataValuet    lastTagLV((s.\\GameWorld.pytChangeDataByDigitPlace±s
'cCsJt|ƒtt|ƒƒdkr,t|ƒSt|ƒt|t|ƒƒS(Ngà?(R‹R6(Rm((s.\\GameWorld.pyRlÀscCsT||kr||Sx9|jƒD]+\}}t|tƒr!||kr!|Sq!WdS(N(RR½ttuple(tattrDicttfindKeyR Rr((s.\\GameWorld.pytGetDictValueByKeyÈs  cCs~||kr||Sxc|jƒD]U\}}t|tƒr!t|ƒdkr!|d|kom|dknr!|Sq!W|S(Niii(RR½RR-(tsrcDictRRwtrangeKeyRr((s.\\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((s.\\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+((s.\\GameWorld.pytSetDictValueByBitÿs
'
+  c    Cs€|r dnd}ttj|t|ƒƒƒ}xHt|ƒD]:}|sT||n|t||gƒ}|j|ƒq>WdS(Nii    (R6R7R8R9RRRR^(    R«R tmaxLenR"R#R$tkeyCntR`R&((s.\\GameWorld.pytResetDictAllBitValues 'cCsG||||g}t|ƒ}tƒjdddd|t|ƒƒdS(NitSendBroadcastMergeClient(R®RïtGameServer_QueryPlayerResultR-(toperTypetmapIDR›tisRepeattmsgList((s.\\GameWorld.pytSendBroadcastMerge%s %cCsA||g}t|ƒ}tƒj|||d|t|ƒƒdS(NtSendMergerChildMsg(R®RïR3R-(R4tdataMsgt srcPlayerIDt    queryTypetqueryIDR7((s.\\GameWorld.pyt!SendMergerChildToCenterStringData/s
  cCsOt||gƒ}tƒj|||d|t|ƒƒtd||fƒdS(NtSendMsgToCrossServers·¢ËÍ¿ç·þÐÅÏ¢: %s, %s(R®RïR3R-R(tmsgTypeR:R;R<R=R7((s.\\GameWorld.pyR?6s%cCsUt|||gƒ}tƒj|||d|t|ƒƒtd|||fƒdS(NtSendMsgToClientServers*·¢ËÍ×Ó·þÐÅÏ¢: %s, %s, serverGroupIDList=%s(R®RïR3R-R(R@R:tserverGroupIDListR;R<R=R7((s.\\GameWorld.pyRA=s%cCsp||kr||St|jƒƒ}|dkrZx%|D]}||kr9||Sq9Wn|rl||dSdS(Niiÿÿÿÿ(tsortedRÃR~(t    orderDicttordert isDefaultLastt    orderListtdOrder((s.\\GameWorld.pytGetOrderValueByDictIs    cCs8||j|ƒtj|kr$tS|j||ƒtS(N(RRR’R˜RR€(R«ttickTypeR((s.\\GameWorld.pytCheckPlayerTickWs 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((s.\\GameWorld.pyt GetClientLVas6 
 
 
 " 
  (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ïR3R-(RtrecTypet    valueListt strValueListt
notifyTypetisSorttmsgStr((s.\\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®RïR3R-(R`RRcRe((s.\\GameWorld.pyRf“s%cCs9t|ƒ|jtjƒjtƒƒ}|j|ƒdS(sתÂëºóÔÙ·¢DebugAnswerN(RRÞRßRàRáRÝR(R«ttext((s.\\GameWorld.pyRžs
 (§R¡RR2R?R7RR³RR't    MapConfigRRßt
PyMapTabletdecimalRRçR•R%RTtsetrecursionlimittServerRootPathR"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
RRRRRlRRR*R.R1R8R>R?RARIRKR^R_RfR(((s.\\GameWorld.pyt<module>'sB                                  "                  H                                                                                                                                                                                                                                                                                                                                             
    '                  
                     
            
            :                                           
     
    %