bom esse código foi postado pelo Nemesis há muito tempo eu apenas mudei os offsets para o main 1.05D,mas pra ele ser 100% funcional precisaria fixa o Pet Moviment,MakePreview,Dessipação,HP Bar e Posição no inventário!
eu ja fixei o Moviment,Dessipação,HP Bar,Posição no inventário e size inventário.... mas falta fixa ainda o MakePreview e a função de moviment q eu criei esta apresentando um bug,ela está duplicando o movimento e passando para tdos as montarias como podem ver no video!
vou deixa a source pra add new pet,mas minha função de moviment, quem consegui fixa o MakePreview e tira o bug do moviment irá ajudar mto
PetHook.h
Código:
#define ItemId(x, y) ((x * 512) + y)
#define pPreviewPetThis *(DWORD*)0x0079B9D48
#define LODWORD(h) ((DWORD)(__int64(h) & __int64(0xffffffff)))
enum eBugType
{
New_Pet= 7551,
};
typedef void (__thiscall *ObjCreatePet)(int ItemId);
extern ObjCreatePet gObjCreatePet;
// --
typedef int (__cdecl *ObjCreateBug)(int BugId, int Arg2, int Arg3, int Arg4, int Arg5);
extern ObjCreateBug gObjCreateBug;
// --
void gObjCreatePetExHook();
PetHook.cpp
Código:
#include "stdafx.h"
#include "PetHook.h"
#include "Util.h"
#include "Defines.h"
#include "TMemory.h"
#include "ToolKit.h"
ObjCreateBug gObjCreateBug = (ObjCreateBug)0x004A8271;
ObjCreatePet gObjCreatePet = (ObjCreatePet)0x00734652;
void gObjCreatePetEx(int ItemId)
{
int ItemSwitch = *(WORD*)ItemId;
int PetPreview = LODWORD(pPreviewPetThis) + 612;
// ----
switch (ItemSwitch)
{
case ItemId(13, 76):
gObjCreateBug(eBugType::New_Pet, PetPreview + 252, PetPreview, 0, 0);
break;
// ---
}
gObjCreatePet(ItemId);
}
__declspec(naked) void PetMoviment()
{
_asm
{
CMP DWORD PTR DS:[EAX+0x030],0x1D33
JE SHORT Pet
Pet:
CMP DWORD PTR DS:[EAX+0x030],New_Pet
JE SHORT Exit
Exit:
mov eax,0x004A9D22
jmp eax
}
}
void gObjCreatePetExHook()
{
SetHook((LPVOID)gObjCreatePetEx,(LPVOID)0x007155DE ,ASM::CALL);
SetHook((LPVOID)gObjCreatePetEx,(LPVOID)0x00732A1A ,ASM::CALL);
ToolKit.WriteJmp(0x004A9D09,(DWORD)&PetMoviment);
}
Main.cpp
#include "PetHook.h"
gObjCreatePetExHook();
Demonstração NewPet mais bug MakePreview e Moviment
Créditos
Nemesis
Boris160