hxp
2025-12-05 a6a1c89452c546273f46994ad64428ebaa031a70
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
˜<2ic@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd d „Zd „Zd d„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#ej$d„Z%d„Z&d„Z'd„Z(d„Z)e*d„Z+d„Z,d„Z-e*d „Z.d!„Z/e*d"„Z0d#„Z1d$„Z2e*d%„Z3d&„Z4d'„Z5d(„Z6d)„Z7e*d*„Z8d+„Z9d,„Z:d-„Z;d.„Z<d/„Z=d0„Z>d1„Z?d2„Z@d3„ZAd4„ZBd5„ZCd6„ZDd7„ZEd8„ZFd9„ZGd:„ZHd;„ZIdd<„ZKdd=„ZLd>„ZMdd?„ZNdS(@iÿÿÿÿNcCs9|jtjƒr5tj|tjdƒt|ƒndS(Ni(tNomalDictGetPropertytChConfigtDef_PDict_HeroAwakeRebirthCntt PlayerControltNomalDictSetPropertytSync_PlayerHeroInfo(t    curPlayer((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt PlayerOnDay#s cCs"t|ƒt|ƒt|ƒdS(N(t Sync_HeroInfoRtSync_LineupRecommendInfo(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnPlayerLogin)s
 
 
cCst|ƒt|ƒdS(N(tOnFirstLoginInitPlayertOnFirstLoginInitHero(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnPlayerFirstLogin/s
 
c     Csx|jƒjtjƒ}|jƒsO|jƒjtjƒ}|jƒsOdSntjddiƒ}|sndStj    d||j
ƒƒxé|j ƒD]Û\}}tj ƒj |ƒ}|sÂq•n|jƒ}|d}|dks•||jƒkrüq•n|j|ƒ}    |    jƒsq•n|r3i|tj6ni}
tj|dd|d|
ƒ} | scq•n|    j| ƒq•WdS(Nt NewRoleInitis³õʼ»¯ÐÂÊÖ¶¨ÖÆ×°±¸: %siRt setAttrDict(tGetItemManagertGetPackt IPY_GameWorldtrptEquiptGetCountt rptIdentifyt IpyGameDataPYtGetFuncEvalCfgt    GameWorldtDebugLogt GetPlayerIDtitemst GetGameDatatGetItemByTypeIDt GetEquipPlacetGetAttIsEmptyt ShareDefinetDef_CItemKey_AppointIDt ItemControlertGetOutPutItemObjt
AssignItem( Rt    equipPackt identifyPacktdefaultEquipInfotequipIDt    appointIDtitemDatat
equipPlacetequipPlaceIndext    destEquipRtcurItem((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR 4s4   
 c        Csû|jƒjtjƒ}tjd|jƒ|jƒƒ|jƒsHdStj    ddiƒ}|sgdStjd||jƒƒtj
}d}xd|j ƒD]V\}}t |||ƒ}i|gtj 6}tj||dttjgd|ƒqWdS(NsOnFirstLoginInitHero: %sRis³õʼ»¯ÐÂÊÖÎ佫: %siiR(RRR!trptHeroRRRRRRt Lineup_MainRtComLineupValuetDef_IudetHeroLineupR#tGivePlayerItemtFalse(    RtcurPacktdefaultHeroInfotlineupIDt    shapeTypetheroIDtposNumt lineupValueR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR Ss      )cCsŸ|jtjdƒ|jtjƒr;|jtjdƒn|jtjƒrc|jtjdƒn|jtjƒr‹|jtjdƒn|jtjƒr³|jtjdƒn|jtj    ƒrØ|j
tj    ƒn|jtj ƒrý|j
tj ƒn|jtj ƒr"|j
tj ƒn|jtj ƒrG|j
tj ƒn|jtjƒrl|j
tjƒn|jtjƒr‘|j
tjƒnt|ƒdS(Nii(t SetUserAttrR!tDef_IudetHeroLVt GetUserAttrtDef_IudetHeroStartDef_IudetHeroBreakLVtDef_IudetHeroAwakeLVtDef_IudetHeroSkintGetUserAttrCounttDef_IudetHeroTalentIDt ClearUserAttrtDef_IudetHeroTalentIDLVtDef_IudetHeroTalentWashLocktDef_IudetHeroTalentWashIDtDef_IudetHeroTalentIDAwakeRandR3tInitHeroTalent(t
singleItem((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt InitHeroItemgs.
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 GetItemTypeIDRtGetIpyGameDatat
GetQualitytGetInitTalentWeightRtGetResultByWeightListtIPY_DatatrangetGetHeroTalentCounttGetHeroTalentByIndext GetTalentIDt GetInitWeighttappendRFR!RERGtgettremovet AddUserAttr(RLR:t heroIpyDatatqualitytqualityIpyDatat initTalentCnttinitTalentWeightt talentIDDictttalentWeightListt
ipyDataMgrtindext talentIpyDatattalentIDt
initWeightt_t randTalentIDt randWeightID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRKƒsB       cCsx|jƒ}tjd|ƒ}|s(dSt||ƒstt||dƒtjd||jƒƒt||gƒndS(NRNisÊ״줻îÎ佫: heroID=%s(    RPRRQtGetHeroActivitetSetHeroActiviteRRRR(RtheroItemR:R_((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnGiveHeroItem¯s cCs|jtj|ƒd}|S(Ni
(RRtDef_PDict_HeroBook(RR:tactState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRn¾sicCs˜|jtj|ƒ}|d}|r9|r0dSd}nd}tj|dd|ƒ}tj|tj||ƒtjd|||f|jƒƒdS(Ni
iis0ÉèÖÃÎ佫¼¤»î״̬:%s,bookState=%s,updBookState=%s(    RRRrRtSetValueRRRR(RR:tisActt    bookStateRst updBookState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRoÄs
    #cCs$|jtj|ƒd}|dkS(Ni
i(RRRr(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(    RRRrRRtRRRR(RR:RuRvRsRw((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroBookInitState×s
    #cCs)|jtj|ƒ}tj|ddƒS(Nii(RRRrRtGetValue(RR:Rv((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(    RRRrRRtRRRR(RR:tstarLVRvRw((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroBookStarLVès
#cCs)|jtj|ƒ}tj|ddƒS(Nii(RRtDef_PDict_HeroBookHRR{(RR:t
bookStateH((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroBookStarLVHðscCs|jtj|ƒ}tj|dd|ƒ}tj|tj||ƒtjd|||f|jƒƒt    ||gƒdS(Niis>ÉèÖÃÎ佫ͼ¼øÐǼ¶ÀúÊ·×î¸ßµÈ¼¶:%s,bookStateH=%s,updBookStateH=%s(
RRRRRtRRRRR(RR:tstarLVHR€t updBookStateH((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroBookStarLVHôs #cCs)|jtj|ƒ}tj|ddƒS(Nii(RRRrRR{(RR:Rv((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(    RRRrRRtRRRR(RR:tbreakLVRvRw((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroBookBreakLVs
#cCs)|jtj|ƒ}tj|ddƒS(Nii(RRRRR{(RR:R€((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroBookBreakLVH    scCs|jtj|ƒ}tj|dd|ƒ}tj|tj||ƒtjd|||f|jƒƒt    ||gƒdS(Niis>ÉèÖÃÎ佫ͼ¼øÍ»ÆÆÀúÊ·×î¸ßµÈ¼¶:%s,bookStateH=%s,updBookStateH=%s(
RRRRRtRRRRR(RR:tbreakLVHR€Rƒ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroBookBreakLVH s #cCs}|jƒjtjƒ}|dks6||jƒkr:dS|j|ƒ}| s\|jƒr`dS|jƒtj    krydS|S(Ni(
RRR!R0RRR tGetTypeRtDef_ItemType_Hero(Rt    itemIndexR6Rp((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt GetHeroItemscCs|jtjƒ}|sdSx^t|ƒddd…D]C}|jtj|ƒ}t|ƒ\}}}||krxq6n|SWdS(Niiÿÿÿÿ(RDR!R3RVtGetUserAttrByIndextGetLineupValue(RpR8t lineupCounttlpIndexR<tlpIDRkR;((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroLineupPosNum!s  cCsƒtjƒj|ƒ}|jƒ}|j}t||ƒ}|sCdS|jƒ}tjd|ƒ}|skdS|j    ƒ}    |j
t j ƒ}
|j
t j ƒ} t|ƒ} tjd||| |    |
| f|ƒ| | krñtjd| |ƒdStjd|    | ƒ} | sdS| d}tjd|    |ƒsMtjd|    |f|ƒdS| jƒ}|scdS|\}}| s}| rdS|jƒjtjƒ}tj|||ƒ\}}|sÕtjd||fƒdStj||||tdƒ|}tjd    |||f|ƒ|jt j |ƒtj|ƒj|gƒtj|tj dƒt!j"|tj#ƒt$j%|t j&dƒdS(
NRNsMÇëÇóÎ佫Éý¼¶: itemIndex=%s,heroID=%s,heroLV=%s,quality=%s,breakLV=%s,LVMax=%ss¸ÃÎ佫ÒÑÂú¼¶£¡LVMax=%st HeroQualityLVis*²»´æÔÚ¸ÃÎ佫µÈ¼¶: quality=%s,nextHeroLV=%ss7²ÄÁϲ»×㣬Î佫ÎÞ·¨Éý¼¶! costItemID=%s, costItemCount=%stHeroLVUPs-Î佫Éý¼¶: itemIndex=%s,heroID=%s,updHeroLV=%s('RtGetPlayerManagertGetPlayerByIndexRt    ItemIndexRŽRPRRQRRR?R!RAR>t GetHeroLVMaxRt GetUPCostItemRRRtrptItemt
ItemCommontGetItem_FromPack_ByIDt
ReduceItemtTrueR=t PlayerOnlinetGetOnlinePlayertOnHeroItemUpatetPlayerActivitytAddDailyTaskValueRtDailyTask_HeroLVUPt
PlayerTaskt AddTaskValuetTaskType_HeroLVUPt PlayerSuccesstDoAddSuccessProgresstSuccType_OSAHeroLVUP(Rgt
clientDatattickRtplayerIDRRpR:R_R`R†theroLVtLVMaxtqualityLVIpyDatat
nextHeroLVt costItemInfot
costItemIDt costItemCounttitemPackt    hasEnought itemIndexListt    updHeroLV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt
OnHeroLVUP7s\             
  cCsu|jƒ}tjd|ƒ}|s(dS|jƒ}|jtjƒ}tjd||ƒ}|sedS|jƒ}|S(NRNitHeroQualityBreak(RPRRQRRR?R!RAtGetLVMax(RpR:R_R`R†tqualityBreakIpyDataR±((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRšjs   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ƒ} | rtjd| |ƒdS|jt jƒ}|jt jƒ}|dksÃ|rátjd||f|ƒdStjd    |    ƒ}|sýdS|jƒ}|jt jƒ}|jt jƒ}t|ƒ}tjd
|    ||||f|ƒ||kr€tjd ||ƒ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=%ss.²ÄÁÏ¿¨¾õÐѵȼ¶²»Îª0ÔÝʱÎÞ·¨ÉýÐÇ£¡useAwakeLV=%sis:²ÄÁÏ¿¨ÒÑÉý¼¶»òÍ»ÆÆÔÝʱÎÞ·¨ÉýÐÇ£¡useHeroLV=%s,useBreakLV=%sRNs2heroID=%s,star=%s,quality=%s,awakeLV=%s,starMax=%ss¸ÃÎ佫ÒÑÂúÐÇ£¡starMax=%ssIÎ佫ÉýÐÇ: itemIndex=%s,heroID=%s,star=%s,useStar=%s,addStar=%s,updStar=%st
HeroStarUP(RR—R˜RR™t UseItemIndexRŽRPRt GetIsLockedRDR!RItErrLogRJR?RBR>RARRQRRR@tGetHeroStarMaxRtDelItemRR5t DoHeroUpdStar(RgR­R®RR¯Rt useItemIndexRptuseItemR:t    useHeroIDt    washIDCntt awakeRandCntt
useAwakeLVt    useHeroLVt
useBreakLVR_R`tstartawakeLVtstarMaxtuseStartaddStartupdStar((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroStarUP€sl                   # 
 
    c CsÞ|jƒ}tjd|ƒ}|s(dS|jƒ}tjd|ƒ}|sPdS|jƒ}|jtjƒ}|sx|Sd}tjd|ƒ}|rÐx7|D],}    |    j    ƒ|kr¹Pn||    j
ƒ7}qWn||}
|
S(NRNiROt    HeroAwake( RPRRQRRtGetInitStarUpperR?R!RBtGetIpyGameDataListNotLogt
GetAwakeLVtGetAddStarUpper( RpR:R_R`Rat InitStarUpperRÏt addStarUppertheroAwakeIpyDataListtipyDataRÐ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRùs*    
c
Cs|jƒ}|jtjƒ}||}|jƒ}|jtj|ƒ|dkr¥t||ƒtj|t    j
|ƒt j |t    j |ƒtj|tj|ƒn|r¸|jƒn|jƒ}tj|ƒj|gƒt||ƒ}    ||    kr t|||ƒndS(Ni(RPR?R!R@tGetItemR=t__DoHeroStarTalentUpR¤R¥RtDailyTask_HeroStarUPR§R¨tTaskType_HeroStarUPRªR«tSuccType_OSAHeroStarUPt    Sync_ItemtGetItemPlaceIndexR¡R¢R£RR„(
RRpRÓtisSyncR:tcurStarRÒtitemRR‚((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRÅÕs$ 
      c CsK|jƒ}tjddƒ}tjddƒ}|}tjd|ƒ}|r§|jtjƒ}xD|| ddd…D](}|jƒ}    |    rx|    rx|    }PqxqxWn|jtj    ƒ}
