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
76
77
78
ìµF\c@sPddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZdZdZdZdZdZdZdZd    Ziad
„Zd „Zd „Zd „Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&d„Z'd„Z(d„Z)d„Z*d„Z+e,d„Z-d„Z.d„Z/d„Z0d „Z1e,gd!„Z2d"„Z3d#„Z4e,d$„Z5d%„Z6d&„Z7d'„Z8d(„Z9d)„Z:dd*„Z;d+„Z<d,„Z=dS(-iÿÿÿÿNsFBDict_StartTick%ssFBDict_Speed%ssFBDict_RemainHP%stFBPlayerDict_EncourageLVt FBDict_IsOversFBDict_IsReduceing%stFBPlayerDict_RanksFBDict_BossTotalHP%scCst|ƒdS(N(tNotifyZXHelpCnt(t    curPlayer((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytOnFBPlayerOnLogin0s
cCs0tj|tjtjddƒƒt|ƒdS(NtZhuXianBossCntCfgi(t PlayerControltNomalDictSetPropertytChConfigtDef_PDict_ZhuXianBossHelpCntt IpyGameDataPYt
GetFuncCfgR(R((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytOnFBPlayerOnDay4s"
cCs5tjƒ}|jtjƒ|_tj||ƒdS(N(tChPyNetSendPackttagMCZhuXianBossCnttNomalDictGetPropertyR    R
tCntt NetPackCommont SendFakePack(RtpackData((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyR9s cCsÎtjd|ƒ}|sdS|jƒ|jƒkr8dStj|ƒ|jƒkrWdS|jtj    tj
ƒ}|t j |tj
ƒkrÊ|jtj ƒs¡dS|jƒsÊtjd|jƒƒdSntS(Nt ZhuXianBosss    ÓйéÊô´ÎÊýΪµ«Ã»ÓнøÏÉÃË!(R tGetIpyGameDatatGetOfficialRankt
GetRealmLVt
ItemCommontGetZhuXianEquipTotalGStGetZhuXianScoreRR    tDef_Player_Dict_EnterFbCntDaytDef_FBMapID_ZhuXianBosstFBCommontGetEnterFBMaxCntR
t GetFamilyIDt    GameWorldtDebugLogt GetPlayerIDtTrue(RtmapIDtlineIDtticktipyDatatenterCnt((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytOnEnterFBEventFs cCsvtjd|ƒ|sdSxTtd|jƒƒD]=}|j|ƒ}|jƒsXq1n|jƒ|kr1tSq1WdS(Ns'¼ì²é¸±±¾ÀïÊÇ·ñÓÐͬÃ˳ÉÔ± curFamilyID=%si(R!tLogtrangetGetPlayerCounttGetPlayerByIndexR#R R$(t curFamilyIDt playerManagertindextplayer((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytGetHasSameFamilyMerber[s cCs|S(N((RR%tlineIdtipyEnterPosInfoR'((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytOnGetFBEnterPososcCstjS(N(t IPY_GameWorldt    cmeAccept(taskR'((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytOnChangeMapAsk|scCsštjƒjƒd}t|ƒ}|s,dStj|}tjƒj|dƒtjd|ƒtj    d|ƒ}tjƒjt
||j ƒdƒdS(Nis    Ë¢BOSSbossID=%sRiè( R!t GetGameWorldt GetPropertyIDtCurFBLineBOSSIDt ShareDefinet'Def_Notify_WorldKey_GameWorldBossReborntSetGameWorldDictR"R RtFBDict_BossTotalHPt GetKillTime(R'R&tbossIDtkeyR(((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytOnOpenFBƒs  $cCsC|jƒ}tjƒjƒd}tjƒjƒjƒ}tjd||f|ƒ|dkrqtj|ƒdSt    j
|ƒ}|såt    j |ƒt j j|dƒtj|dƒtj|tjdtjƒt|dtƒnt|ƒtjƒ}|j|tƒ}|dkr/t    j|t|ƒnt    j||ƒdS(Nis"DoEnterFB...playerCnt=%s,lineID=%si(R#R!R;R<tGetMapCopyPlayerManagerR-R"Rt PlayerLeaveFBRtGetHadDelTickettSetHadDelTickett
PyGameDatatg_fbPickUpItemDicttpoptg_heroHurtDictt EventReportt WriteEvent_FBR    Rt CME_Log_StarttUpdateHurtInfoR$tUpdateHPReduceSpeedt    GetGameFBtGetPlayerGameFBDictByKeyRtAddFbEncourageBufftSendFBEncourageInfo(RR'tplayerIDR&t    playerCntt hadDelTickettgameFBt encourageLV((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyt    DoEnterFB“s*    
  cCsitjƒ}|jƒd}|jt|dƒ|jt|dƒ|jt|dƒ|jdƒdS(Nii(R!R;R<R@tFBDict_StartTickt FBDict_SpeedtFBDict_RemainHPt SetPropertyID(R't    gameWorldR&((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyt    OnCloseFB»s  cCs—tjƒ}tj||ƒ|jƒjƒdkr†|jƒd}itj|<|j    t
|dƒtj ƒj ƒt j|ƒdSt|tƒdS(Nii(R!R;RtClearEncourageBuffRFR-R<RJtg_ZhuXianBossPlayerHurtDictR@R]RStClearGameFBDicttGameWorldProcesstCloseFBRRR$(RR'RaR&((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytDoExitFBÉs    cCsxtj|dƒtjƒjƒd}tjj|iƒ}|j|j    ƒdƒ|tj|<|stt
||ƒndS(Nii( RRIR!R;R<RJRdtgetRLR#t StopReduceHP(RR'R&tplayerHurtDict((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytDoPlayerLeaveFBÞs cCstj|dƒdS(Ni(RRI(R((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytDoPlayerChangeMapLogicêscCstS(N(R$(((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytOnPlayerRebornñscCstjƒjtƒrdSg}tjƒjƒd}tjj|iƒj    ƒ}|d }|j
dd„dt ƒxzt |dƒD]i\}}|dd \}}    i}
||
d<||
d<|    t j|
d    <|    t j|
d
<|j|
ƒqƒWtjƒjt|ƒ} tjƒjt|ƒ} t||ƒ} t|ƒ}|rQ| d |nd }|rttd | d |ƒnd }tj|jƒd ƒ}i|tj6|d6|d6|d6| d6|t jd6|t jd6}tjd||jƒƒtj||ƒdS(NiiRDcSs |ddS(Ni((tasd((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyt<lambda>streverseitrankt
playerNamethurtthurtExi'iidthurtInfot hpReduceSpeedt remainHPPert isReduceingtmyHurttmyHurtExs DoFBHelp: %s(R!RStGetGameFBDictByKeyRR;R<RJRdRititemstsortR$t    enumerateR    tDef_PerPointValuetappendtGetGameWorldDictByKeyR^tFBDict_IsReduceingtGetBossRemainHPt__GetBossTotalHPtminRMtGetIDRt Help_lineIDR"R#t Notify_FBHelp(RR'RvR&tplayerHurtListt syncHurtListtitinfoRsRtthurtDicttcurSpeedRytremainHPttotalHPRwRxRzt
fbHelpDict((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytDoFBHelpùs8
 
 
  #cCsw|jƒ}tjƒjƒd}t|ƒ}d}x<t|ƒD].\}}||ddkrA|d}PqAqAW|S(Nii(tGetNameR!R;R<t__GetSortHurtListR(RRsR&RŠtmyRankRŒR((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyt__GetSelfHurtRank&s  
cCs)|dkr%tj|t||ƒndS(Ni(RtFbEncourageBuffR(Rt
actionTypet
actionInfoR'((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyt
DoFBAction8s cCst||ƒdS(N(RQ(RtcurNPCthurtHP((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytDoFB_Player_HurtNPCDs c    Cs |jƒ}tj|dƒ|t|<|jtjtjƒ}|tj|tjƒkr^dSt    j
ƒj ƒd}|j ƒ}|j ƒ}tjj|iƒ}||krÍ|s·dS|||g||<n||dc|7<|tj|<t|t    j
ƒjƒƒdS(Nii(R#RMRiRR    RRRRR!R;R<R”R RJRdt StartReduceHPtGetTick(    RRtisAddRWR)R&RstfamilyIDRk((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyRQHs"     cCsÐtjƒ}|jtƒ}|rY||tjkrYtjd||fƒtjƒdStj    ƒj
ƒd}|dkrdStj    ƒ}|j t |ƒ}| s«|r¯dStj |tdƒt|ƒdS(Ns)Ç¿ÖÆÌß³öÍæ¼Ò¹Ø±Õ¸±±¾: overTick=%s,tick=%siiiˆ(R!RSR|RR    tDef_FBPickupItemTimeR+RtDoLogic_FBKickAllPlayerR;R<R‚R]tNotifyCopyMapPlayerFBHelpR“t __CheckBossHP(R'RZtoverTickR&Rat    startTick((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyt    OnProcessfs  
 
cCs:tjj|iƒ}t|jƒdd„dtƒ}|S(NRDcSs |ddS(Ni((Ro((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyRpsRq(RJRdRitsortedt    iteritemsR$(R&RkRŠ((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyR•}s!cCs&t|ƒ}|sdS|dddS(Ntii(R•(R&RŠ((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytGetFirstOwnerName‚s c    Cs©tjƒ}tjƒjƒ}tjƒjƒd}tj||ƒd}t|ƒ}|sqtj    d|ƒdS|d}    |    d}
|    dd} tj
ƒ} | j |
ƒ} | r†|j |
t dƒ| sÕ| rñ| jƒ| jƒ}}nt| |d||tgƒ}|sg| jtjd|tƒidtj6|tj6}tj| tj|||ƒq÷| jtjdtjtƒnqtj|
ƒ}|r÷||tjkr÷tt j!|
|ggddgƒ}| j"dddd|t#|ƒƒntj$||ƒ}|r¥t#|ƒ}tj%|ƒ}xxt&d| j'ƒƒD]^}| j(|ƒ}|j)ƒ}|smq@n||
krq@n|j*ƒ| kr—q@n|j+tj,ƒ}|sµq@ntj-|tj,|dƒt.|ƒ|jtjd|tƒidtj6|tj6}tj|tj|||ƒt/j0|tj1|ƒ}||kretj2d|g|ƒq@x6|D].\}}}t3j4||||tj1gƒqlWq@WndS(    Niiès7 __DoLogicZhuXianBossOver£¬ É˺¦°ñÉÏûÓÐÈË£¡£¡lineID=%siitdropItemMapInfotAddUniversalGameRectZXBossHelperReward(5R!RStGetMaptGetMapIDR;R<RtGetFBLineStepTimeR•R+RFtFindPlayerByIDtSetPlayerGameFBDictRtGetPosXtGetPosYtGiveZhuXianBossAwardR$t Sync_TimeTickR7t tttLeaveMapt    Over_rankt Over_itemInfot NotifyFBOverR    Rt tttPickupItemR£RtGetPlayerLeaveServerTicktDef_PlayerOfflineProtectTimetstrR>t*Def_UniversalGameRecType_ZhuXianBossRecordtGameServer_QueryPlayerResulttlentGetFBLineRewardtGetJsonItemListR,R-R.R#R RR
RRRtGetItemPackSpacetrptItemt SendMailByKeyt ItemControlertGivePlayerItem(tisPassR'tdropPosXtdropPosYRZR%R&t    leaveTickRŠt firsthurtInfot firstPlayerIDtfirstPlayerFamilyIDR0t firstPlayert prizeItemListtoverDicttleaveServerTicktmsgStrt helpItemListt    needSpacet jsonItemListR1Rt curPlayerIDt    remainCntt    packSpacetitemIDt    itemCounttisBind((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyt__DoLogicZhuXianBossOver‰sl  
 
 $%   
 *c
CsJd}g}i}t|ƒ}tj|tji||6ddd|d|ƒ\}}    }
xa|D]Y} d| kr|j| ƒq_| d| jddƒ} } |j| d    ƒ| || <q_Wtjd
|||    |
|f|j    ƒƒ|t
j |j ƒƒ}t j|tj||gƒt
j|tj|ƒtj|tj|ƒ|S( Nit mailTypeKeytZXBossBelongerRewardtisMailR®tUserDatatItemIDtCountisOÖïÏÉboss½áËã½±Àø: lineID=%s,bossID=%s,totalExp=%s,totalMoney=%s,jsonItemList=%s(R=t    NPCCommontGiveKillNPCDropPrizeR    RRRiR!R"R#RRÆR}t PlayerSuccesstDoAddSuccessProgressR>tSuccType_KillSpecificNPCtAddEnterFBCounttPlayerActivitytAddDailyActionFinishCnttDailyActionID_ZhuXianBoss(RR&RäR®taddCntt    equipListt prizeItemDictRCRÚttotalExpt
totalMoneytjsonItemRÞtitemCntRÔ((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyR¸Ês&         cCsr|jƒ}|tjkrdS|jƒ}tj|ƒ}tj|ƒ}|tjkr|rutj|j    |ƒq%t
}xwtj|D]h}|d|dkr‰|j dƒ|j dƒkr‰|j ddƒ|j ddƒ|d<t }Pq‰q‰W|s%tj|j    |ƒq%n|gtj|<d}    t jƒ}
xgt|
jƒƒD]S} |
j| ƒ} | sJ| jƒrxqJn| jƒ|jƒkrJ|    d7}    qJqJW|    dk} | s·dSd}t jƒjƒd}tjtj|ƒd}t jƒ}|j|tƒ}tjj |gƒ}|jtjd|t ƒi|tj 6|tj!6}tj"|tj|||ƒdS(NRætIsBindRçiiiè(#tGetTypeR    tDef_ItemType_MoneyR‡RtCheckItemIsEquipt GetJsonItemRJRKRtFalseRiR$R!tGetMapItemManagertxrangetGetMapItemCounttGetMapItemByIndextIsEmptyt
GetOwnerIDR#R;R<RR³RRSRTRR¹R7RºR»R¼R½(RtcurItemR't mapItemTypeRWtisEquipRötisIntitemInfotplayerItemCounttmapItemManagerR1tmapItemtisItemAllPickUpRÌR&RÏRZRrRÚRÕ((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyt OnPickUpItemèsN  2&   c Cs>tjƒ}|jtƒ}tjƒjƒd}| r:t||ƒdkr:t|ƒ}tj|ƒ}d\}}|r–|j    ƒ|j
ƒ}}nt j ƒt j |tdƒtjd|ƒt|ƒ}|r|ddd \}    }
tj||    |
ƒntj|dƒtd|||ƒ|jt|ƒndS(Niis½áÊø ÉèÖÃBOSSËÀÍö lineID=%si(ii(R!RSR|RR;R<R„R=tFindNPCByNPCIDR¶R·Rt
ClearFBNPCR¥R“R"R•RètGameServer_KillGameWorldBosstGameServe_GameWorldBossStateRát SetGameFBDict( R'RZtisOverR&RCtcurBossRÍRÎRŠt
killerNamet    hurtValue((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyR¦s(   
 c    Cs™tjƒ}|jƒjƒ}|r.|dn|}|dkrDdStjƒjƒd}|dkrjdSttdd|ddƒdƒ}|jt||ƒ|j    t
|ƒsºdS|j    t |ƒ}|j    t |ƒ}|j    t|ƒ}|s|}|}t |ƒ}ntdt|||d|ƒƒ}|jt ||ƒ|jt ||ƒtjd|||||fƒtj|tdƒdS(Niig{®Gáz´?gÍÌÌÌÌÌü?ièg@@s7    curSpeed=%s, remainHP=%s, passTime=%s, lastSpeed=%s(R!R;RFR-R<tintR†R@R^R‚RƒR]R_R…tmaxR"RR¥R“(    R'tisExitRaRXR&RR¨Rt    lastSpeed((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyRR7s2   %%!cCshtjƒ}|jt|ƒs#dSt||ƒ}|s<dS|jt|dƒ|jt||ƒdS(Ni(R!R;R‚RƒR„R@R_(R&R'RaR((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyRjUs cCs…tjƒ}|jt|ƒr#dS|jt|dƒ|jt|ƒ}|sm|jt|t|ƒƒn|jt||ƒdS(Ni(R!R;R‚RƒR@R]R_R…(R&R'RaR¨((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyRŸas cCstjƒjt|ƒS(N(R!R;R‚RA(R&((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyR…mscCs tjƒ}|jt|ƒ}|jt|ƒ}|jt|ƒ}|jt|ƒs\|S|sw|}t|ƒ}n%tdt    |||d|ƒƒ}|S(Nig@@(
R!R;R‚R]R^R_RƒR…RR(R&R'RaR¨RR((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyR„ps %cCs1t||ƒ}t|ƒ}|s%dS|d|S(Niid(R„R…(R&R'RR‘((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytGetBossRemainHPPers
 cCsa|dkr%tjƒjƒd}n|dkr5dStjd|ƒ}|sQdS|jƒ}|S(NiÿÿÿÿiiR(R!R;R<R RtGetNPCID(R&R(RC((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyR=†s   cCsdS(N((R((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyt DoPlayerDead—scCs€|jƒ}|jƒ}|tjkr||tjkr|tjƒ}|jƒd}|jt|ƒs|t    j
|dƒt Snt S(NitTryEnterJadeDynastyBossError_7( tGetGameObjTypeR7t    gotPlayertgotNPCR!R;R<R‚RƒRt
NotifyCodeRýR$(tattackertdefendert
atkObjTypet
defObjTypeRaR&((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pytCheckCanAttackTagObjInFBžs   (>RR!R7RfR R    RJRRèRRR>RêRîRRÊRNR]R^R_RRRƒRRARMRR RR*R3R6R:RER\RbRhRlRmRnR“R—R›RžRýRQR©R•R­RáR¸R R¦RRRjRŸR…R„RR=RR'(((sw.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianBoss.pyt<module>sx                                                       (                         -                              A    2