Jump to content

bug dragonsoul refine


Recommended Posts

 


Hi Devs,

i had small problem with dragonsoul refine

look:

 

my dragon soul system :

Spoiler

item_proto.txt

100000    ؟ë½ة    ITEM_USE    USE_TIME_CHARGE_PER    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP    NONE    NONE    NONE    0    0    0    0    0    REAL_TIME    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
100001    ؟ë½ة    ITEM_USE    USE_TIME_CHARGE_PER    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP    NONE    NONE    NONE    0    0    0    0    0    REAL_TIME    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    50    0    0    0    0    0    0    0    0
100002    ؟ë½ة    ITEM_USE    USE_TIME_CHARGE_FIX    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP    NONE    NONE    NONE    0    0    0    0    0    REAL_TIME    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    30000    0    0    0    0    0    0    0    0
100100    ؟ëب¥¼®أكأâ±â    ITEM_EXTRACT    EXTRACT_DRAGON_SOUL    1    ANTI_SELL    NONE    NONE    NONE    1000000    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    50    0    0    0    0    0    0    0    0
100200    ؟ë½ةأكأâ±â    ITEM_EXTRACT    EXTRACT_DRAGON_HEART    1    ANTI_SELL    NONE    NONE    NONE    1000000    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
100300    ہد¹ف °­ب­¼®    ITEM_MATERIAL    MATERIAL_DS_REFINE_NORMAL    1    NONE    ITEM_STACKABLE    NONE    NONE    0    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
100400    "أà؛¹ہا °­ب­¼®"    ITEM_MATERIAL    MATERIAL_DS_REFINE_BLESSED    1    NONE    ITEM_STACKABLE    NONE    NONE    0    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
100500    ؟ë½إہا °­ب­¼®    ITEM_MATERIAL    MATERIAL_DS_REFINE_HOLLY    1    NONE    ITEM_STACKABLE    NONE    NONE    0    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
110000~110099    أضاد±ق ہد¹ف ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
110100~110199    اد±ق ہد¹ف ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
110200~110299    ءك±ق ہد¹ف ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
110300~110399    °ي±ق ہد¹ف ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
110400~110499    أض°ي±ق ہد¹ف ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
111000~111099    أضاد±ق ب­·ءار ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
111100~111199    اد±ق ب­·ءار ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
111200~111299    ءك±ق ب­·ءار ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
111300~111399    °ي±ق ب­·ءار ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
111400~111499    أض°ي±ق ب­·ءار ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
112000~112099    أضاد±ق بٌ±حار ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
112100~112199    اد±ق بٌ±حار ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
112200~112299    ءك±ق بٌ±حار ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
112300~112399    °ي±ق بٌ±حار ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
112400~112499    أض°ي±ق بٌ±حار ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
113000~113099    أضاد±ق °ي´ëہا ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
113100~113199    اد±ق °ي´ëہا ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
113200~113299    ءك±ق °ي´ëہا ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
113300~113399    °ي±ق °ي´ëہا ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
113400~113499    أض°ي±ق °ي´ëہا ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
114000~114099    أضاد±ق ہü¼³ہا ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
114100~114199    اد±ق ہü¼³ہا ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
114200~114299    ءك±ق ہü¼³ہا ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
114300~114399    °ي±ق ہü¼³ہا ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
114400~114499    أض°ي±ق ہü¼³ہا ¹é·و¼®    ITEM_DS    DS_SLOT1    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
120000~120099    أضاد±ق ہد¹ف ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
120100~120199    اد±ق ہد¹ف ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
120200~120299    ءك±ق ہد¹ف ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
120300~120399    °ي±ق ہد¹ف ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
120400~120499    أض°ي±ق ہد¹ف ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
121000~121099    أضاد±ق ب­·ءار ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
121100~121199    اد±ق ب­·ءار ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
121200~121299    ءك±ق ب­·ءار ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
121300~121399    °ي±ق ب­·ءار ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
121400~121499    أض°ي±ق ب­·ءار ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
122000~122099    أضاد±ق بٌ±حار ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
122100~122199    اد±ق بٌ±حار ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
122200~122299    ءك±ق بٌ±حار ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
122300~122399    °ي±ق بٌ±حار ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
122400~122499    أض°ي±ق بٌ±حار ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
123000~123099    أضاد±ق °ي´ëہا ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
123100~123199    اد±ق °ي´ëہا ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
123200~123299    ءك±ق °ي´ëہا ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
123300~123399    °ي±ق °ي´ëہا ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
123400~123499    أض°ي±ق °ي´ëہا ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
124000~124099    أضاد±ق ہü¼³ہا ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
124100~124199    اد±ق ہü¼³ہا ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
124200~124299    ءك±ق ہü¼³ہا ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
124300~124399    °ي±ق ہü¼³ہا ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
124400~124499    أض°ي±ق ہü¼³ہا ب­·و¼®    ITEM_DS    DS_SLOT2    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
130000~130099    أضاد±ق ہد¹ف ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
130100~130199    اد±ق ہد¹ف ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
130200~130299    ءك±ق ہد¹ف ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
130300~130399    °ي±ق ہد¹ف ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
130400~130499    أض°ي±ق ہد¹ف ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
131000~131099    أضاد±ق ب­·ءار ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
131100~131199    اد±ق ب­·ءار ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
131200~131299    ءك±ق ب­·ءار ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
131300~131399    °ي±ق ب­·ءار ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
131400~131499    أض°ي±ق ب­·ءار ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
132000~132099    أضاد±ق بٌ±حار ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
132100~132199    اد±ق بٌ±حار ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
132200~132299    ءك±ق بٌ±حار ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
132300~132399    °ي±ق بٌ±حار ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
132400~132499    أض°ي±ق بٌ±حار ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
133000~133099    أضاد±ق °ي´ëہا ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
133100~133199    اد±ق °ي´ëہا ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
133200~133299    ءك±ق °ي´ëہا ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
133300~133399    °ي±ق °ي´ëہا ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
133400~133499    أض°ي±ق °ي´ëہا ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
134000~134099    أضاد±ق ہü¼³ہا ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
134100~134199    اد±ق ہü¼³ہا ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
134200~134299    ءك±ق ہü¼³ہا ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
134300~134399    °ي±ق ہü¼³ہا ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
134400~134499    أض°ي±ق ہü¼³ہا ا³·و¼®    ITEM_DS    DS_SLOT3    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
140000~140099    أضاد±ق ہد¹ف أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
140100~140199    اد±ق ہد¹ف أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
140200~140299    ءك±ق ہد¹ف أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
140300~140399    °ي±ق ہد¹ف أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
140400~140499    أض°ي±ق ہد¹ف أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
141000~141099    أضاد±ق ب­·ءار أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
141100~141199    اد±ق ب­·ءار أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
141200~141299    ءك±ق ب­·ءار أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
141300~141399    °ي±ق ب­·ءار أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
141400~141499    أض°ي±ق ب­·ءار أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
142000~142099    أضاد±ق بٌ±حار أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
142100~142199    اد±ق بٌ±حار أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
142200~142299    ءك±ق بٌ±حار أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
142300~142399    °ي±ق بٌ±حار أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
142400~142499    أض°ي±ق بٌ±حار أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
143000~143099    أضاد±ق °ي´ëہا أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
143100~143199    اد±ق °ي´ëہا أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
143200~143299    ءك±ق °ي´ëہا أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
143300~143399    °ي±ق °ي´ëہا أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
143400~143499    أض°ي±ق °ي´ëہا أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
144000~144099    أضاد±ق ہü¼³ہا أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
144100~144199    اد±ق ہü¼³ہا أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
144200~144299    ءك±ق ہü¼³ہا أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
144300~144399    °ي±ق ہü¼³ہا أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
144400~144499    أض°ي±ق ہü¼³ہا أ¶·و¼®    ITEM_DS    DS_SLOT4    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
150000~150099    أضاد±ق ہد¹ف ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
150100~150199    اد±ق ہد¹ف ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
150200~150299    ءك±ق ہد¹ف ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
150300~150399    °ي±ق ہد¹ف ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
150400~150499    أض°ي±ق ہد¹ف ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
151000~151099    أضاد±ق ب­·ءار ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
151100~151199    اد±ق ب­·ءار ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
151200~151299    ءك±ق ب­·ءار ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
151300~151399    °ي±ق ب­·ءار ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
151400~151499    أض°ي±ق ب­·ءار ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
152000~152099    أضاد±ق بٌ±حار ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
152100~152199    اد±ق بٌ±حار ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
152200~152299    ءك±ق بٌ±حار ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
152300~152399    °ي±ق بٌ±حار ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
152400~152499    أض°ي±ق بٌ±حار ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
153000~153099    أضاد±ق °ي´ëہا ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
153100~153199    اد±ق °ي´ëہا ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
153200~153299    ءك±ق °ي´ëہا ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
153300~153399    °ي±ق °ي´ëہا ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
153400~153499    أض°ي±ق °ي´ëہا ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
154000~154099    أضاد±ق ہü¼³ہا ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
154100~154199    اد±ق ہü¼³ہا ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
154200~154299    ءك±ق ہü¼³ہا ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
154300~154399    °ي±ق ہü¼³ہا ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
154400~154499    أض°ي±ق ہü¼³ہا ³ْ·و¼®    ITEM_DS    DS_SLOT5    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
160000~160099    أضاد±ق ہد¹ف بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
160100~160199    اد±ق ہد¹ف بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
160200~160299    ءك±ق ہد¹ف بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
160300~160399    °ي±ق ہد¹ف بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
160400~160499    أض°ي±ق ہد¹ف بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
161000~161099    أضاد±ق ب­·ءار بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
161100~161199    اد±ق ب­·ءار بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
161200~161299    ءك±ق ب­·ءار بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
161300~161399    °ي±ق ب­·ءار بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
161400~161499    أض°ي±ق ب­·ءار بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
162000~162099    أضاد±ق بٌ±حار بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
162100~162199    اد±ق بٌ±حار بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
162200~162299    ءك±ق بٌ±حار بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
162300~162399    °ي±ق بٌ±حار بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
162400~162499    أض°ي±ق بٌ±حار بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_DROP|ANTI_SELL|ANTI_GIVE|ANTI_STACK|ANTI_MYSHOP|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
163000~163099    أضاد±ق °ي´ëہا بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
163100~163199    اد±ق °ي´ëہا بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
163200~163299    ءك±ق °ي´ëہا بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
163300~163399    °ي±ق °ي´ëہا بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
163400~163499    أض°ي±ق °ي´ëہا بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
164000~164099    أضاد±ق ہü¼³ہا بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
164100~164199    اد±ق ہü¼³ہا بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
164200~164299    ءك±ق ہü¼³ہا بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
164300~164399    °ي±ق ہü¼³ہا بو·و¼®    ITEM_DS    DS_SLOT6    1    ANTI_STACK|ANTI_SAFEBOX    NONE    NONE    NONE    0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
 

dragon_soul_refine_settings.py:

Spoiler

dragon_soul_refine_settings.py

 

import item

default_grade_need_count = [3, 3, 3, 3]
default_grade_fee = [30000, 50000, 70000, 100000]
default_step_need_count = [4, 3, 2, 1]
default_step_fee = [20000, 30000, 40000, 50000]

strength_fee = {
    item.MATERIAL_DS_REFINE_NORMAL : 10000,
    item.MATERIAL_DS_REFINE_BLESSED : 20000,
    item.MATERIAL_DS_REFINE_HOLLY : 30000,
}

# °­ب­°، ¾î´ہ ´ـ°è ±îءِ °،´ة ارءِ
# table(GRADE, STEP) = max strength.
default_strength_max_table = [
    [2, 2, 3, 3, 4],
    [3, 3, 3, 4, 4],
    [4, 4, 4, 4, 4],
    [4, 4, 4, 4, 5],
    [4, 4, 4, 5, 6],
]

# ہد´ـ ±âب¹ہûہ¸·خ´آ strength °­ب­ہا °و؟ى, °­ب­¼®؟، ہااط fee°، ¼آئأµا±â ¶§¹®؟،,
# dragon_soul_refine_info؟، ³ضءِ ¾ت¾ز´ظ.
# (°­ب­¼®¸¸ ³ض¾îµµ ¾َ¸¶ ات؟نارءِ ؛¸ہد ¼ِ ہضµµ·د اد±â ہ§اط)
# ´ظ¸¸ ¼­¹ِ؟،¼­´آ ؟ëب¥¼® إ¸ہش ؛°·خ °­ب­¼® fee¸¦ ¼آئأاز ¼ِ ہضµµ·د اط³ù±â ¶§¹®؟،,
# ¸¸ہد ؟ëب¥¼® ؛°·خ °­ب­¼® fee¸¦ ´ظ¸£°ش اد°ي ½ح´ظ¸é,
# إ¬¶َ ؤعµه¸¦ ¼ِء¤اط¾كاز °حہج´ظ.
default_refine_info = {
    "grade_need_count" : default_grade_need_count,
    "grade_fee" : default_grade_fee,
    "step_need_count" : default_step_need_count,
    "step_fee" : default_step_fee,
    "strength_max_table" : default_strength_max_table,
}

dragon_soul_refine_info = {
    11 : default_refine_info,
    12 : default_refine_info,
    13 : default_refine_info,
    14 : default_refine_info,
    15 : default_refine_info,
    16 : default_refine_info,
}

uidragonsoul.py:

 

Spoiler

uidragonsoul.py

import ui
import player
import mouseModule
import net
import app
import snd
import item
import chat
import grp
import uiScriptLocale
import uiRefine
import uiAttachMetin
import uiPickMoney
import uiCommon
import uiPrivateShopBuilder
import localeInfo
import constInfo
import ime
import uiInventory
import sys
ITEM_FLAG_APPLICABLE = 1 << 14

# ؟ëب¥¼® Vnum؟، ´ëار comment    
# ITEM VNUMہ» 10¸¸ ہع¸®؛خإح, FEDCBA¶َ°ي ار´ظ¸é
# FE : ؟ëب¥¼® ء¾·ù.    D : µî±ق
# C : ´ـ°è            B : °­ب­        
# A : ؟©¹ْہا ¹ّب£µé...    