|jtj
ƒ} gg} } g}g}t }x™t t |
| ƒƒD]‚}|jtj    |ƒ}|jtj
|ƒ}| j|ƒ| j|ƒ||kr|j|ƒ||kr‚|j|ƒq‚qqWt| ƒ|krÑ| dg|t| ƒ7} | dg|t| ƒ7} ntjd|ƒtjd| | |fƒtjd    ||fƒd| kr’i}g}tjƒ}xpt |jƒƒD]\}|j|ƒ}|jƒ}|| kr}qJn|jƒ}|j||gƒ|||<qJWtjd
|ƒxÔt |ƒD]Ã}d| krÞPntj|ƒ}|sùqÈn|j|dƒ|g}||kr-|j|ƒn| jdƒ}|| |<d| |<|j|ƒ|j|ƒtjd |ƒ|d8}t}qÈWn|dkrµxt |ƒD]}|s»Pn|rÐtj|ƒn tj|ƒ}|| krñq«n| j|ƒ}| |}||krG|d7}|| |<tjd |||fƒn||kr¨||kro|j|ƒn||kr‹|j|ƒntjd |||fƒnt}q«Wn|s¿dStjd| | fƒ|jtj    ƒ|jtj
ƒxNt | ƒD]@\}}|sPn|j!tj    |ƒ|j!tj
| |ƒqWdS(NtHeroStarTalentiiRÕiÿÿÿÿis"Ö´ÐÐÎ佫ÐǼ¶Ì츳µÈ¼¶ÌáÉý: addLV=%ss2µ±Ç°ÐǼ¶Ì츳: idList=%s,lvList=%s,maxUnlockSlot=%ss,δÂú¼¶ÐǼ¶Ì츳ID: %s,unfullLVIDListUnlock=%ss³£¹æ¿Õ²ÛλÔö¼ÓÌ츳Êý£º%ssÐÂÔöÐǼ¶Ì츳ID: %ss#Éý¼¶ÐǼ¶Ì츳ID: %s,idLV=%s,index=%ss<    ÒƳýÂú¼¶ID: %s,unfullLVIDList=%s,unfullLVIDListUnlock=%ss!¸üÐÂÐǼ¶Ì츳: idList=%s,lvList=%s("RPRt
GetFuncCfgR×R?R!RBtGetUnlockTalentSlotRDRERGR5RVtminRR[tlenRRRURWRXRYt GetWashWeightRTR\R]RgR trandomtchoiceRFt    enumerateR^( RLtaddLVR:tcommTalentSlott talentMaxLVt maxUnlockSlottawakeIpyDataListRÏRÝtunlockTalentSlottidCounttlvCounttidListtlvListtunfullLVIDListtunfullLVIDListUnlockthaveUpRgRittalentLVt idWeightDictReRfRhtweightRkRlRmt    zeroIndextrandIDt    randIndextidLV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRßís¼                 
 
 
  $ 
 
 
    cCs>tjƒj|ƒ}|jƒ}|j}t||ƒ}|sCdS|jƒ}tjd|ƒ}|skdS|j    ƒ}    |j
