cehua_lyf
2019-03-06 3c8ee0a8a524a6251d7d5aae2372e76fd8a99b9c
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
W“V\c@sœddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z d„Z d„Z d„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd „Ziad „Zd „Zd„Zd„Zdd„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.pytSetRecKilledRecord2scCsp|tjkrdS|tjkr7tjd|ƒdStj|}tj||||ƒ}|sfdS|jƒS(Nis¿ç·þbossûÓзÖÇø±í!dataMapID=%s(tChConfigtDef_CrossMapIDListtDef_CrossZoneMapTableNamet    GameWorldtErrLogt IpyGameDataPYtGetIpyGameDatat    GetZoneID(t    realMapIDt    dataMapIDt    copyMapIDt    tableNamet zoneIpyData((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytGetCrossBossZoneID6s 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__GetCrossBossRecDataCs   $   
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(RR5t GetDictByKeyRR7(R.R/((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyt__GetCrossBossIsAliveesic
CsŒtjd|ƒtj|ƒ}|s7tjdƒdStjƒ}xB|D]:}|jƒ}g}xÀt|jƒƒD]¬}|j    |ƒ}|j
ƒ}|t j kr«qun|j ƒ}    t||    ƒ}
t|
ƒ} t|
ƒ} t|
ƒ} t||    ƒ}g}|j||    | | | ||gƒquW|rs|r:|gn    |jƒ}idd6|d6}tjtj||ƒqJtjd|ƒqJWdS(sP Í¬²½¿ç·þBoss»î¶¯Êý¾Ýµ½×Ó·þÎñÆ÷
    @param serverGroupID: Îª0ʱͬ²½ËùÓÐ×Ó·þ
    s,ͬ²½¸ø×Ó·þ¿ç·þbossÐÅÏ¢: syncServerGroupID=%ss    Ã»Óпç·þboss·ÖÇøÐÅÏ¢!NtInitOKt BossInfoTypet BossInfoListsûÓпç·þbossÐÅÏ¢! zoneID=%s(RtLogtCrossRealmPlayert*GetCrossCommZoneIpyDataListByServerGroupIDRtIPY_DataRR*tGetBOSSInfoCounttGetBOSSInfoByIndextGetMapIDRRtGetNPCIDR4RR RR;tappendtGetServerGroupIDListt CrossRealmMsgtSendMsgToClientServerR'tCrossServerMsg_CrossBossInfo(t serverGroupIDtzoneIpyDataListt
ipyDataMgrR"R.t bossInfoListtitipyDatatmapIDR/t bossRecDatat
killedTimet refreshTimet killedRecordR8t killerExInfotserverGroupIDListt bossInfoDict((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyt$Sync_CrossBossInitDataToClientServeris8         &cCs*t|||ƒ}tjd||||||fƒ|s?dSd}ttjƒƒ}t||ƒ}    t|    ||ƒt|||ƒt||||    ƒ}
t    j
|ƒ} | dkrºdS| j ƒ} t |    ƒ} ||g}||||
| ||gg}idd6|d6}tjtj|| ƒdS(NsX»÷ɱ¿ç·þboss: zoneID=%s,bossID=%s,realMapID=%s,dataMapID=%s,copyMapID=%s,killerIDList=%sitOnKilledR=R>(R#RR?tintttimeR4t__SetKilledRecordR9tSetBossRefreshTimeR@tGetCrossCommZoneIpyDataByZoneIDR)RHRRIRJR'RK(R/tkillPlayerNameRRR t killerIDListR.R8RTRSRUR"RXRVRWRORY((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pytDoCrossBossOnKilleds*        c    Cs«t|||ƒ}tjd||||||fƒ|s?dSt|||ƒ|r§tj|ƒ}|dkr§|jƒ}|||g}tj    t
j ||ƒq§ndS(NsW¿ç·þboss״̬±ä¸ü: zoneID=%s,bossID=%s,isAlive=%s,realMapID=%s,dataMapID=%s,copyMapID=%s( R#RR?R9R@R`R)RHRIRJR'tCrossServerMsg_CrossBossState(    R/R8RRR R.R"RXt    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(RtsplitRGtlentjoinRR    (RSRTt
playerNameRVtkilledRecordList((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/RTRSRQRU((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyR_Îs cs¤x[tjD]P}||dkr
||dkr
|rC||d<n|rV||d<nPq
q
Wttjƒƒ‰tjjd‡fd†ƒtjdtjƒdS(NiiiiR0cstd|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_sortBOSSRefreshListR\R]tsortRRp(R.R/RTRUtbossInfo((Rss\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyRoÛ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%sByIndexR0cstd|dˆ|dƒS(Niii(Rq(Rr(Rs(s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyRtþsiisH    Í¨ÖªMapServerÖØÉú: zoneID=%s,bossID=%s,killedTime=%s,rebornSecond=%s(R\R]RuRvRRBR*RCRDRFRERRthasattrtgetattrRR4RR RGRwR;RqR9RtSendMapServerMsgExR't,Def_Notify_WorldKey_GameWorldBossRebornCrossRp(ttickRNRPRQR/RRR!R"R.RSRTRUtsyncBOSSIDListRxR8t rebornSecond((Rss\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(RRBR*RCRDRFRERRRyRzRR;RR{R'R|(    RNRPRQR/RRR!R"R.R8((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 OnPlayerLogin2s
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(RRpR%R&R'R(tClearR$R4R    R RR9RGtGetPlayerManagertFindPlayerByIDRtDataRecordPackt SendEventPacktstrtMapServer_QueryPlayerResultRhRƒR)(RYt bossInfoTypeROR1R~RxR.R/RTRURVR8RWRSRbRtplayerIDtkillertmsgInfo((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyRK6s:
 
 
           ' cCsV|\}}}tjd|||fƒt|||ƒ|rRtd|gƒndS(NsBÊÕµ½¿ç·þ·þÎñÆ÷ͬ²½µÄ¿ç·þboss״̬: zoneID=%s, bossID=%s, isAlive=%s(RRpR9RƒR)(R•R.R/R8((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyRd_s 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(&R\R]RR%R&R'R(tChPyNetSendPackttagGCGameWorldBossInfoR>R*R+R,RRRR ttagBossInfoObjtBossIDR;tIsAliveRt
KillRecordRht    RecordLenRqt RefreshSecondt    RefreshCDRGtBossCntRŒtGetActivePlayerCounttGetActivePlayerAtR)t PlayerControltGetIsTJGt NetPackCommont SendFakePack(R„R~RsR1RxR3RR/R.RTRUt bossInfoObjt playerManagerRP((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyRƒmsH                    ()RRRR–R@RŽR¢R¤RIR'RuR]RRRR    R R RRRRR$R#R4R9R;RZRcRfR^R_RoR€R‚RR…RKRdR)Rƒ(((s\E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossBoss.pyt<module>sN                                                                      &                       .                )