cehua-TT
2018-11-19 2e401204524bd200ca2a9c65ffc38e73f402c526
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
dò[c@sBddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ia d„Zd„Zd„Zd„Zd„Zd„Zed„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„ZdS(iÿÿÿÿNc Csptj|tjtjƒsUtj|tjtjdƒtjddƒ}xûtd|dƒD]æ}|j    tj
|dƒ}|sˆq]nt j |ƒ}tj d|ƒ}|sµq]nt j|ƒ}|tjkr]t j|ƒ}t j|ƒ}t j|||tjƒ}    tj|tj
||    ƒtjd|||    fƒq]q]Wtj}
xttj|
ƒƒD]è} |j    tj|
| fƒ}|s”qfnt j |ƒ}tj d|ƒ}|sÁqfnt j|ƒ}|tjkrft j|ƒ}t j|ƒ}t j|||tjƒ}    t j|tj| |    ƒtjd| ||    fƒqfqfWnt|tƒt|ƒdS(Nit
RuneUnlockiit RuneCompounds?ÉÏÏßÐÞ¸´Ë«ÊôÐÔ·ûÓ¡À´Ô´ RuneNum=%s,oldRuneData=%s,updRuneData=%ss=ÉÏÏßÐÞ¸´Ë«ÊôÐÔ·ûÓ¡À´Ô´ place=%s,oldRuneData=%s,updRuneData=%s(t    GameWorldtGetDictValueByBittChConfigtDef_Player_Dict_VersionFixtDef_VerFix_RuneSourcetSetDictValueByBitt IpyGameDataPYt
GetFuncCfgtxrangetNomalDictGetPropertytDef_PDict_Rune_Datat ItemControlert GetRuneItemIDtGetIpyGameDataNotLogtGetRuneItemSourcetItem_Source_CompoundtGetRuneItemPlusLVtGetRuneItemIsLocktGetRuneItemKeyDatat PlayerControltNomalDictSetPropertytLogt ShareDefinetrptRunet
ItemCommont GetVPackCnttDef_PDict_VPackItemtSetVPackItemKeyDatatDoUnlockRuneHoletFalset Sync_RuneInfo( t    curPlayert runeHoleCnttRuneNumtRuneDatat
RuneItemIDtipyDatat
RuneSourcetRuneItemPlusLVt
RuneIsLockt updRuneDatat    packIndextplace((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytPlayerRuneLogin&sJ!    $ 
cCstjd|ƒS(NtRune(RtGetIpyGameData(titemID((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytGetRuneIpyDataQsc
Cs,tjƒj|ƒ}|sdSt|ƒ}|s5dS|jƒ}|dkrwtjddiƒ}|j|dƒ}n±|tkrt|}n)|d}t    tj
dƒƒ}|t|<tjddiƒ}||krñ|t ||ƒ9}nt |j ƒƒdkr(tjddƒ}    ||    9}n|S(NitRuneExpiiii(Rt GetGameDatatGetItemByTypeIDR1t GetItemColorRtGetFuncEvalCfgtgettg_runeLVExpDicttevaltGetFuncCompileCfgtfloattlent GetAttrTypeR    (
R0tlvtitemDataR&t    itemColortexpDicttexptleveltqualityPerDictt
specialPer((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytGetRuneNeedExpTs,     
 
  cCsHtjƒj|ƒ}|siSt|ƒ}|s5iS|d}|jƒ}t|ƒdk}|jƒ}i}xÒ|D]Ê}    d|    }
