-Victor-King- , ailsoncost , comelon666 , DangeR , DouglasRando , ethondevv , Genilson23 , hbapzyc , heroes1412 , kaisudo , KhongGianOL , LorenStudio , Malyk , quyanxu , richardjj , sosyjo , UltraViewer123 , Unico , wagnii , Wilian Ramalho , wongda , xiyuan126 , yejiunayangluo , zerocallitp
desculpe a ignorância, para onde vai esse código?
Teste dessa forma
main.cpp:
gFixSocket.Load();
.h:
cpp:#pragma once#include "stdafx.h"
class FixSocket {
public:
void Load();
// ----
}; extern FixSocket gFixSocket;
#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);
}
Last edited by LorenStudio; 11/08/2020 at 09:38 PM.
Parabéns ótimo trabalho e continue assim com seu esforço e dedicação no caminho certo
Nova Era; chega em Breve
MuOnline é Paixão
muito obrigado irmão, funciona perfeito assim.
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#pragma once
#include "stdafx.h"
class FixSocket {
public:
void Load();
// ----
}; extern FixSocket gFixSocket;
e criei o que acredito ser uma chamada no arquivo main.cppCódigo:#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); }
Me digam aew onde eu estou errando, ou esse sistema não funciona pra 1.04.09? (season8)Código:gCustomMonster.Load(gProtect.m_MainInfo.CustomMonsters); gNPCName.Load(gProtect.m_MainInfo.CustomNPCName); gCustomGloves.Load(gProtect.m_MainInfo.CustomGloves); InitCommon(); gFixSocket.Load(); //iniciando o fix de items socket+exe+set view InitHackCheck(); InitItem(); InitJewel(); InitMemoryProtection();
Sabedoria é uma constante! Keep Learning!
Você precisa verificar os offsets/asm do seu main, sabe dizer para qual main foi feito a correção ?
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 adaptarCara, 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
e criei o que acredito ser uma chamada no arquivo main.cppCódigo:#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); }
Me digam aew onde eu estou errando, ou esse sistema não funciona pra 1.04.09? (season8)Código:gCustomMonster.Load(gProtect.m_MainInfo.CustomMonsters); gNPCName.Load(gProtect.m_MainInfo.CustomNPCName); gCustomGloves.Load(gProtect.m_MainInfo.CustomGloves); InitCommon(); gFixSocket.Load(); //iniciando o fix de items socket+exe+set view InitHackCheck(); InitItem(); InitJewel(); InitMemoryProtection();