1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
îÞbjc@sðddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZedd]ƒ\ZZZd„Zd„Ze dd„Z!d„Z"d    „Z#d
„Z$d „Z%d „Z&de'dddd „Z)d„Z*e'd„Z+d„Z,dd„Z-ddd„Z.dd„Z/ddd„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d„Z6e d„Z7e d„Z8dd„Z9e'd„Z:d„Z;d „Z<de d!„Z=d"„Z>d#„Z?dd$„Z@d%„ZAd&„ZBd'„ZCd(„ZDd)„ZEd*„ZFd+„ZGd,„ZHd-„ZId.„ZJdddd/„ZKid0„ZLid1„ZMd2„ZNd3„ZOd4„ZPd5„ZQd6„ZRed7„ZSed8„ZTed9„ZUdejVd:„ZWiejVd;„ZXd<ie d=„ZYe d>„ZZd?„Z[d@„Z\dA„Z]dBidC„Z^dD„Z_dE„Z`d<dF„ZadG„ZbdH„ZcdI„ZddJ„ZedK„ZfdL„ZgdM„ZhdN„ZidO„ZjdP„Zke d<ie'dQ„Zld<ie'dR„Zmd<dS„ZndT„ZodU„ZpdV„ZqdW„ZrdX„ZsdY„ZtdZ„Zud[„Zvd\„ZwdS(^iÿÿÿÿNiiic
CsMtjr dStjdƒgt_gt_gt_it_tjƒ}xOt    d|j
ƒƒD]8}|j |ƒ}|j ƒ}t |ƒr tjj|ƒn|jdƒ}|jƒ}|tjkrÝtjj|ƒnR|tjkr/|jdƒ}|jdƒ}|dkr/|r/|tj|<q/nt|ƒr`xZt|jƒƒD]C}|j|ƒ}    |    soqNn|    tjkrNtjj|    ƒqNqNWq`q`Wtjr¼tjdtjƒntjrÜtjdtjƒntjrütjdtjƒntjdtjƒtjs6tjdd    |j
ƒƒntt_tjƒdS(
Ns¼ÓÔØÎïÆ·Êý¾Ý...iis"ÿÈÕÓÐʹÓôÎÊýÏÞÖÆµÄÎïÆ·IDÁбí: %ss×°±¸¼¼ÄÜIDÁбí: %ss"×Ô¶¯×ª»¯ÎªÎïÆ·¸öÊýµÄÎïÆ·IDÁбí: %ss»õ±ÒÀàÐÍ1¸öÊýÁ¿¶ÔÓ¦ÎïÆ·ID: %stInitPyItemErrors"Æô¶¯¼ÓÔØÎïÆ·Êý¾ÝÒì³£! itemCount=%s(t
PyGameDatat g_initPyItemt    GameWorldtLogtEquipItemSkillIDListtDailyUseCountLimitItemIDListtAutoTransformCountItemIDListtMoneyItemIDDictt GetGameDatatranget GetItemCountt    GetItemAtt GetItemTypeIDtGetCanUseCountDailytappendtGetEffectByIndext GetEffectIDtChConfigtDef_Effect_ItemCounttDef_Effect_ItemGiveMoneytGetEffectValuet
GetIsEquiptxrangetGetAddSkillCountt GetAddSkilltSendGameErrorExtTruetGameWorldEventtOnServerInitOK(
tgameDatatit findItemDatatitemIDtitemEfftcurEffIDt
moneyValuet    moneyTypet
skillIndext itemSkillID((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt
InitPyItem8sR                                              
cCs/|tjkr$tjd|ƒdStj|S(Ns(ûÓиûõ±ÒÀàÐͶÔÓ¦µÄÎïÆ·ID! moneyType=%si(RRRtErrLog(R%((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetMoneyItemIDjsc     Cs¾t||ƒ}|stSt}xpt|ƒD]b}xY|D]Q}tj|ƒ}    tj|||ƒ}
tj||    |||
|ƒr9t    }q9q9Wq,W|rº|rºt
j
|ƒ} | j ƒnt    S(N( t__GetAddSkillListtFalseRt SkillCommont GetBuffTypet
SkillShelltGetAddBuffValuet    BuffSkilltAddBuffNoRefreshStateRt PlayerControltRefreshPlayerAttrByBuff( t    curPlayertcurItemttickt
needResulttuseCntt addSkillListt refreshResultt_taddSkilltbuffTypetaddBuffValueListt playerControl((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytItemUseSkillAddBuffxs   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(RR    R R
RRtGetSkillBySkillIDRR-R.tCheckCanAddBufftGetSkillTypeIDt
GetSkillLVR3t
NotifyCodeR(    R5R6R:Rt    curItemIDRt
curSkillIDtcurSkillR>((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR+—s"  $cCs¡g}xBt|jtjƒƒD](}|jtj|ƒ}|j|ƒqW|sxIt|jƒƒD]2}|j|ƒ}|dkr‰Pn|j|ƒqdWn|S(Ni(RtGetUserAttrCountt ShareDefinetDef_IudetAddSkillIDtGetUserAttrByIndexRRR(R6taddSkillIDListRtskillID((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemSkillIDList³s cCs#|jƒ}d|ddg}|S(Ns%st0(R (R6t
itemTypeIDtmsgList((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt GetItemXMLMsgÅs Ac
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 GetGameWorldtGetGameWorldDictByKeyRLtDef_Notify_WorldKey_ServerDaytGetItemManagerRtDef_RealityTimeItem_PacktGetPackR
tGetCounttGetAttCheckItemCanUsetGetEndureReduceTypetDef_EquipReduceType_DaytDef_EquipReduceType_ServerDayt GetRemainHourt SetRemainHourt GetExpireTimeR t IPY_GameWorldt
rptRecycleR3RGt GetCreateTimet    GetIsBindtGetGUIDtDataRecordPackt DR_DeleteItem(
R5t    serverDayt itemManagert    packIndextcurPackRR6t
reduceTypeRHtdataDict((soD:\SG_ServerCode\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((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt__GetEndDayTimeNum?s*c    Cs­|dks| r.tjd||fƒdStjƒj|ƒ}|sMdS|jƒtjksw|jƒtjkr™|j    t
j t t j ƒƒƒn|jƒtjkrÄ|j    t
j dƒn|jƒtjkrï|j|jƒƒn|jƒtjkrl|jƒ}tjƒjt
jƒ}||kr\|jƒtjd|||fƒdS|j|ƒntj||ƒ|dkrž|j    t
j|ƒn|jƒtjkrÃtj|ƒnÙt|ƒrþt|||ƒ}|dkrœ|jƒdSnžt |ƒr9t!|||ƒ}|dkrœ|jƒdSnct"|ƒrwt#j$|||ƒ}|dkrœ|jƒdSn%|jƒtj%krœt&j'|ƒnt(||ƒ|S(su ´´½¨ÎïÆ·
    @param isAuctionItem: ÊÇ·ñÅÄÆ·£¬Ä¬ÈÏ·ÇÅÄÆ·
    @param expireTime: ÓÐЧʱ¼ä£¬Ê±¼äµ¥Î»ÓÉʱЧÀàÐ;ö¶¨
    is-´´½¨ÎïÆ·¸öÊý²»ÄÜÉÙÓÚ1! itemID=%s,itemCount=%sNisOÎïÆ·ÓÐЧÆÚ³¬¹ýÓÐЧµÄ¿ª·þÌì, ²»¿É´´½¨!itemID=%s,serverDay=%s,outTimeServerDay=%s()RR)tGetItemFactoryt
CreateItemReRtDef_EquipReduceType_RTimeItemtGetTypetDef_ItemType_CanUseByCDTimet SetUserAttrRLtDef_IudetCreateTimetintttimetDef_EquipReduceType_TimeRfRiRjRgR\R]R^tCleart ItemControlert SetItemCounttDef_IudetExpireTimetDef_ItemType_Herot
PlayerHerot InitHeroItemRtGetCreateEquipAttrtNonet GetIsMGGuayutGetCreateMGGuayuAttrt GetIsMinengt PlayerMinengtGetCreateMinengAttrtDef_ItemType_Beastt PlayerBeastt InitBeastItemtAddCreateItemAttr(    R!t    itemCountt isAuctionItemt
expireTimeR5t setAttrDictt curSingleItemtoutTimeServerDayRr((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCreateSingleItemDs\"  
       
 
 
 cCsf|s
dSxU|jƒD]G\}}tj||ƒ}t|tƒr>|ddkrÎd}t|tƒrr|}n=t|tƒst|tƒr¯|r¯tj|ddƒ}n|j|t|t    j
ƒƒq^t|tƒsìt|tƒr^|j |ƒx?|D]4}tj|dƒ}|j |t|t    j
ƒƒqWq^qtj d|||jƒfƒqWdS(Niis8###AddCreateItemAttr unknown key:%s, value:%s, itemID=%s(titemsRtToIntDeft
isinstanceRˆtlistttupleR†tminRtDef_UpperLimit_DWordExt ClearUserAttrt AddUserAttrRR (R6R tkeytvaluetv((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRœ‘s&    $  &$cCs]|jƒ}|j|ƒx*|D]"}|j|t|tjƒƒq W|rY|jƒndS(N(tGetItemR«R¬R©RRªt    Sync_Item(R6R­t    valueListtisSynctmnItemR¯((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytSetItemDataListByKey¯s     cCsQt|ƒ|krdS|t|ƒ}| sCt|ttfƒ rGdSt|ƒS(Ni(RyR¦R§R¨tlen(tuserDataR­tvList((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetUserValueCount¸s cCs¥t|ƒ|krdS|t|ƒ}| sCt|ttfƒ rGdS|ddkrktj|ddƒSd|koˆt|ƒknr¡tj||dƒSdS(Nii(RyR¦R§R¨RR¥R¶(R·R­tindexR¸((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt GetUserValueÀs"cCs\|dkri}ni}|s'dn    |jƒ}|jƒ}|jtjƒ}|dkr<tjd|ƒ}|sydS|jƒr›d|t    tj
ƒ<n|j ƒ|t    tj ƒ<|j ƒ|t    tjƒ<|jƒ|t    tjƒ<|jƒ|t    tjƒ<|jƒ|t    tjƒ<tjd||||f|ƒ|St|ƒrXt|||ƒS|S(s+»ñÈ¡Éú³É×°±¸ËùÓÐÊôÐÔ
    @param curPlayer: ¿ÉÄÜΪNone
    @param setAttrDict: Ö±½ÓÉèÖÃÎïÆ·µÄÊôÐÔ {key:value, ...} keyÖ§³Ö  ShareDefine.Def_IudetXXX×Ö·û´® »ò ×Ô¶¨key
    @return: None - Òì³£Çé¿ö£¬ÎïÆ·ÊµÀýÐèÒªclear
            equipAttrDict - Éú³ÉºóµÄ×îÐÂÊôÐÔk:v×ֵ䣬¿ÉÖ±½ÓÓÃÓÚ AddCreateItemAttr
    it AppointItemNisH    ×°±¸¶¨ÖÆÊôÐÔ: itemID=%s,appointID=%s,equipAttrDict=%s,setAttrDict=%s(R“t GetPlayerIDR tgetRLtDef_CItemKey_AppointIDt IpyGameDataPYtGetIpyGameDatatGetCancelUseLimitRytDef_IudetCancelUseLimitt    GetItemLVtDef_IudetItemLVt GetBaseAttrIDtDef_IudetBaseAttrIDtGetBaseAttrValuetDef_IudetBaseAttrValuetGetLegendAttrIDtDef_IudetLegendAttrIDtGetLegendAttrValuetDef_IudetLegendAttrValueRR|tGetIsMainEquiptGetCreateMainEquipAttr(R6R5R t equipAttrDicttplayerIDR!t    appointIDtipyData((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR’Ïs,          c%Cs–i}|jƒ}|jƒ}|jƒ}|s4|Stjd|ƒ}tjd|ƒ}| sf| rj|S|jƒ}    |jƒ}
