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