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
%ßEfc@sHddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „ZdS(iÿÿÿÿNcCsI|jtjƒ}|s1tj|tjdƒnt|ƒt|ƒdS(Ni(tNomalDictGetPropertytChConfigtDef_PDict_TreeLVt PlayerControltNomalDictSetPropertytRefreshTreeLVUPTimet SyncTreeInfo(t    curPlayerttreeLV((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerCutTree.pyt OnPlayerLogin&s 
 
c)
CsUtjƒj|ƒ}|j}|jƒ}tj|tj|ƒsVtjd|ƒdS|j    ƒj
t j ƒ}|j ƒ}xQtd|ƒD]@}|j|ƒ}    |    rŠ|    jƒ rŠtjd||ƒdSqŠW|jtjƒ}
d} tjddƒ} x3t| dƒD]"\} }|
|kr)| } qPqWt|| |j ƒƒ}tjd||
| |f|ƒ|spdStj|tj|ƒsŒdStjd|
ƒ}|s¨dS|jƒ}|jƒ}tjd    ||ƒd
}d}g}xFt|dƒD]5\}}|sqön||7}|j||gƒqöW||kr[tjd d |||
fƒn|sedStjd ||f|ƒtjddƒ}|jtj ƒ}tjd||ƒd\}}tj"tj#}|j$ƒg}g}xêt|ƒD]Ü}tj%|ƒ}|sqõnt&j'd|||||ddƒ} | sFqõn|d7}||krŒ||\}!}"tjd|!|"|f|ƒn2d}"t(j)| ƒ}!tjd|!|| f|ƒ|j|!|"gƒqõWtjd||ƒg}#g}$xà|D]Ø\}%}"i}&|"r$|"|&tj*<nt+j,|%dt-d|d|&ƒ}    |    dkrWqünt+j.||    dt j gƒs{qün|$j|%ƒtj%|ƒ}'|'rüt/j0||'dƒrü|#j|'d|'ddgƒqüqüW|$sâdSt1|$ƒ}(tj2|tj|(dt-ƒt+j3||#ƒtjd|$|#f|ƒt4||(|#ƒt5||(ƒdS(Ns ¿³Ê÷CDÖÐ...is(¿³Ê÷±³°üÖл¹ÓÐδ´¦ÀíÎïÆ·£¬ÎÞ·¨¿³Ê÷! i=%stCutTreeiis9Íæ¼Ò¿³Ê÷: cutCount=%s,treeLV=%s,canCutMax=%s,packCount=%stTreeLVs    equipColorRateList=%si't GameWarnings&CutTreeTotalRateError:%s!=%s,treeLV=%ss!    colorRateList=%s,totalRate=%sis    appointCutTreeCount=%stfindTypes7    ¶¨ÖÆ×°±¸ID: %s, appointID=%s,appointCutTreeCount=%ss#    Ëæ»ú×°±¸ID: %s, itemColor=%s,%ss"    Ô¤²ú³ö×°±¸: randEquipIDList=%sRt setAttrDictt packIndexListtisNotifys2    Êµ¼Ê²ú³ö: giveEquipIDList=%s,giveItemListEx=%s(iN(6t    GameWorldtGetPlayerManagertGetPlayerByIndextCutCountt GetPlayerIDtSetPlayerTickTimeRtTYPE_Player_Tick_CutTreetDebugLogtGetItemManagertGetPackt IPY_GameWorldt rptIdentifytGetCounttrangetGetAttIsEmptyRRt IpyGameDataPYtGetFuncEvalCfgt    enumeratetminRt    HaveMoneyt ShareDefinetTYPE_Price_XiantaotGetIpyGameDatatGetEquipColorRateListtGetExAwardItemRateListtappendt SendGameErrortDef_PDict_AppointCutTreeCounttNonetEquipPlace_BasetEquipPlace_SpecialtGetJobtGetResultByRandomListt    NPCCommont__GetEquipIDListtrandomtchoicetDef_CItemKey_AppointIDt ItemControlertGetOutPutItemObjtFalsetDoLogic_PutItemInPackt PlayerArenatCheckCanGiveBattleCountItemtlentPayMoneytGivePlayerItemOrMailtSyncCutTreeResulttOnAddCutTreeCnt()tindext
clientDatattickRtcutCounttplayerIDt identifyPackt    packCounttitcurItemRt    canCutMaxt lvCutMaxListtcurMaxtneedLVtipyDatatequipColorRateListtexAwardItemRateListtmaxRatet    totalRatet colorRateListt
equipColort    colorRatetcutCountAppointEquipDicttappointCutTreeCounttclassLVtisSuitt    placeListtjobListtrandEquipIDListt_t    itemColort equipIDListt randEquipIDt    appointIDtgiveItemListExtgiveEquipIDListt equipItemIDRtexItemtgiveEquipCount((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerCutTree.pyt    OnCutTree5s¸              
   $
  !  %  cCsùtjddƒ}||}|dkrAtj|ƒj|ƒntjddƒ}|ret|ƒnd}|jtjƒ}t    |||ƒ}||krÏtj