tj} |j    t
t j ƒdƒ} | sötj ddƒ\} }tt|    | dƒ|    |ƒ}tj|ƒ} n| |t
t j ƒ<tjd|| ||f|
ƒ|j    t
t jƒƒ}|j    t
t jƒƒ}|dkr²|dkr²t|ƒt|ƒkr²||t
t jƒ<||t
t jƒ<n†|jƒ}tj|jƒgtj|jƒgtj|jƒgg}gg}}xå|D]Ý\}}ttj ddƒƒ}|s>qn|tj!krÑ|tj!}|tj!}|j"|ƒ|j"|ƒ|dkr±|j"|tj!ƒ|j"|ƒntjd    ||||fƒq|j"|ƒ|j"|ƒqW|r||t
t jƒ<||t
t jƒ<ntjd
||f|
ƒ|j    t
t j#ƒƒ}|j    t
t j$ƒƒ}|dkrÁ|dkrÁt|ƒt|ƒkrÁ||t
t j#ƒ<||t
t j$ƒ<n·g}g}|j%ƒ}|j&ƒ}|j'ƒ}tjd |||f|
ƒxt(|dƒD] \}}t)|d |ƒsCqnt*|d |ƒƒ} | seqntj+| ƒ| | }!x¬|!D]¤}||kr›qƒn|j    ||ƒ}"|" sƒt|"ƒd krÌqƒn|"\}#}$tj,|#|$ƒ}|j"|ƒ|j"|ƒtjd||||#|$f|
ƒqƒWqW|r^||t
t j#ƒ<||t
t j$ƒ<ntjd||f|
ƒtjd||f|
ƒ|S(Nt
EquipColort
EquipPlaceit MainEquipDropiis<Éú³ÉÖ÷Ïß×°±¸: itemID=%s,itemLV=%s,itemColor=%s,equipPlace=%sisB    ÊôÐÔ³¬20ÒÚ: attrID=%s,attrValue=%s,attrValue1=%s,attrValue2=%ss*    baseAttrIDList=%s,baseAttrValueList=%ss&    libCntList=%s,attrRangeDict=%s, %ss GetAttrLib%sis/        libNum=%s,attrID=%s,attrValue=%s(%s~%s)s.    legendAttrIDList=%s,legendAttrValueList=%ss1    ×°±¸×îÖÕÊôÐÔ: equipAttrDict=%s,setAttrDict=%s(-R t GetItemColort GetEquipPlaceRÀRÁtGetLVR½trandomtuniformR¾RyRLRÅtGetFuncEvalCfgR
tmaxtchoiceRR|RÇRÉR“R¶tGetBaseAttrProportionRt
AttrID_Atkt
GetAtkStept
AttrID_Deft
GetDefStept AttrID_MaxHPt    GetHPSteptevaltGetFuncCompileCfgtDef_UpperLimit_DWordRRËRÍt GetAttrRangetGetAttrRangeDicttGetAttrLibCntListt    enumeratethasattrtgetattrtshuffletrandint(%R6R5R RÐR!t    itemColort
equipPlacet colorIpyDatat placeIpyDatatplayerLVRÑt    randfloattitemLVtlowLVthighLVt
randLVListtbaseAttrIDListtbaseAttrValueListtattrProportiont attrInfoListtattrIDtattrStept    attrValuet
attrValue1t
attrValue2tlegendAttrIDListtlegendAttrValueListtattrRangeDefaultt attrRangeDictt
libCntListtnumtattrCntt libAttrListt randAttrListt    attrRangetattrMintattrMax((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRÏòsª           0         0    
     +c( Cs7|dkri}n|s!dn    |jƒ}|jƒ}|jƒ}|jƒ}i}|sadStd|jtjƒƒ}t    j
