hxp
5 天以前 c72a125b55e845784ffdf1436a3f2b47eb2c9a1b
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
ìþajc@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"  
       
 
 cCsZ|s
dSxI|jƒD];\}}tj||ƒ}t|tƒr2|ddkrÂd}t|tƒrr|}n=t|tƒst|tƒr¯|r¯tj|ddƒ}n|j||ƒqRt|tƒsàt|tƒrR|j|ƒx?|D]4}tj|dƒ}|j    |t
|t j ƒƒqôWqRqtj d|||jƒfƒqWdS(Niis8###AddCreateItemAttr unknown key:%s, value:%s, itemID=%s(titemsRtToIntDeft
isinstanceRˆtlistttupleR†t ClearUserAttrt AddUserAttrtminRtDef_UpperLimit_DWordRR (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    GetHPSteptevaltGetFuncCompileCfgR©RRÂ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
RbRcR5(R5R4tbackPackRR6((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_RaRkR6R
RbRcR5(R5R4R7RR6((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
findItemIDRtR7RR6((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.pyR@Js&
 
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<(RLRJRRKR RRLRR,R_RaR
RbRcRMR3RG(R5RNRBRRQRuR6((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(RLRJRRKR RRLR,RR_RaR
RbRcRM(R5RNRRQRuR6((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( RLRJRRKR RRLR_RaR
RbRcRM(R5RNRRQRuR6((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( RkR6R·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ÓRyR RtDef_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(NR^i(R·RÓRytkeystChPyNetSendPackttagSCPackBuyInfot BuyInfoListRˆt tagSCPackBuytPackTypeR RR_tBuyCntRR­tCountt NetPackCommont SendFakePack(R5RGRat 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·RX(RNtkeyStr((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRKês cCs‹tjdƒ}||jƒkrCtj||j|ƒ|gƒntjdƒ}||kr‡tjd|||jƒ||gƒndS(Ntneed_eff_box_idtneed_wnotify_idi(t ReadChConfigtGetEvalChConfigRgR3RGRµ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(RMt 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_RaRcRMR,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
R2RR(R6R4Rteffect((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(NRltUnknown( RtItemGiveTypeListtItemGiveTypeDicttItemGive_UnknownRptDR_SetPlayerItemRkR6RLRZRJ(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(NRl( RtItemDelTypeListtItemDelTypeDicttItemDel_UnknownRpRqRkR6RLRZRJ(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.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´RGtconsumeItemIndexListtbindCntt    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 saveDataDictRGRut 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®RkR6R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±RERSRš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­R@RkR6R3RGRŒtGivePlayerItemtNotifyGiveAwardInfoR(
R5t awardItemInfoR¦tjobRCRHt    packSpaceRAR!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(RMtPutInt
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 rptHorseEquipR6RYRŒ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(RMRR)tGetIDRkRRRRRR6RYRŒ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(
R4teffectAR³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®RkR6R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³tdelItemByGUIDDictR5RÍR6RR6titemGUIDRË((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(RLRJR RRLR,trptRuneRŒt GetRuneItemIDtGetRuneItemPlusLVRR    R=RytGetNametIsRuneItemNeedRecordR3tNomalDictSetPropertyR®tSync_VPackItem_Clear( R5Rtt    placeListR¦tplaceRQt 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¸RNRÏ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(NRWRnt IsAuctionItemR.(RMRŒ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":"×Ô¶¨ÒåÊôÐÔ×Ö·û´®"}
    iRWiRniRWsÎïÆ·Îª¿Õ!ÎÞ·¨»ñÈ¡JsonItemÐÅÏ¢!R.( R£R¤R¥R­RˆRdRR)R RbRŒRR›(RAtitemDicttinfolen((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(RhttagMCMakeItemAnswerR‹tMakeTypetResultt    MakeValueRoRp(R5tmakeTypet    isSuccesst    makeValuetmakeItemAnswer((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytSyncMakeItemAnswerŸs 
            i(sRR1R3R-RkRRzRLRŒRpt EventReporttChItemR·RhRRoRtChEquipR/RR—RÑtmathR‰tjsonR
tUseStuffMode_AllR½R¾R(R*RRAR+RQRURxR€R,R“R R™R°R²R’RÆR•R/R0R5R8R9R;RIR@RRRSRTR]RfRuRKRR…RdR‰R‡RR“R•R—R RªR®R°R±RºR»R¼RÂRÃRÄR6RÈRÐRÉRèRíRéRîRüRRR RR RRRRÅR”R2R4R:R>RMRNRPRRRURRYR\R`Ri(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt<module>sØ                                 2                J    0    H         # qs         
                 % "                                                                           ,    '    * ) . ) % @                (     "                                      -                         .