Anlatım;
char_item.cpp:
Kod
//arat;
case 70102:
//üstüne ekle
case 70180: //derece meyvesi 1(500)
case 70181: //derece meyvesi 1(1000)
case 70182: //derece meyvesi 1(2000)
case 70183: //derece meyvesi 1(5000)
case 70184: //derece meyvesi 1(10000)
case 70185: //derece meyvesi 2(500)
case 70186: //derece meyvesi 2(1000)
case 70187: //derece meyvesi 2(2000)
case 70188: //derece meyvesi 2(5000)
case 70189: //derece meyvesi 2(10000)
case 70190: //derece meyvesi 3(500)
case 70191: //derece meyvesi 3(1000)
case 70192: //derece meyvesi 3(2000)
case 70193: //derece meyvesi 3(5000)
case 70194: //derece meyvesi 3(10000)
{
int Alignment = GetAlignment();
if (Alignment < 0)
{
ChatPacket(CHAT_TYPE_INFO, "Dereceniz '-' değerdeyken bu öğeyi kullanamazsınız !");
return false;
}
int MaxAlignment = 30000000;//buradaki değer kullandığınız filestaki derece sınırını ifade ediyor. Ona göre düzenleyin.Kısaca derece max olmuşmu olmamışmı kontrolü için lazım.
if (Alignment >= MaxAlignment)
{
ChatPacket(CHAT_TYPE_INFO, "Dereceniz sınıra ulaştığı için bu öğeyi kullanamazsınız ");
return false;
}
BYTE pc_meyve_num;
if (Alignment < 10000000)
{
pc_meyve_num = 1;
}
else if (Alignment >= 10000000 && Alignment < 20000000)
{
pc_meyve_num = 2;
}
else
{
pc_meyve_num = 3;
}
BYTE item_meyve_num = item->GetValue(0);//Value0 değeri o itemin hangi aralığa ait onu belirtiyoruz(Value0 item_proto da).
if (item_meyve_num != pc_meyve_num)
{
ChatPacket(CHAT_TYPE_INFO, "Derecenizi yükseltmek için Derece Meyvesi %d kullanın", pc_meyve_num);
return false;
}
int val = item->GetValue(1);//Value1 değeri o itemin oyuncuya ne kadar derece kazandıracağını belirtiyoruz(Value1 item_proto da).
if (MaxAlignment - Alignment < val * 10)
{
val = (MaxAlignment - Alignment) / 10;
}
UpdateAlignment(val*10);
ChatPacket(CHAT_TYPE_INFO, "Dereceniz %d arttırıldı.", val);
item->SetCount(item->GetCount() - 1);
char buf[256 + 1];
snprintf(buf, sizeof(buf), "%d %d", Alignment, GetAlignment());
LogManager::instance().CharLog(this, val, "MYTHICAL_PEACH", buf);
}
break;
Daha Çok Göster
item_proto:
Kod
70180 derece meyvesi 1(500) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 1 500 0 0 0 0 0 0 0
70181 derece meyvesi 1(1000) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 1 1000 0 0 0 0 0 0 0
70182 derece meyvesi 1(2000) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 1 2000 0 0 0 0 0 0 0
70183 derece meyvesi 1(5000) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 1 5000 0 0 0 0 0 0 0
70184 derece meyvesi 1(10000) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 1 10000 0 0 0 0 0 0 0
70185 derece meyvesi 2(500) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 2 500 0 0 0 0 0 0 0
70186 derece meyvesi 2(1000) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 2 1000 0 0 0 0 0 0 0
70187 derece meyvesi 2(2000) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 2 2000 0 0 0 0 0 0 0
70188 derece meyvesi 2(5000) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 2 5000 0 0 0 0 0 0 0
70189 derece meyvesi 2(10000) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 2 10000 0 0 0 0 0 0 0
70190 derece meyvesi 3(500) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 3 500 0 0 0 0 0 0 0
70191 derece meyvesi 3(1000) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 3 1000 0 0 0 0 0 0 0
70192 derece meyvesi 3(2000) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 3 2000 0 0 0 0 0 0 0
70193 derece meyvesi 3(5000) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 3 5000 0 0 0 0 0 0 0
70194 derece meyvesi 3(10000) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 3 10000 0 0 0 0 0 0 0
Daha Çok Göster
item_names:
Kod
70180 Derece Meyvesi 1(500)
70181 Derece Meyvesi 1(1000)
70182 Derece Meyvesi 1(2000)
70183 Derece Meyvesi 1(5000)
70184 Derece Meyvesi 1(10000)
70185 Derece Meyvesi 2(500)
70186 Derece Meyvesi 2(1000)
70187 Derece Meyvesi 2(2000)
70188 Derece Meyvesi 2(5000)
70189 Derece Meyvesi 2(10000)
70190 Derece Meyvesi 3(500)
70191 Derece Meyvesi 3(1000)
70192 Derece Meyvesi 3(2000)
70193 Derece Meyvesi 3(5000)
70194 Derece Meyvesi 3(10000)
Daha Çok Göster
item_list:
Kod
70180 ETC icon/item/71107.tga
70181 ETC icon/item/71107.tga
70182 ETC icon/item/71107.tga
70183 ETC icon/item/71107.tga
70184 ETC icon/item/71107.tga
70185 ETC icon/item/derecemeyvesi2.png
70186 ETC icon/item/derecemeyvesi2.png
70187 ETC icon/item/derecemeyvesi2.png
70188 ETC icon/item/derecemeyvesi2.png
70189 ETC icon/item/derecemeyvesi2.png
70190 ETC icon/item/derecemeyvesi3.png
70191 ETC icon/item/derecemeyvesi3.png
70192 ETC icon/item/derecemeyvesi3.png
70193 ETC icon/item/derecemeyvesi3.png
70194 ETC icon/item/derecemeyvesi3.png
Daha Çok Göster
item_desc:
Kod
70180 Derece Meyvesi 1(500) Derecen 0 ile 1.000.000 arasındaysa Derece puanını 500 arttırır.
70181 Derece Meyvesi 1(1000) Derecen 0 ile 1.000.000 arasındaysa Derece puanını 1.000 arttırır.
70182 Derece Meyvesi 1(2000) Derecen 0 ile 1.000.000 arasındaysa Derece puanını 2.000 arttırır.
70183 Derece Meyvesi 1(5000) Derecen 0 ile 1.000.000 arasındaysa Derece puanını 5.000 arttırır.
70184 Derece Meyvesi 1(10000) Derecen 0 ile 1.000.000 arasındaysa Derece puanını 10.000 arttırır.
70185 Derece Meyvesi 2(500) Derecen 1.000.000 ile 2.000.000 arasındaysa Derece puanını 500 arttırır.
70186 Derece Meyvesi 2(1000) Derecen 1.000.000 ile 2.000.000 arasındaysa Derece puanını 1.000 arttırır.
70187 Derece Meyvesi 2(2000) Derecen 1.000.000 ile 2.000.000 arasındaysa Derece puanını 2.000 arttırır.
70188 Derece Meyvesi 2(5000) Derecen 1.000.000 ile 2.000.000 arasındaysa Derece puanını 5.000 arttırır.
70189 Derece Meyvesi 2(10000) Derecen 1.000.000 ile 2.000.000 arasındaysa Derece puanını 10.000 arttırır.
70190 Derece Meyvesi 3(500) Derecen 2.000.000 ile 3.000.000 arasındaysa Derece puanını 500 arttırır.
70191 Derece Meyvesi 3(1000) Derecen 2.000.000 ile 3.000.000 arasındaysa Derece puanını 1.000 arttırır.
70192 Derece Meyvesi 3(2000) Derecen 2.000.000 ile 3.000.000 arasındaysa Derece puanını 2.000 arttırır.
70193 Derece Meyvesi 3(5000) Derecen 2.000.000 ile 3.000.000 arasındaysa Derece puanını 5.000 arttırır.
70194 Derece Meyvesi 3(10000) Derecen 2.000.000 ile 3.000.000 arasındaysa Derece puanını 10.000 arttırır.
Daha Çok Göster
Ekte verdiğim dosyayı indirip pack\icon\icon\item içerisine atın.
Güncelleme;
derece meyvesini toplu okuma düzenlemesi;
uiinventory.py:
Kod
#bul;
def __UseItem(self, slotIndex):
ItemVNum = player.GetItemIndex(slotIndex)
item.SelectItem(ItemVNum)
if item.IsFlag(item.ITEM_FLAG_CONFIRM_WHEN_USE):
self.questionDialog = uiCommon.QuestionDialog()
self.questionDialog.SetText(localeInfo.INVENTORY_REALLY_USE_ITEM)
self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnAccept))
self.questionDialog.SetCancelEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnCancel))
self.questionDialog.Open()
self.questionDialog.slotIndex = slotIndex
constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
else:
self.__SendUseItemPacket(slotIndex)
#değiştir;
def __UseItem(self, slotIndex):
ItemVNum = player.GetItemIndex(slotIndex)
item.SelectItem(ItemVNum)
if item.IsFlag(item.ITEM_FLAG_CONFIRM_WHEN_USE):
self.questionDialog = uiCommon.QuestionDialog()
self.questionDialog.SetText(localeInfo.INVENTORY_REALLY_USE_ITEM)
self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnAccept))
self.questionDialog.SetCancelEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnCancel))
self.questionDialog.Open()
self.questionDialog.slotIndex = slotIndex
constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
elif app.IsPressed(app.DIK_LCONTROL):
if ItemVNum == 70102:#zen fasülyesi(ctrl+sağtık yapınca 10 tane arka arkaya kullanacak)
for i in xrange(10):#10 sayısını çok arttırma max 20 kullan yoksa client login atabilir.
self.__SendUseItemPacket(slotIndex)
else:
self.__SendUseItemPacket(slotIndex)
Daha Çok Göster
Not:Bu güncellemeyi herkes yapmak zorunda değil isteyen yapsın