class DragonSoulWindow(ui.ScriptWindow):
    KIND_TAP_TITLES = [uiScriptLocale.DRAGONSOUL_TAP_TITLE_1, uiScriptLocale.DRAGONSOUL_TAP_TITLE_2,
            uiScriptLocale.DRAGONSOUL_TAP_TITLE_3, uiScriptLocale.DRAGONSOUL_TAP_TITLE_4, uiScriptLocale.DRAGONSOUL_TAP_TITLE_5, uiScriptLocale.DRAGONSOUL_TAP_TITLE_6]
    def __init__(self):
        ui.ScriptWindow.__init__(self)
        self.questionDialog = None
        self.tooltipItem = None
        self.sellingSlotNumber = -1
        self.isLoaded = 0
        self.isActivated = FALSE
        self.DSKindIndex = 0
        self.tabDict = None
        self.tabButtonDict = None
        self.deckPageIndex = 0
        self.inventoryPageIndex = 0
        self.SetWindowName("DragonSoulWindow")
        self.__LoadWindow()

    def __del__(self):
        ui.ScriptWindow.__del__(self)
        
    def Show(self):
        self.__LoadWindow()

        ui.ScriptWindow.Show(self)
    def __LoadWindow(self):
        if self.isLoaded == 1:
            return
        self.isLoaded = 1
        try:
            pyScrLoader = ui.PythonScriptLoader()            
            pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "dragonsoulwindow.py")
        
        except:
            import exception
            exception.Abort("dragonsoulwindow.LoadWindow.LoadObject")
        try:
            if localeInfo.IsARABIC():
                self.board = self.GetChild("Equipment_Base")
                self.board.SetScale(-1.0, 1.0)
                self.board.SetRenderingRect(-1.0, 0.0, 1.0, 0.0)
                self.board = self.GetChild("Tab_01")
                self.board.SetScale(-1.0, 1.0)
                self.board.SetRenderingRect(-1.0, 0.0, 1.0, 0.0)
                self.board = self.GetChild("Tab_02")
                self.board.SetScale(-1.0, 1.0)
                self.board.SetRenderingRect(-1.0, 0.0, 1.0, 0.0)
                self.board = self.GetChild("Tab_03")
                self.board.SetScale(-1.0, 1.0)
                self.board.SetRenderingRect(-1.0, 0.0, 1.0, 0.0)
                self.board = self.GetChild("Tab_04")
                self.board.SetScale(-1.0, 1.0)
                self.board.SetRenderingRect(-1.0, 0.0, 1.0, 0.0)
                self.board = self.GetChild("Tab_05")
                self.board.SetScale(-1.0, 1.0)
                self.board.SetRenderingRect(-1.0, 0.0, 1.0, 0.0)
                self.board = self.GetChild("Tab_06")
                self.board.SetScale(-1.0, 1.0)
                self.board.SetRenderingRect(-1.0, 0.0, 1.0, 0.0)
                
            wndItem = self.GetChild("ItemSlot")
            wndEquip = self.GetChild("EquipmentSlot")
            self.activateButton = self.GetChild("activate")
            self.deckTab = []
            self.deckTab.append(self.GetChild("deck1"))
            self.deckTab.append(self.GetChild("deck2"))
            self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close))            
            self.inventoryTab = []
            self.inventoryTab.append(self.GetChild("Inventory_Tab_01"))
            self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))
            self.inventoryTab.append(self.GetChild("Inventory_Tab_03"))
            self.inventoryTab.append(self.GetChild("Inventory_Tab_04"))
            self.inventoryTab.append(self.GetChild("Inventory_Tab_05"))
            self.tabDict = {
                0    : self.GetChild("Tab_01"),
                1    : self.GetChild("Tab_02"),
                2    : self.GetChild("Tab_03"),
                3    : self.GetChild("Tab_04"),
                4    : self.GetChild("Tab_05"),
                5    : self.GetChild("Tab_06"),
            }
            self.tabButtonDict = {
                0    : self.GetChild("Tab_Button_01"),
                1    : self.GetChild("Tab_Button_02"),
                2    : self.GetChild("Tab_Button_03"),
                3    : self.GetChild("Tab_Button_04"),
                4    : self.GetChild("Tab_Button_05"),
                5    : self.GetChild("Tab_Button_06"),
            }
            self.tabText = self.GetChild("tab_text_area")
        except:
            import exception
            exception.Abort("InventoryWindow.LoadWindow.BindObject")
        ## DragonSoul Kind Tap
        for (tabKey, tabButton) in self.tabButtonDict.items():
            tabButton.SetEvent(ui.__mem_func__(self.SetDSKindIndex), tabKey)
        ## Item
        wndItem.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
        wndItem.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
        wndItem.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))
        wndItem.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
        wndItem.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))
        wndItem.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))
        
        ## Equipment
        wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptyEquipSlot))
        wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectEquipItemSlot))
        wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseEquipItemSlot))
        wndEquip.SetUseSlotEvent(ui.__mem_func__(self.UseEquipItemSlot))
        wndEquip.SetOverInItemEvent(ui.__mem_func__(self.OverInEquipItem))
        wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.OverOutEquipItem))
        
        ## Deck
        self.deckTab[0].SetToggleDownEvent(lambda arg=0: self.SetDeckPage(arg))
        self.deckTab[1].SetToggleDownEvent(lambda arg=1: self.SetDeckPage(arg))
        self.deckTab[0].SetToggleUpEvent(lambda arg=0: self.__DeckButtonDown(arg))
        self.deckTab[1].SetToggleUpEvent(lambda arg=1: self.__DeckButtonDown(arg))
        self.deckTab[0].Down()
        ## Grade button
        self.inventoryTab[0].SetEvent(lambda arg=0: self.SetInventoryPage(arg))
        self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg))
        self.inventoryTab[2].SetEvent(lambda arg=2: self.SetInventoryPage(arg))
        self.inventoryTab[3].SetEvent(lambda arg=3: self.SetInventoryPage(arg))
        self.inventoryTab[4].SetEvent(lambda arg=4: self.SetInventoryPage(arg))
        self.inventoryTab[0].Down()
        ## Etc
        self.wndItem = wndItem
        self.wndEquip = wndEquip
        
        self.dlgQuestion = uiCommon.QuestionDialog2()
        self.dlgQuestion.Close()
        
        self.activateButton.SetToggleDownEvent(ui.__mem_func__(self.ActivateButtonClick))
        self.activateButton.SetToggleUpEvent(ui.__mem_func__(self.ActivateButtonClick))
        self.wndPopupDialog = uiCommon.PopupDialog()
        
        ## 
        self.listHighlightedSlot = []
        
        ## Refresh
        self.SetInventoryPage(0)
        self.RefreshItemSlot()
        self.RefreshEquipSlotWindow()
        self.RefreshBagSlotWindow()
        self.SetDSKindIndex(0)
        self.activateButton.Enable()
        self.deckTab[self.deckPageIndex].Down()
        self.activateButton.SetUp()

    def Destroy(self):
        self.ClearDictionary()
        self.tooltipItem = None
        self.wndItem = 0
        self.wndEquip = 0
        self.activateButton = 0
        self.questionDialog = None
        self.mallButton = None
        self.inventoryTab = []
        self.deckTab = []
        self.equipmentTab = []
        self.tabDict = None
        self.tabButtonDict = None
        
    def Close(self):
        if None != self.tooltipItem:
            self.tooltipItem.HideToolTip()
        self.Hide()
    
    def __DeckButtonDown(self, deck):
        self.deckTab[deck].Down()
    
    def SetInventoryPage(self, page):
        if self.inventoryPageIndex != page:
            self.__HighlightSlot_ClearCurrentPage()
        self.inventoryPageIndex = page
        self.inventoryTab[(page+1)%5].SetUp()
        self.inventoryTab[(page+2)%5].SetUp()
        self.inventoryTab[(page+3)%5].SetUp()
        self.inventoryTab[(page+4)%5].SetUp()
        self.RefreshBagSlotWindow()
        
    def SetItemToolTip(self, tooltipItem):
        self.tooltipItem = tooltipItem
        
    def RefreshItemSlot(self):
        self.RefreshBagSlotWindow()
        self.RefreshEquipSlotWindow()
        
    def RefreshEquipSlotWindow(self):
        for i in xrange(6):
            slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(player.INVENTORY, player.DRAGON_SOUL_EQUIPMENT_SLOT_START + i)
            itemVnum = player.GetItemIndex(slotNumber)
            self.wndEquip.SetItemSlot(player.DRAGON_SOUL_EQUIPMENT_SLOT_START + i, itemVnum, 0)
            self.wndEquip.EnableSlot(player.DRAGON_SOUL_EQUIPMENT_SLOT_START + i)
            
            if itemVnum != 0:
                item.SelectItem(itemVnum)
                for j in xrange(item.LIMIT_MAX_NUM):
                    (limitType, limitValue) = item.GetLimit(j)
                    
                    # ¹ط؟،¼­ remain_timeہج 0ہجادہخءِ أ¼إ© اد±â ¶§¹®؟، ہسہاہا ¾ç¼ِ·خ أت±âب­
                    remain_time = 999
                    # ہد´ـ اِہç إ¸ہج¸س´آ ہج ¼¼°³ »سہج´ظ.
                    if item.LIMIT_REAL_TIME == limitType:
                        remain_time = player.GetItemMetinSocket(player.INVENTORY, slotNumber, 0) - app.GetGlobalTimeStamp()
                    elif item.LIMIT_REAL_TIME_START_FIRST_USE == limitType:
                        remain_time = player.GetItemMetinSocket(player.INVENTORY, slotNumber, 0) - app.GetGlobalTimeStamp()
                    elif item.LIMIT_TIMER_BASED_ON_WEAR == limitType:
                        remain_time = player.GetItemMetinSocket(player.INVENTORY, slotNumber, 0)
                        
                    if remain_time <= 0:
                        self.wndEquip.DisableSlot(player.DRAGON_SOUL_EQUIPMENT_SLOT_START + i)
                        break
                    
        self.wndEquip.RefreshSlot()
        
    def RefreshStatus(self):
        self.RefreshItemSlot()
        
    def __InventoryLocalSlotPosToGlobalSlotPos(self, window_type, local_slot_pos):
        if player.INVENTORY == window_type:
            return self.deckPageIndex * player.DRAGON_SOUL_EQUIPMENT_FIRST_SIZE + local_slot_pos
            
        return (self.DSKindIndex * 5 * player.DRAGON_SOUL_PAGE_SIZE) + self.inventoryPageIndex * player.DRAGON_SOUL_PAGE_SIZE + local_slot_pos
        
    def RefreshBagSlotWindow(self):
        getItemVNum=player.GetItemIndex
        getItemCount=player.GetItemCount
        setItemVnum=self.wndItem.SetItemSlot
        for i in xrange(player.DRAGON_SOUL_PAGE_SIZE):
            self.wndItem.EnableSlot(i)
            #<- dragon soul kind
            slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(player.DRAGON_SOUL_INVENTORY, i)

            itemCount = getItemCount(player.DRAGON_SOUL_INVENTORY, slotNumber)
            if 0 == itemCount:
                self.wndItem.ClearSlot(i)
                continue
            elif 1 == itemCount:
                itemCount = 0
            itemVnum = getItemVNum(player.DRAGON_SOUL_INVENTORY, slotNumber)

            setItemVnum(i, itemVnum, itemCount)

            if itemVnum != 0:
                item.SelectItem(itemVnum)
                for j in xrange(item.LIMIT_MAX_NUM):
                    (limitType, limitValue) = item.GetLimit(j)

                    # ¹ط؟،¼­ remain_timeہج ہ½¼ِہخءِ أ¼إ© اد±â ¶§¹®؟، ہسہاہا ¾ç¼ِ·خ أت±âب­
                    remain_time = 999
                    if item.LIMIT_REAL_TIME == limitType:
                        remain_time = player.GetItemMetinSocket(player.DRAGON_SOUL_INVENTORY, slotNumber, 0)
                    elif item.LIMIT_REAL_TIME_START_FIRST_USE == limitType:
                        remain_time = player.GetItemMetinSocket(player.DRAGON_SOUL_INVENTORY, slotNumber, 0)
                    elif item.LIMIT_TIMER_BASED_ON_WEAR == limitType:
                        remain_time = player.GetItemMetinSocket(player.DRAGON_SOUL_INVENTORY, slotNumber, 0)
                
                    if remain_time <= 0:
                        self.wndItem.DisableSlot(i)
                        break

        self.__HighlightSlot_RefreshCurrentPage()
        self.wndItem.RefreshSlot()
        
    def ShowToolTip(self, window_type, slotIndex):
        if None != self.tooltipItem:
            if player.INVENTORY == window_type:
                self.tooltipItem.SetInventoryItem(slotIndex)
            else:
                self.tooltipItem.SetInventoryItem(slotIndex, player.DRAGON_SOUL_INVENTORY)

    def OnPressEscapeKey(self):
        self.Close()
        return TRUE
            
    def OnTop(self):
        if None != self.tooltipItem:
            self.tooltipItem.SetTop()
    
    # item slot °ü·أ اش¼ِ                
    def OverOutItem(self):
        self.wndItem.SetUsableItem(FALSE)
        if None != self.tooltipItem:
            self.tooltipItem.HideToolTip()
            
    def OverInItem(self, overSlotPos):
        self.wndItem.DeactivateSlot(overSlotPos)
        overSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(player.DRAGON_SOUL_INVENTORY, overSlotPos)
        try:
            self.listHighlightedSlot.remove(overSlotPos)
        except:
            pass
        
        self.wndItem.SetUsableItem(FALSE)
        self.ShowToolTip(player.DRAGON_SOUL_INVENTORY, overSlotPos)
    
    def __UseItem(self, slotIndex):
        ItemVNum = player.GetItemIndex(player.DRAGON_SOUL_INVENTORY, slotIndex)
        if 0 == player.GetItemMetinSocket(player.DRAGON_SOUL_INVENTORY, slotIndex, 0):
            self.wndPopupDialog.SetText(localeInfo.DRAGON_SOUL_EXPIRED)
            self.wndPopupDialog.Open()
            return
 
        self.__EquipItem(slotIndex)

    def __EquipItem(self, slotIndex):    
        ItemVNum = player.GetItemIndex(player.DRAGON_SOUL_INVENTORY, slotIndex)
        item.SelectItem(ItemVNum)
        subType = item.GetItemSubType()
        equipSlotPos = player.DRAGON_SOUL_EQUIPMENT_SLOT_START + self.deckPageIndex * player.DRAGON_SOUL_EQUIPMENT_FIRST_SIZE + subType
        srcItemPos = (player.DRAGON_SOUL_INVENTORY, slotIndex)
        dstItemPos = (player.INVENTORY, equipSlotPos)
        self.__OpenQuestionDialog(TRUE, srcItemPos, dstItemPos)
    
    def SelectItemSlot(self, itemSlotIndex):
        if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
            return

        itemSlotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(player.DRAGON_SOUL_INVENTORY, itemSlotIndex)

        if mouseModule.mouseController.isAttached():
            attachedSlotType = mouseModule.mouseController.GetAttachedType()
            attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
            attachedItemVID = mouseModule.mouseController.GetAttachedItemIndex()
                
            attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
            if player.RESERVED_WINDOW != attachedInvenType:
                net.SendItemUseToItemPacket(attachedInvenType, attachedSlotPos, player.DRAGON_SOUL_INVENTORY, itemSlotIndex)

            mouseModule.mouseController.DeattachObject()

        else:
            ## »َء،؟،¼­ ئبµµ·د أك°،
            ## 20140220
            curCursorNum = app.GetCursor()

            if app.SELL == curCursorNum:
                self.__SellItem(itemSlotIndex)
            elif app.BUY == curCursorNum:
                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_BUY_INFO)
            else:
                selectedItemVNum = player.GetItemIndex(player.DRAGON_SOUL_INVENTORY, itemSlotIndex)
                itemCount = player.GetItemCount(player.DRAGON_SOUL_INVENTORY, itemSlotIndex)
                mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_DRAGON_SOUL_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount)
                self.wndItem.SetUseMode(FALSE)
                snd.PlaySound("sound/ui/pick.wav")
    
    ## »َء،؟، ئب±â
    ## 2014.02.20 أك°،
    def __SellItem(self, itemSlotPos):
        if not player.IsDSEquipmentSlot(player.DRAGON_SOUL_INVENTORY, itemSlotPos):
            self.sellingSlotNumber = itemSlotPos
            itemIndex = player.GetItemIndex(player.DRAGON_SOUL_INVENTORY, itemSlotPos)
            itemCount = player.GetItemCount(player.DRAGON_SOUL_INVENTORY, itemSlotPos)

            item.SelectItem(itemIndex)
            
            if item.IsAntiFlag(item.ANTIFLAG_SELL):
                popup = uiCommon.PopupDialog()
                popup.SetText(localeInfo.SHOP_CANNOT_SELL_ITEM)
                popup.SetAcceptEvent(self.__OnClosePopupDialog)
                popup.Open()
                self.popup = popup
                return
            
            itemPrice = item.GetISellItemPrice()

            if item.Is1GoldItem():
                itemPrice = itemCount / itemPrice / 5
            else:
                itemPrice = itemPrice * itemCount / 5

            item.GetItemName(itemIndex)
            itemName = item.GetItemName()

            self.questionDialog = uiCommon.QuestionDialog()
            self.questionDialog.SetText(localeInfo.DO_YOU_SELL_ITEM(itemName, itemCount, itemPrice))
            self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.SellItem))
            self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
            self.questionDialog.Open()
            self.questionDialog.count = itemCount

    ## »َء،؟، ئب±â
    def SellItem(self):

        net.SendShopSellPacketNew(self.sellingSlotNumber, self.questionDialog.count, player.DRAGON_SOUL_INVENTORY)
        snd.PlaySound("sound/ui/money.wav")
        self.OnCloseQuestionDialog()

    ## »َء،؟، ئب±â
    def OnCloseQuestionDialog(self):
        if self.questionDialog:
            self.questionDialog.Close()

        self.questionDialog = None

    ## »َء،؟، ئب±â
    def __OnClosePopupDialog(self):
        self.pop = None

    def SelectEmptySlot(self, selectedSlotPos):
        if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
            return

        selectedSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(player.DRAGON_SOUL_INVENTORY, selectedSlotPos)
        if mouseModule.mouseController.isAttached():

            attachedSlotType = mouseModule.mouseController.GetAttachedType()
            attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
            attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()
            attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()

            attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
            if player.SLOT_TYPE_PRIVATE_SHOP == attachedSlotType:
                mouseModule.mouseController.RunCallBack("INVENTORY")

            elif player.SLOT_TYPE_SHOP == attachedSlotType:
                net.SendShopBuyPacket(attachedSlotPos)

            elif player.SLOT_TYPE_SAFEBOX == attachedSlotType:
                if player.ITEM_MONEY == attachedItemIndex:
                    net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())
                    snd.PlaySound("sound/ui/money.wav")

                else:
                    net.SendSafeboxCheckoutPacket(attachedSlotPos, player.DRAGON_SOUL_INVENTORY, selectedSlotPos)

            elif player.SLOT_TYPE_MALL == attachedSlotType:
                net.SendMallCheckoutPacket(attachedSlotPos, player.DRAGON_SOUL_INVENTORY, selectedSlotPos)

            elif player.RESERVED_WINDOW != attachedInvenType:
                if player.IsDSEquipmentSlot(attachedInvenType, attachedSlotPos):
                    srcItemPos = (attachedInvenType, attachedSlotPos)
                    dstItemPos = (player.DRAGON_SOUL_INVENTORY, selectedSlotPos)
                    self.__OpenQuestionDialog(FALSE, srcItemPos, dstItemPos)
                else:
                    itemCount = player.GetItemCount(attachedInvenType, attachedSlotPos)
                    attachedCount = mouseModule.mouseController.GetAttachedItemCount()
 
                    self.__SendMoveItemPacket(attachedInvenType, attachedSlotPos, player.DRAGON_SOUL_INVENTORY, selectedSlotPos, attachedCount)

            mouseModule.mouseController.DeattachObject()

    def UseItemSlot(self, slotIndex):
        if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS():
            return
        slotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(player.DRAGON_SOUL_INVENTORY, slotIndex)
        try:
            # ؟ëب¥¼® °­ب­أ¢ہج ؟­·ءہضہ¸¸é, ¾ئہجإغ ؟ىإ¬¸¯ ½أ ہعµ؟ہ¸·خ °­ب­أ¢ہ¸·خ µé¾î°¨.
            if self.wndDragonSoulRefine.IsShow():
                if uiPrivateShopBuilder.IsBuildingPrivateShop():
                    chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP)
                    return
                self.wndDragonSoulRefine.AutoSetItem((player.DRAGON_SOUL_INVENTORY, slotIndex), 1)
                return
        except:
            pass

        self.__UseItem(slotIndex)
 
        mouseModule.mouseController.DeattachObject()
        self.OverOutItem()
        
    def __SendMoveItemPacket(self, srcSlotWindow, srcSlotPos, dstSlotWindow, dstSlotPos, srcItemCount):
        if uiPrivateShopBuilder.IsBuildingPrivateShop():
            chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP)
            return
        
        net.SendItemMovePacket(srcSlotWindow , srcSlotPos, dstSlotWindow, dstSlotPos, srcItemCount)
    
    # equip ½½·ش °ü·أ اش¼ِµé.
    def OverOutEquipItem(self):
        self.OverOutItem()
            
    def OverInEquipItem(self, overSlotPos):
        overSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(player.INVENTORY, overSlotPos)
        self.wndItem.SetUsableItem(FALSE)
        self.ShowToolTip(player.INVENTORY, overSlotPos)
    
    def UseEquipItemSlot(self, slotIndex):
        if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS():
            return

        slotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(player.INVENTORY, slotIndex)

        self.__UseEquipItem(slotIndex)
        mouseModule.mouseController.DeattachObject()
        self.OverOutEquipItem()
    
    def __UseEquipItem(self, slotIndex):
        if uiPrivateShopBuilder.IsBuildingPrivateShop():
            chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP)
            return

        self.__OpenQuestionDialog(FALSE, (player.INVENTORY, slotIndex), (1, 1))
                    
    
    def SelectEquipItemSlot(self, itemSlotIndex):

        ## ¸¶؟ى½؛ ¹ِئ°ہج sell buy أ¼إ© اط¼­ return
        curCursorNum = app.GetCursor()
        if app.SELL == curCursorNum:
            return
        elif app.BUY == curCursorNum:
            chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_BUY_INFO)
            return

        if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
            return

        itemSlotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(player.INVENTORY, itemSlotIndex)

        if mouseModule.mouseController.isAttached():
            attachedSlotType = mouseModule.mouseController.GetAttachedType()
            attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
            # ہع±â ہع½إہ» ہع±â ہع½إ؟،°ش µه·،±×اد´آ °و؟ى
            if player.SLOT_TYPE_INVENTORY == attachedSlotType and itemSlotIndex == attachedSlotPos:
                return
 
            attachedItemVID = mouseModule.mouseController.GetAttachedItemIndex()
                
            attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
            if player.RESERVED_WINDOW != attachedInvenType:
                net.SendItemUseToItemPacket(attachedInvenType, attachedSlotPos, player.INVENTORY, itemSlotIndex)

            mouseModule.mouseController.DeattachObject()
        else:
            selectedItemVNum = player.GetItemIndex(player.INVENTORY, itemSlotIndex)
            itemCount = player.GetItemCount(player.INVENTORY, itemSlotIndex)
            mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount)
            self.wndItem.SetUseMode(FALSE)
            snd.PlaySound("sound/ui/pick.wav")
            
    def SelectEmptyEquipSlot(self, selectedSlot):
        if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
            return

        selectedSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(player.INVENTORY, selectedSlot)

        if mouseModule.mouseController.isAttached():
            attachedSlotType = mouseModule.mouseController.GetAttachedType()
            attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
            attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()
            attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()

            if player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedSlotType:
                if 0 == player.GetItemMetinSocket(player.DRAGON_SOUL_INVENTORY, attachedSlotPos, 0):
                    self.wndPopupDialog.SetText(localeInfo.DRAGON_SOUL_EXPIRED)
                    self.wndPopupDialog.Open()
                    return
            
                item.SelectItem(attachedItemIndex)
                subType = item.GetItemSubType()
                if subType != (selectedSlot - player.DRAGON_SOUL_EQUIPMENT_SLOT_START):
                    self.wndPopupDialog.SetText(localeInfo.DRAGON_SOUL_UNMATCHED_SLOT)
                    self.wndPopupDialog.Open()
                else:
                    srcItemPos = (player.DRAGON_SOUL_INVENTORY, attachedSlotPos)
                    dstItemPos = (player.INVENTORY, selectedSlotPos)
                    self.__OpenQuestionDialog(TRUE, srcItemPos, dstItemPos)

            mouseModule.mouseController.DeattachObject()
    # equip ½½·ش °ü·أ اش¼ِµé ³،.
    
    # °و°يأ¢ °ü·أ
    def __OpenQuestionDialog(self, Equip, srcItemPos, dstItemPos):
        self.srcItemPos = srcItemPos
        self.dstItemPos = dstItemPos
        
        self.dlgQuestion.SetAcceptEvent(ui.__mem_func__(self.__Accept))
        self.dlgQuestion.SetCancelEvent(ui.__mem_func__(self.__Cancel))

        if Equip:
            self.dlgQuestion.SetText1(localeInfo.DRAGON_SOUL_EQUIP_WARNING1)
            self.dlgQuestion.SetText2(localeInfo.DRAGON_SOUL_EQUIP_WARNING2)
        else:
            self.dlgQuestion.SetText1(localeInfo.DRAGON_SOUL_UNEQUIP_WARNING1)
            self.dlgQuestion.SetText2(localeInfo.DRAGON_SOUL_UNEQUIP_WARNING2)
 
        self.dlgQuestion.Open()
        
    def __Accept(self):
        if (-1, -1) == self.dstItemPos:
            net.SendItemUsePacket(*self.srcItemPos)
        else:
            self.__SendMoveItemPacket(*(self.srcItemPos + self.dstItemPos + (0,)))
        self.dlgQuestion.Close()

    def __Cancel(self):
        self.srcItemPos = (0, 0)
        self.dstItemPos = (0, 0)
        self.dlgQuestion.Close()

    # °و°يأ¢ °ü·أ ³،
    
    def SetDSKindIndex(self, kindIndex):
        if self.DSKindIndex != kindIndex:
            self.__HighlightSlot_ClearCurrentPage()
        
        self.DSKindIndex = kindIndex

        for (tabKey, tabButton) in self.tabButtonDict.items():
            if kindIndex!=tabKey:
                tabButton.SetUp()

        for tabValue in self.tabDict.itervalues():
            tabValue.Hide()

        self.tabDict[kindIndex].Show()
        self.tabText.SetText(DragonSoulWindow.KIND_TAP_TITLES[kindIndex])
        
        self.RefreshBagSlotWindow()
        
    def SetDeckPage(self, page):
        if page == self.deckPageIndex:
            return
    
        if self.isActivated:
            self.DeactivateDragonSoul()
            net.SendChatPacket("/dragon_soul deactivate")
        self.deckPageIndex = page
        self.deckTab
        self.deckTab[(page+1)%2].SetUp()
        
        self.RefreshEquipSlotWindow()
    
    # ؟ëب¥¼® ب°¼؛ب­ °ü·أ
    def ActivateDragonSoulByExtern(self, deck):
        self.isActivated = TRUE
        self.activateButton.Down()
        self.deckPageIndex = deck
        self.deckTab[deck].Down()
        self.deckTab[(deck+1)%2].SetUp()
        self.RefreshEquipSlotWindow()
        
    def DeactivateDragonSoul(self):
        self.isActivated = FALSE
        self.activateButton.SetUp()

    def ActivateButtonClick(self):
        self.isActivated = self.isActivated ^ TRUE
        if self.isActivated:
            if self.__CanActivateDeck():
                net.SendChatPacket("/dragon_soul activate " + str(self.deckPageIndex))
            else:
                self.isActivated = FALSE
                self.activateButton.SetUp()
        else:
            net.SendChatPacket("/dragon_soul deactivate")

    def __CanActivateDeck(self):
        canActiveNum = 0
        for i in xrange(6):
            slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(player.INVENTORY, player.DRAGON_SOUL_EQUIPMENT_SLOT_START + i)
            itemVnum = player.GetItemIndex(slotNumber)
            
            if itemVnum != 0:
                item.SelectItem(itemVnum)
                isNoLimit = TRUE
                for i in xrange(item.LIMIT_MAX_NUM):
                    (limitType, limitValue) = item.GetLimit(i)
                    
                    # LIMIT_TIMER_BASED_ON_WEAR´آ ¼زؤد0؟، ³²ہ؛ ½أ°£ہ» ¹ع´آ´ظ.
                    # LIMIT_REAL_TIMEہ؛ ½أ°£ ´ظ µا¸é ¾ئہجإغہج »ç¶َءِ¹ا·خ از ات؟ن°، ¾ّ´ظ.
                    # LIMIT_REAL_TIME_START_FIRST_USE´آ ¼­¹ِ؟، ء¦´ë·خ ء¤ہاµاءِ ¾ت¾ئ ہد´ـ ³ہµذ´ظ.
                    if item.LIMIT_TIMER_BASED_ON_WEAR == limitType:
                        isNoLimit = FALSE
                        remain_time = player.GetItemMetinSocket(player.INVENTORY, slotNumber, 0)
                        if 0 != remain_time:
                            canActiveNum += 1
                            break
                # إ¸ہج¸س°، ¾ّ´ظ¸é Activateاز ¼ِ ہض´آ ؟ëب¥¼®.
                if isNoLimit:
                    canActiveNum += 1
        
        return canActiveNum > 0
    
    # ب°¼؛ب­ °ü·أ ³،
    
    # ½½·ش highlight °ü·أ
    def __HighlightSlot_ClearCurrentPage(self):
        for i in xrange(self.wndItem.GetSlotCount()):
            slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(player.DRAGON_SOUL_INVENTORY, i)
            if slotNumber in self.listHighlightedSlot:
                self.wndItem.DeactivateSlot(i)
                self.listHighlightedSlot.remove(slotNumber)
    
    def __HighlightSlot_RefreshCurrentPage(self):
        for i in xrange(self.wndItem.GetSlotCount()):
            slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(player.DRAGON_SOUL_INVENTORY, i)
            if slotNumber in self.listHighlightedSlot:
                self.wndItem.ActivateSlot(i)
    
    def HighlightSlot(self, slot):
        if not slot in self.listHighlightedSlot:
            self.listHighlightedSlot.append (slot)
    # ½½·ش highlight °ü·أ ³،
    
    def SetDragonSoulRefineWindow(self, wndDragonSoulRefine):
        if app.ENABLE_DRAGON_SOUL_SYSTEM:
            from _weakref import proxy
            self.wndDragonSoulRefine = proxy(wndDragonSoulRefine)

