hxp
8 天以前 1cac2e545c2e30599c2325218d89667ec800d43d
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
³ic@sœddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZeddXƒ\ZZZd„Zd„Zedd„Zd„Z d    „Z!d
„Z"d „Z#d „Z$de%dddd „Z'd„Z(ddd„Z)dd„Z*ddd„Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1ed„Z2dd„Z3e%d„Z4d„Z5d„Z6d„Z7d„Z8dd„Z9d „Z:d!„Z;d"„Z<d#„Z=d$„Z>d%„Z?d&„Z@d'„ZAd(„ZBd)„ZCdddd*„ZDid+„ZEid,„ZFd-„ZGd.„ZHd/„ZId0„ZJd1„ZKed2„ZLed3„ZMed4„ZNdejOd5„ZPiejOd6„ZQd7ied8„ZRed9„ZSd:„ZTd;„ZUd<„ZVd=id>„ZWd?„ZXd@„ZYd7dA„ZZdB„Z[dC„Z\dD„Z]dE„Z^dF„Z_dG„Z`dH„ZadI„ZbdJ„ZcdK„Zded7ie%dL„Zed7ie%dM„Zfd7dN„ZgdO„ZhdP„ZidQ„ZjdR„ZkdS„ZldT„ZmdU„ZndV„ZodW„ZpdS(Yiÿÿÿÿ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
InitPyItem6sR                                              
cCs/|tjkr$tjd|ƒdStj|S(Ns(ûÓиûõ±ÒÀàÐͶÔÓ¦µÄÎïÆ·ID! moneyType=%si(RRRtErrLog(R%((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetMoneyItemIDhsc     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.pytItemUseSkillAddBuffvs   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.pytClearDayTimeItem s6            
  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    CsJ|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|ƒnvt|ƒrþt|||ƒ}|dkr9|jƒdSn;t |ƒr9t!|||ƒ}|dkr9|jƒdSnt"||ƒ|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 GetIsMGGuayutGetCreateMGGuayuAttrtAddCreateItemAttr(    R!t    itemCountt isAuctionItemt
expireTimeR5t setAttrDictt curSingleItemtoutTimeServerDayRr((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCreateSingleItemBsN"  
       
 
 cCsN|s
dSx=|jƒD]/\}}tj||ƒ}t|tƒr&|ddkrÂd}t|tƒrr|}n=t|tƒst|tƒr¯|r¯tj|ddƒ}n|j||ƒqFt|tƒsàt|tƒrF|j|ƒx3|D](}tj|dƒ}|j    ||ƒqôWqFqtj
d|||j ƒfƒqWdS(Niis8###AddCreateItemAttr unknown key:%s, value:%s, itemID=%s( titemsRtToIntDeft
isinstanceRˆtlistttupleR†t ClearUserAttrt AddUserAttrRR (R6Rštkeytvaluetv((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR–ˆ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#Csi}|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}}xR|D]J\}}ttj ddƒƒ}|s>qn|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 |ƒs°q‹nt)|d |ƒƒ}|sÒq‹ntj*|ƒ|| }x¬|D]¤}||krqðn|j    ||ƒ} |  sðt| ƒd kr9qðn| \}!}"tj+|!|"ƒ}|j!|ƒ|j!|ƒtjd ||||!|"f|
ƒqðWq‹W|rË||t
t j"ƒ<||t
t j#ƒ<ntjd||f|
ƒtjd||f|
ƒ|S(Nt
EquipColort
EquipPlaceit MainEquipDropiis<Éú³ÉÖ÷Ïß×°±¸: itemID=%s,itemLV=%s,itemColor=%s,equipPlace=%sis*    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“tlentGetBaseAttrProportionRt
AttrID_Atkt
GetAtkStept
AttrID_Deft
GetDefStept AttrID_MaxHPt    GetHPSteptevaltGetFuncCompileCfgRR·R¹t GetAttrRangetGetAttrRangeDicttGetAttrLibCntListt    enumeratethasattrtgetattrtshuffletrandint(#R6R5RšR¼R!t    itemColort
equipPlacet colorIpyDatat placeIpyDatatplayerLVR½t    randfloattitemLVtlowLVthighLVt
randLVListtbaseAttrIDListtbaseAttrValueListtattrProportiont attrInfoListtattrIDtattrStept    attrValuetlegendAttrIDListtlegendAttrValueListtattrRangeDefaultt 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ñRöt
attrIDListRët    baseValuet    plusValueRíR÷RøRùtyxSkillTypeIDListtrandSkillTypeID((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR•-sž             $ #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(R+RR6((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
findItemIDRtR+RR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytFindItemInPackByItemIDís 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 RRž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.pyR4#s&
 
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(NiR0(RLR>RR?RÿRR@RR,R_RaR
RbRcRAR3RG(R5RBR6RRERuR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytCheckPackHasSpaceEs cCs®|tjkrVx@tt|ƒƒD],}|jtj||fƒ}|r"tSq"WtS|j    ƒj
|ƒ}x<t d|j ƒƒD]%}|j |ƒ}|jƒstSqWtS(Ni(RLR>RR?RÿRR@R,RR_RaR
RbRcRA(R5RBRRERuR6((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( RLR>RR?RÿRR@R_RaR
RbRcRA(R5RBRRERuR6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetEmptyIndexInPackxs cCs d}|tjkr*tjddƒ}n|tjkrNtjddƒ}nl|tjkrrtjddƒ}nH|tjkr–tjddƒ}n$|tjkrºtjddƒ}n|sðtj    ddiƒ}|j
t |ƒdƒ}nt j d    ||fƒ|S(
NitInitBagCellCountitInitDepotCellCountt TreasureSetitDogzPackis,±³°üÀàÐͳõʼ¸ñ×ÓÊý: packType=%s,initCount=%s(RkR*R¬t
GetFuncCfgt rptWarehouseRLt rptTreasuret rptDogzItemt rptDogzEquipRÈRªRyRR|(R;t    initCounttbagInitCntDict((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetPackInitCount‹s cCs¦tjddiƒ}t|ƒ|kr+dS|t|ƒ}|sEdS|jtj|ƒ}t|| ƒ}|t|ƒkr¢|t|ƒ|d}||7}n|S(NtOpenPackiiiÿÿÿÿ(R¬RÈRyRÿRtDef_Player_Dict_PackBuyCnttsumRË(R5R;t 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(NRUi(R¬RÈRytkeystChPyNetSendPackttagSCPackBuyInfot BuyInfoListRˆt tagSCPackBuytPackTypeRÿRRVtBuyCntRRËtCountt NetPackCommont SendFakePack(R5R;RXt 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¬RM(RBtkeyStr((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR?Çs cCs‹tjdƒ}||jƒkrCtj||j|ƒ|gƒntjdƒ}||kr‡tjd|||jƒ||gƒndS(Ntneed_eff_box_idtneed_wnotify_idi(t ReadChConfigtGetEvalChConfigR^R3RGRª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.pytCheckJobás  cCs+| s|jƒrdS|jƒr'dStS(N(RAt 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.pytCheckItemCanUseByExpireTimeüs
 cCsÊt}|jƒ}d}|tjtjgkrÀt}|jtjƒ}|s]|j    ƒ}n|jtj
ƒ}|dkr„|}n2t dt t j ƒƒ|ƒ}t d||ƒ}||fS||fS(s? »ñÈ¡ÎïÆ·Ê£Óàʱ¼ä£¬Ãë
    @return: ÊÇ·ñʱЧÎïÆ·, Ê£Óàʱ¼ä 
    i(R,ReRRŠRƒRt GetUserAttrRLRŽRjR‡RÉRˆR‰(R6RRvt remainingTimetcurItemExpireTimet    startTimetcurItemPastTime((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR~s      
cCstS(N(R,(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt CheckHasStone3scCs?|jƒj|ƒ}|j|ƒ}| s7|jƒr;tStS(N(R_RaRcRAR,R(R5Rtt
equipIndext roleEquipPacktcurEquip((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt CheckHasEquipHs
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.pytGetItemEffectByEffectIDXs 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.pytGetItemUseClassLVgscCs¥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.pytGetItemNoteDictns    cCsÌ||d<|tjkrA|}|tjkrptj|}qpn/tj}| rp|tjkrptj|}n|sd}n|ržtj||||ƒn|tjtj    gksÈ|tj
krÈndS(NRctUnknown( RtItemGiveTypeListtItemGiveTypeDicttItemGive_UnknownRptDR_SetPlayerItemRkR*RLROR>(R5R;t    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(NRc( RtItemDelTypeListtItemDelTypeDicttItemDel_UnknownRpRqRkR*RLROR>(R5R;R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_ByEffûs$   
 c
Csìt}g}xÓt|jƒƒD]¿}|j|ƒ}t|ƒsFqn|jƒ|kr^qn| rw|jƒrwqn|jdƒjƒ|kr˜qn|jƒ}    ||    krÊ||    8}|j    |ƒqt
}|j    |ƒPqW||fS(Ni( 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_ByIDAndEff"s(   
 c    Csåt}g}xÌt|jƒƒD]¸}|j|ƒ}t|ƒsFqn|jƒ|kr^qn|jƒr|tkr‘qq‘n|tkr‘qn|jƒ}||krÃ||8}|j    |ƒqt
}|j    |ƒPqW||fS(N( 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_ByIDLs*          
 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_Exus0              
 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«R;tconsumeItemIndexListtbindCntt    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 saveDataDictR;Rut bindIndexListtunBindIndexList((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytDelCostItemByBindìs   RcCskd}|}    |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©tGetAccIDRt(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 RRRbRcRdR 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.pytGetCostItemIndexList$sP       
" 
%"cCsŸd}x’|jƒD]„\}}|dkr1qntjƒj|ƒ}|sPdSt|jƒtjƒ}|dkr‰tjd|ƒdS|||7}qW|S(Nis"É̳DZíδÅäÖÃÎïÆ·×êʯÏûºÄ!itemID=%s(    RžRR    R1tGetShopItemPriceR RktTYPE_Price_Gold_MoneyR)(RÑt    totalGoldR!RÞR6titemGold((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetAutoBuyItemNeedGoldds  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àxscCsÔ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ÉRt( R5Rtt    delItemIDt delItemCountt    missionIDR¶t
delAllItemtindexR9RSR—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(RzR RRyRËR4RkR*R3RGRŒtGivePlayerItemtNotifyGiveAwardInfoR(
R5t awardItemInfoRtjobR7R<t    packSpaceR5R!R—((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt GiveAwardItemás&    #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.pytDoLogicSwitchItemExs cCs2|jƒrt||||ƒSt||||ƒS(N(RAtPutInt
SwitchItem(R5R6t
switchItemRt((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRs 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(RktrptEquipRüRtDef_BindType_DoEquipBindt rptHorseEquipR*RNRŒtGetIsAuctionItemtSetIsAuctionItemR,RR|R tSwitchR(R5R6RtputInPackIndex((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(RARR)tGetIDRkRRüRRRR*RNRŒRRR,R|R tGetGameWorldItemTypet gwitRoleItemRtgwitSingleItemt
AssignItemR(R5t    emptyItemRR((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRIs  cCs|jƒtjkS(N(R„RR¦(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRiscCs|jƒtjkS(N(R„RtDef_MainEquipType(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyRºlscCs|jƒtjkS(N(R„RtDef_DogzEquiipType(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetIsDogzEquippscCs|jƒtjkS(N(R„RtDef_MGGuayuType(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR”tsc    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)RRŒRÈR—R¥RkR*RR©RÉRt( 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(RRbRcRdRotpopR4R(
R5RªtdelItemByGUIDDictR/RÄR0RR6titemGUIDRÂ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt DelItemByGUIDås   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 É¾³ýÐéÄâ±³°üÎïÆ· NiRs%s LV%siRWRtPlusLVsVPack_%s(RLR>RÿRR@R,trptRuneRŒt GetRuneItemIDtGetRuneItemPlusLVRR    R1RytGetNametIsRuneItemNeedRecordR3tNomalDictSetPropertyR¥tSync_VPackItem_Clear( R5Rtt    placeListRtplaceREt isNeedRecordR!titemNametplusLVt curItemDataRw((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt DelVPackItemõs,  *cCs
|jƒS(N(RÅ(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetItemClassLVscCs
|jƒS(N(t GetGearScore(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetEquipGearScorescCs |j|ƒS(N(t SetGearScore(R6R¦((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytSetEquipGearScorescCs5tjdt|ƒ|jƒƒ}|s+dS|jƒS(NtEquipPlaceIndexMapiÿÿÿÿ(R¬R­RHRÄt GetGridIndex(R6R¿((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetEquipPackIndexs!cCs
|jƒS(N(tGetMaxAddSkillCnt(R6((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyR#scCs•| s|jƒriStj|ƒ}t|ƒsK|jƒ|jƒ|gSi}|jƒ|d<|jƒ|d<||d<t|jƒƒ|d<|S(NRWRet IsAuctionItemR"(RARŒRR§R RbRyR’(R6R˜t addItemDict((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytGetMailItemDict(s 
 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":"×Ô¶¨ÒåÊôÐÔ×Ö·û´®"}
    iRWiReiRQsÎïÆ·Îª¿Õ!ÎÞ·¨»ñÈ¡JsonItemÐÅÏ¢!R"( R R¡R¢RËRˆRdRR)R RbRŒRR’(R5titemDicttinfolen((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt GetJsonItemVs,       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 GetWeightItemListByAlchemyDiffLVvscCsEtjƒ}|jƒ||_||_||_tj||ƒdS(N(R_ttagMCMakeItemAnswerR‹tMakeTypetResultt    MakeValueRfRg(R5tmakeTypet    isSuccesst    makeValuetmakeItemAnswer((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pytSyncMakeItemAnswer€s 
            i(qRR1R3R-RkRRqRLRŒRpt EventReporttChItemR¬R_RRfRtChEquipR/RRÆtmathR‰tjsonR
tUseStuffMode_AllR´RµR(R*RRAR+RQRURxR€R,R“RR–R’R»R•R#R$R)R,R-R/R=R4RFRGRHRTR]RlR?RxR|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óRúRüRR RRRRRºR!R”R,R.R4R8RGRHRJRLRORRSRVRZRc(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\UseItem\ItemCommon.pyt<module>sÔ                                2                J    0    F    # ds         
                 % "                                                                           ,    '    * ) . ) % @                (     "                                          -                         .