1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
û<jc@sÈddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZd„Zd„Zejed„Zd„Zd„Zd„Zd„Zd    „Zd
„Z d iejej!gd „Z"ee#d „Z$ee#d„Z%d„Z&d„Z'd„Z(d„Z)d„Z*d„Z+d„Z,e-d„Z.d„Z/d„Z0d„Z1d„Z2dfd„ƒYZ3ddd„Z4d „Z5d!„Z6d"„Z7d#„Z8d$„Z9e-d%„Z:gd&„Z;d'„Z<e#d(„Z=d)„Z>ed*„Z?d+„Z@d,„ZAd-„ZBd.„ZCd/„ZDd0„ZEd1„ZFd2„ZGd3„ZHd4„ZId5„ZJe#d6„ZKe#d eige#d7„ZLd eigejejMge#e#d8„ZNd eigejejMge-d9„ZOddd:„ZPd;„ZQe#d<„ZRd=„ZSe-d>„ZTd?„ZUe-d@„ZVddd dA„ZWdB„ZXddC„ZYdD„ZZdede#e#dE„Z[dFfdG„ƒYZ\dH„Z]ejej!gdI„Z^ddJ„Z_dK„Z`dL„Zad eige#gdM„Zbe-dN„Zce#d eige-e#dO„Zdd de#e#dP„ZedQ„ZfdS(RiÿÿÿÿNcCsX|jƒj|ƒ}x<td|jƒƒD]%}|j|ƒ}|jƒr+|Sq+WdS(Niiÿÿÿÿ(tGetItemManagertGetPacktrangetGetCounttGetAttIsEmpty(t    curPlayert    packindextcurPacktititem((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytGetItemPackSpaceIndex-s  cCsgd}|jƒj|ƒ}xEtd|jƒƒD].}|j|ƒ}|jƒr1|d7}q1q1W|S(Nii(RRRRRR(RRt    itemSpaceRR    R
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytGetItemPackSpace>s cCsw|jƒj|ƒ}x<td|jƒƒD]%}|j|ƒ}|jƒr+tSq+W|rstj|d|gƒnt    S(NitGeRen_chenxin_676165(
RRRRRRtTruet PlayerControlt
NotifyCodetFalse(RRtisNotifyRR    R
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytCheckPackHasSpaceOs cCs@x9t|jƒƒD]%}|j|ƒ}|jƒsdSqWtS(N(RRRRR(titemPackR    R
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytGetPackIsEmptybs
 cCsˆd}|jƒj|ƒ}xftd|jƒƒD]O}|j|ƒ}tj|ƒs[q1n|jƒ|kr1||jƒ7}q1q1W|S(Ni(RRRRRt
ItemCommontCheckItemCanUset GetItemTypeID(RRtidtvalueRR    R
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytFindPlayerItemCountByItemIDrscCss|jƒj|ƒ}xWtd|jƒƒD]@}|j|ƒ}tj|ƒsUq+n|jƒ|kr+|Sq+WdS(Ni(    RRRRRRRRtNone(RRRRR    R
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytFindPlayerItemByItemID‡scCs”|jƒj|ƒ}xxtd|jƒƒD]a}|j|ƒ}tj|ƒsUq+n|jdƒ}|dkrvq+n|j    ƒ|kr+|Sq+WdS(Ni(
RRRRRRRtGetEffectByIndexRt GetEffectID(RRRRR    R
teffect((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytFindPlayerItemByEffIDšs cCss|jƒj|ƒ}xWtd|jƒƒD]@}|j|ƒ}tj|ƒsUq+n|jƒ|kr+|Sq+WdS(Ni(    RRRRRRRtGetTypeR(RRtitemTypeRR    R
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytFindPlayerItemByType¬scCs|jƒtjkS(N(R#tChConfigtDef_ItemType_MissionItem(R
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt IsEventItemÅstcCs|}xj|D]b}|jƒj|ƒ}xDtd|jƒƒD]-}    |j|    ƒ}
|
jƒreq>n|
jƒ|kr}q>n|
jƒrq>nt|
ƒ} | |kr| |} t    |
| ƒt
|
ƒrþt j |
|| | ƒ} t j |||| |ƒnd}nTt
|
ƒrGt j |
| | dƒ} t j |||| |ƒn|
jƒ|| 8}|dkr>tSq>Wq Wtjd||||f|jƒƒtS(s¢¿Û³ýÍæ¼ÒÎïÆ·£¬´Ó¶à¸ö±³°ü¼ì²é£¬Ò»°ãÊÇÓÃÓÚ²»ÊÇÁ¢Âí¿Û³ýµÄÂß¼­£¬·ÀÖ¹Íæ¼Ò¿ìËٰѱ³°üÎïÆ··ÅÈë²Ö¿âµ¼Ö¿۳ýʧ°Ü
    Èç¿ç·þ¹¦ÄÜ£¬ÓÐЩÂß¼­ÐèÒª¿ç·þÑéÖ¤»ò´¦Àíºó²Å½øÐп۳ý
    isJ¿Û³ýÎïÆ·Ê§°Ü£¬ÎïÆ·²»×ã! itemID=%s,delCount=%s,remainDelCnt=%s,eventName=%s(RRRRRRRt GetIsLockedt GetItemCountt SetItemCounttItemNeedRecordRtGetItemNoteDictt
DR_DelItemtClearRt    GameWorldtErrLogt GetPlayerIDR(RtitemIDtdelCountt    eventNamet saveDataDictt packTypeListt remainDelCnttpackTypeRR    tcurItemt    itemCountt updItemCountt itemNoteDict((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytDelPlayerItemByPacksÈs:     
       
 
      c
Cs^|jƒj|ƒ}|}x<td|jƒƒD]%}|j|ƒ}    |    jƒrXq1n|    jƒ|krpq1n|    jƒr‚q1n| r›t|    ƒr›q1n|    jƒ|krÈt    |    |    jƒ|ƒt
S|    jƒ|kr
|dkrü|j |    j ƒƒn|    jƒt
S|dkr,|j |    j ƒƒn||    jƒ}|    jƒ|dkr1t
Sq1WtS(Ni(RRRRRRRR*R(R,RRtappendtGetGUIDR0R(
RRRtcountt delEventItemtguidListRt curDelCountR    R
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt DelPlayerItemús6   
 
 c Csh|jƒj|ƒ}|}xFtd|jƒƒD]/}    |j|    ƒ}
