hzr
3 天以前 f6d3d3bd9b136407c1983ca3638afe3cb77ad1f2
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
84
85
86
$u©gc@sMddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZdZedƒ\ZZZZedƒ\ZZZZZd„Zd„Zd„Z d„Z!de#d    „Z$d
„Z%d „Z&d „Z'd „Z(d„Z)d„Z*d„Z+d„Z,d„Z-d„Z.dd„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d„Z6id„Z7d„Z8d„Z9d„Z:d „Z;d!„Z<d"„Z=d#„Z>d$„Z?dS(%iÿÿÿÿNt FBDict_LeveliicCstjtjƒS(N(tFBCommontGetFBLineStepTimetChConfigtDef_FBMapID_SkyTower(((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyt __GetTrialCfg;scCstjd|ƒS(NtSkyTower(t IpyGameDataPYtGetIpyGameData(tfloor((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pytGetTowerIpyData=scCst|ƒdS(N(tSyncSkyTowerInfo(t    curPlayer((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pytOnFBPlayerOnLogin@s
c CsGt|ƒ}|sdSi}tjƒ}x»t|jƒƒD]§}|j|ƒ}|jƒ}||krnq;nd}x/|jƒjƒD]}t    |t
|ƒƒ}q‡Wx/|j ƒjƒD]}    t    |t
|    ƒƒ}q¹W|||<q;W|j ƒ}
t d|ggƒ} tjd| |
ƒtjƒj|
ddd| t| ƒƒdS(Nit MixFirstLogins ÌìÐÇËþºÏ·þÊ×µÇͬ²½GameServer: %sR(t__GetSkyTowerCurFloorRtIPY_DatatrangetGetSkyTowerServerChallengeCountt!GetSkyTowerServerChallengeByIndext
GetFloorIDtGetPassRankRewardInfotkeystmaxtinttGetServerRewardInfot GetPlayerIDtstrt    GameWorldtLogtGetPlayerManagertGameServer_QueryPlayerResulttlen( R t
curFloorIDt passFloorInfot
ipyDataMgrtindext ipyDataServertfloorIDtmaxNeedPassCounttranktneedPlayerCounttplayerIDtmsgInfo((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pytOnMixFirstLoginDs*     (c Cs8g}|dkr`tjƒ}xWt|jƒƒD](}|j|ƒ}|j|jƒƒq1Wn|dkrx|g}ng}xc|D][}|jt    j
|ƒ}    |     rµ| rµq…nt j ƒ}
||
_ |    |
_|j|
ƒq…Wt jƒ} | jƒt|ƒ| _ || _t| jƒ| _tj|| ƒdS(Ni(tNoneRRRRRtappendRtNomalDictGetPropertyRt$Def_Player_Dict_SkyTowerServerRecordtChPyNetSendPackttagMCSkyTowerServerRewardtFloortServerRewardRecordttagMCSkyTowerInfotClearRtServerRewardListR tServerRewardCountt NetPackCommont SendFakePack( R tserverRewardFloortforcetsyncFloorIDListR#R$R%tserverRewardListR&t recordValuetserverRewardInfotttInfo((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyR `s0               
    cCs|jtjƒS(N(R/RtDef_Player_Dict_SkyTowerFloor(R ((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyR~scCsatj|tj|ƒtj||ƒtj|dƒtj|tj    |ƒt
j d|ƒdS(Nis ¸üÐÂÌìÐÇËþÒÑͨ¹ØÊý %s( t PlayerControltNomalDictSetPropertyRRBt
EventShelltEventRespons_SkyTowerCntt PlayerSuccesstUptateSuccessProgresst ShareDefinetSuccType_PassSkyTowerRtDebugLog(R R&((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pytSetSkyTowerCurfloorID‚s cCstS(N(tTrue(R tmapIDtlineIdttick((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pytOnEnterFBEvent“scCsš|jƒ}t|ƒ}|s6tjd||ƒtS|t|ƒkr`tjd||ƒtS|jƒ|jƒkr–tjd|jƒ|ƒtSt    S(NsÌìÐÇËþ¹Ø¿¨(%s)²»´æÔÚsÌìÐÇËþ±¾¹Ø(%s)Òѹý¹Ø, ÎÞ·¨ÌôÕ½!s!ÌìÐÇËþ±¾¹Ø  µÈ¼¶²»×ã%s, ÎÞ·¨ÌôÕ½!(
RR
RtErrLogtFalseRRKtGetLVt    GetNeedLVRM(R R&R*tipyData((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyt__CheckCanChallenge˜s  cCs|S(N((R RNROtipyEnterPosInfoRP((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pytOnGetFBEnterPos³scCstjS(N(t IPY_GameWorldt    cmeAccept(taskRP((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.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|ƒdStj|tjƒdS(Nièi(Rt    GetGameFBt    GetFBSteptFB_State_FightPrepareRtDef_PrepareTimet GetFBStepTickt Sync_TimeTickRZt tttWaitStartRRMtFB_State_Fightingt Def_FightTimet tttTowerTakeRCt PlayerLeaveFBt PlayerActTasktAddActTaskValueRtActTaskType_SkyTower(R RPtgameFBtfbStept notify_tick((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyt    DoEnterFBÂs   %% %%  cCsdS(N((RP((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyt    OnCloseFBÜscCstj|ƒdS(N(tGameWorldProcesstCloseFB(R RP((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pytDoExitFBås cCsvtjƒ}|jƒ}|tkr1t|ƒnA|tkrJt|ƒn(|tkrct|ƒn|t    krrndS(N(
RR^R_R`t__DoLogic_FightPrepareRet__DoLogic_FightingtFB_State_FreeTimet__DoLogic_FreeTimetFB_State_Close(RPRlRm((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyt    OnProcessïs         cCs[tjƒ}|dkr*|jtƒ}nt|ƒ}|sQtjd|ƒdS|jƒS(Niÿÿÿÿs8__GetSkyTowerBossID() can not find %s in SkyTowerNPC.txti(RR^tGetGameFBDictByKeyRR
RRt    GetBossID(R&RlRV((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyt__GetSkyTowerBossIDÿs   cCs¥tjƒ}tƒ}||jƒ|tdkr7dStƒ}|sTtjƒdStjt    j
|t dƒt j tjtjdƒ|gƒtjt|ƒdS(Nièi(RR^RRbRaR|RtDoLogic_FBKickAllPlayertSync_Player_TimeTickRZRgRftNPCCustomRefresht SetNPCRefreshtGetFBLineRefreshNPCRRt    SetFBStepRe(RPRlttrialCfgtbossID((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyRt 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(tGetPlayerActionRZtpaDieRRKRtChPlayertPlayerRebornByTypeRtrebornType_CitytGameObjt    SetHPFullRt
ClearFBNPCR^t SetGameFBDictRRRaR~RdR‚R`t
Help_wheelt Notify_FBHelpR(R R&RPRlt prepareTickthelpDict((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyt StartfloorID"s 
     cCs¢tjƒ}||jƒtƒtdkr1dS|jtƒ}tjƒ}xEt|j    ƒƒD]1}|j
|ƒ}|s€q_nt ||t ƒq_Wt |ƒdS(Niè(RR^RbRRfRzRtGetMapCopyPlayerManagertxrangetGetPlayerCounttGetPlayerByIndext__SendSkyTowerOverInfoRSt__SetFBToFreeTime(RPRlR&t playerManagerR$R ((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyRu:s ! 
cCs2tjtjtƒtdƒtjt|ƒdS(Niè(RR~RZt tttLeaveMapRt Def_ExitTimeR‚Rv(RP((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyR˜PscCs/|tjƒjƒtƒtdkr+dSdS(Niè(RR^RbRR›(RP((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyRwYs'cCs-tjƒ}|jƒtkr"dStƒ}||jƒkrAdS|jtƒ}t|ƒ}|sfdS|j    ƒršd}t
j d||j ƒ|gƒnt ||ƒt||ƒ}|tjƒjƒ}    |    |tj<t||t|ƒtj|tjƒt|dƒt|ƒ|dkr;tj|tj|ƒntjd|ƒ}
|
r)d} |
jƒ} x)| j ƒD]} t!| t"| ƒƒ} qrWx/|
j#ƒj ƒD]}t!| t"|ƒƒ} q¤W|j$ƒ}t%d|| | ggƒ}tj&d||ƒtj'ƒj(|ddd|t)|ƒƒndS(NtKillGodTowerInfo_1ii
tSkyTowerServerChallengetServerChallengePasssÈ«·þ¹ý¹ØÐÅϢͬ²½GameServer: %sR(*RR^R_ReR|tGetNPCIDRzRR
t GetIsNotifyRCt WorldNotifyt GetPlayerNameRLt__GiveFBPassPrizeRbRt Over_costTimeR—RMtPlayerActivitytAddDailyActionFinishCntRItDailyActionID_SkyTowerR R˜tPlayerBillboardtUpdatePlayerBillboardtDef_BT_SkyTowerRtGetIpyGameDataNotLogRRRRRRRRKRRR (R tcurNPCRPRlR„R&RVtsysMarkt    prizeDicttcostTimeR%R'trankRewardInfoR(R)R*R+((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pytDoFB_Player_KillNPCesH       "   
   +cCs||jƒ}g|jƒD]\}}||dg^q}dtig}tj||d|ƒitj|ƒtj6}|S(NitSKYTower(    t    GetRewardtitemsRSt ItemControlertGivePlayerItemOrMailR-RtGetJsonItemListt Over_itemInfo(R RVt giveItemDicttitemIDtitemCntt giveItemListteventR®((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyR£s  .cCsdtj|tj<||tj<t|ƒ|tj<tjdt    |ƒ|j
ƒƒtj ||ƒdS(Ns"__SendSkyTowerOverInfo overDict=%s( RRRtOver_dataMapIDt
Over_wheelRt Over_isPassRRKRRtNotify_FB_Over(R R&tisPasstoverDict((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyR—©s   cCs&tjƒ}|jƒtkr"tStS(N(RR^R_ReRSRM(tattackertdefenderRl((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pytCheckCanAttackTagObjInFB·s cCsKtjƒ}|jtƒ}t||tƒtjƒjƒ}t|ƒdS(N(    RR^RzRR—RSt GetGameWorldtGetTickR˜(R RlR&RP((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyt DoPlayerDeadÂs  
cCstS(N(RM(((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pytOnPlayerRebornÎscCs‚|dkrdStjƒ}|jƒ}|ttgkrKtjdƒdS|}t||ƒsntjƒdSt    |||ƒdS(Nis×¼±¸»òÕ½¶·ÖÐ, ÎÞ·¨±ä¸ü¹Ø¿¨!(
RR^R_R`ReRKRWRR}R’(R t
actionTypet
actionInfoRPRlRmR&((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyt
DoFBAction×s    
c    Cs;tj|dƒ}|dkr"dS|jƒ}tjd|ƒ}|sJdS|jƒ}t|ƒ|kr†tjd||f|ƒdS|t|ƒ}|jt    j
|ƒ}|t d|ƒ@ràtjd|||f|ƒdStd|||ggƒ}tjd||ƒtj ƒj |ddd    |t|ƒƒdS(
NiiRs.²»´æÔÚ¸ÃÈ«·þ½±Àø:floorID=%s,needPlayerCount=%sisDÌìÐÇËþÈ«·þÌôÕ½²ãÒÑÁì½±!floorID=%s,needPlayerCount=%s,rewardRecord=%stServerChallengeRewards&ÌìÐÇËþÈ«·þÌôÕ½²ãÁ콱ͬ²½GameServer: %sR(RtToIntDefRRRRRRKR/RR0tpowRRR (    R R&R)R*RVt
rewardInfoR¼t rewardRecordR+((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyt"OnGetSkyTowerServerChallengeRewardës(   (cCsÚ|jƒ}|d \}}tjdt|ƒ|ƒ|dkrº|\}}}|d}|dkr…tjd||f|ƒdS|d}    i}
x*|jƒD]\} } | |
t| ƒ<q¢Wtj|
|    tƒ} | sõtjd|    |ƒdSd}|j    t
j |ƒ}|t d|ƒ@rEtjd|||f|ƒdS|t d|ƒB}t j|t
j ||ƒtjd    ||    || f|ƒ||    g}t jd
|g| |ƒn|d krÖ|\}}} |d}|stjd ||f|ƒdS|j    t
j |ƒ}|t d|ƒ@rMtjd |||f|ƒdS|t d|ƒB}t j|t
j ||ƒtjd|||| f|ƒdti|d6g}tj|| d|ƒt||ƒndS(NisÌìÐÇËþGameServer·µ»Ø: %sRžis+¹ý¹ØÈ«·þÅÅÃûδÉϰñ: floorID=%s,rankIndex=%sis¸Ã²ã¸ÃÃû´ÎûÓн±Àø: rank=%ss>¹ý¹ØÅÅÃû½±ÀøÒÑ·¢·Å¹ý!floorID=%s,recordIndex=%s,rewardRecord=%ssQÌìÐÇËþ·¢·Å¹ý¹ØÈ«·þÅÅÃû½±Àø: floorID=%s,rank=%s,updRewardRecord=%s,giveItemList=%stSkyTowerPassRankRÎs=·µ»ØÊ±ÌìÐÇËþÈ«·þÌôÕ½²ã²»ÄÜÁìÈ¡: floorID=%s,needPlayerCount=%ssJ·µ»ØÊ±ÌìÐÇËþÈ«·þÌôÕ½²ãÒÑÁì½±!floorID=%s,needPlayerCount=%s,rewardRecord=%ssXÌìÐÇËþ·¢·Å¹ý¹ØÈ«·þ½±Àø: floorID=%s,needPlayerCount=%s,updRewardRecord=%s,giveItemList=%stSKYTowerServerChallengeRewardR&(RRRRRKR´RtGetOrderValueByDictRSR/RR0RÐRCRDt SendMailByKeyRµR¶R-R (R t
resultListR*tmsgTypetmsgDataR&t_R°t    rankIndexR(t    orderDicttktvR¼t recordIndexRÒtupdRewardRecordt    paramListR)tcanGetR½((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pytGameServer_SkyTowerInfos\  
 
      
    cCs?t||ƒsdSt|ƒ}t|ƒ}||}||fS(s.¸±±¾¿ìËÙ¹ý¹ØÑéÖ¤
    @param mapID: Êý¾ÝµØÍ¼ID
    @param lineID: Ä¿±ê¹Ø¿¨Ïß·ID£¬¿ÉÒ»´ÎÐÔÌø¶à¹Ø£¬ÓÉǰ¶Ë·¢°ü¾ö¶¨
    @return: (bossID, quickCnt) »ò  None
    @note: bossID Ä¿±êNPCID - Ä¿±ê¹Ø¿¨ËùÐèÒªÌôÕ½µÄÖ÷NPCID£¬Ò»°ãÊÇboss£¬ÓÃÓÚÑéÖ¤Õ½Á¦ÊÇ·ñÂú×ã¿ìËÙ¹ý¹Ø
    @note: quickCnt ±¾´Î×ܹ²Ìø¹ý¼¸¹Ø - Ä¬ÈÏ1
    N(RWRR|(R RNtlineIDt    curLineIDR„tquickCnt((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pytOnPlayerFBQuickPass>s       
c    Cs˜|jƒ}t|ƒ}|d}tjd|||f|ƒg}x¹t||dƒD]¤}t|ƒ}|swqYn|jƒr«d}    tjd|    |j    ƒ|gƒnt
||ƒ|j ƒ}
g|
j ƒD]\} } | | dg^qÑ} || 7}t j|tjƒtjd|ƒ}|rYd}|jƒ}x)|jƒD]}t|t|ƒƒ}qFWx/|jƒjƒD]}t|t|ƒƒ}qxW|jƒ}td|||ggƒ}tjd||ƒtjƒj|ddd|t|ƒƒqYqYWtj|ƒ}tj||d d    t igƒit!j"|ƒt!j#6dd
6}t$||t%|ƒt&|dƒ|d kr”t'j(|tj)|ƒnd S( s¸±±¾¿ìËÙ¹ý¹Ø½á¹û
    is.´¦Àí¿ìËÙ¹ý¹Ø½áËã: mapID=%s,fromLineID=%s to %sRœiRRžsÈ«·þ¹ý¹ØÐÅϢͬ²½GameServer: %sRR²t    quickPassi
N(*RRRRKRR
R RCR¡R¢RLR³R´R¥R¦RIR§RR«RRRRRRRRR t MergeItemListRµR¶R-RSRR·R¸R—RMR R¨R©Rª(R RNRåR*Ræt
fromLineIDt itemListTotalR&RVR­R¹RºR»R¼R%R'R°R(R)R+t prizeItemListt quickPassDict((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pytOnPlayerFBQuickPassResultOsJ  
  "  .
  /   (@RRRZRCRR1RµRER9RIRRR‡R¥R¨RGRiRŠRqRRRaRfR›tDef_DayPrizeMaxCntt FB_State_OpenR`ReRvRxRR
R R,R-RSR RRLRQRWRYR]RoRpRsRyR|RtR’RuR˜RwR±R£R—RÆRÉRÊRÍRÓRäRèRï(((s„E:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_SkyTower.pyt<module>sj                                                                               
                                  8                                   9