## °­ب­از ¼ِ ¾ّ´آ °و؟ى ³¯¸®´آ ؟¹؟ـ
#class DragonSoulRefineException(Exception):
    #pass

class DragonSoulRefineWindow(ui.ScriptWindow):
    REFINE_TYPE_GRADE, REFINE_TYPE_STEP, REFINE_TYPE_STRENGTH = xrange(3)
    DS_SUB_HEADER_DIC = {
        REFINE_TYPE_GRADE : player.DS_SUB_HEADER_DO_UPGRADE,
        REFINE_TYPE_STEP : player.DS_SUB_HEADER_DO_IMPROVEMENT,
        REFINE_TYPE_STRENGTH : player.DS_SUB_HEADER_DO_REFINE 
    }
    REFINE_STONE_SLOT, DRAGON_SOUL_SLOT = xrange(2)

    INVALID_DRAGON_SOUL_INFO = -1
    
    def __init__(self):
        ui.ScriptWindow.__init__(self)
        self.tooltipItem = None
        self.sellingSlotNumber = -1
        self.isLoaded = 0
        self.refineChoiceButtonDict = None
        self.doRefineButton = None
        self.wndMoney = None
        self.SetWindowName("DragonSoulRefineWindow")
        self.__LoadWindow()
        
    def __del__(self):
        ui.ScriptWindow.__del__(self)

    def Show(self):
        self.__LoadWindow()
        ui.ScriptWindow.Show(self)

    def __LoadWindow(self):
        if self.isLoaded == 1:
            return
        self.isLoaded = 1
        try:
            pyScrLoader = ui.PythonScriptLoader()            
            pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "dragonsoulrefinewindow.py")

        except:
            import exception
            exception.Abort("dragonsoulrefinewindow.LoadWindow.LoadObject")
        try:
            if localeInfo.IsARABIC():
                self.board = self.GetChild("DragonSoulRefineWindowBaseImage")
                self.board.SetScale(-1.0, 1.0)
                self.board.SetRenderingRect(-1.0, 0.0, 1.0, 0.0)
                
            wndRefineSlot = self.GetChild("RefineSlot")
            wndResultSlot = self.GetChild("ResultSlot")
            self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close))            
            self.refineChoiceButtonDict = {
                self.REFINE_TYPE_GRADE    : self.GetChild("GradeButton"),
                self.REFINE_TYPE_STEP: self.GetChild("StepButton"),
                self.REFINE_TYPE_STRENGTH    : self.GetChild("StrengthButton"),
            }
            self.doRefineButton = self.GetChild("DoRefineButton")
            self.wndMoney = self.GetChild("Money_Slot")
        
        except:
            import exception
            exception.Abort("DragonSoulRefineWindow.LoadWindow.BindObject")
        
    
        ## Item Slots
        wndRefineSlot.SetOverInItemEvent(ui.__mem_func__(self.__OverInRefineItem))
        wndRefineSlot.SetOverOutItemEvent(ui.__mem_func__(self.__OverOutItem))
        wndRefineSlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.__SelectRefineEmptySlot))
        wndRefineSlot.SetSelectItemSlotEvent(ui.__mem_func__(self.__SelectRefineItemSlot))
        wndRefineSlot.SetUseSlotEvent(ui.__mem_func__(self.__SelectRefineItemSlot))
        wndRefineSlot.SetUnselectItemSlotEvent(ui.__mem_func__(self.__SelectRefineItemSlot))
        
        wndResultSlot.SetOverInItemEvent(ui.__mem_func__(self.__OverInResultItem))
        wndResultSlot.SetOverOutItemEvent(ui.__mem_func__(self.__OverOutItem))
        self.wndRefineSlot = wndRefineSlot
        self.wndResultSlot = wndResultSlot
        
        ## Button
        self.refineChoiceButtonDict[self.REFINE_TYPE_GRADE].SetToggleDownEvent(self.__ToggleDownGradeButton)
        self.refineChoiceButtonDict[self.REFINE_TYPE_STEP].SetToggleDownEvent(self.__ToggleDownStepButton)
        self.refineChoiceButtonDict[self.REFINE_TYPE_STRENGTH].SetToggleDownEvent(self.__ToggleDownStrengthButton)
        self.refineChoiceButtonDict[self.REFINE_TYPE_GRADE].SetToggleUpEvent(lambda : self.__ToggleUpButton(self.REFINE_TYPE_GRADE))
        self.refineChoiceButtonDict[self.REFINE_TYPE_STEP].SetToggleUpEvent(lambda : self.__ToggleUpButton(self.REFINE_TYPE_STEP))
        self.refineChoiceButtonDict[self.REFINE_TYPE_STRENGTH].SetToggleUpEvent(lambda : self.__ToggleUpButton(self.REFINE_TYPE_STRENGTH))
        self.doRefineButton.SetEvent(self.__PressDoRefineButton)
        
        ## Dialog
        self.wndPopupDialog = uiCommon.PopupDialog()
        
        self.currentRefineType = self.REFINE_TYPE_GRADE
        self.refineItemInfo = {}
        self.resultItemInfo = {}
        self.currentRecipe = {}
        
        self.wndMoney.SetText(localeInfo.NumberToMoneyString(0))
        self.refineChoiceButtonDict[self.REFINE_TYPE_GRADE].Down()
        
        self.__Initialize()
        
    def Destroy(self):
        self.ClearDictionary()
        self.tooltipItem = None
        self.wndItem = 0
        self.wndEquip = 0
        self.activateButton = 0
        self.questionDialog = None
        self.mallButton = None
        self.inventoryTab = []
        self.deckTab = []
        self.equipmentTab = []
        self.tabDict = None
        self.tabButtonDict = None
        
    def Close(self):
        if None != self.tooltipItem:
            self.tooltipItem.HideToolTip()
        
        self.__FlushRefineItemSlot()
        player.SendDragonSoulRefine(player.DRAGON_SOUL_REFINE_CLOSE)
        self.Hide()

    def Show(self):
        self.currentRefineType = self.REFINE_TYPE_GRADE
        self.wndMoney.SetText(localeInfo.NumberToMoneyString(0))
        self.refineChoiceButtonDict[self.REFINE_TYPE_GRADE].Down()
        self.refineChoiceButtonDict[self.REFINE_TYPE_STEP].SetUp()
        self.refineChoiceButtonDict[self.REFINE_TYPE_STRENGTH].SetUp()
        
        self.Refresh()
        
        ui.ScriptWindow.Show(self)

    def SetItemToolTip(self, tooltipItem):
        self.tooltipItem = tooltipItem
    
    # ¹ِئ° ´­·ء ہض´آ »َإآ¸¦ ء¦؟ـار ¸ًµç °­ب­أ¢ °ü·أ ؛¯¼ِµéہ» أت±âب­.
    def __Initialize(self):
        self.currentRecipe = {}
        self.refineItemInfo = {}
        self.resultItemInfo = {}
        
        if self.REFINE_TYPE_STRENGTH == self.currentRefineType:
            self.refineSlotLockStartIndex = 2
        else:
            self.refineSlotLockStartIndex = 1

        for i in xrange(self.refineSlotLockStartIndex):
            self.wndRefineSlot.HideSlotBaseImage(i)

        self.wndMoney.SetText(localeInfo.NumberToMoneyString(0))

    def __FlushRefineItemSlot(self):
        ## Item slot settings
        # ؟ّ·، ہخ؛¥ہا ¾ئہجإغ ؤ«؟îئ® ب¸؛¹
        for invenType, invenPos, itemCount in self.refineItemInfo.values():
            remainCount = player.GetItemCount(invenType, invenPos)
            player.SetItemCount(invenType, invenPos, remainCount + itemCount)
        self.__Initialize()
    
    def __ToggleUpButton(self, idx):
        #if self.REFINE_TYPE_GRADE == self.currentRefineType:
        self.refineChoiceButtonDict[idx].Down()

    def __ToggleDownGradeButton(self):
        if self.REFINE_TYPE_GRADE == self.currentRefineType:
            return
        self.refineChoiceButtonDict[self.currentRefineType].SetUp()
        self.currentRefineType = self.REFINE_TYPE_GRADE
        self.__FlushRefineItemSlot()
        self.Refresh()
        
    def __ToggleDownStepButton(self):
        if self.REFINE_TYPE_STEP == self.currentRefineType:
            return
        self.refineChoiceButtonDict[self.currentRefineType].SetUp()
        self.currentRefineType = self.REFINE_TYPE_STEP
        self.__FlushRefineItemSlot()
        self.Refresh()

    def __ToggleDownStrengthButton(self):
        if self.REFINE_TYPE_STRENGTH == self.currentRefineType:
            return
        self.refineChoiceButtonDict[self.currentRefineType].SetUp()
        self.currentRefineType = self.REFINE_TYPE_STRENGTH
        self.__FlushRefineItemSlot()
        self.Refresh()

    def __PopUp(self, message):
        self.wndPopupDialog.SetText(message)
        self.wndPopupDialog.Open()
    
    def __SetItem(self, inven, dstSlotIndex, itemCount):
        invenType, invenPos = inven

        if dstSlotIndex >= self.refineSlotLockStartIndex:
            return FALSE
            
        itemVnum = player.GetItemIndex(invenType, invenPos)
        maxCount = player.GetItemCount(invenType, invenPos)
        
        if itemCount > maxCount:
            raise Exception, ("Invalid attachedItemCount(%d). (base pos (%d, %d), base itemCount(%d))" % (itemCount, invenType, invenPos, maxCount))
            #return FALSE
        
        # strength °­ب­ہد °و؟ى, 0¹ّ؟£ °­ب­¼®, 1¹ّ؟£ ؟ëب¥¼®ہ» ³ُµµ·د °­ء¦اش.
        if DragonSoulRefineWindow.REFINE_TYPE_STRENGTH == self.currentRefineType:
            if self.__IsDragonSoul(itemVnum):
                dstSlotIndex = 1
            else:
                dstSlotIndex = 0
        
        # ؛َ ½½·شہج¾î¾كاش.
        if dstSlotIndex in self.refineItemInfo:
            return FALSE
            
        # °­ب­أ¢؟، ؟أ¸± ¼ِ ہض´آ ¾ئہجإغہخءِ °ث»ç.
        if FALSE == self.__CheckCanRefine(itemVnum):
            return FALSE
        
        # ²ّ¾î´ظ ³ُہ؛ ¾ئہجإغ ؤ«؟îئ®¸¸إ­ ؟ّ·، ہع¸®ہا ¾ئہجإغ ؤ«؟îئ® °¨¼ز
        player.SetItemCount(invenType, invenPos, maxCount - itemCount)
        self.refineItemInfo[dstSlotIndex] = (invenType, invenPos, itemCount)
        self.Refresh()

        return TRUE
    
    # °­ب­ °،´ةار ¾ئہجإغہخءِ أ¼إ©
    # ؟ëب¥¼® °­ب­´آ °­ب­ ·¹½أاا¸¦ ء¤اط³ُ°ي ½أہغاد´آ °حہج ¾ئ´د¶َ,
    # أ³ہ½؟، °­ب­أ¢؟، ؟أ¸° ؟ëب¥¼®؟، ہااط °­ب­ ·¹½أاا°، °لء¤µب´ظ.
    # ±×·،¼­ __CanRefineGrade, __CanRefineStep, __CanRefineStrength اش¼ِ؟،¼­
    # °­ب­ ·¹½أاا°، ¾ّ´ظ¸é(أ³ہ½ ؟أ¸®´آ ¾ئہجإغہج¶َ¸é), °­ب­ ·¹½أاا¸¦ ¼³ء¤اطءض´آ ؟ھازµµ ار´ظ.
    def __CheckCanRefine(self, vnum):
        if self.REFINE_TYPE_GRADE == self.currentRefineType:
            return self.__CanRefineGrade(vnum)

        elif self.REFINE_TYPE_STEP == self.currentRefineType:
            return self.__CanRefineStep(vnum)
                
        elif self.REFINE_TYPE_STRENGTH == self.currentRefineType:
            return self.__CanRefineStrength(vnum)
                
        else:
            return FALSE

    def __CanRefineGrade (self, vnum):
        ds_info = self.__GetDragonSoulTypeInfo(vnum)
        
        if DragonSoulRefineWindow.INVALID_DRAGON_SOUL_INFO == ds_info:
            self.__PopUp(localeInfo.DRAGON_SOUL_IS_NOT_DRAGON_SOUL)
            return FALSE
            
        if self.currentRecipe:
            ds_type, grade, step, strength = ds_info
            cur_refine_ds_type, cur_refine_grade, cur_refine_step, cur_refine_strength = self.currentRecipe["ds_info"]
            if not (cur_refine_ds_type == ds_type and cur_refine_grade == grade):
                self.__PopUp(localeInfo.DRAGON_SOUL_INVALID_DRAGON_SOUL)
                return FALSE
        # °­ب­ أ¢؟، أ³ہ½ ¾ئہجإغہ» ؟أ¸®´آ °و؟ى, °­ب­ ہç·ل؟، °üار ء¤؛¸°، ¾ّ´ظ.
        # ؟ëب¥¼® °­ب­°،, ·¹½أاا¸¦ °،ءِ°ي ½أہغاد´آ °حہج ¾ئ´د¶َ, °­ب­أ¢؟، أ³ہ½ ؟أ¸®´آ ¾ئہجإغہج ¹«¾ùہج³ؤ؟، µû¶َ,
        # ¹«¾ùہ» °­ب­اد°ي, ہç·ل°، ¹«¾ùہخءِ(ہجاد ·¹½أاا)°، ء¤اطءّ´ظ.
        # ·¹½أاا°، ¾ّ´ظ¸é, أ³ہ½ ؟أ¸° ¾ئہجإغہج¶َ »‎°¢اد°ي, vnumہ» ¹ظإءہ¸·خ ·¹½أاا¸¦ ¼آئأ.
        else:
            self.currentRecipe = self.__GetRefineGradeRecipe(vnum)

            if self.currentRecipe:
                self.refineSlotLockStartIndex = self.currentRecipe["need_count"]
                self.wndMoney.SetText(localeInfo.NumberToMoneyString(self.currentRecipe["fee"]))                
                return TRUE
            else:
            # °­ب­ ء¤؛¸ ¼آئأ؟، ½ائذاد¸é ؟أ¸± ¼ِ ¾ّ´آ ¾ئہجإغہ¸·خ ئا´ـ.
                self.__PopUp(localeInfo.DRAGON_SOUL_CANNOT_REFINE)
                return FALSE

    def __CanRefineStep (self, vnum):
        ds_info = self.__GetDragonSoulTypeInfo(vnum)
        
        if DragonSoulRefineWindow.INVALID_DRAGON_SOUL_INFO == ds_info:
            self.__PopUp(localeInfo.DRAGON_SOUL_IS_NOT_DRAGON_SOUL)
            return FALSE
        
        if self.currentRecipe:
            ds_type, grade, step, strength = ds_info
            cur_refine_ds_type, cur_refine_grade, cur_refine_step, cur_refine_strength = self.currentRecipe["ds_info"]
            if not (cur_refine_ds_type == ds_type and cur_refine_grade == grade and cur_refine_step == step):
                self.__PopUp(localeInfo.DRAGON_SOUL_INVALID_DRAGON_SOUL)
                return FALSE
        # °­ب­ أ¢؟، أ³ہ½ ¾ئہجإغہ» ؟أ¸®´آ °و؟ى, ہç·ل؟، °üار ء¤؛¸°، ¾ّ´ظ.
        # ؟ëب¥¼® °­ب­°،, ·¹½أاا¸¦ °،ءِ°ي ½أہغاد´آ °حہج ¾ئ´د¶َ, °­ب­أ¢؟، أ³ہ½ ؟أ¸®´آ ¾ئہجإغہج ¹«¾ùہج³ؤ؟، µû¶َ,
        # ¹«¾ùہ» °­ب­اد°ي, ہç·ل°، ¹«¾ùہخءِ(ہجاد ·¹½أاا)°، ء¤اطءّ´ظ.
        # ·¹½أاا°، ¾ّ´ظ¸é, أ³ہ½ ؟أ¸° ¾ئہجإغہج¶َ »‎°¢اد°ي, vnumہ» ¹ظإءہ¸·خ ·¹½أاا¸¦ ¼آئأ.
        else:
            self.currentRecipe = self.__GetRefineStepRecipe(vnum)

            if self.currentRecipe:
                self.refineSlotLockStartIndex = self.currentRecipe["need_count"]
                self.wndMoney.SetText(localeInfo.NumberToMoneyString(self.currentRecipe["fee"]))                
                return TRUE

            else:
            # °­ب­ ء¤؛¸ ¼آئأ؟، ½ائذاد¸é ؟أ¸± ¼ِ ¾ّ´آ ¾ئہجإغہ¸·خ ئا´ـ.
                self.__PopUp(localeInfo.DRAGON_SOUL_CANNOT_REFINE)
                return FALSE

    def __CanRefineStrength (self, vnum):
        # ؟ëب¥¼®ہخ °و؟ى, ´ُ ہج»َ strength °­ب­¸¦ از ¼ِ ¾ّ´آءِ أ¼إ©اط¾كاش.
        if self.__IsDragonSoul(vnum):
            ds_type, grade, step, strength = self.__GetDragonSoulTypeInfo(vnum)
            
            import dragon_soul_refine_settings
            if strength >= dragon_soul_refine_settings.dragon_soul_refine_info[ds_type]["strength_max_table"][grade][step]:
                self.__PopUp(localeInfo.DRAGON_SOUL_CANNOT_REFINE_MORE)
                return FALSE

            else:
                return TRUE
        
        # strength °­ب­ہا °و؟ى, refine_recipe°، ؟ëب¥¼®ہا ء¾·ù°، ¾ئ´ر, °­ب­¼®ہا ء¾·ù؟، µû¶َ ´ق¶َءّ´ظ.
        # µû¶َ¼­ ؟ëب¥¼®ہج ¾ئ´د¶َ¸é, 
        # ہج¹ج ·¹½أاا°، ہض´آ °و؟ى´آ, °­ب­¼®ہج °­ب­أ¢؟، ہض´ظ´آ °حہج¹ا·خ, return FALSE
        # ·¹½أاا°، ¾ّ´آ °و؟ى´آ, °­ب­¼®ہخءِ ب®ہخاد°ي, ·¹½أاا¸¦ ¼آئأار´ظ.
        else:
            if self.currentRecipe:
                self.__PopUp(localeInfo.DRAGON_SOUL_IS_NOT_DRAGON_SOUL)
                return FALSE
            else:
                refineRecipe = self.__GetRefineStrengthInfo(vnum)
                if refineRecipe:
                    self.currentRecipe = refineRecipe
                    self.wndMoney.SetText(localeInfo.NumberToMoneyString(self.currentRecipe["fee"]))
                    return TRUE
                else:
                # ·¹½أاا¸¦ ¼آئأاز ¼ِ ¾ّ´آ °و؟ى
                    self.__PopUp(localeInfo.DRAGON_SOUL_NOT_DRAGON_SOUL_REFINE_STONE)
                    return FALSE

    def __GetRefineGradeRecipe (self, vnum):
        ds_type, grade, step, strength = self.__GetDragonSoulTypeInfo(vnum)
        try:
            import dragon_soul_refine_settings

            return    {
                "ds_info"        : (ds_type, grade, step, strength),
                "need_count"    : dragon_soul_refine_settings.dragon_soul_refine_info[ds_type]["grade_need_count"][grade],
                "fee"            : dragon_soul_refine_settings.dragon_soul_refine_info[ds_type]["grade_fee"][grade]
                    }
        except:
            return None

    def __GetRefineStepRecipe (self, vnum):
        ds_type, grade, step, strength = self.__GetDragonSoulTypeInfo(vnum)
        try:
            import dragon_soul_refine_settings
    
            return    {
                "ds_info"        : (ds_type, grade, step, strength),
                "need_count"    : dragon_soul_refine_settings.dragon_soul_refine_info[ds_type]["step_need_count"][step],
                "fee"            : dragon_soul_refine_settings.dragon_soul_refine_info[ds_type]["step_fee"][step]
                    }
        except:
            return None
        
    # strength °­ب­ہا °و؟ى, refineInfo´آ °­ب­¼®؟، µû¶َ ´ق¶َءّ´ظ.
    def __GetRefineStrengthInfo (self, itemVnum):
        try:
            # ہج³ًہا ہ§ؤ،¸¦ ¾îآîادءِ....
            # °­ب­¼®ہج ¾ئ´د¸é ¾بµت.
            item.SelectItem(itemVnum)
            if not (item.ITEM_TYPE_MATERIAL == item.GetItemType() \
                    and (item.MATERIAL_DS_REFINE_NORMAL <= item.GetItemSubType() and item.GetItemSubType() <= item.MATERIAL_DS_REFINE_HOLLY)):
                return None

            import dragon_soul_refine_settings
            return { "fee" : dragon_soul_refine_settings.strength_fee[item.GetItemSubType()] }
        except:
            return None

    def __IsDragonSoul(self, vnum):
        item.SelectItem(vnum)
        return item.GetItemType() == item.ITEM_TYPE_DS
        
    # ؟ëب¥¼® Vnum؟، ´ëار comment    
    # ITEM VNUMہ» 10¸¸ ہع¸®؛خإح, FEDCBA¶َ°ي ار´ظ¸é
    # FE : ؟ëب¥¼® ء¾·ù.    D : µî±ق
    # C : ´ـ°è            B : °­ب­        
    # A : ؟©¹ْہا ¹ّب£µé...    
    def __GetDragonSoulTypeInfo(self, vnum):
        if not self.__IsDragonSoul(vnum):
            return DragonSoulRefineWindow.INVALID_DRAGON_SOUL_INFO 
        ds_type = vnum / 10000
        grade = vnum % 10000 /1000
        step = vnum % 1000 / 100
        strength = vnum % 100 / 10
        
        return (ds_type, grade, step, strength)
    
    def __MakeDragonSoulVnum(self, ds_type, grade, step, strength):
        return ds_type * 10000 + grade * 1000 + step * 100 + strength * 10

    ## ؛َ ½½·ش ¼±إأ Event
    def __SelectRefineEmptySlot(self, selectedSlotPos):
        try:
            if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
                return
            
            if selectedSlotPos >= self.refineSlotLockStartIndex:
                return
     
            if mouseModule.mouseController.isAttached():
                attachedSlotType = mouseModule.mouseController.GetAttachedType()
                attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
                attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()
                attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()
                mouseModule.mouseController.DeattachObject()

                if uiPrivateShopBuilder.IsBuildingPrivateShop():
                    chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP)
                    return

                attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)

                if player.INVENTORY == attachedInvenType and player.IsEquipmentSlot(attachedSlotPos):
                    return

                if player.INVENTORY != attachedInvenType and player.DRAGON_SOUL_INVENTORY != attachedInvenType:
                    return

                if TRUE == self.__SetItem((attachedInvenType, attachedSlotPos), selectedSlotPos, attachedItemCount):
                    self.Refresh()

        except Exception, e:
            import dbg
            dbg.TraceError("Exception : __SelectRefineEmptySlot, %s" % e)

    # إ¬¸¯ہ¸·خ ½½·ش؟،¼­ »èء¦.
    def __SelectRefineItemSlot(self, selectedSlotPos):
        if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
            return

        try:
            if not selectedSlotPos in self.refineItemInfo:
                # »ُ·خ؟î ¾ئہجإغہ» °­ب­أ¢؟، ؟أ¸®´آ ہغ¾÷.
                if mouseModule.mouseController.isAttached():
                    attachedSlotType = mouseModule.mouseController.GetAttachedType()
                    attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
                    attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()
                    attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()
                    mouseModule.mouseController.DeattachObject()

                    if uiPrivateShopBuilder.IsBuildingPrivateShop():
                        chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP)
                        return

                    attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)

                    if player.INVENTORY == attachedInvenType and player.IsEquipmentSlot(attachedSlotPos):
                        return

                    if player.INVENTORY != attachedInvenType and player.DRAGON_SOUL_INVENTORY != attachedInvenType:
                        return

                    self.AutoSetItem((attachedInvenType, attachedSlotPos), 1)
                return
            elif mouseModule.mouseController.isAttached():
                return
 
            attachedInvenType, attachedSlotPos, attachedItemCount = self.refineItemInfo[selectedSlotPos]
            selectedItemVnum = player.GetItemIndex(attachedInvenType, attachedSlotPos)
                
            # °­ب­أ¢؟،¼­ »èء¦ ¹× ؟ّ·، ہخ؛¥ہا ¾ئہجإغ ؤ«؟îئ® ب¸؛¹
            invenType, invenPos, itemCount = self.refineItemInfo[selectedSlotPos]
            remainCount = player.GetItemCount(invenType, invenPos)
            player.SetItemCount(invenType, invenPos, remainCount + itemCount)
            del self.refineItemInfo[selectedSlotPos]
                
            # °­ب­أ¢ہج ؛ٌ¾ْ´ظ¸é, أت±âب­
            if not self.refineItemInfo:
                self.__Initialize()
            else:
                item.SelectItem(selectedItemVnum)
                # ¾ّ¾ط ¾ئہجإغہج °­ب­¼®ہج¾ْ´ظ¸é °­ب­ ·¹اا½أ أت±âب­
                if (item.ITEM_TYPE_MATERIAL == item.GetItemType() \
                    and (item.MATERIAL_DS_REFINE_NORMAL <= item.GetItemSubType() and item.GetItemSubType() <= item.MATERIAL_DS_REFINE_HOLLY)):
                    self.currentRecipe = {}
                    self.wndMoney.SetText(localeInfo.NumberToMoneyString(0))
                # ؟ëب¥¼®ہج¾ْ´ظ¸é, 
                # strength°­ب­°، ¾ئ´ر °و؟ى, °­ب­أ¢؟، ´ظ¸¥ ؟ëب¥¼®ہج ³²¾ئہضہ¸¹ا·خ, ·¹½أاا¸¦ أت±âب­اد¸é ¾بµت.
                # strength°­ب­ہا °و؟ى, °­ب­ ·¹½أاا´آ °­ب­¼®؟، ء¾¼سµب °حہج¹ا·خ ´ظ¸¥ أ³¸®از ات؟ن°، ¾ّہ½.
                else:
                    pass
                    
        except Exception, e:
            import dbg
            dbg.TraceError("Exception : __SelectRefineItemSlot, %s" % e)
        
        self.Refresh()
    
    def __OverInRefineItem(self, slotIndex):
        if self.refineItemInfo.has_key(slotIndex):
            inven_type, inven_pos, item_count = self.refineItemInfo[slotIndex]
            self.tooltipItem.SetInventoryItem(inven_pos, inven_type)

    def __OverInResultItem(self, slotIndex):
        if self.resultItemInfo.has_key(slotIndex):
            inven_type, inven_pos, item_count = self.resultItemInfo[slotIndex]
            self.tooltipItem.SetInventoryItem(inven_pos, inven_type)
        
    def __OverOutItem(self):
        if self.tooltipItem:
            self.tooltipItem.HideToolTip()

    def __PressDoRefineButton(self):
        for i in xrange(self.refineSlotLockStartIndex):
            if not i in self.refineItemInfo:
                self.wndPopupDialog.SetText(localeInfo.DRAGON_SOUL_NOT_ENOUGH_MATERIAL)
                self.wndPopupDialog.Open()
                
                return
 
        player.SendDragonSoulRefine(DragonSoulRefineWindow.DS_SUB_HEADER_DIC[self.currentRefineType], self.refineItemInfo)
            
    def OnPressEscapeKey(self):
        self.Close()
        return TRUE
    
    def Refresh(self):
        self.__RefreshRefineItemSlot()
        self.__ClearResultItemSlot()
            
    def __RefreshRefineItemSlot(self):
        try:
            for slotPos in xrange(self.wndRefineSlot.GetSlotCount()):
                self.wndRefineSlot.ClearSlot(slotPos)
                if slotPos < self.refineSlotLockStartIndex:
                    # self.refineItemInfo[slotPos]ہا ء¤؛¸ب®ہخ
                    # (½اء¦·خ ¾ئہجإغہج ء¸ہçاد´آءِ ب®ہخ)
                    # ء¸ہç -> ¾ئہجإغ ¾ئہجؤـہ» ½½·ش؟، ¼آئأ.
                    # ؛ٌء¸ہç -> ¾ئہجإغہج ¾ّہ¸¹ا·خ °­ب­أ¢؟،¼­ »èء¦.
                    if slotPos in self.refineItemInfo:
                        invenType, invenPos, itemCount = self.refineItemInfo[slotPos]
                        itemVnum = player.GetItemIndex(invenType, invenPos)

                        # if itemVnum:
                        if itemVnum:
                            self.wndRefineSlot.SetItemSlot(slotPos, player.GetItemIndex(invenType, invenPos), itemCount)
                        else:
                            del self.refineItemInfo[slotPos]

                    # ؛َ ½½·ش؟، reference ¾ئہجؤـہ» alpha 0.5·خ ¼آئأ.
                    if not slotPos in self.refineItemInfo:
                        try:
                            reference_vnum = 0
                            # strength °­ب­ہد ¶§´آ,
                            # 0¹ّ ½½·ش؟، °­ب­¼®ہ», 1¹ّ ½½·ش؟، ؟ëب¥¼®ہ» ³ُ´آ´ظ.
                            if DragonSoulRefineWindow.REFINE_TYPE_STRENGTH == self.currentRefineType:
                                if DragonSoulRefineWindow.REFINE_STONE_SLOT == slotPos:
                                    reference_vnum = 100300
                            else:
                                reference_vnum = self.__MakeDragonSoulVnum(*self.currentRecipe["ds_info"])
                            if 0 != reference_vnum:
                                item.SelectItem(reference_vnum)
                                itemIcon = item.GetIconImage()
                                (width, height) = item.GetItemSize()
                                self.wndRefineSlot.SetSlot(slotPos, 0, width, height, itemIcon, (1.0, 1.0, 1.0, 0.5))
                                # slot ؟ىأّ اد´ـ؟، ¼‎ہع ¶ك¸é ¾ب ؟¹»ف...
                                self.wndRefineSlot.SetSlotCount(slotPos, 0)
                        except:
                            pass
                    # refineSlotLockStartIndex ؛¸´ظ ہغہ؛ ½½·شہ؛ ´فبù ہج¹جءِ¸¦ ؛¸؟©ءض¸é ¾بµت.
                    self.wndRefineSlot.HideSlotBaseImage(slotPos)
                # slotPos >= self.refineSlotLockStartIndex:
                else:
                    # ء¤»َہûہخ °و؟ى¶َ¸é ہج if¹®؟، µé¾î°¥ ہدہ؛ ¾ّ°عءِ¸¸,
                    # (¾ضأت؟، ہخµ¦½؛°، refineSlotLockStartIndex ہج»َہخ ½½·ش؟،´آ ¾ئہجإغہ» ³ضءِ ¸ّاد°ش اك±â ¶§¹®)
                    # ب¤½أ ¸ً¸¦ ؟،·¯؟، ´ë؛ٌاش.
                    if slotPos in self.refineItemInfo:
                        invenType, invenPos, itemCount = self.refineItemInfo[slotPos]
                        remainCount = player.GetItemCount(invenType, invenPos)
                        player.SetItemCount(invenType, invenPos, remainCount + itemCount)
                        del self.refineItemInfo[slotPos]
                    # refineSlotLockStartIndex ہج»َہخ ½½·شہ؛ ´فبù ہج¹جءِ¸¦ ؛¸؟©ءà¾كاش.
                    self.wndRefineSlot.ShowSlotBaseImage(slotPos)
            
            # °­ب­أ¢؟، ¾ئ¹«·± ¾ئہجإغہج ¾ّ´ظ¸é, أت±âب­اطءـ.
            # ہ§؟،¼­ ءك°£ ءك°£؟، "del self.refineItemInfo[slotPos]"¸¦ اك±â ¶§¹®؟،,
            # ؟©±â¼­ ار¹ّ أ¼إ©اطءà¾كاش.
            if not self.refineItemInfo:
                self.__Initialize()
 
            self.wndRefineSlot.RefreshSlot()
        except Exception, e:
            import dbg
            dbg.TraceError("Exception : __RefreshRefineItemSlot, %s" % e)
    
    def __GetEmptySlot(self, itemVnum = 0):
        # STRENGTH °­ب­ہا °و؟ى, ؟ëب¥¼® ½½·ش°ْ °­ب­¼® ½½·شہج ±¸؛ذµا¾îہض±â ‹ڑ¹®؟،
        # vnumہ» ¾ث¾ئ¾ك ار´ظ.
        if DragonSoulRefineWindow.REFINE_TYPE_STRENGTH == self.currentRefineType:
            if 0 == itemVnum:
                return -1
            
            if self.__IsDragonSoul(itemVnum):
                if not DragonSoulRefineWindow.DRAGON_SOUL_SLOT in self.refineItemInfo:
                    return DragonSoulRefineWindow.DRAGON_SOUL_SLOT
            else:
                if not DragonSoulRefineWindow.REFINE_STONE_SLOT in self.refineItemInfo:
                    return DragonSoulRefineWindow.REFINE_STONE_SLOT
        else:
            for slotPos in xrange(self.wndRefineSlot.GetSlotCount()):
                if not slotPos in self.refineItemInfo:
                    return slotPos
        
        return -1

    def AutoSetItem(self, inven, itemCount):
        invenType, invenPos = inven
        itemVnum = player.GetItemIndex(invenType, invenPos)
        emptySlot = self.__GetEmptySlot(itemVnum)
        if -1 == emptySlot:
            return
        
        self.__SetItem((invenType, invenPos), emptySlot, itemCount)

    def __ClearResultItemSlot(self):
        self.wndResultSlot.ClearSlot(0)
        self.resultItemInfo = {}
    
    def RefineSucceed(self, inven_type, inven_pos):
        self.__Initialize()
        self.Refresh()
        
        itemCount = player.GetItemCount(inven_type, inven_pos)
        if itemCount > 0:
            self.resultItemInfo[0] = (inven_type, inven_pos, itemCount)
            self.wndResultSlot.SetItemSlot(0, player.GetItemIndex(inven_type, inven_pos), itemCount)
    
    def    RefineFail(self, reason, inven_type, inven_pos):
        if net.DS_SUB_HEADER_REFINE_FAIL == reason:
            self.__Initialize()
            self.Refresh()
            itemCount = player.GetItemCount(inven_type, inven_pos)
            if itemCount > 0:
                self.resultItemInfo[0] = (inven_type, inven_pos, itemCount)
                self.wndResultSlot.SetItemSlot(0, player.GetItemIndex(inven_type, inven_pos), itemCount)
        else:
            self.Refresh()

    def SetInventoryWindows(self, wndInventory, wndDragonSoul):
        self.wndInventory = wndInventory
        self.wndDragonSoul = wndDragonSoul
 

 

