- Katılım
- 8 Şub 2022
- Konular
- 95
- Mesajlar
- 645
- Online süresi
- 2ay 17g
- Reaksiyon Skoru
- 722
- Altın Konu
- 5
- Başarım Puanı
- 158
- Yaş
- 29
- TM Yaşı
- 4 Yıl 2 Ay 10 Gün
- MmoLira
- 15,777
- DevLira
- 0
Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!
Source 'ye Bakma IDA PRO Ya At ögretimine Hoş Geldiniz
IDA PRO : Yu Açıp Metin2client.bin i atınız sonra (SHIFT + 12 ile Ida dan String Kısmına Giriş Yapınız)
(CTRL F ile IDA da Arama Kısmına SendCharacter) yazıp cıkan string'e cift tıklayınızIDA PRO : Yu Açıp Metin2client.bin i atınız sonra (SHIFT + 12 ile Ida dan String Kısmına Giriş Yapınız)
X ile fotoraf da gösterilen yerin üstüne X tusuna basarak Gidiniz (tek call cıkıcaktır cift tıklayınız)
Simdi ise Celestial World Sunucusunda Bulunan (char __thiscall sub_4DFB60(void *this, float *a2, float a3, char a4, char a5, char a6)) bizim kullanıcagımız kısım burası
baslangıcı copy paste yaparak alın : typedef void(__thiscall* TSendCharacterState)(void* pInstance, const Vector3& kPos, float Rotation, unsigned __int8 a4, unsigned __int8 a5, char a6); | Ida Pro decompiler cıktısında (void *this dedigi kızım yani 1 NetworkStream kısmı ) - ( 2 yazan ise vector3 yani float x,y,z) kısmıdır ( float a3 yazan ise rota dır) siz bana bunu sorucaksınız (float a3 nasıl oluyorda rota oluyor) cıktı kısmında arg da kullanılan dönüs acısını fmod ile a3 olarak kullanıldıgı icin biz burada anlıyoruz ki rotamız | float a2* yazan da aynı
*| Simdi Her packet her sucu da aynı olmaz |*
Hemen C++ örnegimi bırakıyorum size (Celestial World Sunucusu icin)
Hemen C++ örnegimi bırakıyorum size (Celestial World Sunucusu icin)
C++ Send Character State Packet (Celestial World):
static bool NetworkStreamCelestialWorldSendCharacterState(const Vector3& c_rkPPosDst, float fDstRot, unsigned __int8 eFunc, unsigned __int8 uArg, char none)
{
try
{
typedef void(__thiscall* TSendCharacterState)(void* pInstance, const Vector3& kPos, float Rotation, unsigned __int8 a4, unsigned __int8 a5, char a6);
TSendCharacterState SendCharacterState = (TSendCharacterState)(sdk_client + metin2client::C_SendCharacterStatePacket);
void* NetworkStream = sdk::iNetworkStreamInstance();
if (!NetworkStream || !SendCharacterState)
return false;
SendCharacterState(NetworkStream, c_rkPPosDst, fDstRot, eFunc, uArg, none);
return true;
}
catch (...)
{
return false;
}
}
simdi ise bizim normal packed imize baktıgımızda hangi arg ın eksik oldugunu göre biliyoruz (Gameforge (TR) Sunucusu)
Eyer ki Celestial World' ün bin'i biz ıda pro ya atıp ögrenmeseydik Range Wait çalısmicak ve client kapanıcaktı
C++ Normal Packed:
static bool NetworkStreamSendCharacterStatePacket(const Vector3& c_rkPPosDst, float fDstRot, UINT eFunc, UINT uArg)
{
try
{
typedef void(__thiscall* tSendCharacterState)(void* pInstance, const Vector3& kPos, float z, UINT eFunc, UINT uArg);
tSendCharacterState Send = (tSendCharacterState)(sdk_client + metin2client::C_SendCharacterStatePacket);
void* NetworkStream = sdk::iNetworkStreamInstance();
if (!NetworkStream || !Send)
return false;
Send(NetworkStream, c_rkPPosDst, fDstRot, eFunc, uArg);
return true;
}
catch (...)
{
return false;
}
}
(Simdi ise Gecelim Farklı Yaklaşım ile)
SoloMt2 (Sunucusunun SendCharacterState'Sidir) burda farkındalık nedir (timeGetTime 'dır) | Celestial World Sunucusunda 40 Satır Kod varken (SoloMt2) packed inde ise 115 satır kod var yani siz arg'ı bile dogru yapsanız 3 <- yazan adım boyutunuz sabit kalıcak (2 yazan yine 5 saniye de bir konturol yapıcaktır) biz packed in icine extra bunları atlasın diye (Model Vector yani X Y Z mizi de packed'e giriyoruz ) Böylelikle Packed'imiz deki 8 adımı atllayıp 5 saniyeyi atlayıp 3 saniye kadar hasar vurdura biliyoruz
C++ Alves - SoloMt2 (packed):
static bool NetworkStreamAlves2SendCharacterState(const Vector3& c_rkPPosDst, float fDstRot, unsigned int eFunc, unsigned int uArg)
{
try
{
typedef void(__thiscall* TSendCharacterState)(void* pInstance, const Vector3& c_rkPPosDst, float Rotation, unsigned int a4, unsigned int a5);
TSendCharacterState SendCharacterState = (TSendCharacterState)(sdk_client + metin2client::C_SendCharacterStatePacket);
void* NetworkStream = sdk::iNetworkStreamInstance();
if (!NetworkStream || !SendCharacterState)
return false;
SendCharacterState(NetworkStream, c_rkPPosDst, fDstRot, eFunc, uArg);
return true;
}
catch (...)
{
return false;
}
}
Kullanımı:
auto Teleport = [&](const Vector3& start, const Vector3& end)
{
std::vector<Vector3> dist = engine::DivideTwoPointsByDistance(5, start, end);
for (auto& point : dist)
{
engine::SendCharacterModel(point);
engine::NetworkStreamAlves2SendCharacterState(point, ent.Rotation, 0, 0);
}
engine::SendCharacterModel(end);
engine::NetworkStreamAlves2SendCharacterState(end, ent.Rotation, 0, 0);
};
Teleport(oldPosition, newpos);
engine::NetworkStreamSendAttackPacket(0, ent.VID);
Teleport(newpos, oldPosition);
C++ uzaktan vurum :d:
static DWORD* GetMainActorPtr()
{
DWORD* CPythonCharacterManager = *(DWORD**)(sdk_client + metin2client::C_LocalPlayer);
if (!CPythonCharacterManager)return nullptr;
DWORD* Instance = *(DWORD**)((DWORD)CPythonCharacterManager + metin2client::C_LocalAddr);
if (!Instance)return nullptr;
return Instance;
}
template<typename T>
static void Write(DWORD offset, T value)
{
DWORD* pActor = GetMainActorPtr();
if (!pActor)
return;
*(T*)((DWORD)pActor + offset) = value;
}
static void SendCharacterModel(Vector3 pos)
{
try
{
sdk::Write<float>(metin2client::C_ModelCoordX, pos.x);
sdk::Write<float>(metin2client::C_ModelCoordY, -fabs(pos.y));
sdk::Write<float>(metin2client::C_ModelCoordZ, pos.z);
}
catch (...)
{
}
}
gameforge send chracter state:
void GameForge(const Vector3& c_rkPPosDst, float fDstRot, UINT eFunc, UINT uArg)
{
DWORD NetWorkStream = *(DWORD*)(sdk_client + 0x2BE46B4); // push :d
DWORD aaaaa = (sdk_client + 0x23CC370);
_asm
{
mov ecx, NetWorkStream
push uArg
push eFunc
push fDstRot
mov eax, c_rkPPosDst
push eax
call aaaaa
}
}
- Katılım
- 13 Ocak 2020
- Konular
- 1,399
- Mesajlar
- 9,719
- Online süresi
- 1y 29g
- Reaksiyon Skoru
- 7,086
- Altın Konu
- 306
- Başarım Puanı
- 393
- TM Yaşı
- 6 Yıl 3 Ay 8 Gün
- MmoLira
- 3,922
- DevLira
- 15
Güzel konu eline sağlık
- Katılım
- 26 Mar 2024
- Konular
- 1,251
- Mesajlar
- 4,517
- Online süresi
- 3ay 23g
- Reaksiyon Skoru
- 3,792
- Altın Konu
- 521
- Başarım Puanı
- 274
- Yaş
- 28
- TM Yaşı
- 2 Yıl 24 Gün
- MmoLira
- 129,608
- DevLira
- 450
Eline sağlık.
Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)
Benzer konular
- Cevaplar
- 12
- Görüntüleme
- 1K
- Cevaplar
- 17
- Görüntüleme
- 4K
- Cevaplar
- 13
- Görüntüleme
- 995
- Cevaplar
- 3
- Görüntüleme
- 378
- Cevaplar
- 6
- Görüntüleme
- 656