[Release] Custom Character"C" UIPanel S9
Season 9 main + IGC released DLL source
"Hell" ... Credits
VICIOUS - Me
IGCN - released DLL source
Webzen Season 9 Main
Fix 0.2 :
- Fix broken OnConstructs
- Add missing hide Reset/GReset Boxes funtions.
Fix 0.1 :
- Fix editable textarea.
- Add change text MLV , Reset, GReset
Updated Link : https://drive.google.com/open?id=1n4EnfrtnbtK_w7gbk9nXg_NsDNR50qhe
(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";
char szFormat_3[12] = "%s %s %s";
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];
int iInitOnce = 0;
char szInitTextExtended[20] = "InitTextExtended";
char szLabelMLevel[] = "MLV"; //Change text here, but don't make it too long, won't fit the box.
char szLabelReset[] = "Reset";
char szLabelGReset[] = "GReset";
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)
{
if (!iInitOnce) {
iInitOnce = 1;
pInvokeUI(pCFrame, szInitTextExtended, szFormat_3, szLabelMLevel, szLabelReset, szLabelGReset);
}
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;
}
}
}
}
}
https://i.imgur.com/noOmxUZ.jpg
re: [Release] Custom Character"C" UIPanel S9
re: [Release] Custom Character"C" UIPanel S9
Quote:
Originally Posted by
solarismu
Fixed, see the 1st post for new link & code change.
Let me know if there is any bug? or it just works
Perfect, tks pro
https://i.imgur.com/TNg0oYZ.png
re: [Release] Custom Character"C" UIPanel S9
*Updated link 0.20 :
Fix broken OnConstructs.
Add missing hide Reset/GReset funtions.
re: [Release] Custom Character"C" UIPanel S9
Quote:
Originally Posted by
solarismu
*Updated link 0.20 :
Fix broken OnConstructs.
Add missing hide Reset/GReset funtions.
Code:
char szLabelMLevel[] = "MLV";
You can edit this place can write 6 characters, such as "Master" is not! Currently, the client side only shows 4 characters. Thank you xD
re: [Release] Custom Character"C" UIPanel S9
how change "MLV","Reset","Greset" to Chinese ? can't support Chinese...lol
re: [Release] Custom Character"C" UIPanel S9
Great job.
@solarismu can you try to disable Season 6 UI "resizing". In S6 UI is flexible and it's changing for every resolution.
re: [Release] Custom Character"C" UIPanel S9
Bugs: high set level requirements is not working with this C panel, because server only see Normal LVL, and cant equip like 600lvl items
Re: Custom Character"C" UIPanel S9
Quote:
Originally Posted by
Forces
Bugs: high set level requirements is not working with this C panel, because server only see Normal LVL, and cant equip like 600lvl items
No item >400 lvl in season 9. That's your custom item, not from webzen/me. So dont call it bug. Fix it yourself man, I dont know how to fix that. :(- - - Updated - - -
Quote:
Originally Posted by
LandOfChaos
Great job. @
solarismu can you try to disable Season 6 UI "resizing". In S6 UI is flexible and it's changing for every resolution.
I dont work on season 6 anymore. You can try to ask someone who has client s6 source ^^
re: [Release] Custom Character"C" UIPanel S9
does it work for muemu s8?
re: [Release] Custom Character"C" UIPanel S9
Quote:
Originally Posted by
antoniodel
does it work for muemu s8?
UI file: should be ok
script + offsets : must change
re: [Release] Custom Character"C" UIPanel S9
Its possible fix the max level up points after 65k?
I need the offset for that, can help me? :D
re: [Release] Custom Character"C" UIPanel S9
Quote:
Originally Posted by
thevjfla
Its possible fix the max level up points after 65k?
I need the offset for that, can help me? :D
https://i.imgur.com/fRjVL6s.jpg
re: [Release] Custom Character"C" UIPanel S9
Oh, let me try compile in the dll and try.
you do any change in theprotocol of gs?
EDIT:
Quote:
Originally Posted by
solarismu
https://i.imgur.com/FPSDHfO.png
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 ?