hwj35
2025-06-23 aa0f971ae9a59f0fd98d57b6c1d1663a270be92c
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
¹ûfc@sÕddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd    „Zd
„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-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((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__OpenFB=s    ##      cCsBtj|ƒ|jdƒ|jdƒ|jdƒ|jƒ}|jdƒ|jdƒ|jƒ}|j    ƒ}t
j d||j ƒfƒ|j tjƒ|jƒ}|jƒ}|dkrÇdS|tjkr|jtjƒ}|tjkrotjj|ƒt
jd|ƒqonQ|tjkro|jƒ}|tjkrotjj|ƒt
jd|ƒqontjƒ|tjkr›tjj|ƒntj |j!ƒƒ}    i}
g} t
j"ƒ} x6t#| j$ƒƒD]"} | j%| ƒ}| j&|ƒqÛWxÛ| D]Ó}| s|j'ƒr'qn|tjkrK|jtjƒ}n*|j(ƒtj)kro|j*ƒ}nd}|j+ƒ}|rÑ|j,ƒtj-krÑ|
j.|gƒ}|j&t/j0|ƒƒ||
|<n|j1ƒqW|    tj2kr«|
r«t
j3ƒ}tj4j.|iƒ}x“|
j5ƒD]‚\}}t
j d||ƒ|r‚|j.|dƒ}t6j7|d|g||j!ƒgƒq"t6j8d|g||j!ƒgƒq"Wn|j9ƒ}t:|tjƒ|j;ƒdkrt
j d|j;ƒƒ|j tj<ƒdS|j tjƒt=|ƒ|j>dƒtj4j|dƒdS(Nis%FB Close! lineID = %s, openState = %ss$Çå³ýµ¥È˸±±¾¾µÏñÖúÕ½ÐÅÏ¢: ownerID=%ss#Çå³ý×é¶Ó¸±±¾¶ÓÔ±¹ØÏµÐÅÏ¢: teamID=%ss·¢ËÍδʰȡµÄÎïÆ·¸øÍæ¼Ò: %st ItemNoPickUps¹Ø±Õ¸±±¾Ê±»¹ÓÐÍæ¼Ò! %s(@Rt    OnCloseFBR    R
tSetFBFirstOpenR tSetPlayerLogoffTicktSetIsSafeCloseRt GetCopyMapIDRRRRRt
fbosClosedtGetMapt GetMapFBTypet    fbtSingletGetGameFBDictByKeytChConfigtDef_FB_SingleFBPlayerIDt
PyGameDatatg_fbHelpBattlePlayerDicttpoptDebugLogtfbtTeamt GetPropertyIDtg_teamFBMemRelationDicttFBCommont
ClearFBNPCtg_fbRobotJobDicttGetRecordMapIDtGetMapIDtGetMapItemManagertxrangetGetMapItemCounttGetMapItemByIndextappendtIsEmptyt GetOwnerTypetDef_NPCHurtTypePlayert
GetOwnerIDtGetItemtGetTypetDef_ItemType_Moneytgett
ItemCommontGetMailItemDictt    DisappeartDef_SendUnPickItemMailMapIDListt IsCrossServertg_crossPlayerServerGroupIDInfotitemst PlayerControlt SendCrossMailt SendMailByKeytGetMapCopyPlayerManagerRtGetPlayerCounttfbosWaitForClosetFreeOrClearFBByAutoSizet SetPropertyIDtNone(RRt    gameFBMgrtlineIDt    copyMapIDtgameMaptfbTypetownerIDtteamIDtmapIDtunPickItemDictt mapItem_ListtmapItemManagertindext
curMapItemtmapItemtcurItemt mailItemListt isCrossServertplayerServerGroupIDDictt serverGroupIDt playerManager((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt    __CloseFBZsŠ             
     () 
 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-R tDef_CrossDynamicLineMapt GetRealMapIDRRRGRtOnGetCrossFuncLineDataCachetstrRtGetPlayerManagertGameServer_QueryPlayerResulttlenRR'(RtstateRRt    realMapIDRMtcrossFuncLineDataCachetmsgInfo((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyR½s   (#cCs?|jƒjƒdkr1tjƒ}|jƒn
|jƒdS(Ni(Rt GetAutoSizeRR tClearR(RR((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRHÒs  cCs™|jƒtjkrdS|jƒ}x6t|jƒƒD]"}|j|ƒ}tj|ƒq8Wt    j
ƒj dƒt    j d|jƒƒt ||ƒdS(Nis---------------%d(RRRREtrangeRFtGetPlayerByIndexRBt PlayerLeaveFBRR tGameServer_FbInfoRefreshRR_(RRR^tit    curPlayer((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__KickAllPlayerAndCloseFBás  cCs|jƒ}|dkrdStjƒjƒ}|dkr>dS||jƒ|krXdStj|ƒ|jƒ}x_td|jƒƒD]H}|j    |ƒ}||j
ƒ}||dkrÂq‡nt j |ƒq‡Wtj d|jƒ|jƒfƒt||ƒt|tjƒdS(Niis4__ProcessTimeKickPlayer! LineID = %s, openState = %s(RRRt GetExistTimeRt DoFBTimeOutRERnRFRot GetLoginTickt
EventShelltEventResponse_OnFBTimeOutRRRRtRRR(RRtopenTickt    existTimeR^RrRstplayerExistTime((sxE:\SnxxServerCode\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
R tDef_FBKickPlayerTimeRRRRt(RRt closeFBTick((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessFBDelayKickPlayer&s   # cCs.|jƒsdSt||ƒ|jdƒdS(Ni(tGetFBFirstOpenRR(RR((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt __ProcessOpenBs
   cCs9tjƒ}tjƒjƒdkr(dSt||ƒdS(Ni(Rt GetGameWorldRRlRƒ(RR((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt EnterOpenFBQs 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    GetInitOKRERFtIsNoPlayerNeedCloseFBRR tGetCurGameWorldIndexR"tg_lastExitFBTypeR tDef_EmptyFBKeepTimeR$tGetPlayerLogoffTicktGetIsSafeCloseRRRRt(    RRR^RtfbIndext
exitFBTypetexitTicktpassTickt
logOffTick((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessClose_s2         
       # cCsptjs dS||jƒdkr'dStjƒ}|jƒtjkrLdS|j|ƒ|j    ƒt
t_dS(Ni
ièi'( R"tg_needRefreshMapServerStatetGetSyncMapServerStateTickRRRRtfbtNulltSetSyncMapServerStateTicktGameServer_MapServerStatetFalse(RRRN((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessRefreshMapServerStatešs      
    cCsctjƒ}|jtjƒ}|dkr.dS||tjtjkrLdS|jtj|ƒdS(Niÿÿÿÿ(RR„t GetTickByTypeR tTYPE_Map_Tick_MapAcPlayertTYPE_Map_Tick_Timet SetTickByType(RRtlastTick((sxE:\SnxxServerCode\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(RRtCanMovetGetPosXtGetPosYtGameMaptGetNearbyPosByDisR tDef_RebornPos_Area_RangeRR-Rt    cmeCustomtDef_FB_SystemAssignMapIDListRetIsPlayerCanLogint cmePlayerFullRlt IsMapCopyFulltGetBMChangeMapAskCountR)tCheckFBStateCanEnterttypettupletlistRtOnChangeMapAskRJt    cmeAccept(
Rt    askStructRRNtnearPosXtnearPosYtcheckRettcanEntert
notifyMarktchangeMapAskResult((sxE:\SnxxServerCode\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„RnR¬tGetBMChangeMapAskAtRºR®tinttRouteServer_ChangeMapAnswert GetPlayerIDtClearBMChangeMapAsk(RRRrtasktresult((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessChangeMapAskós %
cCstjtƒ|ƒdS(N(Rt GetPsycoFunct__Func_OnGameWorldProcess(R((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pytOnGameWorldProcessscCsötjƒ}|jƒsdSt||ƒt||ƒt||ƒt||ƒt|ƒt|ƒt    j
|ƒt ||ƒt ||ƒtj ƒ}t||ƒt||ƒt|ƒtjƒtj|ƒtj||ƒtj||ƒdS(N(RR„R†RƒR}RR’RŸRÃRt    OnProcessR™t__ProcessRouteServertGetCurrentTimet __OnMapMinutet__RefreshOnMinutet__RefreshOnFiveMinutet EventReporttOnTimeCloseScribeTxtt FamilyRobBosstOnFamilyOwnerBossProcesstNPCCustomRefreshtProcessMapRandomRefreshNPCtNPCRealmRefreshtProcessRealmNPCRefresh(RRtcurTime((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRÅ s*      
 
 
 
 cCsg|jtjƒ}|dkr"dS||tjtjkr@dS|jtj|ƒtjƒjƒdS(Niÿÿÿÿ(RšR t!TYPE_Map_Tick_SendMsg_RouteServerRœRRR„t SendHeartBeat(RRRž((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRÈ=s cCsltjƒ}tjƒtjƒtj|ƒ|jt    j
ƒt j ƒt |ƒ|jtƒ|jƒdS(N(RR„R;t
InitPyItemRxtDoReloadRefreshRtOnInittSetTickTypeCountR tTYPE_Map_Tick_CountRÍt InitDllAppIDtGameServer_CommMapServerInitOKt    SetInitOKtTruetBalanceServer_MapServerInitOK(RR((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt InitGameWorldRs 
 
 
 
 
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•RdR-RRbRReRfRgR)R,R RatGetGameWorldCount(RRkt    dataMapID((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRÞds0+++cCs3tjƒj|ƒtjƒ}t|tjƒdS(N(RR„R
RRRG(RR((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pytCloseFBƒs cCstjƒ}|jƒ}|jƒdkr.dStƒs;dS|jƒ}|jƒdkr{ttjƒtjƒjƒƒndS(Nii(    RR„RRR‡RERFR_tGetTick(RRNR^((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pytOnPlayerLeaveMapCloseFBŽs       cCs\tjƒjƒr5tjƒjƒtjkr1tStStjƒjƒtjkrTtStSdS(N(    RRRlR-R tDef_NoPlayerNotCloseAutoSizeMapR˜RàtDef_NoPlayerCloseNotAutoSizeMap(((sxE:\SnxxServerCode\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(RVRtpackR((sxE:\SnxxServerCode\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((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyR÷Õs
  cCsYtjƒ}|jtjƒ}tjtj}|||krBdS|jtj|ƒdS(N(RR„RšR tTYPE_Map_Tick_ProcessFiveMinuteRœR(RRRžt tickInterval((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRÌãs cCs­tjƒ}|jtjƒ}tjtj}|||krBdS|jtj|ƒtjƒ}xEt|j    ƒƒD]1}|j
|ƒ}|s•qtnt |||ƒqtWdS(N( RR„RšR tTYPE_Map_Tick_ProcessMinuteRœRRER/RFRot__ProcessHalfHour(RÕRRRžRúR^RVRs((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRËös  cCs@|j}|tjkrdS|t_tj|ƒt|ƒdS(N(tminuteR"tg_mapLastProcess_Minutet
PlayerTeamt"OnCheckTeamPlayerDisconnectTimeoutt__CheckIpyDataRecycle(RÕRt    curMinute((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRÊs         
cCsŽtjƒjƒ}|r%dt_dStj|ƒ}tjsJ|t_dStjdkr]dS|tjdkrtdSdt_tjjƒdS(Niiiii€Q(    RRet OnlineCountR"tg_ipyDataRecycleCheckTimetChangeDatetimeToNumt IpyGameDataPYtIPYDatatRecycle(ttimeNowt playerCountRÕ((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRs                 cCs$|jdkrdStj|ƒdS(Nii(ii(RýRxtEventResponse_OnHalfHour(RsRÕR((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRü1s (.RRR RBRÏRÑRxRR)t ShareDefineRÍR;R"RÿR¤RÓRRR_RRHRtR}RRƒR…R’R™RŸRºRÃRÆRÅRÈRâRÞRçRéR‡RóR÷RÌRËRÊRRü(((sxE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt<module>&sZ                         c                -                ;            ,            0