Metin2 TR için C++ autologin ve autorevive nasıl yapılır?

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Uzman Üye
Katılım
19 Tem 2020
Mesajlar
195
Çözümler
2
Tepki puanı
40
Ödüller
6
Yaş
29
5 HİZMET YILI
Arkadaşlar merhaba, C++ temellerim var. Biraz da Assembly biliyorum ama Assembly'e hakim değilim. Metin2'de oyundan attığında otomatik giris yapan ve oldugunde otomatik kaldiracak bir uygulama yazmak istiyorum ama nasıl yapacagim ve nasıl bir yol izleyecegim konusunda bir fikrim yok. C++'da fonksiyonlarin yolunu nasıl Metin2'ye gosterecegim?

Not: Fonksiyonlara pointer ve offsetlerle gosterecegimi biliyorum ama nasıl bir manipulasyon yapmam gerekiyor ve ban yememesi lazim hesabin.
 
Moderatörün son düzenlenenleri:
Słyszę, słyszę letni powiew.
Kurucu
Katılım
20 Haz 2015
Mesajlar
7,666
Çözümler
136
Tepki puanı
20,725
Ödüller
25
10 HİZMET YILI
Yeniden doğmak için SendChatPacket fonksiyonunu kullanabilirsin. Official server için open source olan mt2 src sinden biraz farklı SendChatPacket fonksiyonu. Normalde biz o fonksiyona sadece command pushluyoruz char* olarak, ama official serverde 2 tane daha fazladan parametre var. Sanırsam artık command yollamak yerine enum tarzı bir şeyler yapmışlar.

Officialde şu şekilde çağırman yeniden doğman için yeterli olucaktır:

C++:
//def
   __forceinline auto SendChatPacket(const DWORD v1,const DWORD v2, const char* v3) noexcept -> bool
    {
      return thisCall<bool>((PVOID)pWrapper->get(Pointers::sendChatPacket),this, { v1, v2, v3});
    }

//in your loop
 if (pLocal->isDead())
 Entity::pPythonNetworkStream->SendChatPacket(5, 1, "");

PVP serverler için SendChatPacket fonksiyonuna break point atıp nasıl bir command geliyor bakabilirsin, mesela aeldrada "/restart_here" pushlaman lazım.

Oyundan sunucu listesine düştüğünüz zaman tekrar yeniden bağlanmak için önce _DirectEnterMode_Set fonksiyonunu çağırıp daha sonra ConnectLoginServer fonksiyonunu çağıracaksınız.
Yine bu iki fonksiyona instance (_ecx) olarak CPythonNetworkStream pushlayacaksınız.
Bol şans :)
 
Onaylı Üye
Katılım
10 Eki 2021
Mesajlar
52
Tepki puanı
4
Ödüller
2
Yaş
31
4 HİZMET YILI
pvp server için restart_here yapabilirsin die biliyorum
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst