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
ó
Íмjc@s1ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZd„Zd„Zd„Zd„Zd„Zd„Zdd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Z dd„Z!d„Z"d„Z#d„Z$de%gd„Z&d„Z'd„Z(d„Z)d„Z*d„Z+d„Z,d„Z-d„Z.dd„Z0e1d „Z2d!„Z3d"„Z4d#„Z5d$„Z6e1d%„Z7d&„Z8d'„Z9e1d(„Z:d)„Z;d*„Z<d+„Z=d,„Z>d-„Z?dd.„Z@d/„ZAd0„ZBd1„ZCd2„ZDd3„ZEd4„ZFd5„ZGd6„ZHd7„ZId8„ZJd9„ZKd:„ZLd;„ZMd<„ZNd=„ZOdd>„ZPd?„ZQe%d@„ZRdS(AiÿÿÿÿNcCs9|jtjƒr5tj|tjdƒt|ƒndS(Ni(tNomalDictGetPropertytChConfigtDef_PDict_BeastSoulRebirthCntt PlayerControltNomalDictSetPropertytSync_PlayerBeastInfo(t    curPlayer((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyt PlayerOnDay's cCs"t|ƒt|ƒt|ƒdS(N(tSync_BeastInfoRtSync_BeastCallInfo(R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyt OnPlayerLogin-s
 
 
cCsw|jtjdƒ|jtjƒr;|jtjdƒn|jtjƒrc|jtjdƒn|jtjƒr‹|jtjdƒn|jtjƒr°|j    tjƒn|jtj
ƒrÕ|j    tj
ƒn|jtj ƒrú|j    tj ƒn|jtj ƒr|j    tj ƒn|jtj ƒrD|j    tj ƒn|jtjƒri|j    tjƒnt|ƒdS(Nii(t SetUserAttrt ShareDefinetDef_IudetBeastLVt GetUserAttrtDef_IudetBeastStartDef_IudetBeastSoulLVtDef_IudetBeastSkintGetUserAttrCounttDef_IudetBeastTalentIDt ClearUserAttrtDef_IudetBeastTalentIDLVtDef_IudetBeastTalentWashLocktDef_IudetBeastTalentWashIDtDef_IudetBeastTalentIDSoulRandtDef_IudetBeastLineuptInitBeastTalent(t
singleItem((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyt InitBeastItem3s*
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²»ÄÜÒ»Ñù
    tBeastNt BeastQualityii(t GetItemTypeIDt IpyGameDataPYtGetIpyGameDatat
GetQualitytGetInitTalentWeightt    GameWorldtGetResultByWeightListtIPY_DatatrangetGetBeastTalentCounttGetBeastTalentByIndext GetTalentIDt GetInitWeighttappendRR RRtgettremovet AddUserAttr(RtBeastIDt BeastIpyDatatqualitytqualityIpyDatat initTalentCnttinitTalentWeightt talentIDDictttalentWeightListt
ipyDataMgrtindext talentIpyDatattalentIDt
initWeightt_t randTalentIDt randWeightID((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRMsB       cCs‚|jƒ}tjd|ƒ}|s(dSt||ƒs~t||dƒtjd||jƒƒt||gƒt    |ƒndS(NRisÊ״줻îÉñÊÞ: beastID=%s(
RR R!tGetBeastActivitetSetBeastActiviteR$tDebugLogt GetPlayerIDRtRefreshBeastAttr(Rt    beastItemtbeastIDt beastIpyData((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytOnGiveBeastItemys  cCs|jtj|ƒd}|S(Ni
(RRtDef_PDict_BeastBook(RRFtactState((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR@ŠsicCs˜|jtj|ƒ}|d}|r9|r0dSd}nd}tj|dd|ƒ}tj|tj||ƒtjd|||f|jƒƒdS(Ni
iis0ÉèÖÃÉñÊÞ¼¤»î״̬:%s,bookState=%s,updBookState=%s(    RRRIR$tSetValueRRRBRC(RRFtisActt    bookStateRJt updBookState((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRAs
    #cCs|jtj|ƒdS(Ni
(RRtDef_PDict_BeastSkinInfo(RtskinID((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytGetBeastSkinState scCsK|jtj|ƒ}|ddtd|ƒ}tj|tj||ƒS(Ni
i(RRROtminRR(RRPtstatetinfo((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytSetBeastSkinState£scCs|jtj|ƒdS(Ni
(RRRO(RRP((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytGetBeastSkinStar§scCsB|jtj|ƒ}|d|d}tj|tj||ƒS(Ni
(RRRORR(RRPtstarRT((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytSetBeastSkinStarªscCs}|jƒjtjƒ}|dks6||jƒkr:dS|j|ƒ}| s\|jƒr`dS|jƒtj    krydS|S(Ni(
tGetItemManagertGetPackR trptBeasttGetCounttGetAttIsEmptytGetTypeRtDef_ItemType_Beast(Rt    itemIndextcurPackRE((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyt GetBeastItem¯scCs_|jtjƒ}|sgSg}x6t|ƒD](}|jtj|ƒ}|j|ƒq/W|S(N(RR tDef_IudetBeastEffPresetIDR'tGetUserAttrByIndexR,(REt    dataCountteffPresetIDListtlpIndextpresetID((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytGetBeastEffPresetIDListºscCs4|jtj|ƒ}|d}|d}||fS(Ni
(RRtDef_PDict_BeastCallOutRet(RtnumtretValueRFtisBuy((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytGetBeastCallOutRetÅs
 
icCs:|d|rdnd}tj|tj||ƒ}|S(Ni
ii(RRRRk(RRlRFRnRm((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytSetBeastCallOutRetÊscCsstjƒj|ƒ}|j}|j}|dkrCt||ƒn,|dkr_t||ƒnt|d|ƒdS(Niit    confirmOK(R$tGetPlayerManagertGetPlayerByIndextReqTypetReqValuetDoSetBeastWishIDt
DoBuyBeasttDoRefreshBeastCall(R9t
clientDatattickRtreqTypetreqValue((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytOnBeastCallReq×s          cCsºtjddƒ}tjd|ƒ}|s.dS|jƒ}||krdtjd|||fƒdS|jƒs…tjd|ƒdStjd|ƒtj|t    j
|ƒt |ƒdS(Nt    BeastWishiRs7·ÇÐÄÔ¸ÉñÊÞÆ·ÖÊÎÞ·¨ÉèÖÃ! wishBeastID=%s,quality=%s != %ss*²»¿ÉË¢ÐÂÕÙ»½µÄÉñÊÞÎÞ·¨ÉèÖÃ! wishBeastID=%ss"ÉèÖÃÐÄԸƷÖÊÉñÊÞID! wishBeastID=%s( R t
GetFuncCfgR!R"R$RBt GetCallWeightRRRtDef_PDict_BeastWishIDR    (Rt wishBeastIDt wishQualityRGR2((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRvås   
cCs/|jƒ}t||ƒ\}}|r?tjd||ƒdStjd|ƒ}|s[dS|jƒ}tjd|ƒ}|sƒdS|jƒ}tjddƒ}    |     s¯| r³dS|j    ƒj
t j ƒ}
t j|    |
|ƒ\} } | s
tjd|    |f|ƒdStj|tjƒs3tjd|ƒdStjd||f|ƒtj|dd    |ƒ} | sodS| jƒ}tj| ƒ}tj|ƒj|| d
d tigƒsÂ| jƒdStj|id|6d d |ƒt j||
| |td ƒt||    |ƒt|||dƒt |ƒdS( Ns¸ÃÉñÊÞÒѹºÂò! num=%sRRt    BeastCallis5µÀ¾ß²»×ãÎÞ·¨¹ºÂòÉñÊÞ! costItemID=%s, costItemCount=%ssÉñÊÞ±³°üûÓпÕλÖÃÎÞ·¨¹ºÂò!s¹ºÂòÉñÊÞ! num=%s,beastID=%sRteventtBuyBeasttdataEx(!RCRoR$RBR R!R"tGetBuyCostItemCntRRYRZt IPY_GameWorldtrptItemt
ItemCommontGetItem_FromPack_ByIDt ItemControlertCheckPackHasSpaceR R[tGetOutPutItemObjt GetUserDataRtGetItemPackTypetPlayerItemControlert    PutInItemtFalsetCleartNotifyGiveAwardInfot
ReduceItemtTruet__onUseCallItemRpR    (RRltplayerIDRFRnRGR2R3t costItemCountt
costItemIDtitemPackt    hasEnought itemIndexListREtitemDatatpackType((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRwösN    *
 
cCs•|jƒ}|jtjƒ}tjd||||f|ƒ|sXtjd|ƒdS|rgt}ntjddƒ}|sÞx t    ddƒD]}t
||ƒ\}}    |    r¶qn|sÀPntj d|ƒ}
|
sÞqn|
j ƒ} | |kr| rtj d||| f|ƒdSqWtjddƒ} tjdd    ƒ} | sT| rXdS|jƒjtjƒ}tj| || ƒ\}}|s¯tjd
| | f|ƒdStj|||| tdƒt|| | ƒnttjdd ƒdƒ}|jtjƒ}g}g}xÄ|D]¼}tj d|ƒ}
|
sBqn|
j ƒ} ||krzd }tjd ||fƒn0| |krª|d7}tjd||fƒn|j|ƒ|j| ƒt|ƒ|krPqqWd }d }tj|tjƒrq||krhtjdd ƒ}|jtjƒd}||krntjd||fƒd }|}qnqqd }ntƒ}d }xEt|ƒ|krÇ|dkrÇ|d7}d }|d krÌ|}d }ntj|dƒ}||krü||krüqƒnd }||krztjdd    ƒ}||dkrV|}d }tjd||fƒqz|d7}tjd||fƒn|sžt |ƒ}tj|ƒ}n|sªqƒn|j|ƒ|j|ƒqƒWtjd|ƒ||krd }tjd||fƒn||kr1d }tjd||fƒnt!j"|tj|ƒt!j"|tj|ƒtjd||fƒt#||ƒt$|dtƒdS(NsCË¢ÐÂÉñÊÞ: wishBeastID=%s,confirmOK=%s,isFree=%s,gmOutBeastIDList=%ssδѡÔñ±Ø³öÉñÊÞÎÞ·¨Ë¢ÐÂR~ii
RsF´æÔÚ¸ßÆ·ÖÊÉñÊÞûÓжþ´ÎÈ·ÈÏˢв»Ö´ÐÐË¢ÐÂ! num=%s,beastID=%s,quality=%sR„is5µÀ¾ß²»×ãÎÞ·¨Ë¢ÐÂÉñÊÞ! costItemID=%s, costItemCount=%siis4GMÖ¸¶¨²ú³öÐÄԸĿ±êÉñÊÞ! wishOutCnt=%s,wishBeastID=%ss4GMÖ¸¶¨²ú³öÐÄԸƷÖÊÉñÊÞ! wishOutCnt=%s,wishQuality=%ss6ÌØÈ¨ÕÙ»½X´Î±Ø³öÆ·ÖÊÉñÊÞ! wishCallCnt=%s,wishQuality=%sids=Æ·ÖÊÉñÊÞ²ú³öX´Î±Ø³öÐÄԸĿ±êÉñÊÞ! wishOutCnt=%s,wishBeastID=%ss2Æ·ÖÊÉñÊÞ²ú³ö´ÎÊý¸üÐÂ! wishOutCnt=%s,wishQuality=%ss×îÖÕ²ú³öÉñÊÞ! %ss>    ²ú³öÐÄԸĿ±êÉñÊÞÖØÖÃÐÄÔ¸´ÎÊý! wishOutCnt=%s,wishBeastID=%ss?    ²ú³öÆ·ÖÊÉñÊÞÖØÖÃÌØÈ¨Ë¢Ð´ÎÊý! wishCallCnt=%s,wishQuality=%ss     wishOutCnt=%s,wishCallCnt=%st isRefreshReti (%RCRRRR$RBR˜R RR'RoR!R"tLogRYRZR‰RŠR‹RŒR—R™tmaxtDef_PDict_BeastWishOutCntR,tlentPlayerGoldInvesttGetInvestStatetInvestType_LifetDef_PDict_BeastWishCallCntt__getBeastQualityRandListtGetResultByRandomListt__getBeastIDRandListRRt__getRandBeastRetValueListR    (RRqtisFreetgmOutBeastIDListRšR‚RƒRlRFRnRGR2RœR›RRžRŸtoutCntt
wishOutCnttrandBeastIDListtoutQualityListt gmOutBeastIDt mustQualityt wishCallCntt neecCallCnttqualityRandListtdoCntt randQualityt randBeastIDtwishQualityMustCnttbeastIDRandList((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRx(sÐ           
             !
      
     cCsÄttjddƒdƒ}tƒ}d}g}x„t|ƒ|kr¶|dkr¶|d7}tj|dƒ}|dkrq3nt|ƒ}tj|ƒ}|s¦q3n|j|ƒq3Wt    ||ƒS(NR„iiiidi(
R¤R RR«R¦R$R¬R­R,R®(RR±R¹RºR³R»R¾R¼((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyt__getDefaultCallBeastRetList«s    !
  cCsLg}x?t|dƒD].\}}t|||dƒ}|j|ƒqW|S(Nii(t    enumerateRpR,(RR³trandBeastRetListRlRFRm((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR®¾s
cCs±tjdƒ}|s­g}d}tjƒ}xjt|jƒƒD]V}|j|ƒ}|jƒ}|jƒ}|syq@n||7}|j||gƒq@Wtj    d|ƒn|S(NtBeastQualityRandListi(
R t GetConfigExR&R'tGetBeastQualityCounttGetBeastQualityByIndexR"R€R,t SetConfigEx(tbeastQualityRandListtrateR8R9R3R2t
callWeight((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR«Ås   
c    CsÓd|}tj|ƒ}|sÏg}d}tjƒ}x‚t|jƒƒD]n}|j|ƒ}||jƒkrwqJn|jƒ}|jƒ}|s›qJn||7}|j    ||gƒqJWtj
||ƒn|S(NsBeastIDRandList_%si( R RÃR&R't GetBeastCounttGetBeastByIndexR"t
GetBeastIDR€R,RÆ(    R2tkeyR¾RÈR8R9RGRFRÉ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR­Ös$
 
cCs3tj|tj|ƒtj|tj||ƒdS(N(tPlayerZhanlingtAddZhanlingValuetZhanlingType_BeastCallUsetPlayerActLunhuidiantAddLunhuidianValuetAwardType_UseItem(Rt    useItemIDtuseCount((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR™êscCsítjƒj|ƒ}|jƒ}|j}t||ƒ}|sCdS|jƒ}tjd|ƒ}|skdS|j    ƒ}    |j
t j ƒ}
tj d|||
|    f|ƒtjd|    |
ƒ} | sÈdS|
d} tjd|    | ƒstj d|    | f|ƒdS| jƒ} | sdS| \}}| s5| r9dS|jƒjtjƒ}tj|||ƒ\}}|stj d||fƒdStj||||tdƒ| }tj d|||f|ƒ|jt j |ƒt|ƒdS(    NRs;ÇëÇóÉñÊÞÉý¼¶: itemIndex=%s,beastID=%s,beastLV=%s,quality=%stBeastQualityLVis+²»´æÔÚ¸ÃÉñÊ޵ȼ¶: quality=%s,nextBeastLV=%ss7²ÄÁϲ»×㣬ÉñÊÞÎÞ·¨Éý¼¶! costItemID=%s, costItemCount=%st    BeastLVUPs/ÉñÊÞÉý¼¶: itemIndex=%s,beastID=%s,updBeastLV=%s(R$RrRsRCt    ItemIndexRcRR R!R"RR R RBt GetUPCostItemRYRZR‰RŠR‹RŒR—R˜R RD(R9RyRzRRšRaRERFRGR2tbeastLVtqualityLVIpyDatat nextBeastLVt costItemInfoRœR›RRžRŸt
updBeastLV((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyt OnBeastLVUPösL           
 
cCsd|jƒ}tjd|ƒ}|s(dS|jƒ}tjdi|d6tƒ}|sZdSt|ƒS(NRiRÖtQuality(RR R!R"tGetIpyGameDataByConditionR˜R¦(RERFRGR2t lvIpyDataList((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyt GetBeastLVMax!s  c!
Csÿtjƒj|ƒ}|jƒ}|j}|j}t||ƒ}t||ƒ}| sk| sk||krodS|jƒ}    |jƒ}
tjd||    ||
f|ƒ|    |
krÇtjd|ƒdS|j    ƒrñtjd||    f|ƒdS|j
t j ƒ} | r'tj d||    f|ƒdS|j
t jƒ} | r]tj d||    f|ƒdS|jt jƒ} | rtjd| |ƒdS|jt jƒ}|dkrÃtjd||ƒdStjd    |    ƒ}|sßdS|jƒ}|jt jƒ}|jt jƒ}t|    |ƒ}tjd
|    ||||f|ƒ||kretjd ||ƒdS|jt jƒ}|d}||}tjd ||    ||||f|ƒtj|||jƒtd ƒt|||ƒt|ƒtjd|ƒ}|rûtjddƒ}g}|jƒ}xD|D]<\}}tdt ||dƒƒ}|j!||gƒq-Wi}t"||j#ƒ|ƒx<|j$ƒD].\}}|\}} |j!||| gƒq–Wtjd|ƒt%j&||ddtigƒndS(NsCÇëÇóÉñÊÞÉýÐÇ: itemIndex=%s,beastID=%s,useItemIndex=%s,useBeastID=%ssÉñÊÞ²ÄÁϷDZ¾Ì壬ÎÞ·¨ÉýÐÇ!s2²ÄÁÏ¿¨Ëø¶¨ÖУ¬ÎÞ·¨ÉýÐÇ! useItemIndex=%s,beastID=%ss5ÉñÊÞÏ´Á¶½á¹ûδ´¦Àí£¬ÎÞ·¨ÉýÐÇ! itemIndex=%s,beastID=%ss9ÉñÊÞËÜ»ê½âËøÌ츳δѡÔñ£¬ÎÞ·¨ÉýÐÇ! itemIndex=%s,beastID=%ss-²ÄÁÏ¿¨ËÜ»êµÈ¼¶²»Îª0ÔÝʱÎÞ·¨ÉýÐÇ£¡useSoulLV=%sis'²ÄÁÏ¿¨ÒÑÉý¼¶ÔÝʱÎÞ·¨ÉýÐÇ£¡useBeastLV=%sRs2beastID=%s,star=%s,quality=%s,soulLV=%s,starMax=%ss¸ÃÉñÊÞÒÑÂúÐÇ£¡starMax=%ssJÉñÊÞÉýÐÇ: itemIndex=%s,beastID=%s,star=%s,useStar=%s,addStar=%s,updStar=%st BeastStarUPRt BeastRebirthigY@sÍÌÊɶîÍâ×Ü·µ»¹: %sR…tBeastStarUPReturn('R$RrRsRCRØt UseItemIndexRcRRBt GetIsLockedRR RtErrLogRRRR R R!R"RtGetBeastStarMaxR‹tDelItemR\R”tDoBeastUpdStarRDRtGetDismissReturnItemsR¤tintR,t__calcBeastQualityReturnItemExtGetReturnItemsExtitemsRtGivePlayerItemOrMail(!R9RyRzRRšRat useItemIndexREtuseItemRFt
useBeastIDt    washIDCntt soulRandCntt    useSoulLVt
useBeastLVRGR2RWtsoulLVtstarMaxtuseStartaddStartupdStarR3tratiotreturnItemListtdismissReturnItemstitemIDt    itemCountt    returnCnttreturnItemExDictRÍtisBind((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyt OnBeastStarUP5sŠ                   # 
 
    
  "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(NRiRiŸ†t    BeastSoul(
R R!R"tGetInitStarUpperRR RtGetIpyGameDataListNotLogt    GetSoulLVtGetAddStarUpper( RFRERGR2R3t InitStarUpperRút addStarUppertbeastSoulIpyDataListtipyDataRû((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRê‚s,    
c    Cs²|jƒ}t|ƒ}||krD|}tjd||fƒn|jtjƒ}||}|jƒ}|jtj|ƒ|dkr›t    ||ƒn|r®|j
ƒndS(Ns4²»³¬¹ý°æ±¾×î´óÉñÊÞÐǼ¶: beastID=%s,versionStarMax=%si( RRêR$RBRR RtGetItemR t__DoBeastStarTalentUpt    Sync_Item(    RRERþtisSyncRFtversionStarMaxtcurStarRýtitem((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.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(NtBeastStarTalentiiRiÿÿÿÿ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("RR RR
RR RtGetUnlockTalentSlotRRRR”R'RRReR,R¦R$RBR&R(R)R*t GetWashWeightR%R-R.R9R˜trandomtchoiceRRÀR/( RtaddLVRFtcommTalentSlott talentMaxLVt maxUnlockSlottsoulIpyDataListRúRtunlockTalentSlottidCounttlvCounttidListtlvListtunfullLVIDListtunfullLVIDListUnlockthaveUpR9R;ttalentLVt idWeightDictR7R8R:tweightR=R>R?t    zeroIndextrandIDt    randIndextidLV((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR´s¼                 
 
 
  $ 
 
 
    cCsšd}|jƒjtjƒ}xut|jƒƒD]a}|j|ƒ}| s1|jƒr_q1n||jƒkrwq1nt    |j
tj ƒ|ƒ}q1W|S(Ni( RYRZR R[R'R\R]R^RR¤RR(RRFRûRbR9RE((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytGetBeastIDStar&scCs}d}|jƒjtjƒ}xXt|jƒƒD]D}|j|ƒ}| s1|jƒr_q1n||jtj    ƒ7}q1W|S(Ni(
RYRZR R[R'R\R]R^RR(Rt    totalStarRbR9RE((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytGetBeastStarTotal3sc    CsStjƒ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||ƒt|ƒdS( NRsDÇëÇóÉñÊÞËÜ»ê: itemIndex=%s,beastID=%s,quality=%s,soulLV=%s,starLV=%sRiis$µ±Ç°ÐǼ¶²»¿ÉËÜ»ê: starLV=%s < %s, %stBeastQualitySouls$ËÜ»êµÈ¼¶ÒÑÂú¼¶: quality=%s,soulLV=%ss7²ÄÁϲ»×㣬ÉñÊÞÎÞ·¨ËÜ»ê! costItemID=%s, costItemCount=%sRs/ÉñÊÞËÜ»ê: itemIndex=%s,beastID=%s,nextSoulLV=%s(R$RrRsRCRØRcRR R!R"RR RRRBRRÙRYRZR‰RŠR‹RŒR—R˜tSetBeastSoulLVRD(R9RyRzRRšRaRERFRGR2tstarLVRút soulLimitStarRRt
nextSoulLVRÝRœR›RRžRŸ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyt OnBeastSoulEsV           
 
cCs@|jƒ}|jtj|ƒt|ƒ|r<|jƒndS(N(RR R RtunlockTalentSlotBySoulR(t    BeastItemtSoulLVRR((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR5ts  
 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(    NRiiÿÿÿÿRis4ËÜ»ê½âËøÌ츳²Û: soulLV=%s,maxUnlockSlot=%s,idList=%sis!Ëæ»úËÜ»êÌ츳ѡÏî: randTalentID=%s(RRR RR R
RRRRRR'ReR,R$RBR&R(R)R*t GetSoulWeightR%R-R.R/(RRFRúR!R RR"R#RR÷R%R9R;R+R7R8R:R,t randTalentCntR=R>R?((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR:}sb         cCs;tjƒj|ƒ}|j}|j}t|||ƒdS(N(R$RrRsRØt SelectIndextdoSelectSoulTalent(R9RyRzRRat selectIndex((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytOnBeastSoulSelectTalentÂ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é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!|ƒdS(NsB²»´æÔÚ¸ÃËÜ»êÌì¸³Ëæ»úÑ¡Ïî! beastID=%s,selectIndex=%s,soulRandCnt=%ssEÑ¡ÔñÌ츳ID²»ÄÜÖØ¸´! beastID=%s,selectIndex=%s,selectTalentID=%s in %sRiis:Ñ¡ÔñÌ츳: beastID=%s,selectTalentID=%s,idList=%s,lvList=%sis'³£¹æ²Ûλδȫ²¿½âËø£¬ËÜ»ê²ÛλĬÈÏ1¼¶Ì츳RRRs;³£¹æ²ÛλÒÑÈ«²¿½âËø, idCount=%s,preSlotStarMax=%s,curStar=%ss7selectTalentID=%s,selectTalentLV=%s,idList=%s,lvList=%s("RCRcRRR RR$RBReRRRR'RRR,RéR RR¦R!R"R    R
RR RRR¤RRÀR/R:RRD(RRaRARRšRERFR÷tselectTalentIDRR#R$R%R&R9R;R*RRtselectTalentLVRGR2R3R RtpreSlotStarMaxRRt overflowStar((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR@ÉsŠ              
 
 
 
cCsžtjƒj|ƒ}|j}|j}|j}t||ƒ}|sIdS|dkrht|||ƒn2|dkr‡|jt    j
ƒnt ||||ƒdS(Nii( R$RrRsRØtLockTalentIndexstOPTypeRctBeastTalentWashReplaceRR RtBeastTalentWash(R9RyRzRRatlockTalentIndexstopTypeRE((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyt OnBeastWash'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(Ns5ÉñÊÞÏ´Á¶: itemIndex=%s,beastID=%s,lockTalentIndexs=%ss*ÉñÊÞÏ´Á¶½á¹ûδ´¦Àí£¬ÎÞ·¨Ï´Á¶! washIDCnt=%st    BeastWashiiiÿÿÿÿs"È¥³ý²»´æÔÚµÄËø¶¨Ë÷Òý: lockIndex=%ss6washItemID=%s,washCostItemCount=%s,lockTalentIndexs=%ss>Ï´Á¶²ÄÁϲ»×㣬ÉñÊÞÎÞ·¨Ï´Á¶! washItemID=%s,washCostItemCount=%sRJis
Ï´Á¶Ç°: %ss
Ï´Á¶ºó: %ssGÉñÊÞÏ´Á¶½á¹û! itemIndex=%s,beastID=%s,washIDList=%s,lockTalentIndexs=%s(%RR$RBRR RRéR RtGetFuncEvalCfgRRR.R¦RYRZR‰RŠR‹RŒR—R˜R'ReR,R&R(R)R*RRÀR%R-RR/RR(RRaRERKRFRöt
washItemIDtlockCostItemListRR#t    lockIndextlockCnttwashCostItemCountRRžtwashItemIndexListt
washIDListR9R;R+R7R8R:R,R>R?((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRJ:s€     &        
    c    Csï|jƒ}|jƒ}|jtjƒ}|sKtjd||fƒdSg}|jtjƒxIt    |ƒD];}|j
tj|ƒ}|j |ƒ|j tj|ƒqnW|jtjƒ|j ƒtjd|||fƒt|ƒdS(Ns/ÉñÊÞûÓÐÏ´Á¶²»ÐèÒªÌæ»»! itemIndex=%s,beastID=%ss3ÉñÊÞÏ´Á¶Ìæ»»! itemIndex=%s,beastID=%s,washIDList=%s(RRRR RR$RéRRR'ReR,R/RRBRD(    RRaRERFRR#RVR9R;((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRIŠs"   
 
c Csþtjƒj|ƒ}|j}|j}|j}|j}tjd|ƒ}|sUdS|j    ƒ}    ||    kr‹tj
d|||    fƒdS|    j |ƒ}
|dkr¹t |||ƒnA|dkrÛt |||
tƒn|dkrút|||ƒndS(NRs,²»´æÔÚ¸ÃÆ¤·ô! beastID=%s,skinID=%s not in %siii(R$RrRsR0tSkinIDRHRØR R!t GetSkinIDListRBR9tActiveBeastSkintDoBeastWearSkinR”tDoBeastSkinStarUP( R9RyRzRRFRPRLRaRGt
skinIDListt    skinIndex((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyt OnBeastSkinOP®s(                     c
Cst||ƒ}|sdS|jƒ}tjd|ƒ}|sAdS|jƒ}|dkr½|t|ƒkr†tjd||fƒdS||}t||ƒs½tjd||fƒdSntjd|||fƒ|j    ƒ}    |    j
t j |ƒ|j ƒt|ƒtS(NRis+¸ÃÉñÊÞ²»´æÔÚ¸ÃÆ¤·ô! beastID=%s,skinIndex=%ss)¸ÃÉñÊÞÆ¤·ôδ½âËø! beastID=%s,skinIndex=%ss3Çл»ÉñÊÞÆ¤·ô! beastID=%s,skinIndex=%s,isSkinAttr=%s(RcRR R!RXR¦R$RBRQRR R RRRDR˜(
RRaR]t
isSkinAttrRERFRGR\RPR((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRZÈs,   
 
 
cCsftjd|ƒ}|sdS|jƒ}| sA|t|ƒkrEdS||}t||||ƒdS(NR(R R!RXR¦t__onBeastSkinActive(RRFR]tisActiveRGR\RP((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytGMSetBeastSkinês 
c
Cstjd|ƒ}|sdSt||ƒrFtjd||fƒdS|jƒ}d}tj|||ƒ\}}}|||}    |    dkr±tjd||||    fƒdStj|||||dƒtjd||f|j    ƒƒt
|||dƒdS(Nt BeastSkinAttrs*¸ÃÉñÊÞÆ¤·ôÒѾ­¼¤»îÁË: beastID=%s,skinID=%siisH¼¤»îÉñÊÞʱװÎïÆ·²»×ã! beastID=%s,needItemID=%s,needItemCnt=%s,lackCnt=%st    BeastSkins"¼¤»îÉñÊÞÆ¤·ô: beastID=%s,skinID=%s( R R!RQR$RBt GetNeedItemIDR‹tGetPackItemBindStateIndexInfotDelCostItemByBindRCR`(
RRFRPt skinIpyDatat
needItemIDt needItemCnttcostItemIndexListtbindCntt    unBindCnttlackCnt((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRYõs"   cCs.t|||ƒt||gƒt|ƒdS(N(RURRD(RRFRPRa((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR`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&¸ÃÉñÊÞʱװδ¼¤»î! beastID=%s,skinID=%sRcs7ÉñÊÞʱװÐǼ¶ÒÑÂú! beastID=%s,skinID=%s,curStar=%s >= %siisRÉñÊÞʱװÉýÐÇÎïÆ·²»×ã! beastID=%s,skinID=%s,needItemID=%s,needItemCnt=%s,lackCnt=%sRs.ÉñÊÞʱװÉýÐÇ! beastID=%s,skinID=%s,nextStar=%s(RCRQR$RBR R!t
GetStarMaxRVReR‹RfRgRXRRD(RRFRPRšRhRûRRiRjRkRlRmRntnextStar((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR[s8       
 
cCs]tjƒj|ƒ}|j}|j}t||ƒ}|s@dS|j|rRdndƒdS(Nii(R$RrRsRØtIsLockRct SetIsLocked(R9RyRzRRatisLockRE((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyt OnBeastLockns        cCstjƒj|ƒ}|j}|j}|j}t||ƒ}|sIdS|jtj    ƒ}|jtj
ƒ}    |dkr•|     r•tj d|ƒdS|rõ|    rõ|j t jƒ}
tjddƒ} | rõ|
| krõtj d|
| fƒdSn|jƒ} tjd| ƒ} | sdS| jƒ}d}d}tjddƒ}|rƒ|    rƒtjd||    ƒ}|rz|jƒnd}n|r³ttdttjdd    ƒƒƒƒ}n||}tj d
|| |||    |||||f
ƒ|r|rtj|||ƒ rdStjdd ƒ}i}|rFt||||ƒn|rbt||    ||ƒn|r‹|r‹tj|||dƒ r‹dS|jƒ}|r³|j tj    dƒn|rÏ|j tj
dƒn|j!ƒ|r,g|j"ƒD]\}}||g^qì}t#j$||d dt%igƒn|rq|    rq|j t jƒ}
tj&|t j|
dƒt'|ƒnt(|ƒdS( Nis4¸ÃÉñÊÞδ½øÐйýµÈ¼¶ËÜ»êÅàÑø£¬²»ÐèÒªÖØÉú! itemIndex=%sRåis5½ñÈÕËÜ»ê¹ýµÄÉñÊÞÖØÉú´ÎÊýÒÑ´ïÉÏÏÞ! rebirthCnt=%s >= %sRiR4iszÉñÊÞÖØÉú: itemIndex=%s,beastID=%s,quality=%s,beastLV=%s,soulLV=%s,costMoneyTotal=%s(lv:%s+soul:%s),lvReset=%s,soulReset=%siR…()R$RrRsRØtLVResett    SoulResetRcRR R RRBRRRR RRR!R"tGetIpyGameDataNotLogtGetRebirthCostMoneyRîR¤tevaltGetFuncCompileCfgRt    HaveMoneyt__calcBeastLVReturnitemt__calcBeastSoulReturnitemtPayMoneyRR RRñRRòR”RRRD(R9RyRzRRatlvResett    soulResetRERÚRút
rebirthCntt rebirthCntMaxRFRGR2t lvCostMoneyt soulCostMoneyt    moneyTypetqualitySoulIpyDatatcostMoneyTotalRÿtreturnItemDictRtktvR((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytOnBeastRebirthsv                *
    &"% 
+"  
c
CsÚi}x­td|ƒD]œ}tjd||ƒ}|s=qn|jƒ}|sUqn|\}}    tdt|    |dƒƒ}    |j|dƒ|    ||<|j|dƒ|    ||<qWtjd|||||fƒdS(NiRÖgY@is4    µÈ¼¶·µ»¹: quality=%s,beastLV=%s,ratio=%s,%s,×Ü%s(    R'R R!RÙR¤RîR-R$RB(
R2RÚRˆRÿt
returnDicttretLVRÛRÝRœR›((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR|Ìs   c
CsÚi}x­td|ƒD]œ}tjd||ƒ}|s=qn|jƒ}|sUqn|\}}    tdt|    |dƒƒ}    |j|dƒ|    ||<|j|dƒ|    ||<qWtjd|||||fƒdS(NiR4igY@s3    Ëܻ귵»¹: quality=%s,soulLV=%s,ratio=%s,%s,×Ü%s(    R'R R!RÙR¤RîR-R$RB(
R2RúRˆRÿRŒt    retSoulLVR†RÝRœR›((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR}Ýs   c#
Csltjƒ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ƒ}tjd |ƒ}|sRqxntjd | ||||fƒ|jƒ}xK|D]C\}}td t||dƒƒ}|j|dƒ|||<q…Wtjd|||||fƒt ||||ƒ|j!ƒ}x.|D]&\}}|    j|dƒ||    |<qW| || <qxWt"|g|    j#ƒD]\}}||g^q]|ƒ|s‰dSx9|j#ƒD]+\} }t$j%|||j ƒt&dƒq–W|rhg|j#ƒD]\}}||g^qØ} x<|j#ƒD].\}!}|!\}}"| j'|||"gƒqWtjd| ƒt(j)|| ddt&igƒndS(NsÉñÊÞDzɢ: itemIndexList=%sRåis-ÉñÊÞDzɢǰ¶Ë·¢ËÍÖØ¸´µÄitemIndex! itemIndex=%sis6ËÜ»ê¹ýµÄÉñÊÞÐèÏÈÖØÉúºó²Å¿ÉDzɢ! itemIndex=%s,soulLV=%ss Ëø¶¨µÄÉñÊÞÎÞ·¨Ç²É¢! itemIndex=%ss5ÉÏÕóÖеÄÉñÊÞÎÞ·¨Ç²É¢! itemIndex=%s,lineupValueList=%ss@ÉúЧÖеĿ¨ÅÆÎÞ·¨Ç²É¢! itemIndex=%s,beastID=%s,effPresetIDList=%sRRs@Dzɢ: itemIndex=%s,beastID=%s,quality=%s,beastLV=%s,beastStar=%sigY@s6    ÐǼ¶·µ»¹: quality=%s,beastStar=%s,ratio=%s,%s,×Ü%st BeastDismisssDzɢ×Ü·µ»¹: %sR…(*R$RrRst ItemIndexListRBR RRYRZR R[RéR\R]R^RRRèRRR'ReRRjR!R"R RRíR¤RîR-R|RðRïRñR‹RëR”R,RRò(#R9RyRzRRŸRÿtdismissItemDictRˆRtreturnItemExCntDictRbRaRERút lineupCountRhtlineupValueListRFRgRGR2RÚt    beastStarR3RRRt
starRetCntt returnItemsExR;R‰RŠRRÍR((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytOnBeastDismissö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(NtsrcSigniigY@s    ºìÑÕ·µ»¹: retPer=%s,%s,×Ü%ss    ³ÆºÅ·µ»¹: retPer=%s,%s,×Ü%s(RtGetIsBindValueRtItemSrcSign_BeautyEfft PlayerBeautytGetBeautyEffInfotEffType_BeastItemExPerR¤RîtroundR-R$RBtItemSrcSign_TitleEfft    PlayerHJGtGetTitleEffInfotTitleEff_BeastItemExPer(    RR—RRtretPerRRRÍtretCnt((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRïBs* # #c
Csntjƒj|ƒ}|j}|j}i}x*|D]"}|j}|j}    |||    <q4Wt|||ƒdS(N(R$RrRstPresetIDt BeastPosListtPosNumRØtDoSaveBeastPreset(
R9RyRzRRit beastPosListtitemIndexPosDicttposInfotposNumRa((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pytOnBeastPresetSaveps                 cCstj||tjƒs-tjd|ƒdStjddƒ}i}g}xU|jƒD]G\}}||krvqXn||krˆqXn|j    |ƒ|||<qXWtjd|||f|j
ƒƒ|j ƒj tj ƒ}d}    i}
xût|jƒƒD]ç} |j| ƒ} | sý| jƒr+qýn| jtjƒ} | sIqýn| jƒ}xŒt| ƒddd…D]q}|jtj|ƒ}t|ƒd|kr¦qon|jtj|ƒ|    d7}    |    tjkrÖPn| |
| <qoWqýWg}i}xù|jƒD]ë\}}|dks||jƒkr1qn|j|ƒ} | s| jƒrYqn| jƒ}||krŽtjd||fƒqn|j    |ƒ| jƒ}t||ƒ}|jtj|ƒ||
krâ| |
|<n|||<qWx|
jƒD]}|jƒqýWt|ƒdS(Ns!¸ÃÉñÊÞÕóÈÝÔ¤Éè²»¿ÉÓÃ! presetID=%st BeastBattleis-±£´æÉñÊÞÔ¤ÉèÕóÈÝ: presetID=%s,maxPosNum=%s,%siiÿÿÿÿs,ͬ¸öÉñÊÞÖ»ÄÜÉÏÕóÒ»¸ö! itemIndex=%s,itemID=%s(t PlayerPresettGetFuncPresetIDStateR tFuncPreset_BeastR$RBR RRñR,RCRYRZR[R'R\R]R^RRRRetGetLineupValuet DelUserAttrt LineupObjMaxRtComLineupValueR/tvaluesRRD(RRiR«t    maxPosNumt beastPosDictt    indexListRaR­RbtdelCountt syncItemDictR9RER“RRht lineupValuet beastIDListt beastItemDictRtsyncItem((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR©~sr   #  
 
cCs |d|S(Ni
((RiR­((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR¶ÄscCs|d}|d}||fS(Ni
((R½RiR­((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR³Ås
 
cCs!t|ƒtj|ƒjƒdS(N(t CalcBeastAttrt PlayerOnlinetGetOnlinePlayertRefreshRoleAttr(R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRDÊs
cCCsL
|jƒ}i}i}i}i}|jƒjtjƒ}x t|jƒƒD]÷}|j|ƒ}| sO|jƒr}qOn|j    ƒ}    t
j d|    ƒ}
|
s§qOn|
j ƒ} t
j d| ƒ} | sÑqOn|j tjƒ} |j tjƒ}t|    |ƒ}| jƒ}|| jƒtd| dƒ7}|| jƒt||ƒ7}|jtjƒ}xŠt|ƒD]|}|jtj|ƒ}|s”qmnt|ƒd}||kr½i||<n||}|    |krÙqmn||g||    <qmW|    |krdddg||    <n||    d}||kr<||g||    <n|||<qOWi}xÎ|jƒD]À\}}i}x¡|jƒD]“}    t}||    \}}|    |kr½t}||    \}}n|||g||    <||krég||<n||}||kr||j|ƒq|q|W|||<q]Wt j!d||ƒi}xþ|jƒD]ð\}}|j"ƒ}t#|ƒ}|j$|gƒ}xZ|D]R}||kr…|j%tj&|ƒ|||<t j!d||||f|ƒq…q…WxZ|D]R}||krâ|j'tj&|ƒ|||<t j!d||||f|ƒqâqâWqHWx|j(ƒD]} | j)ƒqIWt
j*ƒ}!t
j+d    dƒ}"t,j-|ƒ}#x»|jƒD]­\}}i}$d}%i}&xh|jƒD]Z\}    }'|'\}}}||krïqÂn||}|%|7}%t
j d|    ƒ}
|
s!qÂn|
j ƒ} t
j d| ƒ} | sKqÂn|j tjƒ} |j tjƒ}|j tj.ƒ}(|
j/ƒ})|
j0ƒ}*x(|"D] }+| |+kr¿|)d7})q Pq Wt
j d
| | ƒ},|,rT|,j1ƒ}-|,j2ƒ}.xZttt3|-ƒt3|.ƒƒƒD]4}/|-|/}0|.|/}1|$j$|0dƒ|1|$|0<qWn|s`qÂnd}2|jtjƒ}x_t|ƒD]Q}|jtj|ƒ}|s¬q…nt|ƒ}3||3dkr…|3d}2Pq…q…W|2sæqÂnt
j4d dƒ}4t
j5d |    ƒ}5|5râxÏ|5D]Ä}6|6j6ƒ|(kr3Pn|6j7ƒ}7t|4|7ƒ}4|6j1ƒ}-|6j2ƒ}.xWttt3|-ƒt3|.ƒƒƒD]4}/|-|/}0|.|/}1|$j$|0dƒ|1|$|0<qˆW|6j/ƒr|6j/ƒ}*qqWn|jtj8ƒ}8|jtj9ƒ}9xžtt|8|9|4ƒƒD]„}/|jtj8|/ƒ}:|jtj9|/ƒ};t
j d |:ƒ}<|<smqn|<j:ƒ}0|<j;ƒ|;}1|$j$|0dƒ|1|$|0<qW|j<ƒrÅt=|j<ƒƒni}=g}>|)oã|>j|)ƒ|*oö|>j|*ƒi|    d6|>d6|=d6|&t>|2ƒ<qÂWxÚt|!j?ƒƒD]Æ}?|!j@|?ƒ}@t}Ax*|@jAƒD]}    |    |kr[    t}APq[    q[    W|As‡    q3    n|@j1ƒ}-|@j2ƒ}.xWttt3|-ƒt3|.ƒƒƒD]4}/|-|/}0|.|/}1|$j$|0dƒ|1|$|0<qÁ    Wq3    Wi|%d6|&d6}Bt j!d||$|Bfƒ|#jBtCjD|$|B|ƒq—WdS(NRRiiiÿÿÿÿs¸÷Ô¤Éè·½°¸ÉúЧµÄÉñÊÞ: %ss:    ÒƳýʧЧµÄ¿¨ÅÆË÷Òý: index=%s,presetID=%s,his=%s,new=%ss:    Ìí¼ÓÉúЧµÄ¿¨ÅÆË÷Òý: index=%s,presetID=%s,his=%s,new=%stBeastSetRÖRRt BeastTalentR0tSkilltDatat AddPerTotalsÉñÊÞÊôÐÔ: presetID=%s,%s,%s(EtGetIDRYRZR R[R'R\R]R^RR R!R"RR RRêt GetInitAddPert GetLVAddPerR¤t GetStarAddPerRRRRReR³tNoneRñtkeysR”R˜R,R$RBRRjR-R´RdR/R·RR&RORÂRÃRt
GetSkillIDtGetSoulSkillIDt GetAttrIDListtGetAttrValueListR¦RR
R RRRt    GetAttrIDt GetAttrValueRRytstrtGetBeastFetterCounttGetBeastFetterByIndextGetBeastIDListt SetCalcAttrRtDef_CalcAttr_Beast(CRRšt indexItemDicttnewEffCardPresetDicttmaxEffCardDicttinLineupEffCardDictRbR9RERFRGR2R3RÚRWRût
cardAddPerR“RhR½Rit beastEffDicttaddPertupdPresetEffCardDicttlineupCardDicttupdEffCardDicttinLineupRgR¼RthisEffPresetIDListtnewEffPresetIDListRÀR8tskillLVUPBeastLVListtolPlayertattrDictt addPerTotalt    beastDictteffInfoRútskillIDt soulSkillIDtskillLVUPWhenLVtbeastLVIpyDatat
attrIDListt attrValueListtaIndextattrIDt    attrValueR­t    valueInfoR R!t soulIpyDataR"R#R$R;R*t    stIpyDatat    beastDatat skillIDListtfIndext fetterIpyDatat    fetterActtspecDict((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRÁÐsd    !  
 
 
'  
+  
 
        (
 
! 
    (
 
  $)   (
 
"cCs×|dkr|}nQg}tjƒ}x<t|jƒƒD](}|j|ƒ}|j|jƒƒq:W|spdSg}x|D]}tjd|ƒ}|s¡q}n|dkrÊ|j    t
j |ƒ rÊq}n|j ƒ}    t jƒ}
||
_|j    t
j |ƒd|
_g|
_x[|    dD]O} t jƒ} | | _t|| ƒ| _t|| ƒ| _|
jj| ƒqWt|
jƒ|
_|j|
ƒq}W|sœdSt jƒ} || _t| jƒ| _tj|| ƒdS(NRi
i(RÎR R&R'RÊRËR,RÌR!RRRIRXtChPyNetSendPackt
tagSCBeastR0t BookInitStatetSkinListttagSCBeastSkinRWRQtStateRVtStarR¦tSkinCntttagSCBeastInfot BeastInfoListtBeastCntt NetPackCommont SendFakePack(RR¾tsyncBeastIDListR8R9Rt syncInfoListRFRGR\tbeastRPtskint
clientPack((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR·sH       #                    cCs5tjƒ}|jtjƒ|_tj||ƒdS(N(RttagSCPlayerBeastInfoRRRtSoulRebirthCntR R (RR((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyRs cCsñtjƒ}g}xDtddƒD]3}|jtj|ƒ}|sHPn|j|ƒq"W|snt|ƒ}n|rzdnd|_||_    t
|j    ƒ|_ |jtj ƒ|_ |jtjƒ|_|jtjƒ|_tj||ƒdS(Nii
ii (RttagSCBeastCallInfoR'RRRkR,R¿t IsRefreshRett CallRetListR¦tRetCntRt WishBeastIDR¥t
WishOutCntRªt WishCallCntR R (RR¢Rt callRetListRlRm((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyR     s"     (SR‹R R R‰RRR§RÑRÎR RRÂR°RœR¡R$RRtmathRR
RRRHR@RARQRURVRXRcRjRoRpR}RvRwR”RxR¿R®R«R­R™RßRãRRÎRêR˜RìRR1R3R9R5R:RBR@RMRJRIR^RZRbRYR`R[RtR‹R|R}R˜RïR®R©R¶R³RDRÁRRR    (((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerBeast.pyt<module>sž                                   ,                                                    2ƒ                         +        M      r             /         E     ^        P    $        "             `        K            L    .        F                ç O