hxp
2025-08-25 b7154533a3f9db72d0dfc28f21b19ee4aadf1b51
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
.¬hc@suddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z d„Z d„Z d„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$dS(iÿÿÿÿNcCsÖ|jƒdkrBtjd|jƒ|jƒ|jƒfƒdStjd|jƒ|jƒfƒ|jtjƒ|j    |ƒ|j
dƒtj ƒ}|j dƒ|j |ƒtj|ƒt|tjƒdS(Nis5FB Open! lineID = %s, openState = %s, OpenFBTick = %ss$FB Open! lineID = %s, openState = %s(t GetOpenFBTickt    GameWorldtErrLogt    GetLineIDt GetOpenStatetLogt SetOpenStatet IPY_GameWorldtfbosOpent SetOpenFBTicktSetCloseFBTickt    GetGameFBt    SetFBStept SetFBStepTicktFBLogictOnOpenFBt$GameServer_DynamicLineMapStateChange(t    gameWorldtticktgameFB((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__OpenFB8s    ##      cCsØtj|ƒ|jdƒ|jdƒ|jdƒ|jƒ}|jdƒ|jdƒ|jƒ}|j    ƒ}t
j d||j ƒfƒ|j tjƒ|jƒ}|jƒ}|dkrÇdS|tjkrÙnQ|tjkr*|jƒ}|tjkr*tjj|ƒt
jd|ƒq*ntjƒ|tjkrVtjj|ƒntj|jƒƒ}i}    g}
t
jƒ} x6t| j ƒƒD]"} | j!| ƒ} |
j"| ƒq–WxÛ|
D]Ó}| sÃ|j#ƒrâqÃn|tjkr|j$t%j&ƒ}n*|j'ƒt%j(kr*|j)ƒ}nd}|j*ƒ}|rŒ|j+ƒt%j,krŒ|    j-|gƒ}|j"t.j/|ƒƒ||    |<n|j0ƒqÃW|t%j1krA|    rAt
j2ƒ}tj3j-|iƒ}xn|    j4ƒD]]\}}t
j d||ƒ|r|j-|dƒ}qÝt5j6d|g||jƒgƒqÝWn|j7ƒ}t8|tjƒ|j9ƒdkršt
j d|j9ƒƒ|j tj:ƒdS|j tjƒt;|ƒ|j<dƒtj3j|dƒdS(Nis%FB Close! lineID = %s, openState = %ss#Çå³ý×é¶Ó¸±±¾¶ÓÔ±¹ØÏµÐÅÏ¢: teamID=%ss·¢ËÍδʰȡµÄÎïÆ·¸øÍæ¼Ò: %st ItemNoPickUps¹Ø±Õ¸±±¾Ê±»¹ÓÐÍæ¼Ò! %s(>Rt    OnCloseFBR    R
tSetFBFirstOpenR tSetPlayerLogoffTicktSetIsSafeCloseRt GetCopyMapIDRRRRRt
fbosClosedtGetMapt GetMapFBTypet    fbtSingletfbtTeamt GetPropertyIDt
PyGameDatatg_teamFBMemRelationDicttpoptDebugLogtFBCommont
ClearFBNPCtg_fbRobotJobDicttGetRecordMapIDtGetMapIDtGetMapItemManagertxrangetGetMapItemCounttGetMapItemByIndextappendtIsEmptytGetGameFBDictByKeytChConfigtDef_FB_SingleFBPlayerIDt GetOwnerTypetDef_NPCHurtTypePlayert
GetOwnerIDtGetItemtGetTypetDef_ItemType_Moneytgett
ItemCommontGetMailItemDictt    DisappeartDef_SendUnPickItemMailMapIDListt IsCrossServertg_crossPlayerServerGroupIDInfotitemst PlayerControlt SendMailByKeytGetMapCopyPlayerManagerRtGetPlayerCounttfbosWaitForClosetFreeOrClearFBByAutoSizet SetPropertyIDtNone(RRt    gameFBMgrtlineIDt    copyMapIDtgameMaptfbTypetteamIDtmapIDtunPickItemDictt mapItem_ListtmapItemManagertindext
curMapItemtmapItemtownerIDtcurItemt mailItemListt isCrossServertplayerServerGroupIDDictt serverGroupIDt playerManager((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt    __CloseFBUs‚             
     ) 
 cCsítj|jƒƒ}|tjkr(dS|jƒ}|jƒ|jƒ}}|tjkr€t    j
