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
Sð    hc@sÉddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z dZ edƒ\ZZZedƒ\ZZZZZd„Zd„Zd„Zd„Zd    „Zed
„Zd „Zd „Zd „Z d„Z!d„Z"d„Z#dd„Z$d„Z%d„Z&d„Z'd„Z(d„Z)d„Z*id„Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1dS(iÿÿÿÿNt FBDict_FlooriicCstjtjƒS(N(tFBCommontGetFBLineStepTimetChConfigtDef_FBMapID_RealmTower(((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyt__GetFBTimelCfg2scCstjd|ƒS(Nt
RealmTower(t IpyGameDataPYtGetIpyGameData(tfloor((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pytGetTowerIpyData4scCst|ƒdS(N(tSyncRealmTowerInfo(t    curPlayer((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pytOnFBPlayerOnLogin6s
cCs?tjƒ}|jƒ|jtjƒ|_tj||ƒdS(N(    tChPyNetSendPackttagMCRealmTowerInfotCleartNomalDictGetPropertyRtDef_Player_Dict_RealmTowerFloortFloort NetPackCommont SendFakePack(R t
clientPack((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyR :s
 
cCs#|jtjƒd}t||ƒS(Ni(RRRt__CheckCanChallenge(R tmapIDtlineIdttickt nextFloorID((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pytOnEnterFBEventAscCsà|jƒ}t|ƒ}|s6tjd||ƒtS|jtjƒ}||krltjd||ƒtS|r ||dkr tjd||f|ƒtS|j    ƒ|j
ƒkrÜtjd||j
ƒf|ƒtSt S(Ns¾³½çËþ²ã²»´æÔÚ: floorID=%ss¸Ã¾³½çËþ²ãÒѹý¹Ø: floorID=%sis*ÉÏÒ»²ãδ¹ý¹Ø: floorID=%s > curFloorID=%s+1s1¸Ã¾³½çËþ²ãËùÐè¾³½ç²»×ã: floorID=%s,NeedRealmLV=%s( t GetPlayerIDR
t    GameWorldtErrLogtFalseRRRtDebugLogtGetOfficialRanktGetNeedRealmLVtTrue(R tfloorIDtcheckPretplayerIDtipyDatat
curFloorID((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyRFs     cCs|S(N((R RRtipyEnterPosInfoR((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pytOnGetFBEnterPos\scCstjS(N(t IPY_GameWorldt    cmeAccept(taskR((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pytOnChangeMapAsk_scCsåtjƒ}|jƒ}|tkrntƒtd|tjƒjƒ}|jtj    dt
|dƒt ƒns|t krÄtƒt d|tjƒjƒ}|jtjdt
|dƒt ƒn|t krátj|ƒdSdS(Nièi(Rt    GetGameFBt    GetFBSteptFB_State_FightPrepareRtDef_PrepareTimet GetFBStepTickt Sync_TimeTickR,t tttWaitStarttmaxR$tFB_State_Fightingt Def_FightTimet tttTowerTaket PlayerControlt PlayerLeaveFB(R RtgameFBtfbStept notify_tick((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyt    DoEnterFBbs   %% %%  cCsdS(N((R((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyt    OnCloseFBuscCstj|ƒdS(N(tGameWorldProcesstCloseFB(R R((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pytDoExitFBxs cCsvtjƒ}|jƒ}|tkr1t|ƒnA|tkrJt|ƒn(|tkrct|ƒn|t    krrndS(N(
RR0R1R2t__DoLogic_FightPrepareR8t__DoLogic_FightingtFB_State_FreeTimet__DoLogic_FreeTimetFB_State_Close(RR=R>((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyt    OnProcess}s         cCs[|dkr*tjƒ}|jtƒ}nt|ƒ}|sQtjd|ƒdS|jƒS(Niÿÿÿÿs<__GetRealmTowerBossID() can not find %s in RealmTowerNPC.txti(RR0tGetGameFBDictByKeyRR
Rt    GetBossID(R%R=R(((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyt__GetRealmTowerBossIDs   cCs¥tjƒ}tƒ}||jƒ|tdkr7dStƒ}|sTtjƒdStjt    j
|t dƒt j tjtjdƒ|gƒtjt|ƒdS(Nièi(RR0RR4R3RMRtDoLogic_FBKickAllPlayertSync_Player_TimeTickR,R:R9tNPCCustomRefresht SetNPCRefreshtGetFBLineRefreshNPCRRt    SetFBStepR8(RR=ttrialCfgtbossID((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyREšs         
"cCsõ|jƒtjkrDtjd|jƒƒtj|tj    |ƒnt
j |ƒt j ƒtjƒ}|jt|ƒtƒtd}t jtj|ƒt jt|ƒi|t j6}t j||ƒtjd|t|ƒf|jƒƒdS(Ns ¸´»îÍæ¼Ò...iès%StartfloorID, floorID=%s, helpDict=%s(tGetPlayerActionR,tpaDieRR!RtChPlayertPlayerRebornByTypeRtrebornType_CitytGameObjt    SetHPFullRt
ClearFBNPCR0t SetGameFBDictRRR3ROR6RSR2t
Help_wheelt Notify_FBHelptstr(R R%RR=t prepareTickthelpDict((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyt StartfloorID¯s 
 &cCs¢tjƒ}||jƒtƒtdkr1dS|jtƒ}tjƒ}xEt|j    ƒƒD]1}|j
|ƒ}|s€q_nt ||t ƒq_Wt |ƒdS(Niè(RR0R4RR9RKRtGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndext__SendRealmTowerOverInfoR t__SetFBToFreeTime(RR=R%t playerManagertindexR ((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyRFÂs ! 
cCs2tjtjtƒtdƒtjt|ƒdS(Niè(RROR,t tttLeaveMapRt Def_ExitTimeRSRG(R((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyRjÕscCs/|tjƒjƒtƒtdkr+dSdS(Niè(RR0R4RRn(R((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyRHÚs'c
Cstjƒ}|jƒtkr"dStƒ}||jƒkrAdS|jtƒ}t|ƒ}|sfdSt    j
|t j |ƒtj d|ƒ|jƒ}tj||ddtigƒitj|ƒtj6}|tjƒjƒ}    |    |tj<t||t|ƒt|ƒt|ƒdS(Ns¸üо³½çËþÒÑͨ¹ØÊý %sR(RR0R1R8RMtGetNPCIDRKRR
R;tNomalDictSetPropertyRRR!tGetRewardItemListt ItemControlertGivePlayerItemOrMailtNoneR RtGetJsonItemListt Over_itemInfoR4t Over_costTimeRiR$R Rj(
R tcurNPCRR=RUR%R(t giveItemListt    prizeDicttcostTime((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pytDoFB_Player_KillNPCàs*        
 
cCsdtj|tj<||tj<t|ƒ|tj<tjdt    |ƒ|j
ƒƒtj ||ƒdS(Ns$__SendRealmTowerOverInfo overDict=%s( RRRtOver_dataMapIDt
Over_wheeltintt Over_isPassRR!RaRtNotify_FB_Over(R R%tisPasstoverDict((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyRis   cCs&tjƒ}|jƒtkr"tStS(N(RR0R1R8R R$(tattackertdefenderR=((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pytCheckCanAttackTagObjInFBs cCsKtjƒ}|jtƒ}t||tƒtjƒjƒ}t|ƒdS(N(    RR0RKRRiR t GetGameWorldtGetTickRj(R R=R%R((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyt DoPlayerDeads  
cCstS(N(R$(((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pytOnPlayerReborn!scCs‚|dkrdStjƒ}|jƒ}|ttgkrKtjdƒdS|}t||ƒsntjƒdSt    |||ƒdS(Nis×¼±¸»òÕ½¶·ÖÐ, ÎÞ·¨±ä¸ü¹Ø¿¨!(
RR0R1R2R8R!RRRNRd(R t
actionTypet
actionInfoRR=R>R%((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyt
DoFBAction%s    
cCsHt||tƒsdS|jtjƒ}t|ƒ}||}||fS(s.¸±±¾¿ìËÙ¹ý¹ØÑéÖ¤
    @param mapID: Êý¾ÝµØÍ¼ID
    @param lineID: Ä¿±ê¹Ø¿¨Ïß·ID£¬¿ÉÒ»´ÎÐÔÌø¶à¹Ø£¬ÓÉǰ¶Ë·¢°ü¾ö¶¨
    @return: (bossID, quickCnt) »ò  None
    @note: bossID Ä¿±êNPCID - Ä¿±ê¹Ø¿¨ËùÐèÒªÌôÕ½µÄÖ÷NPCID£¬Ò»°ãÊÇboss£¬ÓÃÓÚÑéÖ¤Õ½Á¦ÊÇ·ñÂú×ã¿ìËÙ¹ý¹Ø
    @note: quickCnt ±¾´Î×ܹ²Ìø¹ý¼¸¹Ø - Ä¬ÈÏ1
    N(RR RRRRM(R RtlineIDt    curLineIDRUtquickCnt((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pytOnPlayerFBQuickPass9s      
c Cs0|jƒ}|jtjƒ}|d}tjd|||f|ƒg}xst||dƒD]^}t|ƒ}|s}q_ntj    |tj|ƒtjd||ƒ|j
ƒ}    ||    7}q_Wtj |ƒ}
t j ||
ddtigƒitj|
ƒtj6dd6} t||t| ƒt|ƒdS(s¸±±¾¿ìËÙ¹ý¹Ø½á¹û
    is.´¦Àí¿ìËÙ¹ý¹Ø½áËã: mapID=%s,fromLineID=%s to %ss¸üо³½çËþ¿ìËÙ¹ý¹Ø: floorID=%sRt    quickPassN(RRRRRR!trangeR
R;RpRqt MergeItemListRrRsRtR RRuRvRiR$R ( R RRŽR'Rt
fromLineIDt itemListTotalR%R(Ryt prizeItemListt quickPassDict((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pytOnPlayerFBQuickPassResultJs& 
   
(2RRR,R;RRPRBRRrRRRXR[RR“R3R9Rnt FB_State_OpenR2R8RGRIRR
R R RR$RR+R/R@RARDRJRMRERdRFRjRHR|RiR†R‰RŠRR‘R™(((sj.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_RealmTower.pyt<module>sR                                                                                       $