hxp
1 天以前 61858f83c52f2b3973f40befaaca76bc642958eb
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
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
ÅРjc@sâddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZd„Zd„Zd„Zd„Zd„Zdd„Zdd„Zd    „Zd
„Zd d „Zd „Z d d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&d„Z'd„Z(d„Z)d„Z*d„Z+dd„Z,e-d„Z.d„Z/d„Z0d„Z1d„Z2d„Z3e-d „Z4d!„Z5e-d"„Z6d#„Z7d$„Z8e-d%„Z9d&„Z:d'„Z;d(„Z<d)„Z=d*„Z>d d+„Z?d,„Z@d-„ZAd.„ZBd/„ZCd0„ZDd1„ZEd2„ZFd3„ZGd4„ZHd5„ZId6„ZJd7„ZKd8„ZLd9„ZMd:„ZNd;„ZOd<d=„ZPd>„ZQd?„ZRd@„ZSdA„ZTdB„ZUdC„ZVdD„ZWdE„ZXdF„ZYdG„ZZdH„Z[dI„Z\dJ„Z]dK„Z^ddL„Z_ddM„Z`dN„ZaddO„ZbddP„ZcdS(Qiÿÿÿÿ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 cCs6t|ƒt|ƒt|ƒt|ƒt|ƒdS(N(t Sync_HeroInfoRtSync_LineupRecommendInfotSync_HeroFatesInfot__CheckOSAHeroStar(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.pytOnPlayerFirstLogin7s
 
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 <s4   
 c        Csø|jƒjtjƒ}tjd|jƒ|jƒƒ|jƒsHdStj    ddiƒ}|sgdStjd||jƒƒd}d}xd|j
ƒD]V\}}t |||ƒ}i|gtj 6}t j||dttjgd|ƒqšWdS(NsOnFirstLoginInitHero: %sRis³õʼ»¯ÐÂÊÖÎ佫: %siiR(RRR#trptHeroRRRRRRRtComLineupValuetDef_IudetHeroLineupR%tGivePlayerItemtFalse(    RtcurPacktdefaultHeroInfotpresetIDt    shapeTypetheroIDtposNumt lineupValueR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR[s  )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ƒn|j    tjƒr¹|j tjƒnt||ƒdS(Nii(t SetUserAttrR#tDef_IudetHeroLVt GetUserAttrtDef_IudetHeroStartDef_IudetHeroBreakLVtDef_IudetHeroAwakeLVtDef_IudetHeroSkintDef_IudetHeroSkinAttrtGetUserAttrCounttDef_IudetHeroTalentIDt ClearUserAttrtDef_IudetHeroTalentIDLVtDef_IudetHeroTalentWashLocktDef_IudetHeroTalentWashIDtDef_IudetHeroTalentIDAwakeRandR4tInitHeroTalent(t
singleItemR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt InitHeroItemos2 cCsm|dkri}n|jƒ}tjd|ƒ}|s=dS|jƒ}tjd|ƒ}|sedSg}|jtjƒ}|dkrÑtjd|ƒ}|rÑ||jƒ7}t    j
d|||fƒqÑnd}    |j ƒ}
|
rþt    j |
dƒ}    ni} g} tj ƒ} xpt| jƒƒD]\}| j|ƒ}|jƒ}|jƒ}||krhq)n| j||gƒ|| |<q)Wx†t|    ƒD]x}t|ƒ|    kr²Pnt    j | ƒ}|sÍq–n| j|dƒ|g}|| kr| j|ƒn|j|ƒq–W|jtjƒ|jtjƒx4|D],}|jtj|ƒ|jtjdƒq9WdS(s+³õʼ»¯²ÛλÌ츳£¬²»Í¬²ÛλÌ츳ID²»ÄÜÒ»Ñù
    tHeroNt HeroQualityit AppointHeros)¶¨ÖÆÎ佫Ì츳ID: heroID=%s,appointID=%s,%si(tNonet GetItemTypeIDRtGetIpyGameDatat
GetQualitytgetR#R$tGetTalentIDListRRtGetInitTalentWeighttGetResultByWeightListtIPY_DatatrangetGetHeroTalentCounttGetHeroTalentByIndext GetTalentIDt GetInitWeighttappendtlentremoveRHRGRIt AddUserAttr(RNRR;t heroIpyDatatqualitytqualityIpyDatatheroTalentIDListR,tappointIpyDatat initTalentCnttinitTalentWeightt talentIDDictttalentWeightListt
ipyDataMgrtindext talentIpyDatattalentIDt
initWeightt_t randTalentIDt randWeightID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRMs`                cCs›|jƒ}tjd|ƒ}|s(dSt||ƒs—t||dƒtjd||jƒƒt||gƒt    j
|ƒj |ƒt j |ƒndS(NRPisÊ״줻îÎ佫: heroID=%s(RTRRUtGetHeroActivitetSetHeroActiviteRRRRt PlayerOnlinetGetOnlinePlayertOnHeroItemUpatetOpenServerActivitytUpdOSA_HeroTrainBillboard(RtheroItemR;Re((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.pyRvÝsicCs˜|jtj|ƒ}|d}|r9|r0dSd}nd}tj|dd|ƒ}tj|tj||ƒtjd|||f|jƒƒdS(Ni
iis0ÉèÖÃÎ佫¼¤»î״̬:%s,bookState=%s,updBookState=%s(    RRRRtSetValueRRRR(RR;tisActt    bookStateR€t updBookState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRwãs
    #cCs$|jtj|ƒd}|dkS(Ni
i(RRR(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(    RRRRRRRRR(RR;R‚RƒR€R„((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroBookInitStateös
    #cCsXtjd|ƒ}|stS|jƒ}|s2tStjƒjtj    ƒd}||kS(NRPi(
RRUR6tGetOpenCollectionDaytTruet    DBDataMgrtGetEventTrigMgrtGetValueR#t Def_ServerDay(R;RetOpenCollectionDayt    ServerDay((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroBookOpens cCs|jtj|ƒdS(Ni
(RRtDef_PDict_HeroSkinInfo(RtskinID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroSkinStatescCsK|jtj|ƒ}|ddtd|ƒ}tj|tj||ƒS(Ni
i(RRR‘tminRR(RR’tstatetinfo((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroSkinStatescCs|jtj|ƒdS(Ni
(RRR‘(RR’((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroSkinStarscCsB|jtj|ƒ}|d|d}tj|tj||ƒS(Ni
(RRR‘RR(RR’tstarR–((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroSkinStarscCs}|jƒjtjƒ}|dks6||jƒkr:dS|j|ƒ}| s\|jƒr`dS|jƒtj    krydS|S(Ni(
RRR#R2RR!R"tGetTypeRtDef_ItemType_Hero(Rt    itemIndexR7R}((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt GetHeroItemscCs_|jtjƒ}|sgSg}x6t|ƒD](}|jtj|ƒ}|j|ƒq/W|S(N(RFR#tDef_IudetHeroEffPresetIDR\tGetUserAttrByIndexRa(R}t    dataCountteffPresetIDListtlpIndexR9((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroEffPresetIDList)scCsZtjƒj|ƒ}|jƒ}|j}t||ƒ}|sCdS|jƒ}tjd|ƒ}|skdS|j    ƒ}    |j
t j ƒ}
|j
t j ƒ} tjd||| |    |
f|ƒtjd|    | ƒ} | sÝdS| d} tjd|    | ƒstjd|    | f|ƒdS| jƒ}|s0dS|\}}| sJ| rNdS|jƒjtjƒ}tj|||ƒ\}}|s¢tjd||fƒdStj||||tdƒ| }tjd|||f|ƒ|jt j |ƒtj|ƒj|ƒtj|tjdƒt j!|tj"ƒt#j$|t j%dƒt&j'|ƒdS(    NRPsDÇëÇóÎ佫Éý¼¶: itemIndex=%s,heroID=%s,heroLV=%s,quality=%s,breakLV=%st HeroQualityLVis*²»´æÔÚ¸ÃÎ佫µÈ¼¶: quality=%s,nextHeroLV=%ss7²ÄÁϲ»×㣬Î佫ÎÞ·¨Éý¼¶! costItemID=%s, costItemCount=%stHeroLVUPs-Î佫Éý¼¶: itemIndex=%s,heroID=%s,updHeroLV=%s((RtGetPlayerManagertGetPlayerByIndexRt    ItemIndexRžRTRRURVR@R#RBR?Rt GetUPCostItemRRRtrptItemt
ItemCommontGetItem_FromPack_ByIDt
ReduceItemR‰R>RxRyRztPlayerActivitytAddDailyTaskValueRtDailyTask_HeroLVUPt
PlayerTaskt AddTaskValuetTaskType_HeroLVUPt PlayerSuccesstDoAddSuccessProgresstSuccType_OSAHeroLVUPR{R|(Rot
clientDatattickRtplayerIDRR}R;ReRftbreakLVtheroLVtqualityLVIpyDatat
nextHeroLVt costItemInfot
costItemIDt costItemCounttitemPackt    hasEnought itemIndexListt    updHeroLV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt
OnHeroLVUP;sV           
   cCsd|jƒ}tjd|ƒ}|s(dS|jƒ}tjdi|d6tƒ}|sZdSt|ƒS(NRPiR¥tQuality(RTRRURVtGetIpyGameDataByConditionR‰Rb(R}R;ReRft lvIpyDataList((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt GetHeroLVMaxks  c" Cs6tjƒ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|||ƒtj|ƒj|ƒtjd|ƒ}|r%tj ddƒ}g}|j!ƒ}xD|D]<\}}t"dt#||dƒƒ}|j$||gƒqWWi}t%||j&ƒ|ƒx<|j'ƒD].\} }| \}}!|j$|||!gƒqÀWtjd|ƒt(j)||ddtigƒnt*j+|ƒ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=%sRPs2heroID=%s,star=%s,quality=%s,awakeLV=%s,starMax=%ss¸ÃÎ佫ÒÑÂúÐÇ£¡starMax=%ssIÎ佫ÉýÐÇ: itemIndex=%s,heroID=%s,star=%s,useStar=%s,addStar=%s,updStar=%st
HeroStarUPRQt HeroRebirthigY@sÍÌÊɶîÍâ×Ü·µ»¹: %steventtHeroStarUPReturn(,RR§R¨RR©t UseItemIndexRžRTRt GetIsLockedRFR#RKtErrLogRLR@RCR?RBRRURVRAtGetHeroStarMaxR¬tDelItemRR6t DoHeroUpdStarRxRyRzt
GetFuncCfgtGetDismissReturnItemstmaxtintRat__calcHeroQualityReturnItemExtGetReturnItemsExRR%tGivePlayerItemOrMailR{R|("RoR¸R¹RRºRt useItemIndexR}tuseItemR;t    useHeroIDt    washIDCntt awakeRandCntt
useAwakeLVt    useHeroLVt
useBreakLVReRfR™tawakeLVtstarMaxtuseStartaddStartupdStarRgtratiotreturnItemListtdismissReturnItemstitemIDt    itemCountt    returnCnttreturnItemExDicttkeytisBind((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroStarUPsŽ                  # 
 
      " c Csçtjd|ƒ}|sdS|jƒ}tjd|ƒ}|sDdS|jƒ}d}|rq|jtjƒ}n|dkr|Sd}tjd|ƒ}|rÙx7|D],}    |    jƒ|krÂPn||    j    ƒ7}q¦Wn||}
|
S(NRPiRQiŸ†t    HeroAwake(
RRURVtGetInitStarUpperR@R#RCtGetIpyGameDataListNotLogt
GetAwakeLVtGetAddStarUpper( R;R}ReRfRgt InitStarUpperRät addStarUppertheroAwakeIpyDataListtipyDataRå((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRÒÍs,    
c    Csô|jƒ}t|ƒ}||krD|}tjd||fƒn|jtjƒ}||}|jƒ}|jtj|ƒ|dkrÝt    ||ƒt
j |t j |ƒtj|t j|ƒtj|tj|ƒn|rð|jƒndS(Ns3²»³¬¹ý°æ±¾×î´óÎ佫ÐǼ¶: heroID=%s,versionStarMax=%si(RTRÒRRR@R#RAtGetItemR>t__DoHeroStarTalentUpR¯R°RtDailyTask_HeroStarUPR²R³tTaskType_HeroStarUPRµR¶tSuccType_OSAHeroStarUPt    Sync_Item(    RR}RètisSyncR;tversionStarMaxtcurStarRçtitem((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("RTRRÕRõR@R#RCtGetUnlockTalentSlotRFRGRIR6R\R”R RaRbRRR[R]R^R_t GetWashWeightRZRWRcRoR‰trandomtchoiceRHt    enumerateRd( RNtaddLVR;tcommTalentSlott talentMaxLVt maxUnlockSlottawakeIpyDataListRäRûtunlockTalentSlottidCounttlvCounttidListtlvListtunfullLVIDListtunfullLVIDListUnlockthaveUpRoRqttalentLVt idWeightDictRmRnRptweightRsRtRut    zeroIndextrandIDt    randIndextidLV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRýs¼                 
 
 
  $ 
 
 
    cCsšd}|jƒjtjƒ}xut|jƒƒD]a}|j|ƒ}| s1|jƒr_q1n||jƒkrwq1nt    |j
tj ƒ|ƒ}q1W|S(Ni( RRR#R2R\RR!R"RTR×R@RA(RR;RåR7RoR}((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt GetHeroIDStarwscCs}d}|jƒjtjƒ}xXt|jƒƒD]D}|j|ƒ}| s1|jƒr_q1n||jtj    ƒ7}q1W|S(Ni(
RRR#R2R\RR!R"R@RA(Rt    totalStarR7RoR}((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroStarTotal„scCsotj|tjgƒ}t|ƒ}||}|dkr>dStjd||fƒtj|tj|ƒdS(Nis5ÉÏÏßÐÞÕýÇìµäÎ佫ÉýÐdzɾͽø¶È! addStar=%s,starTotal=%s(Rµt GetSuccValueR#RR"RtLogR¶(Rt osaHeroStart    starTotalRç((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR s 
 cCsrtjƒj|ƒ}|jƒ}|j}t||ƒ}|sCdS|jƒ}tjd|ƒ}|skdS|j    ƒ}    |j
t j ƒ}
|j
t j ƒ} |j
t jƒ} tjd|||    |
| | f|ƒtjd|    | ƒ} | sòdS| jƒ}|
|kr(tjd|
|f|ƒdS| jƒ}| |kr^tjd| |f|ƒdS| d}tjd|    |ƒs›tjd|    | f|ƒdS| jƒ}|s±dS|jƒjtjƒ}tj||ƒ\}}|rtjd|    | |f|ƒdStj|||d    ƒtjd
|||f|ƒt|||ƒtj|ƒj|ƒtj|ƒdS( NRPsNÇëÇóÎä½«Í»ÆÆ: itemIndex=%s,heroID=%s,quality=%s,heroLV=%s,breakLV=%s,starLV=%stHeroQualityBreaks&Î佫µÈ¼¶²»×㣬ÎÞ·¨Í»ÆÆ: heroLV=%s < %ss&Î佫ÐǼ¶²»×㣬ÎÞ·¨Í»ÆÆ: starLV=%s < %sis%Í»ÆÆµÈ¼¶ÒÑÂú¼¶: quality=%s,breakLV=%ss=²ÄÁϲ»×㣬Î佫ÎÞ·¨Í»ÆÆ! quality=%s,breakLV=%s,lackItemDict=%st    HeroBreaks/Îä½«Í»ÆÆ: itemIndex=%s,heroID=%s,nextBreakLV=%s( RR§R¨RR©RžRTRRURVR@R#R?RBRARt GetUPLVNeedtGetUPLVNeedStartGetUPCostItemListRRRR«R¬tGetCostItemIndexListt DelCostItemtSetHeroBreakLVRxRyRzR{R|(RoR¸R¹RRºRR}R;ReRfR¼R»tstarLVRûtUPLVNeedt UPLVNeedStart nextBreakLVt costItemListRÂt lackItemDictt delInfoDict((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroBreak¡sZ               
  cCs6|jƒ}|jtj|ƒ|r2|jƒndS(N(RüR>R#RBR(RR}R»RR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR.Òs
  c    Csltjƒ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|ƒtj|ƒdS( NRPsDÇëÇóÎ佫¾õÐÑ: itemIndex=%s,heroID=%s,quality=%s,awakeLV=%s,starLV=%sRiis$µ±Ç°ÐǼ¶²»¿É¾õÐÑ: starLV=%s < %s, %stHeroQualityAwakes%¾õÐѵȼ¶ÒÑÂú¼¶: quality=%s,awakeLV=%ss7²ÄÁϲ»×㣬Î佫ÎÞ·¨¾õÐÑ! costItemID=%s, costItemCount=%sRós/Î佫¾õÐÑ: itemIndex=%s,heroID=%s,nextAwakeLV=%s(RR§R¨RR©RžRTRRURVR@R#RARCRRÕRªRRRR«R¬R­R®R‰tSetHeroAwakeLVRxRyRzR{R|(RoR¸R¹RRºRR}R;ReRfR/RätawakeLimitStarR Rût nextAwakeLVR¿RÀRÁRÂRÃRÄ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroAwakeæsX           
    cCs@|jƒ}|jtj|ƒt|ƒ|r<|jƒndS(N(RüR>R#RCtunlockTalentSlotByAwakeR(R}RäRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR8s  
 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ÿÿÿÿRis5¾õÐѽâËøÌ츳²Û: awakeLV=%s,maxUnlockSlot=%s,idList=%sis!Ëæ»ú¾õÐÑÌ츳ѡÏî: randTalentID=%s(RTR@R#RCRRõRRFRGRÕRLR\R RaRRR[R]R^R_tGetAweakWeightRZRWRcRd(RNR;RäRRRûRRR RàRRoRqRRmRnRpRt randTalentCntRsRtRu((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(RoR¸R¹RRt selectIndex((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnHeroAwakeSelectTalentcs
        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éW|| krgtjd|||| f|ƒdStjddƒ}tjddƒ}t| ƒ}
tjd||| | fƒ|
|kr| dg||
7} | dg||
7} d}tjdƒntjd    |ƒ}|sdS|jƒ}tjd
|ƒ}|sDdS|jƒ}tjd |ƒ}|sldSd}||7}x4|D],}|
|jƒkrŸPn||jƒ7}qƒW|jtjƒ}tjd |
||fƒ||}tdt |d|ƒƒ}| j|ƒ| j|ƒ|    jtjƒtjd ||| | fƒ|    jtj
ƒ|    jtj ƒxDt| ƒD]6\}}|    jtj
|ƒ|    jtj | |ƒqyWt|    ƒ|rÐ|j ƒnt!j"|ƒj#|ƒdS(NsB²»´æÔڸþõÐÑÌì¸³Ëæ»úÑ¡Ïî! heroID=%s,selectIndex=%s,awakeRandCnt=%ssDÑ¡ÔñÌ츳ID²»ÄÜÖØ¸´! heroID=%s,selectIndex=%s,selectTalentID=%s in %sRiis9Ñ¡ÔñÌ츳: heroID=%s,selectTalentID=%s,idList=%s,lvList=%sis'³£¹æ²Ûλδȫ²¿½âËø£¬¾õÐѲÛλĬÈÏ1¼¶Ì츳RPRQRós;³£¹æ²ÛλÒÑÈ«²¿½âËø, idCount=%s,preSlotStarMax=%s,curStar=%ss7selectTalentID=%s,selectTalentLV=%s,idList=%s,lvList=%s($RRžRTRFR#RLRRR RüRGRIR\R”RaRÑRRÕRbRURVRôRõRR÷R@RAR×RHR RdR<RRxRyRz(RRRARRºR}R;RàtselectTalentIDRNRRRRRoRqRR RtselectTalentLVReRfRgRøRútpreSlotStarMaxRûRt overflowStar((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR@jsŠ              
 
 
 cCsžtjƒj|ƒ}|j}|j}|j}t||ƒ}|sIdS|dkrht|||ƒn2|dkr‡|jt    j
ƒnt ||||ƒdS(Nii( RR§R¨R©tLockTalentIndexstOPTypeRžtHeroTalentWashReplaceRHR#RKtHeroTalentWash(RoR¸R¹RRtlockTalentIndexstopTypeR}((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt
OnHeroWashÇs              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ƒt%j&|tj'| ƒt%j(|ƒdS(Ns4Î佫ϴÁ¶: itemIndex=%s,heroID=%s,lockTalentIndexs=%ss*Î佫ϴÁ¶½á¹ûδ´¦Àí£¬ÎÞ·¨Ï´Á¶! washIDCnt=%stHeroWashiiiÿÿÿÿs"È¥³ý²»´æÔÚµÄËø¶¨Ë÷Òý: lockIndex=%ss6washItemID=%s,washCostItemCount=%s,lockTalentIndexs=%ss>Ï´Á¶²ÄÁϲ»×㣬Î佫ÎÞ·¨Ï´Á¶! washItemID=%s,washCostItemCount=%sRJis
Ï´Á¶Ç°: %ss
Ï´Á¶ºó: %ssFÎ佫ϴÁ¶½á¹û! itemIndex=%s,heroID=%s,washIDList=%s,lockTalentIndexs=%s()RTRRRFR#RKRÑRRÕRRüRGRcRbRRRR«R¬R­R®R‰R\R RaR[R]R^R_RR RZRWRHRdRJRR{t AddOSAValuetDef_BT_OSA_HeroTrainR|(RRR}RKR;Rßt
washItemIDtlockCostItemListRNRt    lockIndextlockCnttwashCostItemCountRÂRÃtwashItemIndexListt
washIDListRoRqRRmRnRpRRtRu((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRJÚs„     &        
     c    Csû|jƒ}|jƒ}|jtjƒ}|sKtjd||fƒdSg}|jtjƒxIt    |ƒD];}|j
tj|ƒ}|j |ƒ|j tj|ƒqnW|jtjƒ|j ƒtjd|||fƒtj|ƒj|ƒdS(Ns.Î佫ûÓÐÏ´Á¶²»ÐèÒªÌæ»»! itemIndex=%s,heroID=%ss2Î佫ϴÁ¶Ìæ»»! itemIndex=%s,heroID=%s,washIDList=%s(RTRüRFR#RKRRÑRHRGR\R RaRdRRRxRyRz(    RRR}R;RNRRWRoRq((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRI,s"   
c Cs tjƒj|ƒ}|j}|j}|j}|j}tjd|ƒ}|sUdS|j    ƒ}    ||    kr‹tj
d|||    fƒdS|    j |ƒ}
|dkr¹t |||ƒnc|dkrÛt |||
tƒnA|dkrút|||ƒn"|dkrt |||
tƒndS(NRPs+²»´æÔÚ¸ÃÆ¤·ô! heroID=%s,skinID=%s not in %siiii(RR§R¨tHeroIDtSkinIDRHR©RRUt GetSkinIDListRRotActiveHeroSkintDoHeroWearSkinR6tDoHeroSkinStarUPR‰( RoR¸R¹RR;R’RLRRet
skinIDListt    skinIndex((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroSkinOPOs,                      c
CsIt||ƒ}|sdS|jƒ}tjd|ƒ}|sAdS|jƒ}|dkr½|t|ƒkr†tjd||fƒdS||}t||ƒs½tjd||fƒdSntjd|||fƒ|j    ƒ}    |sÿ|    j
t j |ƒn<|    j
t j |ƒ|    j
t j |ƒtj|ƒj|ƒ|jƒtS(NRPis*¸ÃÎ佫²»´æÔÚ¸ÃÆ¤·ô! heroID=%s,skinIndex=%ss(¸ÃÎ佫Ƥ·ôδ½âËø! heroID=%s,skinIndex=%ss2Çл»Î佫Ƥ·ô! heroID=%s,skinIndex=%s,isSkinAttr=%s(RžRTRRURZRbRRR“RüR>R#RDRERxRyRzRR‰(
RRR_t
isSkinAttrR}R;ReR^R’R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR\is2   
 
cCsftjd|ƒ}|sdS|jƒ}| sA|t|ƒkrEdS||}t||||ƒdS(NRP(RRURZRbt__onHeroSkinActive(RR;R_tisActiveReR^R’((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt GMSetHeroSkinˆs 
c
Cstjd|ƒ}|sdSt||ƒrFtjd||fƒdS|jƒ}d}tj|||ƒ\}}}|||}    |    dkr±tjd||||    fƒdStj|||||dƒtjd||f|j    ƒƒt
|||dƒdS(Nt HeroSkinAttrs)¸ÃÎ佫Ƥ·ôÒѾ­¼¤»îÁË: heroID=%s,skinID=%siisG¼¤»îÎ佫ʱװÎïÆ·²»×ã! heroID=%s,needItemID=%s,needItemCnt=%s,lackCnt=%stHeroSkins!¼¤»îÎ佫Ƥ·ô: heroID=%s,skinID=%s( RRUR“RRt GetNeedItemIDR¬tGetPackItemBindStateIndexInfotDelCostItemByBindRRb(
RR;R’t skinIpyDatat
needItemIDt needItemCnttcostItemIndexListtbindCntt    unBindCnttlackCnt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR[“s"   cCs.t|||ƒt||gƒt|ƒdS(N(R—RtRefreshLordAttr(RR;R’Rc((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRb¦s
cCs‘|jƒ}t||ƒs9tjd||f|ƒdStjd|ƒ}|sUdS|jƒ}t||ƒ}||kr tjd||||f|ƒdS|jƒ}d}| sÀ| rÄdSt    j
|||ƒ\}    }
} ||
| } | dkr tjd||||| fƒdSt    j ||    |
| |dƒ|d} tjd||| f|ƒt ||| ƒt ||gƒt|ƒdS(    Ns%¸ÃÎ佫ʱװδ¼¤»î! heroID=%s,skinID=%sRes6Î佫ʱװÐǼ¶ÒÑÂú! heroID=%s,skinID=%s,curStar=%s >= %siisQÎ佫ʱװÉýÐÇÎïÆ·²»×ã! heroID=%s,skinID=%s,needItemID=%s,needItemCnt=%s,lackCnt=%sRPs-Î佫ʱװÉýÐÇ! heroID=%s,skinID=%s,nextStar=%s(RR“RRRRUt
GetStarMaxR˜RgR¬RhRiRšRRq(RR;R’RºRjRåRRkRlRmRnRoRptnextStar((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR]¬s8       
 
c    Cs°|jƒ}tƒ}||kr%dS||}t||ƒsBdSt||ƒ}tjd|ƒ}|smdS|jƒ}|r||krdS|jƒ}    tjddiƒ}
t    |    ƒ|
krÆdS|
t    |    ƒ} t
j |ƒ} i|d6| d6|d6} t j }| | }tjd|||    || fƒtj||||| dtƒsXdS|jƒ|r¬t
jd    tjƒ}t
j|g|d
i||g|6d |ƒntS( NReRfitItemIDt    ItemCountRYsgÎ佫Ƥ·ô²»ÐèÒªÔÙÉýÐÇÁË×Ô¶¯×ª»¯ÎªÆ¤·ôË鯬! itemID=%s,skinID=%s,skinQuality=%s,moneyValue=%s,itemCount=%st notifyAwardtsrcSignt    moneyInfotdataEx(RTtGetItemHeroSkinIDDictR“R˜RRURrtGetSkinQualityRtstrR%t GetItemCountR#tTYPE_Price_SkinPointRRRt    GiveMoneyR6tCleartGetIsBindValueRtItemSrcSign_HeroSkinChangetNotifyGiveAwardInfoR‰(RR1t    eventNameRìtitemIDSkinIDDictR’RRûRåt skinQualitytskinQualityPointDictt changePointRít addDataDictt    moneyTypet
moneyValueRñ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytAutoChangeToSkinPointÌs@      
      
    !
/cCstjdƒ}|s™i}tjƒ}xKt|jƒƒD]7}|j|ƒ}|jƒ}|jƒ}|||<q:Wtjd|ƒt    j
d|ƒn|S(NR…s¼ÓÔØÎïÆ·ID¶ÔÓ¦Î佫Ƥ·ôID: %s( Rt GetConfigExR[R\tGetHeroSkinAttrCounttGetHeroSkinAttrByIndext    GetSkinIDRgt SetConfigExRR(R…RnRoRûR’t
skinItemID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRzõs   cCsVtjƒj|ƒ}|j}|j}|dkr6n|dkrEn t||ƒdS(Nii(RR§R¨RXtBookTypet__doHeroBookAct(RoR¸R¹RR;tbookType((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroBookUP s           cCsd}tjƒ}xft|jƒƒD]R}|j|ƒ}|jƒ}|jƒsXq%nt||ƒsmq%n|d7}q%W|S(Nii(RR[R\t GetHeroCounttGetHeroByIndext    GetHeroIDtGetPlayerCanUseR†(RtbookCntRnRoRûR;((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroBookActCnts   c
    Cso|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|ƒ}    tj|tjƒtj|tj|    ƒdS(
Ns¸ÃÎ佫ͼ¼øÒѼ¤»î! heroID=%ssÎ佫ͼ¼ø¼¤»î! heroID=%sRPRQis%Î佫δ»ñµÃ¹ý£¬²»¿É¼¤»îͼ¼ø! heroID=%sit HeroBookActRv(RR†RRRRURVRvR‡tGetBookActAwardMoneyRbRRR‰RRœR²t UpdTaskValueRtTaskType_HeroBookRµtUptateSuccessProgressR#tSuccType_OSAHeroBook(
RR;RºReRfRgtawardMoneyInfoRŠR‹R›((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR”(s4     " cCs]tjƒj|ƒ}|j}|j}t||ƒ}|s@dS|j|rRdndƒdS(Nii(RR§R¨R©tIsLockRžt SetIsLocked(RoR¸R¹RRtisLockR}((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt
OnHeroLockPs        cCs.tjƒj|ƒ}|j}|j}|jp3|}|j}t||ƒ}|sXdS|jt    j
ƒ}    |jt    j ƒ}
|jt    j ƒ} |    dkr½|
r½| r½tj d|ƒdS|r| r|jtjƒ} tjddƒ} | r| | krtj d| | fƒdSn|jƒ}tjd|ƒ}|sEdS|jƒ}d}d}d}tjddƒ}|r±| r±tjd|| ƒ}|r¨|jƒnd}n|ráttdttjdd    ƒƒƒƒ}n|rttdttjd
dƒƒƒƒ}n|||}tj d ||||    |
| |||||||f ƒ|r}|r}tj|||ƒ r}dStjdd ƒ}i}|r±t||    ||ƒn|rÍt||
||ƒn|rét || ||ƒn|r|rtj!|||dƒ rdS|j"ƒ}|r:|j#t    j
dƒn|rV|j#t    j dƒn|rr|j#t    j dƒn|j$ƒ|rÏg|j%ƒD]\}}||g^q}t&j'||d dt(igƒn|r| r|jtjƒ} tj)|tj| dƒt*|ƒnt+j,|ƒj-|ƒdS(Nis8¸ÃÎ佫δ½øÐйýµÈ¼¶Í»ÆÆ¾õÐÑÅàÑø£¬²»ÐèÒªÖØÉú! itemIndex=%sRÌis5½ñÈÕ¾õÐѹýµÄÎ佫֨Éú´ÎÊýÒÑ´ïÉÏÏÞ! rebirthCnt=%s >= %sRPiR7it HeroRebirth2s•Î佫֨Éú: itemIndex=%s,heroID=%s,quality=%s,heroLV=%s,breakLV=%s,awakeLV=%s,costMoneyTotal=%s(lv:%s+b:%s+a:%s),lvReset=%s,breakReset=%s,awakeReset=%siRÍ(.RR§R¨R©tLVResett
BreakResett
AwakeResetRžR@R#R?RBRCRRRRRRÕRTRURVtGetIpyGameDataNotLogtGetRebirthCostMoneyRØR×tevaltGetFuncCompileCfgRt    HaveMoneyt__calcHeroLVReturnitemt__calcHeroBreakReturnitemt__calcHeroAwakeReturnitemtPayMoneyRüR>RRR%RÛR6RRRxRyRz(RoR¸R¹RRtlvResett
breakResett
awakeResetR}R¼R»Rät
rebirthCntt rebirthCntMaxR;ReRft lvCostMoneytbreakCostMoneytawakeCostMoneyRŠtqualityAwakeIpyDatatcostMoneyTotalRétreturnItemDictRtktvRê((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroRebirthdsˆ                **    /"% 
+"  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(    R\RRURªR×RØRWRR(
RfR¼R¿Rét
returnDicttretLVR½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ƒ}|sUqnxe|D]]\}}    tdt|    |dƒƒ}    |j|dƒ|    ||<|j|dƒ|    ||<q\WqWtjd|||||fƒdS(NiR'igY@s4    Í»ÆÆ·µ»¹: quality=%s,breakLV=%s,ratio=%s,%s,×Ü%s(    R\RRUR+R×RØRWRR(
RfR»R¿RéRÃt
retBreakLVtqualityBreakIpyDataR3RÀ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(NiR7igY@s4    ¾õÐÑ·µ»¹: quality=%s,awakeLV=%s,ratio=%s,%s,×Ü%s(    R\RRURªR×RØRWRR(
RfRäR¿RéRÃt
retAwakeLVR½R¿RÀRÁ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR³Ús   c# Cs”tjƒj|ƒ}|j}tjd|ƒtjddƒ}i}i}i}i}    |jƒjt    j
ƒ}
xþ|D]ö} | |kr¡tj d| ƒqxn| dksx| |
j ƒkrÅqxn|
j | ƒ} | sx| jƒríqxn| jt    jƒ} | r"tjd| | fƒqxn| jƒrEtjd| ƒqxn| jt    jƒ}|r¨gt|ƒD]}| jt    j|ƒ^qj}tjd| |fƒqxn| jƒ}t| ƒ}|rætjd    | ||fƒqxntjd
|ƒ}|sqxn|jƒ}| jt    jƒ}| jt    jƒ}| jt    jƒ}tjd |ƒ}|sdqxntjd | |||||fƒ|jƒ}xK|D]C\}}td t||dƒƒ}|j |dƒ|||<qšWtjd|||||fƒt!||||ƒt"||||ƒ|j#ƒ}x.|D]&\}}|    j |dƒ||    |<q:W| || <qxWt$|g|    j%ƒD]\}}||g^q…|ƒ|s±dSx9|j%ƒD]+\} } t&j'|| | j ƒt(dƒq¾W|rg|j%ƒD]\}}||g^q} x<|j%ƒD].\}!}|!\}}"| j)|||"gƒq+Wtjd| ƒt*j+|| ddt(igƒndS(NsÎ佫Dzɢ: itemIndexList=%sRÌis-Î佫Dzɢǰ¶Ë·¢ËÍÖØ¸´µÄitemIndex! itemIndex=%sis7¾õÐѹýµÄÎ佫ÐèÏÈÖØÉúºó²Å¿ÉDzɢ! itemIndex=%s,awakeLV=%ss Ëø¶¨µÄÎ佫ÎÞ·¨Ç²É¢! itemIndex=%ss5ÉÏÕóÖеÄÎ佫ÎÞ·¨Ç²É¢! itemIndex=%s,lineupValueList=%ss?ÉúЧÖеĿ¨ÅÆÎÞ·¨Ç²É¢! itemIndex=%s,heroID=%s,effPresetIDList=%sRPRQsHDzɢ: itemIndex=%s,heroID=%s,quality=%s,heroLV=%s,breakLV=%s,heroStar=%sigY@s5    ÐǼ¶·µ»¹: quality=%s,heroStar=%s,ratio=%s,%s,×Ü%st HeroDismisssDzɢ×Ü·µ»¹: %sRÍ(,RR§R¨t ItemIndexListRRRÕRRR#R2RÑRR!R"R@RCRÐRFR4R\R RTR¤RURVR?RBRARÖR×RØRWR±R²RÚRÙRR¬RÓR6RaR%RÛ(#RoR¸R¹RRÄRétdismissItemDictR¿RïtreturnItemExCntDictR7RR}Rät lineupCountR£tlineupValueListR;R¢ReRfR¼R»theroStarRgRëRìRít
starRetCntt returnItemsExRÀRÁRêRðRñ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroDismissósŒ       .   #   5#+ "c    Csr|s
dStjdtjƒ}tj|tjƒd}xg|D]_\}}|sUPn||f}tdtt    ||dƒƒƒ}|j
|dƒ|||<q?Wt j d|||fƒtjdtj ƒ}tj|tjƒd}xg|D]_\}}|sPn||f}tdtt    ||dƒƒƒ}|j
|dƒ|||<qñWt j d|||fƒdS(NRwiigY@s    ºìÑÕ·µ»¹: retPer=%s,%s,×Ü%ss    ³ÆºÅ·µ»¹: retPer=%s,%s,×Ü%s(R%RRtItemSrcSign_BeautyEfft PlayerBeautytGetBeautyEffInfotEffType_HeroItemExPerR×RØtroundRWRRtItemSrcSign_TitleEfft    PlayerHJGtGetTitleEffInfotTitleEff_HeroItemExPer(    RRÐRïRñtretPerRìRíRðtretCnt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRÙAs* # #c Cswtjƒj|ƒ}|j}d}|j}i}x*|D]"}|j}    |j}
|    ||
<q:Wt||||ƒdS(Ni(RR§R¨tPresetIDt HeroPosListtPosNumR©tDoSaveHeroPreset( RoR¸R¹RR9R:t heroPosListtitemIndexPosDicttposInfoR<R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnHeroPresetSaveos                 ic
Csîtj||tjƒs-tjd|ƒdSg}i}x||jƒD]n\}}||krdqFnt||ƒ}|sqFn|jƒ}    |    |krqFn|j    |    ƒ|||<qFWtjd|||f|j
ƒƒt j |ƒ}
xátj D]Ö} || kr qônx»| D]³} | |kr+qn|
j| ƒ} | sFqnx}| jjƒD]l\}}t||ƒ}|s}qVn|jƒ}    |    |krVtjd||    | ||f|j
ƒƒdSqVWqWqôWd}i}|jƒjtjƒ}xût|jƒƒD]ç}|j|ƒ}| s|jƒr3qn|jtjƒ}|sQqn|jƒ}xŒt|ƒddd…D]q}|jtj|ƒ}t|ƒd|kr®qwn|jtj|ƒ|d7}|tjkrÞPn|||<qwWqWxº|jƒD]¬\}}|dksý||jƒkr-qýn|j|ƒ}| sý|jƒrUqýn|jƒ}t|||ƒ}|j tj|ƒ||krŸ|||<n|||<qýWx|j!ƒD]}|j"ƒqºWt j |ƒj#|||ƒdS(Ns!¸ÃÎ佫ÕóÈÝÔ¤Éè²»¿ÉÓÃ! presetID=%ss;±£´æÎ佫ԤÉèÕóÈÝ: presetID=%s,heroIDList=%s,index-posNum:%ss_Î佫²»ÄÜÖØ¸´µÄ¶à¸öÕóÈݱ£´æ! savePresetID=%s,heroID=%s in heroPresetID=%s,posNum=%s,itemIndex=%siiÿÿÿÿi($t PlayerPresettGetFuncPresetIDStateR#tFuncPreset_HeroRRRRžRTRaRRxRytHeroUniquePresetListt GetHeroPresett heroItemDictRÑRRR2R\RR!R"RFR4RüR tGetLineupValuet DelUserAttrt LineupObjMaxR3RdtvaluesRtUpdHeroItemPreset(RR9RâR:t
heroIDListRêRR<R}R;tolPlayertuniquePresetIDListt heroPresetIDt
heroPresettdelCountt syncItemDictR7RoRÌRR£R=tsyncItem((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRà~s    #            
   cCs|d|d|S(Ni'id((tlineupIDR:R<((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR3ÕscCs/|d}|dd}|d}|||fS(Ni'id((R=RøR:R<((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 ||ƒs8tjd|ƒdS|td|ƒO}tj|tj||ƒtjd||||fƒtj|| | ddtƒt||gƒdS(    Nis+ÕóÈÝÍÆ¼ö½±ÀøÒÑÁìÈ¡! recommendID=%s,index=%stLineupRecommendRPRQs)Î佫δ»ñµÃ¹ý£¬²»¿É¼¤»îÕóÈÝÍÆ¼ö! heroID=%ss=ÕóÈÝÍÆ¼öÁì½±! recommendID=%s,index=%s,heroID=%s,awardState=%sRv(RtToIntDefRRtDef_PDict_HeroRecommendtpowRRRUt GetHeroIDListRbRVtGetRecommendAwardMoneyRvRRRR‰R    ( Rt recommendIDRot
awardStateRûRðR;ReRfRgR£RŠR‹((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetLineupRecommendAwardâs@ 
   cCs|jtj|ƒ}|dS(Ni
(RRtDef_PDict_HeroFatesInfo(RtfatesIDR–((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroFatesStatescCsQ|jtj|ƒ}|ddt|dƒ}tj|tj||ƒ}|S(Ni
i    (RRRR”RR(RRR•R–((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroFatesStatescCs|jtj|ƒ}|dS(Ni
(RRR(RRR–((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroFatesLVscCsH|jtj|ƒ}|d|d}tj|tj||ƒ}|S(Ni
(RRRRR(RRtlvR–((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroFatesLVscCs`tjƒj|ƒ}|j}|j}|j}|dkrOt|||ƒn t||ƒdS(Ni(RR§R¨tFatesIDRHRÉt__onHeroFatesLVUPt__onHeroFatesActivite(RoR¸R¹RRRLRÄ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroFates!s              cCsðt||ƒr$tjd|ƒdStjd|ƒ}|s@dS|jƒ}x;|D]3}t||ƒsStjd|||fƒdSqSWtjd||fƒt||dƒ|jƒ}t    j
||ddt igƒt ||gƒdS(NsËÞÔµ×éºÏÒѾ­¼¤»îÁË! fatesID=%st    HeroFatess@ÓÐÎ佫δ»ñµÃ¹ý£¬²»¿É¼¤»îËÞÔµ! fatesID=%s,heroID=%s,heroIDList=%ss"¼¤»îËÞÔµ! fatesID=%s,heroIDList=%siRÍ( RRRRRURýRvRtGetAwardItemListR%RÛR6R
(RRRûRðR;titemList((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR -s"   cCsât||ƒs$tjd|ƒdStjd|ƒ}|s@dS|jƒ}|jƒ}t||ƒd}tjd|||||fƒtjd||ƒ}|sªdS|jƒ}|j    ƒ}    |j
ƒ}
g} i} t j |ƒ} |j ƒjtjƒ}xât|jƒƒD]Î}|j|ƒ}| s|jƒrBqn|jƒ}||kr…t| |
|||ƒr…| j|ƒq…n||kr—qn|| kr°d| |<n|jtjƒ}|| |krØqn|| |<qWt| jƒƒ}||kr"tjd||| fƒdStjd||| fƒt| ƒ|    krotjd    t| ƒ|    fƒdStjd
|    ƒx1| |     D]%}tj|||jƒtd ƒq‹Wt |||ƒt!||gƒt"|ƒdS( NsËÞÔµ×éºÏδ¼¤»î! fatesID=%sR isQËÞÔµÉý¼¶: fatesID=%s,fatesQuality=%s,fatesNextLV=%s,heroIDList=%s,useIndexList=%stHeroFatesQualityLVis9    µ±Ç°×ÜÐǼ¶²»×ã: nowStarTotal=%s < %s, heroStarDict=%ss@    µ±Ç°×ÜÐǼ¶: nowStarTotal=%s,needStarTotal=%s,heroStarDict=%ss    ¿ÉÓòÄÁÏ¿¨²»×ã: %s < %ss    ËÞÔµÉý¼¶! needHeroCnt=%st HeroFatesLVUP(#RRRRRUtGetFatesQualityRýRtGetNeedStarTotaltGetNeedHeroCnttGetNeedQualityRxRyRRR#R2R\RR!R"RTt__checkHeroFatesLVUPItemRaR@RAtsumRîRbR¬RÓR6RR
Rq(RRt useIndexListRût fatesQualityRðt fatesNextLVR½t needStarTotalt needHeroCntt needQualityR3t heroStarDictRñR7RoR}R;R™t nowStarTotal((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR
Asf            #
c
Cs¡tjd|ƒ}|sdS|jƒ}||krUtjd||||fƒdS|jtjƒ}|jtjƒ}|jtj    ƒ}    |jtj
ƒ}
|dks»|s»|    s»|
rßtjd||||    |
fƒdS|j ƒrtjd|ƒdS|j tj ƒ} | ragt| ƒD]} |jtj | ƒ^q%} tjd|| fƒdS|jƒ}t|ƒ}|rtjd|||fƒdStS(NRPsK    ÓëËÞÔµËùÐèÆ·Öʲ»Í¬µÄ¿¨ÎÞ·¨Ê¹ÓÃ: itemIndex=%s,heroID=%s,quality=%s != %sis\    Éý¼¶Í»ÆÆÉýÐǾõÐѹýµÄÎ佫ÎÞ·¨Ê¹ÓÃ! itemIndex=%s,heroLV=%s,breakLV=%s,starLV=%s,awakeLV=%ss$    Ëø¶¨µÄÎ佫ÎÞ·¨Ê¹ÓÃ! itemIndex=%ss9    ÉÏÕóÖеÄÎ佫ÎÞ·¨Ê¹ÓÃ! itemIndex=%s,lineupValueList=%ssC    ÉúЧÖеĿ¨ÅÆÎÞ·¨Ê¹ÓÃ! itemIndex=%s,heroID=%s,effPresetIDList=%s(RRURVRRR@R#R?RBRARCRÐRFR4R\R RTR¤R‰(RñRRR}R;ReRfR¼R»R/RäRÌR£RÍR¢((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR~s8    .  cCsntj|ƒ}xXt|jtjƒƒD]>}|jtj|ƒ}t|ƒd}|jtj    |ƒq(WdS(Ni(
RxRyR\RFR#R4R RëtRefreshByFuncPresetRç(RR}RñR£R=Ró((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytRefreshLineupHeroItem¤s cCs!t|ƒtj|ƒjƒdS(N(tCalcHeroAddAttrRxRytRefreshRoleAttr(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRq¯s
cCsvi}i}|jƒ}tjƒ}xt|jƒƒD]í}|j|ƒ}|jƒ}t||ƒsmq7nt||ƒ}|j    ƒ}    |j
ƒ}
|j ƒ} xtt t |    ƒt |
ƒƒƒD]^} |    | } t | ƒ| krî| | nd}|
| ||}|j| dƒ||| <qÂWq7Wtjd||ƒtj|ƒjtj|ƒxçt|jƒƒD]Ó}|j|ƒ}|jƒ}t||ƒs¡qknt||ƒ}|dkrÂqkn|jƒ}    |jƒ}xatt t |    ƒt |ƒƒƒD]>} |    | } || }||}|j| dƒ||| <qüWqkWtjd||ƒtj|ƒjtj|ƒdS(Nis ʱװÊôÐÔ: %ss ËÞÔµÊôÐÔ: %s(tGetIDRR[R\RŽRRR“R˜tGetRoleAttrIDListtGetRoleAttrValueListtGetRoleAttrPerStarAddListR”RbRWRRRxRyt SetCalcAttrRtDef_CalcAttr_HeroSkintGetHeroFatesCounttGetHeroFatesByIndext
GetFatesIDRRt GetAttrIDListtGetLVAttrValueListtDef_CalcAttr_HeroFates(Rt skinAttrDictt fatesAttrDictRºRnRoRûR’tskinStart
attrIDListt attrValueListtperStarAddListtitattrIDtattrValuePerStart    attrValueRtfatesLVtlvAttrValueListtattrValuePerLV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR"µsL      (
""    (
 
 
"cCsé|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Üqn|j ƒ}    tjƒ}
||
_|j
t j |ƒd|
_g|
_x[|    dD]O} tjƒ} | | _t|| ƒ| _t|| ƒ| _|
jj| ƒq.Wt|
jƒ|
_|j|
ƒqW|s®dStjƒ} || _t| jƒ| _tj|| ƒdS(NRPi
i( RSRR[R\R—R˜RšRaR™RURRRRZtChPyNetSendPackt    tagSCHeroRXt BookInitStatetSkinListt tagSCHeroSkinRYR“tStateR˜tStarRbtSkinCntt tagSCHeroInfot HeroInfoListtHeroCntt NetPackCommont SendFakePack(RRðtsyncHeroIDListRnRoRût syncInfoListR;ReR^theroR’tskint
clientPack((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRçsL        #                    c CsRtj|ƒ}|r!|g}n |jƒ}g}x×|D]Ï}|j|ƒ}|s[q:nd„|jjƒDƒ}g}xOtddtjƒD]7}||kr»|j    ||dƒq‘|j    dƒq‘Wt
j ƒ}    ||    _ ||    _ t|    j ƒ|    _|j    |    ƒq:W|sdSt
jƒ}
||
_t|
jƒ|
_tj||
ƒdS(NcSsi|]\}}||“qS(((t.0RÀRÁ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pys
<dictcomp>"s    ii(RxRytGetHeroPresetIDListRéRêRR\R#RíRaR=ttagSCHeroPresetRÝtHeroItemIndexListRbRGttagSCHeroPresetInfot
PresetListt    PresetCntRHRI( RRóRñt
syncIDListt
presetListRôtposNumItemIndexDicttheroItemIndexListR<tpresetRN((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSync_HeroPresets6                  cCs5tjƒ}|jtjƒ|_tj||ƒdS(N(R=ttagSCPlayerHeroInfoRRRtAwakeRebirthCntRHRI(RRN((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR9s 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(RR[R\tGetLineupRecommendCounttGetLineupRecommendByIndextGetRecommendIDRRRûRSR=ttagSCLineupRecommendt RecommendIDt
AwardStateRattagSCLineupRecommendInfot RecommendListRbtCountRHRI(
RRVt recommendListRnRoRûRÿRt    recommendRN((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR    @s,                      c
Csg}tjƒ}x®t|jƒƒD]š}|j|ƒ}|jƒ}t||ƒ}|dkrv||kr‚q%q‚n |s‚q%ntj    ƒ}||_
||_ t ||ƒ|_ |j|ƒq%W|sÍdStjƒ}    ||    _t|    jƒ|    _tj||    ƒdS(N(RR[R\R*R+R,RRSR=ttagSCHeroFatesR    RBRtFatesLVRattagSCHeroFatesInfot    FatesListRbRfRHRI(
RRVt    fatesListRnRoRûRR•tfatesRN((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR
[s.                      (dR¬R#RRR%RµR=R{R¯RHRRxRåRÓR²RØRRŠRR    tmathRR RR RRSRORMR~RvRwR†R‡RR“R—R˜RšRžR¤RÆRÊRòRÒR‰RÔRýR R"R R6R.R;R8R<RBR@RMRJRIR`R\RdR[RbR]RŒRzR–RœR”R§RÂR±R²R³RÑRÙRäRàR3RëRRRRRR R R
RR!RqR"RR[RR    R
(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt<module>s                                           ?                                                0        N      r                  1     /         E     ]        R    #                          )                 (        T                N    .     W             #                             =    &             2 . $