dragon_soul_table.txt:

Spoiler

dragon_soul_table.txt

# ؟ëب¥¼® إ×ہج؛يµé...                                        
# TAB ہ¸·خ ±¸؛ذµا´د ؟¢¼؟·خ ؛¼ °ح.                                        
# vimہ¸·خ ؛»´ظ¸é إا°£ °£°فہ» ء¶ء¤اد°ي ؛¼ °ح. (set ts=16 أكأµ)                                        
# إ« µû؟با¥·خ ¹­ہخ ؛خ؛ذہ؛ ¾ب ±¸؛ذ.                                         
# \" ہجµ‎°إ ءِ؟ّ ¾باش.                                        
                                        
# ؟ëب¥¼® Vnum؟، ´ëار comment                                        
# ITEM VNUMہ» 10¸¸ ہع¸®؛خإح, FEDCBA¶َ°ي ار´ظ¸é                                        
# FE : ؟ëب¥¼® ء¾·ù.    D : µî±ق                                    
# C : ´ـ°è            B : °­ب­                            
# A : ؟©¹ْہا ¹ّب£µé...                                         
# ہج أ¼°è؟،¼­ ¹‏¾î³ھ´آ ؟ëب¥¼®ہ؛ ؟ë¼­ادءِ ¾تہ» °حہج´ظ.                                        
# ok?                                        
# ؟ëب¥¼®ہج ³ت¹«³ھµµ ¸¹±â ¶§¹®؟، Vnumہج ءك±¸³­¹وہج¸é,                                        
#    Special item group؟،¼­ groupہ¸·خ ¹­¾î¼­ أ³¸®اد±âµµ بûµé°ي-_-,                                    
#    VnumHelper.h؟،¼­ أ³¸®اد´آ °حµµ بûµé´ظ. -_-                                  
#     Group ہâ´آµ¥¸¸ ¼ِأµءظہ» ½ل¾كاز ءِµµ...                                    
# Vnum؟، أ¼°è¸¦ ہâ¾ئ¼­ ہع¸´¼ِ ±â¹فہ¸·خ اط¾ك¸¸ ار´ظ.                                        
                                        
