xdh
2019-02-21 92eee67f85cbd29feb1287ae5a15ad0c787e95cb
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
x{[c@s6ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    e
dƒ\Z Z Z ZZZZd„Zd„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„Z d„Z!d„Z"dS(iÿÿÿÿNicCs9tjdƒ}|dks-|t|ƒkr1dS||S(Nt HighLadderDefi(t ReadChConfigtGetEvalChConfigtlen(tindext
hladderCfg((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pytGetHighLadderCfg4scCs6tjƒj|ƒ}|sdS|jttƒƒdS(N(t    GameWorldtGetPlayerManagertGetPlayerByIndextSync_HightLadderTopPlayerRtDef_TopPlayer_Count(Rttickt    curPlayer((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pytOnHightLadderTopPlayerQueryAs
cCsRtjƒj|ƒ}|sdStjƒ}|jƒ}t||ƒ|jƒdS(N(RRR    tIPY_GameServert#IPY_CHightLadderCanFightPlayerQueryt GetPlayerIDtSync_HightLadderCanFightPlayertSync_HighLadderPlayerVsRec(RR R trecvPacktPlayerID((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pyt OnHightLadderCanFightPlayerQueryQs   
c
 
Cs¢t|ƒ}|j|ƒt|ƒ\}}ttƒ}ttƒ}g}|r´|r—tj|tt    |ƒ|ƒƒ}x|D]}|j
|ƒq}Wnt j d|||fƒn|rõ|tj|tt    |ƒt d|t    |ƒƒƒƒ7}nt j d|ƒt    |ƒ|krU|rA|tj||t    |ƒƒ7}nt j d|ƒn|jƒt j d||fƒx|D]}    |j|    ƒq}W|jƒdS(Ns@ÖÁÉÙÐè°üº¬µÄ: highAtleastCnt=%s, randomList=%s, highOrderList=%sis#Ëæ»úÌí¼ÓlowOrderList: randomList=%ss.»¹²»¹»ÔòÌí¼Ó֮ǰµÄhighOrderList: randomList=%ss*×îÖÕËæ»úÌôÕ½Áбí: myOrder=%s,randomList=%s(tGetPlayerOrdert"Begin_AddHightLadderCanFightPlayertGetCanFightOrderRtDef_HighOrderAtleastCnttDef_CanFightCounttrandomtsampletminRtremoveRtDebugLogtmaxtsorttAdd_HightLadderCanFightPlayerR(
R RtmyOrdert highOrderListt lowOrderListthighAtleastCntt canFightCntt
randomListtordert
orderIndex((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pyR^s4    !     ;#
 
cCs:tjƒj|ƒ}ttƒ}|r6|jƒ}n|S(N(RtGetHightLadderMgrtFindPlayerDataRtDef_StartOrdertGetOrder(Rt myPlayerDataR$((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pyR„s
 cCs±tjdƒ}tj||ddgƒ}tdt||dttƒƒƒ}td||dƒ}t|d|dƒ}t||ƒ}tj    d|||fƒ||fS(sÌ
    @todo: ¸ù¾ÝÍæ¼ÒÅÅÃû»ñÈ¡¿ÉÌôÕ½µÄÍæ¼ÒÅÅÃûÁбí
    @param myOrder: Íæ¼ÒÃû´Î
    @return: ¿ÉÌôÕ½µÄ½Ï¸ßÅÅÃûÍæ¼ÒÁбí, ¿ÉÌôÕ½µÄ½ÏµÍÅÅÃûÍæ¼ÒÁбí
    @note: 
            Ãû´ÎÔ½¸ßʵÁ¦Ô½²î, µÚÒ»ÃûµÄÃû´ÎΪ0
    tHighLadderCanFightiöÿÿÿi
iis9¿ÉÌôÕ½Áбí: myOrder=%s, highOrderList=%s, lowOrderList=%s(
RRRtGetDictValueByRangeKeyR!RRt Def_MinOrdertrangeR (R$tHightLadderCanFightDictt
orderRanget    highOrdertlowOrderR%R&((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pyRŽs&    c    CsRtjdƒ|j}tjƒj|ƒ}t|ƒ}tjd||jfƒt|ƒ\}}||}    |j|    krÐ|jtt    ƒkrÐt
||ƒt j |dƒtjd|    ƒtjdƒdSt |jƒ}
|j|
d<t|jƒ} |
d} t| ƒ} tjd| t| ƒfƒ|
d    }t|
| ƒ}tjƒj|jƒ}d
}d }i}||d <|j|d <| |d<|rªt||jƒn|}|d
krÏttƒ|}ntd
|d|ƒ}|rö||n|d}||d    <||d<t|ƒ}|rA|jƒ}|jƒ}n|j|||t|ƒƒtjdƒtjƒ}||_||_||_ t|ƒ|_!t"j#|||ƒtjdƒtjƒj$|||||jd
|ƒtjƒj%|ƒ}t&|ƒ|j'ƒ|rtjƒj$|||j(|j|d| ƒtjƒj%|ƒ}t&|ƒtjƒj|ƒ}|r|j'ƒqntjdƒ|r |j}t)j*dƒ}|j+|d ƒ}|tt,ƒkr>tjƒj-|ƒtjƒj.||ƒ|d krýt j/d
||j0ƒd|dgƒqýn¿|r¢||krýtjƒj1||ƒ|d krŸt j/d
||j0ƒd|dgƒqŸqýn[||krýtjƒj.||ƒ|d krýt j/d
||j0ƒd|dgƒqýnt2||ƒn0|tt,ƒkr0tjdƒdSt2||ƒtjd|ƒdS(Ns(HighLadder### OnMGHighLadderChallenge ins>HighLadder### OnMGHighLadderChallenge in myOrder %s VSOrder %stArena_liubo_807125s:HighLadder### OnMGHighLadderChallenge canFightOrderList %ss3HighLadder### OnMGHighLadderChallenge out order errt
FightPowert HadFightCnts7OnMGHighLadderChallenge hadFightCnt=%s,awardItemList=%stHistoryMaxOrderittOrdertVSOrdert AwardItemListitupOrdersIHighLadder### OnMGHighLadderChallenge Send tagGMHighLadderChallengeReusltsLHighLadder### OnMGHighLadderChallenge Send tagGMHighLadderChallengeReuslt OKs7HighLadder### OnMGHighLadderChallenge AddPlayerVsRec OKtHighLadderWinMsgs%ss2HighLadder### OnMGHighLadderChallenge out Result 0s3HighLadder### OnMGHighLadderChallenge out Result %s(3RR RRtFindPlayerByIDRR?RRtDef_CanFightOrderListRt PlayerControlt
NotifyCodetevaltFightPropertyDataR:tGetFightPropertyDictByOrdert__GetFightCntAwardItemListtstrtDoFightR,tFindPlayerDataByOrderRR.R!Rt GetPlayerNametSync_HightLadderVSPlayerInfoRtChGameToMapPyPackttagGMHighLadderChallengeReuslttResulttPlusInfot PlusInfoSizet NetPackCommontSendPyPackToMapServertAddPlayerVsRectGetPlayerVsRect DelUselessRecRt
PlayerNameRRtgetR3tDelPlayerDataByOrdert AddPlayerDatat WorldNotifytGetNametExchangePlayerOrdertUpdataHightLadderPlayer(t
routeIndextmapIDt curPackDataR t
myPlayerIDR R$R%R&tcanFightOrderListtcurFightPropertyDicttcurVsFightPropertyDictt hadFightCntt awardItemListthistoryMaxOrdertresulttcurVsHightLadderPlayert curVsPlayerIDtcurVsPlayerNamet PlusInfoDictt
myNewOrderRAt newMaxOrdertstrPlusInfoDicttsendPacktmyRectvsRectVsPlayertnewOrdert
WinMsgDicttwinMsg((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pytOnMGHighLadderChallenge¦s°      
$   
     
 
 
 
 
                 
 
 
      -  0  -  cCsQ|s
dSt|jƒttƒdƒ}x!t|ƒD]}|jdƒq6WdS(Ni(R!tRecCountRt Def_Rec_CountR4tDelRec(Rutdelcntti((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pyRYs cCsmtjdƒ}|jƒ}|jƒxA|D]9}||kr,||\}}tj|ƒra|SgSq,WgS(NtHighLadderFightCntAward(RRtkeysR"Rt    CanHappen(tplayerFightCnttfightCntAwardDictt fightCntListtfCntt
happenRateRj((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pyRJ-s 
  cCsatjƒj|ƒ}|j|jƒ|j|jƒ|j|jƒ|j    |j
|j ƒ|j ƒtj d|jƒxát|jƒD]Ð}|j|}tjƒ}|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j |_ |j!|_!|j"|_"|j#|_#|j$|_$|j%|_%|j&|_&|j'|_'|j(|_(|j)|_)|j*|_*|j+|_+|j,|_,|j-|_-|j.|_.|j/|_/|j0|_0|j1|_1|j2|_2|j3|_3|j4|_4|j5|_5|j6|_6|j7|ƒq‰WdS(Ns3HighLadder### UpdataHightLadderPlayer EquipCount %s(8RR,R-t SetPlayerNameRZt SetPlayerLVtPlayerLVt SetFightPowerR:tSetFightPropertyDataRHtFightPropertyDataLentClearPlayerEquiptR t
EquipCounttxranget    EquipListRtIpyHighLadderPlayerItemt
ItemTypeIDtItemIDt ItemPlaceTypetItemPlaceIndextCountt
ItemStarLVt IdentifyPartCurDurgtMaxDurgtCanPlaceStoneCountt ItemPropertyt SoulPropertytMakert    MakerNametStone1tStone2tStone3tStone4tStone5tStone6tStone7tStone8tStone9tEquipDefenseValuetEquipMinAtkValuetEquipMaxAtkValuetUserDatatFitLVt ProficiencytIsSuitetBaseHPt BaseMagicDeftMaxAddSkillCnttEquipMagicDefValuetEquipMinMagicAtkValuetEquipMaxMagicAtkValuetAddEquipIpyData(t curPlayerIDtinfoPacktcurHightLadderPlayerR€t curEquipInfot curEquipData((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pyRa@s^
                                     cCsVi}tjƒj|ƒ}|s0t|ƒ}n"t|jƒƒ}|jƒ|d<|S(NR:(RR,RMtGetNPCFightPropertyByOrderRGtGetFightPropertyDatat GetFightPower(R+Rht curVsPlayer((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pyRI|scCsEtjdƒ}i}t|dƒ|d<t|dƒ|d<t|dƒ|d<t|dƒ|d<t|dƒ|d<t|dƒ|d<t|dƒ|d<t|dƒ|d    <t|d
ƒ|d
<t|d ƒ|d <t|d ƒ|d <t|d ƒ|d <t|dƒ|d<t|dƒ|d<t|dƒ|d<|S(NtHighLadderNPCPropertytAtktDeftMaxHPtHittMisstAtkSpeedt GreatHitRatetGreatHitt LuckyHitRatetLuckyHitt SuperHitRatetSuperHitt IgnoreDefRatetDamageReduceRateR:(RRRG(R*tHighLadderNPCPropertyDicttcurPropertyDict((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pyR¾‰s$c#Csotjdƒ}|d}|d}|d}|d}|d}|d}|d}    |d    }
|d
} |d } |d } |d }|d}|d}|d}tjddƒ}|d}|d}|d}|d}|d}|d}|d}|d    }|d
}|d }|d }|d }|d}|d} |d}!tjddƒ}"tt|ƒƒS(NtHighLadderFightFormulaRÃRÄRÅRÆRÇRÈRÉRÊRËRÌRÍRÎRÏRÐR:ii'(Rt GetChConfigRtrandinttboolRG(#RgRhRÓRÃRÄRÅRÆRÇRÈRÉRÊRËRÌRÍRÎRÏRÐR:t
RandomRatetVS_AtktVS_DeftVS_MaxHPtVS_HittVS_Misst VS_AtkSpeedtVS_GreatHitRatet VS_GreatHittVS_LuckyHitRatet VS_LuckyHittVS_SuperHitRatet VS_SuperHittVS_IgnoreDefRatetVS_DamageReduceRatet VS_FightPowert VS_RandomRate((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pyRL sD
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cCs tƒdS(N(tRefreshBillboard(((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pytOnDayØscCs tƒdS(N(Rè(((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pytOnHourâsc
CsQtj}tj|ƒtjƒ}|j|ƒ}tjƒ}tt    ƒ}x÷t
|ƒD]é}|j |ƒ}|swqVn|j ƒ}|j |ƒ}|j|ƒ|j|ƒ|j|ƒ|j|jƒƒt|jƒƒ}    |jt|    jddƒƒƒ|j|dƒ|j|jƒƒ|jtd||dƒƒqVW|jƒdS(Nt OperateInfoii(t ShareDefinetDef_BT_HighLaddertPlayerBillboardtClearBillboardByIndexRt GetBillboardt FindBillboardR,RR3R‘RMRtAddToBillboardtSetTypetSetIDtSetID2tSetName1RNRGR¿tSetName2RKR[t    SetValue1t    SetValue2RÀt SetCmpValueR!tSort(
t billboardTypet billboardMgrt    billBoardt highLadderMgrtminOrderR>t
playerDatatplayerIDt billBoardDataRg((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pyRèês.            "
c Cs|d}|d}|d}tjƒ}|jtjƒ}tjƒ}t|ƒ}|r‘|j|ƒ}    |    r‚|    jƒd}q‘t    t
ƒ}n|dkrët j ƒ}
||
_ ||
_|rÔtj||
ƒntd|||gfStd|||gfSdS(Niiis%s(RRðRñRìtDef_BT_HighLadder_YesterR,RtFindByIDt    GetValue1RR.tChPyNetSendPackttagGCHighLadderRewardInfothadGotR>RUt SendFakePacktFalsetTrue( R tmsgListRt    queryTypeR    RýtbillBoardYesterRÿR*RRt((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pytMapServer_HighLadderReward s(
 
 
             (#RRìRRRPRURERîRRR4R R.RRR3R}RDRRRRRRR{RYRJRaRIR¾RLRéRêRèR(((sE.\ServerPython\CoreServerGroup\GameServer\Script\Player\HighLadder.pyt<module>s6         
!                  &    
        y            <             8    
        "