xdh
2019-02-21 92eee67f85cbd29feb1287ae5a15ad0c787e95cb
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
$B<\c@s™ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z d„Z d„Z d„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd „Ziad „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zddd„Z d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&dgd„Z(dS(iÿÿÿÿNcCs
|jƒS(N(t    GetValue1(trecData((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyt GetRecBossID)scCs |j|ƒS(N(t    SetValue1(Rtvalue((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyt SetRecBossID*scCs
|jƒS(N(t    GetValue2(R((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytGetRecKilledTime+scCs |j|ƒS(N(t    SetValue2(RR((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytSetRecKilledTime,scCs
|jƒS(N(t    GetValue4(R((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytGetRecRefreshTime-scCs |j|ƒS(N(t    SetValue4(RR((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytSetRecRefreshTime.scCs
|jƒS(N(t    GetValue5(R((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyt GetRecZoneID/scCs |j|ƒS(N(t    SetValue5(RR((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyt SetRecZoneID0scCs
|jƒS(N(t GetStrValue3(R((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytGetRecKilledRecord1scCs |j|ƒS(N(t SetStrValue3(RR((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytSetRecKilledRecord2scCsZ|tjkrdS|tjkr7tjd|ƒdStj|}tj||||ƒS(Ns¿ç·þbossûÓзÖÇø±í!dataMapID=%s(tChConfigtDef_CrossMapIDListtDef_CrossZoneTableNamet    GameWorldtErrLogt IpyGameDataPYtGetIpyGameData(t    realMapIDt    dataMapIDt    copyMapIDt    tableName((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytGetCrossBossZoneIpyData6s cCsÛ||f}|tkr t|Stjƒjtjƒ}d}xWt|jƒƒD]C}|j    |ƒ}t
|ƒ|krQt |ƒ|krQ|}PqQqQW|dkrÍ|j ƒ}t ||ƒt||ƒn|t|<|S(N(tg_bossRecDataDictRtGetUniversalRecMgrt GetTypeListt ShareDefinet&Def_UniversalGameRecType_CrossBossInfotNonetxrangetCounttAtRRtAddRecRR(tzoneIDtbossIDtkeytrecTypeListDatatbossRectindexR((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyt__GetCrossBossRecData@s   $   
cCs'tjƒjtj||f|ƒdS(N(Rt GetGameWorldtSetDictRtDef_WorldKey_CrossBossIsAlive(R,R-tisAlive((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyt__SetCrossBossIsAlive]s#cCs tjƒjtj||fƒS(N(RR3t GetDictByKeyRR5(R,R-((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyt__GetCrossBossIsAlivebsc    Cs$g}tjƒ}xÕt|jƒƒD]Á}|j|ƒ}|jƒ}tj||ƒ}|sdq%n|jƒ}|j    ƒ}t
||ƒ}    t |    ƒ}
t |    ƒ} t |    ƒ} t||ƒ} g}|j|||
| | | |gƒq%W|r idd6|d6}tjtj||gƒndS(NtInitOKt BossInfoTypet BossInfoList(RtIPY_DataR(tGetBOSSInfoCounttGetBOSSInfoByIndextGetMapIDtCrossRealmPlayertGetServerCrossZoneIpyDatat    GetZoneIDtGetNPCIDR2RR RR9tappendt CrossRealmMsgtSendMsgToClientServerR%tCrossServerMsg_CrossBossInfo(t serverGroupIDt bossInfoListt
ipyDataMgrtitipyDatatmapIDt zoneIpyDataR,R-t bossRecDatat
killedTimet refreshTimet killedRecordR6t killerExInfot bossInfoDict((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytClientServerMsg_ServerInitOKfs*       &cCs#t|||ƒ}|sdn    |jƒ}tjd||||||fƒ|sWdSd}ttjƒƒ}    t||ƒ}
t|
|    |ƒt|||ƒt    |||    |
ƒ} |j
ƒ} t |
ƒ} ||g}|||    | | ||gg}idd6|d6}t j tj|| ƒdS(NisX»÷ɱ¿ç·þboss: zoneID=%s,bossID=%s,realMapID=%s,dataMapID=%s,copyMapID=%s,killerIDList=%stOnKilledR;R<(R!RCRtLogtintttimeR2t__SetKilledRecordR7tSetBossRefreshTimetGetServerGroupIDListRRFRGR%RH(R-tkillPlayerNameRRRt killerIDListROR,R6RQRPRRtserverGroupIDListRSRTRJRU((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytDoCrossBossOnKilleds&       c    Cs¥t|||ƒ}|sdn    |jƒ}tjd||||||fƒ|sWdSt|||ƒ|r¡|jƒ}|||g}tjtj    ||ƒndS(NisW¿ç·þboss״̬±ä¸ü: zoneID=%s,bossID=%s,isAlive=%s,realMapID=%s,dataMapID=%s,copyMapID=%s(
R!RCRRXR7R]RFRGR%tCrossServerMsg_CrossBossState(    R-R6RRRROR,R`t    stateInfo((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytDoCrossBossStateChanges     cCs‡t|ƒ}|r!|jdƒng}|jd||fƒt|ƒdkrZ|d=ndj|ƒ}t||ƒt||ƒdS(Ns|s%s_%sii(RtsplitREtlentjoinRR    (RPRQt
playerNameRStkilledRecordList((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyR[°s 
  cCsltjd|ƒ}|sdSt|jƒƒ}t||ƒt||||ƒtjd|||fƒ|S(sÉèÖÃbossË¢ÐÂʱ¼ätBOSSInfois8    ÉèÖÃbossË¢ÐÂʱ¼ä: zoneID=%s,bossID=%s,refreshTime=%s(RRtevaltGetRefreshTimeR t__UpdateBossRefreshListRtDebugLog(R,R-RQRPRMRR((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyR\½s ics¤x[tjD]P}||dkr
||dkr
|rC||d<n|rV||d<nPq
q
Wttjƒƒ‰tjjd‡fd†ƒtjdtjƒdS(NiiiiR.cstd|dˆ|dƒS(Niii(tmax(tasd(tcurTime(s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyt<lambda>Óss'    PyGameData.g_sortBOSSRefreshList=%s(t
PyGameDatatg_sortBOSSRefreshListRYRZtsortRRn(R,R-RQRRtbossInfo((Rqs\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyRmÊs   csttjƒƒ‰tjsTtjƒ}x t|jƒƒD]÷}|j|ƒ}|j    ƒ}|j
ƒ}|t j kr|q:nt j |}t |d|ƒs¢q:nxŒtt|d|ƒƒƒD]n}t|d|ƒ|ƒ}|jƒ}t||ƒ}    t|    ƒ}
t|    ƒ} tjj||
| |gƒq¿Wq:Wtjjd‡fd†ƒng} x¼tjD]±} | \}}
} }t||ƒ}|r—qdntd| ˆ|
ƒ}|dkr¾Pnt||dƒ| j|ƒtjtj||fdƒtjd|||
|fƒqdWdS(Ns
Get%sCounts Get%sByIndexR.cstd|dˆ|dƒS(Niii(Ro(Rp(Rq(s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyRrísiisH    Í¨ÖªMapServerÖØÉú: zoneID=%s,bossID=%s,killedTime=%s,rebornSecond=%s(RYRZRsRtRR=R(R>R?RDR@RRthasattrtgetattrRCR2RR RERuR9RoR7RtSendMapServerMsgExR%t,Def_Notify_WorldKey_GameWorldBossRebornCrossRn(ttickRKRLRMR-RNR ROR,RPRQRRtsyncBOSSIDListRvR6t rebornSecond((Rqs\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytDoCheckCrossBossReborn×sD        #   $  !cCs tƒdS(N(t__SendMapServerAliveCrossBoss(((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytOnCrossMapServerInitOKsc    Cstjƒ}x ttjƒjƒƒD]ò}tjƒj|ƒ}|jƒ}|jƒ}|tjkrmq%ntj|}t    |d|ƒs“q%nxtt
|d|ƒƒƒD]c}t
|d|ƒ|ƒ}|j ƒ}t ||ƒ}|söq°nt jtj||fdƒq°Wq%WdS(Ns
Get%sCounts Get%sByIndexi(RR=R(R>R?RDR@RRRwRxRCR9RRyR%Rz(    RKRLRMR-RNR ROR,R6((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyR    s$    # %cCst|ƒdS(N(tSync_CrossBossInfo(t    curPlayer((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyt OnPlayerLogin!s
c    Cs¥|d}|d}tjd|ƒ|dkr\tjƒjtjƒ}|jƒiang}x/|D]'}|\}}}}    }
} } t||ƒ} t    | |ƒt
| |    ƒt | |
ƒt ||| ƒ|j |ƒ| séqin| \}}x˜|D]}tjƒj|ƒ}|s[tjd|||fƒtjdi|d6dd    6ƒqünt||gƒ}|jd
d
d |t|ƒƒqüWqiWtd|ƒdS( NR;R<s+ÊÕµ½¿ç·þͬ²½µÄ¿ç·þbossÐÅÏ¢: bossInfoType=%sR:s@»÷ɱ¿ç·þbossʱÖ÷·þÍæ¼Ò²»ÔÚÏß, playerID=%s,dataMapID=%s,bossID=%stCrossBoss_ErrortPlayerIDtMainServerOfflinetErrorit CrossKillBoss(RRnR#R$R%R&tClearR"R2R    R RR7REtGetPlayerManagertFindPlayerByIDRtDataRecordPackt SendEventPacktstrtMapServer_QueryPlayerResultRfRR'(RUt bossInfoTypeRJR/R|RvR,R-RQRRRSR6RTRPR_RtplayerIDtkillertmsgInfo((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyRH%s:
 
 
           ' cCsV|\}}}tjd|||fƒt|||ƒ|rRtd|gƒndS(NsBÊÕµ½¿ç·þ·þÎñÆ÷ͬ²½µÄ¿ç·þboss״̬: zoneID=%s, bossID=%s, isAlive=%s(RRnR7RR'(R“R,R-R6((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyRbNs cCsëttjƒƒ}tjƒjtjƒ}tjƒ}g|_    xøt
|j ƒƒD]ä}|j |ƒ}t |ƒ}|sqRn|r—||kr—qRnt|ƒ}t|ƒ}    t|ƒ}
tjƒ} || _t||ƒ| _t|ƒ| _t| jƒ| _td|
||    ƒ| _|
| _|j    j| ƒqRWt|j    ƒ|_|sÄtjƒ} x†t
| jƒƒD]L} | j | ƒ}|dkr˜qqnt"j#|ƒr­qqnt$j%||ƒqqWn#t"j#|ƒr×dSt$j%||ƒdS(Ni(&RYRZRR#R$R%R&tChPyNetSendPackttagGCGameWorldBossInfoR<R(R)R*RRRR ttagBossInfoObjtBossIDR9tIsAliveRt
KillRecordRft    RecordLenRot RefreshSecondt    RefreshCDREtBossCntRŠtGetActivePlayerCounttGetActivePlayerAtR't PlayerControltGetIsTJGt NetPackCommont SendFakePack(R‚R|RqR/RvR1RR-R,RQRRt bossInfoObjt playerManagerRL((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyR\sH                    ()RRRR”RARŒR R¢RFR%RsRZRRRR    R R RRRRR"R!R2R7R9RVRaRdR[R\RmR~R€RRƒRHRbR'R(((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyt<module>sN                                                        
                                       .                )