tj|
ƒs[q1n|
jƒ|krsq1n| rŒt|
ƒrŒq1n| r¥|
j    ƒr¥q1n|
jƒ|krÒt
|
|
jƒ|ƒt S|
jƒ|kr|dkr|j |
jƒƒn|
jƒt S|dkr6|j |
jƒƒn||
jƒ}|
jƒ|dkr1t Sq1WtS(Ni(RRRRRRRRR(t    GetIsBindR,RRR@RAR0R( RRRRBtisbindRCRDRRER    R
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytDelPlayerItem_Bind4s6 
 
 cCs ||kr||krtStS(N(RR(t    srcItemIDt srcItemIsBindt
destItemIDtdestItemIsBind((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytCanPackItemByItemTypejscCs ||kr||krtStS(N(RR(RJRKRLRM((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytCanPackItemByItemBindyscCs+t|jƒ|jƒ|jƒ|jƒƒS(N(RNRRG(tsrcItemtdestItem((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt CanPackItemƒscCs+t|jƒ|jƒ|jƒ|jƒƒS(N(RORRG(RPRQ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytCheckDragItemBind‹sc Csd|jƒ}|tjks*|tjkrHtjd||jƒƒtS|j|ƒ}|dkrtjd||jƒƒtS|j|ƒ}|dkrºtjd||jƒƒtS||j    ƒksØ|dkrtjd||j    ƒf|jƒƒtS||j    ƒks |dkrJtjd||j    ƒf|jƒƒtS|j
|ƒ}    |j
|ƒ}
|} |    dkr~tS|
dkrŽtS|    j ƒržtS|    j ƒr¾t j|dƒtS| |    j    ƒkrÔtS| dkrätS| dkrÿ|    j    ƒ} n||kr+t|    ƒr+t j|dƒtS||krWt|
ƒrWt j|dƒtS|    |
| fS(    Ns*CanDragItem -> ²»ÔÊÐí²Ù×÷ÒÑɾ³ýµÄÎïÆ· = %ssCanDragItem ->±³°üÒì³£ = %ssCanDragItem ->Ä¿µÄ±³°üÒì³£ = %sis&CanDragItem ->³õʼ±³°üË÷ÒýÒì³£ = %s,%ss&CanDragItem ->Ä¿µÄ±³°üË÷ÒýÒì³£ = %s,%stGeRen_chenxin_644055titemuse_chenxin_31379(Rt IPY_GameWorldt
rptDeletedR1tLogR3RRRRRRR*RRR(( Rt fromPackPlacet    fromIndext toPackPlacettoIndexRBt itemManagerRttoPackRPRQtputCount((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt __CanDragItem—sV   &&      cCsýtjddƒ}|stS|jƒ}|jƒ}|tjddƒksd|tjddƒkrhtStjddƒ}||kr“||}n
|d}|jƒ|kr³tS|tjddƒksã|tjddƒkrçtStjddƒ}|S(    sVÅжÏÊÇ·ñÐèÒª¼Ç¼
        ¼Ç¼ÓÅÏȼ¶£º ¿ª¹Ø > ÐèÒª¼Ç¼µÄ > ²»ÐèÒª¼Ç¼µÄ > Î´ÖªÉ趨
    t
ItemRecorditItemRecordRuleiiiii(t IpyGameDataPYt
GetFuncCfgRR#RtGetFuncEvalCfgt GetItemColorR(R;t
recordOpenR$R4titemTypeMinColorDicttminColort defaultNeed((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR-Ýs&    
cCsP|jƒ}|jƒ}|tjddƒksH|tjddƒkrLtStS(NRbii(R#RRcReRR(R;R$R4((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytItemNotNeedRecords   cCsÅ|jtjƒdkrtS|jƒt|ƒkrQ|rMtj|dƒntS|j    ƒ|j    ƒkr†|r‚tj|dƒntS|j
ƒ}|j ƒ|krÁ|r½tj|dƒntStS(NitLvErrs#07F159E1-0974-4946-BE4942EAB8B5DBBEtRealmLimitUnuse( t GetUserAttrt ShareDefinetDef_IudetCancelUseLimitRtGetLVt GetItemUseLVRRRtGetReincarnationLvtGetEventCanUsetGetOfficialRank(RR
t
needNotifytitemUseRealmLimit((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytCheckItemUseLVs  cCs|jƒ}|S(N(tGetUseLV(R;tinitLV((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRr-s cCstS(N(R(R;((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytIsValuableItemDsc    Cst||||||ƒ}|s%dS|\}}}    |jƒdkr|    |jƒkri|j|ƒtStj|jƒƒ}
|
dkr®t    j
d|jƒ|j ƒƒdSt |ƒr½n|j |
ƒt||    ƒ|j|jƒƒt||jƒ|    ƒtS|jƒr%tj|dƒdS|jƒ} |tjkr×|tjkr×t||ƒr×| |jƒkr×|jƒ|jƒ} t|    | ƒ} | dkr¥dSt||jƒ| ƒt||jƒ| ƒtSt||ƒrØ| |jƒkrØ| |jƒ} t|    | ƒ} | dkrGt    j
d|    | f|j ƒƒdS| |    kr||krt|ƒ}|j||ƒtS|jƒ| dkr§t |ƒr§q§nt||jƒ| ƒt||jƒ| ƒn9||krt|ƒ}|j||ƒtS|j|ƒtS(NisÎïÆ· = %sÍ϶¯´´½¨Òì³£RTisÎïÆ·¶ÑµþÒì³£ = %s,%s(R`RRtSwitchRRtCreateSingleItemRRR1RXR3R-t
AssignItemR,t    SetIsBindRGR*RRt GetPackCountRVtrptItemRStminRRtPlayerItemControlert    PutInItem(RRYRZR[R\RBtresultRPRQR_t needPutItemt maxPackCounttdestRemainCountt realPutCounttplayerItemControl((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt __DoDragItemQsh        ? !       cCsn||kr)||kr)tjdƒdSt||||||ƒ}|tkrj|j||||ƒdS|S(Ns!###ÆðʼλÖúÍÖÕֹλÖÃÏàͬ, ²»´¦Àí(R1RXR‹RtNotify_ItemPutFail(RRYRZR[R\RBR…((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytDragItem²s  RƒcBs¼eZd Zd Zd Zd Zd„Zd„Zd„Z    d„Z
de igd„Z de igd„Z de igd„Zd„Zede igd    „Zed
„Zed „ZRS( cCsO||_|jjƒ|_|jjtjƒ|_|jjtjƒ|_dS(N(    t_PlayerItemControler__PlayerRt'_PlayerItemControler__PlayerItemManagerRRVtrptEquipt!_PlayerItemControler__PlayerEquipRt _PlayerItemControler__PlayerItem(tselftiPlayer((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt__init__Ïs
    cCs{|j}|j}|j|ƒ}|jƒrFtj|||tjƒS|j||ƒt    krwtj
|||tjƒSt S(N( RŽR‘RRRtPutInRVRtSwitchCanSpliceEquipRt
SwitchItemR(R“R;tequipPackIndexRt    equipPacktcurEquip((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt SwitchEquipÛs         cCsdS(Ni((R“((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytGetStartEquipCountíscCsò|jƒ|jƒkrtS|jdƒjƒ|jdƒjƒkrJtS|jƒ}|jƒ}|dks€|jƒdkr„tS||kr”tS|jƒ}||}||krÐt||ƒ|jƒnt||ƒt|||ƒtS(Nii(    RGRRR RR€R,R0R(R“R›R;t
euqipCounttequipPackCountR<tsumValue((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR—øs$*    
    R)cCs|j}d}d}|\}}}    |p3t|ƒ}
g} xttj|ƒƒD]} |jtj|| fƒ} | r€qRn|
rótj||ƒ}i|d6| d6|d6|d6}|j    |    ƒtj
|||sãd|n|||ƒn| j | ƒt j |tj|| f|ƒ|jƒ|krLt||jƒ|ƒqR|jƒPqRW| rtt||| ƒn|r‹|jƒ r‹tStS(Niit    packIndext    packPlacet ItemKeyDataR6sVPack_%s(RŽR-txrangeRt GetVPackCnttNomalDictGetPropertyR&tDef_PDict_VPackItemR.tupdatet
DR_GetItemR@RtNomalDictSetPropertyRR,R0tSync_VPackItem_RefreshRRR(R“R¡ttagItemteventRt canPutInCnttsetItemKeyDataR6t isForceEventtaddDictt isNeedRecordtrefreshPlaceListtplacet itemKeyDataR>tnoteDict((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytPutItemInVPack"s4    " ,  
c CsÖ|jƒ}|jƒ}|\}}}|r0n||d<tjj||ƒ|d<tj}    |jƒtjkr¿|jdƒ}
|
j    dƒ|} |
j    dƒ} t
j || | |    |ƒt S|tj krÒtSt S(Ntreason_name_sont GiveItemEventii(RRR&tItemGiveTypeDicttgettDef_GiveMoney_TransformItemR#tDef_ItemType_AutoUseMoneyRtGetEffectValueRt    GiveMoneyRtDef_TransformItemIDListR( R“RR¬R­R4R<R6R°R±tmoneyEventNametcurEfft
moneyCountt    moneyType((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytDoTransformItemJs"  
    cCs|tjgkrdS|j}tj|ƒ}|jƒ|jƒ|jƒ|jƒg}i|j    ƒd6|d6|d6|d6}t
j t j ||gƒdS(NtPlayerIDtItemDatat    PackIndextEvent(RVRRŽRtGetPlayerServerGroupIDRRRGt GetUserDataR3R1tSendMsgToClientServerRotCrossServerMsg_PutInItem(R“R¡R¬R­Rt serverGroupIDtitemDatatitemMsg((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt__CrossServerPutInItem^s    *(cCsa|jƒ}|tjkr;t||t||ƒ|ƒn"|tjkr]tj||ƒndS(N(R R&tDef_Effect_ItemCounttSetItemCountByIDtGetItemCountByIDtDef_Effect_AddActivitytPlayerActivityt DoAddActivity(R“RR¬titemEffR4R<teffectID((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt__autoUseByEffectIDjs   c Csê|j}tj|ƒ}|r't}ntjƒj|jƒƒ}|sLtStjƒry|j    |||ƒ|j
ƒt St j ||ƒ}t|ƒ}t|ƒ}    |j||jƒ||    |ƒsétjdt|ƒƒ|j
ƒtSt}
|jƒ} |jdƒ} | jƒt jkrF|j||| | |ƒ|j
ƒt S| jƒt jkr¸| jdƒ} | r¸ddl}| jdƒ}|j|| ||jƒƒ|j
ƒt Sn| t jksÜ|jƒt jkr|tjkr |j |||ƒ|j
ƒt St }t j!}n |j"ƒ}|tj#krBt}n|t$j%krd|j&|||ƒS|\}}}t'j(|||ƒr–|j
ƒt S|jƒt)j*dƒkrî|j+t$j,ƒdkrî|j-t$j,|j.t j/ƒƒqînt0j1|| |ƒ|j2j3|ƒ}|
r>|t$j4kr>t5|ƒp8|}
nt}|rÛxŽt6d|jƒƒD]t}|j7|ƒ}|j8ƒt krq`n|j8ƒdkrµt9||ƒ rµq`n|j:ƒt krÍq`nt|ƒ}t|ƒ}||}|dkrq`n||krr||}t;||ƒt;|||ƒ|
rÔtj<||||ƒ}tj=|||||ƒqÔq`||}t;||ƒ|j
ƒt }|
rÓtj<||||ƒ}tj=|||||ƒnPq`Wn|t krët Sxøt6d|jƒƒD]á}|j7|ƒ}|j8ƒt kr.qnt|ƒ}t|ƒ}||}|dkrbqn||krát>|jƒ||    ƒ}|j?|ƒt;|||ƒ|
râtj<||||ƒ}tj=|||||ƒqâq|j@ƒtjAkr|jB|ƒnE|j@ƒtjCkr+|j?|ƒn tjDd|jƒ|jEƒƒt }|
r‘tj<|||t|ƒƒ}tj=|||||ƒn|jƒt jFkr¹t'jG||ƒn(|jƒt jHkrátIjJ||ƒnPqW|S(Ns±³°üÂú£¬²»ÄÜ·ÅÈëÎïÆ· count = %diiiÿÿÿÿtOpenBoxByLoginDayCfgsÎïÆ· = %s·ÅÈë´íÎó(KRŽRtCheckItemIsEquipRR1t GetGameDatatGetItemByTypeIDRt IsCrossServert*_PlayerItemControler__CrossServerPutInItemR0RR&tGetItemPackTypeR+tGetIsAuctionItemt CanPutInItemtDebugLogRR tAutoUseItemEffectIDListt'_PlayerItemControler__autoUseByEffectIDtDef_Effect_AddFBCntR¾tFBCommontAddFBCntByItemRRÀR#R½RVRRÅtDef_UpperLimit_DWordR€t rptIdentifyRotDef_VPack_TypeListR·t
PlayerHerotAutoChangeToSkinPointt ReadChConfigtGetEvalChConfigRntDef_IudetCreateItemLoginDayt SetUserAttrR¦tDef_PDict_LoginDayCntt PlayerActTaskt OnPutinItemRRtNeedRecordRPTypeR-R¤RRRRR*R,R.R©tGetOutPutItemObjR~tGetGameWorldItemTypet gwitRoleItemR–tgwitSingleItemRXR3tDef_ItemType_HerotOnGiveHeroItemtDef_ItemType_Beastt PlayerBeasttOnGiveBeastItem(R“R¡R¬t defaultPileR­RtisEquipt curItemDatat tagItemCountt isAuctionItemR²R4RØt    isAutoUseRètmapIDR‡R6R°R±Rt    putResultR    R
t packItemCountt curItemCountt canPutinCounttupdCountR>t curCreateItem((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR„|sî         
  !
 
 
$
      
%"  
 
 
 
 
    cCs5tjƒrtS|j|||||ƒ\}}|S(N(R1RßRtCanPutInItemEx(R“R¡t    curItemIDR    RRtcheckRettputIndex((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRã?s !cCs…tjƒ}|j|ƒ}|dkrBtjd|ƒtdfSt|ƒrs|tjkrgt    dfSt
j }n!|rˆ|}t}n |j ƒ}|dkrÁtjd||fƒtdfSt
j ||ƒ}d}    |j}
|tjkrcxettj|ƒƒD]N} |
jt
j|| fƒ} | r5qn|    d7}    |    |krt    | fSqWtdfSd} |jj|ƒ}xçt|jƒƒD]Ó}|j|ƒ}|jƒrÑ|    |7}    | dkrK|} qKnz|rK|jƒréqŽnt|jƒ|jƒ||ƒrK|t|ƒkrK|    |t|ƒ7}    | dkrH|} qHqKn|    |krŽt    | fSqŽW|    |kr{tdfSt    | fS(NsÕÒ²»µ½ItemID = %dis$²ß»®Ìî±í´íÎó %s -> maxPackCount = %siiÿÿÿÿ( R1RÝRÞRRXRtIsPutinAutoTransformItemRVRRR&RêR€RáRŽRoRìR¤RR¥R¦R§RRRRRR*RNRRGR+(R“R¡RR    RRtgameDataRR‡t maxCanPutItemRR´Rµt    itemIndexRR    R
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR Msb  
 
       
    
 
 
   !   
N(t__name__t
__module__RRŽRR‘R’R•RœRR—RR·RÅRàRæRR„RãR (((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRƒÅs                  *(     à iicCs=|dkrdnd}|d|dt|dƒd|S(Niiiʚ;iáõiçi †(R‚(R4tRuneLVt    lockStatetsource((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytGetRuneItemKeyData•scCs|dS(Ni †((tkeyData((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt GetRuneItemID˜scCs |ddS(Niáõi †((R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytGetRuneItemPlusLV™scCs|dS(Niʚ;((R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytGetRuneItemIsLockšscCs |ddS(Niʚ;iáõ((R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytGetRuneItemSource›scCs|dkp|jƒtjkS(Ni(RfR&tDef_Quality_Orange(R;tplusLV((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytIsRuneItemNeedRecordœscCsbtj|tj||f|ƒ|r^|dkrHt|||gƒq^t|||gƒndS(Ni(RRªR&R§R«tSync_VPackItem_Clear(RR¡R´RtisSync((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytSetVPackItemKeyDataŸs   cCsÔ|sttj|ƒƒ}ntjƒ}|jƒ||_xn|D]f}|jtj    ||fƒ}|srqDntj
ƒ}|jƒ||_ ||_ |j j|ƒqDWt|j ƒ|_tj||ƒdS(N(R¤RR¥tChPyNetSendPackttagMCVPackRefreshR0tPackTypeR¦R&R§ttagMCVPackItemt    ItemPlaceRÇtVPacklItemListR@tlentCountt NetPackCommont SendFakePack(RR¡t    placeListt vpackRefreshR´Rµt    vpackItem((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR«¨s" 
      
        cCsX|s
dStjƒ}|jƒ||_||_t|jƒ|_tj||ƒdS(N(    R&ttagMCVPackClearR0R(t ItemPlaceListR,R-R.R/(RR¡R0t
vpackClear((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR#¼s 
        cCsÜ|st}tj}nt}g}xf|D]^}t||ƒ}| rT| rTq+ntjƒ}|jƒ||_||_    |j
|ƒq+W|s—dStj ƒ}|jƒ||_ t |j ƒ|_tj||ƒdS(N(Rt
PyGameDatatAutoTransformCountItemIDListRRÔR&ttagMCAutoItemCountR0tItemIDt    ItemCountR@ttagMCAutoItemCountRefresht ItemCountListR,R-R.R/(Rt
itemIDListtforcet itemCountListR4R<t    countInfot
clientPack((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytSync_AutoItemCountÇs,   
         
    cCs;tjƒj|ƒ}t||j|j|j|jƒdS(N(R1tGetPlayerManagertGetPlayerByIndextDropItemToOtherPackt SrcBackpackt DesBackPacktSrcIndextIsAll(tindext
clientDatattickR((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytOnDropItemToOtherPackîs"c     CsY|jƒj|ƒ}|sdSt|ƒ}|rg}x t|jƒƒD]Œ}|j|ƒ}    |     sJ|    jƒrxqJntj|    |ƒ}
|
|krœqJnt    ||||
||    ƒsJ|
|krÖ|j
|
ƒqÖqJqJWxx|D]} t j |d| gƒqáWnQ|j|ƒ}    |     s&|    jƒr*dStj|    |ƒ}
t    ||||
||    ƒdS(s#Í϶¯Ä³¸ö±³°üÎïÆ·µ½Íæ¼ÒÎïÆ·±³°ü
    NR( RRRƒR¤RRRR&Rát__DoDropItemToOtherPackR@RR( Rt fromPackIndext desPackIndexRJtisAlltmovePackt itemControlt fullPackListRR;t toPackIndext fullPackIndex((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyREós0    c Cs½|j||ƒr |jƒtS|jƒ}|jƒ}t|ƒ}|tjkr|tj    ||tƒslt
S|j ||ƒS|j ||||ƒ\}    }
|    s¤t
St |||||
|ƒS(N(RÅR0RRRRâRotrptRuneRRRR·R R( RRSRORURR;t curItemTypeIDR    RRR((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRNs
   cCsi|jƒtjkr)tj|dƒdS|jƒj|ƒ}|dkrNdS|dkrm|jƒd}n|t    j
kr¼||j ƒtj kr™dS|j |ƒt||||ƒnŸ|tjkr||jtjƒtjtjkrõdS|jtj|ƒt||||ƒn=||j ƒtj kr;dS|j |ƒt||||ƒ|jƒdS(NtGeRen_liubo_254483ii(tGetPlayerActionR&tDef_Player_ResetItem_StateRRRRRRRotrptHerotGetResetItemTicktDef_ItemPackResetIntervaltSetResetItemTickt ResetHeroPackRVt rptWarehouset GetTickByTypetTYPE_Player_Tick_WareHouseSorttTYPE_Player_Tick_Timet SetTickByTypetResetWareHouset ResetRolePackt Sync_Refresh(RR¡t
beingIndextendIndexRLR((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt __DoResetItem4s2         
cCsdS(N((RR¡RiRjRL((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt    ResetItemoscCsƒi}x~t||dƒD]i}|j|ƒ}|jƒrAqn|jƒ}|jƒ}||krrg||<nt|||ƒqWg}    g}
xQ|jƒD]C} x:| D]2} tj| ƒrÒ|
j    | ƒq­|    j    | ƒq­Wq W|
j
t ƒ|    j
t ƒ|j ||ƒ|} x1|
D])}|j| ƒj|tƒ| d7} qWx1|    D])}|j| ƒj|tƒ| d7} qRWdS(Ni(RRRtGetItemRt__ResetItem_AddItemInListtvaluesRtCheckNoteEquipGSR@tsortt__CmpWareHouseEquipt __CmpRolePacktWipePackR~R(RRRiRjtitemDictR    t curRoleItemR;R4titemListt equipGSListttmpListttmpItemtputPlaceR
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRfws8          cCsw|jƒ|jƒkrR|jƒ|jƒkr.|jƒ|jƒkr
|jƒ}|jƒ}||kr…t|jƒ|jƒƒStjddƒ}||krÚ||krÚt|j|jƒƒ|j|jƒƒƒS||krêdS||krúdSt||ƒSqOtd|jƒd|jƒƒSqstd|jƒd|jƒƒSn!td|jƒd|jƒƒSdS(NtDepotSortPriorityiiÿÿÿÿi(    RqRftGetItemQualityR#tcmpRRcReRJ(titem1titem2t    itemType1t    itemType2ttypeList((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRr¯s&   +  $$!cCsi}x~t||dƒD]i}|j|ƒ}|jƒrAqn|jƒ}|jƒ}||krrg||<nt|||ƒqWg}    g}
g} g} |jƒjtj    ƒ} x.|j
ƒD] }x|D]}d}d}t j ||ƒrOt j |ƒrOt j|ƒ}| jt j|ƒƒ}t j |ƒrmt j|ƒ}qmnt j |ƒrmd}d}n|jƒtjtjgkr›| j|ƒqÑ|dkr·|    j|ƒqÑ||krÓ|
j|ƒqÑ| j|ƒqÑWqÄW|
jtƒ|    jtƒ| jtƒ| jtƒ|j||ƒ|}x1|
D])}|j|ƒj|tƒ|d7}q9Wx1|    D])}|j|ƒj|tƒ|d7}qmWx1| D])}|j|ƒj|tƒ|d7}q¡Wx1| D])}|j|ƒj|tƒ|d7}qÕWdS(Niii(RRRRmRRnRRRVRRoRtCheckJobRptGetEquipGearScoretGetEquipPackIndexR#R&tDef_ItemType_RunetDef_ItemType_RuneExpR@RqRsRtR~R(RRRiRjRuR    RvR;R4RwtequipGSGreaterListtequipGSLesserListt runeItemListRšRyRztequipGSt
cmpEquipGStcmpItemR{R
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRgÐsj      !              cCsŸ|jƒ}|jƒ}||kr|jƒ|jƒkrõ|jƒ|jƒkrÑ|jƒ|jƒkr¸|jƒ|jƒkržt|jƒ|jƒƒ St|jƒ|jƒƒ St|jƒ|jƒƒStd|jƒd|jƒƒSq›td|jƒd|jƒƒSn‚tjddƒ}||krn||krnt|j    |jƒƒ|j    |jƒƒƒS||kr~dS||krŽdSt||ƒSdS(NitPackageSortPriorityiiÿÿÿÿ(
R#RfR}RRGR~RRcReRJ(RR€RR‚Rƒ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRs1s(   $$+  cCsË|jƒ}|jƒ}xƒ|D]{}|jƒ}t||ƒsFqn||krXqn||}||krƒ|j||ƒdS|j|ƒ||}qW|dkrÇ|j|ƒ|j|ƒndS(Ni(RR€RRtSetCountR@(tcurListtaddItemR<t    packCountR;tcurCountt canPlaceCount((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRnls$     
    cCsdS(N((RRRiRj((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR`ŠscCst|ƒt|ƒdS(N(t__CheckTransferItemPackRB(R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt OnPlayerLogin    s
 
c
Cs5tjddiƒ}|sdS|jƒ}|jƒ|d}d}|j|ƒ}||krddSg}t|ƒ}|jƒ}x|D]…}    |    |kr¡q‰n||    }
tjd||    f|ƒx-|
j    ƒD]\} } | \} }|j
ƒj | ƒ}xït |j ƒƒD]Û}|j|ƒ}tj|ƒs<qn|jƒ}|| krZqn|j ƒ}t||| |||ƒrªtjd| ||||f|ƒqntjd| ||||f|ƒ|jtj|ƒƒ|jƒqWqÒWtj|||    ƒ|    }q‰W|r1tjd|g|ƒndS(NtTransferItemPackiiÿÿÿÿtTransferItemPackVers4Íæ¼ÒÉÏÏß´¦ÀíÎïÆ·×ªÒÆ±³°ü! curVersion=%s,newVerNum=%ssO    Ö±½Ó×ªÒÆ: fromPackType=%s,toPackType=%s,itemIndex=%s,itemID=%s,itemCount=%ssO    Óʼþ×ªÒÆ: fromPackType=%s,toPackType=%s,itemIndex=%s,itemID=%s,itemCount=%s(RcRetkeysRqR¦RƒR3R1RXtitemsRRR¤RRRRRRNR@tGetMailItemDictR0RRªt SendMailByKey(RttransferItemPackRecordDicttverListt lastVersiontkeyt
curVersiont mailItemListRStplayerIDt    newVerNumttransferItemPackRulettransferPackInfoR=t fromPackTypet
toPackTypetfromPackRR
R4R<((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR–sT 
 
 
            
c
Csntjddiƒ}i}x]|jƒD]O\}}|dkrR||krRq(ntj||ƒr(||t|ƒ<q(q(W|s…dS|jƒjt    j
ƒ}xtt |j ƒƒD]`}|j |ƒ}| s°|jƒrÞq°n|jƒ}    |    |kr°|j|    ƒ|sPqq°q°WxS|jƒD]E\}    }t||    dtt    j
gƒsOPntjd||    fƒq!WdS(Nt PutInItemPackiis*¸ø°ó¶¨»õ±ÒÏÔʾÎïÆ·: moneyType=%s,itemID=%s(RcReR›RRtGetMoneytintRRRVRR¤RRRRtpoptGivePlayerItemRR1Rä(
RtcheckMoneyTypetbindMoneyItemInfotneedMoneyItemDictt    itemIDStrRÄRR    R;R4((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytCheckGiveBindMoneyTypeItemJs0    c
Cså|dkrtStjƒj|ƒ}|s/tS|r>d}n|sMtjn|d}tj||ƒ}    |    |ks|| rˆ|    g}nt}
t|ƒ} x0|D](}    | j    |    |||ƒr¡t
}
Pq¡q¡W|
s×tSt j |ƒrMt} xZt |ƒD]L} t|d|d|d|ƒ}|s'| St||||ƒrùt
} qùqùW| St} x‹t|tjdƒD]r} |dkrPnt|||d|d|ƒ}|s©| St|ƒ}t||||ƒrkt
} ||8}qkqkW| S(s2¸øÍæ¼ÒÎïÆ·
    @param isAuctionItem: ÊÇ·ñÅÄÆ·
    iiRt setAttrDict(RR1RÝRÞRVRR&RáRƒRãRRt
GetIsEquipR¤R÷tDoLogic_PutItemInPackRtDef_ItemCount_MaxR+(RR4R<Rt packIndexListR­RµRt defaultPackR¡tcanPutInRStisOKt_t outPutEquiptgiveItemt    giveCount((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR¯lsP           c Csãd}xÖt|tjdƒD]½}    ||kr4Pnt||||d|ƒ}
|
sZ|St|
ƒ} t|ƒtkr‘|jtj    |
ƒƒnt|ƒtkr¹|j|
j
ƒƒnt ||
||ƒr|| 7}qqW|S(NiiR( RR&R¸R÷R+ttypetlistR@Rt GetJsonItemRËR·( RR4R<RR­R¹t jsonItemListt userDataListt giveOKCountR½R¿R”((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytDoGiveItemLoop¨s  cCsTt|ƒ}x*|D]"}|j||||ƒrtSqW|jƒtjdƒtS(Ns,DoLogic_PutItemInPack Error ÎïÆ·ÎÞ·¨·ÅÈë±³°ü(RƒR„RR0R1R2R(Rt curGiveItemR­R¹RRSR¡((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR·Ês      
 cCs |d|S(Ni
((tisBindtsrcSign((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytGetIsBindValueâscCsdS(Ni((R;((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRâéscCsdS(N((R;RR((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytSetIsAuctionItemêscCs|jtj|ƒS(N(R¦R&tDef_PDict_ItemCount(RR4((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRÔòscCs•|jtj|ƒ}tdt|tjƒƒ}tj|tj||ƒ||krxtj    ||ƒrxdt
_ qxn|r‘t ||gƒn|S(Nii( R¦R&RÍtmaxR‚RêRRªt PlayerGubaotAutoTransGubaoPieceR6tg_transItemSignRB(RR4R<R$tbefCount((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRÓôs cCs=t||ƒ}||kr9tjd|||fƒtStS(Ns)ÎïÆ·Ë鯬²»×ã! itemID=%s,itemCount=%s < %s(RÔR1RäRR(RR4t    needCountR<((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytCheckItemEnoughByIDs
 cCsTt||ƒ}||kr9tjd|||fƒtSt|||||ƒtS(Ns-¿Û³ýÎïÆ·Ë鯬²»×ã! itemID=%s,itemCount=%s < %s(RÔR1RäRRÓR(RR4R5R$R<((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytDelItemCountByIDs  cCs~|jƒs(|jt|tjƒƒnRy ddWnCd|||f}|ttjƒƒ7}tj    d||ƒnXdS(Niis*%s %s %s -- ItemControler->SetItemCount::
tSetItemCountEmpty(
RRR‚R&R¸tstrt    tracebackt extract_stackR1tSendGameErrorEx(R
tcntR¤taccIDt
playerNamet    errorInfo((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR,s  cCs
|jƒS(N(R(R
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR+#scCsTt|ƒr+|tjkrdStj}n |jƒ}ttj|t    |ƒƒƒS(Ni(
RRVRR&RêR€R­tmathtceiltfloat(R:RÏR<RR“((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytGetItemNeedPackCount%s    cCsr| s|jƒ rtS|jƒtjksB|jƒtjkrFtS|jdƒ}|jƒtj    krntStS(Ni(
RRR&RÀR#R½RRR Rå(RÏRØ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR3s*cCs=tj||||||ƒ}|s9tjd|ƒdS|S(sC »ñÈ¡¹¦Äܲú³öµÄÎïÆ·ÊµÀý
    @param isAuctionItem: ÊÇ·ñÅÄÆ·£¬Ä¬ÈÏ·ÇÅÄÆ·
    @param expireTime: ÓÐЧʱ¼ä£¬Ê±¼äµ¥Î»ÓÉʱЧÀàÐ;ö¶¨
    @param curPlayer: ²ú³ö¸ÃÎïÆ·Ê±µÄÍæ¼Ò£¬ÎïÆ·Ä³Ð©ÊôÐÔÓÉÍæ¼ÒµÈ¼¶¾ö¶¨£¬Èç´«ÆæÊôÐÔ
    @param setAttrDict: Ö±½ÓÉèÖÃÎïÆ·µÄÊôÐÔ {key:value, ...} keyÖ§³Ö  ShareDefine.Def_IudetXXX×Ö·û´® »ò ×Ô¶¨key
    s²ú³öÎïÆ·Òì³£,ÎÞ·¨´´½¨ÎïÆ· = %sN(RR}R1R2(R4R<Rt
expireTimeRRµR;((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR÷>s
tSingleEquipTmpDatacBseZd„ZRS(cCsŽd|_d|_g|_t|_d|_t|_tj|_    g|_
g|_ g|_ g|_ g|_g|_g|_g|_dS(Ni(tstarLVtholeCntt    stoneDataRtisSuitetsuiteLVRÉRotItem_Source_UnkownRtlegendAttrIDListtlegendAttrValueListtlegendAttrIDListShentlegendAttrValueListShentlegendAttrIDListXiantlegendAttrValueListXiantlegendAttrIDListJitlegendAttrValueListJi(R“((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR•Ss                                                          (RRR•(((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRäNscCsh|jƒj|ƒ}xLt|jƒƒD]8}|j|ƒ}| s(|jƒrVq(n|jƒq(WdS(N(RRR¤RRRR0(RR:tpackR    R;((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt    ClearPackfsc
CsÃi}x¶|D]®}|jƒj|ƒ}xt|jƒƒD]|}|j|ƒ}| s;|jƒriq;n|jƒ}||kr‡q;n|jƒ}    |jƒ|j|dƒ|    ||<q;Wq W|S(Ni(    RRR¤RRRRR0R»(
RtclearItemIDListR8tclearCountDictR:RóR    R;R4R<((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt ClearItemIDps    
"cCs,t|tjƒt||d|tjgƒS(Ni(RôRot rptTempSwapR¯(RR4R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytPutItemInTempSwapscCs0|rt|tjƒn|jtjdƒdS(s£ ¿ªÆôʰȡµÄÎïÆ··ÅÈëÁÙʱ´æ·Å±³°ü
    @param isClearItem: ÊÇ·ñÇå³ýÁÙʱ´æ·Å±³°üÎïÆ·; Ò»°ã¼¤»î¸Ã¹¦ÄÜʱÉèÖÃΪ True£»
                        ÓÉÓÚ±ê¼Ç¸Ã״̬µÄkey¼Ç¼²»´æÓÚÊý¾Ý¿â£¬¹ÊÔÚ¸ÃÉ趨ÓÐЧÆÚÄÚÍæ¼ÒÀëÏßÖØÉϻᵼÖÂÉ趨±»ÖØÖÃ
                        ËùÒÔµÃÔÚÌØ¶¨µÄ¹¦ÄÜÂß¼­ÀÈ縱±¾µÄ DoEnterFB ÖØÐÂÉ趨£©£¬µ«´Ëʱ²»ÄÜÇå¿Õ´Ë±³°üÎïÆ·£¬ÐèÉèÖÃΪ False
                        ·ñÔò»áµ¼ÖÂÖØÐÂÉÏÏߺó֮ǰÒѾ­Ê°È¡µÄÁÙʱÎïÆ·±»Çå¿Õ
    iN(RôRot rptTempItemtSetDictR&t!Def_PlayerKey_PickupItemPutInTemp(Rt isClearItem((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytOpenPickupItemPutInTemp‡scCs|jtjdƒdS(Ni(RûR&Rü(R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytClosePickupItemPutInTemp“sc
Cs­g}|jƒjtjƒ}xOt|jƒƒD];}|j|ƒ}| s1|jƒr_q1n|j|ƒq1W| r‚| r‚gSt    |ƒt    |ƒ}|t
j |t j |ƒk}    |    r'g}
x$|D]} |
jt
j| ƒƒqÉW|
|7}
|stjn|}tj||jƒg|
ƒnrt|ƒ} x'|D]} | jt j | d|ƒq:Wx9|D]1\} }}t|| ||t j gd|ƒqdWt|tjƒdS(sn ½«ÁÙʱ±³°üÖеÄÎïÆ··ÅÈëÍæ¼ÒÎïÆ·±³°ü
    @param mailType: ÎïÆ·±³°ü¿Õ¼ä²»¹»Ê±Ê¹ÓÃÓʼþ·¢ÎïÆ·¸øÍæ¼ÒµÄÓʼþÄ£°å
    R­N(RRRoRúR¤RRRR@R,RR RVRRœtDefaultLackSpaceMailTypeRRR3RƒR„R¯Rô(RR­t mailTypeKeyt extraItemListt tempItemListRóR    R;t    needSpacet
isSendMailR£ttempItemRSR4titemCntR((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytDoGivePlayerTempPackItem˜s2 
  &c Csi}x©|D]¡}|sq n|d \}}t|ƒdkrK|dnd}tjƒj|ƒ}|sptStj|ƒ}    t|    |||ƒ}
|j|    dƒ|
||    <q WxX|j    ƒD]J\}    }
|
t
j ||    |
ƒkr¿|rt j |d|    gƒntSq¿WtS(NiiR(R,R1RÝRÞRR&RáRâR»R›RR RRR( RRwRtneedPackSpaceDicttitemInfoR4RRR;R:R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytCheckPackSpaceEnoughºs$ "c    Csû|s
dSg}i}xÙ|D]Ñ}|s/qn|d \}    }
t|ƒdkr[|dnd} tjƒj|    ƒ} | sštjd|    |jƒƒdStj| ƒ} t| | |
| ƒ}|j    | dƒ||| <|j
|    |
| gƒqW|südSt }x?|j ƒD]1\} }|t j|| |ƒkrt}PqqW|r†tj||jƒ|ƒtjdt|ƒ|jƒƒnqx9|D]1\}    }
} t||    |
| tjgd|ƒqW|r÷|rØ|dnd}t|||d|ƒndS(Niis+GivePlayerItemOrMail ÎïÆ·ID²»´æÔÚ itemID=%ss;GivePlayerItemOrMail±³°ü¿Õ¼ä²»¹»£¬·¢ËÍÓʼþ: mailItemList=%sR­R)tdataEx(R,R1RÝRÞR2tGetIDR&RáRâR»R@RR›RR Rt
PlayerMailRR3RäR×R¯RVRtNotifyGiveAwardInfo(RRwtmailKeyR­t isNotifyAwardt notifyDataExt giveItemListR    R
R4RRR;R:RRR6((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pytGivePlayerItemOrMailÑsB "#&cCsg}t|tƒrCg|jƒD]\}}||g^q"}n|}tjj|t|ƒƒ}tjƒ}    ||    _    t
|    j    ƒ|    _ |tj |    _ |tj |    _|rÀt|tƒrÀxè|jƒD]Ú\}
} t|
tƒr÷t|
ƒ}
n|
sÍ| r qÍnd} t| ttfƒr/| } nAt| tƒrÍ| d} t
| ƒdkrd| dnd} nqÍtjƒ}|
|_| |_| |_|    jj|ƒqÍWt
|    jƒ|    _nx¢|D]š}|d \}}t
|ƒdkrù|dnd} | sÇ| rqÇntjƒ}||_|tj |_|tj |_| |_|    jj|ƒqÇWt
|    jƒ|    _|ròt|tƒr¤tj |dt!ƒ}nt|tƒsÂt|ƒ}n|j"ddƒ}||    _#t
|    j#ƒ|    _$nt%j&||    ƒdS(sQÍ¨ÖªÍæ¼Ò»ñµÃ½±ÀøÐÅÏ¢
    @param giveItemInfo: ¿ÉÒÔÊÇÁбí [[itemID,count,isBind], ...] »ò  [[itemID,count], ...] »ò  {itemID:count, ...}
    @param moneyInfo: ½±Àø»õ±ÒÐÅÏ¢ {moneyType:moneyValue, ...} moneyType ¿ÉÒÔÊÇ×Ö·û´®»òÊýÖµ
                    moneyValue Ò²¿ÉÒÔ´«ÈëÁбí [moneyValue, isBind]£¬ÆäÖРisBind Í¬ÎïÆ·µÄ isBind ±ê¼ÇÂß¼­
    iiit ensure_asciis R)N('t
isinstancetdictR›R&RºR»R×R&ttagMCGiveAwardInfot    EventNameR,tEventLentDef_PerPointValuetExpPointtExpR­tlongRÂttagMCGiveAwardMoneyt    MoneyTypet
MoneyValuetIsBindt    MoneyListR@tMoneyLenttagMCGiveAwardItemR9R-tCountExtItemListtItemLentjsontdumpsRtreplacetDataExtDataLenR.R/(Rt giveItemInfoR6texpt    moneyInfoR tnotifyItemListtatbRARÄtmoneyValueInfoRÉt
moneyValuetmoneyR
R4R<R
((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyRøsf.         
%              "             c
Csœ|s
dS|jƒ}d}d    \}}xƒtjtjgD]o}|jƒj|ƒ}xQt|jƒƒddd…D]0}    |j    |    ƒ}
|
sv|
j
ƒr¤qvn|
j ƒ|kr¼qvnt |
ƒ} t j|
| ƒ} t j||d| ƒ|| 7}|dkrœd
\}}} x„t|
jƒƒD]m}    |
j|    ƒ}|jƒtjkrXq(n|jdƒ}t|jdƒƒ}td|jdƒƒ} Pq(Wn|
jƒqvWq;W|s¸dSg}|r>|r>tjƒj|ƒ}|r>t||t| ƒƒ}tjd|||||| fƒ|j||dgƒq>n|rl|||g}tj ||||ƒn,|r˜t!||ddt"i|d6gƒndS( Niiÿÿÿÿt RecycleItemiisc»ØÊÕÎïÆ·×ª»¯»õ±Ò! itemID=%s,recycleCount=%s,giveMoney=%s,moneyItemID=%s,moneyCount=%s,moneyRatio=%sR­t RecycleItemID(NN(iii(#R3RRVRRaRRRRRRRR+RR.R/tGetEffectCountRR R&tDef_Effect_RecycleItemMoneyR¾R­RÎR0R1RÝRÞRáRäR@RRRR(RR4t notifyMailKeyR¤t recycleCountt moneyItemIDRÃR:tbackPackR    R;R<t equipNoteDictt
moneyRatioR!t addItemListt moneyItemDatat    giveMoneyt    paramList((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyR74    sX  & 
      &(gRVR1R&RRRoRØtrandomRïRôRÖR&R.RcRÏR6RíRRþRßttimeR)R R RRRRRRR"R%R(RaR?RRFRIRNRORRRSR`R-RkRRxRrR{R‹RRƒRRRRRR"R%R«R#RBRMRERNRkRlRfRrRgRsRnR`R—R–R´R¯t rptAnyWhereRÇR·RËRâRÌRÔRÓRÔRÕR,R+RâRR÷RäRôR÷RùRþRÿRR RRR7(((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Item\ItemControler.pyt<module>sÆ                                                      1:6        
             F    %                  a    ÿÑ                               '     #        ;        8    !    a    ;                < "<!'                              
          " '<