# Tableہ؛ "Group"°ْ "ہج¸§"ہ¸·خ ½أہغار´ظ.                                        
# Table ³»؛خ؟، ¶ا Tableہج ہضہ» ¼ِ ہض´ظ.                                        
# ±×·¸´ظ°ي ¾û¶×ار إ×ہج؛يہ» ½ل³ُ´آ´ظ°ي ¼­¹ِ°، ہخ½ؤاد´آ °حہ؛ ¾ئ´د´ظ.                                        
# ات؟نار إ×ہج؛يہ؛ ´ظہ½°ْ °°´ظ.                                        
# BaseVnums, BaseAttrs, AddtionalAttrs, AttrSettings, UpgradeTable, ImproveTable,                                        
# RefineTable, UpgradeMoneys, ImproveTable, RefineMoneys, WeightTable, DurationTable,                                        
# DragonHeartExtTable, DragonSoulExtTable                                        
                                        
# ب®·ü إ×ہج؛يہا °ھہ؛ ±â؛»ہûہ¸·خ floatہج´ظ.                                        
                                        
# ءك؟ن !!!!!                                        
# إ×ہج؛يہ» ؛¸´ظ ؛¸¸é #--#ہج¶َ ¾²؟©ءّ ؛خ؛ذہج ہض´آµ¥ ہ‎´ë·خ ءِ؟ىءِ ¸»°ح.                                        
#                                         
                                        
# ہج°ا vnum to ہج¸§ mapping.                                        
# ہج°ة·خ ئ¯ء¤ vnumہا ؟ëب¥¼®ہج ¾î¶² ء¾·ùہا ؟ëب¥¼®ہخءِ(ہج¸§ہج ¹؛ءِ) ¾ث¾ئ³½ بؤ,                                        
# ±× ؟ëب¥¼®؟، اط´çاد´آ ¼س¼؛ہ» أ£´آ´ظ.                                        
# ¶اار ؟©±â؟، ہûاôہضءِ ¾تہ؛ ؟ëب¥¼®ہج ¹ط؟، Group ء¤ہااد´آ ؛خ؛ذ؟، ہض´ظ¸é                                        
# ؟،·¯.                                        
Group VnumMapper                                        
{                                        
    # ½أہغ vnum.                                    
    # ؟©±â¼­ ½ل¾كاز ؛خ؛ذہ؛ ہ§؟، ¼³¸يار FE؟، اط´çاد´آ ؛خ؛ذ.                                     
    # FE¸¦ ½لءظ °ح                                    
    #--#    DragonSoulName    Type                            
    1    ¹é·و¼®    11                            
    2    ب­·و¼®    12                            
    3    ا³·و¼®    13                            
    4    أ¶·و¼®    14                            
    5    ³ْ·و¼®    15                            
    6    بو·و¼®    16                            
}                                        
                                        
