PDA

View Full Version : |Source| Fix view ItemTooltip Exe+acc+socket



megaman
07/08/2020, 09:03 PM
ANTES:
[Only registered and activated users can see links]

DEPOIS:
[Only registered and activated users can see links]

**Hidden Content: Check the thread to see hidden data.**

Créditos:
takumi12

comelon666
11/08/2020, 08:42 PM
desculpe a ignorância, para onde vai esse código?

LorenStudio
11/08/2020, 09:31 PM
desculpe a ignorância, para onde vai esse código?

Teste dessa forma
main.cpp:
gFixSocket.Load();
.h:

#pragma once#include "stdafx.h"


class FixSocket {

public:
void Load();
// ----


}; extern FixSocket gFixSocket;
cpp:

#include "stdafx.h"#include "FixSocket.h"
#include "Util.h"










FixSocket gFixSocket;


void __declspec(naked) ItemTooltipRender()
{
static DWORD Addr = 0x007E5CB6;
static DWORD Addr_Exc = 0;
static DWORD Addr_Acc = 0;


_asm
{


MOV ECX, DWORD PTR SS : [EBP + 0x10]
MOVZX EAX,BYTE PTR DS:[ECX+0x17]
MOV Addr_Exc, EAX
MOVZX EDX,BYTE PTR DS:[ECX+0x18]
MOV Addr_Acc, EDX


}


if(Addr_Exc >= 1 && Addr_Acc >= 1)
{
_asm
{
PUSH 1 ; /Arg7 = 00000001
PUSH 0 ; |Arg6 = 00000000
PUSH 3 ; |Arg5 = 00000003
PUSH 0 ; |Arg4 = 00000000
MOV EAX,DWORD PTR SS:[EBP-0x74] ; |
PUSH EAX ; |Arg3
MOV ECX,DWORD PTR SS:[EBP+0xC] ; |
//ADD ECX, 120
PUSH 0x5 ; |Arg2
MOV EDX,DWORD PTR SS:[EBP+0x8] ; |
PUSH EDX ; |Arg1
JMP [Addr]
}
}
else
{
_asm
{
PUSH 1 ; /Arg7 = 00000001
PUSH 0 ; |Arg6 = 00000000
PUSH 3 ; |Arg5 = 00000003
PUSH 0 ; |Arg4 = 00000000
MOV EAX,DWORD PTR SS:[EBP-0x74] ; |
PUSH EAX ; |Arg3
MOV ECX,DWORD PTR SS:[EBP+0xC] ; |
//ADD ECX, 120
PUSH ECX ; |Arg2
MOV EDX,DWORD PTR SS:[EBP+0x8] ; |
PUSH EDX ; |Arg1
JMP [Addr]
}
}
}




void FixSocket:: Load()
{
SetCompleteHook(0xE9, 0x007E5CA2, &ItemTooltipRender);
}

MFalmeida
13/08/2020, 01:01 AM
Parabéns ótimo trabalho e continue assim com seu esforço e dedicação no caminho certo

comelon666
13/08/2020, 01:31 PM
muito obrigado irmão, funciona perfeito assim.

zerocallitp
02/01/2021, 10:34 PM
Cara, não consigo fazer isso funcionar de jeito nenhum, acho que não funciona pra 1.04.09 (season 8) muemu louis tb.. to tentando colocar na source s8 upd13 mas não tem jeito .. talvez eu esteja fazendo errado tb.. mas se alguém souber senão funciona em season 8 me da um alô :)

Criei um arquivo FixSocket.h


#pragma once
#include "stdafx.h"

class FixSocket {
public:
void Load();
// ----


}; extern FixSocket gFixSocket;


Criei um arquivo FixSocket.cpp

#include "stdafx.h"#include "FixSocket.h"
#include "Util.h"




FixSocket gFixSocket;




void __declspec(naked) ItemTooltipRender()
{
static DWORD Addr = 0x007E5CB6;
static DWORD Addr_Exc = 0;
static DWORD Addr_Acc = 0;




_asm
{




MOV ECX, DWORD PTR SS : [EBP + 0x10]
MOVZX EAX,BYTE PTR DS:[ECX+0x17]
MOV Addr_Exc, EAX
MOVZX EDX,BYTE PTR DS:[ECX+0x18]
MOV Addr_Acc, EDX




}




if(Addr_Exc >= 1 && Addr_Acc >= 1)
{
_asm
{
PUSH 1 ; /Arg7 = 00000001
PUSH 0 ; |Arg6 = 00000000
PUSH 3 ; |Arg5 = 00000003
PUSH 0 ; |Arg4 = 00000000
MOV EAX,DWORD PTR SS:[EBP-0x74] ; |
PUSH EAX ; |Arg3
MOV ECX,DWORD PTR SS:[EBP+0xC] ; |
//ADD ECX, 120
PUSH 0x5 ; |Arg2
MOV EDX,DWORD PTR SS:[EBP+0x8] ; |
PUSH EDX ; |Arg1
JMP [Addr]
}
}
else
{
_asm
{
PUSH 1 ; /Arg7 = 00000001
PUSH 0 ; |Arg6 = 00000000
PUSH 3 ; |Arg5 = 00000003
PUSH 0 ; |Arg4 = 00000000
MOV EAX,DWORD PTR SS:[EBP-0x74] ; |
PUSH EAX ; |Arg3
MOV ECX,DWORD PTR SS:[EBP+0xC] ; |
//ADD ECX, 120
PUSH ECX ; |Arg2
MOV EDX,DWORD PTR SS:[EBP+0x8] ; |
PUSH EDX ; |Arg1
JMP [Addr]
}
}
}


