hwj35
2026-01-09 1e8fc55d7910829e36b7eb7ce7bdaeef0fda2d4d
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
Ï^ic@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„Zejd„Zd„Zd„Zd„Z d„Z!d„Z"e#d„Z$d„Z%d„Z&d„Z'd„Z(e#d„Z)d„Z*e#d„Z+d„Z,d„Z-e#d „Z.d!„Z/d"„Z0d#„Z1d$„Z2e#d%„Z3d&„Z4d'„Z5d(„Z6d)„Z7d*„Z8d+„Z9d,„Z:d-„Z;d.„Z<d/„Z=d0„Z>d1„Z?d2„Z@d3„ZAd4„ZBd5„ZCd6„ZDd7„ZEd8„ZFd9„ZGd:„ZHd;„ZId<„ZJdd=„ZLdd>„ZMd?„ZNdd@„ZOddA„ZPdS(Biÿÿÿÿ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.pytOnPlayerFirstLogin1s
 
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 6s4   
 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.pyRUs      )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_IudetHeroTalentIDAwakeRandR5tInitHeroTalent(t
singleItem((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt InitHeroItemis.
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 GetInitWeighttappendRHR#RGRItgettremovet AddUserAttr(RNR<t heroIpyDatatqualitytqualityIpyDatat initTalentCnttinitTalentWeightt talentIDDictttalentWeightListt
ipyDataMgrtindext talentIpyDatattalentIDt
initWeightt_t randTalentIDt randWeightID((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRM…sB       cCsŽ|jƒ}tjd|ƒ}|s(dSt||ƒsŠt||dƒtjd||jƒƒt||gƒt    j
|ƒj |ƒndS(NRPisÊ״줻îÎ佫: heroID=%s( RRRRStGetHeroActivitetSetHeroActiviteRRRRt PlayerOnlinetGetOnlinePlayertOnHeroItemUpate(RtheroItemR<Ra((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.pyRpÁsicCs˜|jtj|ƒ}|d}|r9|r0dSd}nd}tj|dd|ƒ}tj|tj||ƒtjd|||f|jƒƒdS(Ni
iis0ÉèÖÃÎ佫¼¤»î״̬:%s,bookState=%s,updBookState=%s(    RRRwRtSetValueRRRR(RR<tisActt    bookStateRxt updBookState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRqÇs
    #cCs$|jtj|ƒd}|dkS(Ni
i(RRRw(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(    RRRwRRyRRRR(RR<RzR{RxR|((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytSetHeroBookInitStateÚs
    #cCs}|jƒjtjƒ}|dks6||jƒkr:dS|j|ƒ}| s\|jƒr`dS|jƒtj    krydS|S(Ni(
RRR#R2RR!R"tGetTypeRtDef_ItemType_Hero(Rt    itemIndexR8Ru((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ÿÿÿÿ(RFR#R5RXtGetUserAttrByIndextGetLineupValue(RuR:t lineupCounttlpIndexR>tlpIDRmR=((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroLineupPosNum$s  cCsYxRt|jtjƒƒD]8}|jtj|ƒ}t|ƒdtjkrtSqWtS(Ni(    RXRFR#R5R„R…R3tTrueR7(RuR‡R>((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt InMainLineup3s
cCsMtjƒ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(    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ƒRRRRSRTRAR#RCR@Rt GetUPCostItemRRRtrptItemt
ItemCommontGetItem_FromPack_ByIDt
ReduceItemRŠR?RrRsRttPlayerActivitytAddDailyTaskValueRtDailyTask_HeroLVUPt
PlayerTaskt AddTaskValuetTaskType_HeroLVUPt PlayerSuccesstDoAddSuccessProgresstSuccType_OSAHeroLVUP(Rit
clientDatattickRtplayerIDR‚RuR<RaRbtbreakLVtheroLVtqualityLVIpyDatat
nextHeroLVt costItemInfot
costItemIDt costItemCounttitemPackt    hasEnought itemIndexListt    updHeroLV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt
OnHeroLVUPBsT           
  cCsd|jƒ}tjd|ƒ}|s(dS|jƒ}tjdi|d6tƒ}|sZdSt|ƒS(NRPiRŒtQuality(RRRRSRTtGetIpyGameDataByConditionRŠtlen(RuR<RaRbt lvIpyDataList((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt GetHeroLVMaxqs  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=%sRPs2heroID=%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ƒRRRt GetIsLockedRFR#RKtErrLogRLRARDR@RCRRSRTRBtGetHeroStarMaxR“tDelItemRR7t DoHeroUpdStarRrRsRt(RiRŸR RR¡R‚t useItemIndexRutuseItemR<t    useHeroIDt    washIDCntt awakeRandCntt
useAwakeLVt    useHeroLVt
useBreakLVRaRbtstartawakeLVtstarMaxtuseStartaddStartupdStar((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroStarUP…sn                   # 
 
    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(NRPiRQt    HeroAwake( RRRRSRTtGetInitStarUpperRAR#RDtGetIpyGameDataListNotLogt
GetAwakeLVtGetAddStarUpper( RuR<RaRbRct 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(RAR#RBtGetItemR?t__DoHeroStarTalentUpR–R—RtDailyTask_HeroStarUPR™RštTaskType_HeroStarUPRœRtSuccType_OSAHeroStarUPt    Sync_Item(RRuRÇ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("RRRt
GetFuncCfgRËRAR#RDtGetUnlockTalentSlotRFRGRIR7RXtminR„R]R°RRRWRYRZR[t GetWashWeightRVR^R_RiRŠtrandomtchoiceRHt    enumerateR`( RNtaddLVR<tcommTalentSlott talentMaxLVt maxUnlockSlottawakeIpyDataListRÃRÑtunlockTalentSlottidCounttlvCounttidListtlvListtunfullLVIDListtunfullLVIDListUnlockthaveUpRiRkttalentLVt idWeightDictRgRhRjtweightRmRnRot    zeroIndextrandIDt    randIndextidLV((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRÓñs¼                 
 
 
  $ 
 
 
    cCs}d}|jƒjtjƒ}xXt|jƒƒD]D}|j|ƒ}| s1|jƒr_q1n||jtj    ƒ7}q1W|S(Ni(
RRR#R2RXRR!R"RARB(Rt    totalStarR8RiRu((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ÖRøRtLogR(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(
NRPsDÇëÇóÎä½«Í»ÆÆ: 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ƒRRRRSRTRAR#R@RCRt GetUPLVNeedtGetUPCostItemListRRRR’R“tGetCostItemIndexListt DelCostItemtSetHeroBreakLVRrRsRt(RiRŸR RR¡R‚RuR<RaRbR£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#RCR×(RRuR¢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( NRPsDÇëÇóÎ佫¾õÐÑ: 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ƒRRRRSRTRAR#RBRDRRÜR‘RRRR’R“R”R•RŠtSetHeroAwakeLVRrRsRt(RiRŸR RR¡R‚RuR<RaRbtstarLVRÃ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#RDtunlockTalentSlotByAwakeR×(RuRÃ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(RRRAR#RDRRËRÝRFRGRÜRLRXR„R]RRRWRYRZR[tGetAweakWeightRVR^R_R`(RNR<RÃRçRæRÑRèRéRäR¾RëRiRkRñRgRhRjRòt randTalentCntRmRnRo((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(RiRŸ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|ƒ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ƒRRRFR#RLRRR„RÒRGRIRXRÞR]RRÜR¶RHRâR`RR×RrRsRt(RR‚RRØR¡RuR<R¾tselectTalentIDRNRéRêRëRìRiRkRðRä((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRBsV             
 cCsžtjƒj|ƒ}|j}|j}|j}t||ƒ}|sIdS|dkrht|||ƒn2|dkr‡|jt    j
ƒnt ||||ƒdS(Nii( RRŽRRtLockTalentIndexstOPTypeRƒtHeroTalentWashReplaceRHR#RKtHeroTalentWash(RiRŸR RR‚tlockTalentIndexstopTypeRu((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ƒ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(%RRRRRFR#RKR¶RRÜRRÒRGR_R°RRRR’R“R”R•RŠRXR„R]RWRYRZR[RßRâRVR^RHR`RJR×(RR‚RuRR<R½t
washItemIDtlockCostItemListRNRét    lockIndextlockCnttwashCostItemCountR©RªtwashItemIndexListt
washIDListRiRkRñRgRhRjRòRnRo((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|ƒdS(Ns.Î佫ûÓÐÏ´Á¶²»ÐèÒªÌæ»»! itemIndex=%s,heroID=%ss2Î佫ϴÁ¶Ìæ»»! itemIndex=%s,heroID=%s,washIDList=%s(RRRÒRFR#RKRR¶RHRGRXR„R]R`R×RRrRsRt(    RR‚RuR<RNRéR&RiRk((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|ƒdS(NRPis*¸ÃÎ佫²»´æÔÚ¸ÃÆ¤·ô! heroID=%s,skinIndex=%sis5¸ÃÎ佫Ƥ·ôδ½âËø! heroID=%s,skinIndex=%s,skinState=%s(RRŽRRt    SkinIndexRƒRRRRSt GetSkinIDListR°RRRtDef_PDict_HeroSkintpowR?R#RERrRsRt( RiRŸR RR‚t    skinIndexRuR<Rat
skinIDListt    skinState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnHeroWearSkins,           cCsÁ|jtj|ƒ}|rX|td|ƒB}tjd||||f|jƒƒn;tj||dƒ}tjd||||f|jƒƒtj    |tj||ƒt
||gƒdS(Nis=¼¤»îÎ佫Ƥ·ô: heroID=%s,skinIndex=%s,skinState=%s,updState=%sis=ʧЧÎ佫Ƥ·ô: heroID=%s,skinIndex=%s,skinState=%s,updState=%s( RRR)R*RRRt SetBitValueRRR(RR<R+tisActiveR-tupdState((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytActiveHeroSkins         cCsVtjƒj|ƒ}|j}|j}|dkr6n|dkrEn t||ƒdS(Nii(RRŽRtHeroIDtBookTypet__doHeroBookAct(RiRŸR RR<tbookType((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroBookUP7s           cCsd}tjƒ}xft|jƒƒD]R}|j|ƒ}|jƒ}|jƒsXq%nt||ƒsmq%n|d7}q%W|S(Nii(RRWRXt GetHeroCounttGetHeroByIndext    GetHeroIDtGetPlayerCanUseR~(RtbookCntRhRiRÑR<((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetHeroBookActCntDs   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 HeroBookActt notifyAward(RR~RRRRSRTRpRtGetBookActAwardMoneyR°Rt    GiveMoneyRŠRR=R™t UpdTaskValueRtTaskType_HeroBookRœtUptateSuccessProgressR#tSuccType_OSAHeroBook(
RR<R¡RaRbRctawardMoneyInfot    moneyTypet
moneyValueR<((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR5Rs4     " cCs]tjƒj|ƒ}|j}|j}t||ƒ}|s@dS|j|rRdndƒdS(Nii(RRŽRRtIsLockRƒt SetIsLocked(RiRŸR RR‚tisLockRu((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 >= %sRPiR
it 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ƒRAR#R@RCRDRRRRRRÜRRRSRTtGetIpyGameDataNotLogtGetRebirthCostMoneytinttmaxtevaltGetFuncCompileCfgRt    HaveMoneyt__calcHeroLVReturnitemt__calcHeroBreakReturnitemt__calcHeroAwakeReturnitemtPayMoneyRÒR?R×RR%tGivePlayerItemOrMailR7RRRrRsRt(RiRŸR RR‚tlvResett
breakResett
awakeResetRuR£R¢RÃt
rebirthCntt rebirthCntMaxR<RaRbt lvCostMoneytbreakCostMoneytawakeCostMoneyRGtqualityAwakeIpyDatatcostMoneyTotaltratiotreturnItemDictRÚ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(    RXRRSR‘RVRUR^RR(
RbR£RjRit
returnDicttretLVR¤R¦R§R¨((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRZs   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(    RXRRSRRVRUR^RR(
RbR¢RjRiRot
retBreakLVtqualityBreakIpyDataRR§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(    RXRRSR‘RVRUR^RR(
RbRÃRjRiRot
retAwakeLVRgR¦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}tj|ƒ}|j    ƒj
t j ƒ}    xÁ|D]¹}
|
dks{|
|    j ƒkr¥q{n|    j|
ƒ} | s{| jƒrÍq{n| jt jƒ} | rtjd|
| fƒq{n| jƒr%tjd|
ƒq{n| jt jƒ} | rˆgt| ƒD]}| jt j|ƒ^qJ}tjd|
|fƒq{n| jƒ}|j|ƒ\}}}|
|krØtjd|
||fƒq{ntjd    |ƒ}|söq{n|jƒ}| jt jƒ}| jt jƒ}| jt jƒ}tjd
|ƒ}|sVq{ntjd |
|||||fƒ|jƒ}xS|D]K\}}td t |d ||d ƒƒ}|j!|dƒ|||<qŒWtjd|||||fƒt"||||ƒt#||||ƒ|j$|
| gƒq{W|sBdSx3|D]+\}
} t%j&|| | j ƒt'dƒqIW|rËg|j(ƒD]\}}||g^q‹}t)j*||ddt'igƒndS(NsÎ佫Dzɢ: itemIndexList=%sRMiis7¾õÐѹýµÄÎ佫ÐèÏÈÖØÉúºó²Å¿ÉDzɢ! itemIndex=%s,awakeLV=%ss Ëø¶¨µÄÎ佫ÎÞ·¨Ç²É¢! itemIndex=%ss5ÉÏÕóÖеÄÎ佫ÎÞ·¨Ç²É¢! itemIndex=%s,lineupValueList=%ss<ÉúЧÖеĿ¨ÅÆÎÞ·¨Ç²É¢! itemIndex=%s,heroID=%s,effItemIndex=%sRPRQsHDzɢ: itemIndex=%s,heroID=%s,quality=%s,heroLV=%s,breakLV=%s,heroStar=%sigY@s5    ÐǼ¶·µ»¹: quality=%s,heroStar=%s,ratio=%s,%s,×Ü%st HeroDismissRO(+RRŽRt ItemIndexListRRRÜRrRsRRR#R2RR!R"RARDRµRFR5RXR„RRtGetHeroEffectiveCardRSRTR@RCRBtGetDismissReturnItemsRVRUR^RZR[R]R“R¸R7RR%R^( RiRŸR RR«RitdismissItemListRjtolPlayerR8R‚RuRÃR†R‡tlineupValueListR<Rmt effItemIndexRaRbR£R¢theroStarRctdismissReturnItemstitemIDt    itemCountt
starRetCntRkRlRm((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt OnHeroDismissCst      .   # % #+"cCs­tjƒ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%||ƒ|t    j&kr©x9t'j(D].}|j#|t$d|ƒ}|j%||ƒqdWt!j)||ƒndS(Ns#²»´æÔÚ¸ÃÕóÈÝ£¬ÎÞ·¨±£´æ! lineupID=%ss±£´æÕóÈÝ: lineupID=%s, %siiÿÿÿÿis,ͬ¸öÎ佫ֻÄÜÉÏÕóÒ»¸ö! itemIndex=%s,itemID=%stexclusiveMapID(*RRŽRtLineupIDt    ShapeTypet HeroPosListtPosNumRR]R#t
LineupListRRRRR2RXRR!R"RFR5RÒR„R…t DelUserAttrt LineupObjMaxRRRR4R`tvaluesR×RrRst    GetLineupR7t    UpdLineupR3RtExclusiveBatAttrMapIDListtreloadEffHeroCard(RiRŸR RR:R;t heroPosListt heroPosDictt    indexListtposInfoR=R‚R8tdelCountt syncItemDictRuR†RÚR‡R>t
heroIDListt heroItemDictR~tsyncItemRytlineupR‚texclusiveLineup((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytOnHeroLineupSave”s†                          
      cCs|d|d|S(Ni'id((R:R;R=((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR4è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=%sR?(RtToIntDefRRtDef_PDict_HeroRecommendR*RRRSt GetHeroIDListR°RTtGetRecommendAwardMoneyRpRRRARŠR    ( Rt recommendIDRit
awardStateRÑR•R<RaRbRcRFRGRH((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pytGetLineupRecommendAwardõs@ 
   cCs|jtj|ƒ}|dS(Ni
(RRtDef_PDict_HeroFatesInfo(RtfatesIDtinfo((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¤tstateR¥((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tFatesIDRRut__onHeroFatesLVUPt__onHeroFatesActivite(RiRŸR RR¤RR«((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=%siRO( R¦RRRRSRžRpR¨tGetAwardItemListR%R^R7R
(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¦RRRRStGetFatesQualityRžR©tGetNeedStarTotaltGetNeedHeroCnttGetNeedQualityRrRsRRR#R2RXRR!R"RRt__checkHeroFatesLVUPItemR]RARBtsumRŠR°R“R¸R7R«R
tRefreshLordAttr(RR¤t useIndexListRÑt fatesQualityR•t fatesNextLVR¤t needStarTotalt needHeroCntt needQualityRt heroStarDictRyR8RiRuR<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ƒ}|j|ƒ\}}}||kr¯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=%ss@    ÉúЧÖеĿ¨ÅÆÎÞ·¨Ê¹ÓÃ! itemIndex=%s,heroID=%s,effItemIndex=%s(RRSRTRRRAR#R@RCRBRDRµRFR5RXR„RRRvRŠ(RyRÁR‚RuR<RaRbR£R¢R RÃR†R‡RzRmR{((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR¹‘s8    .  cCs!t|ƒtj|ƒjƒdS(N(tCalcHeroAddAttrRrRstRefreshRoleAttr(R((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR»·s
cCs<i}|jƒ}tjƒ}xçt|jƒƒD]Ó}|j|ƒ}|jƒ}t||ƒsgq1nt||ƒ}|dkrˆq1n|j    ƒ}|j
ƒ}    xatt t |ƒt |    ƒƒƒD]>}
||
} |    |
} | |} |j | dƒ| || <qÂWq1Wtjd||ƒtj|ƒjtj|ƒdS(Nis ËÞÔµÊôÐÔ: %s(tGetIDRRWRXtGetHeroFatesCounttGetHeroFatesByIndext
GetFatesIDR¦R©t GetAttrIDListtGetLVAttrValueListRÞR°R^RRRrRst SetCalcAttrRtDef_CalcAttr_HeroFates(Rt fatesAttrDictR¡RhRiRÑR¤tfatesLVt
attrIDListtlvAttrValueListtitattrIDtattrValuePerLVt    attrValue((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRĽs*      (
 
 
"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|    _|j|    ƒqW|sYdStjƒ}
||
_t|
jƒ|
_tj||
ƒdS(NRPi
(tNoneRRWRXR8R9R;R]R:RSRRRwtDef_PDict_HeroBookHtChPyNetSendPackt    tagSCHeroR3R)t    SkinStatet BookInitStatet tagSCHeroInfot HeroInfoListR°tHeroCntt NetPackCommont SendFakePack( RR•tsyncHeroIDListRhRiRÑt syncInfoListR<Ratherot
clientPack((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyRØs>        #          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.0RkRl((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pys
<dictcomp>s    ii(R#R‡RrRsR‹R7R–RRXR‰R]RØt tagSCLineupR:RƒR;R„tHeroItemIndexListR°RÞttagSCLineupInfot    LineupCntRßRà( RR:t
syncIDListt
lineupListRyR˜tposNumItemIndexDicttheroItemIndexListR=t
packLineupRä((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt Sync_Lineups8                   cCs5tjƒ}|jtjƒ|_tj||ƒdS(N(RØttagSCPlayerHeroInfoRRRtAwakeRebirthCntRßRà(RRä((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR's 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(RRWRXtGetLineupRecommendCounttGetLineupRecommendByIndextGetRecommendIDRRRRÖRØttagSCLineupRecommendt RecommendIDt
AwardStateR]ttagSCLineupRecommendInfot RecommendListR°tCountRßRà(
RRêt recommendListRhRiRÑR R¡t    recommendRä((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(RRWRXRÇRÈRÉR¦RÖRØttagSCHeroFatesR¬tStateR©tFatesLVR]ttagSCHeroFatesInfot    FatesListR°RúRßRà(
RRêt    fatesListRhRiRÑR¤R§tfatesRä((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyR
Is.                      (QR“R#RRR%RœRØR–RßRRrR™RRRàRR RR RRORMRvRpRqR~RRƒR3R‰R‹R­R²RÈR·RŠR¹RÓRøR R    RRR RRRRRRR.R2R7R=R5RLRnRZR[R\RRšR4R…R¢R¦R¨R©R«R¯R®R­R¹R»RÄRÖRRïRR    R
(((siD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHero.pyt<module>sš                                           ,              ?             /        ;         r             +     .         E     ?        P    !                  N        T                Q    T             #                             =    &         + $