Group BasicApplys                                        
{                                        
    Group ¹é·و¼®                                    
    {                                    
    # 1؛خإح ¼ّ¼­´ë·خ ؛خ؟©µب´ظ.                                    
        #--#    Apply_Type    Apply_value                        
        1    INT    10                        
        2    RESIST_ICE    10                        
    }                                    
                                        
    Group ب­·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value                        
        1    STR    10                        
        2    RESIST_FIRE    10
    }                                    
    Group ا³·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value                        
        1    MAX_SP    500                        
        2    RESIST_WIND    10                        
    }                                    
    Group أ¶·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value                        
        1    DEX    10                        
        2    RESIST_EARTH    10                        
    }                                    
    Group ³ْ·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value                        
        1    MAX_HP    1500                        
        2    RESIST_ELEC    10                        
    }                                    
    Group بو·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value                        
        1    CON    10                        
        2    RESIST_DARK    10                        
    }                                    
}                                        
                                        
Group AdditionalApplys                                        
{                                        
    Group ¹é·و¼®                                    
    {                                    
    # ¾صہا أ¹ ؤأ·³ہ؛ ¼ّ¼­؟ح °ü°è ¾ّ´ظ. أ¶ہْب÷ ب®·ü؟، µû¶َ ¼س¼؛ہج ؛خ؟©µة »سہج´ظ.                                    
        #--#    Apply_Type    Apply_value    Prob                    
        1    MAGIC_ATT_GRADE    15    10                    
        2    MAGIC_DEF_GRADE    15    10                    
        3    SKILL_DAMAGE_BONUS    15    10                    
        4    SKILL_DEFEND_BONUS    15    10                    
    }                                    
    Group ب­·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value    Prob                    
        1    ATT_BONUS    300    10                    
        2    DEF_BONUS    200    10                    
        3    NORMAL_HIT_DAMAGE_BONUS    15    10                    
        4    NORMAL_HIT_DEFEND_BONUS    15    10                    
    }                                    
    Group ا³·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value    Prob                    
        1    MAX_HP    3000    10                    
        2    HP_REGEN    10    10                    
        3    STEAL_HP    10    10                    
        4    KILL_HP_RECOVER    5    10                    
        5    MAX_HP_PCT    20    10                    
    }                                    
    Group أ¶·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value    Prob                    
        1    ATT_BONUS_TO_WARRIOR    15    10                    
        2    ATT_BONUS_TO_ASSASSIN    15    10                    
        3    ATT_BONUS_TO_SURA    15    10                    
        4    ATT_BONUS_TO_SHAMAN    15    10                    
        5    RESIST_WARRIOR    15    10                    
        6    RESIST_ASSASSIN    15    10                    
        7    RESIST_SURA    15    10                    
        8    RESIST_SHAMAN    15    10                    
    }                                    
    Group ³ْ·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value    Prob                    
        1    MAX_SP    1500    10                    
        2    SP_REGEN    10    10                    
        3    STEAL_SP    10    10                    
        4    KILL_SP_RECOVER    5    10                    
        5    MAX_SP_PCT    20    10                    
    }                                    
    Group بو·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value    Prob                    
        1    BLOCK    10    10                    
        2    DODGE    10    10                    
        3    REFLECT_MELEE    10    10                    
        4    RESIST_CRITICAL    10    10                    
        5    RESIST_PENETRATE    10    10                    
    }                                    
}                                        
                                        
# ؟©±â؛خإح Default¸¦ µذ´ظ.                                        
# Default °ھہ» ¸ًµç ؟ëب¥¼®ہج µû¸£°ي,                                         
# ئ¯ء¤ °ھہج ہض´آ ؟ëب¥¼®ہ؛ Default¸¦ ¹ظإءہ¸·خ ±× °ھہ» µ¤¾î¾´´ظ.                                        
# µî±ق؟، µû¸¥ ¼س¼؛¼ِ                                        
# ´ـ, basis, add_max´آ 3؛¸´ظ إ©¸é ¾بµب´ظ.                                        
Group ApplyNumSettings                                        
{                                        
    Group Default                                    
    {                                    
        #--#    GRADE_NORMAL    GRADE_BRILLIANT    GRADE_RARE    GRADE_ANCIENT    GRADE_LEGENDARY            
        basis    1    1    1    2    2            
        add_min    0    0    0    0    0            
        add_max    0    1    2    2    3            
    }                                    
#    Group ¹é·و¼®                                    
#    {                                    
#        #--#    GRADE_NORMAL    GRADE_BRILLIANT    GRADE_RARE    GRADE_ANCIENT    GRADE_LEGENDARY            
#        basis    1    1    1    2    2            
#    }                                    
}                                        
                                        
# ؟ëب¥¼® °،ءكؤ، إ×ہج؛ي.                                        
# ہج إ×ہج؛ي؟،¼­ °ھہج 0ہج¶َ¸é ±× ہج»َہا °­ب­´آ ؛ز°،´ةاد´ظ°ي ئا´ـار´ظ.                                        
Group WeightTables                                        
{                                        
    Group Default                                    
    {                                    
        Group GRADE_NORMAL                                
        {                                
    #        ´ـ°è    °­ب­                        
            #--#    0    1    2    3    4    5    6
            STEP_LOWEST    1    2    3    0    0    0    0
            STEP_LOW    2    3    4    0    0    0    0
            STEP_MID    3    4    5    6    0    0    0
            STEP_HIGH    4    5    6    7    0    0    0
            STEP_HIGHEST    5    6    7    8    10    0    0
        }                                
        Group GRADE_BRILLIANT                                
        {                                
            STEP_LOWEST    3    4    5    6    0    0    0
            STEP_LOW    4    5    6    8    0    0    0
            STEP_MID    5    6    8    10    0    0    0
            STEP_HIGH    6    8    10    12    15    0    0
            STEP_HIGHEST    8    10    12    15    20    0    0
        }                                
        Group GRADE_RARE                                
        {                                
            #--#    0    1    2    3    4    5    6
            STEP_LOWEST    6    7    9    11    15    0    0
            STEP_LOW    7    9    11    15    20    0    0
            STEP_MID    9    11    15    20    25    0    0
            STEP_HIGH    11    15    20    25    30    0    0
            STEP_HIGHEST    15    20    25    30    40    0    0
        }                                
        Group GRADE_ANCIENT                                
        {                                
            #--#    0    1    2    3    4    5    6
            STEP_LOWEST    10    12    15    18    20    0    0
            STEP_LOW    12    15    18    20    25    0    0
            STEP_MID    15    18    20    25    35    0    0
            STEP_HIGH    18    20    25    35    40    0    0
            STEP_HIGHEST    20    25    35    40    60    80    0
        }                                
        Group GRADE_LEGENDARY                                
        {                                
            #--#    0    1    2    3    4    5    6
            STEP_LOWEST    30    35    40    45    50    0    0
            STEP_LOW    35    40    45    50    55    0    0
            STEP_MID    40    45    50    55    65    0    0
            STEP_HIGH    45    50    55    65    75    90    0
            STEP_HIGHEST    50    55    65    75    90    105    120
        }                                
    }                                    
#    Group ¹é·و¼®                                    
#    {                                    
#        Group GRADE_NORMAL                                
#        {                                
#            #--#    0    1    2    3    4    5    6
#            STEP_LOWEST    10    20    53    0    0    0    0
#            STEP_HIGHEST    50    60    37    18    10    0    0
#        }                                
#    }                                    
}
                                        
# °³·® table                                    
Group RefineGradeTables                                    
{                                    
    Group Default                                
    {                                
        #--#    NEED_COUNT    FEE    GRADE_NORMAL    GRADE_BRILLIANT    GRADE_RARE    GRADE_ANCIENT    GRADE_LEGENDARY
        GRADE_NORMAL    3    30000    70    25    5    0    0
        GRADE_BRILLIANT    3    50000    25    70    5    0    0
        GRADE_RARE    3    70000    8    15    75    2    0
        GRADE_ANCIENT    3    100000    2    3    8    85    2
    }                                
}                                    
                                    
Group RefineStepTables                                    
{                                    
    Group Default                                
    {                                
        #--#    NEED_COUNT    FEE    STEP_LOWEST    STEP_LOW    STEP_MID    STEP_HIGH    STEP_HIGHEST
        STEP_LOWEST    4    20000    70    25    5    0    0
        STEP_LOW    3    30000    25    70    5    0    0
        STEP_MID    2    40000    10    20    80    1    0
        STEP_HIGH    1    50000    2    3    5    89    1
    }                                
}                                    
                                    
Group RefineStrengthTables                                    
{                                    
    Group Default                                
    {                                
        # MATERIAL_DS_REFINE_NORMAL : GRADE_NORMAL °­ب­¼®                            
        # MATERIAL_DS_REFINE_BLESSED : أà؛¹ہا °­ب­¼®                            
        # MATERIAL_DS_REFINE_HOLLY : ؟ë½إہا °­ب­¼®                            
        #--#    FEE    0    1    2    3    4    5
        MATERIAL_DS_REFINE_NORMAL    10000    100    80    70    50    30    20
        MATERIAL_DS_REFINE_BLESSED    20000    100    88    77    55    33    22
        MATERIAL_DS_REFINE_HOLLY    30000    100    90    80    60    40    30
    }                                
}                                    

# ؟ë½ةہ؛ 100000(ہس½أ vnum)ہج°ي, أوہü·®ہ؛ socket (0)؟، ¹ع¾ئ³ض´آ´ظ.                                        
# ´ـ, special item group؟، vnum 10053ہ¸·خ ء¤ہاµا¾îہض´آ ´ظ¸¥ ؟ë½ةµéہ؛ Value(0)؟، ہض´آ °ھہج أوہü·®.                                        
# ؟ë½ة أكأâ ب®·ü إ×ہج؛ي                                        
# أوہü·®ہج 0ہج¶َ´آ °حہ؛ أكأâ ½ائذ¶َ´آ °إ.                                        
Group DragonHeartExtTables                                        
{                                        
    Group Default                                    
    {                                    
        #--#    1    2    3    4    5            
    # ؟ë½ة أوہü·®(%)                                    
        CHARGING    0    5    15    30    50            
    #    µî±ق°ْ أوہü·®؟، µû¸¥ ب®·ü إ×ہج؛ي                                
    #    µî±ق     ب®·ü                            
        GRADE_NORMAL    50    35    12    2    1            
        GRADE_BRILLIANT    35    40    20    4    1            
        GRADE_RARE    20    35    30    12    3            
        GRADE_ANCIENT    15    30    35    15    5            
        GRADE_LEGENDARY    10    20    40    20    10            
    }                                    
}                                        
                                        
# ؟ëب¥¼® أكأâ ب®·ü إ×ہج؛ي.                                        
# ہج°حµµ 1, 2¾بہج ہض¾î إëاصاز ¼ِ ہض´آ ¹و¾بہ¸·خ °¨.                                        
# أكأâ ب®·üہ» ء¤از ¼ِ ہض°ي, ½ائذ ؛خ»ê¹°µµ ء¤از ¼ِ ہضہ½.(0ہج¸é ¾بءـ)                                        
Group DragonSoulExtTables                                        
{                                        
    Group Default                                    
    {                                    
                #½ائذ ؛خ»ê¹°                        
        #--#    Prob    ByProduct                        
        GRADE_NORMAL    50    30270                        
        GRADE_BRILLIANT    40    30270                        
        GRADE_RARE    30    30270                        
        GRADE_ANCIENT    30    30270                        
        GRADE_LEGENDARY    20    30270                        
    }                                    
}                                        
 

some one help me for fix this bug

thx for all

Link to comment
Share on other sites

  • Replies 2
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

1 hour ago, arves100 said:

syserrs? have you also checked if the dragon_soul_table.txt exists in locale folder?

 

dragon_soul_table.txt

Spoiler
Spoiler

dragon_soul_table.txt

# ؟ëب¥¼® إ×ہج؛يµé...                                        
# TAB ہ¸·خ ±¸؛ذµا´د ؟¢¼؟·خ ؛¼ °ح.                                        
# vimہ¸·خ ؛»´ظ¸é إا°£ °£°فہ» ء¶ء¤اد°ي ؛¼ °ح. (set ts=16 أكأµ)                                        
# إ« µû؟با¥·خ ¹­ہخ ؛خ؛ذہ؛ ¾ب ±¸؛ذ.                                         
# \" ہجµ‎°إ ءِ؟ّ ¾باش.                                        
                                        
# ؟ëب¥¼® Vnum؟، ´ëار comment                                        
# ITEM VNUMہ» 10¸¸ ہع¸®؛خإح, FEDCBA¶َ°ي ار´ظ¸é                                        
# FE : ؟ëب¥¼® ء¾·ù.    D : µî±ق                                    
# C : ´ـ°è            B : °­ب­                            
# A : ؟©¹ْہا ¹ّب£µé...                                         
# ہج أ¼°è؟،¼­ ¹‏¾î³ھ´آ ؟ëب¥¼®ہ؛ ؟ë¼­ادءِ ¾تہ» °حہج´ظ.                                        
# ok?                                        
# ؟ëب¥¼®ہج ³ت¹«³ھµµ ¸¹±â ¶§¹®؟، Vnumہج ءك±¸³­¹وہج¸é,                                        
#    Special item group؟،¼­ groupہ¸·خ ¹­¾î¼­ أ³¸®اد±âµµ بûµé°ي-_-,                                    
#    VnumHelper.h؟،¼­ أ³¸®اد´آ °حµµ بûµé´ظ. -_-                                  
#     Group ہâ´آµ¥¸¸ ¼ِأµءظہ» ½ل¾كاز ءِµµ...                                    
# Vnum؟، أ¼°è¸¦ ہâ¾ئ¼­ ہع¸´¼ِ ±â¹فہ¸·خ اط¾ك¸¸ ار´ظ.                                        
                                        
# Tableہ؛ "Group"°ْ "ہج¸§"ہ¸·خ ½أہغار´ظ.                                        
# Table ³»؛خ؟، ¶ا Tableہج ہضہ» ¼ِ ہض´ظ.                                        
# ±×·¸´ظ°ي ¾û¶×ار إ×ہج؛يہ» ½ل³ُ´آ´ظ°ي ¼­¹ِ°، ہخ½ؤاد´آ °حہ؛ ¾ئ´د´ظ.                                        
# ات؟نار إ×ہج؛يہ؛ ´ظہ½°ْ °°´ظ.                                        
# BaseVnums, BaseAttrs, AddtionalAttrs, AttrSettings, UpgradeTable, ImproveTable,                                        
# RefineTable, UpgradeMoneys, ImproveTable, RefineMoneys, WeightTable, DurationTable,                                        
# DragonHeartExtTable, DragonSoulExtTable                                        
                                        
