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
Ç¿r[c@s~ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    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$d„Z%dS(iÿÿÿÿNcCsÆ|jƒdkrBtjd|jƒ|jƒ|jƒfƒdStjd|jƒ|jƒfƒ|jtjƒ|j    |ƒ|j
dƒtj ƒ}|j dƒ|j |ƒ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 SetFBStepTicktFBLogictOnOpenFB(t    gameWorldtticktgameFB((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__OpenFB8s    ##      cCs¾tj|ƒ|jdƒ|jdƒ|jdƒ|jƒ}|jdƒ|jdƒtj    d|j
ƒ|j ƒfƒ|j t jƒ|jƒ}|jƒ}|dkrµdStjƒtj|jƒƒ}i}g}tjƒ}x6t|jƒƒD]"}    |j|    ƒ}
|j|
ƒqÿWxÛ|D]Ó} | s,| jƒrKq,n|t jkro|jtjƒ} n*| jƒtj kr“| j!ƒ} nd} | j"ƒ} | rõ| j#ƒtj$krõ|j%| gƒ}|jt&j'| ƒƒ||| <n| j(ƒq,W|tj)krn|rnxS|j*ƒD]B\} }tj    d|| ƒt+j,d| g||jƒgƒq%Wn|j-ƒ}|j.ƒdkr |j t j/ƒdS|j t jƒt0|ƒdS(Nis%FB Close! lineID = %s, openState = %ss·¢ËÍδʰȡµÄÎïÆ·¸øÍæ¼Ò: %st ItemNoPickUp(1Rt    OnCloseFBR    R
tSetFBFirstOpenR tSetPlayerLogoffTicktSetIsSafeCloseRRRRRRt
fbosClosedtGetMapt GetMapFBTypetFBCommont
ClearFBNPCtGetRecordMapIDtGetMapIDtGetMapItemManagertxrangetGetMapItemCounttGetMapItemByIndextappendtIsEmptyt    fbtSingletGetGameFBDictByKeytChConfigtDef_FB_SingleFBPlayerIDt GetOwnerTypetDef_NPCHurtTypePlayert
GetOwnerIDtGetItemtGetTypetDef_ItemType_Moneytgett
ItemCommontGetMailItemDictt    DisappeartDef_SendUnPickItemMailMapIDListtitemst PlayerControlt SendMailByKeytGetMapCopyPlayerManagertGetPlayerCounttfbosWaitForClosetFreeOrClearFBByAutoSize(RRt    gameFBMgrtgameMaptfbTypetmapIDtunPickItemDictt mapItem_ListtmapItemManagertindext
curMapItemtmapItemtownerIDtcurItemt mailItemListt playerManager((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt    __CloseFBSs\       #   
    ) 
cCs?|jƒjƒdkr1tjƒ}|jƒn
|jƒdS(Ni(Rt GetAutoSizeRR tClearR(RR((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyR;žs  cCs™|jƒtjkrdS|jƒ}x6t|jƒƒD]"}|j|ƒ}tj|ƒq8Wt    j
ƒj dƒt    j d|jƒƒt ||ƒdS(Nis---------------%d(RRRR8trangeR9tGetPlayerByIndexR6t PlayerLeaveFBRR tGameServer_FbInfoRefreshRRJ(RRRItit    curPlayer((sh.\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||ƒdS(Niis4__ProcessTimeKickPlayer! LineID = %s, openState = %s(RRRt GetExistTimeRt DoFBTimeOutR8RMR9RNt GetLoginTickt
EventShelltEventResponse_OnFBTimeOutRRRRS(RRtopenTickt    existTimeRIRQRRtplayerExistTime((sh.\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_FBKickPlayerTimeRRRRS(RRt closeFBTick((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessFBDelayKickPlayerñs   # cCs.|jƒsdSt||ƒ|jdƒdS(Ni(tGetFBFirstOpenRR(RR((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt __ProcessOpen s
   cCs9tjƒ}tjƒjƒdkr(dSt||ƒdS(Ni(Rt GetGameWorldRRKRb(RR((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt EnterOpenFBs c    Cs>|jƒsdS|jƒ}|jƒdkr2dStjƒjƒsHdStjƒ}|jƒ}|tj    krÁtj    |\}}|dkr®||}|t
j kr®dSntj    j |ƒn@|j ƒ}|dkrÝdS|jƒ r||t
j krdStjd|jƒ|jƒ|jƒfƒt||ƒdS(Niis=__ProcessClose! LineID = %s, openState = %s, isSafeClose = %s(t    GetInitOKR8R9RRRKR tGetCurGameWorldIndext
PyGameDatatg_lastExitFBTypeR(tDef_EmptyFBKeepTimetpoptGetPlayerLogoffTicktGetIsSafeCloseRRRRS(    RRRIRtfbIndext
exitFBTypetexitTicktpassTickt
logOffTick((sh.\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'( Rgtg_needRefreshMapServerStatetGetSyncMapServerStateTickRRRRtfbtNulltSetSyncMapServerStateTicktGameServer_MapServerStatetFalse(RRR=((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessRefreshMapServerStatees      
    cCsctjƒ}|jtjƒ}|dkr.dS||tjtjkrLdS|jtj|ƒdS(Niÿÿÿÿ(RRct GetTickByTypeR(tTYPE_Map_Tick_MapAcPlayertTYPE_Map_Tick_Timet SetTickByType(RRtlastTick((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessMapServerAcPlayer|s  cCsFtjƒ}|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|ƒst j dfStj||ƒ}|dkrBt jS|S(Nis@´«ËÍÖÁÄ¿±êµãΪÕϰ­µã, ´«ËÍʧ°Ü, mapid = %s, posX = %s, posY = %ss#04BBF813-7A30-47A8-927DE1ACCC4F378EtFB_andyshao_861048(RRtCanMovetGetPosXtGetPosYtGameMaptGetNearbyPosByDisR(tDef_RebornPos_Area_RangeRRRt    cmeCustomtDef_FB_SystemAssignMapIDListtGetPlayerManagertIsPlayerCanLogint cmePlayerFullRKt IsMapCopyFulltGetBMChangeMapAskCountRtCheckFBStateCanEnterRtOnChangeMapAsktNonet    cmeAccept(Rt    askStructRR=tnearPosXtnearPosYtchangeMapAskResult((sh.\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( RRcRMRtGetBMChangeMapAskAtR–ttypetinttRouteServer_ChangeMapAnswert GetPlayerIDtClearBMChangeMapAsk(RRRQtasktresult((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt__ProcessChangeMapAskºs %
cCstjtƒ|ƒdS(N(Rt GetPsycoFunct__Func_OnGameWorldProcess(R((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pytOnGameWorldProcessÌscCs­tjƒ}|jƒsdSt||ƒt||ƒt||ƒt||ƒt|ƒt|ƒt    j
|ƒt ||ƒt ||ƒt |ƒt|ƒtjƒdS(N(RRcReRbR\R`RrRR Rt    OnProcessRyt__ProcessRouteServert__RefreshOnMinutet__RefreshOnFiveMinutet EventReporttOnTimeCloseScribeTxt(RR((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyR¢Ôs       
 
 
 
 
cCsg|jtjƒ}|dkr"dS||tjtjkr@dS|jtj|ƒtjƒjƒdS(Niÿÿÿÿ(RzR(t!TYPE_Map_Tick_SendMsg_RouteServerR|R}RRct SendHeartBeat(RRR~((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyR¥ûs cCsltjƒ}tjƒtjƒtj|ƒ|jt    j
ƒt j ƒt |ƒ|jtƒ|jƒdS(N(RRcR1t
InitPyItemRWtDoReloadRefreshRtOnInittSetTickTypeCountR(tTYPE_Map_Tick_CountR¨t InitDllAppIDtGameServer_CommMapServerInitOKt    SetInitOKtTruetBalanceServer_MapServerInitOK(RR((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt InitGameWorlds 
 
 
 
 
cCsztjƒjƒtjkrvt|jƒ|jƒ|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()))
    itCommMapServerInitOKN( RRRRRutstrRRt GetRealMapIDt GetCopyMapIDR‰tGameServer_QueryPlayerResulttlen(RtmsgInfo((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyR²"s0+cCstjƒj|ƒdS(N(RRcR
(R((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pytCloseFB;scCsˆtjƒ}|jƒ}|jƒdkr.dS|jƒdkrDdS|jƒ}|jƒdkr„ttjƒtjƒjƒƒndS(Nii(    RRcRRRKR8R9RJtGetTick(RR=RI((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pytOnPlayerLeaveMapCloseFBCs   cCsttjƒ}tjƒ}|jd|jƒƒ|jd|jƒƒ|jd|jƒƒ|jd|jƒƒdS(Niiii(    RtIPY_MPlayerCountByCountryRRctSetPlayerByCountryCounttGetCountry1CounttGetCountry2CounttGetCountry3CounttGetCountryOtherCount(RCRtpackR((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pytGameSever_PlayerCountByCountryjs  cCsFtjdƒtjƒjdddddƒtjƒjd|ƒdS(Ns×¢²á¼¶Áª¼ÆÊ±Æ÷t ProcessFighti‚t PlayerStatetPlayerProcessFighti(RRRct
RegLvTimert StartLvTimer(R((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyŔs
  cCsYtjƒ}|jtjƒ}tjtj}|||krBdS|jtj|ƒdS(N(RRcRzR(tTYPE_Map_Tick_ProcessFiveMinuteR|R}(RRR~t tickInterval((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyR§s cCsÆtjƒ}|jtjƒ}tjtj}|||krBdS|jtj|ƒtjƒ}t||ƒtj    ƒ}xEt
|j ƒƒD]1}|j |ƒ}|s®qnt |||ƒqWdS(N(RRcRzR(tTYPE_Map_Tick_ProcessMinuteR|R}tGetCurrentTimet __OnMapMinuteR8R!R9RNt__ProcessHalfHour(RRR~RÏtcurTimeRIRCRR((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyR¦¢s    cCs6|j}|tjkrdS|t_tj|ƒdS(N(tminuteRgtg_mapLastProcess_Minutet
PlayerTeamt"OnCheckTeamPlayerDisconnectTimeout(RÔRt    curMinute((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRÒ·s          cCs$|jdkrdStj|ƒdS(Nii(ii(RÕRWtEventResponse_OnHalfHour(RRRÔR((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyRÓÆs (&RRR(R6RWRRR¨R1RgR×R„RRJR;RSR\R`RbRdRrRyRR–R R£R¢R¥R¶R²R¾RÀRÈRÌR§R¦RÒRÓ(((sh.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\GameWorldProcess.pyt<module>&sJ                    K            ,                ;            (            '                    '