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
rÍbjc@s´ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZeddYƒ\ZZZd„Zd„Zedd„Z d„Z!d    „Z"d
„Z#d „Z$d „Z%de&dddd „Z(d„Z)d„Z*dd„Z+ddd„Z,dd„Z-ddd„Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4ed„Z5dd„Z6e&d„Z7d„Z8d„Z9d„Z:d „Z;dd!„Z<d"„Z=d#„Z>d$„Z?d%„Z@d&„ZAd'„ZBd(„ZCd)„ZDd*„ZEd+„ZFdddd,„ZGid-„ZHid.„ZId/„ZJd0„ZKd1„ZLd2„ZMd3„ZNed4„ZOed5„ZPed6„ZQdejRd7„ZSiejRd8„ZTd9ied:„ZUed;„ZVd<„ZWd=„ZXd>„ZYd?id@„ZZdA„Z[dB„Z\d9dC„Z]dD„Z^dE„Z_dF„Z`dG„ZadH„ZbdI„ZcdJ„ZddK„ZedL„Zfed9ie&dM„Zgd9ie&dN„Zhd9dO„ZidP„ZjdQ„ZkdR„ZldS„ZmdT„ZndU„ZodV„ZpdW„ZqdX„ZrdS(Ziÿÿÿÿ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
InitPyItem7sR                                              
cCs/|tjkr$tjd|ƒdStj|S(Ns(ûÓиûõ±ÒÀàÐͶÔÓ¦µÄÎïÆ·ID! moneyType=%si(RRRtErrLog(R%((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetMoneyItemIDisc     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.pytItemUseSkillAddBuffws   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    Cso|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ƒ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 GetIsMGGuayutGetCreateMGGuayuAttrtDef_ItemType_Beastt PlayerBeastt InitBeastItemtAddCreateItemAttr(    R!t    itemCountt isAuctionItemt
expireTimeR5t setAttrDictt curSingleItemtoutTimeServerDayRr((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCreateSingleItemCsR"  
       
 
 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&    $  &$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 baseAttrDicttbatAttrBaseDictRûRüt fixedAttrIDt    attrIDLibt
libAttrCnttlibAttrCntNeedLVListtneedGWLVRýRþRt
attrIDListRöt    baseValuet    plusValueRøRRRtyxSkillTypeIDListtrandSkillTypeID((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR•Tsž             $ #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
RbRcR6(R5R5tbackPackRR6((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_RaRkR7R
RbRcR6(R5R5R8RR6((soD:\SG_ServerCode\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(R_RaR
RbRcRdR (R5t
findItemIDRtR8RR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytFindItemInPackByItemIDs 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£R+R¡RR­RR    tGetItemByTypeIDRtGetItemPackTypeRŒtGetItemNeedPackCountRµtGetItemPackSpaceR3RGR,R( R5titemInfotisNotifytitemListR!RštneedPackSpaceDicttitemR›titemDatatpackTypet    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 GetVPackCntR RtDef_PDict_VPackItemR_RaR
RbRctIsEmpty(R5t    packindextgetCountt    itemSpaceRt itemKeyDataRuR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRAJs&
 
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(NiR=(RLRKRRLR RRMRR,R_RaR
RbRcRNR3RG(R5RORCRRRRuR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckPackHasSpacels cCs®|tjkrVx@tt|ƒƒD],}|jtj||fƒ}|r"tSq"WtS|j    ƒj
|ƒ}x<t d|j ƒƒD]%}|j |ƒ}|jƒstSqWtS(Ni(RLRKRRLR RRMR,RR_RaR
RbRcRN(R5RORRRRuR6((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( RLRKRRLR RRMR_RaR
RbRcRN(R5RORRRRuR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetEmptyIndexInPackŸ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( RkR7R·t
GetFuncCfgt rptWarehouseRLt rptTreasureRÓRµRyRR|(RHt    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ÓRyR RtDef_Player_Dict_PackBuyCnttsumR­(R5RHt 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(NR_i(R·RÓRytkeystChPyNetSendPackttagSCPackBuyInfot BuyInfoListRˆt tagSCPackBuytPackTypeR RR`tBuyCntRR­tCountt NetPackCommont SendFakePack(R5RHRbt 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·RY(ROtkeyStr((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRLês cCs‹tjdƒ}||jƒkrCtj||j|ƒ|gƒntjdƒ}||kr‡tjd|||jƒ||gƒndS(Ntneed_eff_box_idtneed_wnotify_idi(t ReadChConfigtGetEvalChConfigRhR3RGRµ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.pytCheckJobs  cCs+| s|jƒrdS|jƒr'dStS(N(RNt GetIsLockedR(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRds
 cCs/t|ƒ\}}|r+|dkr+tSntS(Ni(tGetItemRemainingTimeR,R(R6t isExpireItemRœ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckItemCanUseByExpireTimes
 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ˆ8s      
cCstS(N(R,(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt CheckHasStoneVscCs?|jƒj|ƒ}|j|ƒ}| s7|jƒr;tStS(N(R_RaRcRNR,R(R5Rtt
equipIndext roleEquipPacktcurEquip((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt CheckHasEquipks
cCsIxBt|jƒƒD].}|j|ƒ}|jƒ|kr@qn|SWdS(N(R
R3RR(R6R5Rteffect((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{}R/N(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(NRmtUnknown( RtItemGiveTypeListtItemGiveTypeDicttItemGive_UnknownRptDR_SetPlayerItemRkR7RLR[RK(R5RHt    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(NRm( RtItemDelTypeListtItemDelTypeDicttItemDel_UnknownRpRqRkR7RLR[RK(R5RHR§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.pytCheckItemIsEquipÖs
 
cCstS(N(R,(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckNoteEquipGSçsc
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_Exòs,       
 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_ByEffs$   
 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(
R;R³R´RµR¶R·R¸RR6Rš((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemFromPack_ByIDAndEffEs(   
 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(    R;titemPacktneedCntt useItemModeR·R¸RR6Rš((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItem_FromPack_ByIDos*          
 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(
R;RÀ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(
R;RÀ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µRHtconsumeItemIndexListtbindCntt    unBindCntRuRR6Rš((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetPackItemBindStateIndexInfoïs$     
c CsŒ|jƒj|ƒ}|\}    }
||krLt|||    |t||ƒn<t|||    |t||ƒt|||
||t||ƒdS(N(R_Rat
ReduceItemRR,( R5tcostItemIndexListRÇRÈtdelCnttdelEventt saveDataDictRHRut bindIndexListtunBindIndexList((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytDelCostItemByBinds   R*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Ê(RcRnRRbR RŒtItemNeedRecordR¡R¯RkR7RR´tGetAccIDR~(R5R´R¸t reduceCountt makeItemBindR§RÎt
needSysmsgRSt totalUseCntt    itemIndexR6RšR¨((soD:\SG_ServerCode\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( R£R+RRbRcRdR 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.pytGetCostItemIndexListGsP       
" 
%"cCsŸd}x’|jƒD]„\}}|dkr1qntjƒj|ƒ}|sPdSt|jƒtjƒ}|dkr‰tjd|ƒdS|||7}qW|S(Nis"É̳DZíδÅäÖÃÎïÆ·×êʯÏûºÄ!itemID=%s(    R¡RR    R>tGetShopItemPriceR 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±RFRSRš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_ItemBindTypeîsc
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£R+RyR­RARkR7R3RGRŒtGivePlayerItemtNotifyGiveAwardInfoR(
R5t awardItemInfoR§tjobRDRIt    packSpaceRBR!Rš((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt GiveAwardItems&    #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.pytDoLogicSwitchItemEx&s cCs2|jƒrt||||ƒSt||||ƒS(N(RNtPutInt
SwitchItem(R5R6t
switchItemRt((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR As 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 rptHorseEquipR7RZRŒtGetIsAuctionItemtSetIsAuctionItemR,RR|R tSwitchR(R5R6RtputInPackIndex((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRPs 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(RNRR)tGetIDRkRRRRRR7RZRŒRRR,R|R tGetGameWorldItemTypet gwitRoleItemRtgwitSingleItemt
AssignItemR(R5t    emptyItemRR ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRls  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”“sc    Cs’tjƒ}|j|ƒxrtd|jƒƒD][}|j|ƒ}|jdƒ}|jƒ}|jdƒ}||kr/||kr/|Sq/WdS(Ni(
RR    tFilterItemByTypeR
tGetFilterItemCountt GetFilterItemRRRR“(    Rt 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(
R5teffectAR´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¯RkR7R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.pytDelItemês    #     c
    Cs•xŽt|jƒƒD]z}|j|ƒ}t|ƒs:qn|jƒ}||krXqn|j|ƒ}    t|||    t|||ƒ|sPqqWdS(N(RRbRcRdRotpopR;R(
R5R´tdelItemByGUIDDictR6RÎR7RR6titemGUIDRÌ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt DelItemByGUIDs   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 É¾³ýÐéÄâ±³°üÎïÆ· NiR*s%s LV%siRWR™tPlusLVsVPack_%s(RLRKR RRMR,trptRuneRŒt GetRuneItemIDtGetRuneItemPlusLVRR    R>RytGetNametIsRuneItemNeedRecordR3tNomalDictSetPropertyR¯tSync_VPackItem_Clear( R5Rtt    placeListR§tplaceRRt isNeedRecordR!titemNametplusLVt curItemDataRw((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt DelVPackItems,  *cCs
|jƒS(N(RÐ(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemClassLV0scCs
|jƒS(N(t GetGearScore(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetEquipGearScore4scCs |j|ƒS(N(t SetGearScore(R6R«((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytSetEquipGearScore7scCs5tjdt|ƒ|jƒƒ}|s+dS|jƒS(NtEquipPlaceIndexMapiÿÿÿÿ(R·R¸RORÏt GetGridIndex(R6RÊ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetEquipPackIndex:s!cCs
|jƒS(N(tGetMaxAddSkillCnt(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRBscCs•| s|jƒriStj|ƒ}t|ƒsK|jƒ|jƒ|gSi}|jƒ|d<|jƒ|d<||d<t|jƒƒ|d<|S(NRWRot IsAuctionItemR/(RNRŒRR±R RbRyRœ(R6R›t addItemDict((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetMailItemDictGs 
 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":"×Ô¶¨ÒåÊôÐÔ×Ö·û´®"}
    iRWiRoiRXsÎïÆ·Îª¿Õ!ÎÞ·¨»ñÈ¡JsonItemÐÅÏ¢!R/( R£R¤R¥R­RˆRdRR)R RbRŒRRœ(RBtitemDicttinfolen((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt GetJsonItemus,       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(RittagMCMakeItemAnswerR‹tMakeTypetResultt    MakeValueRpRq(R5tmakeTypet    isSuccesst    makeValuetmakeItemAnswer((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytSyncMakeItemAnswerŸs 
            i(sRR1R3R-RkRR{RLRŒRpt EventReporttChItemR·RiRRpRtChEquipR/RR—RÑtmathR‰tjsonR
tUseStuffMode_AllR¾R¿R(R*RRAR+RQRURxR€R,R“R R™R°R²R’RÆR•R0R1R6R9R:R<RJRARSRTRUR^RgRvRLR‚R†RdRŠRˆRR”R–R˜R¡R«R¯R±R²R»R¼R½RÃRÄRÅR7RÉRÑRÊRéRîRêRïRýRRR RR RRRRÅR”R3R5R;R?RNRORQRSRVRRZR]RaRj(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt<module>sØ                                 2                J    0    H         # qs         
                 % "                                                                           ,    '    * ) . ) % @                (     "                                      -                         .