|tj|ƒt j d||j ƒƒntj||ƒtj|tj|ƒdS(NR
iiis+¸üж¨ÖÆ¿³Ê÷´ÎÊý: updAppointCutTreeCount=%s(R!t
GetFuncCfgRtAddExpR"tmaxRRR-R$RRRRtPlayerPrestigeSystAddRealmLVUpCutTreeCntt
PlayerTaskt AddTaskValuetTaskType_CutTree(RtaddCounttcutExptaddExpRXtappointCountMaxRYtupdAppointCutTreeCount((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerCutTree.pyRB¥s
  c Cs†tjƒj|ƒ}|j}|j}|j}|jƒ}|jƒjt    j
ƒ}tj d|||f|ƒxø|D]ð}    |    |j ƒkrªtj d|    |ƒqxn|j |    ƒ}
tj|
ƒsâtj d|    |ƒqxn|dkr=tj|
ƒ} tj||
| |ƒsqxn|rht||j |    ƒƒqhqx|dkrYt||
ƒqx|dkrxqxqxW|jtjtjƒdS(Ns9¿³Ê÷×°±¸²Ù×÷: itemIndexList=%s,opType=%s,autoDecompose=%ss ¿³Ê÷±³°üË÷Òý²»´æÔÚ: itemIndex=%ss ¿³Ê÷±³°üÎïÆ·²»´æÔÚ: itemIndex=%siii(RRRtOPTypet ItemIndexListt AutoDecomposeRRRRRRRRt
ItemCommontCheckItemCanUsetGetEquipPackIndextChEquiptDoPlayerEquipItemt__DoEquipDecomposetSync_MakeItemAnswerR&tDef_mitCutTreeEquipOPRtDef_ComposeState_Sucess( RCRDRERtopTypet itemIndexListt autoDecomposeRGRHt    itemIndextcurEquipt
equipIndex((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerCutTree.pytOnCutTreeEquipOPÅs6                 c Cs<tj|ƒsdS|jƒ}|jƒ}tj|ƒ}|jƒ}tjd|ƒ}|rj|j    ƒnd}t
j d||||f|ƒtj |||j ƒttjƒtjddƒ\}}    ttjd|    ƒƒ}
|
r"i|tj6|d6|d6} tj|||
d    | ƒntj|tjd
ƒdS( Nt
EquipColoris7×°±¸·Ö½â: itemID=%s,itemColor=%s,itemLV=%s,moneyBase=%sR
itCutTreeDecomposeMoneyR`titemLVtEquipDecomposei(RzR{t GetItemTypeIDt GetItemColorR8t    GetItemLVRR!R(t GetMoneyBaseRRtDelItemRtTrueRtItemDel_EquipDecomposeR"tevaltFormulaControltGetCompileFormulatDef_Give_Reason_SonKeyRt    GiveMoneyRoRptTaskType_EquipDecompose( RR‡titemIDR`RŒRGt colorIpyDatat    moneyBaset    moneyTypet moneyFormatt
moneyValyet addDataDict((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerCutTree.pyRës"    "c    Cs²tjƒj|ƒ}|j}|dkr8t|ƒdS|jƒ}|jtjƒ}|rttj    d||ƒdS|jtj
ƒ}t j d|ƒ}|s¢dS|j ƒ}    |d}
t jd|
ƒ} |    dksÝ| rõtj    d||ƒdSt jddƒ} tj|| |    di|d6ƒs-dS|jƒ} tj|tjdƒtj|tj| ƒtj|tjttjƒƒƒtj    d||
| f|ƒt|ƒdS(    NisÏÉÊ÷ÒѾ­ÔÚÉý¼¶ÖÐ! lvupState=%sR isÏÉÊ÷ÒÑÂú¼¶! treeLV=%stTreeLVUPRs5ÏÉÊ÷ÇëÇó¿ªÊ¼Éý¼¶! treeLV=%s,nextTreeLV=%s,needTime=%s(RRRtTypet
DoTreeLVUPRRRtDef_PDict_TreeLVUPStateRRR!R(tGetLVUPNeedMoneytGetIpyGameDataNotLogRjRR?tGetLVUPNeedTimeRtDef_PDict_TreeLVUPRemainTimetDef_PDict_TreeLVUPRefreshTimetintttimeR(RCRDRERtupTypeRGt    lvupStateRRPt    needMoneyt
nextTreeLVt nextIpyDataRžtneedTime((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerCutTree.pyt
OnTreeLVUP    s<     
 
" "
c
Cs tjƒj|ƒ}|j}|j}|jƒ}|jtjƒ}|jtj    ƒ}| se| rƒtj
d||f|ƒdSt j ddƒ\}    }
tj
d|    |
|f|ƒ|     sÆ| rÊdSt j||    |ƒ\} } } || | }|dkr0| r0tj
d|    || | |f|ƒdS|}|dkrÍtj}t ji||    6ƒ}|dkrqdStj
d|||f|ƒi|    tj6}tj|||tj|ƒsÀdS||8}n|ròt j|| | | |dƒn|
|}t||ƒdS(    NsIÏÉÊ÷·ÇÉý¼¶ÖлòÊ£Óàʱ¼äΪ0£¬²»ÐèÒª¼õÉÙʱ¼ä! lvupState=%s,LVUPRemainTime=%sR¢is@ʹÓÃÏÉÊ÷Éý¼¶¼õʱÎïÆ·! costItemID=%s,reduceSeconds=%s,useCount=%sisJÏûºÄµÀ¾ß²»×ã! costItemID=%s,useCount=%s,bindCnt=%s,unBindCnt=%s,lackCnt=%ss1×Ô¶¯¹ºÂòµÀ¾ß: lackCnt=%s,moneyType=%s,lackCost=%stTreeLVUPTimeItem(RRRtUseCountt    IsAutoBuyRRRR¥R©RR!R"RztGetPackItemBindStateIndexInfoRtTYPE_Price_Gold_MoneytGetAutoBuyItemNeedGoldtDef_Cost_Reason_SonKeyRR?tDef_Cost_BuyStoreItemtDelCostItemByBindtReduceTreeLVUPTime(RCRDRERtuseCountt    isAutoBuyRGR®tLVUPRemainTimet
costItemIDt reduceSecondstcostItemIndexListtbindCntt    unBindCnttlackCnttdelCntRžtlackCosttinfoDictt
reduceTime((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerCutTree.pytOnUseTreeLVUPTimeItem5sH                        
 cCsú|jtjƒ}|jtjƒ}| s2| r6dSttjƒƒ}|jtjƒ}|si|}ntd||ƒ}td||ƒ}|jtjƒ}t    j
