hxp
2025-05-16 273fbbf3ec69623f4501583614174c7d604a06b5
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
Sð    hc@scddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZiad„Zd„Zd„Zd„Zd„Zd„Zed„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„Z d„Z!d„Z"dS(iÿÿÿÿNcCst|tƒt|ƒdS(N(tDoUnlockRuneHoletFalset Sync_RuneInfo(t    curPlayer((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytPlayerRuneLogin(s 
cCstjd|ƒS(NtRune(t IpyGameDataPYtGetIpyGameData(titemID((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytGetRuneIpyData/sc
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(t    GameWorldt GetGameDatatGetItemByTypeIDR    t GetItemColorRtGetFuncEvalCfgtgettg_runeLVExpDicttevaltGetFuncCompileCfgtfloattlent GetAttrTypet
GetFuncCfg(
RtlvtitemDatatipyDatat    itemColortexpDicttexptleveltqualityPerDictt
specialPer((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytGetRuneNeedExp2s,     
 
  cCsstjƒj|ƒ}|siSt|ƒ}|s5iS|d}|jƒ}t|ƒdk}|jƒ}i}xý|D]õ}    d|    }
tj|
ƒ} | s¡qvnt    | ƒ} tj
|
diƒ} || krå| t | |ƒ9} ntj
|
diƒ}| |j |dƒ7} |rUtj |
dƒ}|r;| |9} qUtjd||
fƒnt| ƒ|t|    ƒ<qvW|S(Nis
RuneAttr%siiiis- itemID=%s   ¹¦ÄÜÅäÖñíkeyStr=%s, ÊýÖµ3δÅäÖÃ(R R R R    RRRRRRRRRRtErrLogtint(RRRRRt attrTypeListt    isSpecialRtattrDicttattrTypetkeyStrt attrFormulatvalueRtextraValueDictR ((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytGetRuneAttrValueOs: 
 
   cCsVtjƒj|ƒ}|sdStjddiƒ}|jƒ}|j|dƒ}|S(Nit    RuneMaxLVi(R R R RRRR(RRt runeMaxLVDictRt    runeMaxLV((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyt GetRuneMaxLVrs 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(Nt
RuneUnlockiiit    holeIndextRuneSpecialHoleGet(R tGetPlayerManagertGetPlayerByIndext    HoleIndexRRtNomalDictGetPropertytChConfigtDef_PDict_Rune_HoleOpenStatetpowtGetLVRt PlayerControltPayMoneyt IPY_GameWorldtTYPE_Price_Gold_MoneytDef_Cost_RuneHoletNomalDictSetPropertyRt WorldNotifytGetName(tindext
clientDatattickRR2truneUnlockDictt runeOpenStatet    costMoney((sN.\\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(NR1iis-    ½âËø·ûÓ¡¿× holeNum=%s,trialTowerPassLV=%s( RRR7R8R9t!Def_Player_Dict_TrialTower_PassLVt    enumerateR:R tDebugLogR<RAR(RtisSycntruneUnlockListRHttrialTowerPassLVt updOpenStatetholeNumtneedTowerPassLV((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyR–s   cCs8t|ƒ}|r4|jtjƒ}||jƒkStS(N(R    R7R8RKt
GetTowerIDtTrue(RtitemidRt    curPassLV((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytGetIsOpenByRuneID¬s
 c
Csl|tjkr|tjkp9|tjko9|tjks@tStjddƒ}|tjkrO|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
„| Dƒ} tjdd ƒ} d}xtd|dƒD]ó}||krÏq·n|j
t j|dƒ}|sôq·ntj|ƒ}t|ƒ}|sq·n|jƒ}xa|D]Y}|| kr.| |cd7<| || kr‡tjd | |f|jƒƒdSq.q.Wt|ƒ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ƒ}|sœtjd||f|jƒƒt    Stj|tjƒ}|dkr×tjd|jƒƒt    Sd}tj|t j|dƒtj|tj||ƒi|d6|d6|d6}tj|t j|ƒt |ƒtj|ƒj!ƒt"|ƒt    S(NR1iis²»´æÔڸ÷ûÓ¡¿×! desRuneNum=%siis&¸Ã·ûÓ¡¿×δ½âËø! desRuneNum=%s,state=%ss#·ûÓ¡±³°ü¸ÃλÖÃûÓзûÓ¡! srcIndex=%ss'¸Ã·ûӡûÓÐÅäÖÃÊôÐÔ! ÎÞ·¨ÏâǶ! itemID=%scSsi|]}d|“qS(i((t.0R'((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pys
<dictcomp>Õs    is2¸ÃÊôÐÔÀàÐÍÒÑÏâǶÊýÁ¿³¬¹ý%s! ÎÞ·¨ÏâǶ! ,attrType=%ss7µ±Ç°¿ÉÏâǶ˫ÊôÐÔ·ûÓ¡¸öÊýÒÑ´ïÉÏÏÞ%s! ÎÞ·¨ÏâǶ! itemID=%ss3¸Ã·ûÓ¡¿×ûÓÐÏâǶ·ûÓ¡! srcRuneNum=%s, srcRuneData=%siÿÿÿÿs·ûÓ¡±³°üÒÑÂú£¬ÎÞ·¨ÕªÏÂ! t desBackPackt srcRuneDatat desRuneData(#t ShareDefinetrptRunet rptTempSwapRRRR RMt GetPlayerIDRUR7R8R9R:tDef_PDict_VPackItemt ItemControlert GetRuneItemIDR    RtxrangetDef_PDict_Rune_DataRt__GetCanInlayDoubleAttrRuneCntR<RAtSetVPackItemKeyDatatDoRuneSuccessLogict
ItemCommontGetEmptyIndexInPacktDataRecordPacktCache_FightPowerChangeInfotPowerDownType_RunetRefreshRuneAttrtRefreshPlayerAttrStateR(Rt srcBackpackRZtsrcIndext    destIndext maxRuneHolet
desRuneNumRHR[t srcRuneItemIDt
srcIpyDatatsrcRuneAttrTypeListtsrcRuneAttrTypeCntDicttmaxSameAttrRuneCntt    doubleCnttRuneNumtRuneDatat
RuneItemIDRR$R'R\t
srcRuneNumt
emptyIndextdataDict((sN.\\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(RRR7R8RKtsortedtkeysR(RtruneDoubleInlayCntDictRPt
sortLVListtfindLVtplv((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyRfs  
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("R R4R5t    PlaceTypet
PlaceIndexR7R8RaR]R^ReR`RMRbRctGetRuneItemPlusLVtGetRuneItemIsLocktGetRuneItemSourceR R R0R!R#tGetRuneItemKeyDataR<R=tTYPE_Price_RunetGetMoneyRgRARnRoRRh(RDRERFRt    placeTypet
placeIndexR|tplayerIDR}tRuneItemPlusLVt
RuneIsLockt
RuneSourceRR/tplusCostt updRuneDatat curRuneMoney((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytOnRuneUp&s\         "               
 
     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ƒtj|tj|tƒq?Wtj|tj|ƒdS(NiR1ii(t PlayerSuccesstResetSuccessByTypeR]tSuccType_InlayRuneRRRdR7R8ReRbRcR R R RR‹tDoAddSuccessProgresstPlayerWeekPartytAddWeekPartyActionCnttDef_WPAct_RuneRtUptateSuccessProgresstSuccType_RuneLvUp(    RttotalLVt runeHoleCntRRtruneDatat
runeItemIDRRtruneItemPlusLV((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyRhes$ 
c    Cs[tjƒj|ƒ}|j}|j}tjd|||jfƒi}d}d}tj}    |st|j    dkr‰t
t j |    ƒƒn|j}
d} xÒ|
D]Ê} |j tj|    | fƒ} | sÍqŸntj| ƒ}|rèqŸntj| ƒ}tj| ƒ}tjƒj|ƒ}|s'qŸn|jƒ}|pQ||kpQ| |jksZqŸn|jƒtjkr¥|jdƒ}|jdƒ}||| tj7}n¤d}xOt|dƒD]=}|t||ƒ7}|dkr¼||| tj7}q¼q¼Wtjd|ƒ}|rItj | ƒtj!tj"gkrI||j#ƒ7}n||7}| t$|ƒg|| <qŸW|r•t j%||    |j&ƒtj'ƒnt$|ƒ}|rüi|d6|d6}t(j)|tj*|tj+|t,ƒt(j-|d|tj*gƒn|rWi|d6|d6}t(j)|tj.|tj+|t,ƒt(j-|d|tj.gƒndS(    Ns3·ûÓ¡·Ö½â: isAll=%s,qualityList=%s,PlaceIndexList=%siit RuneCompoundt delPlaceDictttotalDecomposethwj_20170807_1ttotalMJ(/R R4R5tIsAllt QualityListRMtPlaceIndexListR]R^t
QualityCntRdRit GetVPackCntR7R8RaRbRŒRcR‹R R RtGetTypetDef_ItemType_RuneExptGetEffectByIndextGetEffectValuetDef_MaxRateValuetrangeR!RtGetIpyGameDataNotLogRtRune_Source_UnkowntItem_Source_Compoundt    GetNeedMJR#t DelVPackItemR„t ItemDel_RuneR<t    GiveMoneyRtDef_GiveMoney_RuneDecomposeRt
NotifyCodetTYPE_Price_Ysog(RDRERFRtisAllt qualityListRªR«R­t    packIndext    placeListtaddPertplaceR|R•R}R”RtqualitytcurEfft    decomposeRRt addDataDict((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytOnRuneDecomposeˆsj            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(R R4R5R]R^t    LockStateR°R7R8RaRbRŒRcR‹RŽRgRtappendtSync_VPackItem_RefreshRM( RDRERFRRÅtchangeLockStatetchangePlaceListRÈR|R•R}R”R˜((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyt
OnRuneLockÓs(         c!    CsOtjƒ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| r¾xr| D]j}|j
t j|dƒ}tj&|t j|dƒidd    6|d
6dd 6}t'j(|t j)|ƒq&Wt*|ƒt+|ƒtj|ƒj,ƒntj-|ƒ}|j.t j/|ƒ|j.t j0t j1ƒtj2|ƒ} | j3t j|d t j4t5i|
d 6| d6gƒ|j6t j7dƒdS(Ns    ·ûÓ¡ºÏ³É tagItemID=%sR©iisI    ·ûÓ¡ºÏ³É ²ÄÁϲ»¶Ô tagItemID=%s, materialsIDList=%s, needItemIDList=%stGeRen_chenxin_676165s     ·ûÓ¡ºÏ³É ±³°ü¸ñ×ÓÊýÁ¿²»×ã1¸öt    TagItemIDtdoTypeR[R\teventt
indexList1t
indexList2(8R R4R5RÕtPackListt    IndexListRMRRRLR7R8RaR]R^RÏReRbRcR‹t GetNeedItemRƒRitGetItemPackSpaceR<RÁR¼R=RÂtDef_Cost_ItemProduceRR¸R!R#R0RdR½R¾RARkRlRmRRnRotGetOutPutItemObjt SetUserAttrtDef_IudetRuneLVtDef_IudetRuneSourceR»tPlayerItemControlert    PutInItemtItemGive_RuneCompoundRtSync_MakeItemAnswertDef_mitRuneCompound(!RDRERFRt    tagItemIDtpackListt    indexListRtmaterialsIDListtmaterialsLVDictRØRÙtiR‘R¦R§R¨tneedItemIDListt
emptySpacetneedMJtinfoDictt
totalPointRRËR”Rt    tagItemLVR/tneedExpR[R€tcurItemRã((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytOnRuneCompoundös’            
        !     
 
3c Cs÷gtdƒD] }i^q }tjddƒ}x©td|dƒD]”}|jtj|dƒ}|spqEntj|ƒ}tj    |ƒ}t
||ƒ}|s©qEnx-|j ƒD]\}    }
t j |    |
|ƒq¶WqEWt j|tj|ƒdS(NiR1ii(R¸RRRdR7R8ReRbRcR‹R,titemsR<tCalcAttrDict_TypetSetCalcAttrListValuetDef_CalcAttrFunc_Rune( Rt_t allAttrListR¥RRR¦R§R¨R&tattrIDt    attrValue((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyRnQscCsvd}tjddƒ}xWtd|dƒD]B}|jtj|dƒ}|sWq,n|tj|ƒd7}q,W|S(NiR1ii(RRRdR7R8ReRbR‹(RR¤R¥RRR¦((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pytGetRuneTotalLVgscCsÀtjddƒ}|sdStjƒ}|jƒ|jtjdƒ|_g|_    xDt
d|dƒD]/}|jtj |dƒ}|j    j |ƒqgWt |j    ƒ|_tj||ƒdS(NR1iii(RRtChPyNetSendPackt tagMCRuneInfotClearR7R8R9tRuneHoleOpenStatet RuneDataListRdReRÏRtCountt NetPackCommont SendFakePack(RR¥t RuneInfoPackR{R|((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyRts 
    (#R R]R8RiRbR<RRRR›tPlayerMagicWeaponR>tOpenServerCampaignRkRŸRRR    R!R,R0RJRURRXRRfRšRhRÍRÓRöRnRÿR(((sN.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerRune.pyt<module>sB                               #                 ^        ?    #    K    #    [