t j ƒ}
|j
t j ƒ} tjd|||    |
| f|ƒtjd|    | ƒ} | sÝdS| jƒ} |
| krtjd|
| f|ƒdS| d}tjd|    |ƒsPtjd|    | f|ƒdS| jƒ}|sfdS|\}}| s€| r„dS|jƒjtjƒ}tj|||ƒ\}}|sØtjd||fƒdStj||||tdƒtjd    |||f|ƒt|||ƒtj|ƒj|gƒdS(
NRNsDÇëÇóÎä½«Í»ÆÆ: itemIndex=%s,heroID=%s,quality=%s,heroLV=%s,breakLV=%sR¼s Î´Âú¼¶£¬ÎÞ·¨Í»ÆÆ: heroLV=%s < %sis%Í»ÆÆµÈ¼¶ÒÑÂú¼¶: quality=%s,breakLV=%ss7²ÄÁϲ»×㣬Î佫ÎÞ·¨Í»ÆÆ! costItemID=%s, costItemCount=%st    HeroBreaks/Îä½«Í»ÆÆ: itemIndex=%s,heroID=%s,nextBreakLV=%s(RR—R˜RR™RŽRPRRQRRR?R!R>RARR½R›RRRRœRRžRŸR tSetHeroBreakLVR¡R¢R£(RgR­R®RR¯RRpR:R_R`R°R†RÝR±t nextBreakLVR´RµR¶R·R¸R¹((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroBreakfsT             
  cCsp|jƒ}|jƒ}|jtj|ƒ|r>|jƒnt||ƒ}||krlt|||ƒndS(N(RPRÞR=R!RARãRˆRŠ(RRpR†RåR:RçR‰((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR“s    c    Csbtjƒ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||ƒtj|ƒj|gƒdS( NRNsDÇëÇóÎ佫¾õÐÑ: 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,nextAwakeLV=%s(RR—R˜RR™RŽRPRRQRRR?R!R@RBRRéR›RRRRœRRžRŸR tSetHeroAwakeLVR¡R¢R£(RgR­R®RR¯RRpR:R_R`R}RÏtawakeLimitStarRòRÝt nextAwakeLVR´RµR¶R·R¸R¹((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroAwake§sV           
   cCs@|jƒ}|jtj|ƒt|ƒ|r<|jƒndS(N(RÞR=R!RBtunlockTalentSlotByAwakeRã(RpRÏRåRç((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR
Õs  
 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(RPR?R!RBRR×RêRDRERéRJRVRR[RRRURWRXRYtGetAweakWeightRTR\R]R^(RLR:RÏRõRôRÝRöR÷RòRÊRùRgRiRÿReRfRhRt randTalentCntRkRlRm((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRÞsb         cCs;tjƒj|ƒ}|j}|j}t|||ƒdS(N(RR—R˜R™t SelectIndextdoSelectAwakeTalent(RgR­R®RRt selectIndex((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnHeroAwakeSelectTalent#s
        cCs—|jƒ}t||ƒ}|s%dS|jƒ}|jtjƒ}| sV||krwtjd|||f|ƒdS|jtj|ƒ}|s–dS|j    ƒ}    |    jtj
ƒ}
|    jtj ƒ} gg} } xat t |
| ƒƒD]J}|    jtj
|ƒ}|    jtj |ƒ}| j|ƒ| j|ƒqéWtjddƒ}|
|kr‚| dg||
7} | dg||
7} n|| kr²tjd|||| f|ƒdS| j|ƒ| jdƒ|    jtjƒtjd|| | fƒ|    jtj
ƒ|    jtj ƒxDt| ƒD]6\}}|    jtj
|ƒ|    jtj | |ƒq#Wt|    ƒ|rz|jƒntj|ƒj|gƒ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ŽRPRDR!RJRRRRÞRERGRVRëR[RRéRÂRFRðR^RRãR¡R¢R£(RRRRåR¯RpR:RÊtselectTalentIDRLR÷RøRùRúRgRiRþRò((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR*sV             
 cCsžtjƒj|ƒ}|j}|j}|j}t||ƒ}|sIdS|dkrht|||ƒn2|dkr‡|jt    j
