cehua_TRX
2018-11-24 c7d5827fb1861bff64af2128a7033f18c58a3020
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
x{[c @sêddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    e
dƒ\ Z Z Z ZZZZZZZZZe
dƒ\ZZZZZZZZe
dƒ\ZZ Z!Z"dZ#dZ$dZ%dZ&d    „Z'd
„Z(d „Z)d „Z*d „Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d„Z6d„Z7d„Z8d„Z9d„Z:d„Z;d„Z<d„Z=d „Z>d!„Z?d"„Z@dS(#iÿÿÿÿNi iitFBD_FirstEnterIDsFBD_PlayerWinCnt_%stFBPD_PVPDamagetFBPD_PVPDamUpdTickcCs tjdƒS(Nt MergePK_Cfg(t ReadChConfigtGetEvalChConfig(((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyt GetMergePKCfgRscCs+tjt|ƒtjtƒtdƒtS(Ni(tFBCommont    SetFBStept FB_State_OpentOpenOrCloseDoorExRtDef_GateIDListtTrue(ttick((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pytOnOpenFBXscCstS(N(R (t    curPlayertmapIDtlineIDR ((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pytOnEnterFBEventcsc Cs€|jƒ}|jƒ}|jƒ}tjƒjƒ}tjd|||f|ƒtƒ}tjƒ}|j    ƒ}|t
krÔ|j t |ƒt jt|ƒtjd||ƒ|jtjd|ttƒno|tkr2t jt|ƒtjd||ƒ|t|t}    t jtj|    dtƒntj|ƒdS|t|tjkr_dnd\}
} |j|
| ƒdS(Ns2DoEnterFB roomID=%s,playerVSRoomID=%s,factionID=%ss3    µÚÒ»¸ö½øÈ룬ÉèÖø±±¾½øÈëµÈ´ý¶ÔÊֽ׶Σ¡roomID=%sis/    µÚ¶þ¸ö½øÈ룬ÉèÖø±±¾½øÈë×¼±¸½×¶Î£¡roomID=%si( t GetPlayerIDt GetVsRoomIdt
GetFactiont    GameWorldt GetGameWorldt GetPropertyIDtLogRt    GetGameFBt    GetFBStepR    t SetGameFBDicttGameFBDict_FirstEnterIDRRtFB_State_Waitingt Sync_TimeTickt IPY_GameWorldt tttFBAddTimetDef_Time_MaxWaitR tFB_State_MapPreparetDef_Time_MapPreparetDef_Time_MapPrepareEfftSync_Player_TimeTickt tttWaitStartt PlayerControlt PlayerLeaveFBt Def_Pos_Startt ShareDefinetCampType_JusticetResetPos( RR tplayerIDtplayerVSRoomIDt    factionIDtroomIDt
mergePkCfgtgameFBtfbStepttotalPrepareTimet    startPosXt    startPosY((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyt    DoEnterFBjs0                 )cCsV|jƒ}|tjkr!dnd}tjd||f|jƒƒtƒt|S(Niis(OnGetFBEnterPos factionID=%s,posIndex=%s(RR+R,RtDebugLogRRt Def_Pos_Enter(RRtlineIdR R0tposIndex((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pytOnGetFBEnterPoss  c Cstjƒ}|jƒ}|tkr2tjƒdS|tttgkrKdSd}d}|}|j
ƒ}tj ƒ}xrt d|j ƒƒD][}    |j|    ƒ}
|
jƒdkr¸q‹n|
j
ƒ} | |j
ƒkr‹|
}| }Pq‹q‹Wtjd||fƒt||t|ƒdS(NisHÍæ¼ÒÔÚ×¼±¸orÕ½¶·½×¶ÎÏÂÏߣ¬Ö±½Óʧ°Ü£¬¶ÔÊÖ»ñʤ!exitPlayerID=%s,winnerID=%s(RRRtFB_State_FreeTimetGameWorldProcesstOnPlayerLeaveMapCloseFBR#tFB_State_MapPrepareEfftFB_State_FighttNoneRtGetMapCopyPlayerManagertrangetGetPlayerCounttGetPlayerByIndextGetIDRt__DoMergePKOvertDef_OverType_PlayerExit( RR R3R4twinnertwinnerIDtlosert exitPlayerIDt playerManagertitplayerR.((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pytDoExitFB™s2   
       cCs0tjƒjƒ}tjd||jƒƒdS(NsÍæ¼ÒÖ÷¶¯À뿪¸±±¾: roomID=%s(RRRRR(RR R1((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pytDoPlayerLeaveFBÃscCsdS(N((RR ((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pytDoFBHelpÍscCs²tjƒ}|jƒ}|tkr1t|ƒn}|tkrJt|ƒnd|tkrct|ƒnK|t    kr|t
|ƒn2|t kr•t |ƒn|t kr®t|ƒndS(N(RRRRt__DoLogic_WaitingR#t__DoLogic_MapPrepareRAt__DoLogic_MapPrepareEffRBt__DoLogic_MapFighttFB_State_Rebornt__DoLogic_RebornR>t__DoLogic_FreeTime(R R3R4((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyt    OnProcessÔs              cCs§t|ƒtƒt}|tjƒjƒ|kr7dStjƒjƒ}tjƒ}|jt    ƒ}tj
ƒj |ƒ}tj d||fƒt |dt|ƒdS(Ns)¶ÔÊÖûÀ´£¬Ö±½Ó»ñʤ£¡roomID=%s,winnerID=%s(t__BackToMergePKPrepareAreaRR"RRt GetFBStepTickRRtGetGameFBDictByKeyRRDtFindPlayerByIDRRIRCtDef_OverType_LackPlayer(R t maxWaitTimeR1R3RLRK((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyRUês
  cCsKt|ƒtƒ}|t}|tjƒjƒ|kr=dSt|ƒdS(N(R]RR$RRR^t__SetFBStepToPrepareEff(R t
mergePKCfgt
mapPrepare((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyRVýs
    
 
cCsNtƒ}|t}tjtj|ƒtjt|ƒtj|t    dƒdS(Ni(
RR%RR&R t tttAddUpTimeRRAR
R (R Rdt mapPrepareEff((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyRcs     
cCsÞt|ƒtƒ}|t}|tjƒjƒ|kr=dS|t}tjƒ}x`t|j    ƒƒD]L}|j
|ƒ}|dksf|j ƒr™qfn|j tjd|tƒqfWtjt|ƒtj|tdƒdS(Ni(R]RR%RRR^tDef_Time_FightRDRERFRGRCtIsEmptyRR t tttTowerTakeR RRRBR
R (R RdtprepareEffTimet    fightTimetcopyMapPlayerManagerRPR((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyRWs
    
 
 c
Cstƒt}tjƒ}xät|jƒƒD]Ð}|j|ƒ}|sMq,n|jƒ}|tj    krndnd}||\}}|j
ƒ}    |dkrÆ|    |krÆtj ||d|dƒn|dkr,|    |kr,tj ||d|dƒq,q,WdS(Nii( Rt Def_GatePosRRDRERFRGRR+R,tGetPosXtResetPlayerPos(
R t gatePosListt playManagerRPRR0R<t    checkPosXtresetPostcurPosX((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyR],s    "c    Cs¡tƒ}|t}|tjƒjƒ|kr3dSg}tjƒ}tjƒ}xÃt|jƒƒD]¯}|j|ƒ}|dksd|j
ƒr—qdn|j ƒ}|j |t ƒ}    |j |tƒ}
||
} |j|    | |jƒ||gƒtjd||    |
|| fƒqdW|jdtƒt|ƒdkrG|ddnd} t|ƒdkrm|ddnd} tjdt|ƒƒt| | t|ƒdS(NsAPK³¬Ê±: playerID=%s,pvpDamge=%s,pvpDamTick=%s,tick=%s,sortTick=%streverseiiÿÿÿÿis"PK³¬Ê±, ½øÈë½áËã!playerInfoList=%s(RRhRRR^RDRERFRGRCRiRtGetPlayerGameFBDictByKeytFBPDict_PVPDamagetFBPDict_PVPDamUpdTicktappendtGetHPR9tsortR tlenRtstrt__DoLogicAddPlayerWinCnttDef_OverType_TimeOut(R RdRltplayerInfoListR3RmRPRQR.t    pvpDamaget
pvpDamTicktsortTickRKRM((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyRXHs0    
 
"    &&c
Csd|tjƒjƒtƒtkr'dStƒt}tƒt}tjƒ}xt|j    ƒƒD]ò}|j
|ƒ}|dks`|j ƒr“q`n|j ƒtjkr×tjd|jƒƒtj|tj|ƒn|jƒ}|tjkrødnd}||\}}    |j||    ƒ|r`|jƒ|jƒkr`|j|jƒƒq`q`Wt|ƒdS(Ns ¸´»îÍæ¼Ò...ii(RRR^RtDef_AutoRebornTimeR*t Def_IsFullHPRDRERFRGRCRitGetPlayerActionR tpaDieR9RtChPlayertPlayerRebornByTypetChConfigtrebornType_FBUseItemRR+R,R-R{tGetMaxHPtSetHPRc(
R t startPosListtisFullHPRmRPRQR0R<tposXtposY((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyRZns(#    
cCstS(N(R (R((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pytDecFreeRebornCount‹scCs+|tjƒjƒtƒtkr'dSdS(N(RRR^RtDef_Time_Leave(R ((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyR[“s#c
CsÌ|jƒ}|jƒ}tjƒ}|j|tƒ}ttj||ƒ}|j|t|ƒ|j|t    |ƒtj
d|||||fƒi|||gd6}    t j ||    ƒt j ||    ƒdS(NsJOnPVPDamage playerID=%s,tagPlayerID=%s,damageValue=%s,updDamage=%s,tick=%st    PVPDamage( RRRRwRxtminR‹tDef_UpperLimit_DWordtSetPlayerGameFBDictRyR9Rt Notify_FBHelp(
Rt damageValuet    tagPlayerR R.t tagPlayerIDR3tcurPlayerDamaget    updDamagethelpDict((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyt OnPVPDamage›s       cCsz|jƒ}|jƒ}tjƒjƒ}tjd|||f|ƒtjƒjƒtkrcdSt||t    |ƒt
S(Ns2DoFBOnKill_Player roomID=%s,winnerID=%s,loserID=%s( RRRRRRRRBRtDef_OverType_KillR (RtdefenderR RLtloserIDR1((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pytDoFBOnKill_Player²s  c
Cs7tjƒ}|sdn    |jƒ}|s0dn    |jƒ}|jt|ƒ}|d}|jt||ƒ|tƒtk}    |     r|rt||||    ƒ|j    |t
dƒ|j    |t |ƒ|j    |t
dƒ|j    |t |ƒtj d|ƒt jt|ƒdStj d|ƒt||||ƒdS(Niis.    Î´´ïµ½×î´óʤ³¡£¬ÓжÔÊÖ£¬½øÈ븴»îµÈ´ý½×¶Î£¡s"    ÒÑ´ïµ½×î´óʤ³¡£¬»ñµÃ×îÖÕʤÀû£¡(RRRR_tGameFBDict_PlayerWinCntRRt Def_MaxWinCntt__NotifyFBOverR˜RxRyR9RRRYRI(
RKRMtoverTypeR R3RLR£t winnerWinCntt    updWinCnttisOver((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyR¾s& 
 cCsX|s dn    |jƒ}|s$dn    |jƒ}|s<dn    |jƒ}|sTdn    |jƒ}|jt|ƒ}|j|tƒ}    |jt|ƒ}
|j|tƒ} tjƒjƒ} i
| d6|d6|d6|d6|
d6|d6|    d    6| d
6|d 6|d 6} tj    d t
| ƒ| ƒ|r;t j || ƒn|rTt j || ƒndS(NitR1t winnerAccIDt
loserAccIDR©t loserWinCntR«t winnerDamaget loserDamageRLR£s µ¥¾Ö½áËã %s( RtGetAccIDR_R¥RwRxRRRRR~RtNotify_FB_Over(R3RKRMR«RLR­R£R®R©R°R¯R±R1toverDict((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyR§Üs&c     Cstjƒ}tƒ}|s!dn    |jƒ}|s9dn    |jƒ}|jt|ƒ}|jt|ƒ}    tjtj    |t
ƒtj t |ƒtj ƒjƒ}
t|
||||    tj|ƒtj|ƒ|gƒ} tjƒjdddd| t| ƒƒtjd| ƒdS(Nit MergePKOversPK½áËãSendToGameServer: %s(RRRRR_R¥RR&R t tttLeaveMapR”RR>RRR~tChEquiptGetPlayerEquipViewtGetPlayerManagertGameServer_QueryPlayerResultR}R( RKRMR¨R R3RdRLR£R©R¯R1tsendMsg((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyRIös     (cCst||ƒ S(N(tCanAttackPlayer(Rt curTagPlayer((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pytCheckPlayersRelation_IsFriendscCs t||ƒS(N(R¼(RR½((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pytDoCanAttackTeamerscCsEtjƒjƒ}|tkr/tjdƒtS|jƒ|jƒkS(Ns·ÇÕ½¶·½×¶Î£¬²»¿É¹¥»÷£¡(RRRRBR9tFalseR(RR½R4((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyR¼"s
  (ARR+RR R?R(R‰RR‹R·RER"R$R%RhR”R:R*R¦R…R RnR†R    RR#RARBRYR>t FB_State_OverRaRJR¡R€RR¥RxRyRRRR8R=RRRSRTR\RURVRcRWR]RXRZR“R[R R¤RR§RIR¾R¿R¼(((ss.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_MergePK.pyt<module>sT          0 $                 %    
    *    
                
                &