# ب®·ü إ×ہج؛يہا °ھہ؛ ±â؛»ہûہ¸·خ floatہج´ظ.                                        
                                        
# ءك؟ن !!!!!                                        
# إ×ہج؛يہ» ؛¸´ظ ؛¸¸é #--#ہج¶َ ¾²؟©ءّ ؛خ؛ذہج ہض´آµ¥ ہ‎´ë·خ ءِ؟ىءِ ¸»°ح.                                        
#                                         
                                        
# ہج°ا vnum to ہج¸§ mapping.                                        
# ہج°ة·خ ئ¯ء¤ vnumہا ؟ëب¥¼®ہج ¾î¶² ء¾·ùہا ؟ëب¥¼®ہخءِ(ہج¸§ہج ¹؛ءِ) ¾ث¾ئ³½ بؤ,                                        
# ±× ؟ëب¥¼®؟، اط´çاد´آ ¼س¼؛ہ» أ£´آ´ظ.                                        
# ¶اار ؟©±â؟، ہûاôہضءِ ¾تہ؛ ؟ëب¥¼®ہج ¹ط؟، Group ء¤ہااد´آ ؛خ؛ذ؟، ہض´ظ¸é                                        
# ؟،·¯.                                        
Group VnumMapper                                        
{                                        
    # ½أہغ vnum.                                    
    # ؟©±â¼­ ½ل¾كاز ؛خ؛ذہ؛ ہ§؟، ¼³¸يار FE؟، اط´çاد´آ ؛خ؛ذ.                                     
    # FE¸¦ ½لءظ °ح                                    
    #--#    DragonSoulName    Type                            
    1    ¹é·و¼®    11                            
    2    ب­·و¼®    12                            
    3    ا³·و¼®    13                            
    4    أ¶·و¼®    14                            
    5    ³ْ·و¼®    15                            
    6    بو·و¼®    16                            
}                                        
                                        
Group BasicApplys                                        
{                                        
    Group ¹é·و¼®                                    
    {                                    
    # 1؛خإح ¼ّ¼­´ë·خ ؛خ؟©µب´ظ.                                    
        #--#    Apply_Type    Apply_value                        
        1    INT    10                        
        2    RESIST_ICE    10                        
    }                                    
                                        
    Group ب­·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value                        
        1    STR    10                        
        2    RESIST_FIRE    10
    }                                    
    Group ا³·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value                        
        1    MAX_SP    500                        
        2    RESIST_WIND    10                        
    }                                    
    Group أ¶·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value                        
        1    DEX    10                        
        2    RESIST_EARTH    10                        
    }                                    
    Group ³ْ·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value                        
        1    MAX_HP    1500                        
        2    RESIST_ELEC    10                        
    }                                    
    Group بو·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value                        
        1    CON    10                        
        2    RESIST_DARK    10                        
    }                                    
}                                        
                                        
Group AdditionalApplys                                        
{                                        
    Group ¹é·و¼®                                    
    {                                    
    # ¾صہا أ¹ ؤأ·³ہ؛ ¼ّ¼­؟ح °ü°è ¾ّ´ظ. أ¶ہْب÷ ب®·ü؟، µû¶َ ¼س¼؛ہج ؛خ؟©µة »سہج´ظ.                                    
        #--#    Apply_Type    Apply_value    Prob                    
        1    MAGIC_ATT_GRADE    15    10                    
        2    MAGIC_DEF_GRADE    15    10                    
        3    SKILL_DAMAGE_BONUS    15    10                    
        4    SKILL_DEFEND_BONUS    15    10                    
    }                                    
    Group ب­·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value    Prob                    
        1    ATT_BONUS    300    10                    
        2    DEF_BONUS    200    10                    
        3    NORMAL_HIT_DAMAGE_BONUS    15    10                    
        4    NORMAL_HIT_DEFEND_BONUS    15    10                    
    }                                    
    Group ا³·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value    Prob                    
        1    MAX_HP    3000    10                    
        2    HP_REGEN    10    10                    
        3    STEAL_HP    10    10                    
        4    KILL_HP_RECOVER    5    10                    
        5    MAX_HP_PCT    20    10                    
    }                                    
    Group أ¶·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value    Prob                    
        1    ATT_BONUS_TO_WARRIOR    15    10                    
        2    ATT_BONUS_TO_ASSASSIN    15    10                    
        3    ATT_BONUS_TO_SURA    15    10                    
        4    ATT_BONUS_TO_SHAMAN    15    10                    
        5    RESIST_WARRIOR    15    10                    
        6    RESIST_ASSASSIN    15    10                    
        7    RESIST_SURA    15    10                    
        8    RESIST_SHAMAN    15    10                    
    }                                    
    Group ³ْ·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value    Prob                    
        1    MAX_SP    1500    10                    
        2    SP_REGEN    10    10                    
        3    STEAL_SP    10    10                    
        4    KILL_SP_RECOVER    5    10                    
        5    MAX_SP_PCT    20    10                    
    }                                    
    Group بو·و¼®                                    
    {                                    
        #--#    Apply_Type    Apply_value    Prob                    
        1    BLOCK    10    10                    
        2    DODGE    10    10                    
        3    REFLECT_MELEE    10    10                    
        4    RESIST_CRITICAL    10    10                    
        5    RESIST_PENETRATE    10    10                    
    }                                    
}                                        
                                        
# ؟©±â؛خإح Default¸¦ µذ´ظ.                                        
# Default °ھہ» ¸ًµç ؟ëب¥¼®ہج µû¸£°ي,                                         
# ئ¯ء¤ °ھہج ہض´آ ؟ëب¥¼®ہ؛ Default¸¦ ¹ظإءہ¸·خ ±× °ھہ» µ¤¾î¾´´ظ.                                        
# µî±ق؟، µû¸¥ ¼س¼؛¼ِ                                        
# ´ـ, basis, add_max´آ 3؛¸´ظ إ©¸é ¾بµب´ظ.                                        
Group ApplyNumSettings                                        
{                                        
    Group Default                                    
    {                                    
        #--#    GRADE_NORMAL    GRADE_BRILLIANT    GRADE_RARE    GRADE_ANCIENT    GRADE_LEGENDARY            
        basis    1    1    1    2    2            
        add_min    0    0    0    0    0            
        add_max    0    1    2    2    3            
    }                                    
#    Group ¹é·و¼®                                    
#    {                                    
#        #--#    GRADE_NORMAL    GRADE_BRILLIANT    GRADE_RARE    GRADE_ANCIENT    GRADE_LEGENDARY            
#        basis    1    1    1    2    2            
#    }                                    
}                                        
                                        
# ؟ëب¥¼® °،ءكؤ، إ×ہج؛ي.                                        
# ہج إ×ہج؛ي؟،¼­ °ھہج 0ہج¶َ¸é ±× ہج»َہا °­ب­´آ ؛ز°،´ةاد´ظ°ي ئا´ـار´ظ.                                        
Group WeightTables                                        
{                                        
    Group Default                                    
    {                                    
        Group GRADE_NORMAL                                
        {                                
    #        ´ـ°è    °­ب­                        
            #--#    0    1    2    3    4    5    6
            STEP_LOWEST    1    2    3    0    0    0    0
            STEP_LOW    2    3    4    0    0    0    0
            STEP_MID    3    4    5    6    0    0    0
            STEP_HIGH    4    5    6    7    0    0    0
            STEP_HIGHEST    5    6    7    8    10    0    0
        }                                
        Group GRADE_BRILLIANT                                
        {                                
            STEP_LOWEST    3    4    5    6    0    0    0
            STEP_LOW    4    5    6    8    0    0    0
            STEP_MID    5    6    8    10    0    0    0
            STEP_HIGH    6    8    10    12    15    0    0
            STEP_HIGHEST    8    10    12    15    20    0    0
        }                                
        Group GRADE_RARE                                
        {                                
            #--#    0    1    2    3    4    5    6
            STEP_LOWEST    6    7    9    11    15    0    0
            STEP_LOW    7    9    11    15    20    0    0
            STEP_MID    9    11    15    20    25    0    0
            STEP_HIGH    11    15    20    25    30    0    0
            STEP_HIGHEST    15    20    25    30    40    0    0
        }                                
        Group GRADE_ANCIENT                                
        {                                
            #--#    0    1    2    3    4    5    6
            STEP_LOWEST    10    12    15    18    20    0    0
            STEP_LOW    12    15    18    20    25    0    0
            STEP_MID    15    18    20    25    35    0    0
            STEP_HIGH    18    20    25    35    40    0    0
            STEP_HIGHEST    20    25    35    40    60    80    0
        }                                
        Group GRADE_LEGENDARY                                
        {                                
            #--#    0    1    2    3    4    5    6
            STEP_LOWEST    30    35    40    45    50    0    0
            STEP_LOW    35    40    45    50    55    0    0
            STEP_MID    40    45    50    55    65    0    0
            STEP_HIGH    45    50    55    65    75    90    0
            STEP_HIGHEST    50    55    65    75    90    105    120
        }                                
    }                                    
#    Group ¹é·و¼®                                    
#    {                                    
#        Group GRADE_NORMAL                                
#        {                                
#            #--#    0    1    2    3    4    5    6
#            STEP_LOWEST    10    20    53    0    0    0    0
#            STEP_HIGHEST    50    60    37    18    10    0    0
#        }                                
#    }                                    
}
                                        
# °³·® table                                    
Group RefineGradeTables                                    
{                                    
    Group Default                                
    {                                
        #--#    NEED_COUNT    FEE    GRADE_NORMAL    GRADE_BRILLIANT    GRADE_RARE    GRADE_ANCIENT    GRADE_LEGENDARY
        GRADE_NORMAL    3    30000    70    25    5    0    0
        GRADE_BRILLIANT    3    50000    25    70    5    0    0
        GRADE_RARE    3    70000    8    15    75    2    0
        GRADE_ANCIENT    3    100000    2    3    8    85    2
    }                                
}                                    
                                    
Group RefineStepTables                                    
{                                    
    Group Default                                
    {                                
        #--#    NEED_COUNT    FEE    STEP_LOWEST    STEP_LOW    STEP_MID    STEP_HIGH    STEP_HIGHEST
        STEP_LOWEST    4    20000    70    25    5    0    0
        STEP_LOW    3    30000    25    70    5    0    0
        STEP_MID    2    40000    10    20    80    1    0
        STEP_HIGH    1    50000    2    3    5    89    1
    }                                
}                                    
                                    
Group RefineStrengthTables                                    
{                                    
    Group Default                                
    {                                
        # MATERIAL_DS_REFINE_NORMAL : GRADE_NORMAL °­ب­¼®                            
        # MATERIAL_DS_REFINE_BLESSED : أà؛¹ہا °­ب­¼®                            
        # MATERIAL_DS_REFINE_HOLLY : ؟ë½إہا °­ب­¼®                            
        #--#    FEE    0    1    2    3    4    5
        MATERIAL_DS_REFINE_NORMAL    10000    100    80    70    50    30    20
        MATERIAL_DS_REFINE_BLESSED    20000    100    88    77    55    33    22
        MATERIAL_DS_REFINE_HOLLY    30000    100    90    80    60    40    30
    }                                
}                                    

# ؟ë½ةہ؛ 100000(ہس½أ vnum)ہج°ي, أوہü·®ہ؛ socket (0)؟، ¹ع¾ئ³ض´آ´ظ.                                        
# ´ـ, special item group؟، vnum 10053ہ¸·خ ء¤ہاµا¾îہض´آ ´ظ¸¥ ؟ë½ةµéہ؛ Value(0)؟، ہض´آ °ھہج أوہü·®.                                        
# ؟ë½ة أكأâ ب®·ü إ×ہج؛ي                                        
# أوہü·®ہج 0ہج¶َ´آ °حہ؛ أكأâ ½ائذ¶َ´آ °إ.                                        
Group DragonHeartExtTables                                        
{                                        
    Group Default                                    
    {                                    
        #--#    1    2    3    4    5            
    # ؟ë½ة أوہü·®(%)                                    
        CHARGING    0    5    15    30    50            
    #    µî±ق°ْ أوہü·®؟، µû¸¥ ب®·ü إ×ہج؛ي                                
    #    µî±ق     ب®·ü                            
        GRADE_NORMAL    50    35    12    2    1            
        GRADE_BRILLIANT    35    40    20    4    1            
        GRADE_RARE    20    35    30    12    3            
        GRADE_ANCIENT    15    30    35    15    5            
        GRADE_LEGENDARY    10    20    40    20    10            
    }                                    
}                                        
                                        
# ؟ëب¥¼® أكأâ ب®·ü إ×ہج؛ي.                                        
# ہج°حµµ 1, 2¾بہج ہض¾î إëاصاز ¼ِ ہض´آ ¹و¾بہ¸·خ °¨.                                        
# أكأâ ب®·üہ» ء¤از ¼ِ ہض°ي, ½ائذ ؛خ»ê¹°µµ ء¤از ¼ِ ہضہ½.(0ہج¸é ¾بءـ)                                        
Group DragonSoulExtTables                                        
{                                        
    Group Default                                    
    {                                    
                #½ائذ ؛خ»ê¹°                        
        #--#    Prob    ByProduct                        
        GRADE_NORMAL    50    30270                        
        GRADE_BRILLIANT    40    30270                        
        GRADE_RARE    30    30270                        
        GRADE_ANCIENT    30    30270                        
        GRADE_LEGENDARY    20    30270                        
    }                                    
}                                        
 

 

 

 

Link to comment
Share on other sites

  • 1 year later...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



  • Similar Content

  • Activity

    1. 144

      Shop Ex Renewal

    2. 0

      Sort By Last Play Time problem

    3. 0

      QuickSell in SpecialInventory Problem

    4. 12

      Legendary items effect

    5. 0

      M2Project Research | Teamler - Beta Tester

    6. 5

      How To Directx9 Device Creation with Multiple Thread Support

    7. 25

      Increase Safebox / Warehouse

  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.