Initiate Mage
- Joined
- Aug 31, 2019
- Messages
- 4
- Reaction score
- 0
Ahh i see! It'd be awesome if you can do that and share it!
Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!
Join Today!Can't multi-client?
bool Hook_CreateMutexA(bool bEnable)
{
static auto _CreateMutexA = decltype(&CreateMutexA)(GetFuncAddress("KERNEL32", "CreateMutexA"));
decltype(&CreateMutexA) Hook = [](LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCSTR lpName) -> HANDLE
{
if (lpName && strstr(lpName, "WvsClientMtx"))
{
#ifdef _DEBUG
Log("MultiClient: Faking %s", lpName);
#endif
return (HANDLE)0xBADF00D;
}
return _CreateMutexA(lpMutexAttributes, bInitialOwner, lpName);
};
return SetHook(bEnable, reinterpret_cast<void**>(&_CreateMutexA), Hook);
}
slap this witch in there
Code:bool Hook_CreateMutexA(bool bEnable) { static auto _CreateMutexA = decltype(&CreateMutexA)(GetFuncAddress("KERNEL32", "CreateMutexA")); decltype(&CreateMutexA) Hook = [](LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCSTR lpName) -> HANDLE { if (lpName && strstr(lpName, "WvsClientMtx")) { #ifdef _DEBUG Log("MultiClient: Faking %s", lpName); #endif return (HANDLE)0xBADF00D; } return _CreateMutexA(lpMutexAttributes, bInitialOwner, lpName); }; return SetHook(bEnable, reinterpret_cast<void**>(&_CreateMutexA), Hook); }
slap this witch in there
Code:bool Hook_CreateMutexA(bool bEnable) { static auto _CreateMutexA = decltype(&CreateMutexA)(GetFuncAddress("KERNEL32", "CreateMutexA")); decltype(&CreateMutexA) Hook = [](LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCSTR lpName) -> HANDLE { if (lpName && strstr(lpName, "WvsClientMtx")) { #ifdef _DEBUG Log("MultiClient: Faking %s", lpName); #endif return (HANDLE)0xBADF00D; } return _CreateMutexA(lpMutexAttributes, bInitialOwner, lpName); }; return SetHook(bEnable, reinterpret_cast<void**>(&_CreateMutexA), Hook); }
Hey, I'm trying to follow "I want to connect to a server on another computer..." and everything is good until I go to press "Build". I just get a bunch of errors...am I missing something?
Lol sorry, I'm new to this. Didn't think that anyone would actually help me sift through these errors. Any help is much appreciated <3. (Hopefully I attached the errors correctly here)Well, it might help to post the errors you receive. No one can help you based off of just "a bunch of errors."
View attachment 165756
Lol sorry, I'm new to this. Didn't think that anyone would actually help me sift through these errors. Any help is much appreciated <3. (Hopefully I attached the errors correctly here)
View attachment 165756
Lol sorry, I'm new to this. Didn't think that anyone would actually help me sift through these errors. Any help is much appreciated <3. (Hopefully I attached the errors correctly here)
I didn't read the errors but the only errors you should ever get is if you didn't do the switching from debug to release and from x64 to x86 (or whatever it says in the guide)
Edit: So just finished helping someone who was getting errors on building, just to specify something, in the guide it says "3) Change from Debug x64 to Release x86 or you'll run into errors." That means to switch Debug to Release and switch x64 to x86. They're two different settings that are next to each other.
For anyone getting "NGS Initialization Error : 0x000...1 (1)
Run GameLauncher.exe normally, after it does its thing and fails to connect, it should start working.
slap this witch in there
Code:bool Hook_CreateMutexA(bool bEnable) { static auto _CreateMutexA = decltype(&CreateMutexA)(GetFuncAddress("KERNEL32", "CreateMutexA")); decltype(&CreateMutexA) Hook = [](LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCSTR lpName) -> HANDLE { if (lpName && strstr(lpName, "WvsClientMtx")) { #ifdef _DEBUG Log("MultiClient: Faking %s", lpName); #endif return (HANDLE)0xBADF00D; } return _CreateMutexA(lpMutexAttributes, bInitialOwner, lpName); }; return SetHook(bEnable, reinterpret_cast<void**>(&_CreateMutexA), Hook); }
Hi Sir, i saw this post and decided to give it a try into my Redirector. However it keeps hitting GetFuncAddress and i can't find any solutions online.. Please advise
LPVOID WINAPI GetFuncAddress(DWORD baseAddress, const char *func) { | |
IMAGE_DOS_HEADER *dos_header = reinterpret_cast<IMAGE_DOS_HEADER*>(baseAddress); | |
IMAGE_NT_HEADERS *nt_header = PIMAGE_NT_HEADERS(baseAddress + dos_header->e_lfanew); | |
DWORD export_rva = nt_header->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress; | |
if (export_rva == 0) { | |
return NULL; | |
} | |
PIMAGE_EXPORT_DIRECTORY img_export_dir = PIMAGE_EXPORT_DIRECTORY(baseAddress + export_rva); | |
PDWORD Address = (PDWORD)((LPBYTE)baseAddress + img_export_dir->AddressOfFunctions); | |
PDWORD Name = (PDWORD)((LPBYTE)baseAddress + img_export_dir->AddressOfNames); | |
PWORD Ordinal = (PWORD)((LPBYTE)baseAddress + img_export_dir->AddressOfNameOrdinals); | |
for (int i = 0; i < img_export_dir->AddressOfFunctions; i++) { | |
if (!strcmp(func, (char*)baseAddress + Name)) { |
I followed all the steps now in both threads https://forum.ragezone.com/f428/swordie-v176-server-setup-guide-1176727/ and http://forum.ragezone.com/f921/v176-client-bypass-1164436/
The server is up and running on Intellij with no errors.
The PC that I want to connect to the server with has Maplestory downloaded and the files fromYou must be registered to see linksreplaced in my folder (the link in the thread is broken so I had to use the one from this Discord). I've also completed "building the solution" to create a new Moonlight.dll with my public IP added into the corresponding line.
Now I'm not sure exactly how I'm supposed to connect to the server?
Could anyone re-upload 176Client.rar to mega please?
The link is dead.