tj|
ƒ} | s¡qvnt    | ƒ} tj
|
diƒ} || krå| t | |ƒ9} n|r*tj |
dƒ}|r| |9} q*tj d||
fƒnt| ƒ|t|    ƒ<qvW|S(Nis
RuneAttr%siis- itemID=%s   ¹¦ÄÜÅäÖñíkeyStr=%s, ÊýÖµ3δÅäÖÃ(RR3R4R1R=R<R5RR:R9R6R;R    tErrLogtint(R0R>R?R&RCt attrTypeListt    isSpecialR@tattrDicttattrTypetkeyStrt attrFormulatvalueRDRE((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytGetRuneAttrValueqs6 
 
   cCsVtjƒj|ƒ}|sdStjddiƒ}|jƒ}|j|dƒ}|S(Nit    RuneMaxLVi(RR3R4RR6R5R7(R0R?t runeMaxLVDictR@t    runeMaxLV((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyt GetRuneMaxLV‘s cCs&tjƒj|ƒ}|j}tjddiƒ}||krCdS|jtjdƒ}|t    d|ƒ@rodS|j
ƒtjddiƒj |dƒkr dS||}t j |tj|tji|d6ƒsÖdSt j|tj|t    d|ƒBƒt|ƒt jdd|jƒ|gƒdS(NRiiit    holeIndextRuneSpecialHoleGet(RtGetPlayerManagertGetPlayerByIndext    HoleIndexRR6R RtDef_PDict_Rune_HoleOpenStatetpowtGetLVR7RtPayMoneyt IPY_GameWorldtTYPE_Price_Gold_MoneytDef_Cost_RuneHoleRR t WorldNotifytGetName(tindext
clientDatattickR!RUtruneUnlockDictt runeOpenStatet    costMoney((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytOnUnlockRuneHole¢s"     -
(#
cCsêtjdƒ}|jtjdƒ}|jtjƒ}|}xot|ƒD]a\}}|td|ƒ@rnqIn||kr€qIn|td|ƒO}tj    d||fƒqIW||kræt
j |tj|ƒ|ræt |ƒqændS(NRiis-    ½âËø·ûÓ¡¿× holeNum=%s,trialTowerPassLV=%s( RR6R RRZt!Def_Player_Dict_TrialTower_PassLVt    enumerateR[RtDebugLogRRR (R!tisSycntruneUnlockListRgttrialTowerPassLVt updOpenStatetholeNumtneedTowerPassLV((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyRµs   c CsÔtjƒj|ƒ}|sdS|jtjƒ}|jdƒ}|jƒ}tj    ddƒ}tj
dƒ}x`|j ƒD]R\}}    ||    krzt |ƒdkr¼t |ƒdd|nd}
||
kSqzWt S(Nit TowerRuneTypeiiid(RR3R4R RRjtGetEffectByIndext GetEffectIDRR    R6titemsRHtTrue( R!titemidR?t    curPassLVtcurEfft curRuneTypetfloorCntttowerRuneTypeDicttfloorttypeListtfloorkey((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytGetIsOpenByRuneIDËs  0c
Csß|tjkr|tjkp9|tjko9|tjks@tStjddƒ}|tjkrù|d}|dksƒ||kr¡tjd||jƒƒt    S|j
t j dƒ}|t d|ƒ@sítjd||f|jƒƒt    S|j
t jtj|fƒ}|s0tjd||jƒƒt    Stj|ƒ}    t|    ƒ}
|
sotjd    |    |jƒƒt    S|
jƒ} d} xÔtd|dƒD]¿} | |kr­q•n|j
t j| dƒ}|sÒq•ntj|ƒ}t|ƒ}|sùq•n|jƒ}| |kr5tjd
| | f|jƒƒt    St|ƒdkr•| d7} q•q•Wt| ƒdkr | t|ƒkr tjd | |    f|jƒƒt    S|j
t j|dƒ}tj|t j||ƒtj|tj||ƒt|ƒn»|d}|j
t j|dƒ}|sFtjd ||f|jƒƒt    Stj|tjƒ}|d krtjd|jƒƒt    Stj|t j|dƒtj|tj||ƒt|ƒtj|ƒjƒt|ƒt    S(NRiis²»´æÔڸ÷ûÓ¡¿×! desRuneNum=%siis&¸Ã·ûÓ¡¿×δ½âËø! desRuneNum=%s,state=%ss#·ûÓ¡±³°ü¸ÃλÖÃûÓзûÓ¡! srcIndex=%ss'¸Ã·ûӡûÓÐÅäÖÃÊôÐÔ! ÎÞ·¨ÏâǶ! itemID=%ss?ÒÑÓÐÏâǶ¸ÃÊôÐÔÀàÐÍ! ÎÞ·¨ÏâǶ! RuneHoleNum=%s,srcRuneAttrType=%ss7µ±Ç°¿ÉÏâǶ˫ÊôÐÔ·ûÓ¡¸öÊýÒÑ´ïÉÏÏÞ%s! ÎÞ·¨ÏâǶ! itemID=%ss3¸Ã·ûÓ¡¿×ûÓÐÏâǶ·ûÓ¡! srcRuneNum=%s, srcRuneData=%siÿÿÿÿs·ûÓ¡±³°üÒÑÂú£¬ÎÞ·¨ÕªÏÂ! ( RRt rptTempSwapRRR    RRlt GetPlayerIDRwR RRZR[RR RR1R=R
R R<t__GetCanInlayDoubleAttrRuneCntRRRtDoRuneSuccessLogicRtGetEmptyIndexInPacktRefreshRuneAttrtRefreshPlayerAttrStateR (R!t srcBackpackt desBackPacktsrcIndext    destIndext maxRuneHolet
desRuneNumRgt srcRuneDatat srcRuneItemIDt
srcIpyDatatsrcRuneAttrTypet    doubleCntR#R$R%R&RIt desRuneDatat
srcRuneNumt
emptyIndex((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyt
SwitchRuneÛs~
         $  
  
 
cCsvtjddiƒ}|jtjƒ}t|jƒƒ}d}x$|D]}||kr\Pn|}qFW|j|dƒS(NtRuneDoubleInlayCntii(RR6R RRjtsortedtkeysR7(R!truneDoubleInlayCntDictRot
sortLVListtfindLVtplv((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyR„0s  
cCs§tjƒj|ƒ}|j}|j}|dkrU|jtjtj    |fƒ}n0|dkr|jtj
|ddƒ}ndS|j ƒ}|sµtj d||f|ƒdSt j|ƒ}t j|ƒ}    t j|ƒ}
t j|ƒ} tjƒj|ƒ} | sdSt|ƒ} |    d| krAtj d| ƒdSt||    dƒ}t|ƒ}|sŠtj d||||    f|ƒdSt j||    d|
| ƒ}tj|tj|ƒsýtj|tjƒ}tj d||||    ||f|ƒdS|dkr%t j|tj    ||ƒn^|dkrƒtj|tj
|d|ƒt|ƒtj|ƒjƒt |ƒt!|ƒntj d||||f|ƒdS(Niis6¸ÃλÖò»´æÔÚ·ûÓ¡, ÎÞ·¨Éý¼¶! placeType=%s,placeIndex=%ss$¸Ã·ûÓ¡ÒÑÂú¼¶£¬ÎÞ·¨Éý¼¶£¡runeMaxLV=%ss?¸Ã·ûÓ¡ÎÞ·¨Éý¼¶!  placeType=%s,placeIndex=%s,itemID=%s,plusLV=%ssc·ûÓ¡¾«»ªµã²»×㣬ÎÞ·¨Éý¼¶!placeType=%s,placeIndex=%s,itemID=%s,plusLV=%s,plusCost=%s,curRuneMoney=%ss>·ûÓ¡Éý¼¶!placeType=%s,placeIndex=%s,RuneData=%s,updRuneData=%s("RRWRXt    PlaceTypet
PlaceIndexR RRRRR RƒRlR RRRRR3R4RTRFRHRRR]tTYPE_Price_RunetGetMoneyRRR‡RˆR R…(RcRdReR!t    placeTypet
placeIndexR$tplayerIDR%R(R)R'R?RStplusCostR*t curRuneMoney((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytOnRuneUpDs\         "               
 
     c    Cstj|tjƒd}tjddƒ}xµtd|dƒD] }|jtj    |dƒ}|sjq?nt
j |ƒ}t j ƒj|ƒ}|sšq?n|jƒ}t
j|ƒd}||7}tj|tjd|gƒq?Wtj|tj|ƒtj|tj|ƒdS(NiRii(t PlayerSuccesstResetSuccessByTypeRtSuccType_InlayRuneRR    R
R RR R RRR3R4R5RtDoAddSuccessProgresstUptateSuccessProgresstSuccType_RuneLvUptOpenServerCampaigntUpdOpenServerCampaignRecordDatatDef_Campaign_Type_RuneLV(    R!ttotalLVR"RqtruneDatat
runeItemIDR?R@truneItemPlusLV((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyR…ƒs$ 
 c    Csˆtjƒj|ƒ}|j}|j}tjd|||jfƒi}d}d}tj}    |st|j    dkr‰t
t j |    ƒƒn|j}
t j|tjƒ} | r¿t| jƒƒnd} xÒ|
D]Ê} |jtj|    | fƒ}|súqÌntj|ƒ}|rqÌntj|ƒ}tj|ƒ}tjƒj|ƒ}|sTqÌn|jƒ}|p~||kp~| |jks‡qÌn|jƒtjkrÒ|jdƒ}|jdƒ}||| tj7}n¤d}xOt |dƒD]=}|t!||ƒ7}|dkré||| tj7}qéqéWt"j#d|ƒ}|rvtj$|ƒtj%tj&gkrv||j'ƒ7}n||7}|t|ƒg|| <qÌW|rÂt j(||    |j)ƒtj*ƒnt|ƒ}|r)i|d6|d6}t+j,|tj-|tj.|t/ƒt+j0|d|tj-gƒn|r„i|d6|d6}t+j,|tj1|tj.|t/ƒt+j0|d|tj1gƒndS(    Ns3·ûÓ¡·Ö½â: isAll=%s,qualityList=%s,PlaceIndexList=%siiRt delPlaceDictttotalDecomposethwj_20170807_1ttotalMJ(2RRWRXtIsAllt QualityListRltPlaceIndexListRRt
QualityCntR
RRtPlayerMagicWeapontGetMagicWeaponPrivilegeRtMWPrivilege_RuneDecomposeRHtGetEffectValueR RR RRRR3R4R5tGetTypetDef_ItemType_RuneExpRttDef_MaxRateValuetrangeRFRRRtRune_Source_UnkownRt    GetNeedMJt DelVPackItemRšt ItemDel_RuneRt    GiveMoneyR¡tDef_GiveMoney_RuneDecomposeRt
NotifyCodetTYPE_Price_Ysog(RcRdReR!tisAllt qualityListR¶R·R¹R+t    placeListt
wmpIpyDatataddPerR,R$R)R%R(R?tqualityRzt    decomposeR>R&t addDataDict((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytOnRuneDecompose¥sl            3  ! '
" c Cstjƒj|ƒ}tj}|j}g}x³|jD]¨}|jtj    ||fƒ}|seq7nt
j |ƒ}    ||    kr†q7nt
j |ƒ}
t
j |ƒ} t
j|
| |ƒ} t
j|||| tƒ|j|ƒq7W|rt
j|||ƒtjd||fƒndS(Ns(Ð޸ķûÓ¡Ëø¶¨×´Ì¬: changeLockState=%s, %s(RRWRXRRt    LockStateR¼R RRR RRRRRRtappendtSync_VPackItem_RefreshRl( RcRdReR!R+tchangeLockStatetchangePlaceListR,R$R)R%R(R*((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyt
OnRuneLockñs(         c    Cstjƒj|ƒ}|j}|j}|j}tjd|ƒtjd|ƒ}|s]dSg}i}    g}
g} xÎt    |ƒD]À\} } || }| dkrÓ|j
t j t j|fƒ}|
j|ƒn.|j
t j|ddƒ}| j|dƒ|s q‚ntj|ƒ}tj|ƒ}|j|ƒ||    |<q‚W|jƒ}t|ƒt|ƒkrˆtjd|||fƒdSd|kråtj|t jdƒ}|dkråtj|dt jgƒtjdƒdSn|jƒ}i|d6}tj|t j|t j|ƒs#dSd}xa|D]Y}d}|    j|dƒ}x.td|dƒD]}|t ||ƒ7}qbW||7}q0Wt!|ƒ}d}t"|ƒ}xFt#d|ƒD]5}t ||ƒ}||kràPn|}||8}q»W|
rtj$|t j|
t j%ƒn| rtx(| D] }tj&|t j|dƒq&Wt'|ƒt(|ƒtj|ƒj)ƒntj*|ƒ}|j+t j,|ƒ|j+t j-t j.ƒtj/|ƒ}|j0t j|d    t j1t2i|
d
6| d 6gƒ|j3t j4dƒdS( Ns    ·ûÓ¡ºÏ³É tagItemID=%sRiisI    ·ûÓ¡ºÏ³É ²ÄÁϲ»¶Ô tagItemID=%s, materialsIDList=%s, needItemIDList=%stGeRen_chenxin_676165s     ·ûÓ¡ºÏ³É ±³°ü¸ñ×ÓÊýÁ¿²»×ã1¸öt    TagItemIDteventt
indexList1t
indexList2(5RRWRXRÞtPackListt    IndexListRlRR/RkR RRRRRØR R RRt GetNeedItemR™RtGetItemPackSpaceRRÌRÇR]RÍtDef_Cost_ItemProduceR7RÅRFRHRTR
RÈRÉRR R‡RˆtGetOutPutItemObjt SetUserAttrtDef_IudetRuneLVtDef_IudetRuneSourceRtPlayerItemControlert    PutInItemtItemGive_RuneCompoundRtSync_MakeItemAnswertDef_mitRuneCompound(RcRdReR!t    tagItemIDtpackListt    indexListR&tmaterialsIDListtmaterialsLVDictRàRátiR£R³R´RµtneedItemIDListt
emptySpacetneedMJtinfoDictt
totalPointR0RÔR(R>t    tagItemLVRStneedExptcurItemRë((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytOnRuneCompoundsŒ            
        !     
 
3c CsgtdƒD] }i^q }tjddƒ}xÀtd|dƒD]«}|jtj|dƒ}|spqEntj|ƒ}tj    |ƒ}t
||ƒ}|s©qEnt j d||fƒx-|j ƒD]\}    }
tj|    |
|ƒqÍWqEWtj|tj|ƒdS(NiRiis&    Ë¢·ûÓ¡ÊôÐÔ holeNum=%s, attrDict=%s(RÅRR    R
R RR R RRRPRRlRvRtCalcAttrDict_TypetSetCalcAttrListValuetDef_CalcAttrFunc_Rune( R!t_t allAttrListR"RqR³R´RµRKtattrIDt    attrValue((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyR‡ks cCsÀtjddƒ}|sdStjƒ}|jƒ|jtjdƒ|_g|_    xDt
d|dƒD]/}|jtj |dƒ}|j    j |ƒqgWt |j    ƒ|_tj||ƒdS(NRiii(RR    tChPyNetSendPackt tagMCRuneInfotClearR RRZtRuneHoleOpenStatet RuneDataListR
R RØR<tCountt NetPackCommont SendFakePack(R!R"t RuneInfoPackR#R$((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyR „s 
    ( RRRRR RRR RR©R¾R^R¯R8R-R1RFRPRTRiRwRRR—R„R¨R…RÖRÜRþR‡R (((sZ.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyt<module>s<                 +                              U        ?    "    L    #    W