Merhabalar her fileste bulunan ama kullanılmayan pembe iksir ve Gök mavisi iksirlerini aktif edicez ancak ben şuan sadece pembe iksiri aktif ettim yarında büyük ihtimal gök mavisi iksirini aktif ederim başlıyalım
item_proto ve src client:
//Filezilla Girelim item_proto.txt açalım ve 27118 aratalım
ITEM_NONE 0
böyledir biz böyle yapalım yani 0 yerine USE_SPECİAL koyucaz
eğer pack tarafında problem oluyorsa USE_ABILITY_UP kullanılabilir
ITEM_USE USE_SPECIAL
//Source geçelim game/src/affect.h açalım ve aratalım AFFECT_NOG_ABILITY,
//Hemen altına
NEW_AFFECT_OZEL_IKSIR = 910, //Yeni Harici Kritik Havuzu
AFFECT_OZEL_IKSIR_HP = 911, // Yeni Harici HP Havuzu
AFFECT_OZEL_IKSIR_DELICI = 912, // Yeni Harici Delici Havuzu
//Yazalım kaydedip kapatalım.
//char_item.cpp açalım game/src klasörü içinde
//aratalım case ITEM_GIVE_STAT_RESET_COUNT_VNUM: bir boşluk bırakıp üzerine alttaki kodu yapıştıralım
case 27118: // Özel İksir (HP, Kritik, Delici)
{
// Sınırsız üst üste basılmayı engelleyen orijinal kontrol
if (FindAffect(NEW_AFFECT_OZEL_IKSIR))
{
ChatPacket(CHAT_TYPE_INFO, "Bu iksirin etkisi zaten uzerinizde aktif.");
return false;
}
// Süre Tanımı: 10 Dakika (600 Saniye)
long lDuration = 600;
AddAffect(NEW_AFFECT_OZEL_IKSIR, POINT_CRITICAL_PCT, 10, AFF_NONE, lDuration, 0, true);
AddAffect(AFFECT_OZEL_IKSIR_HP, POINT_MAX_HP, 1000, AFF_NONE, lDuration, 0, true);
AddAffect(AFFECT_OZEL_IKSIR_DELICI, POINT_PENETRATE_PCT, 10, AFF_NONE, lDuration, 0, true);
// Zindan ve Savaş haritalarındaki iksir kullanım log tetikleyicileri
if (GetDungeon())
GetDungeon()->UsePotion(this);
if (GetWarMap())
GetWarMap()->UsePotion(this, item);
// Can barının (HP Bar) anlık güncellenmesi için zorunlu yenileme
PointChange(POINT_MAX_HP, 0);
ChatPacket(CHAT_TYPE_INFO, "[Sistem] Ozel iksir kullanildi! 1000 HP, %%10 Kritik ve %%10 Delici 10 dakika aktif.");
// İksiri envanterden 1 adet eksiltir
item->SetCount(item->GetCount() - 1);
}
break;
//SRC tarafı bitti build alalım şimdi iksire basınca sol üstte gözükmesi için client pack ayarlarını yapalım
//InstanceBase.h açalım ve aratalım NEW_AFFECT_QUEST_START_IDX bir boşluk üzerine bu alttaki kodu yapıştıralım.
NEW_AFFECT_OZEL_IKSIR = 910,
//kaydedip kapatalım PythonCharacterModule.cpp açalım ve aratalım
// PyModule_AddIntConstant(poModule, "AFFECT_FISH_MIND", CInstanceBase::AFFECT_FISH_MIND);
//hemen üzerine ekliyelim
PyModule_AddIntConstant(poModule, "NEW_AFFECT_OZEL_IKSIR", CInstanceBase::NEW_AFFECT_OZEL_IKSIR);
//kaydetip client build alalım
//Pack ayarı kaldı son olarak root dosyasındaki uiaffectshower.py açalım
//class AffectShower içerisinde AFFECT_DATA_DICT bul ve müsait yere bu kodu ekle
chr.NEW_AFFECT_OZEL_IKSIR : (localeInfo.NEW_AFFECT_OZEL_IKSIR, "icon/item/27118.tga"),
//kaydet ve rootu paketle locale_tr'yi aç locale_game.txt bul aç en altına
NEW_AFFECT_OZEL_IKSIR Pembeİksir SNA
//ekle ve kaydet locale_tr kapat oyuna gir
//NOT : İKSİRİN ÖZELLİKLERİNİ İSTEDİĞİNİZ GİBİ DEĞİŞTİREBİLİRSİNİZ VEYA ORANLARINI
//İKSİR KULLANILDIĞINDA [SİSTEM] MESAJI GEÇER AKTİF İKEN KULLANIRSANIZ ETKİ DEVAM EDİYOR DİYECEKTİR
gökmavisi iksir yapımı:
//Filezilla item_proto.txt açalım 27121 aratalım
//ITEM_NONE olan ve 0 yazan yerleri bununla değiştirelim
ITEM_USE USE_SPECIAL
//pack içinde bununla değiştir iksir sesleri çıkması için
ITEM_USE USE_ABILITY_UP
//USE_SPECIAL böyle olsada çalışır fakat iksir sesi çıkmaz
//not : filezilla tarafı her zaman USE_SPECIAL böyle olmalı
//SRC tarafında affect.h açalım game/src kısmında
//Yukarıda verdiğim kodların altına ekle
AFFECT_OZEL_SAVUNMA = 913, //Karakterlere Beceri Savunması %5
AFFECT_OZEL_SAVUNMA_IKI = 914, //Karakterlere Ortalama Savunma %5
//kaydet ve char_item.cpp aç yukarıda verdiğim kodun üzerine bu kodu yapiştir
case 27121: // Ozel Iksir (Karakterlere Savunma)
{
// Sınırsız ust uste basılmayı engelleyen orijinal kontrol
if (FindAffect(AFFECT_OZEL_SAVUNMA))
{
ChatPacket(CHAT_TYPE_INFO, "Bu iksirin etkisi zaten uzerinizde aktif.");
return false;
}
// Sure Tanımı: 10 Dakika (600 Saniye)
long lDuration = 600;
//Karakterlere karsi savunma bonusları veriyoruz.
AddAffect(AFFECT_OZEL_SAVUNMA, POINT_NORMAL_HIT_DEFEND_BONUS, 5, AFF_NONE, lDuration, 0, true);
AddAffect(AFFECT_OZEL_SAVUNMA_IKI, POINT_SKILL_DEFEND_BONUS, 5, AFF_NONE, lDuration, 0, true);
// Zindan ve Sava? haritalarındaki iksir kullanım log tetikleyicileri
if (GetDungeon())
GetDungeon()->UsePotion(this);
if (GetWarMap())
GetWarMap()->UsePotion(this, item);
// Can barının (HP Bar) anlık guncellenmesi icin zorunlu yenileme
PointChange(POINT_MAX_HP, 0);
ChatPacket(CHAT_TYPE_INFO, "[Sistem] Karakterlere karsi savunma %%5 iksiri 10 dakika aktif.");
// ?ksiri envanterden 1 adet eksiltir
item->SetCount(item->GetCount() - 1);
}
break;
//yukarıda kod ile yapısı aynıdır sadece iksirin verdiği özellikler değiştirilmiştir
//kaydet ve build alalım daha sonra client tarafını ayarlayalım
// InstanceBase.h açalım ve yukarıda verdiğim kodun altına bunu ekle ve kaydet
NEW_AFFECT_OZEL_SAVUNMA = 913,
//PythonCharacterModule.cpp aç ve yukarıda verdiğim kodun altına bunu koy
PyModule_AddIntConstant(poModule, "NEW_AFFECT_OZEL_SAVUNMA", CInstanceBase::NEW_AFFECT_OZEL_SAVUNMA);
//kaydet ve build al pack tarafını yapalım
//pack root açalım uiaffectshower.py açalım ve yukarıda verilen kodun altına bunu koyalım
chr.NEW_AFFECT_OZEL_SAVUNMA : (localeInfo.NEW_AFFECT_OZEL_SAVUNMA, "icon/item/27121.tga"),
//kaydedip locale_tr açalım ve locale_game.txt düzenliyelim altına bunu yazalım
NEW_AFFECT_OZEL_SAVUNMA Gök Mavisi İksir SNA
//kaydedip pack kapatıp oyuna girelim böylelikle gökmavisi iksir %5 karakterlere savunma verecektir
Dosya Eklentileri
Son düzenleme: