hxp
2025-06-12 59331b7135fb10c24382d76fb0a3d721dddca7ee
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
ÀªJhc@sóddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
d„Z d„Z d„Z d„Zd„Zdd„Zd    „Zdd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&d„Z'e(d „Z)d!„Z*d"„Z+d#„Z,d$„Z-d%„Z.d&„Z/d'„Z0d(„Z1dd)„Z3dS(*iÿÿÿÿNcCst|ƒdS(N(t Sync_HeroInfo(t    curPlayer((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnPlayerLogins
cCs¢|jtjdƒ|jtjƒr;|jtjdƒn|jtjƒrc|jtjdƒn|jtjƒr‹|jtjdƒn|jtjƒr³|jtjdƒn|jtjƒrÛ|jtjdƒn|j    tj
ƒr|j tj
ƒn|j    tj ƒr%|j tj ƒn|j    tj ƒrJ|j tj ƒn|j    tjƒro|j tjƒn|j    tjƒr”|j tjƒnt|ƒdS(Nii(t SetUserAttrt ShareDefinetDef_IudetHeroLVt GetUserAttrtDef_IudetHeroStartDef_IudetHeroBreakLVtDef_IudetHeroAwakeLVtDef_IudetHeroSkintDef_IudetHeroPosNumtGetUserAttrCounttDef_IudetHeroTalentIDt ClearUserAttrtDef_IudetHeroTalentIDLVtDef_IudetHeroTalentWashLocktDef_IudetHeroTalentWashIDtDef_IudetHeroTalentIDAwakeRandtInitHeroTalent(t
singleItem((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt InitHeroItem#s.
cCs¦|jƒ}tjd|ƒ}|s(dS|jƒ}tjd|ƒ}|sPdSd}|jƒ}|r}tj|dƒ}ni}g}tjƒ}    x^t|    j    ƒƒD]J}
|    j
|
ƒ} | j ƒ} | j ƒ} |j | | gƒ| || <q¨W|jtjƒ|jtjƒx‰t|ƒD]{}tj|ƒ}|sDq#n|j|dƒ|g}||krx|j|ƒn|jtj|ƒ|jtjdƒq#WdS(s+³õʼ»¯²ÛλÌ츳£¬²»Í¬²ÛλÌ츳ID²»ÄÜÒ»Ñù
    tHeroNt HeroQualityii(t GetItemTypeIDt IpyGameDataPYtGetIpyGameDatat
GetQualitytGetInitTalentWeightt    GameWorldtGetResultByWeightListtIPY_DatatrangetGetHeroTalentCounttGetHeroTalentByIndext GetTalentIDt GetInitWeighttappendRRR Rtgettremovet AddUserAttr(RtheroIDt heroIpyDatatqualitytqualityIpyDatat initTalentCnttinitTalentWeightt talentIDDictttalentWeightListt
ipyDataMgrtindext talentIpyDatattalentIDt
initWeightt_t randTalentIDt randWeightID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR?sB       cCsx|jƒ}tjd|ƒ}|s(dSt||ƒstt||dƒtjd||jƒƒt||gƒndS(NRisÊ״줻îÎ佫: heroID=%s(    RRRtGetHeroActivitetSetHeroActiviteRtDebugLogt GetPlayerIDR(RtheroItemR)R*((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnGiveHeroItemks cCs|jtj|ƒd}|S(Ni
(tNomalDictGetPropertytChConfigtDef_PDict_HeroBook(RR)tactState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR9zsicCs˜|jtj|ƒ}|d}|r9|r0dSd}nd}tj|dd|ƒ}tj|tj||ƒtjd|||f|jƒƒdS(Ni
iis0ÉèÖÃÎ佫¼¤»î״̬:%s,bookState=%s,updBookState=%s(    R?R@RARtSetValuet PlayerControltNomalDictSetPropertyR;R<(RR)tisActt    bookStateRBt updBookState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR:€s
    #cCs$|jtj|ƒd}|dkS(Ni
i(R?R@RA(RR)t    initState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroBookInitStatescCsš|jtj|ƒ}|d}|r/d}n|r;dnd}tj|dd|ƒ}tj|tj||ƒtjd|||f|jƒƒdS(Ni
iiis4ÉèÖÃÎ佫ͼ¼ø¼¤»î״̬:%s,bookState=%s,updBookState=%s(    R?R@RARRCRDRER;R<(RR)RFRGRBRH((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroBookInitState“s
    #cCs)|jtj|ƒ}tj|ddƒS(Nii(R?R@RARtGetValue(RR)RG((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroBookStarLV scCso|jtj|ƒ}tj|dd|ƒ}tj|tj||ƒtjd|||f|jƒƒdS(Niis4ÉèÖÃÎ佫ͼ¼øÐǼ¶µÈ¼¶:%s,bookState=%s,updBookState=%s(    R?R@RARRCRDRER;R<(RR)tstarLVRGRH((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroBookStarLV¤s
#cCs)|jtj|ƒ}tj|ddƒS(Nii(R?R@RARRL(RR)RG((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroBookBreakLV¬scCso|jtj|ƒ}tj|dd|ƒ}tj|tj||ƒtjd|||f|jƒƒdS(Niis4ÉèÖÃÎ佫ͼ¼øÍ»ÆÆµÈ¼¶:%s,bookState=%s,updBookState=%s(    R?R@RARRCRDRER;R<(RR)tbreakLVRGRH((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroBookBreakLV°s
#cCs}|jƒjtjƒ}|dks6||jƒkr:dS|j|ƒ}| s\|jƒr`dS|jƒtj    krydS|S(Ni(
tGetItemManagertGetPackRtrptHerotGetCounttGetAttIsEmptytGetTypeR@tDef_ItemType_Hero(Rt    itemIndextcurPackR=((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt GetHeroItem¸scCsïtjƒj|ƒ}|jƒ}|j}t||ƒ}|sCdS|jƒ}tjd|ƒ}|skdS|j    ƒ}    |j
t j ƒ}
|j
t j ƒ} t|ƒ} tjd||| |    |
| f|ƒ| | krñtjd| |ƒdStjd|    ƒ} | s dS| jƒ}|s#dS|\}}| s=| rAdS|jƒjtjƒ}tj|||ƒ\}}|s•tjd||fƒdStj||||tdƒ| d}tjd|||f|ƒ|jt j |ƒdS(    NRsMÇëÇóÎ佫Éý¼¶: itemIndex=%s,heroID=%s,heroLV=%s,quality=%s,breakLV=%s,LVMax=%ss¸ÃÎ佫ÒÑÂú¼¶£¡LVMax=%sRs7²ÄÁϲ»×㣬Î佫ÎÞ·¨Éý¼¶! costItemID=%s, costItemCount=%stHeroLVUPis-Î佫Éý¼¶: itemIndex=%s,heroID=%s,updHeroLV=%s(RtGetPlayerManagertGetPlayerByIndexR<t    ItemIndexR]RRRRRRRRt GetHeroLVMaxR;t GetUPCostItemRSRTt IPY_GameWorldtrptItemt
ItemCommontGetItem_FromPack_ByIDt
ReduceItemtTrueR(R2t
clientDatattickRtplayerIDR[R=R)R*R+RQtheroLVtLVMaxR,t costItemInfot
costItemIDt costItemCounttitemPackt    hasEnought itemIndexListt    updHeroLV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt
OnHeroLVUPÊsL               
cCsu|jƒ}tjd|ƒ}|s(dS|jƒ}|jtjƒ}tjd||ƒ}|sedS|jƒ}|S(NRitHeroQualityBreak(RRRRRRRtGetLVMax(R=R)R*R+RQtqualityBreakIpyDataRn((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRbös   c CsÉtjƒj|ƒ}|jƒ}|j}|j}t||ƒ}t||ƒ}| sk| sk||krodS|jƒ}    |jƒ}
tjd||    ||
f|ƒ|    |
krÇtjd|ƒdS|j    ƒrñtjd||    f|ƒdS|j
t j ƒ} | r'tj d||    f|ƒdS|j
t jƒ} | r]tj d||    f|ƒdS|jt jƒ} |jt jƒ}| s|r«tjd| |f|ƒdStjd|    ƒ}|sÇdS|jƒ}|jt jƒ}|jt jƒ}t|ƒ}tjd|    ||||f|ƒ||krJtjd    ||ƒdS|jt jƒ}|d
}||}tjd ||    ||||f|ƒtj|||jƒtd ƒt|||ƒdS( NsAÇëÇóÎ佫ÉýÐÇ: itemIndex=%s,heroID=%s,useItemIndex=%s,useHeroID=%ssÎ佫²ÄÁϷDZ¾Ì壬ÎÞ·¨ÉýÐÇ!s1²ÄÁÏ¿¨Ëø¶¨ÖУ¬ÎÞ·¨ÉýÐÇ! useItemIndex=%s,heroID=%ss4Î佫ϴÁ¶½á¹ûδ´¦Àí£¬ÎÞ·¨ÉýÐÇ! itemIndex=%s,heroID=%ss8Î佫¾õÐѽâËøÌ츳δѡÔñ£¬ÎÞ·¨ÉýÐÇ! itemIndex=%s,heroID=%ssB²ÄÁÏ¿¨Í»ÆÆ»ò¾õÐѵȼ¶²»Îª0ÔÝʱÎÞ·¨ÉýÐÇ£¡useBreakLV=%s,useAwakeLV=%sRs2heroID=%s,star=%s,quality=%s,awakeLV=%s,starMax=%ss¸ÃÎ佫ÒÑÂúÐÇ£¡starMax=%sisIÎ佫ÉýÐÇ: itemIndex=%s,heroID=%s,star=%s,useStar=%s,addStar=%s,updStar=%st
HeroStarUP(RR_R`R<Rat UseItemIndexR]RR;t GetIsLockedR RRtErrLogRRRR    RRRRtGetHeroStarMaxRftDelItemRVtFalset DoHeroUpdStar(R2RjRkRRlR[t useItemIndexR=tuseItemR)t    useHeroIDt    washIDCntt awakeRandCntt
useBreakLVt
useAwakeLVR*R+tstartawakeLVtstarMaxtuseStartaddStartupdStar((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroStarUP sd                    # 
 
    c CsÔ|jƒ}tjd|ƒ}|s(dS|jƒ}tjd|ƒ}|sPdS|jƒ}d}tjd|ƒ}|rÆ|jtjƒ}x7|D],}    |    j    ƒ|kr¯Pn||    j
ƒ7}q“Wn||}
|
S(NRiRt    HeroAwake( RRRRtGetInitStarUppertGetIpyGameDataListRRR    t
GetAwakeLVtGetAddStarUpper( R=R)R*R+R,t InitStarUppert addStarUppertheroAwakeIpyDataListRŠtipyDataR‹((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR~As&    
cCse|jtjƒ}||}|jƒ}|jtj|ƒ|dkrWt||ƒn|jƒdS(Ni(RRRtGetItemRt__DoHeroStarTalentUpt    Sync_Item(RR=RŽtcurStarRtitem((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRZs
 
cCsZtjddƒ}tjddƒ}|jtjƒ}|jtjƒ}gg}}g}t}    x}tt||ƒƒD]f}
|j    tj|
ƒ} |j    tj|
ƒ} |j
| ƒ|j
| ƒ| |krw|j
| ƒqwqwWt |ƒ|kr,|dg|t |ƒ7}|dg|t |ƒ7}nt j d|ƒt j d||fƒt j d|ƒd|kr×i} g}tjƒ}xpt|jƒƒD]\}
|j|
ƒ}|jƒ} | |krÏqœn|jƒ}|j
|| gƒ|| | <qœWt j d|ƒxÇt|ƒD]¶}d|kr0Pnt j|ƒ}|sKqn| j|dƒ|g}||kr|j|ƒn|jdƒ}|||<d||<|j
|ƒt j d    |ƒ|d8}t}    qWn|dkrÄxÞt|ƒD]Í}|sPntj|ƒ}||kr.|j|ƒqðn|j|ƒ}||}||kr„|d7}|||<t j d
|||fƒn||kr·|j|ƒt j d ||fƒnt}    qðWn|    sÎdSt j d ||fƒ|jtjƒ|jtjƒxNt|ƒD]@\}
} | s(Pn|jtj| ƒ|jtj||
ƒqWdS( NtHeroStarTalentiiis"Ö´ÐÐÎ佫ÐǼ¶Ì츳µÈ¼¶ÌáÉý: addLV=%ss!µ±Ç°ÐǼ¶Ì츳: idList=%s,lvList=%ssδÂú¼¶ÐǼ¶Ì츳ID: %ss³£¹æ¿Õ²ÛλÔö¼ÓÌ츳Êý£º%ssÐÂÔöÐǼ¶Ì츳ID: %ss#Éý¼¶ÐǼ¶Ì츳ID: %s,idLV=%s,index=%ss&    ÒƳýδÂú¼¶ID: %s,unfullLVIDList=%ss!¸üÐÂÐǼ¶Ì츳: idList=%s,lvList=%s(Rt
GetFuncCfgR RR RR€R tmintGetUserAttrByIndexR%tlenRR;RR!R"R#t GetWashWeightRR&R'R2RitrandomtchoiceRt    enumerateR((RtaddLVtcommTalentSlott talentMaxLVtidCounttlvCounttidListtlvListtunfullLVIDListthaveUpR2R4ttalentLVt idWeightDictR0R1R3tweightR6R7R8t    zeroIndextrandIDt    randIndextidLV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRšhsœ           
 
 
 
 
 
   cCs×tjƒj|ƒ}|jƒ}|j}t||ƒ}|sCdS|jƒ}tjd|ƒ}|skdS|j    ƒ}    |j
t j ƒ}
tj d|||    |
f|ƒtjd|    |
ƒ} | sÈdS|
d} tjd|    | ƒstj d|    |
f|ƒdS| jƒ} | sdS| \}}| s5| r9dS|jƒjtjƒ}tj|||ƒ\}}|stj d||fƒdStj||||tdƒtj d||| f|ƒt|| ƒdS(    NRs:ÇëÇóÎä½«Í»ÆÆ: itemIndex=%s,heroID=%s,quality=%s,breakLV=%sRwis%Í»ÆÆµÈ¼¶ÒÑÂú¼¶: quality=%s,breakLV=%ss7²ÄÁϲ»×㣬Î佫ÎÞ·¨Í»ÆÆ! costItemID=%s, costItemCount=%st    HeroBreaks/Îä½«Í»ÆÆ: itemIndex=%s,heroID=%s,nextBreakLV=%s(RR_R`R<RaR]RRRRRRRR;RcRSRTRdReRfRgRhRitSetHeroBreakLV(R2RjRkRRlR[R=R)R*R+RQR˜t nextBreakLVRoRpRqRrRsRt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroBreakÎsH           
   cCs|jtj|ƒdS(N(RRR(R=RQ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR¸÷sc    CsItjƒj|ƒ}|jƒ}|j}t||ƒ}|sCdS|jƒ}tjd|ƒ}|skdS|j    ƒ}    |j
