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
ê“[c@s0ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    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;„ZLdd<d=„ZMd>„ZNd?„ZOd@„ZPdA„ZQdB„ZRdC„ZSdD„ZTdE„ZUejVdF„ZWejVdG„ZXejVdH„ZYdI„ZZdJ„Z[dK„Z\dL„Z]dM„Z^dN„Z_dejadO„ZbddP„ZcddQ„ZdddR„ZedS„ZfejadT„ZgdU„ZhdV„ZidW„ZjdX„ZkdY„ZldZ„ZmdS([iÿÿÿÿNticCsb|jdƒ}t|ƒdkr%dSx6|D].}t||ƒtkrKdSt||ƒ}q,W|S(Ns.i(tsplittlentNonethasattrtTruetgetattr(t
curCallObjtcallNametcallListt curCallName((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytParseNameGetObj>s cCs9t||ƒ}|dkrdSt|ƒtkr5dS|S(N(R RtcallableR(RR((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetExecFuncQs  cCsttj|ƒƒS(N(tinttmathtceil(tx((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetFloatUpperascCsttj|t|ƒƒƒS(N(RRRtfloat(Rtdiv((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetIntUpperiscCs-yt|ƒ}|SWntk
r(|SXdS(N(Rt
ValueError(tinputtdefValuetresult((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytToIntDefqs
  cCsH|jƒ|jƒkrtS|jƒdks@|jƒdkrDtStS(Ni(t
GetCountryRtFalse(tsrcObjtdesObj((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt IsSameCountry~s
$cCs|jƒdkrdStS(NiiZ(iiZ(t
GetGMLevelR(t    curPlayer((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytIsGM‹scCs&ttƒƒ}|jdƒd}|S(Ns.i(tstrt GetServerTimeR(t
curTimeStr((s=.\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((s=.\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/((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetDateTimeByFormatStr®scCs
tjƒS(N(t GameWorldDatatGetGameWorldEventManager(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR4¼scCstS(N(R3(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetGameWorldÄscCs
tjƒS(N(R3tGetPlayerManager(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR6ÌscCs
tjƒS(N(R3tGetTeamManager(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR7ÔscCs
tjƒS(N(R3tGetTruckManager(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetTruckManangerÜscCs
tjƒS(N(R3tGetFamilyManager(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR:äscCs
tjƒS(N(R3tGetBillboardManager(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetBillboardìscCs
tjƒS(N(R3tGetAllMailList(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetMailManagerõscCs
tjƒS(N(R3tGetFamilyTechMgr(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetFamilyTechManagerýscCs
tjƒS(N(R3t GetVSRoomMgr(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetVSRoomManagerscCs
tjƒS(N(R3tGetVsRewardMgr(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetVsRewardManager scCs
tjƒS(N(R3tGetFamilyActionMgr(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetFamilyActionManagerscCs
tjƒS(N(R3tGetFBPassRecMgr(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetFBPassRecManagerscCs
tjƒS(N(R3tGetUniversalRecMgr(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRI&scCs
tjƒS(N(R3tGetBourseManager(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRJ.scCs
tjƒS(N(R3tGetHighLadderManager(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetHightLadderMgr6scCs
tjƒS(N(R3tGetCompensationMgr(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRM>scCs%tƒrt|ƒdSt|ƒdS(N(t__GetPsycoIsOpent PsycoReloadt
__DoReload(ttick((s=.\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((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRPUs$  cCstjd|||fƒdS(Ns%s    %s    %s(tLogUItMsg(tmsgtplayerIDtpar((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR-hscCstjd|||fƒdS(Ns%s    %s    ###Error:%s(R_R`(RaRbRc((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytErrLogrscCs1tƒjƒsdStjd|||fƒdS(Ns%s    %s    PyDebug:%s(R5t GetDebugLevelR_R`(RaRbRc((s=.\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((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetMergeServerID†s 
   cCs tƒjƒS(N(R5tGetServerVersion(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRw¡scCs^tƒ}t|ƒ}|sdStdtd|ƒƒ}tdtdtƒƒƒ}|d|S(NiiiÐi?Bi@B(t GetPlatformtGetPlatformServerNumtmaxtmint GetServerID(tplatformt    serverNumtserverID((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetServerGroupID¤s     cCstjdƒ}|j|dƒS(Nt DBPlatformNumi(t ReadChConfigtGetDBEvalChConfigRp(R}tplatformNumDict((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRy²scCstjddƒS(NR}t PlatformName(R‚tGetPyMongoConfig(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyRx¿scCsttƒddƒS(Nii(Rt GetServerSID(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR|ÅscCstjddƒS(NR}Rg(R‚R†(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR‡Èss@cCsC|jƒ}|jtƒ}t|ƒdkr1dSt|ddƒS(Niiiÿÿÿÿi(tGetAccIDRtDef_AccID_Split_SignRR(R!taccIDtinfoList((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlayerServerIDÒs cCs9|jƒ}|jtƒ}t|ƒdkr1dS|dS(NiRiÿÿÿÿ(RˆRR‰R(R!RŠR‹((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlayerServerSID×s cCs6ttjdd|ƒdƒ}|dkr/|StƒS(NR}s%sMainServerID(RR‚R†RR|(t accIDPlatformt mainServerID((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlayerMainServerIDÝs cCs-|jtƒ}t|ƒdkr%dS|dS(NiRiþÿÿÿ(RR‰R(t    gameAccIDR‹((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlayerPlatformæscCs,|jtƒ}|d }tj|ƒ}|S(Niþÿÿÿ(RR‰tjoin(R‘R‹t
paInfoListt platformAccID((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlatformAccIDës
cCst|ƒ}|jddƒS(Nt channel_codeR(t GetUserDataRp(R!t userDataDict((s=.\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((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR˜ýs cCs"| s|jƒ rdS|jƒS(Ni(t    GetInitOKt GetRealMapID(t    tagPlayer((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetQueryPlayerMapIDscCs tjjƒS(N(R(ttoday(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR$scCs9tƒ}t|ƒ}|dks-|dkr1dS||S(N(R$R0R(tcompareTimeStrt curDataTimetcompareDataTime((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt__GetPastTimeDelta%s
     cCs1t|ƒ}|dkr*td|ƒdS|jS(NsGetPastDay Err dateTimeStr = %si(R¨RRdtdays(t dateTimeStrt pastTimeDelta((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt
GetPastDay4s
  cCs@t|ƒ}|dkr*td|ƒdS|jd|jdS(Ns GetPastHour Err dateTimeStr = %siii(R¨RRdR©tseconds(RªR«((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetPastHourBs
  cCsDt|ƒ}|dkr*td|ƒdS|jddd|jS(Ns#GetPastSeconds Err dateTimeStr = %siii<(R¨RRdR©R­(RªR«((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPastSecondsPs
  cCsWtƒ}|j|ƒ}|dkr(tS||tj|krCtS|j||ƒtS(Niÿÿÿÿ(R5t GetTickByTypeRR*tTYPE_Tick_Timet SetTickByTypeR(tkeyRQtworldMgrtlastTick((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytSetWorldDictKey_s     cCs]t|ƒ}|j|ƒ}|s5|j||ƒtS|||krItS|j||ƒtS(N(R#RXR\RR(R!R³RµRQtcurPlayerKeyValue((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytSetPlayerDictKeyts cCsbd|}|j|ƒ}|s3|j||ƒtS||tj|krNtS|j||ƒtS(NsPlayer_Tick_%s(RXR\RR*tTYPE_Player_Tick_TimeR(R!ttickTypeRQtdictKeyRµ((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytRefurbishPlayerTick‰s
icCs*tƒj|d|tj|f|ƒdS(Ns%s%s%s(R5tSendMapServerMsgt ShareDefinetDef_Notify_Separator(tkeyNametvaluetmapIDtrouteServerIndex((s=.\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((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytSendCommMapServerMsg¦s  cCsTt|d|ddƒ}tt||dƒdƒ}t|||ƒ}||fS(Nii(RzR{(t viewPageIndext singePageCntttotalCnttendIndext
startIndex((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetViewPageBeginIndexAndEndIndex¹scCstƒtjd|ƒS(NR©(R$R(t    timedelta(tdiffDays((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetDatetimeByDiffDaysÆscCs|S(N((tfunc((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetPsycoFuncÎscCs tjdƒS(Nt PsycoSwitch(R‚tGetEvalChConfig(((s=.\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((s=.\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((s=.\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((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytChangeInputTimescCstj|tj|ƒƒS(N(ttimetstrftimet    localtime(ttimeNumR1((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytChangeTimeNumToStrscCs.tj|tj|ƒƒ}tjj||ƒS(N(RíRîRïR(R)(RðR1R.((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytChangeTimeNumToDatetime"scCs.tjj||ƒjƒ}ttj|ƒƒS(N(R(R)t    timetupleRRítmktime(R.R1((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytChangeTimeStrToNum)scCstjjƒtjd|ƒS(NR©(R(R¤RÒ(RÓ((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetDatetimeBySubDays2scCstjƒ}|jddƒS(NtIsMergeWarServei(t
GameConfigt    GetConfigRp(tconfig((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt IsMergeServer9s cCs2tjƒ}|jdƒs*|jdƒr.tStS(Nt MergeServerIPR÷(RøRùRpRR(Rú((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt IsMergeOpenAs cCsO|jƒjƒ}|jƒjƒ}tjdƒ}t|jddƒƒ}|S(Nt AreaNameInfotNameExprR(tGetAccountInfot GetOperatort    GetAreaIDR‚RØR›Rp(R!toperatortareaIDt areaNameInfotareaName((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt GetAreaNameJs
cCst|ƒ}tj|ƒS(N(RtCommFunct    GetStrCrc(R!R((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt
GetAreaCrcXs 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›R‚t GetChConfigRdtGetDictValueByRangeKeyttupleR( R!t
playerNameRtroleNameFormatt
nameFormatt    paramListtmaxLent maxServerIDtspecServerDicttnameFormatInfotfullName((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetPlayerFullName^s cCs"tjd|ƒ}t|||ƒS(Ni(trandomtrandinttGetResultByRiseList(trandListRt maxRateValuetrate((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetResultByRandomListtscCs0x)|D]!}||dkr#qn|dSW|S(Nii((triseListtpointRt    smallList((s=.\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Á((s=.\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(tsrcDictR$R%trangeKeyRÁ((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR –s  EcCsftj|ƒ}xC|jƒD]5\}}||kr:qn||j|ƒ||<qW|j|ƒ|S(N(tcopytdeepcopyRWtpoptupdate(tadicttbdictR³RÁ((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytCombineSumDict¡s  cCs$tjd|dƒ|kr dSdS(Nii(RR(RtmaxRate((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt    CanHappen°scCs9t|ƒ|jtjƒjtƒƒ}|j|ƒdS(sתÂëºóÔÙ·¢DebugAnswerN(RYtdecodeR¾tDef_Game_Character_EncodingtencodetGetCharacterEncodingt DebugAnswer(R!ttext((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR6¶s
 cCstjd|ƒS(NtChinMap(t IpyGameDataPYtGetIpyGameData(RÂ((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pytGetMapÁscCstjd|ƒS(NtChinNPC(R9R:(tnpcID((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt
GetNPCDataÃscCs7tjdƒ}t|ƒdkr/tdƒdS|dS(Nt EncodingTexisEncodingTex.txt Error len != 2tutf8i(R‚RØRRd(t encodingList((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyR5Æs
 
cCs^tjdƒ}t|ƒdkr/tdƒ|Sy |jtjƒjtƒƒSWn|SX|S(NR?isEncodingTex.txt Error len != 2(    R‚RØRRdR2R¾R3R4R5(t    inputTextRA((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt    GbkToCodeÐs
 cCs^tjdƒ}t|ƒdkr/tdƒ|Sy |jtƒƒjtjƒSWn|SX|S(NR?isEncodingTex.txt Error len != 2(    R‚RØRRdR2R5R4R¾R3(RBRA((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt    CodeToGBKßs
 (ntIPY_GameServerR_R*R9RTR‚RmRøR¾RR(RjRRURíRR)t IPY_GameWorldR3tServerRootPathRhR R RRRRR"R&R0R2R4R5R6R7R9R:R<R>R@RBRDRFRHRIRJRLRMRRRPR-RdRYRvRwR€RyRxR|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òRõRöRûRýRR
RRtDef_MaxRateValueRRR&R R/R1R6R;R>R5RCRD(((s=.\ServerPython\CoreServerGroup\GameServer\Script\GameWorld.pyt<module>sÒ