ƒ}|||||g}n||||g}t |ƒ}t j ƒjdddd|t|ƒƒt jd|||jƒ|fƒdS(NitDynamicLineMapStateChangesMDynamicLineMapStateChange realMapID=%s, copyMapID=%s, PropertyID=%s, state=%s(R%R(R)R1tDef_CrossDynamicLineMapt GetRealMapIDRRRERtOnGetCrossFuncLineDataCachetstrRtGetPlayerManagertGameServer_QueryPlayerResulttlenRR (RtstateROt    realMapIDRKtcrossFuncLineDataCachetmsgInfo((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyR¶s   (#cCs?|jƒjƒdkr1tjƒ}|jƒn
|jƒdS(Ni(Rt GetAutoSizeRR tClearR(RR((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRFËs  cCs™|jƒtjkrdS|jƒ}x6t|jƒƒD]"}|j|ƒ}tj|ƒq8Wt    j
ƒj dƒt    j d|jƒƒt ||ƒdS(Nis---------------%d(RRRRCtrangeRDtGetPlayerByIndexRAt PlayerLeaveFBRR tGameServer_FbInfoRefreshRR](RRR\tit    curPlayer((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__KickAllPlayerAndCloseFBÚs  cCs
|jƒ}|dkrdStjƒjƒ}|dkr>dS||jƒ|krXdStj|ƒ|jƒ}xRtd|jƒƒD];}|j    |ƒ}||j
ƒ}||dkr‡q‡q‡q‡Wtj d|j ƒ|j ƒfƒt||ƒt|tjƒdS(Niis4__ProcessTimeKickPlayer! LineID = %s, openState = %s(RRRt GetExistTimeRt DoFBTimeOutRCRlRDRmt GetLoginTickRRRRrRRR(RRtopenTickt    existTimeR\RpRqtplayerExistTime((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessTimeKickPlayeròs&     
# cCs|jƒ}|dkrdS|jƒtjkrB|jdƒdS||tjkrYdStjd|j    ƒ|jƒfƒt
||ƒdS(Nis7__ProcessFBDelayKickPlayer! LineID = %s, openState = %s( tGetCloseFBTickRRRR
R1tDef_FBKickPlayerTimeRRRRr(RRt closeFBTick((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessFBDelayKickPlayers   # cCs.|jƒsdSt||ƒ|jdƒdS(Ni(tGetFBFirstOpenRR(RR((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt __ProcessOpen8s
   cCs9tjƒ}tjƒjƒdkr(dSt||ƒdS(Ni(Rt GetGameWorldRRjR(RR((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt EnterOpenFBGs c    Cs5|jƒsdS|jƒ}|jƒdkr2dStƒs?dStjƒ}|jƒ}|tjkr¸tj|\}}|dkr¥||}|t    j
kr¥dSntjj |ƒn@|j ƒ}|dkrÔdS|j ƒ rø||t    j
krødStjd|jƒ|jƒ|j ƒfƒt||ƒdS(Niis=__ProcessClose! LineID = %s, openState = %s, isSafeClose = %s(t    GetInitOKRCRDtIsNoPlayerNeedCloseFBRR tGetCurGameWorldIndexR!tg_lastExitFBTypeR1tDef_EmptyFBKeepTimeR#tGetPlayerLogoffTicktGetIsSafeCloseRRRRr(    RRR\RtfbIndext
exitFBTypetexitTicktpassTickt
logOffTick((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessCloseUs2         
       # cCsptjs dS||jƒdkr'dStjƒ}|jƒtjkrLdS|j|ƒ|j    ƒt
t_dS(Ni
ièi'( R!tg_needRefreshMapServerStatetGetSyncMapServerStateTickRRRRtfbtNulltSetSyncMapServerStateTicktGameServer_MapServerStatetFalse(RRRL((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessRefreshMapServerStates      
    cCsctjƒ}|jtjƒ}|dkr.dS||tjtjkrLdS|jtj|ƒdS(Niÿÿÿÿ(RR€t GetTickByTypeR1tTYPE_Map_Tick_MapAcPlayertTYPE_Map_Tick_Timet SetTickByType(RRtlastTick((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessMapServerAcPlayer§s  c
Cstjƒ}|j|jƒ|jƒƒs¨tj|jƒ|jƒtjƒ\}}|dkr¨|dkr¨tj    d|j
ƒ|jƒ|jƒfƒt j dfSn|j
ƒtj kr|jƒjƒsÖt jS|jƒr|j|jƒƒrt jSntj|ƒ}t|ƒttgkr7|df}n|\}}|sVt j |fStj||ƒ}    |    dkr{t jS|    S(Nis@´«ËÍÖÁÄ¿±êµãΪÕϰ­µã, ´«ËÍʧ°Ü, mapid = %s, posX = %s, posY = %ss#04BBF813-7A30-47A8-927DE1ACCC4F378EtFB_andyshao_861048(RRtCanMovetGetPosXtGetPosYtGameMaptGetNearbyPosByDisR1tDef_RebornPos_Area_RangeRR)Rt    cmeCustomtDef_FB_SystemAssignMapIDListRctIsPlayerCanLogint cmePlayerFullRjt IsMapCopyFulltGetBMChangeMapAskCountR%tCheckFBStateCanEnterttypettupletlistRtOnChangeMapAskRHt    cmeAccept(
Rt    askStructRRLtnearPosXtnearPosYtcheckRettcanEntert
notifyMarktchangeMapAskResult((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessCurrentChangeMapAsk½s, *    #!
   cCsštjƒ}x}t|jƒƒD]i}|j|ƒ}t|||ƒ}t|ƒtkrg|df}n|j|j    ƒ|d|dƒqW|j
ƒdS(Ntii( RR€RlR¨tGetBMChangeMapAskAtR¶RªtinttRouteServer_ChangeMapAnswert GetPlayerIDtClearBMChangeMapAsk(RRRptasktresult((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessChangeMapAskés %
cCstjtƒ|ƒdS(N(Rt GetPsycoFunct__Func_OnGameWorldProcess(R((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pytOnGameWorldProcessûscCs¶tjƒ}|jƒsdStj|ƒt||ƒt||ƒt||ƒt||ƒt    |ƒt
|ƒt j |ƒt ||ƒt||ƒtjƒtj||ƒdS(N(RR€R‚tGameWorldEventt OnHighProcessRRyR}RŽR›R¿Rt    OnProcessR•t__ProcessRouteServert EventReporttOnTimeCloseScribeTxttNPCRealmRefreshtProcessRealmNPCRefresh(RR((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRÁs        
 
 
cCsg|jtjƒ}|dkr"dS||tjtjkr@dS|jtj|ƒtjƒjƒdS(Niÿÿÿÿ(R–R1t!TYPE_Map_Tick_SendMsg_RouteServerR˜R™RR€t SendHeartBeat(RRRš((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRÆ+s cCsXtjƒ}tjƒtj|ƒ|jtjƒt    j
ƒ|j t ƒ|j ƒdS(N(RR€R:t
InitPyItemRtOnInittSetTickTypeCountR1tTYPE_Map_Tick_CountRÇt InitDllAppIDt    SetInitOKtTruetBalanceServer_MapServerInitOK(RR((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt InitGameWorld@s 
 
 
c    Cstjƒjƒtjkrvt|jƒ|jƒ|jƒ|j    ƒgƒ}tj
ƒj dddd|t |ƒƒnt j|jƒƒ}|tjkrÿ|j    ƒ|jƒdkrÿt|jƒ|jƒgƒ}tj
ƒj dddd|t |ƒƒndS(s‡
    Í¨ÖªGameServerµØÍ¼Æô¶¯Íê±Ï
    GetMapID=10010,GetLineID=0,GetRealMapID=10010,GetCopyMapID=0,GetLineNO=-1
    GetMapID=10010,GetLineID=1,GetRealMapID=10010,GetCopyMapID=1,GetLineNO=-1
    GetMapID=10010,GetLineID=2,GetRealMapID=10010,GetCopyMapID=2,GetLineNO=-1
    GetMapID=10010,GetLineID=3,GetRealMapID=10010,GetCopyMapID=3,GetLineNO=-1
    GetMapID=10010,GetLineID=4,GetRealMapID=10010,GetCopyMapID=4,GetLineNO=-1
    GetMapID=10010,GetLineID=5,GetRealMapID=10011,GetCopyMapID=0,GetLineNO=-1
    GetMapID=10010,GetLineID=6,GetRealMapID=10011,GetCopyMapID=1,GetLineNO=-1
    GetMapID=10010,GetLineID=7,GetRealMapID=10011,GetCopyMapID=2,GetLineNO=-1
    GameWorld.DebugLog("GetMapID=%s,GetLineID=%s,GetRealMapID=%s,GetCopyMapID=%s,GetLineNO=%s" 
                       % (gameWorld.GetMapID(), gameWorld.GetLineID(), gameWorld.GetRealMapID(), gameWorld.GetCopyMapID(), gameWorld.GetLineNO()))
    itCommMapServerInitOKitDynamicLineMapInitOKN(RRRRR‘RbR)RR`RRcRdReR%R(R1R_tGetGameWorldCount(RRit    dataMapID((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pytGameServer_CommMapServerInitOKSs0+++cCs3tjƒj|ƒtjƒ}t|tjƒdS(N(RR€R
RRRE(RR((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pytCloseFBrs cCstjƒ}|jƒ}|jƒdkr.dStƒs;dS|jƒ}|jƒdkr{ttjƒtjƒjƒƒndS(Nii(    RR€RRRƒRCRDR]tGetTick(RRLR\((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pytOnPlayerLeaveMapCloseFB}s       cCs\tjƒjƒr5tjƒjƒtjkr1tStStjƒjƒtjkrTtStSdS(N(    RRRjR)R1tDef_NoPlayerNotCloseAutoSizeMapR”RÓtDef_NoPlayerCloseNotAutoSizeMap(((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRƒŽscCsttjƒ}tjƒ}|jd|jƒƒ|jd|jƒƒ|jd|jƒƒ|jd|jƒƒdS(Niiii(    RtIPY_MPlayerCountByCountryRR€tSetPlayerByCountryCounttGetCountry1CounttGetCountry2CounttGetCountry3CounttGetCountryOtherCount(RSRtpackR((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pytGameSever_PlayerCountByCountry­s  cCsFtjdƒtjƒjdddddƒtjƒjd|ƒdS(Ns×¢²á¼¶Áª¼ÆÊ±Æ÷t ProcessFighti‚t PlayerStatetPlayerProcessFighti(RRR€t
RegLvTimert StartLvTimer(R((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRëÄs
  c Csîddlm}ddlm}m}m}ddlm}ddl}ddl    }ddl
}|j |j |j j|jƒ|jdƒƒ}    |    |j |j|j j|jƒ|jdƒƒ7}    |    |j |j|j j|jƒ|jdƒƒ7}    |    |j |j|j j|jƒ|jdƒƒ7}    y…|j|    d    ƒ}
d
} |j| |jƒ} |j| t|
ƒ|
ƒ} tjd t|
ƒt| ƒfƒ|j| t| ƒƒWn6|jd |jd tjƒƒ} tj | ƒnXdS(Niÿÿÿÿ(tDataServerGameData(tGlobalFunctionst CommonDefineterror(tCommFuncstagChinNPC.txtstagChinSkill.txtstagChinItem.txtstagChinMap.txti    R·s(Load game sys data for len = %s - %s ok!tfatals)Compress game sys data failed!error = 
%s(!tPyMongoDB.CollectionsRítPyMongoDB.DBCommonRîRïRðtPyMongoDB.CommonRñt NetPackCommontostzlibtsysDBLoadFromFilet
tagChinNPCtpathtjointgetServerConfigPatht
SYSDB_PATHt tagChinSkillt tagChinItemt
tagChinMaptcompresst    WriteBYTEt
dgGameDatat WriteStringReRRtSendPyPackToMapServerSelft    formatMsgt ERROR_NO_53t    tracebackt
format_excR( RRíRîRïRðRñRöR÷RøtsysDatatcompressSysDatatdatatmsg((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt ReadShareDataÓsB        #"(%RRR1RARR%RÇR:R!R RÉRÃRR]RRFRrRyR}RRRŽR•R›R¶R¿RÂRÁRÆRÕRÚRÛRÝRƒRçRëR(((swD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt<module>&sH                    a                *                ;            ,            (