ƒnt ||||ƒdS(Nii( RR—R˜R™tLockTalentIndexstOPTypeRŽtHeroTalentWashReplaceRFR!RItHeroTalentWash(RgR­R®RRtlockTalentIndexstopTypeRp((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt
OnHeroWashis              cCsÃ|jƒ}tjd|||fƒ|jtjƒ}|rStjd|ƒdStjddƒ}tj    ddƒ}|sdS|j
ƒ}|jtj ƒ}    xH|ddd…D]3}
|
|    kr³|j |
ƒtjd|
ƒq³q³Wt |ƒ} t |ƒ| kr|| n|d} tjd|| |fƒ|jƒjtjƒ} tj|| | ƒ\}}|sŠtjd    || fƒdStj|| || td
ƒg}xRt|    ƒD]D}||krð|jtj |ƒ}|j|ƒq¹|jd ƒq¹Wtjd |ƒi}g}tjƒ}xpt|jƒƒD]\}|j|ƒ}|jƒ}||krpq=n|jƒ}|j||gƒ|||<q=Wxt|ƒD]q\}}|rÂqªntj|ƒ}|sÝqªn|j |d ƒ|g}||kr|j |ƒn|||<qªWtjd |ƒ|j!tjƒx!|D]}|j"tj|ƒqGW|j!tj#ƒx!|D]}|j"tj#|ƒq{W|j$ƒtjd||||fƒdS(Ns4Î佫ϴÁ¶: itemIndex=%s,heroID=%s,lockTalentIndexs=%ss*Î佫ϴÁ¶½á¹ûδ´¦Àí£¬ÎÞ·¨Ï´Á¶! washIDCnt=%stHeroWashiiiÿÿÿÿs"È¥³ý²»´æÔÚµÄËø¶¨Ë÷Òý: lockIndex=%ss6washItemID=%s,washCostItemCount=%s,lockTalentIndexs=%ss>Ï´Á¶²ÄÁϲ»×㣬Î佫ÎÞ·¨Ï´Á¶! washItemID=%s,washCostItemCount=%sRis
Ï´Á¶Ç°: %ss
Ï´Á¶ºó: %ssFÎ佫ϴÁ¶½á¹û! itemIndex=%s,heroID=%s,washIDList=%s,lockTalentIndexs=%s(%RPRRRDR!RIRÂRRéRRÞRER]RìRRRRœRRžRŸR RVRR[RURWRXRYRíRðRTR\RFR^RHRã(RRRpRR:RÉt
washItemIDtlockCostItemListRLR÷t    lockIndextlockCnttwashCostItemCountR·R¸twashItemIndexListt
washIDListRgRiRÿReRfRhRRlRm((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR|s€     &        
    c    Csþ|jƒ}|jƒ}|jtjƒ}|sKtjd||fƒdSg}|jtjƒxIt    |ƒD];}|j