d|ƒ}    t    j
d|ƒ}
|     s®|
r²dS|
j ƒ} t j } |jttjƒdƒ} | s6t    jddƒ\}}tt||dƒ||dƒ}t j|ƒ} n| |ttjƒ<t    j
d| ƒ}|sedSi|jƒ|    jƒgtj6|jƒ|    jƒgtj6|jƒ|    jƒgtj6|jƒ|    jƒgtj 6}|j!ƒ}t"j#d    ||| ||f|ƒ|jttj$ƒƒ}|jttj%ƒƒ}|dkr“|dkr“t&|ƒt&|ƒkr“||ttj$ƒ<||ttj%ƒ<n|
j'ƒ}|
j(ƒ}d}t    jd
dƒ}x(|D] }| |kré|d7}qÊPqÊW|    j)ƒ}|    j*ƒ}t j+|ƒ|| }|g|}t"j#d |||f|ƒg}g}x|D] }||krº||\} }!t,t    j-dd ƒƒ}"t"j#d ||"| |!| f|ƒn‘|j|dƒ} |j||ƒ}#|# sZt&|#ƒdkrýqZn|#\}$}%t j.|$|%ƒ}!| |!}"t"j#d||"| |!|$|%f|ƒ|j/|ƒ|j/|"ƒqZW|r˜||ttj$ƒ<||ttj%ƒ<n|t    jddƒkrt    jddƒ}&|&r×t j|&ƒnd}'|'r|'g|ttj0ƒ<t"j#d||'f|ƒqnt"j#d||f|ƒ|S(s/»ñÈ¡Éú³ÉÃü¸ñØÔÓñËùÓÐÊôÐÔ
    @param curPlayer: ¿ÉÄÜΪNone
    @param setAttrDict: Ö±½ÓÉèÖÃÎïÆ·µÄÊôÐÔ {key:value, ...} keyÖ§³Ö  ShareDefine.Def_IudetXXX×Ö·û´® »ò ×Ô¶¨key
    @return: None - Òì³£Çé¿ö£¬ÎïÆ·ÊµÀýÐèÒªclear
            equipAttrDict - Éú³ÉºóµÄ×îÐÂÊôÐÔk:v×ֵ䣬¿ÉÖ±½ÓÓÃÓÚ AddCreateItemAttr
    iNitMGGuayuQualityt MGGuayuTypetMinggeTYit    MGGanwuLVsBÉú³ÉÃü¸ñØÔÓñ: gwLV=%s,itemID=%s,itemLV=%s,itemColor=%s,itemType=%st    MinggeCfgs"    attrIDList=%s,libAttrCnt=%s,%sisJ        attrID=%s,attrValue=%s,baseValue=%s,plusValue=%s,attrProportion=%ss@        attrID=%s,attrValue=%s,baseValue=%s,plusValue=%s,(%s~%s)iis&        itemType=%s,randSkillTypeID=%ss1    ØÔÓñ×îÖÕÊôÐÔ: equipAttrDict=%s,setAttrDict=%s(1R“R½R R„R×RÝtNomalDictGetPropertyRtDef_PDict_MGGanwuLVRÀRÁRßRÚRÛR¾RyRLRÅRÜR
