Skilled Illusionist
- Joined
- Apr 7, 2012
- Messages
- 319
- Reaction score
- 7
Can you do it for Season 12 IGCN?
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!Season 9 main + IGC released DLL source
"Hell" ... Credits
VICIOUS - Me
IGCN - released DLL source
Webzen Season 9 Main
Fix 0.2 :
Fix 0.1 :
- Fix broken OnConstructs
- Add missing hide Reset/GReset Boxes funtions.
Updated Link :
- Fix editable textarea.
- Add change text MLV , Reset, GReset
You must be registered to see links
(Script update, update red lines in CharacterFrame.cpp code)
1st. Paste this new UI file to Data\Interface\GFx
2nd. Coding :
(create) CharacterFrame.h
Code:#pragma once #define HOOK_SET_LEVEL_TEXT 0x009A90B1 #define JMPBACK_SET_LEVEL_TEXT 0x009A90CA #define pInvokeUI ((DWORD(__stdcall*)(DWORD pFrame, char * method, char * format ...)) 0x0095A6EA) void SetLevelResetUI(); extern int iResetVisibleUI; extern int iGResetVisibleUI; extern int iResetUI; extern int iGResetUI;
(create) CharacterFrame.cpp
Code:#include "stdafx.h" #include "CharacterFrame.h" char szFormat_1[4] = "%s"; char szFormat_2[4] = "%d"; [COLOR=#ff0000]char szFormat_3[12] = "%s %s %s";[/COLOR] char szSetLevel[16] = "SetLevelText"; char szSetMLevel[16] = "SetMLevelText"; char szSetReset[16] = "SetResetText"; char szSetGReset[16] = "SetGResetText"; char szSetResetVisible[20] = "SetResetVisible"; char szSetGResetVisible[20] = "SetGResetVisible"; int iResetVisibleUI = 1; //0:false 1:true int iGResetVisibleUI = 1; DWORD pCFrame; int iLevel = 0; int iMLevel = 0; int iResetUI = 0; int iGResetUI = 0; char buffer[20]; [COLOR=#ff0000]int iInitOnce = 0;[/COLOR] [COLOR=#ff0000]char szInitTextExtended[20] = "InitTextExtended";[/COLOR] [COLOR=#ff0000] [/COLOR] [COLOR=#ff0000]char szLabelMLevel[] = "MLV"; //Change text here, but don't make it too long, won't fit the box.[/COLOR] [COLOR=#ff0000]char szLabelReset[] = "Reset";[/COLOR] [COLOR=#ff0000]char szLabelGReset[] = "GReset";[/COLOR] void __declspec(naked) SetLevelResetUI() { _asm { mov eax, 0x0851ACC4; mov eax, [eax]; movzx eax, word ptr[eax + 0x10C]; mov iLevel, eax; mov eax, 0x08B97850 movzx eax, word ptr[eax]; mov iMLevel, eax; mov edx, 0x00969F14; call edx; mov ecx, eax; mov edx, 0x007F7818; call edx; mov pCFrame, eax; } if(pCFrame) { [COLOR=#ff0000] if (!iInitOnce) {[/COLOR] [COLOR=#ff0000] iInitOnce = 1;[/COLOR] [COLOR=#ff0000] pInvokeUI(pCFrame, szInitTextExtended, szFormat_3, szLabelMLevel, szLabelReset, szLabelGReset);[/COLOR] [COLOR=#ff0000] }[/COLOR] sprintf(buffer, "%d", iLevel); pInvokeUI(pCFrame, szSetLevel, szFormat_1, buffer); sprintf(buffer, "%d", iMLevel); pInvokeUI(pCFrame, szSetMLevel, szFormat_1, buffer); if (iResetVisibleUI) { sprintf(buffer, "%d", iResetUI); pInvokeUI(pCFrame, szSetReset, szFormat_1, buffer); } else { pInvokeUI(pCFrame, szSetResetVisible, szFormat_2, 0); } if (iGResetVisibleUI) { sprintf(buffer, "%d", iGResetUI); pInvokeUI(pCFrame, szSetGReset, szFormat_1, buffer); } else { pInvokeUI(pCFrame, szSetGResetVisible, szFormat_2, 0); } } _asm { mov edx, JMPBACK_SET_LEVEL_TEXT; jmp edx; } }
(Edit) DllMain.cpp
Code:#include "CharacterFrame.h" //... void SetHook() { HookThis((DWORD)&SetLevelResetUI, HOOK_SET_LEVEL_TEXT); //... }
(Edit) Protocol.cpp
Code:#include "CharacterFrame.h" //... bool CliProtocolCore(LPBYTE aRecv, BYTE ProtoNum, int len, bool Encrypt) { switch(ProtoNum) { //... case 0xFA: { if (aRecv[0] == 0xC1) { PMSG_DEFAULT2 * lpMsg2 = (PMSG_DEFAULT2 *)aRecv; switch (lpMsg2->subcode) { case 0x0B: //IGCN already coded this on GameServer (they used it for Season 6, but still keep in file till now (S13)) { struct PMSG_RESET_INGAME_SEND { PBMSG_HEAD2 h; WORD Resets; }; //Should move this struct to your header file. PMSG_RESET_INGAME_SEND * pRSMsg = (PMSG_RESET_INGAME_SEND *)aRecv; iResetUI = pRSMsg->Resets; iResetVisibleUI = 1; break; } } } } }
@solarismu @thevjfla After apply the Visual Fix for the S9 in the GameServer, DataServer and Client Side .dllOh, let me try compile in the dll and try.
you do any change in theprotocol of gs?
EDIT:
What im doing wrong?
In the DB the char have 176000 free leveluppoint, i have a little script for write correct lvluppoints but dont work with this main, can you share me the correct asm code for the offset 0x009a92e2 ?