tj|ƒ}|j |ƒ|j tj|ƒqnW|jtjƒ|j ƒtjd|||fƒtj|ƒj|gƒdS(Ns.Î佫ûÓÐÏ´Á¶²»ÐèÒªÌæ»»! itemIndex=%s,heroID=%ss2Î佫ϴÁ¶Ìæ»»! itemIndex=%s,heroID=%s,washIDList=%s(RPRÞRDR!RIRRÂRFRERVRR[R^RãRR¡R¢R£(    RRRpR:RLR÷R$RgRi((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRÌs"   
c Cs'tjƒ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|ƒtj|ƒj|gƒdS(NRNis*¸ÃÎ佫²»´æÔÚ¸ÃÆ¤·ô! heroID=%s,skinIndex=%sis5¸ÃÎ佫Ƥ·ôδ½âËø! heroID=%s,skinIndex=%s,skinState=%s(RR—R˜R™t    SkinIndexRŽRPRRQt GetSkinIDListRìRRRtDef_PDict_HeroSkintpowR=R!RCR¡R¢R£( RgR­R®RRt    skinIndexRpR:R_t
skinIDListt    skinState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnHeroWearSkinís,           cCsË|jtj|ƒ}|rX|td|ƒB}tjd||||f|jƒƒn;tj||dƒ}tjd||||f|jƒƒtj    |tj||ƒt
||gƒt |ƒdS(Nis=¼¤»îÎ佫Ƥ·ô: heroID=%s,skinIndex=%s,skinState=%s,updState=%sis=ʧЧÎ佫Ƥ·ô: heroID=%s,skinIndex=%s,skinState=%s,updState=%s( RRR'R(RRRt SetBitValueRRRtRefreshLordAttr(RR:R)tisActiveR+tupdState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytActiveHeroSkins         
cCsptjƒj|ƒ}|j}|j}|dkrCt||ƒn)|dkr_t||ƒn t||ƒdS(Nii(RR—R˜tHeroIDtBookTypet__doHeroBookStarLVUPt__doHeroBookBreakLVUPt__doHeroBookAct(RgR­R®RR:tbookType((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroBookUPs           cCsd}tjƒ}xft|jƒƒD]R}|j|ƒ}|jƒ}|jƒsXq%nt||ƒsmq%n|d7}q%W|S(Nii(RRURVt GetHeroCounttGetHeroByIndext    GetHeroIDtGetPlayerCanUseRy(RtbookCntRfRgRÝR:((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroBookActCnt,s   c
    Csy|jƒ}t||ƒr3tjd||ƒdStjd||ƒtjd|ƒ}|scdS|jƒ}tjd|ƒ}|s‹dSt||ƒdkr¸tjd||ƒdSt||dƒ|j    ƒ}|r&t
