Hello beloved, dead community,
i recently achieved something i want to share with you.
Video demonstration:
Behind the scenes: [Only registered and activated users can see links. Click Here To Register...]
Sending notifications by code
The code behind the magic
Community Challenge
Check out the addresses, reconstruct the types and achieve a functioning code like this ;)
Important notes, as always
Microsoft STL will try to TROLL you. Be aware of that. Silkroad was BUILD on VC80 aka. Visual Studio 2005. Any newer compiler CAN AND WILL BREAK this code. Compiling on DEBUG will BREAK your code, no matter what you expected it to do. Always compile on RELEASE or you will find yourself wasting your valuable lifetime tracing BUG that wasn't even your fault (not that that would have happened to me ...)
i recently achieved something i want to share with you.
Video demonstration:
|
|
Sending notifications by code
Code:
std::wstring mymessage(L"Hello World, epvp"); g_CGInterface->ShowMessage_GREEN(mymessage); g_CGInterface->ShowMessage_BLUE(mymessage); g_CGInterface->ShowMessage_PINK(mymessage);
Code:
// Header
class CGInterface {
void ShowMessage_BLUE(std::wstring &msg);
void ShowMessage_PINK(std::wstring &msg);
void ShowMessage_GREEN(std::wstring &msg);
}
#define g_CGInterface (*(CGInterface**)0x0110F80C)
// Code
void CGInterface::ShowMessage_BLUE(std::wstring& msg)
{
reinterpret_cast<void (__thiscall *)(CGInterface*, std::wstring *)>(0x0077B580)(this, &msg);
}
void CGInterface::ShowMessage_PINK(std::wstring& msg)
{
reinterpret_cast<void (__thiscall *)(CGInterface*, std::wstring *)>(0x00777BF0)(this, &msg);
}
void CGInterface::ShowMessage_GREEN(std::wstring& msg)
{
reinterpret_cast<void (__thiscall *)(CGInterface*, std::wstring *)>(0x0077B5B0)(this, &msg);
}
Community Challenge
Check out the addresses, reconstruct the types and achieve a functioning code like this ;)
Code:
void CGInterface::ShowMessage_GREEN(std::wstring& msg)
{
if (msg.length())
{
CIFNotify *notify = reinterpret_cast<CIFNotify*>(this->m_IFRegion_36C.GetByID(GDR_UPDATE_QUEST_INFO, 1));
notify->ShowMessage(&msg);
}
}
Microsoft STL will try to TROLL you. Be aware of that. Silkroad was BUILD on VC80 aka. Visual Studio 2005. Any newer compiler CAN AND WILL BREAK this code. Compiling on DEBUG will BREAK your code, no matter what you expected it to do. Always compile on RELEASE or you will find yourself wasting your valuable lifetime tracing BUG that wasn't even your fault (not that that would have happened to me ...)