t j ƒ}
|j
t j ƒ} tjd|||    | |
f|ƒtjddƒ} tjddƒ} |
| ksú|
| krtjd|
| | f|ƒdStjd|    | ƒ}|s:dS| d}tjd|    |ƒswtjd|    | f|ƒdS|jƒ}|sdS|\}}| s§| r«dS|jƒjtjƒ}tj|||ƒ\}}|sÿtjd    ||fƒdStj||||td
ƒtjd |||f|ƒt||ƒdS( NRsDÇëÇóÎ佫¾õÐÑ: itemIndex=%s,heroID=%s,quality=%s,awakeLV=%s,starLV=%sRžiis$µ±Ç°ÐǼ¶²»¿É¾õÐÑ: starLV=%s < %s, %stHeroQualityAwakes%¾õÐѵȼ¶ÒÑÂú¼¶: quality=%s,awakeLV=%ss7²ÄÁϲ»×㣬Î佫ÎÞ·¨¾õÐÑ! costItemID=%s, costItemCount=%sRs/Î佫¾õÐÑ: itemIndex=%s,heroID=%s,nextBreakLV=%s(RR_R`R<RaR]RRRRRRRR    R;RŸRcRSRTRdReRfRgRhRitSetHeroAwakeLV(R2RjRkRRlR[R=R)R*R+RNRŠtawakeLimitStarR¨R˜t nextAwakeLVRoRpRqRrRsRt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroAwakesT           
   cCs7|jƒ}|jtj|ƒt|ƒ|jƒdS(N(R™RRR    tunlockTalentSlotByAwakeR›(R=RŠR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR¼2s
 
 
cCsl|jƒ}|jtjƒ}tjd|ƒ}|s:dSd}x;|| ddd…D]"}|jƒ}|rX|}PqXqXW|sˆdS|jtjƒ}||krªdStj    ddƒ}||krÌdS|jtj
ƒ}    |    rèdSg}
x6t |ƒD](} |j tj| ƒ} |
j | ƒqûWtjd|||
fƒi} g}tjƒ}xpt |jƒƒD]\} |j| ƒ}|jƒ} | |
krŸqln|jƒ}|j || gƒ|| | <qlWtj    ddƒ}x‡t |ƒD]y}tj|ƒ}|s qën| j|dƒ|g}||kr@|j|ƒn|jtj
|ƒtjd|ƒqëWdS(    NRiiÿÿÿÿRžis5¾õÐѽâËøÌ츳²Û: awakeLV=%s,maxUnlockSlot=%s,idList=%sis!Ëæ»ú¾õÐÑÌ츳ѡÏî: randTalentID=%s(RRRR    RR’tGetUnlockTalentSlotR R RŸRR R¡R%RR;RR!R"R#tGetAweakWeightRR&R'R((RR)RŠtawakeIpyDataListt maxUnlockSlotR˜tunlockTalentSlotRªR¨R†R¬R2R4R±R0R1R3R²t randTalentCntR6R7R8((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRÀ:sb         cCsœtjƒj|ƒ}|jƒ}|j}|j}t||ƒ}|sLdS|jƒ}|jt    j
ƒ}    |     s}||    kržtj d|||    f|ƒdS|j t    j
|ƒ}
|
s½dS|j ƒ} | jt    jƒ} | jt    jƒ} gg}}xatt| | ƒƒD]J}| j t    j|ƒ}| j t    j|ƒ}|j|ƒ|j|ƒqWtjddƒ}| |kr©|dg|| 7}|dg|| 7}n|
|krÙtjd|||
|f|ƒdS|j|
ƒ|jdƒ| jt    j
ƒtj d|
||fƒ| jt    jƒ| jt    jƒxDt|ƒD]6\}}| jt    j|ƒ| jt    j||ƒqJWt| ƒ|jƒdS(NsB²»´æÔڸþõÐÑÌì¸³Ëæ»úÑ¡Ïî! heroID=%s,selectIndex=%s,awakeRandCnt=%sRžiisDÑ¡ÔñÌ츳ID²»ÄÜÖØ¸´! heroID=%s,selectIndex=%s,selectTalentID=%s in %ss3¸üÐÂÑ¡ÔñÌ츳: selectTalentID=%s,idList=%s,lvList=%s(RR_R`R<Rat SelectIndexR]RR RRR;R¡R™R RR R R%RRŸR}RR¦R(RÀR›(R2RjRkRRlR[t selectIndexR=R)R†tselectTalentIDRRªR«R¬R­R4R°R¨((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnHeroAwakeSelectTalentsX                     
 
cCsžtjƒj|ƒ}|j}|j}|j}t||ƒ}|sIdS|dkrht|||ƒn2|dkr‡|jt    j
ƒnt ||||ƒdS(Nii( RR_R`RatLockTalentIndexstOPTypeR]tHeroTalentWashReplaceRRRtHeroTalentWash(R2RjRkRR[tlockTalentIndexstopTypeR=((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt
OnHeroWashÁs              cCsÌ|jƒ}tjd|||fƒ|jtjƒ}|rStjd|ƒdStjddƒ}tjddƒ}| s…| r‰dS|\}}    |\}
} |j    ƒj
t j ƒ} t j|| |    ƒ\} }| sõtjd||    fƒdSg}d}|rYt|ƒ| }t j|
| |ƒ\} }| sYtjd|
| |fƒdSnt j|| ||    td    ƒt j|| ||td    ƒ|jƒ}|jtjƒ}g}xRt|ƒD]D}||krù|jtj|ƒ}|j|ƒqÂ|jdƒqÂWtjd
|ƒi}g}tjƒ}xpt|jƒƒD]\}|j|ƒ}|jƒ}||kryqFn|jƒ}|j||gƒ|||<qFWxt|ƒD]q\}}|rËq³ntj|ƒ}|sæq³n|j|dƒ|g}||kr|j|ƒn|||<q³Wtjd |ƒ|j tjƒx!|D]}|j!tj|ƒqPW|j tj"ƒx!|D]}|j!tj"|ƒq„W|j#ƒtjd ||||fƒdS( Ns4Î佫ϴÁ¶: itemIndex=%s,heroID=%s,lockTalentIndexs=%ss*Î佫ϴÁ¶½á¹ûδ´¦Àí£¬ÎÞ·¨Ï´Á¶! washIDCnt=%stHeroWashiis>Ï´Á¶²ÄÁϲ»×㣬Î佫ÎÞ·¨Ï´Á¶! washItemID=%s,washCostItemCount=%sisXËø¶¨²ÄÁϲ»×㣬Î佫ÎÞ·¨Ï´Á¶! lockItemID=%s,lockCostItemCount=%s,lockCostItemCountTotal=%sRÎs
Ï´Á¶Ç°: %ss
Ï´Á¶ºó: %ssFÎ佫ϴÁ¶½á¹û! itemIndex=%s,heroID=%s,washIDList=%s,lockTalentIndexs=%s($RRR;R RRR}RtGetFuncEvalCfgRSRTRdReRfRgR¢RhRiR™R R R¡R%RR!R"R#R£R¦RR&R'RR(RR›(RR[R=RÏR)R…twashCostItemInfotlockCostItemInfot
washItemIDtwashCostItemCountt
lockItemIDtlockCostItemCountRrRstwashItemIndexListtlockItemIndexListtlockCostItemCountTotalRRªt
washIDListR2R4R±R0R1R3R²R7R8((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRÎÔsŠ                
    c    CsÄ|jƒ}|jƒ}g}|jtjƒ}|jtjƒxIt|ƒD];}|jtj|ƒ}|j    |ƒ|j
tj|ƒqMW|jtjƒ|j ƒt j d|||fƒdS(Ns2Î佫ϴÁ¶Ìæ»»! itemIndex=%s,heroID=%s,washIDList=%s(RR™R RRRR R R¡R%R(R›RR;(    RR[R=R)RRÝRªR2R4((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRÍ*s   
c Cstjƒj|ƒ}|j}|j}t||ƒ}|s@dS|jƒ}tjd|ƒ}|shdS|j    ƒ}    |dkr÷|t
|    ƒkr­tj d||fƒdS|j t j|ƒ}
|
td|ƒ@s÷tj d|||
fƒdSn|jtj|ƒdS(NRis*¸ÃÎ佫²»´æÔÚ¸ÃÆ¤·ô! heroID=%s,skinIndex=%sis5¸ÃÎ佫Ƥ·ôδ½âËø! heroID=%s,skinIndex=%s,skinState=%s(RR_R`Rat    SkinIndexR]RRRtGetSkinNPCIDListR¢R;R?R@tDef_PDict_HeroSkintpowRRR
( R2RjRkRR[t    skinIndexR=R)R*t skinNPCIDListt    skinState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnHeroWearSkinHs*           cCsÁ|jtj|ƒ}|rX|td|ƒB}tjd||||f|jƒƒn;tj||dƒ}tjd||||f|jƒƒtj    |tj||ƒt
||gƒdS(Nis=¼¤»îÎ佫Ƥ·ô: heroID=%s,skinIndex=%s,skinState=%s,updState=%sis=ʧЧÎ佫Ƥ·ô: heroID=%s,skinIndex=%s,skinState=%s,updState=%s( R?R@RàRáRR;R<t SetBitValueRDRER(RR)RâtisActiveRätupdState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytActiveHeroSkinbs         cCstjƒj|ƒ}|j}|j}|j}|dkrOt|||ƒn,|dkrnt|||ƒn t||ƒdS(Nii(    RR_R`tHeroIDRatBookTypet__doHeroBookStarLVUPt__doHeroBookBreakLVUPt__doHeroBookAct(R2RjRkRR)R[tbookType((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroBookUPys               c    Cs4|jƒ}t||ƒr3tjd||ƒdStjd||ƒtjd|ƒ}|scdS|jƒ}tjd|ƒ}|s‹dSt||ƒdkr¸tjd||ƒdSt||dƒ|j    ƒ}|r t
|ƒdkr |\}}|r |r t j |||dƒq nt ||gƒdS(    Ns¸ÃÎ佫ͼ¼øÒѼ¤»î! heroID=%ssÎ佫ͼ¼ø¼¤»î! heroID=%sRRis%Î佫δ»ñµÃ¹ý£¬²»¿É¼¤»îͼ¼ø! heroID=%sit HeroBookAct(R<RJRR;RRRR9RKtGetBookActAwardMoneyR¢RDt    GiveMoneyR(    RR)RlR*R+R,tawardMoneyInfot    moneyTypet
moneyValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRî‡s.     cCsî|jƒ}t||ƒ}|s%dS|jƒ|kr[tjd||jƒf|ƒdS|jtjƒ}t||ƒ}||kr©tjd|||f|ƒdStjd|||f|ƒt    |||dƒt
||gƒdS(Ns)·Ç¸ÃÎ佫ͼ¼ø¹ØÁªÎïÆ·! heroID=%s,itemID=%ssA¸ÃÎ佫ͼ¼øÐǼ¶ÒѴﵱǰӢÐÛÐǼ¶! heroID=%s,bookStar=%s,heroStar=%ss3Î佫ͼ¼øÐǼ¶Éý¼¶! heroID=%s,bookStar=%s,heroStar=%si( R<R]RRR;RRRRMROR(RR)R[RlR=theroStartbookStar((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRì£s    cCsî|jƒ}t||ƒ}|s%dS|jƒ|kr[tjd||jƒf|ƒdS|jtjƒ}t||ƒ}||kr©tjd|||f|ƒdStjd|||f|ƒt    |||dƒt
||gƒdS(Ns)·Ç¸ÃÎ佫ͼ¼ø¹ØÁªÎïÆ·! heroID=%s,itemID=%ssO¸ÃÎ佫ͼ¼øÍ»ÆÆµÈ¼¶ÒѴﵱǰӢÐÛÍ»ÆÆµÈ¼¶! heroID=%s,bookBreakLV=%s,heroBreakLV=%ss9Î佫ͼ¼øÍ»ÆÆÉý¼¶! heroID=%s,bookBreakLV=%s,heroBreakLV=%si( R<R]RRR;RRRRPRRR(RR)R[RlR=t heroBreakLVt bookBreakLV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRí¹s    cCs]tjƒj|ƒ}|j}|j}t||ƒ}|s@dS|j|rRdndƒdS(Nii(RR_R`RatIsLockR]t SetIsLocked(R2RjRkRR[tisLockR=((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt
OnHeroLock×s        c Cs®tjƒj|ƒ}|j}|j}i}g}xI|D]A}|j}    |j}
|
|krdq:n|j|
ƒ|
||    <q:W|dkr›t||ƒn|dkrªndS(Nii(    RR_R`tFuncTypet HeroPosListtPosNumRaR%tMainBattlePosSave( R2RjRkRtfuncTypet heroPosListt heroPosDictt    indexListtposInfotposNumR[((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnHeroBattlePosSaveðs"                     cCsAtjd||jƒƒ|jƒjtjƒ}xvt|jƒƒD]b}|j    |ƒ}| sE|j
ƒrsqEn|j tj ƒs‹qEn|j ƒ}|jtj ƒqEWx…|jƒD]w\}}|dks¸||jƒkrèq¸n|j    |ƒ}| s¸|j
ƒrq¸n|j ƒ}|jtj |ƒq¸Wt|ƒdS(Ns±£ÁôÖ÷Õ½¶·ÕóÐÍ: %si(RR;R<RSRTRRUR RVRWRXRR R™RtitemsRt ResetHeroPack(RRR\R2R=RRR[((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR
s(  
cCs?tjƒjƒ}|jdƒtj|tjdd|ƒdS(Ni(Rt GetGameWorldtGetTicktSetResetItemTickt ItemControlert    ResetItemRRU(RRk((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR $s c Cs|dkr|}nQg}tjƒ}x<t|jƒƒD](}|j|ƒ}|j|jƒƒq:W|spdSg}xÑ|D]É}tjd|ƒ}|s¡q}n|dkrÊ|j    t
j |ƒ rÊq}nt j ƒ}    ||    _|j    t
j|ƒ|    _|j    t
j |ƒd|    _t||ƒ|    _t||ƒ|    _|j|    ƒq}W|sTdSt jƒ}
||
_t|
jƒ|
_tj||
ƒdS(NRi
(tNoneRRR t GetHeroCounttGetHeroByIndexR%t    GetHeroIDRR?R@RAtChPyNetSendPackt    tagSCHeroRêRàt    SkinStatet BookInitStateRMt
BookStarLVRPt BookBreakLVt tagSCHeroInfot HeroInfoListR¢tHeroCntt NetPackCommont SendFakePack( Rt
heroIDListtsyncHeroIDListR1R2R˜t syncInfoListR)R*therot
clientPack((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR*s<       #          (4RfRRRdRRRRDRR@R¤RRRR>R9R:RJRKRMRORPRRR]RvRbRR~RRšRºR¸R¿R¼RÀRÊRÑRÎRÍRåRiRéRðRîRìRíRþR    RR RR(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt<module>sb                       ,                                      ,        5            f    )         /        E    B        V