RÞt
GetAtkBaset
GetAtkPlusRàt
GetDefBaset
GetDefPlusRât    GetHPBaset    GetHPPlusRätGetAtkSpeedBasetGetAtkSpeedPlustAttrID_AtkSpeedtGetBatAttrBaseDictRR|RËRÍR¶tGetFixedAttrIDt GetAttrIDLibRéRêRïRæRçRðRRM((R6R5R RÑR!titemTypeRñRÐtgwLVRót typeIpyDataRýRöR÷RøRùRút    gwIpyDatat baseAttrDicttbatAttrBaseDictRRt fixedAttrIDt    attrIDLibt
libAttrCnttlibAttrCntNeedLVListtneedGWLVRRR t
attrIDListRÿt    baseValuet    plusValueRR RRtyxSkillTypeIDListtrandSkillTypeID((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR•csž             $ #0        
        
&  cCs`t|tƒrt|ƒ}nt|tƒr0ndS|jddƒ}|j|t|ƒƒdS(Ns t(R¦tdictRytreplacet SetUserDataR¶(R6tdataInfotUserData((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytSetItemUserDataÖscCsdS(N((R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt MakeEquipGSáscCst|ƒstStj||tƒs)tSxOt|jƒƒD];}|j|ƒjƒ}|dkrgtS||kr<tSq<WtS(Ni(    RdR,RŒtCheckItemUseLVR
tGetEffectCountRRR(R5R6t
effectListRteffectID((soD:\SG_ServerCode\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(R_RaRktrptItemR
RbRcR?(R5R>tbackPackRR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytFindItemInPackByEffectÿs cCsd|jƒjtjƒ}xEt|jƒƒD]1}|j|ƒ}t|||gƒs[q+n|SWdS(N(R_RaRkR@R
RbRcR?(R5R>RARR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytFindItemInPackByEffectExscCsp|jƒj|ƒ}xTt|jƒƒD]@}|j|ƒ}t|ƒsOq(n|jƒ|krgq(n|SWdS(N(R_RaR
RbRcRdR (R5t
findItemIDRtRARR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytFindItemInPackByItemID#s cCsm|jƒj|ƒ}|dks3||jƒkr7dS|j|ƒ}|sPdS|ri|jƒridSn|S(Ni(R_RaRbRctIsEmpty(R5tpackTypet    itemIndext
checkEmptyRuR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt GetPackItem3s c CsUt|tƒrHg}x6|jƒD]\}}|j||gƒq"Wn|}i}x¢|D]š}|d \}}t|ƒdkr|dnd}tjƒj|ƒ}    |    s´q[ntj    |    ƒ}
t
j |
|    ||ƒ} |j |
dƒ| ||
<q[WxU|jƒD]G\}
} | t ||
| ƒkr|rItj|d|
gƒntSqWtS(NiitGeRen_chenxin_676165(R¦R4R¤RR¶RR    tGetItemByTypeIDRtGetItemPackTypeRŒtGetItemNeedPackCountR¾tGetItemPackSpaceR3RGR,R( R5titemInfotisNotifytitemListR!RtneedPackSpaceDicttitemRžtitemDataRGt    needSpace((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckPackEnough@s* "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( RLtDef_VPack_TypeListRt GetVPackCntRRtDef_PDict_VPackItemR_RaR
RbRcRF(R5t    packindextgetCountt    itemSpaceRt itemKeyDataRuR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyROes&
 
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(NiRK(RLRXRRYRRRZRR,R_RaR
RbRcRFR3RG(R5R[RQRR^RuR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckPackHasSpace‡s cCs®|tjkrVx@tt|ƒƒD],}|jtj||fƒ}|r"tSq"WtS|j    ƒj
|ƒ}x<t d|j ƒƒD]%}|j |ƒ}|jƒstSqWtS(Ni(RLRXRRYRRRZR,RR_RaR
RbRcRF(R5R[RR^RuR6((soD:\SG_ServerCode\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( RLRXRRYRRRZR_RaR
RbRcRF(R5R[RR^RuR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetEmptyIndexInPackºs cCsÊg}|jƒj|ƒ}xmtd|jƒƒD]V}|j|ƒ}|jƒsXq1n|j||gƒ|r1t|ƒ|kr1Pq1q1W| s¤t|ƒ|krÆ|rÆtj    |d|gƒqÆn|S(NiRK(
R_RaR
RbRcRFRR¶R3RG(R5RGR\RQt emptyItemListRuRR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetEmptyItemListInPackÍs cCsÃd}|tjkr*tjddƒ}nH|tjkrNtjddƒ}n$|tjkrrtjddƒ}n|s¨tjddiƒ}|jt    |ƒdƒ}nt
j d||fƒ|S(    NitInitBagCellCountitInitDepotCellCountt TreasureSetiis,±³°üÀàÐͳõʼ¸ñ×ÓÊý: packType=%s,initCount=%s( RkR@RÀt
GetFuncCfgt rptWarehouseRLt rptTreasureRÜR¾RyRR|(RGt    initCounttbagInitCntDict((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetPackInitCountÞscCs¦tjddiƒ}t|ƒ|kr+dS|t|ƒ}|sEdS|jtj|ƒ}t|| ƒ}|t|ƒkr¢|t|ƒ|d}||7}n|S(NtOpenPackiiiÿÿÿÿ(RÀRÜRyRRtDef_Player_Dict_PackBuyCnttsumR¶(R5RGt openCntDictt openCntListtbuyCnttopenCnttaddCnt((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetPackOpenItemCntîs cCsÖtjddiƒ}|sdS|r4t|ƒgn    |jƒ}tjƒ}g|_xX|D]P}t|ƒ}tjƒ}||_    |j
t j |ƒ|_ |jj|ƒq\Wt|jƒ|_tj||ƒdS(NRmi(RÀRÜRytkeystChPyNetSendPackttagSCPackBuyInfot BuyInfoListRˆt tagSCPackBuytPackTypeRRRntBuyCntRR¶tCountt NetPackCommont SendFakePack(R5RGRpt syncTypeListt
clientPackt packTypeStrtbuy((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytSyncPackBuyCntÿs!            cCs-|tjkrdStj|}tj|ƒS(Ni(RtDef_VPackCnt_DictRÀRg(R[tkeyStr((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRYs cCs‹tjdƒ}||jƒkrCtj||j|ƒ|gƒntjdƒ}||kr‡tjd|||jƒ||gƒndS(Ntneed_eff_box_idtneed_wnotify_idi(t ReadChConfigtGetEvalChConfigRvR3RGR¾t WorldNotifyt GetPlayerName(R5t    useItemIDt
itemIDDictt wNotifyIDDict((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytUseItemSpecialNotify!s" cCs0|jƒ}|stS|jƒ|kr,tStS(sRÅжÏÎïÆ·ÊÇ·ñְҵϵ¿ÉÓÃ
        ÎïÆ·±íÖÐÖ°ÒµÏÞÖÆ¹æÔò: 0ΪͨÓã»·Ç0°Ùλ´ú±íÖ°Òµ
    (t GetJobLimitRtGetJobR,(R5R6t itemJobLimit((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckJob0s  cCs+| s|jƒrdS|jƒr'dStS(N(RFt GetIsLockedR(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRd@s
 cCs/t|ƒ\}}|r+|dkr+tSntS(Ni(tGetItemRemainingTimeR,R(R6t isExpireItemRŸ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckItemCanUseByExpireTimeKs
 cCsÊt}|jƒ}d}|tjtjgkrÀt}|jtjƒ}|s]|j    ƒ}n|jtj
ƒ}|dkr„|}n2t dt t j ƒƒ|ƒ}t d||ƒ}||fS||fS(s? »ñÈ¡ÎïÆ·Ê£Óàʱ¼ä£¬Ãë
    @return: ÊÇ·ñʱЧÎïÆ·, Ê£Óàʱ¼ä 
    i(R,ReRRŠRƒRt GetUserAttrRLRŽRjR‡RÝRˆR‰(R6R—Rvt remainingTimetcurItemExpireTimet    startTimetcurItemPastTime((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR–ds      
cCstS(N(R,(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt CheckHasStone‚scCs?|jƒj|ƒ}|j|ƒ}| s7|jƒr;tStS(N(R_RaRcRFR,R(R5Rtt
equipIndext roleEquipPacktcurEquip((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt CheckHasEquip—s
cCsIxBt|jƒƒD].}|j|ƒ}|jƒ|kr@qn|SWdS(N(R
R<RR(R6R>Rteffect((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemEffectByEffectID§s cCs)t|tjƒ}|sdS|jdƒS(Niÿÿÿÿi(R¤RtDef_Item_Eff_UseClassLVR(R6R£((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemUseClassLV¶scCs¥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: ÎïÆ·
    RWt    ItemCountRYRZt BeforeCountt
AfterCounts{}R8N(R RnRoR“t GetUserDatatupdate(R6t
writeCountt beforeCountt
afterCountRw((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemNoteDict½s    cCsÌ||d<|tjkrA|}|tjkrptj|}qpn/tj}| rp|tjkrptj|}n|sd}n|ržtj||||ƒn|tjtj    gksÈ|tj
krÈndS(NR{tUnknown( RtItemGiveTypeListtItemGiveTypeDicttItemGive_UnknownRptDR_SetPlayerItemRkR@RLRiRX(R5RGt    eventNamet itemNoteDicttnoteDictt operateType((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt
DR_GetItemÐs
        'cCsŽ||d<|tjkrA|}|tjkrJtj|}qJn    tj}tj||||ƒ|tjtj    gksŠ|tj
krŠndS(NR{( RtItemDelTypeListtItemDelTypeDicttItemDel_UnknownRpRqRkR@RLRiRX(R5RGRµR¶R·R¸((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt
DR_DelItemês
    'cCs-t|ƒstS|jƒtjkr)tStS(N(RdR,R„RtDef_EquipItemTypeR(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckItemIsEquips
 
cCstS(N(R,(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckNoteEquipGSsc
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(
R,R
RbRcRdRnRRRR(
t findEffectIDt curItemPackt    needCounttisBindt    hasEnought itemIndexListtfindItemIsBindRtfindItemR((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItem_FromPack_ByEff_Exs,       
 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(
R,R
RbRcRdRnRRRR(    RÁRÂRÃRÄRÅRÆRR6R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItem_FromPack_ByEffJs$   
 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( R,R
RbRcRdR RnRRRR(
RDRÁRÂRÃRÄRÅRÆRR6R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemFromPack_ByIDAndEffqs(   
 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( R,R
RbRcRdR RntUseStuffMode_NoBindtUseStuffMode_BindRR(    RDtitemPacktneedCntt useItemModeRÅRÆRR6R((soD:\SG_ServerCode\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( R,R
RbRcRdR RnRÌRÍRR(
RDRÎRÏRÐRÅRÆRÇRR6R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItem_FromPack_ByID_ExÄs0              
 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( R,R
RbRcRdR RnRÌRÍRR(
RDRÎRÏRÐRÅRÆRÇRR6R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItem_FromPack_ByID_ExExòs2              
 c Csggg}d\}}|jƒj|ƒ}xÃtd|jƒƒD]¬}|j|ƒ}    t|    ƒsjqCn|    jƒ|kr‚qCn|    jƒ}
|    jƒrÔ|dj|ƒ||
7}|dkrï||krïPqïqC|dj|ƒ||
7}qCW|||fS(sÙ »ñÈ¡±³°üÏûºÄµÀ¾ß°ó¶¨¼°Î´°ó¶¨Ë÷ÒýÇé¿ö
    @param needCount: ËùÐè¸öÊý, Ä¬Èϰó¶¨ÓÅÏÈ£¬µ±ÕÒµ½ÒѾ­×ã¹»µÄ¸öÊýºó²»ÔÙ±éÀú£¬¼õÉÙÎÞÓñéÀú
    @return: ¿ÉÏûºÄÎïÆ·Áбí[[°ó¶¨ÎïÆ·Ë÷Òý], [²»°ó¶¨ÎïÆ·Ë÷Òý]], °ó¶¨¸öÊý, Î´°ó¶¨¸öÊý
    ii(ii(    R_RaR
RbRcRdR RnR( R5R!RÃRGtconsumeItemIndexListtbindCntt    unBindCntRuRR6R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetPackItemBindStateIndexInfos$     
c CsŒ|jƒj|ƒ}|\}    }
||krLt|||    |t||ƒn<t|||    |t||ƒt|||
||t||ƒdS(N(R_Rat
ReduceItemRR,( R5tcostItemIndexListRÕRÖtdelCnttdelEventt saveDataDictRGRut bindIndexListtunBindIndexList((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytDelCostItemByBind;s   R3cCskd}|}    |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Ø(RcRnRRbR RŒtItemNeedRecordR¯R½RkR@RR½tGetAccIDRŒ(R5RÂRÆt reduceCountt makeItemBindRµRÜt
needSysmsgRSt totalUseCntRHR6RR¶((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRØMs0              " 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( R¦R4RRbRcRdR RnR¾RR¤RÝ(t costItemInfoRÎt    bindFirstt lackItemDictt delInfoDictt costItemDictt
needItemIDt needItemCnttbindItemCntDicttnoBindItemCntDicttbindItemIndexDicttnoBindItemIndexDictRR6RHt curItemCountt    indexDictt    indexListt itemCntTotaltlackCntRÚ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetCostItemIndexListssP       
" 
%"cCsŸd}x’|jƒD]„\}}|dkr1qntjƒj|ƒ}|sPdSt|jƒtjƒ}|dkr‰tjd|ƒdS|||7}qW|S(Nis"É̳DZíδÅäÖÃÎïÆ·×êʯÏûºÄ!itemID=%s(    R¤RR    RLtGetShopItemPriceR RktTYPE_Price_Gold_MoneyR)(Rèt    totalGoldR!RõR6titemGold((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetAutoBuyItemNeedGold³s  cCs#t||ƒ}|sdS|jƒS(s »ñÈ¡É̳ÇÎïÆ·¶ÔÓ¦¼Û¸ñ i(tGetShopItemPriceIpyDatat GetMoneyNum(R!t    priceTypeRÓ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR÷ÇscCsÔidddgtj6ddgtj6}d }||krŠxr||D]=}tjdi|d6|d6|d    6d
tƒ}|rFPqFqFWn&tjdi|d6|d    6d
tƒ}|sÐtjd ||fƒn|S( s »ñÈ¡É̳ÇÎïÆ·¶ÔÓ¦¼Û¸ñ iiiiitStoretShopTypeRWt    MoneyTypet    isLogNones8ÕÒ²»µ½¶ÔÓ¦»õ±ÒÀàÐÍÉ̵ê³öÊÛ¸ÃÎïÆ·! itemID=%s,priceType=%sN(    RkRøtTYPE_Price_Gold_PaperR“RÀtGetIpyGameDataByConditionR,RR)(R!RþtpriceTypeShopTypeDictRÓtshopType((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRüÏs - &RØc        Csct}xV|jƒD]H\}}|s+qnt||||t||ƒ}|rUtn|}qW|S(N(R,tvaluesRØR(    R5RÎRéRÛRÜtdelItemHasBindRóRÚt hasBindItem((soD:\SG_ServerCode\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(R_RaR,RR
RbRcRdR RnR‹RŒRR½RáRŒ( R5Rtt    delItemIDt delItemCountt    missionIDRÎt
delAllItemRºRTRSRtcurBind((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytDelMissionItemòs(          
" cCstS(N(R(R5R6tbindType((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytDoLogic_ItemBindTypesc
Csõ|jƒ}t|tƒrDt|ƒ|kr1dS|t|ƒ}n|}|sTdSt|ƒ}t|tj|ƒ}||kr•tj    |dƒdSx=|D]5}|d \}}    t
j |||    dtjgƒqœW|rñt
j |||ƒnt S(NtGeRen_chenxin_998371ii(R’R¦R4RyR¶RORkR@R3RGRŒtGivePlayerItemtNotifyGiveAwardInfoR(
R5t awardItemInfoRµtjobRRRVt    packSpaceRPR!R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt GiveAwardItem0s&    #c    CsË|jƒj|ƒ}|dks3||jƒkr7dS|j|ƒ}t|ƒsVdS|jƒj|ƒ}|dks‰||jƒkrdS|j|ƒ}|dks´|jƒr¸dSt||||ƒS(Ni(R_RaRbRcRdR“R•tDoLogicSwitchItem(    R5t srcBackpackt desBackPacktsrcIndext    destIndextsrcPacktsrcItemtdestPacktdestItem((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytDoLogicSwitchItemExRs cCs2|jƒrt||||ƒSt||||ƒS(N(RFtPutInt
SwitchItem(R5R6t
switchItemRt((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRms cCsô|tjgkr(t||tjƒn|tjgkrPt||tjƒn|tjtjgkrãtj    |ƒr¤tj
|t |ƒt j d|jƒƒntj    |ƒrãtj
|t |ƒt j d|jƒƒqãn|j|ƒtS(Ns(SwitchItem ÅÄÆ·ÉèÖÃΪ·ÇÅÄÆ·!curItemID=%ss+SwitchItem ÅÄÆ·ÉèÖÃΪ·ÇÅÄÆ·!switchItemID=%s(RktrptEquipRRtDef_BindType_DoEquipBindt rptHorseEquipR@RhRŒtGetIsAuctionItemtSetIsAuctionItemR,RR|R tSwitchR(R5R6R&tputInPackIndex((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR%|s cCs|jƒs&tjd|jƒƒdS|tjgkrNt||tjƒn|tj    gkrvt||tjƒn|tj
tj gkrÍt j |ƒrÍt j|t|ƒtjd|jƒƒqÍn|jƒtjkrò|j|ƒn%|jƒtjkr|j|ƒntS(NtputInErrs&PutIn ÅÄÆ·ÉèÖÃΪ·ÇÅÄÆ·!switchItemID=%s(RFRR)tGetIDRkR'RRR(R)R@RhRŒR*R+R,R|R tGetGameWorldItemTypet gwitRoleItemR$tgwitSingleItemt
AssignItemR(R5t    emptyItemR&R-((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR$˜s  cCs|jƒtjkS(N(R„RR¾(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR¸scCs|jƒtjkS(N(R„RtDef_MainEquipType(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRλscCs|jƒtjkS(N(R„RtDef_MGGuayuType(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR”¿scCs|jƒtjkS(N(R„RtDef_MinengType(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR–Ãsc    Cs’tjƒ}|j|ƒxrtd|jƒƒD][}|j|ƒ}|jdƒ}|jƒ}|jdƒ}||kr/||kr/|Sq/WdS(Ni(
RR    tFilterItemByTypeR
tGetFilterItemCountt GetFilterItemRRRR“(    R#t itemEffectIDtfindEffectValueRRt curFindItemtcurFindItemEffecttcurFindItemEffectIDtcurFindItemEffectValue((soD:\SG_ServerCode\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(
R,R
RbRcRdRRRRR(
R>teffectARÂRÃRÅRÆRR6R£R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemIndexListFromPackByEffAís(   
 c CsÙ|jƒ}|jƒ}|jƒ}    ||kr\tjd|||f|jƒƒ|}n|sqtj|ƒr¦t|||||ƒ}
t    |t
j ||
|ƒntj ||||j ƒ|jƒ|jƒƒdS(Ns4DelItem, delCnt = %s < itemCnt = %s, itemTypeID = %s(R RbRnRR)R/RŒRàR¯R½RkR@RR½RáRŒ( R5R6RÚRät
recordNameRÜt    isForceDRt curItemTypeIDt
curItemCntt curItemBindR¶((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytDelItems    #     c
    Cs•xŽt|jƒƒD]z}|j|ƒ}t|ƒs:qn|jƒ}||krXqn|j|ƒ}    t|||    t|||ƒ|sPqqWdS(N(RRbRcRdRotpopRIR(
R5RÂtdelItemByGUIDDictRDRÜRERR6titemGUIDRÚ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt DelItemByGUID4s   c Cso|tjkrdSxB|D]:}|jtj||fƒ}|sHqnt}d}d}|tjkrétj|ƒ}tj    |ƒ}    t
j ƒj |ƒ}
|
s®t |ƒn    |
jƒ}d||    df}|
oãtj|
|    ƒ}ntj|tj||fdƒ|ri|d6dd6|    dd6} t|||sGd    |n|| ƒqqWtj|||ƒdS(
s É¾³ýÐéÄâ±³°üÎïÆ· NiR3s%s LV%siRWR§tPlusLVsVPack_%s(RLRXRRRZR,trptRuneRŒt GetRuneItemIDtGetRuneItemPlusLVRR    RLRytGetNametIsRuneItemNeedRecordR3tNomalDictSetPropertyR½tSync_VPackItem_Clear( R5Rtt    placeListRµtplaceR^t isNeedRecordR!titemNametplusLVt curItemDataRw((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt DelVPackItemDs,  *cCs
|jƒS(N(RÙ(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemClassLV`scCs
|jƒS(N(t GetGearScore(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetEquipGearScoredscCs |j|ƒS(N(t SetGearScore(R6R®((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytSetEquipGearScoregscCs5tjdt|ƒ|jƒƒ}|s+dS|jƒS(NtEquipPlaceIndexMapiÿÿÿÿ(RÀRÁR]RØt GetGridIndex(R6RÓ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetEquipPackIndexjs!cCs
|jƒS(N(tGetMaxAddSkillCnt(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRrscCs•| s|jƒriStj|ƒ}t|ƒsK|jƒ|jƒ|gSi}|jƒ|d<|jƒ|d<||d<t|jƒƒ|d<|S(NRWR}t IsAuctionItemR8(RFRŒR*R¿R RbRyRª(R6Ržt addItemDict((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetMailItemDictws 
 cCsWi}t|tƒs$t|tƒrªt|ƒ}|dkrM|d|d<n|dkrz|ddkrz|d|d<n|dkrS|drSt|dƒ|d<qSn©t|tƒrÆ||d<nt|ƒsãtjdƒiS|jƒ|d<|j    ƒdkr|j    ƒ|d<nt
j |ƒr4d|d<n|j ƒrS|j ƒ|d<n|S(    sb»ñÈ¡ÎïÆ·ÐÅÏ¢¶ÔÓ¦µÄjsonÐÅÏ¢
    @param itemInfo: Ö§³ÖÁбí [itemID, itemCount, isAuctionItem], Ö§³Ö¶¯Ì¬ÁÐ±í³¤¶È£¬Ë÷Òý´ú±íÊôÐԹ̶¨
                        Ö§³ÖÎïÆ·ÊµÀý, Èç¹ûÊÇʾÀýʱ±ØÐëÔÚ¸øÍæ¼Ò֮ǰÏÈ»ñÈ¡³öÀ´£¬·ÀÖ¹¸øÍæ¼Òºó¸ÃÎïÆ·ÊµÀý±»Çå¿Õ
                        
    @return: {"ItemID":101, "Count":10, "IsAuctionItem":1, "UserData":"×Ô¶¨ÒåÊôÐÔ×Ö·û´®"}
    iRWiR}iRfsÎïÆ·Îª¿Õ!ÎÞ·¨»ñÈ¡JsonItemÐÅÏ¢!R8( R¦R§R¨R¶RˆRdRR)R RbRŒR*Rª(RPtitemDicttinfolen((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt GetJsonItem¥s,       cCs
g}|S(sû ¸ù¾ÝÁ¶µ¤µÈ¼¶²îÒìµÈ¼¶¹ýÂËÈ¨ÖØÁбíÖв»Âú×ãµÄÎïÆ·£¬¹ýÂË×îµÍÍæ¼ÒµÈ¼¶ÒªÇóÎïÆ·  ·µ»ØÐµÄÈ¨ÖØÁбí
    @param weightList: ÎïÆ·È¨ÖØÐÅÏ¢Áбí
    @param alchemyDiffLV: ÊÇ·ñ¹ýÂ˵ô´óÓÚX¼¶µÄÁ¶µ¤µÈ¼¶ÎïÆ·£¬0-²»¹ýÂË£¬1-¹ýÂËÇÒ¶ÁĬÈÏÅäÖã¬>1-ÌØÊ⹦ÄÜÖ¸¶¨µÄ¹ýÂ˵ȼ¶
    ((R5t
weightListt alchemyDiffLVtresultWeightList((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt GetWeightItemListByAlchemyDiffLVÅscCsEtjƒ}|jƒ||_||_||_tj||ƒdS(N(RwttagMCMakeItemAnswerR‹tMakeTypetResultt    MakeValueR~R(R5tmakeTypet    isSuccesst    makeValuetmakeItemAnswer((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytSyncMakeItemAnswerÏs 
            i(xRR1R3R-RkRR‰RLRŒRpt EventReporttChItemRÀRwRR~RtChEquipR/RRšR—RÚtmathR‰tjsonR
tUseStuffMode_AllRÌRÍR(R*RRAR+RQRURxR€R,R“R£RœRµR¹R»R’RÏR•R9R:R?RBRCRERJRWROR_R`RaRcRlRuR„RYRR”RdR˜R–RžR¢R¤R¦R¯R¹R½R¿RÀRÉRÊRËRÑRÒRÓR@R×RßRØRöRûR÷RüR
RRRR#RR%R$RRÎR”R–RARCRIRMR\R]R_RaRdRRhRkRoRx(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt<module>sâ                                  2                J    0    M              # qs         
                 % "                                                                           ,    '    * ) . ) % @                (     "                                          -                         .