|tj|ƒt    j
|tj|ƒt j d|||||f|j ƒƒdS(NishË¢ÐÂÏÉÊ÷Éý¼¶Ê£Óàʱ¼ä! updLVUPRemainTime=%s,treeLV=%s,LVUPRemainTime=%s,passSeconds=%s,lastRefreshTime=%s(RRR¥R©R«R¬RªRlRRRRRR(RR®RÀtcurTimetlastRefreshTimet passSecondstupdLVUPRemainTimeR((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerCutTree.pyRbs          cCsºt|ƒ|jtjƒ}|jtjƒ}| s<| r`tjd||f|jƒƒdStd||ƒ}t    j
|tj|ƒtjd|||f|jƒƒt |ƒt S(NsIÏÉÊ÷·ÇÉý¼¶ÖлòÊ£Óàʱ¼äΪ0£¬²»ÐèÒª¼õÉÙʱ¼ä! lvupState=%s,LVUPRemainTime=%sisJ¼õÉÙÏÉÊ÷Éý¼¶Ê£Óàʱ¼ä! updLVUPRemainTime=%s,LVUPRemainTime=%s,reduceTime=%s( RRRR¥R©RRRRlRRRR“(RRÊR®RÀRÏ((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerCutTree.pyR½vs
        
cCsAt|ƒ|jƒ}|jtjƒ}|sFtjd||ƒdS|jtjƒ}|dkr|tjd||ƒdS|jtjƒ}|d}t    j
d|ƒ}|s´dSt j |tj|ƒt j |tjdƒt j |tjdƒt j |tj dƒtjd||ƒt|ƒtj|tjƒdS(Ns(ÏÉÊ÷·ÇÉý¼¶ÖУ¬ÎÞ·¨Ö´ÐÐÉý¼¶! lvupState=%sis5ÏÉÊ÷Éý¼¶Ê£Óàʱ¼äδµ½£¬ÎÞ·¨Ö´ÐÐÉý¼¶! LVUPRemainTime=%siR sÖ´ÐÐÏÉÊ÷Éý¼¶! updTreeLV=%s(RRRRR¥RRR©RR!R(RRRªRRot UpdTaskValuetTaskType_TreeLV(RRGR®RÀRt    updTreeLVRP((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerCutTree.pyR¤†s.
 
 
cCs_tjƒ}|jtjƒ|_|jtjƒ|_|jtjƒ|_    t
j ||ƒdS(N( tChPyNetSendPackt tagMCTreeInfoRRRR R¥t    LVUPStateR©RÀt NetPackCommont SendFakePack(Rt
clientPack((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerCutTree.pyR£s  cCsŒtjƒ}||_g|_xE|D]=\}}}tjƒ}||_||_|jj|ƒq%Wt|jƒ|_    t
j ||ƒdS(N( RÓttagMCCutTreeResultt
EquipCountt
ExItemListttagMCCutTreeExItemtItemIDt    ItemCountR+R>t ExItemCountRÖR×(Rt
equipCountRdRØR›t    itemCountR_titem((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerCutTree.pyRA«s                  (RRzR&RÖR!RÓRmR–RRR8R<RoR3RR}R5R¬R    RiRBR‰RR³RËRR½R¤RRA(((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerCutTree.pyt<module>s:                          p         &        ,    -