xdh
2018-12-24 27e1974c998a86e951f0cee529d9436d67dc9871
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
g¹\c@sÀddlZddlZddlZddlZddlZddlZddlZddlZddlZe    dƒ\Z
Z Z Z Ze    dƒ\ZZZZZZZe    dƒ\ZZZZdZdZdZdZd    Zd
Zd Z d Z!d Z"dZ#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„Z0d„Z1d„Z2d„Z3e4d„Z5d „Z6d!„Z7d"„Z8d#„Z9dS($iÿÿÿÿNiiisFBD_FBPlayerID_%ssFBD_PlayerWinCnt_%ssFBD_PlayerLeaveTick_%stFBPD_PVPDamagetFBPD_PVPDamUpdTicktFBPD_ResetPosXtFBPD_ResetPosYt FBPD_RoundNumt FB_RoundNumsFB_RoundWinPlayerID_%scCstS(N(tTrue(t    curPlayertmapIDtlineIDttick((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pytOnEnterFBEventGsc Cs`|jƒ}|jƒ}tjƒjƒ}tjƒ}|jƒ}tjd|||f|ƒ|jt    |dƒ|j
t ƒ}|j |t ƒ}|rì|rì||krìtjd||f|ƒ|j|t |ƒt|||ƒn|tks| s| s||kr#tj|ƒdS|tkrQtjtjddƒd|ƒntjddƒ}    |tkrZ|jtd|ƒ|j|t|jƒƒ|j|t|jƒƒ|j|t dƒtjt |ƒtjd||ƒt|||t!ƒ|j"t#j$d|    t%dt&ƒt'|gƒ}
tj(ƒj)dddd    |
t*|
ƒƒnï|t kr£|j
tdƒ} |j
tdƒ} | r"| |kr"|jtd|ƒ|j|t|jƒƒ|j|t|jƒƒ|j|t dƒtjd
||ƒt|||t!ƒntj+ƒj,ƒdkrŒtjd ||ƒtjt-|ƒtj.t#j/|    t0dƒ|jt dƒqItjd ||ƒn¦|t-krö|    t0d|tjƒj1ƒ} |j"t#j/dt2| dƒt&ƒnS|tkrI|    t3d|tjƒj1ƒ} |j"t#j4dt2| dƒt&ƒntj5|t6ƒƒdS( Ns1DoEnterFB fbRoomID=%s,playerVSRoomID=%s,fbStep=%sisQÍæ¼Ò½øÈ븱±¾Ê±Ó뵱ǰ¸±±¾»ØºÏÊý²»Ò»ÖÂʱ£¬ÖØÖÃ״̬£¡fbRoundNum=%s,playerRoundNum=%stCrossRealmPKFBiis3    µÚÒ»¸ö½øÈ룬ÉèÖø±±¾½øÈëµÈ´ý¶ÔÊֽ׶Σ¡roomID=%siètCrossPKRoomOpens    µÚ¶þ¸ö½øÈëµÄÍæ¼Ò£¡roomID=%ss5    Á½¸öÈ˶¼ÔÚ£¬ÉèÖø±±¾½øÈëÕ½¶·µ¹¼ÆÊ±½×¶Î£¡roomID=%ss!    ¶ÔÊÖ²»ÔÚ£¬¼ÌÐøµÈ´ý£¡roomID=%s(7t GetPlayerIDt GetVsRoomIdt    GameWorldt GetGameWorldt GetPropertyIDt    GetGameFBt    GetFBSteptLogt SetGameFBDicttGameFBDict_PlayerLeaveTicktGetGameFBDictByKeyRtGetPlayerGameFBDictByKeytFBPDict_RoundNumtDebugLogtSetPlayerGameFBDictt__ResetPlayerStatetFB_State_Leavet PlayerControlt PlayerLeaveFBtFB_State_FighttFBCommontSyncDynamicBarrierStatet IpyGameDataPYtGetFuncEvalCfgt FB_State_OpentGameFBDict_FBPlayerIDtFBPDict_ResetPosXtGetPosXtFBPDict_ResetPosYtGetPosYt    SetFBSteptFB_State_WaitingtFalset Sync_TimeTicktChConfigt tttWaitPlayertDef_Time_MaxWaitRtstrtGetPlayerManagertGameServer_QueryPlayerResulttlentGetMapCopyPlayerManagertGetPlayerCounttFB_State_MapPreparetSync_Player_TimeTickt tttWaitStarttDef_Time_MapPreparet GetFBStepTicktmaxtDef_Time_Fightt tttTowerTaket Notify_FBHelpt__GetFBHelpInfo(RR
tplayerIDtplayerVSRoomIDtroomIDtgameFBtfbStept
fbRoundNumtplayerRoundNumt
fbTimeListtsendMsgt    playerIDAt    playerIDBt notify_tick((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyt    DoEnterFBOsn        &  " !+  "% "%cCs{tjƒ}g}|jtƒ}xEtd|dƒD]0}|jt|ƒ}|sXPn|j|ƒq5Wi|d6|d6S(NitroundNumtroundWinerIDList(RRRRtxrangetFB_RoundWinPlayerIDtappend(RFRQRPtwinnerID((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyRB–s cCsctjƒ}|jƒ}|tkr(dS|jƒ}|jt||ƒtjd||fƒdS(Ns-Íæ¼ÒÕ½¶·½×¶ÎÏÂÏߣ¡playerID=%s,waitPlayerID=%s(RRRRRRRR(RR
RFRGRC((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pytDoExitFB¤s    cCsdS(N((RR
((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pytDoFBHelp²scCs·tjƒ}|jƒ}|tkr1t|ƒn‚|tkrYt|ƒs³t|ƒq³nZ|tkrt|ƒs³t    |ƒq³n2|t
kršt |ƒn|t kr³t |ƒndS(N(RRRR-t__DoLogic_WaitingR9t__CheckLeaveProtectTimeoutt__DoLogic_MapPrepareR!t__DoLogic_MapFighttFB_State_Rebornt__DoLogic_RebornRt__DoLogic_LeaveTime(R
RFRG((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyt    OnProcess¶s            cCs›tjddƒ}|tjƒjƒ|tdkr:dSt|ƒ\}}}}tjƒjƒ}tj    d|||fƒt
||||t |ƒdS(NR iiès@սǰµÈ´ý¶ÔÊֽ׶γ¬Ê±£¬Ö±½Ó½áÊø£¡roomID=%s,winnerID=%s,loserID=%s( R$R%RRR=R2t__GetTimeoutWinerInfoRRRt__DoFBPKAllOvertDef_OverType_LackPlayer(R
RJtwinnerRUtlosertloserIDRE((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyRXÊs$c Cs$tjƒ}|jtdƒ}|jtdƒ}|jt|ƒ}|jt|ƒ}| rj| rjdStjddƒ}||kr§|||tdkrÃdSn|||tdkrÃdSt|ƒ\}}}    }
tj    ƒj
ƒ} tj d| ||
fƒt |||    |
t |ƒtS(NiiR iès>Õ½¶·ÖжÔÊÖÀëÏß³¬Ê±£¬Ö±½Ó½áÊø£¡roomID=%s,winnerID=%s,loserID=%s(RRRR'RR$R%tDef_Time_ProtectR`RRRRatDef_OverType_PlayerExitR( R
RFRLRMtplayerLeaveTickAtplayerLeaveTickBRJRcRURdReRE((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyRYÖs$  c
Cs×d    \}}}}tjƒ}|jƒ}tjƒ}|jtdƒ}|jtdƒ}    |tkrü|jƒdkrüg}
xÆ||    gD]¸} |j    | ƒ} |j
| t ƒ} |j
| t ƒ}||}| sÜdn    | j ƒ}| sôdn    | jƒ}|
j| |||| | gƒtjd| |||||f| ƒqW|
jdtƒtjdt|
ƒƒt|
ƒdkr|
ddnd}t|
ƒdkr¶|
ddnd}|sÈdn    |jƒ}|sàdn    |jƒ}||||fSxZt|jƒƒD]F}|j|ƒ} | dks| jƒrBqn| }| jƒ}PqW|s¯|jt|ƒ}|jt|    ƒ}||kr |}|    }qÇ|    }|}n||krÁ|    n|}||||fS(
s¢ Ê±¼ä³¬Ê±£¬»ñÈ¡»ñʤµÄÍæ¼Ò
                    Õ½¶·½×¶ÎÓÐÁ½¸öÍæ¼ÒʱÓÅÏȱȽÏÊä³ö
                    ÆäËûÇé¿öÔòÔÚÏßÍæ¼Ò»ñʤ£¬Èç¹ûûÓÐÍæ¼ÒÔÚÏߣ¬Ôò×î³ÙÀëÏߵĻñʤ
    iiis>PK³¬Ê±: pvpDamge=%s,pvpDamTick=%s,tick=%s,sortTick=%s,HP=%s/%streverses"PK³¬Ê±, ½øÈë½áËã!playerInfoList=%siÿÿÿÿN(NiNi(tNoneRRRR7RR'R!R8tFindPlayerByIDRtFBPDict_PVPDamagetFBPDict_PVPDamUpdTicktGetHPtGetMaxHPRTRtsortRR3R6RRRtGetPlayerByIndextIsEmptyR(R
RcRURdReRFRGtcopyMapPlayerManagerRLRMtplayerInfoListRCtplayert    pvpDamaget
pvpDamTicktsortTicktcurHPtcurMaxHPtiRhRi((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyR`îsT   
    !&&          cCstjddƒ}tjd|tƒ|tjƒjƒ|tdkrOdStjt    |ƒtj
t j |t dƒtjtjddƒdƒtƒ}d|d<tjƒ}xWt|jƒƒD]C}|j|ƒ}|dksÈ|jƒrûqÈntj||ƒqÈWdS(NR is__DoLogic_MapPrepare ... %sièiitisStart(R$R%RRR<RR=R"R,R!R:R0R@R?R#RBR7RRR8RrRkRsRA(R
RJthelpDictRtR|Rv((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyRZ+s $    
 cCs›tjddƒ}|tjƒjƒ|tdkr:dSt|ƒ\}}}}tjƒjƒ}tj    d|||fƒt
||||t |ƒdS(NR iiès2PK³¬Ê±, ½øÈë½áËã! roomID=%s,winnerID=%s,loserID=%s( R$R%RRR=R?R`RRRt__DoLogicAddPlayerWinCnttDef_OverType_TimeOut(R
RJRcRURdReRE((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyR[Bs$c Cstjƒ}tƒ}tjddƒ}|td}||d<|jtƒd}|jt|ƒt    }tj
ƒ}xõt |j ƒƒD]á}|j |ƒ}    |    dks‡|    jƒrºq‡n|    jƒ}
|j|
t|ƒ|    jƒtjks|    jƒdkr?tjd|    jƒƒtj|    tj|ƒt||    |
ƒn|rXt||    |
ƒntj|    |ƒq‡Wtjd|ƒ|jt dƒ} |jt dƒ} |j| t!dƒ|j| t"|ƒ|j| t!dƒ|j| t"|ƒtj#t$|ƒdS(    NR iièt prepareTimeis ¸´»îÍæ¼Ò...s¿ªÊ¼ÏÂÒ»»ØºÏ: nextRoundNum=%si(%RRRBR$R%R<RRRR.R7RRR8RrRkRsRRRtGetPlayerActiont IPY_GameWorldtpaDieRoRtChPlayertPlayerRebornByTypeR0trebornType_SystemRR"RARR'RmRnR,R9( R
RFR~RJRt nextRoundNumtisWinnerResetStateRtR|RvRCRLRM((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyR]Ns>     
  'cCs[tjddƒ}|tjƒjƒ|tdkr:dStjt|ƒt    j
|ƒdS(NR iiè( R$R%RRR=tDef_Time_LeaveR"R,tFB_State_ClosetGameWorldProcesstCloseFB(R
RJ((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyR^~s $ c    Cs–|jƒ}|jƒ}tjƒ}|j|tƒ}ttj||ƒ}|j|t|ƒ|j|t    |ƒtj
d|||||fƒdS(NsJOnPVPDamage playerID=%s,tagPlayerID=%s,damageValue=%s,updDamage=%s,tick=%s( RRRRRmtminR0tDef_UpperLimit_DWordRRnR(    Rt damageValuet    tagPlayerR
RCt tagPlayerIDRFtcurPlayerDamaget    updDamage((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyt OnPVPDamage‡s       cCs€|jƒ}|jƒ}tjƒjƒ}tjd|||f|ƒtjƒjƒtkrcdSt||||t    |ƒt
S(Ns2DoFBOnKill_Player roomID=%s,winnerID=%s,loserID=%s( RRRRRRRR!RtDef_OverType_KillR(RtdefenderR
RUReRE((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pytDoFBOnKill_Player™s  c Csòtjƒ}tjƒjƒ}|jt|ƒ}|d}    |jt||    ƒ|jtƒ}
|jt|
|ƒtj    d||
|||    fƒ|    t
j ddƒk} | sÄt j t|ƒdStj    d|ƒt||||||ƒdS(NisC»ØºÏ½áÊø: roomID=%s,roundNum=%s,winnerID=%s,loserID=%s,updWinCnt=%sR is-    ÒÑ´ïµ½×î´óʤ³¡£¬»ñµÃ×îÖÕʤÀû£¡winnerID=%s(RRRRRtGameFBDict_PlayerWinCntRRRSRR$t
GetFuncCfgR"R,R\Ra( RcRURdRetoverTypeR
RFREt winnerWinCntt    updWinCntRPtisOver((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyR¥s 
 cCs¶|r=|j|tƒ}|j|tƒ}|j||ƒn|jƒ|jƒkrk|j|jƒƒntj|ƒtj    |ƒkr¥tj
|tj    |ƒƒnt j |ƒdS(N( RR(R*tResetPosRoRptSetHPRt    GetProDeft GetMaxProDeft    SetProDeft SkillCommontResetAllSkillCD(RFRvRCtresetPostposXtposY((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyR»s c Cs-tjƒ}g}|jtƒ}x5td|dƒD] }|j|jt|ƒƒq5Wtjddƒ}    t    j
t j |    t dƒt    jt|ƒ|ttgkr®dnd}tjƒjƒ}
t|
||||gƒ} tjƒjdddd| t| ƒƒtjd|
||||fƒdS(NiR ièit CrossPKOversXPK½áËãSendToGameServer: roomID=%s,winnerID=%s,loserID=%s,roundWinerIDList=%s,overType=%s(RRRRRRRTRSR$R%R"R:R0t tttLeaveMapRŠR,RRbRgRRR3R4R5R6R( RcRURdReR›R
RFRQRPRJRERK((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyRaËs (    cCst||ƒ S(N(tCanAttackPlayer(Rt curTagPlayer((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pytCheckPlayersRelation_IsFriendâscCs t||ƒS(N(R«(RR¬((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pytDoCanAttackTeameræscCs3tjƒjƒ}|tkr/tjdƒtStS(Ns·ÇÕ½¶·½×¶Î£¬²»¿É¹¥»÷£¡(RRRR!RR.R(RR¬RG((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyR«ês
  (:R…RRƒRRŒR$R¤R"R0trangeR2R<R?RfRŠR&R-R9R!R\RR‹RbRgR–R€R'R™RRmRnR(R*RRRSR RORBRVRWR_RXRYR`RZR[R]R^R•R˜RRRRaR­R®R«(((sˆE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_CrossRealmPK.pyt<module>sT              !        G                             =             0