xdh
2019-01-22 09e7829afdcdad2bc27ad342c8cc64be011039e6
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
kÅF\c@s¥ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZeddYƒ\ZZZd„Ze dd„Z!d„Z"d„Z#dd    „Z$d
„Z%d „Z&dddd „Z'd „Z(d„Z)d„Z*d„Z+d„Z,d„Z-d„Z.dd„Z/e0d„Z1d„Z2d„Z3d„Z4d„Z5ddd„Z6dd„Z8d„Z9d„Z:d„Z;d „Z<d!„Z=d"„Z>d#„Z?d$„Z@d%„ZAd&„ZBd'„ZCdddd(„ZDid)„ZEid*„ZFid+„ZGd,„ZHd-„ZId.„ZJd/„ZKd0„ZLed1„ZMed2„ZNed3„ZOdd4„ZPid5„ZQdie d6„ZRe d7„ZSd8„ZTd9„ZUd:d;„ZVd<„ZWd=„ZXd>„ZYd?„ZZd@„Z[dA„Z\dB„Z]dC„Z^dD„Z_dE„Z`dF„ZadG„Zbe die0dH„ZcddI„ZddJ„ZedK„ZfdL„ZgdM„ZhdN„ZidO„ZjdP„ZkdQ„ZldR„ZmdS„ZnddT„ZodU„ZpdV„ZqdW„ZrdX„ZsdS(ZiÿÿÿÿNiiicCs°tjr dStjdƒgt_tjƒ}xQtd|jƒƒD]:}|j|ƒ}t    |ƒrEtjj
|j ƒƒqEqEWtjr£tjdtjƒnt t_dS(Ns¼ÓÔØÎïÆ·Êý¾Ý...is"ÿÈÕÓÐʹÓôÎÊýÏÞÖÆµÄÎïÆ·IDÁбí: %s( t
PyGameDatat
InitPyItemt    GameWorldtLogtDailyUseCountLimitItemIDListt GetGameDatatranget GetItemCountt    GetItemAttGetCanUseCountDailytappendt GetItemTypeIDtTrue(tgameDatatit findItemData((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR9s                   c     Cs¾t||ƒ}|stSt}xpt|ƒD]b}xY|D]Q}tj|ƒ}    tj|||ƒ}
tj||    |||
|ƒr9t    }q9q9Wq,W|rº|rºt
j
|ƒ} | j ƒnt    S(N( t__GetAddSkillListtFalsetxranget SkillCommont GetBuffTypet
SkillShelltGetAddBuffValuet    BuffSkilltAddBuffNoRefreshStateR t PlayerControltRefreshPlayerAttrByBuff( t    curPlayertcurItemttickt
needResulttuseCntt addSkillListt refreshResultt_taddSkilltbuffTypetaddBuffValueListt playerControl((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytItemUseSkillAddBuffRs   c    Cság}tjƒ}|jƒ}x¼td|jƒƒD]¥}|j|ƒ}|sUq4n|j|ƒ}|s…tjd||fƒgStj    |ƒ}tj
|||j ƒ|j ƒƒsÌt j|dƒgS|j|ƒq4W|S(Nis+###²ß»®Ìî±íÒì³££¬ÎïÆ· = %s´¥·¢¼¼ÄÜʧ°Ü = %stXW_ZZ_ResInvalidation(RRR RtGetAddSkillCountt GetAddSkilltGetSkillBySkillIDRRRtCheckCanAddBufftGetSkillTypeIDt
GetSkillLVRt
NotifyCodeR
(    RRR R t    curItemIDRt
curSkillIDtcurSkillR$((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRqs"  $cCs#|jƒ}d|ddg}|S(Ns%st0(R (Rt
itemTypeIDtmsgList((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt GetItemXMLMsg‘s AcCs?|dkrdSd|jƒd|jƒd|jƒd|jƒd|jƒd|jƒg}|dkr†tjdd|ƒnµ|dkr¨tjdd|ƒn“|dkrÊtjdd    |ƒnq|d
kr;|sàdS|jdd|ƒ|jd d|ƒt||ƒ}|d  |}tjdd |ƒndS(Nis%siitItem_Link_AppraisalitItem_Link_FactoryitPet_liubo_436832iiitGeRen_lhs_318691(i(tGetIDtGetNameR t    GetIsBindRt WorldNotifytinserttGetNotifySuperItemInfo(RRt
notifyTypet    useItemIDR5titemInfo((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytNotify_SuperItemßs&
'-    c
Csœtjƒjtjƒ}|jƒ}xqtjD]f}|j|ƒ}xNt    d|j
ƒƒD]7}|j |ƒ}t |ƒs€qYn|j ƒ}|tjtjgkrªqYn|tjkrë|jƒdkr|j|jƒdƒqYqn*|tjkr||jƒkrqYqn|jƒ}|tjkrItj|d|gƒni|d6|jƒd6|jƒd6|jƒd6}    tj|d|    ƒqYWq.WdS(    NiitPK_hwj35_82012tItemIDt
CreateTimetIsBindtItemGUIDtTime(Rt GetGameWorldtGetGameWorldDictByKeyt ShareDefinetDef_Notify_WorldKey_ServerDaytGetItemManagertChConfigtDef_RealityTimeItem_PacktGetPackRtGetCounttGetAttCheckItemCanUsetGetEndureReduceTypetDef_EquipReduceType_DaytDef_EquipReduceType_ServerDayt GetRemainHourt SetRemainHourt GetExpireTimeR t IPY_GameWorldt
rptRecycleRR/t GetCreateTimeR=tGetGUIDtDataRecordPackt DR_DeleteItem(
Rt    serverDayt itemManagert    packIndextcurPackRRt
reduceTypeR0tdataDict((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytClearDayTimeItems6            
  cCsHttj|dƒƒjdƒdd}tjd|ƒtj|ƒS(Nis is     23:59:59s ÎïÆ·¹ýÆÚʱ¼ä(tstrRtGetDatetimeByDiffDaystsplittDebugLogtChangeTimeStrToNum(tdaysttimeStr((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt__GetEndDayTimeNumLs*cCsutjƒj|ƒ}|sdS|jƒtjkrV|jtjt    t
j
ƒƒƒn|jƒtj kr|jtjdƒn|jƒtj kr¬|j |jƒƒn|jƒtjkr)|jƒ}tjƒjtjƒ}||kr|jƒtjd|||fƒdS|j |ƒn|r?|jdƒntj||ƒ|dkrq|jtj|ƒn|S(NisOÎïÆ·ÓÐЧÆÚ³¬¹ýÓÐЧµÄ¿ª·þÌì, ²»¿É´´½¨!itemID=%s,serverDay=%s,outTimeServerDay=%si(RtGetItemFactoryt
CreateItemRVRPtDef_EquipReduceType_RTimeItemt SetUserAttrRMtDef_IudetCreateTimetintttimetDef_EquipReduceType_TimeRWRZR[RXRKRLRNtCleartErrLogt    SetIsBindt ItemControlert SetItemCounttDef_IudetExpireTime(titemIDt    itemCounttisBindt
expireTimet curSingleItemtoutTimeServerDayRb((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCreateSingleItemVs0"  
     cCs:t|ƒstjdƒdSt|ƒ}t||ƒdS(Ns²»ÉèÖÃ×°±¸ÆÀ·Ö(tCheckNoteEquipGSRRlt CalcEquipGStSetEquipGearScore(Rtvalue((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt MakeEquipGSƒs     cBCsã    t|ƒsdSi}xrt|jƒƒD]^}|j|ƒ}|sHPn|jƒ}|dkrdPn|j|dƒ|jdƒ||<q)Wt|ƒ}|jƒ}|j    ƒ}t
j d|||ƒ}|j t jƒ}    |j t jƒ}
|    r[|    |
kr[x[t|    ƒD]J}|jt j|ƒ} |jt j|ƒ} |j| dƒ| || <q
Wn|jt jdƒ} |jt jdƒ| }|jt jdƒ| }|jt jdƒ}|jt jdƒ}|jt jdƒ}|jt jdƒ}|jt jdƒ}|jt jdƒ|s)dn    |jƒ}|jt jdƒ|sTdn    |jƒ}|jt jdƒ|sdn    |jƒ}|jt jdƒ|sªdn    |j ƒ}|jt j!dƒ|sÕdn    |j"ƒ}|jt j#dƒ|sdn    |j$ƒ}|jt j%dƒ|s+dn    |j&ƒ}|jt j'dƒ|sVdn    |j(ƒ}|jt j)dƒ|sdn    |j*ƒ}|jt j+dƒ|s¬dn    |j,ƒ}|jt j-dƒ|s×dn    |j.ƒ}|jt j/dƒ|sdn    |j0ƒ} |jt j1dƒ|s-dn    |j2ƒ}!|jt j3dƒ|sXdn    |j4ƒ}"|jt j5dƒ|sƒdn    |j6ƒ}#|jt j7dƒ|s®dn    |j8ƒ}$|jt j9dƒ|sÙdn    |j:ƒ}%|jt j;dƒ|sdn    |j<ƒ}&|jt j=dƒ|s/dn    |j>ƒ}'|jt j?dƒ|sZdn    |j@ƒ}(|jt jAdƒ|s…dn    |jBƒ})|jt jCdƒ|s°dn    |jDƒ}*|jt jEdƒ|sÛdn    |jFƒ}+|jt jGdƒ|sdn    |jHƒ},|jt jIdƒ|s1dn    |jJƒ}-|jt jKdƒ|s\dn    |jLƒ}.|jt jMdƒ|s‡dn    |jNƒ}/|jt jOdƒ|s²dn    |jPƒ}0|jt jQdƒ|sÝdn    |jRƒ}1|jt jSdƒ|sdn    |jTƒ}2|jt jUdƒ|s3dn    |jVƒ}3|jt jWdƒ|s^dn    |jXƒ}4|jt jYdƒ|s‰dn    |jZƒ}5|jt j[dƒ|s´dn    |j\ƒ}6|jt j]dƒ|sßdn    |j^ƒ}7|jt j_dƒ|s
dn    |j`ƒ}8|jt jadƒ|s5dn    |jbƒ}9|jt jcdƒ|s`dn    |jdƒ}:|jt jedƒ};|sŽdn    |jfƒ}<|j t jgƒ}=|j t jhƒ}>|=r.    |=|>kr.    x[t|    ƒD]J}|jt jg|ƒ} |jt jh|ƒ} |j| dƒ| || <qÝWn|jt jidƒ}?|jt jjdƒ}@tk|ƒr‹    tltmjndt
joddƒƒƒ}AnTtp|ƒr¾    tltmjndt
joddƒƒƒ}An!tltmjndt
jodƒƒƒ}A|AS(    sB¼ÆËã×°±¸ÆÀ·Ö
        ÆÀ·Ö×é³É£º×°±¸»ù´¡ + ´«ÆæÊôÐÔ + ¾ø°æÊôÐÔ
    it EquipGSParamitEquipGSFormula3tEquipGSFormulaitEquipGSFormula4i(qR†RtGetEffectCounttGetEffectByIndext GetEffectIDtgettGetEffectValuetGetItemClassLVt GetItemColortGetItemQualityt IpyGameDataPYtGetIpyGameDatatGetUserAttrCountRMtDef_IudetLegendAttrIDtDef_IudetLegendAttrValuetGetUserAttrByIndextDef_Effect_AtktDef_Effect_MinAtktDef_Effect_MaxAtktDef_Effect_MaxHPtDef_Effect_DeftDef_Effect_ArmorDefAddPertDef_Effect_IceAtktDef_Effect_IceDeftDef_Effect_AddAtkByPert
GetAtkPerCtDef_Effect_DamagePert GetDamagePerCtDef_Effect_SuperHitRatetGetSuperHitRateCtDef_Effect_SuperHitPertGetSuperHitPerCtDef_Effect_DamReducePertGetDamReducePerCtDef_Effect_MaxHPPert GetMaxHPPerCtDef_Effect_DefPert
GetDefPerCtDef_Effect_LuckyHitRatetGetLuckyHitRateCtDef_Effect_PetDamPert GetPetDamPerCtDef_Effect_PerLVAtkt GetPerLVAtkCtDef_Effect_MissRatet GetMissRateCtDef_Effect_HitRatet GetHitRateCtDef_Effect_DamBackPertGetDamBackPerCtDef_Effect_PerLVMaxHPtGetPerLVMaxHPCtDef_Effect_DropEquipPertGetDropEquipPerCtDef_Effect_DropMoneyPertGetDropMoneyPerCtDef_Effect_IgnoreDefRateReducetGetIgnoreDefRateReduceCtDef_Effect_DamChanceDeftGetDamChanceDefCtDef_Effect_SuperHitReducetGetSuperHitReduceCtDef_Effect_SkillAtkRatetGetSkillAtkRateCtDef_Effect_SpeedPert GetSpeedPerCtDef_Effect_SkillAtkRateReducetGetSkillAtkRateReduceCtDef_Effect_HittGetHitCtDef_Effect_MisstGetMissCtDef_Effect_SkillAddPer1tGetSkillAddPer1CtDef_Effect_SkillAddPer2tGetSkillAddPer2CtDef_Effect_SkillAddPer3tGetSkillAddPer3CtDef_Effect_SkillAddPer4tGetSkillAddPer4CtDef_Effect_SkillAddPer5tGetSkillAddPer5CtDef_Effect_SkillAddPer6tGetSkillAddPer6CtDef_Effect_SkillAddPer7tGetSkillAddPer7CtDef_Effect_SkillReducePer1tGetSkillReducePer1CtDef_Effect_SkillReducePer2tGetSkillReducePer2CtDef_Effect_SkillReducePer3tGetSkillReducePer3CtDef_Effect_SkillReducePer4tGetSkillReducePer4CtDef_Effect_SkillReducePer5tGetSkillReducePer5CtDef_Effect_SkillReducePer6tGetSkillReducePer6CtDef_Effect_SkillReducePer7tGetSkillReducePer7CtDef_Effect_AtkSpeedt GetAtkSpeedCtDef_IudetOutOfPrintAttrIDtDef_IudetOutOfPrintAttrValuetDef_Effect_OnlyFinalHurttDef_Effect_PVPAtkBackHPtGetIsDogzEquiptevaltFormulaControltGetCompileFormulat
GetFuncCfgtGetIsZhuXianEquip(BRtattrDictRt    curEffectteffectIDtclassLVtcolort itemQualitytgsParamIpyDatatlegendAttrIDCnttlegendAttrValueCnttattrIDt    attrValuetAtktMinAtktMaxAtktMaxHPtDeft ArmorDefPertIceAtktIceDeftAtkPert    DamagePert SuperHitRatet SuperHitPert DamReducePertMaxHPPertDefPert LuckyHitRatet    PetDamPertPerLVAtktMissRatetHitRatet
DamBackPert
PerLVMaxHPt DropEquipPert DropMoneyPertIgnoreDefRateReducet DamChanceDeftSuperHitReducet SkillAtkRatetSpeedPertSkillAtkRateReducetHittMisst SkillAddPer1t SkillAddPer2t SkillAddPer3t SkillAddPer4t SkillAddPer5t SkillAddPer6t SkillAddPer7tSkillReducePer1tSkillReducePer2tSkillReducePer3tSkillReducePer4tSkillReducePer5tSkillReducePer6tSkillReducePer7tAtkSpeedt    AtkSpeedCtoutOfPrintAttrIDCnttoutOfPrintAttrValueCntt OnlyFinalHurtt PVPAtkBackHPR‰((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR‡Œsª   '   !++++++++++++++++++++++++++++++++++++++! ' '!cCsdS(Ni€–˜((R((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetZhuXianEquipTotalGSõscCst|ƒstStj||tƒs)tSxOt|jƒƒD];}|j|ƒjƒ}|dkrgtS||kr<tSq<WtS(Ni(    RURR|tCheckItemUseLVRRRR‘R (RRt
effectListRRÿ((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckItemByEffectIDÿs   cCsj|jƒjtjƒ}xKt|jƒƒD]7}|j|ƒ}t|||gƒs[q+n||fSWdS(N(RORRR\trptItemRRSRTR?(RRÿtbackPackRR((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytFindItemInPackByEffects cCsd|jƒjtjƒ}xEt|jƒƒD]1}|j|ƒ}t|||gƒs[q+n|SWdS(N(RORRR\R@RRSRTR?(RRÿRARR((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytFindItemInPackByEffectEx"scCsp|jƒj|ƒ}xTt|jƒƒD]@}|j|ƒ}t|ƒsOq(n|jƒ|krgq(n|SWdS(N(RORRRRSRTRUR (Rt
findItemIDRdRARR((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytFindItemInPackByItemID7s cCsd}|tjkr„xhtt|ƒƒD]T}|jtj||fƒ}|rVq(n|d7}|dkr(||kr(Pq(q(W|S|jƒj|ƒ}xdt    d|j
ƒƒD]M}|j |ƒ}|j ƒsÖq¯n|d7}|dkr¯||kr¯Pq¯q¯W|S(Nii( RMtDef_VPack_TypeListRt GetVPackCnttNomalDictGetPropertyRPtDef_PDict_VPackItemRORRRRSRTtIsEmpty(Rt    packindextgetCountt    itemSpaceRt itemKeyDataReR((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemPackSpaceMs&
 
cCsÍ|tjkrVx@tt|ƒƒD],}|jtj||fƒ}|s"tSq"WtS|j    ƒj
|ƒ}x<t d|j ƒƒD]%}|j |ƒ}|jƒrtSqW|rÉtj|d|gƒntS(NitGeRen_chenxin_676165(RMRFRRGRHRPRIR RRORRRRSRTRJRR/(RRKtisNotifyRRNReR((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckPackHasSpaceos cCs®|tjkrVx@tt|ƒƒD],}|jtj||fƒ}|r"tSq"WtS|j    ƒj
|ƒ}x<t d|j ƒƒD]%}|j |ƒ}|jƒstSqWtS(Ni(RMRFRRGRHRPRIRR RORRRRSRTRJ(RRKRRNReR((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckPackIsEmptyŠs cCs®|tjkrVx@tt|ƒƒD],}|jtj||fƒ}|s"|Sq"WdS|jƒj|ƒ}x<t    d|j
ƒƒD]%}|j |ƒ}|j ƒr|SqWdS(Niÿÿÿÿi( RMRFRRGRHRPRIRORRRRSRTRJ(RRKRRNReR((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetEmptyIndexInPack¢s cCs-|tjkrdStj|}tj|ƒS(Ni(RPtDef_VPackCnt_DictR—Rû(RKtkeyStr((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRG¹s cCsdS(N((RRBt
singleItem((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytNeedNotifyItemÅs"tcCs9dStjdƒ}|jdgƒ}|s/dS|jƒ}|d}|d}    |d}
|jƒ} |jƒ} |s‰tjƒjƒn|}| | f|
krètjdƒ} | j| dƒ}t    j
d||||| | gƒdSd|d|d|gt ||ƒ}|r|nd}t    j
d||ƒdS(    Ntneed_notify_id_dictiiitneed_notify_id_mark_dicttGeRen_admin_272921s%stGeRen_admin_671654( t ReadChConfigtGetEvalChConfigR’t GetPlayerNameR RSRtGetMaptGetMapIDRR>R@(RRtnpcIDt
notifyMarktmapIDt
itemIDDictt
notifyListt
playerNamet notifyQualityt notifyStarLVt
itemIdListR0t curItemCounttitemIDMarkDictR5((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytNotifyItemDropByKillís0 
 
 
  "
 
c Cs|dkr|jƒ}ndgd}|jƒ|d<|jƒ|d<|jƒ|d<dtj||ƒ|d<|jƒ}|r–|dkr–|nd|d    <||d
<tj    |ƒ}|sÅdnt
j |d t ƒ|d <t j|tj|ƒ|d <|jtj|ƒd}gtdtjdƒD]"}|jtj||fƒ^q+}di|d6|d6|d6|d<g}    |jƒjtjƒ}
xvt|
jƒƒD]b} | tjkrÂq§n|
j| ƒ} | s§| jƒrêq§n|    j| jƒ| jƒgƒq§Wd|    |d<|S(sá×°±¸Ìáʾ³¬Á´½ÓÐÅÏ¢»ã×Ü
    <a><Word info=item id=%s0/>|showitem=%s0 isbind=%s1 itemcnt=%s2 stone=%s3 userdata=%s4 place=%s5 equippartsuite=%s6 strengthenlv=%s7 equipwash=%s8 equipitems=%s9</a>
    isbind£ºÊÇ·ñ°ó¶¨
    itemcnt£ºÎïÆ·ÊýÁ¿
    stone£º±¦Ê¯ÐÅÏ¢ [stoneItemID, ...]
    userdata£º´«ÆæÊôÐÔ
    place£º×°±¸Î»
    equippartsuite£ºÌ××°ÐÅÏ¢ Í¬²é¿´Íæ¼Ò
    strengthenlv£ºÇ¿»¯µÈ¼¶
    equipwash£ºÏ´Á·ÐÅÏ¢ Í¬²é¿´Íæ¼Ò£¬µ¥²¿Î»
    equipitems£º¸÷²¿Î»ÎïÆ·id [[×°±¸Î»,ÎïÆ·id] ...]
    RYi
iiis%sis{}iit ensure_asciiiitPlacetLVtValueii    N( tNonet GetEquipPlaceR R=RStOperate_EquipStonetGetEquipIndexStoneIDListt GetUserDatatPlayerViewCacheTubet__GetEquipPartSuiteInfotjsontdumpsRtChEquiptGetEquipPartStarLVR\trptEquipRHRPtDef_PDict_EquipWashLVRtOperate_EquipWashtDef_EquipWashMaxAttrCounttDef_PDict_EquipWashValueRORRRMt RoleEquipTypeRTRJR
tGetItemPlaceIndex( RRtplaceRgtuserDatat    suiteInfotwashLVtattrNumt    valueListt
equipItemst playerEquipt
equipIndextcurEquip((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR@s8   "
%<##cCs‹tjdƒ}||jƒkrCtj||j|ƒ|gƒntjdƒ}||kr‡tjd|||jƒ||gƒndS(Ntneed_eff_box_idtneed_wnotify_idi(R^R_tkeysRR/R’R>R`(RRBRft wNotifyIDDict((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytUseItemSpecialNotifyMs" cCsr|jƒ}|stS|jtjƒdkr;t||ƒS|jƒ|dkrntj|ƒ|dkrntSt    S(sŠÅжÏÎïÆ·ÊÇ·ñÖ°Òµ¿ÉÓÃ
        ÎïÆ·±íÖÐÖ°ÒµÏÞÖÆ¹æÔò: 0ΪͨÓã»·Ç0°Ùλ´ú±íÖ°Òµ£¬Ê®Î»ºÍ¸öλΪְҵ½×Êý, Ö°Òµ½×ÏòϼæÈÝ£¬¸ß½×¿ÉʹÓõͽ×ÎïÆ·
    iid(
t GetJobLimitR t GetUserAttrRMtDef_IudetCancelUseLimittCheckJobtGetJobRt
GetJobRankR(RRt itemJobLimit((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt
JobUseable\s  /cCs4|jƒ}|stS|jƒ|dkr0tStS(sŒÅжÏÎïÆ·ÊÇ·ñְҵϵ¿ÉÓÃ
        ÎïÆ·±íÖÐÖ°ÒµÏÞÖÆ¹æÔò: 0ΪͨÓã»·Ç0°Ùλ´ú±íÖ°Òµ£¬Ê®Î»ºÍ¸öλΪְҵ½×Êý, Ö°Òµ½×ÏòϼæÈÝ£¬¸ß½×¿ÉʹÓõͽ×ÎïÆ·
    id(R”R R˜R(RRRš((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR—ms  cCs+| s|jƒrdS|jƒr'dStS(N(RJt GetIsLockedR (R((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRU}s
 cCs/t|ƒ\}}|r+|dkr+tSntS(Ni(tGetItemRemainingTimeRR (Rt isExpireItemR‚((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckItemCanUseByExpireTimeˆs
 cCsÊt}|jƒ}d}|tjtjgkrÀt}|jtjƒ}|s]|j    ƒ}n|jtj
ƒ}|dkr„|}n2t dt t j ƒƒ|ƒ}t d||ƒ}||fS||fS(s? »ñÈ¡ÎïÆ·Ê£Óàʱ¼ä£¬Ãë
    @return: ÊÇ·ñʱЧÎïÆ·, Ê£Óàʱ¼ä 
    i(RRVRPRxRsR R•RMR~R[RutmaxRvRw(RRžRft remainingTimetcurItemExpireTimet    startTimetcurItemPastTime((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR¡s      
cCs*t|ƒstS|jƒ|kr&tStS(N(RURtGetTypeR (Rt    checkType((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckItemByTypeÁs
 cCstS(N(R(R((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt CheckHasStoneÏscCs?|jƒj|ƒ}|j|ƒ}| s7|jƒr;tStS(N(RORRRTRJRR (RRdRt roleEquipPackRŽ((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt CheckHasEquipäs
cCsIxBt|jƒƒD].}|j|ƒ}|jƒ|kr@qn|SWdS(N(RRRR‘(RRÿRteffect((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemEffectByEffectIDôs cCs)t|tjƒ}|sdS|jdƒS(Niÿÿÿÿi(R¬RPtDef_Item_Eff_UseClassLVR“(RR«((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemUseClassLVscCs¥i|jƒd6|d6|jƒd6|jƒd6}|d    krM||d<n|d    krf||d<n|jƒr¡|jƒdkr¡|ji|jƒd6ƒn|S(
s, ÎïÆ·ÐÅÏ¢¼Ç¼ 
    @param curItem: ÎïÆ·
    RFt    ItemCountRHRIt BeforeCountt
AfterCounts{}tUserDataN(R R=R_RsRwtupdate(Rt
writeCountt beforeCountt
afterCountRg((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemNoteDict
s    cCs°||d<|tjkrA|}|tjkrJtj|}qJn    tj}|ritj||||ƒn|tjtj    gks|tj
kr¬t j |d|||ƒndS(NtPackTypei( RPtItemGiveTypeListtItemGiveTypeDicttItemGive_UnknownR`tDR_SetPlayerItemR\R@RMt rptTreasureRFt EventReporttWriteEvent_item_record(RtpackTypet    eventNamet itemNoteDicttnoteDictt operateType((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt
DR_GetItems
    'cCs§||d<|tjkrA|}|tjkrJtj|}qJn    tj}tj||||ƒ|tjtj    gks‡|tj
kr£t j |d|||ƒndS(NR¸i( RPtItemDelTypeListtItemDelTypeDicttItemDel_UnknownR`RaR\R@RMR½RFR¾R¿(RRÀRÁRÂRÃRÄ((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt
DR_DelItem2s
    'cCsCt|dƒ}|j|ƒ|jƒ|d<tj|||ƒdS(NiRÀ(R·R³tGetItemPlaceTypeR`tDR_EquipMachining(RRŽRÁtaddDictRÃ((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytDR_EquipItemChangeEs
 cCs-t|ƒstS|jƒtjkr)tStS(N(RURR¥RPtDef_EquipItemTypeR (R((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckItemIsEquipRs
 
cCs6t|ƒstS|jƒtjddƒkr2tStS(NtEquipGSTypeForSorti(RURR¥R—tGetFuncEvalCfgR (R((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR†cs
 c
Cst}g}t}xÝt|jƒƒD]É}|j|ƒ}t|ƒsLq%n| re|jƒreq%n|jdƒjƒ|kr†q%n| r¢|jƒr¢t}n|jƒ}    ||    krÔ||    8}|j    |ƒq%d}t}|j    |ƒPq%W||||fS(Ni(
RRRSRTRUR=RR‘R R
(
t findEffectIDt curItemPackt    needCountRt    hasEnought itemIndexListtfindItemIsBindRtfindItemR€((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItem_FromPack_ByEff_Exts,       
 c    CsÔt}g}x»t|jƒƒD]§}|j|ƒ}t|ƒsFqn| r_|jƒr_qn|jdƒjƒ|kr€qn|jƒ}||kr²||8}|j|ƒqt    }|j|ƒPqW||fS(Ni(
RRRSRTRUR=RR‘R
R (    RÒRÓRÔRRÕRÖRRR€((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItem_FromPack_ByEff s$   
 c
Csìt}g}xÓt|jƒƒD]¿}|j|ƒ}t|ƒsFqn|jƒ|kr^qn| rw|jƒrwqn|jdƒjƒ|kr˜qn|jƒ}    ||    krÊ||    8}|j    |ƒqt
}|j    |ƒPqW||fS(Ni( RRRSRTRUR R=RR‘R
R (
RDRÒRÓRÔRRÕRÖRRR€((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemFromPack_ByIDAndEffÇs(   
 c    Csåt}g}xÌt|jƒƒD]¸}|j|ƒ}t|ƒsFqn|jƒ|kr^qn|jƒr|tkr‘qq‘n|tkr‘qn|jƒ}||krÃ||8}|j    |ƒqt
}|j    |ƒPqW||fS(N( RRRSRTRUR R=tUseStuffMode_NoBindtUseStuffMode_BindR
R (    RDtitemPacktneedCntt useItemModeRÕRÖRRR€((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItem_FromPack_ByIDñs*          
 c
Cs
t}g}t}xèt|jƒƒD]Ô}|j|ƒ}t|ƒsLq%n|jƒ|krdq%n|jƒr…|tkr—q%q—n|tkr—q%n| r³|jƒr³t    }n|jƒ}    ||    krå||    8}|j
|ƒq%t    }|j
|ƒPq%W|||fS(N( RRRSRTRUR R=RÜRÝR R
(
RDRÞRßRàRÕRÖR×RRR€((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItem_FromPack_ByID_Exs0              
 c
Cst}g}t}xît|jƒƒD]Ú}|j|ƒ}t|ƒsLq%n|jƒ|krdq%n|jƒr…|tkr—q%q—n|tkr—q%n| r³|jƒr³t    }n|jƒ}    ||    krå||    8}|j
|ƒq%d}t    }|j
|ƒPq%W||||fS(Ni( RRRSRTRUR R=RÜRÝR R
(
RDRÞRßRàRÕRÖR×RRR€((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItem_FromPack_ByID_ExExHs2              
 c
Csýggg}d\}}|jƒjtjƒ}x½td|jƒƒD]¦}|j|ƒ}|sgqFn|jƒ|krqFn|jƒ}    |jƒrÑ|dj    |ƒ||    7}|dkrì||krìPqìqF|dj    |ƒ||    7}qFW|||fS(sÙ »ñÈ¡±³°üÏûºÄµÀ¾ß°ó¶¨¼°Î´°ó¶¨Ë÷ÒýÇé¿ö
    @param needCount: ËùÐè¸öÊý, Ä¬Èϰó¶¨ÓÅÏÈ£¬µ±ÕÒµ½ÒѾ­×ã¹»µÄ¸öÊýºó²»ÔÙ±éÀú£¬¼õÉÙÎÞÓñéÀú
    @return: ¿ÉÏûºÄÎïÆ·Áбí[[°ó¶¨ÎïÆ·Ë÷Òý], [²»°ó¶¨ÎïÆ·Ë÷Òý]], °ó¶¨¸öÊý, Î´°ó¶¨¸öÊý
    ii(ii(
RORRR\R@RRSRTR R=R
(
RRRÔtconsumeItemIndexListtbindCntt    unBindCntReRRR€((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetPackItemBindStateIndexInfoqs$    
c
Cs|jƒjtjƒ}|\}}    ||krOt||||t||ƒn<t||||t||ƒt|||    ||t||ƒdS(N(RORRR\R@t
ReduceItemR R(
RtcostItemIndexListRåRætdelCnttdelEventt saveDataDictRet bindIndexListtunBindIndexList((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytDelCostItemByBind‘s   cCskd}|}    |sd}nxI|D]A}
|j|
ƒ} | rS| jƒrSt}n| jƒ} | jƒ}|| krïtj| ƒr·t| | | dƒ} t|t    j
|| |ƒntj | d|j ƒ|j ƒ|jƒƒ|| 8}q"tj| ƒr3t| || | |ƒ} t|t    j
|| |ƒntj | | ||j ƒ|j ƒ|jƒƒPq"W|S(NiRè(RTR=R RSR R|tItemNeedRecordR·RÉR\R@R}t GetPlayerIDtGetAccIDR`(RRÓRÖt reduceCountt makeItemBindRÁRìt
needSysmsgR4t totalUseCntt    itemIndexRR€RÂ((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRè£s0              " cCs)i}i}i}t|tƒsEx'|D]\}}|||<q(Wn|}i}i}    i}
i} xät|jƒƒD]Ð} |j| ƒ} t| ƒsqvn| jƒ}||kr»qvn| jƒ}| jƒrö|
}|j|dƒ|||<n | }|    j|dƒ||    |<||kr/g||<n||}|j    | ƒqvWxÒ|j
ƒD]Ä\}}|j|dƒ|    j|dƒ}t d||ƒ}|r«|||<n|rW||}|ræ|
j|gƒ| j|gƒ}n"| j|gƒ|
j|gƒ}||g||<qWqWW||fS(sT»ñµÃÐèÒªÏûºÄµÄ²ÄÁÏÎïÆ·ÐÅÏ¢, ÓÅÏȿ۳ý°ó¶¨ÎïÆ·
    @param costItemInfo: ÐèÒªÎïÆ·ÊýÁ¿[(itemID,itemCnt), ...] »ò  {itemID:itemCnt, ...}
    @param itemPack: ±³°ü
    @param bindFirst: ÊÇ·ñ°ó¶¨ÓÅÏÈ, True-°ó¶¨ÓÅÏÈ£¬ False-·Ç°ó¶¨ÓÅÏÈ
    @return: È±ÉÙµÄÎïÆ·¸öÊýÐÅÏ¢×Öµä{itemID:ȱÉÙ¸öÊý}, ¿Û³ýÎïÆ·ÐÅÏ¢×Öµä{itemID:[ɾ³ýË÷ÒýÁбí, É¾³ý¸öÊý], ...}
    i( t
isinstancetdictRRSRTRUR R=R’R
titemsR (t costItemInfoRÞt    bindFirstt lackItemDictt delInfoDictt costItemDictt
needItemIDt needItemCnttbindItemCntDicttnoBindItemCntDicttbindItemIndexDicttnoBindItemIndexDictRRR0Rlt    indexDictt    indexListt itemCntTotaltlackCntRê((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetCostItemIndexListÉsP       
" 
%"cCsŸd}x’|jƒD]„\}}|dkr1qntjƒj|ƒ}|sPdSt|jƒtjƒ}|dkr‰tjd|ƒdS|||7}qW|S(Nis"É̳DZíδÅäÖÃÎïÆ·×êʯÏûºÄ!itemID=%s(    RúRRtGetItemByTypeIDtGetShopItemPriceR R\tTYPE_Price_Gold_MoneyRz(Rýt    totalGoldRR    RtitemGold((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetAutoBuyItemNeedGold    s  cCs¾iddgtj6dgtj6}d
}||kr„xr||D]=}tjdi|d6|d6|d6dtƒ}|r@Pq@q@Wn&tjdi|d6|d6dtƒ}|s´d    S|jƒS( s »ñÈ¡É̳ÇÎïÆ·¶ÔÓ¦¼Û¸ñ iiitStoretShopTypeRFt    MoneyTypet    isLogNoneiN(R\R tTYPE_Price_Gold_PaperRsR—tGetIpyGameDataByConditionRt GetMoneyNum(Rt    priceTypetpriceTypeShopTypeDicttipyDatatshopType((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR s - &RècCs`t}xS|jƒD]E\}}|s+qnt||||t|ƒ}|rRtn|}qW|S(N(RtvaluesRèR (RRÞRþRëtdelItemHasBindRRêt hasBindItem((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt DelCostItem/sc Csý|jƒj|ƒ}t}|dkr0t}nxÆtd|jƒƒD]¯}|j|ƒ}t|ƒsmqFn|jƒ}    |jƒ}
|    |kr—qFn|j    ƒ} |sµ||
krÅ|j
ƒqFnt j ||
||j ƒ|jƒ|jƒƒdSWdS(Ni(RORRRR RRSRTRUR R=RyR|R}RñRòR`( RRdt    delItemIDt delItemCountt    missionIDRÞt
delAllItemtindextitemR4R€tcurBind((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytDelMissionItem@s(          
" cCse|tjkrdS|jƒr#dS|jƒ|kr9dS|jƒtjkrQntj|tƒtS(N(RPtDef_BindType_NoBindR=t GetBindTypetDef_BindType_DoEquipBindR|t SetItemIsBindR (RRtbindType((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytDoLogic_ItemBindTypehs c    CsË|jƒj|ƒ}|dks3||jƒkr7dS|j|ƒ}t|ƒsVdS|jƒj|ƒ}|dks‰||jƒkrdS|j|ƒ}|dks´|jƒr¸dSt||||ƒS(Ni(RORRRSRTRURsRœtDoLogicSwitchItem(    Rt srcBackpackt desBackPacktsrcIndext    destIndextsrcPacktsrcItemtdestPacktdestItem((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytDoLogicSwitchItemExs cCs2|jƒrt||||ƒSt||||ƒS(N(RJtPutInt
SwitchItem(RRt
switchItemRd((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR.œs cCsg|tjtjgkr.t||tjƒn|tjgkrVt||tjƒn|j|ƒt    S(N(
R\R~RMtrptZhuXianEquipR-RPR*t rptHorseEquiptSwitchR (RRR:tputInPackIndex((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR9«s  cCsÊ|jƒs&tjd|jƒƒdS|tjtjgkrTt||t    j
ƒn|tj gkr|t||t    j
ƒn|j ƒtj kr¡|j|ƒn%|j ƒtjkrÆ|j|ƒntS(NtputInErr(RJRRzR;R\R~RMR;R-RPR*R<tGetGameWorldItemTypet gwitRoleItemR8tgwitSingleItemt
AssignItemR (Rt    emptyItemR:R>((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR8¿s cCs|jƒtjkS(N(R¥RPRÎ(R((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt
GetIsEquipÚscCs|jƒtjkS(N(R¥RPtDef_DogzEquiipType(R((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR÷ÝscCs|jƒtjkS(N(R¥RPtDef_ZhuXianEquiipType(R((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRüáscCs|jƒtjkS(N(R¥RPtDef_WeaponItemType(R((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt GetIsWeaponésc    Cs’tjƒ}|j|ƒxrtd|jƒƒD][}|j|ƒ}|jdƒ}|jƒ}|jdƒ}||kr/||kr/|Sq/WdS(Ni(
RRtFilterItemByTypeRtGetFilterItemCountt GetFilterItemRR‘R“Rs(    titemTypet itemEffectIDtfindEffectValueR Rt curFindItemtcurFindItemEffecttcurFindItemEffectIDtcurFindItemEffectValue((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytFindItemFromDataByEffValueôs   c
Csåt}g}xÉt|jƒƒD]µ}|j|ƒ}t|ƒsFqn|jdƒ}|jƒ|krmqn|jdƒ|krˆqn|jƒ}    ||    krº||    8}|j|ƒqd}t    }|j|ƒPqW|||fS(Ni(
RRRSRTRURR‘R“R
R (
RÿteffectARÓRÔRÕRÖRRR«R€((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemIndexListFromPackByEffAs(   
 c CsÔ|jƒ}|jƒ}|jƒ}    ||krWtjd|||f|jƒƒdS|sltj|ƒr¡t|||||ƒ}
t    |t
j ||
|ƒntj ||||j ƒ|jƒ|jƒƒdS(Ns3DelItem, delCnt = %s, itemCnt = %s, itemTypeID = %s(R RSR=RRzR;R|RðR·RÉR\R@R}RñRòR`( RRRêRõt
recordNameRìt    isForceDRt curItemTypeIDt
curItemCntt curItemBindRÂ((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytDelItem?s    # c Csþ|tjkrdSxÑ|D]É}|jtj||fƒ}|sHqnt}d}d}|tjkrétj|ƒ}tj    |ƒ}    t
j ƒj |ƒ}
|
s®t |ƒn    |
jƒ}d||    df}|
oãtj|
|    ƒ}n|tjkrxtj|ƒ}tj|ƒ}    t
j ƒj |ƒ}
|
s=t |ƒn    |
jƒ}d||    df}|
ortj|
|    ƒ}ntj|tj||fdƒ|ri|d6dd6|    dd6} t|||sÖd    |n|| ƒqqWtj|||ƒdS(
s É¾³ýÐéÄâ±³°üÎïÆ· NiRYs%s LV%siRFR¯tPlusLVsVPack_%s(RMRFRHRPRIRtrptRuneR|t GetRuneItemIDtGetRuneItemPlusLVRRR RiR<tIsRuneItemNeedRecordt rptGatherSoultGetGatherSoulItemIDtGetGatherSoulItemPlusLVtIsGatherSoulItemNeedRecordRtNomalDictSetPropertyRÉtSync_VPackItem_Clear( RRdt    placeListRÁR…RNt isNeedRecordRtitemNametplusLVt curItemDataRg((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt DelVPackItemXs:  *cCs×|jƒ}tjddƒ}|s5tjdƒdS||krEdS||}|tjtjgkrvd}d}nt|ƒ}|j    ƒ}tj
d|||ƒ}|sÍtjd||j ƒfƒdS|j ƒS(NtStrengthenLevelLimitis"GetItemMaxStarLVûÓÐÇ¿»¯ÀàÐÍÓ³Éä±íit ItemPlusMaxs0ÕÒ²»µ½×°±¸Ç¿»¯µÈ¼¶ÉÏÏÞ±íÊý¾ÝÅäÖã¡ rank = %s, %s( RtR—RÑRRzRMt retFairyCant retFairyCan2R”R•R˜R–t GetLevelMax(Rt
equipPlacetplusMaxTypeDicttfindTypetrankt    itemColorR((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemMaxStarLV}s$   
      cCs
|jƒS(N(tGetLV(R((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR”–scCs.tjddƒ}|jt|jƒƒdƒS(NtWingLVii(R—RÑR’RiRy(Rt
wingLVDict((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt    GetWingLV™scCs
|jƒS(N(t GetGearScore(R((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetEquipGearScoreŸscCs |j|ƒS(N(t SetGearScore(RR‰((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRˆ¢scCs
|jƒS(N(tGetMaxAddSkillCnt(R((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR    ¦scCs®| s|jƒriSt|ƒsB|jƒ|jƒ|jƒgSi}|jƒ|d<|jƒ|d<t|jƒƒ|d<t|jƒƒ|d<t|jƒƒ|d<|S(NRFtCountRHtIsSuiteR²(    RJRÏR RSR=Rvt
GetIsSuiteRiRw(Rt addItemDict((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetMailItemDict«s cCs…i}t|tƒs$t|tƒrªt|ƒ}|dkrM|d|d<n|dkrz|ddkrz|d|d<n|dkr|drt|dƒ|d<qn×t|tƒrÆ||d<n»t|ƒsãtjdƒiS|jƒ|d<|j    ƒdkr|j    ƒ|d<n|j
ƒr=t|j
ƒƒ|d<n|j ƒrbt|j ƒƒ|d<n|j ƒr|j ƒ|d    <n|S(
sa»ñÈ¡ÎïÆ·ÐÅÏ¢¶ÔÓ¦µÄjsonÐÅÏ¢
    @param itemInfo: Ö§³ÖÁбí [itemID, itemCount, isBind], Ö§³Ö¶¯Ì¬ÁÐ±í³¤¶È£¬Ë÷Òý´ú±íÊôÐԹ̶¨
                        Ö§³ÖÎïÆ·ÊµÀý, Èç¹ûÊÇʾÀýʱ±ØÐëÔÚ¸øÍæ¼Ò֮ǰÏÈ»ñÈ¡³öÀ´£¬·ÀÖ¹¸øÍæ¼Òºó¸ÃÎïÆ·ÊµÀý±»Çå¿Õ
                        
    @return: {"ItemID":101, "Count":10, "IsBind":1, "IsSuite":1, "UserData":"×Ô¶¨ÒåÊôÐÔ×Ö·û´®"}
    iRFiRiRHsÎïÆ·Îª¿Õ!ÎÞ·¨»ñÈ¡JsonItemÐÅÏ¢!R‚R²( RøtlistttupletlenRvRURRzR RSR=RƒRw(RCtitemDicttinfolen((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt GetJsonItem×s0        c CsUg}i}xB|D]:}|jƒ}|dkr5|S|jƒ}||krQ|S|jƒ}|jƒ}||f}||kr3xÉ||D] }    |    jƒ|krªqŒn|jƒ|    jƒ}
|
|krtj|    |ƒtj||
|ƒ|j|ƒ||j|ƒPntj|    |
ƒ|jƒqŒWq|j|ƒ|g||<qW|S(Ni(t GetPackCountRSR R=R|R}R
Ry( titemlistt    sItemListt    sItemDictR%t maxPackCounttitemCnttitemidRtkeytsitemttotalCnt((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetSimpleItemListüs8            cCsJtj|ƒ}|j|gƒ}|gkr:|d}ntj|dƒS(Niÿÿÿÿi(R^R_R’RtGetResultByRandomList(RMt    tableNametqualityRandDicttqualityRandList((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetRandEquipQualityByTable"s
  c    CsWtj|ƒ}tj|ƒ\    }}}}    }
} } } }|jƒ}tj|dƒ}t|ƒ}||}tj|    ƒ}g}d}x‚|D]z}|j
ƒ|ks|j
ƒ|kr¿qn|j ƒ|kr×qn|rüt ||ƒr|}Pqqn|j |ƒqW|r%tj|ƒ}n|dkr;dtfSt||
| | | ||ƒS(Ni(tGameDataControltGetItemDataListByTypeR^R_RyRR—Røt    CanHappenRstGetUseLVR–R›R
trandomtchoiceRtCreateGreateItem(Rt    equipTypeRR˜tqualityt    equipListtequipLVRandListt lvFormulaStrtlvRangetjobRandt luckyShotRandt greateNumRandt broadcastListtplusRandt addAttrRandtplayerLVtsteptgetLVMintgetLVMaxtcheckJobtrandListRØR%((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytRandGreateEquip-s4*  
 $ 
c Cs||jƒ}t|ƒ}tjƒ}    tj|d|dƒ|    _d|    _||    _d|    _    t
j ||    ƒt }
||
fS(Niii( R R…R|tSingleEquipTmpDataR trandinttstarLVtholeCntRtisSuitetChItemtEquipAddAdditionExR( RØRªR«R¬R­R®RRt    equipItemt tmpEquipDatat    broadcast((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR¢Ws               cCsKtj|ƒ}tj|ƒ\}}}}}    }
} } |jƒ} tj|dƒ}t|ƒ}||}tj|ƒ}g}d}x‚|D]z}|j
ƒ|ksŒ|j
ƒ|kr¼qŒn|j ƒdkrÔqŒn|rùt ||ƒrŒ|}PqŒqŒn|j |ƒqŒW|r"tj|ƒ}n|dkr2dSt||    |
| || ƒS(Ni(RœRR^R_RyRR—RøRžRsRŸR–R›R
R R¡tCreateNormalItem(RR£RR˜R¥R¦R§R¨R©RªR­R®t    skillRandR¯R°R±R²R³R´RØR%((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytRandNormalEquipns2'  
 $ c    Csp|jƒ}t|ƒ}tjƒ}tj|d|dƒ|_d|_||_d|_    t
j ||ƒ|S(Niii( R R…R|R¶R R·R¸R¹RRºR»R¼(    RØRªR­R®RRÁRR½R¾((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRÀ—s               cCsEtjƒ}|jƒ||_||_||_tj||ƒdS(N(tChPyNetSendPackttagMCMakeItemAnswerRytMakeTypetResultt
MakeItemIDt NetPackCommont SendFakePack(RtmakeTypet    isSuccesst
makeItemIDtmakeItemAnswer((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytSyncMakeItemAnswer©s 
            i(tRRRRR\RPR^RMRœR|R`R¾R»R—RuRxR€RùRÃRÈRR|RR tmathRwRzRtUseStuffMode_AllRÜRÝRR R'RR6RDRhRpR…RŠR‡R<R?RBRCRERORRRRSRTRGRXRnRsR@R“R›R—RURŸRR§R¨RªR¬R®R·RÅRÉRÍRÏR†RÙRÚRÛRáRâRãRçRïRèR
RR RR'R-R7R.R9R8RER÷RüRIRTRVR\RmRxR”R|R~RˆR    R…R‹R–R›RµR¢RÂRÀRÎ(((spE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt<module>sÜ                                            N =    0    
-            i    
                 "                  (+ 5                                                             ,    '    * ) . )   % @             (                                             - %                            ,    %    &     *        )