void FixSocket:: Load()
{
SetCompleteHook(0xE9, 0x007E5CA2, &ItemTooltipRender);
}

e criei o que acredito ser uma chamada no arquivo main.cpp


gCustomMonster.Load(gProtect.m_MainInfo.CustomMons ters);

gNPCName.Load(gProtect.m_MainInfo.CustomNPCName);


gCustomGloves.Load(gProtect.m_MainInfo.CustomGlove s);


InitCommon();


gFixSocket.Load(); //iniciando o fix de items socket+exe+set view


InitHackCheck();


InitItem();


InitJewel();


InitMemoryProtection();

Me digam aew onde eu estou errando, ou esse sistema não funciona pra 1.04.09? (season8)

Maykon
02/01/2021, 11:09 PM
Você precisa verificar os offsets/asm do seu main, sabe dizer para qual main foi feito a correção ?

Denis Alves
03/01/2021, 02:20 AM
Cara, não consigo fazer isso funcionar de jeito nenhum, acho que não funciona pra 1.04.09 (season 8) muemu louis tb.. to tentando colocar na source s8 upd13 mas não tem jeito .. talvez eu esteja fazendo errado tb.. mas se alguém souber senão funciona em season 8 me da um alô :)

Criei um arquivo FixSocket.h


Criei um arquivo FixSocket.cpp

#include "stdafx.h"#include "FixSocket.h"
#include "Util.h"




FixSocket gFixSocket;




void __declspec(naked) ItemTooltipRender()
{
static DWORD Addr = 0x007E5CB6;
static DWORD Addr_Exc = 0;
static DWORD Addr_Acc = 0;




_asm
{




MOV ECX, DWORD PTR SS : [EBP + 0x10]
MOVZX EAX,BYTE PTR DS:[ECX+0x17]
MOV Addr_Exc, EAX
MOVZX EDX,BYTE PTR DS:[ECX+0x18]
MOV Addr_Acc, EDX




}




if(Addr_Exc >= 1 && Addr_Acc >= 1)
{
_asm
{
PUSH 1 ; /Arg7 = 00000001
PUSH 0 ; |Arg6 = 00000000
PUSH 3 ; |Arg5 = 00000003
PUSH 0 ; |Arg4 = 00000000
MOV EAX,DWORD PTR SS:[EBP-0x74] ; |
PUSH EAX ; |Arg3
MOV ECX,DWORD PTR SS:[EBP+0xC] ; |
//ADD ECX, 120
PUSH 0x5 ; |Arg2
MOV EDX,DWORD PTR SS:[EBP+0x8] ; |
PUSH EDX ; |Arg1
JMP [Addr]
}
}
else
{
_asm
{
PUSH 1 ; /Arg7 = 00000001
PUSH 0 ; |Arg6 = 00000000
PUSH 3 ; |Arg5 = 00000003
PUSH 0 ; |Arg4 = 00000000
MOV EAX,DWORD PTR SS:[EBP-0x74] ; |
PUSH EAX ; |Arg3
MOV ECX,DWORD PTR SS:[EBP+0xC] ; |
//ADD ECX, 120
PUSH ECX ; |Arg2
MOV EDX,DWORD PTR SS:[EBP+0x8] ; |
PUSH EDX ; |Arg1
JMP [Addr]
}
}
}


void FixSocket:: Load()
{
SetCompleteHook(0xE9, 0x007E5CA2, &ItemTooltipRender);
}

e criei o que acredito ser uma chamada no arquivo main.cpp


gCustomMonster.Load(gProtect.m_MainInfo.CustomMons ters);

gNPCName.Load(gProtect.m_MainInfo.CustomNPCName);


gCustomGloves.Load(gProtect.m_MainInfo.CustomGlove s);


InitCommon();


gFixSocket.Load(); //iniciando o fix de items socket+exe+set view


InitHackCheck();


InitItem();


InitJewel();


InitMemoryProtection();

Me digam aew onde eu estou errando, ou esse sistema não funciona pra 1.04.09? (season8)

Funcionar, funciona. Porém é necessário verificar os offsets, pois mudam já que é um sistema para main 1.04.05, e ver se as funções terão alguma diferença para que possa adaptar

zerocallitp
03/01/2021, 02:50 PM
Você precisa verificar os offsets/asm do seu main, sabe dizer para qual main foi feito a correção ?
Acredito que pelas imagens ali em cima seja season6 .. mas dai certinho qual versao nao sei dizer.

Maykon
04/01/2021, 02:24 AM
Acredito que pelas imagens ali em cima seja season6 .. mas dai certinho qual versao nao sei dizer.

Me adiciona no Skype que eu ajudo!