hxp
1 天以前 7a55439405b96e2382ec9df2120c963fdff8fe89
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
FA¡ic@spddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd d „Zd „Zd d„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%e&d„Z'd„Z(d„Z)d„Z*d„Z+d„Z,e&d„Z-d „Z.e&d!„Z/d"„Z0d#„Z1e&d$„Z2d%„Z3d&„Z4d'„Z5d(„Z6d)„Z7d d*„Z8d+„Z9d,„Z:d-„Z;d.„Z<d/„Z=d0„Z>d1„Z?d2„Z@d3„ZAd4„ZBd5„ZCd6„ZDd7„ZEd8d9„ZFd:„ZGd;„ZHd<„ZId=„ZJd>„ZKd?„ZLd@„ZMdA„ZNdB„ZOdC„ZPdD„ZQdE„ZRdF„ZSddG„ZUddH„ZVdI„ZWddJ„ZXddK„ZYdS(Liÿÿÿÿ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.pytOnPlayerFirstLogin2s
 
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 7s4   
 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.pyRVs  )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_IudetHeroTalentIDAwakeRandR4tInitHeroTalent(t
singleItem((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt InitHeroItemjs.
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 GetInitWeighttappendRGR#RFRHtgettremovet AddUserAttr(RMR;t heroIpyDatatqualitytqualityIpyDatat initTalentCnttinitTalentWeightt talentIDDictttalentWeightListt
ipyDataMgrtindext talentIpyDatattalentIDt
initWeightt_t randTalentIDt randWeightID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRL†sB       cCsŽ|jƒ}tjd|ƒ}|s(dSt||ƒsŠt||dƒtjd||jƒƒt||gƒt    j
|ƒj |ƒndS(NROisÊ״줻îÎ佫: heroID=%s( RQRRRtGetHeroActivitetSetHeroActiviteRRRRt PlayerOnlinetGetOnlinePlayertOnHeroItemUpate(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.pyRoÂsicCs˜|jtj|ƒ}|d}|r9|r0dSd}nd}tj|dd|ƒ}tj|tj||ƒtjd|||f|jƒƒdS(Ni
iis0ÉèÖÃÎ佫¼¤»î״̬:%s,bookState=%s,updBookState=%s(    RRRvRtSetValueRRRR(RR;tisActt    bookStateRwt updBookState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRpÈs
    #cCs$|jtj|ƒd}|dkS(Ni
i(RRRv(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(    RRRvRRxRRRR(RR;RyRzRwR{((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroBookInitStateÛs
    #cCs|jtj|ƒdS(Ni
(RRtDef_PDict_HeroSkinInfo(RtskinID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroSkinStateéscCsK|jtj|ƒ}|ddtd|ƒ}tj|tj||ƒS(Ni
i(RRRtminRR(RR€tstatetinfo((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroSkinStateìscCs|jtj|ƒdS(Ni
(RRR(RR€((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroSkinStarðscCsB|jtj|ƒ}|d|d}tj|tj||ƒS(Ni
(RRRRR(RR€tstarR„((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroSkinStaróscCs}|jƒjtjƒ}|dks6||jƒkr:dS|j|ƒ}| s\|jƒr`dS|jƒtj    krydS|S(Ni(
RRR#R2RR!R"tGetTypeRtDef_ItemType_Hero(Rt    itemIndexR7Rt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt GetHeroItemøscCs_|jtjƒ}|sgSg}x6t|ƒD](}|jtj|ƒ}|j|ƒq/W|S(N(RER#tDef_IudetHeroEffPresetIDRWtGetUserAttrByIndexR\(Rtt    dataCountteffPresetIDListtlpIndexR9((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroEffPresetIDListscCsMtjƒ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ƒdS(    NROsDÇëÇóÎ佫Éý¼¶: 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ŒRQRRRRSR@R#RBR?Rt GetUPCostItemRRRtrptItemt
ItemCommontGetItem_FromPack_ByIDt
ReduceItemtTrueR>RqRrRstPlayerActivitytAddDailyTaskValueRtDailyTask_HeroLVUPt
PlayerTaskt AddTaskValuetTaskType_HeroLVUPt PlayerSuccesstDoAddSuccessProgresstSuccType_OSAHeroLVUP(Rht
clientDatattickRtplayerIDR‹RtR;R`RatbreakLVtheroLVtqualityLVIpyDatat
nextHeroLVt costItemInfot
costItemIDt costItemCounttitemPackt    hasEnought itemIndexListt    updHeroLV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt
OnHeroLVUPsT           
  cCsd|jƒ}tjd|ƒ}|s(dS|jƒ}tjdi|d6tƒ}|sZdSt|ƒS(NROiR“tQuality(RQRRRRStGetIpyGameDataByConditionRtlen(RtR;R`Rat lvIpyDataList((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt GetHeroLVMaxDs  c Cstjƒ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|ƒ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=%sROs2heroID=%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ŒRQRt GetIsLockedRER#RJtErrLogRKR@RCR?RBRRRRSRAtGetHeroStarMaxRštDelItemRR6t DoHeroUpdStarRqRrRs(RhR§R¨RR©R‹t useItemIndexRttuseItemR;t    useHeroIDt    washIDCntt awakeRandCntt
useAwakeLVt    useHeroLVt
useBreakLVR`RaR‡tawakeLVtstarMaxtuseStartaddStartupdStar((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroStarUPXsn                   # 
 
    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(NROiRPt    HeroAwake( RQRRRRStGetInitStarUpperR@R#RCtGetIpyGameDataListNotLogt
GetAwakeLVtGetAddStarUpper( RtR;R`RaRbt InitStarUpperRÊt addStarUppertheroAwakeIpyDataListtipyDataRË((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR¿“s*    
cCs°|jtjƒ}||}|jƒ}|jtj|ƒ|dkr™t||ƒtj|tj    |ƒt
j |tj |ƒt j|tj|ƒn|r¬|jƒndS(Ni(R@R#RAtGetItemR>t__DoHeroStarTalentUpRžRŸRtDailyTask_HeroStarUPR¡R¢tTaskType_HeroStarUPR¤R¥tSuccType_OSAHeroStarUPt    Sync_Item(RRtRÎtisSynctcurStarRÍ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("RQRt
GetFuncCfgRÒR@R#RCtGetUnlockTalentSlotRERFRHR6RWR‚RŽR\R¸RRRVRXRYRZt GetWashWeightRUR]R^RhRtrandomtchoiceRGt    enumerateR_( RMtaddLVR;tcommTalentSlott talentMaxLVt maxUnlockSlottawakeIpyDataListRÊRØtunlockTalentSlottidCounttlvCounttidListtlvListtunfullLVIDListtunfullLVIDListUnlockthaveUpRhRjttalentLVt idWeightDictRfRgRitweightRlRmRnt    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#R2RWRR!R"RQtmaxR@RA(RR;RËR7RhRt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroItemStarMax6scCs}d}|jƒjtjƒ}xXt|jƒƒD]D}|j|ƒ}| s1|jƒr_q1n||jtj    ƒ7}q1W|S(Ni(
RRR#R2RWRR!R"R@RA(Rt    totalStarR7RhRt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroStarTotalCscCsotj|tjgƒ}t|ƒ}||}|dkr>dStjd||fƒtj|tj|ƒdS(Nis5ÉÏÏßÐÞÕýÇìµäÎ佫ÉýÐdzɾͽø¶È! addStar=%s,starTotal=%s(R¤t GetSuccValueR#RÝRRtLogR¥(Rt osaHeroStart    starTotalRÍ((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR Ns 
 cCstjƒ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|jƒjtjƒ}tj||ƒ\}}|r½tjd|    | |f|ƒdStj|||dƒtjd    |||f|ƒt|||ƒtj|ƒj|ƒdS(
NROsDÇëÇóÎä½«Í»ÆÆ: itemIndex=%s,heroID=%s,quality=%s,heroLV=%s,breakLV=%stHeroQualityBreaks&Î佫µÈ¼¶²»×㣬ÎÞ·¨Í»ÆÆ: heroLV=%s < %sis%Í»ÆÆµÈ¼¶ÒÑÂú¼¶: quality=%s,breakLV=%ss=²ÄÁϲ»×㣬Î佫ÎÞ·¨Í»ÆÆ! quality=%s,breakLV=%s,lackItemDict=%st    HeroBreaks/Îä½«Í»ÆÆ: itemIndex=%s,heroID=%s,nextBreakLV=%s(RR•R–RR—RŒRQRRRRSR@R#R?RBRt GetUPLVNeedtGetUPCostItemListRRRR™RštGetCostItemIndexListt DelCostItemtSetHeroBreakLVRqRrRs(RhR§R¨RR©R‹RtR;R`RaR«RªRØtUPLVNeedt nextBreakLVt costItemListR±t lackItemDictt delInfoDict((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroBreak`sN             
 cCs6|jƒ}|jtj|ƒ|r2|jƒndS(N(RÙR>R#RBRÞ(RRtRªRßRá((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR ‹s
  c    Cs_tjƒ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|ƒdS( NROsDÇëÇóÎ佫¾õÐÑ: 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ŒRQRRRRSR@R#RARCRRãR˜RRRR™RšR›RœRtSetHeroAwakeLVRqRrRs(RhR§R¨RR©R‹RtR;R`RatstarLVRÊ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#RCtunlockTalentSlotByAwakeRÞ(RtRÊ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(RQR@R#RCRRÒRäRERFRãRKRWRŽR\RRRVRXRYRZtGetAweakWeightRUR]R^R_(RMR;RÊRíRìRØRîRïRêRÆRñRhRjR÷RfRgRiRøt randTalentCntRlRmRn((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(RhR§R¨RR‹t selectIndex((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnHeroAwakeSelectTalents
        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|ƒ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ŒRQRER#RKRRRŽRÙRFRHRWR‚R\RRãR¾RGRèR_RRÞRqRrRs(RR‹RRßR©RtR;RÆtselectTalentIDRMRïRðRñRòRhRjRö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ŒtHeroTalentWashReplaceRGR#RJtHeroTalentWash(RhR§R¨RR‹tlockTalentIndexstopTypeRt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt
OnHeroWashas              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=%sR#is
Ï´Á¶Ç°: %ss
Ï´Á¶ºó: %ssFÎ佫ϴÁ¶½á¹û! itemIndex=%s,heroID=%s,washIDList=%s,lockTalentIndexs=%s(%RQRRRER#RJR¾RRãRRÙRFR^R¸RRRR™RšR›RœRRWRŽR\RVRXRYRZRåRèRUR]RGR_RIRÞ(RR‹RtR$R;RÅt
washItemIDtlockCostItemListRMRït    lockIndextlockCnttwashCostItemCountR±R²twashItemIndexListt
washIDListRhRjR÷RfRgRiRøRmRn((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR#ts€     &        
    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(RQRÙRER#RJRR¾RGRFRWRŽR\R_RÞRRqRrRs(    RR‹RtR;RMRïR.RhRj((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR"Äs"   
c Csûtjƒj|ƒ}|j}|j}|j}|j}tjd|ƒ}|sUdS|j    ƒ}    ||    kr‹tj
d|||    fƒdS|    j |ƒ}
|dkr¹t |||ƒn>|dkrØt |||
ƒn|dkr÷t|||ƒndS(NROs+²»´æÔÚ¸ÃÆ¤·ô! heroID=%s,skinID=%s not in %siii(RR•R–tHeroIDtSkinIDR!R—RRRt GetSkinIDListRRhtActiveHeroSkintDoHeroWearSkintDoHeroSkinStarUP( RhR§R¨RR;R€R%R‹R`t
skinIDListt    skinIndex((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroSkinOPçs(                     cCsêt||ƒ}|sdS|jƒ}tjd|ƒ}|sAdS|jƒ}|dkr½|t|ƒkr†tjd||fƒdS||}t||ƒs½tjd||fƒdSn|j    t
j |ƒt j |ƒj|ƒtS(NROis*¸ÃÎ佫²»´æÔÚ¸ÃÆ¤·ô! heroID=%s,skinIndex=%ss(¸ÃÎ佫Ƥ·ôδ½âËø! heroID=%s,skinIndex=%s(RŒRQRRRR1R¸RRRR>R#RDRqRrRsR(RR‹R6RtR;R`R5R€((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR3ÿs&   
cCsftjd|ƒ}|sdS|jƒ}| sAt|ƒ|krEdS||}t||||ƒdS(NRO(RRRR1R¸t__onHeroSkinActive(RR;R6tisActiveR`R5R€((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt GMSetHeroSkins 
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( RRRRRRt GetNeedItemIDRštGetPackItemBindStateIndexInfotDelCostItemByBindRR8(
RR;R€t skinIpyDatat
needItemIDt needItemCnttcostItemIndexListtbindCntt    unBindCnttlackCnt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR2 s"   cCs.t|||ƒt||gƒt|ƒdS(N(R…RtRefreshLordAttr(RR;R€R9((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR83s
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=%sR;s6Î佫ʱװÐǼ¶ÒÑÂú! heroID=%s,skinID=%s,curStar=%s >= %siisQÎ佫ʱװÉýÐÇÎïÆ·²»×ã! heroID=%s,skinID=%s,needItemID=%s,needItemCnt=%s,lackCnt=%sROs-Î佫ʱװÉýÐÇ! heroID=%s,skinID=%s,nextStar=%s(RRRRRRRt
GetStarMaxR†R=RšR>R?RˆRRG(RR;R€R©R@RËRàRARBRCRDRERFtnextStar((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR49s8       
 
cCsVtjƒj|ƒ}|j}|j}|dkr6n|dkrEn t||ƒdS(Nii(RR•R–R/tBookTypet__doHeroBookAct(RhR§R¨RR;tbookType((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroBookUPbs           cCsd}tjƒ}xft|jƒƒD]R}|j|ƒ}|jƒ}|jƒsXq%nt||ƒsmq%n|d7}q%W|S(Nii(RRVRWt GetHeroCounttGetHeroByIndext    GetHeroIDtGetPlayerCanUseR}(RtbookCntRgRhRØR;((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroBookActCntos   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=%sRORPis%Î佫δ»ñµÃ¹ý£¬²»¿É¼¤»îͼ¼ø! heroID=%sit HeroBookActt notifyAward(RR}RRRRRRSRoR~tGetBookActAwardMoneyR¸Rt    GiveMoneyRRRSR¡t UpdTaskValueRtTaskType_HeroBookR¤tUptateSuccessProgressR#tSuccType_OSAHeroBook(
RR;R©R`RaRbtawardMoneyInfot    moneyTypet
moneyValueRR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRK}s4     " cCs]tjƒj|ƒ}|j}|j}t||ƒ}|s@dS|j|rRdndƒdS(Nii(RR•R–R—tIsLockRŒt SetIsLocked(RhR§R¨RR‹tisLockRt((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt
OnHeroLock¥s        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=%st HeroRebirthis5½ñÈÕ¾õÐѹýµÄÎ佫֨Éú´ÎÊýÒÑ´ïÉÏÏÞ! rebirthCnt=%s >= %sROiRit 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=%sitevent(.RR•R–R—tLVResett
BreakResett
AwakeResetRŒR@R#R?RBRCRRRRRRãRQRRRStGetIpyGameDataNotLogtGetRebirthCostMoneytintRýtevaltGetFuncCompileCfgRt    HaveMoneyt__calcHeroLVReturnitemt__calcHeroBreakReturnitemt__calcHeroAwakeReturnitemtPayMoneyRÙR>RÞRR%tGivePlayerItemOrMailR6RRRqRrRs(RhR§R¨RR‹tlvResett
breakResett
awakeResetRtR«RªRÊt
rebirthCntt rebirthCntMaxR;R`Rat lvCostMoneytbreakCostMoneytawakeCostMoneyR]tqualityAwakeIpyDatatcostMoneyTotaltratiotreturnItemDictRátktvtreturnItemList((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroRebirth¹sˆ                **    /"% 
+"  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(    RWRRRR˜RýRkR]RR(
RaR«RR~t
returnDicttretLVR¬R®R¯R°((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRo s   c
Csåi}x¸td|ƒD]§}tjd||ƒ}|s=qn|jƒ}|sUqnxe|D]]\}}    tdt|    |dƒƒ}    |j|dƒ|    ||<|j|dƒ|    ||<q\WqWtjd|||||fƒdS(NiRigY@s4    Í»ÆÆ·µ»¹: quality=%s,breakLV=%s,ratio=%s,%s,×Ü%s(    RWRRRRRýRkR]RR(
RaRªRR~R„t
retBreakLVtqualityBreakIpyDataRR¯R°((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRps " c
CsÚi}x­td|ƒD]œ}tjd||ƒ}|s=qn|jƒ}|sUqn|\}}    tdt|    |dƒƒ}    |j|dƒ|    ||<|j|dƒ|    ||<qWtjd|||||fƒdS(NiRigY@s4    ¾õÐÑ·µ»¹: quality=%s,awakeLV=%s,ratio=%s,%s,×Ü%s(    RWRRRR˜RýRkR]RR(
RaRÊRR~R„t
retAwakeLVR|R®R¯R°((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRq/s   c Cs®tjƒj|ƒ}|j}tjd|ƒtjddƒ}g}i}|jƒjt    j
ƒ}x¯|D]§}    |    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ƒ}t|
ƒ}|r·tjd|    ||fƒqlntjd    |ƒ}|sÕqln|jƒ}|
jt    jƒ}|
jt    jƒ}|
jt    jƒ}tjd
|ƒ}|s5qlntjd |    |||||fƒ|jƒ}xS|D]K\}}td t|d ||d ƒƒ}|j|dƒ|||<qkWtjd|||||fƒt ||||ƒt!||||ƒ|j"|    |
gƒqlW|s!dSx3|D]+\}    }
t#j$||
|
j ƒt%dƒq(W|rªg|j&ƒD]\}}||g^qj}t'j(||ddt%igƒndS(NsÎ佫Dzɢ: itemIndexList=%sRciis7¾õÐѹýµÄÎ佫ÐèÏÈÖØÉúºó²Å¿ÉDzɢ! itemIndex=%s,awakeLV=%ss Ëø¶¨µÄÎ佫ÎÞ·¨Ç²É¢! itemIndex=%ss5ÉÏÕóÖеÄÎ佫ÎÞ·¨Ç²É¢! itemIndex=%s,lineupValueList=%ss?ÉúЧÖеĿ¨ÅÆÎÞ·¨Ç²É¢! itemIndex=%s,heroID=%s,effPresetIDList=%sRORPsHDzɢ: itemIndex=%s,heroID=%s,quality=%s,heroLV=%s,breakLV=%s,heroStar=%sigY@s5    ÐǼ¶·µ»¹: quality=%s,heroStar=%s,ratio=%s,%s,×Ü%st HeroDismissRe()RR•R–t ItemIndexListRRRãRRR#R2RR!R"R@RCR½RER4RWRŽRQR’RRRSR?RBRAtGetDismissReturnItemsRýRkR]RoRpR\RšRÀR6RR%Rs(RhR§R¨RR³R~tdismissItemListRR7R‹RtRÊt lineupCountR‘tlineupValueListR;RR`RaR«RªtheroStarRbtdismissReturnItemstitemIDt    itemCountt
starRetCntR€RR‚((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroDismissHsr      .   # % #+"c Cswtjƒj|ƒ}|j}d}|j}i}x*|D]"}|j}    |j}
|    ||
<q:Wt||||ƒdS(Ni(RR•R–tPresetIDt HeroPosListtPosNumR—tDoSaveHeroPreset( RhR§R¨RR9R:t heroPosListtitemIndexPosDicttposInfoR<R‹((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnHeroPresetSave—s                 icCs tj||tjƒs-tjd|ƒdSi}g}xC|jƒD]5\}}||krdqFn|j|ƒ|||<qFWtjd||f|jƒƒ|j    ƒj
tj ƒ}d}    i}
xût |j ƒƒD]ç} |j| ƒ} | sÖ| jƒrqÖn| jtjƒ} | s"qÖn| jƒ}xŒt | ƒddd…D]q}|jtj|ƒ}t|ƒd|krqHn|jtj|ƒ|    d7}    |    tjkr¯Pn| |
| <qHWqÖWg}i}xü|jƒD]î\}}|dksÚ||j ƒkr
qÚn|j|ƒ} | sÚ| jƒr2qÚn| jƒ}||krgtjd||fƒqÚn|j|ƒ| jƒ}t|||ƒ}|jtj|ƒ||
kr¾| |
|<n|||<qÚWx|
jƒD]}|jƒqÙWtj|ƒj|||ƒdS(Ns!¸ÃÎ佫ÕóÈÝÔ¤Éè²»¿ÉÓÃ! presetID=%ss!±£´æÎ佫ԤÉèÕóÈÝ: presetID=%s, %siiÿÿÿÿis,ͬ¸öÎ佫ֻÄÜÉÏÕóÒ»¸ö! itemIndex=%s,itemID=%s(t PlayerPresettGetFuncPresetIDStateR#tFuncPreset_HeroRRRR\RRRR2RWRR!R"RER4RÙRŽtGetLineupValuet DelUserAttrt LineupObjMaxRQR3R_tvaluesRÞRqRrtUpdHeroItemPreset(RR9RšR:t heroPosDictt    indexListR‹R<R7tdelCountt syncItemDictRhRtRRáR‘R=t
heroIDListt heroItemDictR‘tsyncItem((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR˜¦sl     
      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=%stLineupRecommendRORPs)Î佫δ»ñµÃ¹ý£¬²»¿É¼¤»îÕóÈÝÍÆ¼ö! heroID=%ss=ÕóÈÝÍÆ¼öÁì½±! recommendID=%s,index=%s,heroID=%s,awardState=%sRU(RtToIntDefRRtDef_PDict_HeroRecommendtpowRRRRt GetHeroIDListR¸RStGetRecommendAwardMoneyRoRRRWRR    ( Rt recommendIDRht
awardStateRØR©R;R`RaRbR\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    (RRR¶R‚RR(RR·RƒR„((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroFatesStatescCs|jtj|ƒ}|dS(Ni
(RRR¶(RR·R„((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroFatesLV!scCsH|jtj|ƒ}|d|d}tj|tj||ƒ}|S(Ni
(RRR¶RR(RR·tlvR„((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroFatesLV$scCs`tjƒj|ƒ}|j}|j}|j}|dkrOt|||ƒn t||ƒdS(Ni(RR•R–tFatesIDR!RŠt__onHeroFatesLVUPt__onHeroFatesActivite(RhR§R¨RR·R%R³((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroFates4s              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=%siRe( R¸RRRRRR±RoR¹tGetAwardItemListR%RsR6R
(RR·RØ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(#R¸RRRRRtGetFatesQualityR±RºtGetNeedStarTotaltGetNeedHeroCnttGetNeedQualityRqRrRRR#R2RWRR!R"RQt__checkHeroFatesLVUPItemR\R@RAtsumR£R¸RšRÀR6R¼R
RG(RR·t useIndexListRØt fatesQualityR©t fatesNextLVR¬t needStarTotalt needHeroCntt needQualityRt heroStarDicttolPlayerR7RhRtR;R‡t nowStarTotal((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR¾Tsf            #
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(NROsK    ÓëËÞÔµËùÐèÆ·Öʲ»Í¬µÄ¿¨ÎÞ·¨Ê¹ÓÃ: 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(RRRRSRRR@R#R?RBRARCR½RER4RWRŽRQR’R(RÓRÑR‹RtR;R`RaR«RªRRÊRR‘RŽR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRÊ‘s8    .  cCs!t|ƒtj|ƒjƒdS(N(tCalcHeroAddAttrRqRrtRefreshRoleAttr(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRG·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(tGetIDRRVRWtGetHeroSkinAttrCounttGetHeroSkinAttrByIndext    GetSkinIDRR†tGetRoleAttrIDListtGetRoleAttrValueListtGetRoleAttrPerStarAddListR‚R¸R]RRRqRrt SetCalcAttrRtDef_CalcAttr_HeroSkintGetHeroFatesCounttGetHeroFatesByIndext
GetFatesIDR¸Rºt GetAttrIDListtGetLVAttrValueListtDef_CalcAttr_HeroFates(Rt skinAttrDictt fatesAttrDictR©RgRhRØR€tskinStart
attrIDListt attrValueListtperStarAddListtitattrIDtattrValuePerStart    attrValueR·tfatesLVtlvAttrValueListtattrValuePerLV((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(NROi
i( tNoneRRVRWRNRORQR\RPRRRRRvR1tChPyNetSendPackt    tagSCHeroR/t BookInitStatetSkinListt tagSCHeroSkinR0RtStateR†tStarR¸tSkinCntt tagSCHeroInfot HeroInfoListtHeroCntt NetPackCommont SendFakePack(RR©tsyncHeroIDListRgRhRØt syncInfoListR;R`R5theroR€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(RqRrtGetHeroPresetIDListt GetHeroPresetRªRRWR#R¢R\RôttagSCHeroPresetR•tHeroItemIndexListR¸RþttagSCHeroPresetInfot
PresetListt    PresetCntRÿR( Rt heroPresetIDRÓt
syncIDListt
presetListt
heroPresettposNumItemIndexDicttheroItemIndexListR<tpresetR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSync_HeroPresets6                  cCs5tjƒ}|jtjƒ|_tj||ƒdS(N(RôttagSCPlayerHeroInfoRRRtAwakeRebirthCntRÿR(RR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRAs 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(RRVRWtGetLineupRecommendCounttGetLineupRecommendByIndextGetRecommendIDRRR¯RóRôttagSCLineupRecommendt RecommendIDt
AwardStateR\ttagSCLineupRecommendInfot RecommendListR¸tCountRÿR(
RRt recommendListRgRhRØR³R´t    recommendR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR    Hs,                      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(RRVRWRàRáRâR¸RóRôttagSCHeroFatesR½RùRºtFatesLVR\ttagSCHeroFatesInfot    FatesListR¸R RÿR(
RRt    fatesListRgRhRØR·RƒtfatesR((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR
cs.                      (ZRšR#RRR%R¤RôRžRÿRRqRR¡RRRæRR RR RRNRLRuRoRpR}R~RR…R†RˆRŒR’RµRºRÏR¿RRÁRÚRþRR RR RRRRRR&R#R"R7R3R:R2R8R4RMRSRKRbRƒRoRpRqR”RœR˜R3R RµR¸R¹RºR¼RÀR¿R¾RÊRGRÕRóRRRR    R
(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt<module>s®                                            ,                                           /        ;         r                  +     .         E     ?        P    #                     )             (        T                O     B             #                             =    &        2 . $