re: [Release] Custom Character"C" UIPanel S9
Quote:
Originally Posted by
thevjfla
Oh, let me try compile in the dll and try.
you do any change in theprotocol of gs?
Yes... MUST sent Addpoints in dword instead of word. Do it by your own risk ^^ I'm watching WC right now. no support ^^
re: [Release] Custom Character"C" UIPanel S9
Quote:
Originally Posted by
solarismu
Yes... MUST sent Addpoints in dword instead of word. Do it by your own risk ^^ I'm watching WC right now. no support ^^
i do that, and the client reads fine the value, only dont show properly.
bro, im from argentina and now are playing hahaha
see u later, and thanx for all :D
re: [Release] Custom Character"C" UIPanel S9
Quote:
Originally Posted by
thevjfla
Oh, let me try compile in the dll and try.
you do any change in theprotocol of gs?
EDIT:
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 ?
Code:
#define HOOK_FIX_ADDPOINTS 0x9A92E2
#define JMPBACK_FIX_ADDPOINTS 0x9A92E2+0xC
extern int IGCAddPoints = 0; //will recv DWORD value from GameServer
void __declspec(naked) VicFixAddPoints()
{
_asm
{
mov eax, IGCAddPoints;
mov edx, JMPBACK_FIX_ADDPOINTS;
jmp edx;
}
}
re: [Release] Custom Character"C" UIPanel S9
Quote:
Originally Posted by
solarismu
Code:
#define HOOK_FIX_ADDPOINTS 0x9A92E2
#define JMPBACK_FIX_ADDPOINTS 0x9A92E2+0xC
extern int IGCAddPoints = 0; //will recv DWORD value from GameServer
void __declspec(naked) VicFixAddPoints()
{
_asm
{
mov eax, IGCAddPoints;
mov edx, JMPBACK_FIX_ADDPOINTS;
jmp edx;
}
}
i need to put the received lvl up points in IGCAddPoints from the protocol, realy?
but, with this asm the client dont starting, just load a little time the process and closes, dont write dmp or .log
// Fixed with SetCompleteHook :D
Edit2: Need to edit the structs in the GS and the DLL for parse the complete value of leveluppoints when the character loads, level up, addpoints and use /add commands
now working perfect, ty for all @solarismu <3
Re: [Release] Custom Character"C" UIPanel S9
Quote:
im comeback to experiment with s9 client. atm the leveluppoints shows perfect up to 65k
the only issue: when use /add dont update the leveluppoints, from the server comes correct value from C1 FA 0x90 proto but... how update the value on the hooked var?! xD
Edit GMMng.cpp in the 5 /add case adding GSProtocol.GCLevelUpMsgSend(aIndex, 0); for force the client to reload LevelUpPoints and fixed ^^
Re: [Release] Custom Character"C" UIPanel S9
Can you do it for Season 12 IGCN?
Re: [Release] Custom Character"C" UIPanel S9
Quote:
Originally Posted by
solarismu
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
Bro help me please
I convert the Ozg to Gfx file, how i can edit this gfx file?
i tried to rename to swf (edit in the notpad the 3 first letters to FWS) and use the Sothink swf decompiler, but no success =/
Can you help me?
Re: [Release] Custom Character"C" UIPanel S9
@Luis_br
Anyone got it for MuEmu (Xteam) s8?
Re: [Release] Custom Character"C" UIPanel S9
how change "MLV","Reset","Greset" to Chinese ?
Re: [Release] Custom Character"C" UIPanel S9
Re: [Release] Custom Character"C" UIPanel S9
still no one got it for s8? :/
Re: [Release] Custom Character"C" UIPanel S9
hmm, on s12 work? And pls update link for download @solarismu
Re: [Release] Custom Character"C" UIPanel S9