xdh
2019-01-22 09e7829afdcdad2bc27ad342c8cc64be011039e6
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
79
80
81
82
83
ÉF\c@s¹ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZdZdZdZdZdZdZdZd    Zd
Zd Zd Zed ƒ\ZZ Z!Z"edƒ\Z#Z$Z%Z&Z'd„Z(d„Z)d„Z*d„Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d„Z6e7dd„Z9dd„Z:d„Z;d „Z<d!„Z=d"„Z>d#„Z?d$„Z@d%„ZAeBd&„ZCd'„ZDid(„ZEd)„ZFd*„ZGd+„ZHd,„ZId-„ZJd.„ZKd/„ZLd0„ZMd1„ZNd2„ZOdS(3iÿÿÿÿNit FBDict_Levelt FBDict_FBStartFBDict_isFirstStFBDict_StartTickt FBDict_SpeedtFBDict_RemainHPtFBDict_IsReduceingtFBDict_BossTotalHPtFBDict_LastHurtTicktFBDict_HasGiveAwardicCstjtjƒS(N(tFBCommontGetFBLineStepTimetChConfigtDef_FBMapID_ZhuXianTower(((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyt__GetZhuXianCfgHscCstjd|ƒS(Nt ZhuXianTower(t IpyGameDataPYtGetIpyGameData(tlevel((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pytGetTowerIpyDataKscCst|ƒdS(N(tSyncZhuXianLevelInfo(t    curPlayer((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pytOnFBPlayerOnLoginOs
cCs9tjƒ}|jƒt|ƒ|_tj||ƒdS(N(tChPyNetSendPackttagMCZhuXianTowerInfotCleart__GetZhuXianTowerCurPassLVtFloort NetPackCommont SendFakePack(RtttInfo((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyRVs
 
cCs|jtjƒS(N(tNomalDictGetPropertyR t"Def_Player_Dict_ZhuXianTowerPassLV(R((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyR_scCs+tj|tj|ƒtjd|ƒdS(Ns ¸üÐÂÖïÏÉËþÒÑͨ¹ØÊý %s(t PlayerControltNomalDictSetPropertyR R t    GameWorldtDebugLog(Rtpasslv((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pytSetZhuXianTowerCurPassLVdscCstS(N(tTrue(RtmapIDtlineIdttick((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pytOnEnterFBEventsscCs”|jtjtjƒ}|tj|tjƒkrEtjdƒdSt|ƒ}t    j
ƒ}|j |j ƒdƒj ƒ}||krŒ|S|dS(Ns½øÈë´ÎÊý²»×㣡£¡ii(RR tDef_Player_Dict_EnterFbCntDayR R
tGetEnterFBMaxCntR#tLogRRtIPY_DatatGetZhuXianTowerByIndextGetZhuXianTowerCounttGetID(RtenterCnttcurFloortipyMgrtmaxFloor((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyt__CheckCanChallengexs    cCstj|ƒdS(N(R
tUpdateFBEnterTick(R((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pytDoPlayerChangeMapLogic‡s cCs|S(N((RR(R)tipyEnterPosInfoR*((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pytOnGetFBEnterPos’scCstjS(N(t IPY_GameWorldt    cmeAccept(taskR*((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pytOnChangeMapAskšscCs÷tj|tjdtjƒtjƒ}|jƒ}tƒ}|t    kr|t
d|tjƒj ƒ}|j t jdt|dƒtƒnc|tkró|td|tjƒj ƒ}|j t jdt|dƒtƒt|t|ƒndS(Niiè(t EventReportt WriteEvent_FBR R t CME_Log_StartR#t    GetGameFBt    GetFBStepRtFB_State_FightPreparetDef_PrepareTimet GetFBStepTickt Sync_TimeTickR<t tttWaitStarttmaxR'tFB_State_Fightingt Def_FightTimet tttTowerTaket__UpdZhuXianTowerFBStar(RR*tgameFBtfbStept
ZhuXianCfgt notify_tick((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyt    DoEnterFB¢s       "% ""cCsdS(N((R*((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyt    OnCloseFB·scCsdS(N((RR*((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pytDoExitFBÀscCstjƒ}|jƒ}|tkr1t|ƒnh|tkrqt|ƒt|ƒt|ƒt    j
|t dƒn(|t krŠt |ƒn|tkr™ndS(Niˆ(R#RCRDREt__DoLogic_FightPrepareRKt__DoLogic_Fightingt __CheckBossHPRNR
tNotifyCopyMapPlayerFBHelptDoFBHelptFB_State_FreeTimet__DoLogic_FreeTimetFB_State_Close(R*RORP((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyt    OnProcessÊs     
 
 
   cCsçtjƒ}|jƒ}|tkr(dS|jtƒ}|dkrG|Stjƒjƒ}tt    j
||j ƒdƒƒ}t j |ƒ}|t}    d}
d} x<t|    dƒD]+\} } || kr±| } | |}
q±q±W|| kr÷| r÷|S|jt| ƒtjd||| |
fƒ|rft||ƒ| dkrã|jtjd|
dtƒqãn}tjƒ}xnt|jƒƒD]Z}|j|ƒ}|s¦q…nt||ƒ| dkr…|jtjd|
dtƒq…q…W| S(Nig@@iis=__UpdFBStar useSecond=%s,curStar=%s,updStar=%s, diffSecond=%siè(R#RCRDRKtGetGameFBDictByKeyRtGetMaptGetMapIDtinttmathtceilRGR
R t Def_StarTimet    enumeratet SetGameFBDictR$RZRHR<t tttFlagTakeR'tGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndex(R*tisEnterRRORPtcurStarR(t    useSecondt chaosDemonCfgt starTimeListt
diffSecondtupdStartstartstarTimet playerManagertindex((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyRNÞsF    #
       #   $cCs[tjƒ}|dkr*|jtƒ}nt|ƒ}|sQtjd|ƒdS|jƒS(Niÿÿÿÿs;__GetZhuXianBossID() can not find %s in tagZhuXianTower.txti(R#RCR_RRtErrLogtGetNPCID(tfbLevelROtipyData((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyt__GetZhuXianBossID s   cCs¥tjƒ}tƒ}||jƒ|tdkr7dStƒ}|sTtjƒdStjt    j
|t dƒt j tjtjdƒ|gƒtjt|ƒdS(Nièi(R#RCRRGRFR|R
tDoLogic_FBKickAllPlayertSync_Player_TimeTickR<RMRLtNPCCustomRefresht SetNPCRefreshtGetFBLineRefreshNPCR R t    SetFBStepRK(R*RORQtbossID((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyRVs         
"c    Csf|jƒtjkrDtjd|jƒƒtj|tj    |ƒn|j
|j ƒƒt j ƒtjƒ}|jt|ƒ|jƒ}t|ƒ}|jƒ}ttjdƒƒ}|jt|dƒ|jtdƒ|jt|dƒtƒtd}t jtj|ƒt jtj|ƒt jt |ƒt!||ƒtjd||f|jƒƒdS(Ns ¸´»îÍæ¼Ò...tZhuXianTowerBossTimeiès$StartFBLevel, fbLevel=%s£¬totalHP=%s("tGetPlayerActionR<tpaDieR#R$t GetPlayerIDtChPlayertPlayerRebornByTypeR trebornType_CitytSetHPtGetMaxHPR
t
ClearFBNPCRCRgRt GetFightPowerRt GetNeedPowertevalRtGetFuncCompileCfgRRRRRFR~t tttAddUpTimeRIR‚RERZ(    RRzR*ROt playerPowerR{t    needPowerttotalHPt prepareTick((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyt StartFBLevel/s*
      cCsêtjƒ}||jƒtƒtdkry|jtƒ}|ru||dkrut|ƒtjƒjtdƒndS|jt    ƒ}tj
ƒ}xEt |j ƒƒD]1}|j |ƒ}|sÈq§nt||tƒq§Wt|ƒdS(NièiÐi(R#RCRGRRLR_Rt StopReduceHPRgRRiRjRkRlt__SendZhuXianTowerOverInfotFalset__SetFBToFreeTime(R*ROt lastHurtTickRzRvRwR((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyRWMs  !
 
cCs2tjtjtƒtdƒtjt|ƒdS(Niè(R
R~R<t tttLeaveMapRt Def_ExitTimeR‚R[(R*((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyR›hscCs/|tjƒjƒtƒtdkr+dSdS(Niè(R#RCRGRRž(R*((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyR\rs'c Cs©tjƒ}|jtƒ}t|ƒ}|s1dStjƒ}|sTtj|ƒdS|j    ƒ}|r‹t
j dd|j ƒ||gƒnt jƒ}|j|jƒdƒjƒ}|tjƒjƒ}|jtƒ}    d}
||kr0|    tkr0t||ƒtj|tj|d|dƒd}
n|jt|
ƒt|tƒ} i|tj6tj| ƒtj 6} t!||| r‡t"nt| ƒt#|ƒt$|ƒdS(NitKillGodTowerInfo_1ii'iè(%R#RCR_RRR
tGetCurSingleFBPlayertGameWorldProcesstCloseFBtGetUnLockEquipPlaceR!t WorldNotifyt GetPlayerNameRR/R0R1R2RGRt Def_MaxStarR&tPlayerBillboardtUpdatePlayerBillboardt ShareDefinetDef_BT_ZhuXianTowerRgRt__GiveFBPassPrizeRšt Over_costTimetGetJsonItemListt Over_itemInfoR™R'RR›( R*RORzR{RtunLockEquipPlaceR5R6tcostTimeRntisFirstSt prizeItemListt    prizeDict((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pytDoZhuXianTowerOverzs8     %  !    #
 
cCsdS(N((RtcurNPCR*((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pytDoFB_Player_KillNPC¬sc Cs¦tjƒ}|jtƒ}t|ƒ}|s1gS|jtƒ}|rU|jƒ}n'|jtƒ}|jƒj    |gƒ}|s†gS|s|S|jt
ƒr¹tj d|j ƒƒdSt |ƒ}tj|tj|ƒ}    t||    kƒ}
|
r4tjd|jƒg|ƒtjdt|ƒ|jƒƒnHxE|D]=\} } } tj|| | | tjgddtigƒq;Wtj|tjdƒ|jt
dƒdS(Ns±¾²ã½±ÀøÒѸø£¬²»ÄÜÖØ¸´¸ø£¡£¡tKillGodTowerRewards'±³°ü¿Õ¼ä²»¹»£¬·¢ËÍÓʼþ: mailItemList=%steventRi( R#RCR_RRRt GetFirstAwardRt GetGradeAwardtgetR    R.R2tlent
ItemCommontGetItemPackSpaceR<trptItemRbR!t SendMailByKeyR‡R$tstrt ItemControlertGivePlayerItemRšR
tAddEnterFBCountR R Rg(RtisGiveROtpreFloorR{t isFirstPassR²Rnt    needSpacet
emptySpacet
isSendMailtitemIDtitemCnttisBind((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyR«²s:   #c Cs÷tjƒ}|jtƒ}|jtƒ}|jtƒ}t|ƒ}tƒ}|rb|d|nd}|r…td|d|ƒnd}    |jt    ƒ}
i|
t
j 6|t
j 6|d6|    d6|d6} tj d| |jƒƒt
j|| ƒdS(Ni'iidt hpReduceSpeedt remainHPPert isReduceings DoFBHelp: %s(R#RCR_RRRtGetBossRemainHPt__GetBossTotalHPtminRR
t
Help_wheelt
Help_gradeR$R‡t Notify_FBHelp( RR*RORttcurSpeedRÐtremainHPR•RÎRÏRzt
fbHelpDict((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyRZßs      #/cCsdtj|tj<||tj<t|ƒ|tj<tjdt    |ƒ|j
ƒƒtj ||ƒdS(Ns&__SendZhuXianTowerOverInfo overDict=%s( R R R
tOver_dataMapIDt
Over_wheelRbt Over_isPassR#R$RÁR‡tNotify_FB_Over(RRztisPasstoverDict((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyR™ñs   cCs&tjƒ}|jƒtkr"tStS(N(R#RCRDRKRšR'(tattackertdefenderRO((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pytCheckCanAttackTagObjInFBÿs cCsKtjƒ}|jtƒ}t||tƒtjƒjƒ}t|ƒdS(N(    R#RCR_RR™Ršt GetGameWorldtGetTickR›(RRORzR*((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyt DoPlayerDead s  
cCstS(N(R'(((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pytOnPlayerRebornscCsªtjƒ}|jƒ}|dkrz|ttgkrGtjdƒdSt|ƒ}|sgtjƒdSt    |||ƒn,|dkr¦|t
kr–dSt |t ƒndS(Nis×¼±¸»òÕ½¶·ÖÐ, ÎÞ·¨±ä¸ü¹Ø¿¨!i( R#RCRDRERKR$R7R
R}R—R[R«Rš(Rt
actionTypet
actionInfoR*RORPtnewFloor((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyt
DoFBAction"s      
  cCsqtjƒ}|jƒ}|tkrmt|ƒdkrmtjƒtj|tdƒtj    dƒt
|ƒndS(Nis½áÊø ÉèÖÃBOSSËÀÍö ( R#RCRDRKRÑR
RRYRZR$R´(R*RORP((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyRX9s  
  cCsftjƒ}|jtƒsdSt|ƒ}|s5dS|jtdƒ|jt|ƒtjdƒdS(Nis    ÔÝÍ£BOSSѪÁ¿¼õÉÙ(R#RCR_RRÑRgRR$(R*RORØ((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyR˜Hs   cCsŽtjƒ}|jtƒrdS|jtdƒ|jtƒ}|sZ|jttƒƒn|jt|ƒtjdƒt    j
|t dƒdS(Nis    ¿ªÊ¼BOSSµôѪi( R#RCR_RRgRRRÒR$R
RYRZ(R*ROt    startTick((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyt StartReduceHPVs  cCstjƒjtƒS(N(R#RCR_R(((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyRÒfscCstjƒ}|jtƒ}|jtƒ}|jtƒ}|jtƒsL|S|sd|}tƒ}n%tdt    |||d|ƒƒ}|S(Nig@@(
R#RCR_RRRRRÒRJRb(R*RORët    lastSpeedRØ((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyRÑis  %cCs6tjƒjƒ}tjƒjt|ƒt|ƒdS(N(R#RãRäRCRgRRì(RRµthurtHPR*((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pytDoFB_Player_HurtNPC~s
(PR
R#R<R!RRRÂRR©RR½R Rˆt PlayerSuccessR¡R§R@trandomRcR¦RRRRRRRRRR    trangeRFRLRžRet FB_State_OpenRERKR[R]RRRRRR&R+R7R9R;R?RSRTRUR^RštNoneRNR|RVR—RWR›R\R´R¶R'R«RZR™RâRåRæRêRXR˜RìRÒRÑRï(((sx.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_ZhuXianTower.pyt<module>sˆ                                                                                        
    .                 
        2     -