X
xantos
Guest
Offline
Selam,
Uzun zaman oldu, ama tahmin et ne oldu ... Merhaba.
Çoğunuzun bu hatayla zaten karşılaşmış olmanız gerekirdi, çünkü temelde joymax lonca yetenek puanlarını sınırlamadı ve hatta imzasız hale getirmedi.
Aklımdan geçen ilk şey, bunu oyun sunucusu aracılığıyla yapmaktı, aslında yaptım ama canlı bir sunucuda test ettikten sonra, aslında bir bağlantı kesilme sorununa neden oldu. Daha sonra, oyun sunucusunda depolanan değerin değiştirdiğim değerin iyi olduğunu, ancak SQL'in iyi olmadığını fark ettim.
Aslında bunu hala oyun sunucusu aracılığıyla yapabilirdim, ancak aklımdan daha iyi bir fikir geçti, neden bunu sro istemcisi aracılığıyla yapmıyoruz!
Bu nedenle, temelde bu, yalnızca pozitif değerler sağlamak için lonca puanı bağışını sınırlar. Bununla birlikte, sunucu tarafında da düzeltmediğiniz sürece, birileri paket enjektörüyle bağış yaparsa, ancak yine de kim eksi GP ile kendisine zarar vermek isterse, hata yine de ortaya çıkabilir? Müşteri tarafı yeterli olacaktır.
CInterfaceNetSender.h:
Code:
CInterfaceNetSender.cpp:
Code:
A small hook of flo's:
Code:
Ve işte bu, iyi şanslar.
Teşekkürler: florian0 , #HB
Uzun zaman oldu, ama tahmin et ne oldu ... Merhaba.
Çoğunuzun bu hatayla zaten karşılaşmış olmanız gerekirdi, çünkü temelde joymax lonca yetenek puanlarını sınırlamadı ve hatta imzasız hale getirmedi.
Aklımdan geçen ilk şey, bunu oyun sunucusu aracılığıyla yapmaktı, aslında yaptım ama canlı bir sunucuda test ettikten sonra, aslında bir bağlantı kesilme sorununa neden oldu. Daha sonra, oyun sunucusunda depolanan değerin değiştirdiğim değerin iyi olduğunu, ancak SQL'in iyi olmadığını fark ettim.
Aslında bunu hala oyun sunucusu aracılığıyla yapabilirdim, ancak aklımdan daha iyi bir fikir geçti, neden bunu sro istemcisi aracılığıyla yapmıyoruz!
Bu nedenle, temelde bu, yalnızca pozitif değerler sağlamak için lonca puanı bağışını sınırlar. Bununla birlikte, sunucu tarafında da düzeltmediğiniz sürece, birileri paket enjektörüyle bağış yaparsa, ancak yine de kim eksi GP ile kendisine zarar vermek isterse, hata yine de ortaya çıkabilir? Müşteri tarafı yeterli olacaktır.
CInterfaceNetSender.h:
Code:
#pragma once
#include <iostream>
class CInterfaceNetSender
{
private: char pad_0000[8504]; //0x0000 unsigned int GuildSkillPoints; //0x2138 char pad_2140[8]; //0x213C std::wstring GuildName; //0x2140 std::wstring CharName; //0x2160
public: void DonateGuildPoints(unsigned int GP);
};
CInterfaceNetSender.cpp:
Code:
#define GP_LIMIT 0x7FFFFFFF
void CInterfaceNetSender::DonateGuildPoints(unsigned int GP)
{ if (GuildSkillPoints == GP_LIMIT) { CGInterface* g_interface = CGInterface::GetInterface(); if (g_interface) { g_interface->HandleSystemMessages(1, L"You have reached maximum limit of guild skills points."); g_interface->ShowBlueNotify(L"You have reached maximum limit of guild skills points."); } } else { unsigned int TotalGP = GuildSkillPoints + GP; if (TotalGP > GP_LIMIT && GuildSkillPoints < GP_LIMIT) GP = GP_LIMIT - GuildSkillPoints; reinterpret_cast<void(__thiscall*)(CInterfaceNetSender*, unsigned int)>(0x0081FAB0)(this, GP); }
}
A small hook of flo's:
Code:
replaceOffset(0x0070BCF2, addr_from_this(&CInterfaceNetSender::DonateGuildPoints));
Ve işte bu, iyi şanslar.
Teşekkürler: florian0 , #HB
Moderatör tarafında düzenlendi: