xranzei 1
xranzei
mavzermete 1
mavzermete
Psych0SoociaL 1
Psych0SoociaL
Hikaye Ekle

C++ Duello Sistemi (Game.core)

  • Konuyu başlatan Konuyu başlatan dreamfancy
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 22
  • Görüntüleme Görüntüleme 3K

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!

Üzerinde çalışırken tesadüfen bulduğum ve duello atarken karşı tarafa ticaret yollayınca yüksek onlinelerde core veren bir açık bulduk. Uzun uğraşlarım sonucunda çözümünü buldum. Vegas duello sistemini kodlarken tahminimce bir hata yapmış çünkü orjinal dosyalarındada bu şekilde. Herneyse, oyunda normal bir şekilde duello atarken core vermez ancak yüksek onlinelerde her 30 dakikada bir core yemeniz mümkün bir durumdur. Tanımlamadaki son sayıyı vermediğinden dolayı 9 sayısını bulamıyor. Bu arada unutmadan söyleyeyim Bunu yaptıktan sonra sorunun oyunumda çözüldüğünüde belirtmek isterim. Herneyse çözüm için tek yapmanız gereken şu şekilde;

vP6WVA.png


Burada 9 değeri pkChr->GetQuestFlag olarak atanmamış gördüğünüz gibi sayı 8 fakat 9.sayıyı aşağıda vermemiş 639.satıra gidip (pkChr->GetQuestFlag(szTableStaticPvP[8])) yanına şunu ekleyin.

Kod:
,(pkChr->GetQuestFlag(szTableStaticPvP[9]))

Game.core şu şekilde (yukarda çözümü mevcut)
Sorunun char.cpp'de olduğunu söylüyor çünkü
pvp.cpp'de yapılan tanımlama 8 değer görüyor ama
char.cpp 9 değer gördüğü için game.core'de onu suçluyor işte;
Kod:
#1  0x08221c21 in quest::PC::GetFlag (this=0x0, name=@0xffff9d1c) at stl_map.h:542
No locals.


#2  0x0807e3ac in CHARACTER::GetDuel (this=0x42cdd800, type=0x846dbc9 "BlockExchange")
    at char.cpp:6923
No locals.


#3  0x08144dd0 in CHARACTER::ExchangeStart (this=0x30792800, victim=0x42cdd800) at exchange.cpp:74
No locals.


#4  0x0817f3e2 in CInputMain::Analyze (this=0x563c289c, d=0x563c2800,
    bHeader=<value optimized out>, c_pData=0x54dde380 "\033") at input_main.cpp:3683
        ch = 0x30792800
        iExtraLen = <value optimized out>
        __FUNCTION__ = "Analyze"


#5  0x08162f8b in CInputProcessor::Process (this=0x563c289c, lpDesc=0x563c2800,
    c_pvOrig=0x54dde380, iBytes=30, r_iBytesProceed=@0xffffa274) at input.cpp:108
        iExtraPacketSize = <value optimized out>
        bHeader = 27 '\033'
        c_pszName = 0x33d4906c "Exchange"
        c_pData = 0x54dde380 "\033"
        bLastHeader = <value optimized out>
        iLastPacketLen = 0
        iPacketLen = 15
        __FUNCTION__ = "Process"


#6  0x0812a3f3 in DESC::ProcessInput (this=0x563c2800) at desc.cpp:303
        iBytesProceed = 0
        bytes_read = 30
        __FUNCTION__ = "ProcessInput"


#7  0x082bead4 in io_loop (fdw=0x29161b80) at main.cpp:1072
---Type <return> to continue, or q <return> to quit---Quit
 
Son düzenleme:
Açıklayın o zaman beyfendi
1E6OXb.jpg

mtable[] a 8 tane eklemiş ve o fonksiyonda 8 tane kullanmış char.cpp ile hiçbir alakası yok.
Adam 1 tane kullanmak istese böyle yapabilirdi
Kod:
const char* szTableStaticPvP[] = {BLOCK_CHANGEITEM, BLOCK_BUFF, BLOCK_POTION, BLOCK_RIDE, BLOCK_PET, BLOCK_POLY, BLOCK_PARTY, BLOCK_EXCHANGE_, BET_WINNER, CHECK_IS_FIGHT};

        int mTable[] = {(pkChr->GetQuestFlag(szTableStaticPvP[0]))};
        mtable[0];
 

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

Geri
Üst