bikral 1
bikral
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Bvural41 1
Bvural41
ShadowFon 1
ShadowFon
mavzermete 1
mavzermete
YazilimMühendisi 1
YazilimMühendisi
Fethi Polat 1
Fethi Polat
InfernoShade 1
InfernoShade
Hikaye Ekle

[C++] Agresif Item Düşürme Dupe Fix

  • Konuyu başlatan Konuyu başlatan MT2Dev
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 7
  • Görüntüleme Görüntüleme 4K
5.00 yıldız(lar) 2 Değerlendirme Değerlendirenler

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Merhaba TurkMMO,

Bugün ilk kimin akıl edipte denediğini merak ettiğim, item kopyalamaya sebebiyet veren bir açığın fixini paylaşacağım.

Alıntıdır, bu fix ve dupenin anlatımı için Metin2Downloads'dan Yuma'ya teşekkürler.

Nedir Bu Açık ?

Eski tarzda bir sunucu sahibiyseniz muhtemelen zalim karakterlerden item düşmesini ( item drop penalty ) kullanıyorsunuzdur, dupe tam olarak bununla alakalı kabaca nasıl yapıldığını anlatayım ;

Nasıl Yapılır ?

1- Negatif sıralamaya ( Zalim, Hileli vs. ) düşün ve ışınlanma yüzüğüne tıklayıp belirli bir haritanın üstünde tıkladığınızda hemen ışınlanacak şekilde hazırda bekleyin.
2- Karakterin slotlara veya başka bir karaktere ölmesine izin verin.
3- Karakter öldüğü ve itemi düşürdüğü milisaniyede kendinizi başka bir yere ışınlayın. ( Çok hızlı olmalısınız, bir kaç denemeye ihtiyaç olabilir. )
4- Eğer dupe sizin için çalışıyorsa hem yerde hemde envanterinizde aynı itemler duruyor olacak.
5- Eşyaları depoya koyup geri çıkartın ( off shop vs. de olabilir ) ve bu kadar artık itemlerinizi kopyalayabilirsiniz.

Nasıl Çözeriz ?

Kısaca, artı basma veya ticaret vs. gibi işlemlerden sonra belirli bir saniyede başka mape ışınlanamama engelini ( portal limit time ) item drop içinde ekleyeceğiz.

İndirme ;


-


Alternatif Çözüm ;
Bu kadar fantaziye ne gerek var ki?

void CHARACTER::ItemDropPenalty(LPCHARACTER pkKiller) // ara

if (CBattleArena::instance().IsBattleArenaMap(GetMapIndex()) == true)
{
return;
}

altına ekle

if (quest::CQuestManager::instance().GetPCForce(GetPlayerID())->IsRunning() == true || IsWarping() || m_pkTimedEvent)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¿ë½ÅÀÇ º¸È£·Î ¾ÆÀÌÅÛÀÌ ¶³¾îÁöÁö ¾Ê¾Ò½À´Ï´Ù."));
return;
}

fonksiyonun en altınada isterseniz
SetMyShopTime(); ekleyin

oldu bitti
 

Ekli dosyalar

Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

Keşke sadece bunlarla sınırlı olsa. Kötü niyetli insanlar her zaman var. Paylaşım için teşekkürler.

İşini garantiye almak isteyenler için zalimken eşya düşürmeyi kapatma:
if (GetGMLevel() == GM_PLAYER || test_server)
{
//ItemDropPenalty(pkKiller);
}
Bu kadar fantaziye ne gerek var ki?

void CHARACTER::ItemDropPenalty(LPCHARACTER pkKiller) // ara

if (CBattleArena::instance().IsBattleArenaMap(GetMapIndex()) == true)
{
return;
}

altına ekle

if (quest::CQuestManager::instance().GetPCForce(GetPlayerID())->IsRunning() == true || IsWarping() || m_pkTimedEvent)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¿ë½ÅÀÇ º¸È£·Î ¾ÆÀÌÅÛÀÌ ¶³¾îÁöÁö ¾Ê¾Ò½À´Ï´Ù."));
return;
}

fonksiyonun en altınada isterseniz
SetMyShopTime(); ekleyin

oldu bitti
Keşke sadece bunlarla sınırlı olsa. Kötü niyetli insanlar her zaman var. Paylaşım için teşekkürler.

İşini garantiye almak isteyenler için zalimken eşya düşürmeyi kapatma:
if (GetGMLevel() == GM_PLAYER || test_server)
{
//ItemDropPenalty(pkKiller);
}
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst