cehua_wcy
2018-12-26 e254df06ed1996ef6a2eb0436f250a1d68a881a8
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
í[\c@sKddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZejƒadZdad„Zd„Zd„Zd„Zdd„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„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„Z0d „Z1ddd!„Z2ddd"„Z3ddd#„Z4d$„Z5d%„Z6d&„Z7d'„Z8d(„Z9d)„Z:d*„Z;d+Z<d,„Z=d-„Z>d.„Z?d/„Z@d0„ZAd1„ZBd2„ZCd3„ZDd4„ZEd5„ZFd6„ZGd7„ZHd8„ZId9„ZJd:„ZKd;„ZLd<„ZMdd=d>„ZNd?„ZOd@„ZPdA„ZQdB„ZRdC„ZSdD„ZTdE„ZUdF„ZVejWdG„ZXejWdH„ZYejWdI„ZZdJ„Z[dK„Z\dL„Z]dM„Z^dN„Z_dO„Z`dP„ZadQ„ZbdejddR„ZeddS„ZfddT„ZgddU„ZhdV„ZiejddW„ZjdX„ZkdY„ZldZ„Zmd[„Znd\„Zod]„ZpdS(^iÿÿÿÿNticCsb|jdƒ}t|ƒdkr%dSx6|D].}t||ƒtkrKdSt||ƒ}q,W|S(Ns.i(tsplittlentNonethasattrtTruetgetattr(t
curCallObjtcallNametcallListt curCallName((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytParseNameGetObj>s cCs9t||ƒ}|dkrdSt|ƒtkr5dS|S(N(R RtcallableR(RR((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetExecFuncQs  cCsttj|ƒƒS(N(tinttmathtceil(tx((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetFloatUpperascCsttj|t|ƒƒƒS(N(RRRtfloat(Rtdiv((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetIntUpperiscCs-yt|ƒ}|SWntk
r(|SXdS(N(Rt
ValueError(tinputtdefValuetresult((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytToIntDefqs
  cCsH|jƒ|jƒkrtS|jƒdks@|jƒdkrDtStS(Ni(t
GetCountryRtFalse(tsrcObjtdesObj((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt IsSameCountry~s
$cCs|jƒdkrdStS(NiiZ(iiZ(t
GetGMLevelR(t    curPlayer((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytIsGM‹scCs&ttƒƒ}|jdƒd}|S(Ns.i(tstrt GetServerTimeR(t
curTimeStr((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetCurrentDataTimeStr–scCsb|jƒjdƒd}ytjj|tjƒSWn(tk
r]}td||fƒdSXdS(Ns.is%s : %s(tstripRtdatetimetstrptimetChConfigtTYPE_Time_Formatt BaseExceptiontLog(ttimeStrte((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetDateTimeByStrŸscCs_|jƒjdƒd}ytjj||ƒSWn(tk
rZ}td||fƒdSXdS(Ns.is%s : %s(R'RR(R)R,R-(R.t
timeFormatR/((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetDateTimeByFormatStr®scCs
tjƒS(N(t GameWorldDatatGetGameWorldEventManager(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR4¼scCstS(N(R3(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetGameWorldÄscCs
tjƒS(N(R3tGetPlayerManager(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR6ÌscCs
tjƒS(N(R3tGetTeamManager(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR7ÔscCs
tjƒS(N(R3tGetTruckManager(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetTruckManangerÜscCs
tjƒS(N(R3tGetFamilyManager(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR:äscCs
tjƒS(N(R3tGetBillboardManager(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetBillboardìscCs
tjƒS(N(R3tGetAllMailList(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetMailManagerõscCs
tjƒS(N(R3tGetFamilyTechMgr(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetFamilyTechManagerýscCs
tjƒS(N(R3t GetVSRoomMgr(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetVSRoomManagerscCs
tjƒS(N(R3tGetVsRewardMgr(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetVsRewardManager scCs
tjƒS(N(R3tGetFamilyActionMgr(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetFamilyActionManagerscCs
tjƒS(N(R3tGetFBPassRecMgr(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetFBPassRecManagerscCs
tjƒS(N(R3tGetUniversalRecMgr(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRI&scCs
tjƒS(N(R3tGetBourseManager(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRJ.scCs
tjƒS(N(R3tGetHighLadderManager(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetHightLadderMgr6scCs
tjƒS(N(R3tGetCompensationMgr(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRM>scCs%tƒrt|ƒdSt|ƒdS(N(t__GetPsycoIsOpent PsycoReloadt
__DoReload(ttick((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytDoReloadGs
    
 
cCs¥xztjjƒD]i\}}yFtƒjdƒdkrW|dkrWtd|ƒwnt|ƒWqtk
rxqqXqWtƒjddƒt    dt
ƒƒdS(NtReloadit
PyGameDatas    ²»ÖضÁ %ssReload Begin : time = %s(s
PyGameData( tsystmodulestitemsR5t GetDictByKeytDebugLogtreloadt    ExceptiontSetDictR-R&(RQtnamet
reloadPath((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRPUs$  cCstjd|||fƒdS(Ns%s    %s    %s(tLogUItMsg(tmsgtplayerIDtpar((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR-hscCstjd|||fƒdS(Ns%s    %s    ###Error:%s(R_R`(RaRbRc((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytErrLogrscCs1tƒjƒsdStjd|||fƒdS(Ns%s    %s    PyDebug:%s(R5t GetDebugLevelR_R`(RaRbRc((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRY{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(RfRg(t MergeServerIDR*tGetServerRootPathtostpathtisfileRdR[t ConfigParsertreadt
has_optionRtgetR-(trootPathtmergeServerIniFiletmergeServerInitsectiontoption((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetMergeServerID†s 
   cCs tƒjƒS(N(R5tGetServerVersion(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRw¡scCsttjddƒdƒS(NtplatformtGroupIDi(Rt ReadChConfigtGetPyMongoConfig(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetServerGroupID¤scCstjdƒ}|j|dƒS(Nt DBPlatformNumi(RztGetDBEvalChConfigRp(RxtplatformNumDict((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlatformServerNum¨scCstjddƒS(NRxt PlatformName(RzR{(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetPlatformµscCsttƒddƒS(Nii(Rt GetServerSID(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetServerID»scCstjddƒS(NRxRg(RzR{(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRƒ¾ss@cCsC|jƒ}|jtƒ}t|ƒdkr1dSt|ddƒS(Niiiÿÿÿÿi(tGetAccIDRtDef_AccID_Split_SignRR(R!taccIDtinfoList((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlayerServerIDÈs cCs9|jƒ}|jtƒ}t|ƒdkr1dS|dS(NiRiÿÿÿÿ(R…RR†R(R!R‡Rˆ((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlayerServerSIDÍs cCs6ttjdd|ƒdƒ}|dkr/|StƒS(NRxs%sMainServerID(RRzR{RR„(t accIDPlatformt mainServerID((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlayerMainServerIDÓs cCs|jƒjƒS(N(tGetAccountInfot GetOperator(R!((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlayerPlatformíscCs,|jtƒ}|d }tj|ƒ}|S(Niþÿÿÿ(RR†tjoin(t    gameAccIDRˆt
paInfoListt platformAccID((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlatformAccIDñs
cCst|ƒ}|jddƒS(Nt channel_codeR(t GetUserDataRp(R!t userDataDict((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlayerChannelCodeús cCsd|jƒ}|siSyt|ƒ}Wntd|ƒiSXt|tƒs`td|ƒiS|S(Nsdata error UserData = %sstype error UserData = %s(R—tevalRdt
isinstancetdict(R!tplayerUserDataStrtcurPlayerUserData((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR—s cCs"| s|jƒ rdS|jƒS(Ni(t    GetInitOKt GetRealMapID(t    tagPlayer((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetQueryPlayerMapIDscCs_|jƒs|St|ƒ}tjjƒ}|tjd||ƒ}d|j|j|jfS(s°»ñÈ¡ÔËÓª»î¶¯¶ÔÓ¦ÈÕÆÚ£¬´æÊý×Ö´ú±í¿ª·þÌìÅäÖã¬ÐèҪת»¯Îª¶ÔÓ¦µÄÈÕÆÚ
    @param dateInfo: ÔËÓª»î¶¯±íÅäÖõÄÈÕÆÚÐÅÏ¢, Èç¹ûÊÇ´¿Êý×Ö´ú±í¿ª·þÌì
    @param openServerDay: µ±Ç°¿ª·þÌì
    tdayss%d-%d-%d(tisdigitRR(ttodayt    timedeltatyeartmonthtday(tdateInfot openServerDaytactionServerDayt curDateTimetactionDateTime((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetOperationActionDateStr!s   cCs tjjƒS(N(R(R¥(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR$1scCs9tƒ}t|ƒ}|dks-|dkr1dS||S(N(R$R0R(tcompareTimeStrt curDataTimetcompareDataTime((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt__GetPastTimeDelta8s
     cCs1t|ƒ}|dkr*td|ƒdS|jS(NsGetPastDay Err dateTimeStr = %si(R³RRdR£(t dateTimeStrt pastTimeDelta((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt
GetPastDayGs
  cCs@t|ƒ}|dkr*td|ƒdS|jd|jdS(Ns GetPastHour Err dateTimeStr = %siii(R³RRdR£tseconds(R´Rµ((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetPastHourUs
  cCsDt|ƒ}|dkr*td|ƒdS|jddd|jS(Ns#GetPastSeconds Err dateTimeStr = %siii<(R³RRdR£R·(R´Rµ((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPastSecondscs
  cCsWtƒ}|j|ƒ}|dkr(tS||tj|krCtS|j||ƒtS(Niÿÿÿÿ(R5t GetTickByTypeRR*tTYPE_Tick_Timet SetTickByTypeR(tkeyRQtworldMgrtlastTick((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytSetWorldDictKeyrs     cCs]t|ƒ}|j|ƒ}|s5|j||ƒtS|||krItS|j||ƒtS(N(R#RXR\RR(R!R½R¿RQtcurPlayerKeyValue((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytSetPlayerDictKey‡s cCsbd|}|j|ƒ}|s3|j||ƒtS||tj|krNtS|j||ƒtS(NsPlayer_Tick_%s(RXR\RR*tTYPE_Player_Tick_TimeR(R!ttickTypeRQtdictKeyR¿((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytRefurbishPlayerTickœs
icCs*tƒj|d|tj|f|ƒdS(Ns%s%s%s(R5tSendMapServerMsgt ShareDefinetDef_Notify_Separator(tkeyNametvaluetmapIDtrouteServerIndex((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytSendMapServerMsgExµs&cCs‚g}xutjjƒD]d\}}|tjkr7qntj|d}||krZqn|j|ƒt||||ƒqWdS(Ni(RTtg_commMapLineRouteDictRWtg_commMapLineInfotappendRÎ(RÊRËt sendMapIDListt mapLineInfoRÍt    realMapID((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytSendCommMapServerMsg¹s  cCsTt|d|ddƒ}tt||dƒdƒ}t|||ƒ}||fS(Nii(tmaxtmin(t viewPageIndext singePageCntttotalCnttendIndext
startIndex((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetViewPageBeginIndexAndEndIndexÌscCstƒtjd|ƒS(NR£(R$R(R¦(tdiffDays((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetDatetimeByDiffDaysÙscCs|S(N((tfunc((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetPsycoFuncáscCs tjdƒS(Nt PsycoSwitch(RztGetEvalChConfig(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRNîscCs~ttj|ƒsdSg}x7tjjƒD]&}|j||jdƒdgƒq,Wttj    d|ƒt
dt ƒƒdS(Ns.iÿÿÿÿRsPsycoReload Begin : time = %s( RÀR*tTYPE_ReloadScriptRURVtkeysRÑRt
TravelFiletGameServerPathR-R&(RQtmoduleNameListt
moduleName((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyROõs$cCsØxÑtj||ƒD]¼}|jdƒr/qn|jdƒd}xN|D]F\}}||krgqIntjj|ƒ}|s…qInt|ƒqIWtjj    ||d|ƒrt
||d|d|ƒqqWdS(Ns.is\( Rjtlistdirt
startswithRRURVRpRZRktisdirRæ(t
scriptPathtfilePathRètfileNamet curModuleNamet
reloadNameRétmodule((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRæs #cCsMt|dƒd}t|dƒdd}t|dƒd}|||fS(Nièii<(R(t    inputTimet curTimeHourt curTimeMinutet curTimeSecond((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytChangeInputTime%scCstj|tj|ƒƒS(N(ttimetstrftimet    localtime(ttimeNumR1((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytChangeTimeNumToStr/scCs.tj|tj|ƒƒ}tjj||ƒS(N(RøRùRúR(R)(RûR1R.((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytChangeTimeNumToDatetime5scCs.tjj||ƒjƒ}ttj|ƒƒS(N(R(R)t    timetupleRRøtmktime(R.R1((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytChangeTimeStrToNum<scCstjjƒtjd|ƒS(NR£(R(R¥R¦(RÞ((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetDatetimeBySubDaysEscCstjƒ}|jddƒS(NtIsMergeWarServei(t
GameConfigt    GetConfigRp(tconfig((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt IsMergeServerLs cCs2tjƒ}|jdƒs*|jdƒr.tStS(Nt MergeServerIPR(RRRpRR(R((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt IsMergeOpenTs cCsttjddƒdƒS(NtMergeRi(RRzR{(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt IsCrossServerYscCstjddƒptƒS(NR    R(RzR{R
(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytIsCrossRealmOpen]scCsO|jƒjƒ}|jƒjƒ}tjdƒ}t|jddƒƒ}|S(Nt AreaNameInfotNameExprR(RŽRt    GetAreaIDRzRãRšRp(R!toperatortareaIDt areaNameInfotareaName((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetAreaNameds
cCst|ƒ}tj|ƒS(N(RtCommFunct    GetStrCrc(R!R((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt
GetAreaCrcrs c CsÈttjdƒƒ}|\}}}}}||ksB|dkrZtd||fƒdSt||ƒ}    |    r~|    \}}n|t|ƒ}
t|
ƒ|krÄtd||
t|
ƒ|fƒdS|
S(NtRoleNameFormatisMGetPlayerFullName serverID=%s error! maxServerID=%s, check RoleNameFormat.txtRsMGetPlayerFullName playerName=%s,È«Ãû=%s len=%s > %s, check RoleNameFormat.txt(RšRzt GetChConfigRdtGetDictValueByRangeKeyttupleR( R!t
playerNametserverIDtroleNameFormatt
nameFormatt    paramListtmaxLent maxServerIDtspecServerDicttnameFormatInfotfullName((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlayerFullNamexs cCs"tjd|ƒ}t|||ƒS(Ni(trandomtrandinttGetResultByRiseList(trandListRt maxRateValuetrate((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetResultByRandomListŽscCs0x)|D]!}||dkr#qn|dSW|S(Nii((triseListtpointRt    smallList((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR(˜s
     cCsT||kr||Sx9|jƒD]+\}}t|tƒr!||kr!|Sq!W|S(N(RWR›R(tattrDicttfindKeyt defaultValueR½RË((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetDictValueByKey£s  cCs~||kr||Sxc|jƒD]U\}}t|tƒr!t|ƒdkr!|d|kom|dknr!|Sq!W|S(Niii(RWR›RR(tsrcDictR1R2trangeKeyRË((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR°s  EcCsftj|ƒ}xC|jƒD]5\}}||kr:qn||j|ƒ||<qW|j|ƒ|S(N(tcopytdeepcopyRWtpoptupdate(tadicttbdictR½RË((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytCombineSumDict»s  cCs$tjd|dƒ|kr dSdS(Nii(R&R'(R+tmaxRate((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt    CanHappenÊscCs9t|ƒ|jtjƒjtƒƒ}|j|ƒdS(sתÂëºóÔÙ·¢DebugAnswerN(RYtdecodeRÈtDef_Game_Character_EncodingtencodetGetCharacterEncodingt DebugAnswer(R!ttext((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRCÐs
 cCstjd|ƒS(NtChinMap(t IpyGameDataPYtGetIpyGameData(RÌ((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetMapÛscCstjd|ƒS(NtChinNPC(RFRG(tnpcID((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt
GetNPCDataÝscCs7tjdƒ}t|ƒdkr/tdƒdS|dS(Nt EncodingTexisEncodingTex.txt Error len != 2tutf8i(RzRãRRd(t encodingList((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRBàs
 
cCs^tjdƒ}t|ƒdkr/tdƒ|Sy |jtjƒjtƒƒSWn|SX|S(NRLisEncodingTex.txt Error len != 2(    RzRãRRdR?RÈR@RARB(t    inputTextRN((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt    GbkToCodeês
 cCs^tjdƒ}t|ƒdkr/tdƒ|Sy |jtƒƒjtjƒSWn|SX|S(NRLisEncodingTex.txt Error len != 2(    RzRãRRdR?RBRARÈR@(RORN((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt    CodeToGBKùs
 (qtIPY_GameServerR_R*RFRTRzRmRRÈRR(RjRRURøR&R6t IPY_GameWorldR3tServerRootPathRhR R RRRRR"R&R0R2R4R5R6R7R9R:R<R>R@RBRDRFRHRIRJRLRMRRRPR-RdRYRvRwR|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áRNRORæR÷R+RüRýRRRRR
R RRR%RtDef_MaxRateValueR,R(R3RR<R>RCRHRKRBRPRQ(((sME:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt<module>sØ