|ƒdkr&|\}}|r&|r&t j |||dd    t ƒq&nt||gƒt|ƒt|ƒ}    tj|tjƒtj|tj|    ƒdS(
Ns¸ÃÎ佫ͼ¼øÒѼ¤»î! heroID=%ssÎ佫ͼ¼ø¼¤»î! heroID=%sRNROis%Î佫δ»ñµÃ¹ý£¬²»¿É¼¤»îͼ¼ø! heroID=%sit HeroBookActt notifyAward(RRyRRRRQRRRnRztGetBookActAwardMoneyRìRt    GiveMoneyR RR.R>R§t UpdTaskValueRtTaskType_HeroBookRªtUptateSuccessProgressR!tSuccType_OSAHeroBook(
RR:R¯R_R`RatawardMoneyInfot    moneyTypet
moneyValueR=((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR6:s6     "
 cCsÍ|jƒ}t||ƒs3tjd||ƒdSt||ƒ}t||ƒ}||kr~tjd|||f|ƒdStjd|||f|ƒt|||dƒt||gƒt|ƒdS(Ns¸ÃÎ佫ͼ¼øÎ´¼¤»î! heroID=%ss?¸ÃÎ佫ͼ¼øÐǼ¶ÒѴﵱǰӢÐÛ×î¸ßÐǼ¶! heroID=%s,bookStar=%s >= %ss4Î佫ͼ¼øÐǼ¶Éý¼¶! heroID=%s,bookStar=%s,bookStarH=%si(    RRyRRR|RR~RR.(RR:R¯tbookStart    bookStarH((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR4\s  
cCsÍ|jƒ}t||ƒs3tjd||ƒdSt||ƒ}t||ƒ}||kr~tjd|||f|ƒdStjd|||f|ƒt|||dƒt||gƒt|ƒdS(Ns¸ÃÎ佫ͼ¼øÎ´¼¤»î! heroID=%ssJ¸ÃÎ佫ͼ¼øÍ»ÆÆµÈ¼¶ÒѴﵱǰӢÐÛ×î¸ßÍ»ÆÆµÈ¼¶! heroID=%s,bookBreakLV=%s >= %ss:Î佫ͼ¼øÍ»ÆÆÉý¼¶! heroID=%s,bookBreakLV=%s,bookBreakLVH=%si(    RRyRRR…RˆR‡RR.(RR:R¯t bookBreakLVt bookBreakLVH((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR5ns  
cCs]tjƒj|ƒ}|j}|j}t||ƒ}|s@dS|j|rRdndƒdS(Nii(RR—R˜R™tIsLockRŽt SetIsLocked(RgR­R®RRtisLockRp((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt
OnHeroLockˆs        cCs[tjƒj|ƒ}|j}t||ƒ}|s7dS|jtjƒ}|jtjƒ}|jtj    ƒ}|dkrœ| rœ| rœtj
d|ƒdS|rö|j t j ƒ}    tjddƒ}
|
rö|    |
krötj
d|    |
fƒdSn|jƒ} tjd| ƒ} | sdS| jƒ} tjd| |ƒ}|rQ|jƒnd}tjddƒ}tttjdd    ƒƒƒ}||}tj
d
|| | ||||||f    ƒ|rã|rãtj|||ƒ rãdStjdd ƒ}i}t| |||ƒt| |||ƒt| |||ƒ|r]|r]tj|||dƒ r]dS|jƒ}|jtjdƒ|jtjdƒ|jtj    dƒ|j ƒ|rÿg|j!ƒD]\}}||g^q¿}t"j#||d dt$igƒn|r>|j t j ƒ}    tj%|t j |    dƒt&|ƒnt'j(|ƒj)|gƒdS( Nis8¸ÃÎ佫δ½øÐйýµÈ¼¶Í»ÆÆ¾õÐÑÅàÑø£¬²»ÐèÒªÖØÉú! itemIndex=%st HeroRebirthis5½ñÈÕ¾õÐѹýµÄÎ佫֨Éú´ÎÊýÒÑ´ïÉÏÏÞ! rebirthCnt=%s >= %sRNR    iisdÎ佫֨Éú: itemIndex=%s,heroID=%s,quality=%s,heroLV=%s,breakLV=%s,awakeLV=%s,costMoneyTotal=%s(%s+%s)itevent(*RR—R˜R™RŽR?R!R>RARBRRRRRRéRPRQRRtGetIpyGameDataNotLogtGetRebirthCostMoneytinttevaltGetFuncCompileCfgRt    HaveMoneyt__calcHeroLVReturnitemt__calcHeroBreakReturnitemt__calcHeroAwakeReturnitemtPayMoneyRÞR=RãRR#tGivePlayerItemOrMailR5RRR¡R¢R£(RgR­R®RRRpR°R†RÏt
rebirthCntt rebirthCntMaxR:R_R`tqualityAwakeIpyDatatawakeCostMoneyRHt lvCostMoneytcostMoneyTotaltratiotreturnItemDictRçtktvtreturnItemList((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroRebirth™sh      
    #"% 
+" c
CsÚi}x­td|ƒD]œ}tjd||ƒ}|s=qn|jƒ}|sUqn|\}}    tdt|    |dƒƒ}    |j|dƒ|    ||<|j|dƒ|    ||<qWtjd|||||fƒdS(NiR•gY@is3    µÈ¼¶·µ»¹: quality=%s,heroLV=%s,ratio=%s,%s,×Ü%s(    RVRRQR›tmaxRVR\RR(
R`R°RfRet
returnDicttretLVR²R´RµR¶((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRZÙs   c
CsÚi}x­td|ƒD]œ}tjd||ƒ}|s=qn|jƒ}|sUqn|\}}    tdt|    |dƒƒ}    |j|dƒ|    ||<|j|dƒ|    ||<qWtjd|||||fƒdS(NiR¼igY@s4    Í»ÆÆ·µ»¹: quality=%s,breakLV=%s,ratio=%s,%s,×Ü%s(    RVRRQR›RkRVR\RR(
R`R†RfReRlt
retBreakLVR¾R´RµR¶((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR[ês   c
CsÚi}x­td|ƒD]œ}tjd||ƒ}|s=qn|jƒ}|sUqn|\}}    tdt|    |dƒƒ}    |j|dƒ|    ||<|j|dƒ|    ||<qWtjd|||||fƒdS(NiR    igY@s4    ¾õÐÑ·µ»¹: quality=%s,awakeLV=%s,ratio=%s,%s,×Ü%s(    RVRRQR›RkRVR\RR(
R`RÏRfReRlt
retAwakeLVRaR´RµR¶((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR\ûs   c Cs|tjƒj|ƒ}|j}tjd|ƒtjddƒ}g}i}|jƒjt    j
ƒ}x}|D]u}    |    dksl|    |j ƒkr–qln|j |    ƒ}
|
sl|
j ƒr¾qln|
jt    jƒ} | rótjd|    | fƒqln|
jƒrtjd|    ƒqln|
jt    jƒ} | rygt| ƒD]} |
jt    j| ƒ^q;}tjd|    |fƒqln|
jƒ}tjd|ƒ}|s£qln|jƒ}|
jt    jƒ}|
jt    jƒ}|
jt    jƒ}tjd    |ƒ}|sqlntjd
|    |||||fƒ|jƒ}xS|D]K\}}td t|d ||d ƒƒ}|j|dƒ|||<q9Wtjd |||||fƒt||||ƒt ||||ƒ|j!|    |
gƒqlW|sïdSx3|D]+\}    }
t"j#||
|
j ƒt$dƒqöW|rxg|j%ƒD]\}}||g^q8}t&j'||ddt$igƒndS(NsÎ佫Dzɢ: itemIndexList=%sRRiis7¾õÐѹýµÄÎ佫ÐèÏÈÖØÉúºó²Å¿ÉDzɢ! itemIndex=%s,awakeLV=%ss Ëø¶¨µÄÎ佫ÎÞ·¨Ç²É¢! itemIndex=%ss5ÉÏÕóÖеÄÎ佫ÎÞ·¨Ç²É¢! itemIndex=%s,lineupValueList=%sRNROsHDzɢ: itemIndex=%s,heroID=%s,quality=%s,heroLV=%s,breakLV=%s,heroStar=%sigY@s5    ÐǼ¶·µ»¹: quality=%s,heroStar=%s,ratio=%s,%s,×Ü%st HeroDismissRS((RR—R˜t ItemIndexListRRRéRRR!R0RRR R?RBRÁRDR3RVRRPRQRRR>RAR@tGetDismissReturnItemsRkRVR\RZR[R[RRÄR5RR#R^(RgR­R®RR¹RetdismissItemListRfR6RRpRÏR‘R’tlineupValueListR:R_R`R°R†theroStarRatdismissReturnItemstitemIDt    itemCountt
starRetCntRgRhRi((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroDismisssj      .  # % #+"cCsItjƒj|ƒ}|j}|j}|j}i}g}xI|D]A}    |    j}
|    j} | |krmqCn|j| ƒ| ||
<qCW|t    j
kr¬tj d|ƒdStj d||f|j ƒƒ|j ƒjt    jƒ} d} i}xût| jƒƒD]ç}| j|ƒ}| s|jƒr1qn|jt    jƒ}|sOqn|jƒ}xŒt|ƒddd…D]q}|jt    j|ƒ}t|ƒd|kr¬qun|jt    j|ƒ| d7} | t    jkrÜPn|||<quWqWg}i}xü|jƒD]î\}
} | dks| | jƒkr7qn| j| ƒ}| s|jƒr_qn|jƒ}||kr”tj d| |fƒqn|j|ƒ|jƒ}t|||
ƒ}|jt    j|ƒ| |krë||| <n|
|| <qWx|jƒD]}|j ƒqWt!j"|ƒj#|t$ƒ}|j%||ƒdS(Ns#²»´æÔÚ¸ÃÕóÈÝ£¬ÎÞ·¨±£´æ! lineupID=%ss±£´æÕóÈÝ: lineupID=%s, %siiÿÿÿÿis,ͬ¸öÎ佫ֻÄÜÉÏÕóÒ»¸ö! itemIndex=%s,itemID=%s(&RR—R˜tLineupIDt    ShapeTypet HeroPosListtPosNumR™R[R!t
LineupListRRRRR0RVRRR RDR3RÞRRt DelUserAttrt LineupObjMaxRRPR2R^tvaluesRãR¡R¢t    GetLineupR5t    UpdLineup(RgR­R®RR8R9t heroPosListt heroPosDictt    indexListtposInfoR;RR6tdelCountt syncItemDictRpR‘RçR’R<t
heroIDListt heroItemDictRwtsyncItemtlineup((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnHeroLineupSave`sz                          
      cCs|d|d|S(Ni'id((R8R9R;((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR2¬scCs/|d}|dd}|d}|||fS(Ni'id((R<R8R9R;((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR­s
 
c Cs¸tj|ƒ}|jtj|ƒ}|td|ƒ@rStjd||fƒdStjd|ƒ}|sodS|j    ƒ}|t
|ƒkr‘dS||}tjd|ƒ}|s·dS|j ƒ}tjd|ƒ}    |    sßdS|    j ƒ}
|
st
|
ƒdkrdS|
\} } t ||ƒdkr>tjd|ƒdS|td|ƒO}tj|tj||ƒtjd||||fƒtj|| | dd    tƒt||gƒdS(
Nis+ÕóÈÝÍÆ¼ö½±ÀøÒÑÁìÈ¡! recommendID=%s,index=%stLineupRecommendRNROis)Î佫δ»ñµÃ¹ý£¬²»¿É¼¤»îÕóÈÝÍÆ¼ö! heroID=%ss=ÕóÈÝÍÆ¼öÁì½±! recommendID=%s,index=%s,heroID=%s,awardState=%sR@(RtToIntDefRRtDef_PDict_HeroRecommendR(RRRQt GetHeroIDListRìRRtGetRecommendAwardMoneyRnRRRBR R    ( Rt recommendIDRgt
awardStateRÝR‹R:R_R`RaRGRHRI((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetLineupRecommendAward¹s@ 
   cCs!t|ƒtj|ƒjƒdS(N(tCalcHeroAddAttrR¡R¢tRefreshRoleAttr(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR.Üs
cCsai}|jƒ}tjƒ}x t|jƒƒD]ø}|j|ƒ}|jƒ}|jƒsdq1nt||ƒsyq1n|j    ƒ}tj
d|ƒ}|s£q1n|j ƒ}    |j ƒ}
|j ƒ} t||ƒ} t||ƒ} xAtjD]6}|    | |
| | }|j|dƒ|||<qïWq1Wtjd||ƒtj|ƒjtj|ƒdS(NROisÎ佫ͼ¼øÊôÐÔ: %s(tGetIDRRURVR9R:R;R<RyRRRQtGetBookInitAddPertGetBookStarAddPertGetBookBreakLVAddPerR|R…RtBaseAttrPerIDListR\RRR¡R¢t SetCalcAttrtDef_CalcAttr_HeroBook(RtheroBookAttrDictR¯RfRgRÝR:R`RatbookInitAddPertbookStarAddPertbookBreakLVAddPerRJRLt    attrPerIDtaddPer((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR˜âs2        "c CsÜ|dkr|}ncg}tjƒ}xNt|jƒƒD]:}|j|ƒ}|jƒsaq:n|j|jƒƒq:W|s‚dSg}x |D]}tj    d|ƒ}|s³qn|dkró|j
t j |ƒ ró|j
t j |ƒ róqntjƒ}    ||    _|j
t j|ƒ|    _|j
t j |ƒd|    _t||ƒ|    _t||ƒ|    _t||ƒ|    _t||ƒ|    _|j|    ƒqW|s¡dStjƒ}
||
_t|
jƒ|
_t j!||
ƒdS(NRNi
("tNoneRRURVR9R:R<R[R;RQRRRrRtChPyNetSendPackt    tagSCHeroR2R't    SkinStatet BookInitStateR|t
BookStarLVR…t BookBreakLVRt BookStarLVHRˆt BookBreakLVHt tagSCHeroInfot HeroInfoListRìtHeroCntt NetPackCommont SendFakePack( RR‹tsyncHeroIDListRfRgRÝt syncInfoListR:R_therot
clientPack((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRsF        #          c Csa|r|g}n    tj}g}tj|ƒ}xé|D]á}|j|tƒ}|s[q7nd„|jjƒDƒ}g}xOtddtj    ƒD]7}||kr»|j
||dƒq‘|j
dƒq‘Wt j ƒ}    |j |    _|j|    _||    _t|    jƒ|    _|j
|    ƒq7W|s&dSt jƒ}
||
_t|
jƒ|
_tj||
ƒdS(NcSsi|]\}}||“qS(((t.0RgRh((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pys
<dictcomp>:s    ii(R!RR¡R¢RƒR5RŒRRVRR[R¨t tagSCLineupR8R{R9R|tHeroItemIndexListRìR²ttagSCLineupInfot    LineupCntR³R´( RR8t
syncIDListt
lineupListtolPlayerRŽtposNumItemIndexDicttheroItemIndexListR;t
packLineupR¸((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt Sync_Lineup-s8                   cCs5tjƒ}|jtjƒ|_tj||ƒdS(N(R¨ttagSCPlayerHeroInfoRRRtAwakeRebirthCntR³R´(RR¸((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRQs c
Csýg}tjƒ}x£t|jƒƒD]}|j|ƒ}|jƒ}|jtj|ƒ}|dkr}||kr‰q%q‰n |s‰q%nt
j ƒ}||_ ||_ |j|ƒq%W|sÂdSt
jƒ}    ||    _t|    jƒ|    _tj||    ƒdS(N(RRURVtGetLineupRecommendCounttGetLineupRecommendByIndextGetRecommendIDRRR’R§R¨ttagSCLineupRecommendt RecommendIDt
AwardStateR[ttagSCLineupRecommendInfot RecommendListRìtCountR³R´(
RR¾t recommendListRfRgRÝR•R–t    recommendR¸((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR    Xs,                      (ORR!RRR#RªR¨R¤R³RR¡R§RRRîRR
R R R RMRKRqRnRoRyRzR|R~RR„R…R‡RˆRŠRŽR1R”R»RšRÔRÃR RÅRßRRR R
RRRRRRR,R1R8R>R6R4R5RQRjRZR[R\RzRR2RR—R.R˜R§RRÄRR    (((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt<module>s–                                           ,                                                               3        9         y    -     .         E     ?        P    !                  "                @                L    L             #          + $