PDA

View Full Version : |Source| Add NewPets Emu Season 4



boris160
02/11/2017, 11:36 AM
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 :ott1

PetHook.h


#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


#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


[Only registered and activated users can see links]


Créditos
Nemesis
Boris160

Mentor
02/11/2017, 11:42 AM
muito bom boris160, espero que alguém que saiba o fix compartilhe isso, pois vejo que você vem sempre compartilhando custons da sua source.
Agradeço pela contribuição que você vem dando ao fórum, caso eu consiga o fix estarei compartilhando ;)

Abraço!

boris160
02/11/2017, 11:52 AM
muito bom boris160, espero que alguém que saiba o fix compartilhe isso, pois vejo que você vem sempre compartilhando custons da sua source.
Agradeço pela contribuição que você vem dando ao fórum, caso eu consiga o fix estarei compartilhando ;)

Abraço!

É nois :ott

louis
02/11/2017, 06:53 PM
o erro está na função:

gObjCreateBug(

tem que ser

gObjCreateSemBug(

kkkkkkkkkkkkk

boris160
02/11/2017, 07:11 PM
o erro está na função:

gObjCreateBug(

tem que ser

gObjCreateSemBug(

kkkkkkkkkkkkk

Mds kkkkkk

laulinh2
04/11/2017, 12:41 AM
building visual c++ 2013?

Deilan
23/11/2017, 10:42 PM
e o Sethook ??
também o
Define.h
TMemory.h

Malyk
25/11/2017, 01:03 PM
Alguém tem os offsets para o main 97D?

louis
08/01/2018, 08:02 AM
Normalmente quando algo some quando muda de mapa é pq está faltando codar algo no gs e não no cliente, igual as customwings, se você não add no lado do servidor ela some ao move, vou tentar resolver e posto a solução.

18 minutes:------- Atualizado -------

Não testei ainda mais procure por

else if(TempInventory[8] == 80)

na source do muemu, nessa parte deve ser adicionados os novos pets para eles não sumirem...Sigam exemplo das customwings!

boris160
09/01/2018, 05:31 AM
Normalmente quando algo some quando muda de mapa é pq está faltando codar algo no gs e não no cliente, igual as customwings, se você não add no lado do servidor ela some ao move, vou tentar resolver e posto a solução.

18 minutes:------- Atualizado -------

Não testei ainda mais procure por

else if(TempInventory[8] == 80)

na source do muemu, nessa parte deve ser adicionados os novos pets para eles não sumirem...Sigam exemplo das customwings!

Deu certo?acho q o bug visual ao mover mapa ou reloga é no main mesmo,deve ser fixado o MakePreview igual das Wings

louis
09/01/2018, 08:47 AM
Então na verdade meu problema é outro, usei a source que passou, chequie todos os offsets e estão corretos, quando eu coloco o pet ele aparece, mais quando tiro ele não some e também ao por ou remover não aparece a barra de hp do pet, ai tenho que mover de mapa para aparecer ou sumir o pet, acabei desistindo por enquanto kk

Malyk
09/01/2018, 09:39 AM
boris160 será que pode me passar seu cliente? eu também estou trabalhando nessa source a dias, mais me falta add o Pet que eu não sei como faz é da mesma forma que adicionar Wings?

boris160
09/01/2018, 10:58 AM
Então na verdade meu problema é outro, usei a source que passou, chequie todos os offsets e estão corretos, quando eu coloco o pet ele aparece, mais quando tiro ele não some e também ao por ou remover não aparece a barra de hp do pet, ai tenho que mover de mapa para aparecer ou sumir o pet, acabei desistindo por enquanto kk

Esse fix do pet hp e pra ele sumi quando remover eu tenho a source,fiz tbm pra posição do pet no inventário,vams tentar fixa o make preview q eu passo o resto


boris160 será que pode me passar seu cliente? eu também estou trabalhando nessa source a dias, mais me falta add o Pet que eu não sei como faz é da mesma forma que adicionar Wings?

É mesmo processo pra add um item vc só vai por a mesma index q vc coloca na source

louis
09/01/2018, 03:23 PM
A sim a source do hp tb tenho.. Só não tenho a do remover o pet, ai desanimei kk

boris160
09/01/2018, 03:39 PM
Se quiser passo ela

louis
09/01/2018, 03:45 PM
Aceito sim pq senão vou mexer em outras coisas pq perdi muito tempo nisso ontem kkk

Malyk
09/01/2018, 04:01 PM
boris160 louis Vão compartilhar o Código com todos ou entre vocês? :) também tenho interesse em aprender adicionar essa custom! é já Tô quase meio caminho tbm fiz algumas coisas pelo codigo do ZabinoOO da S6 e atualizei os offsets pra esses aqui já que aqui o Dev e na S4.

boris160
09/01/2018, 05:00 PM
louis Malyk

decipação

Pets.h


#ifndef __PETS_H__
#define __PETS_H__


#define ItemId(x, y) ((x * 512) + y)


class Pets
{
public:
void Load();
// ----
static bool ResetPetPreviewEx(int ItemId);
};


extern Pets gPets;


#endif


Pets.cpp


#include "stdafx.h"
#include "Pets.h"
#include "TMemory.h"
#include "Defines.h"


Pets gPets;


bool Pets::ResetPetPreviewEx(int ItemId)
{
bool Result;
// ----
if (ItemId)
Result = *(WORD*)ItemId == ItemId(13,0) //Angel
|| *(WORD*)ItemId == ItemId(13,1) //Satan
|| *(WORD*)ItemId == ItemId(13,2) //Unicorn
|| *(WORD*)ItemId == ItemId(13,3) //Dinorant
|| *(WORD*)ItemId == ItemId(13,4) //Dark Horse
|| *(WORD*)ItemId == ItemId(13,5) //Dark Raven
|| *(WORD*)ItemId == ItemId(13,37) //Fenrir
|| *(WORD*)ItemId == ItemId(13,76);
else
Result = 0;
return Result;
}


void Pets::Load()
{
SetOp((LPVOID)0x00734B9F,this->ResetPetPreviewEx,ASM::CALL);
}


HP Bar Pet

HPPet.h


#define SearchLineText ((int(__thiscall*)(LPVOID This, int a2)) 0x4024D0)
#define SearchLineTextThis 0x79F5190




#define CopyText ((int(__cdecl*)(int a1,int a2)) 0x4B23E0)
#define sub_7169E9 ((int(__thiscall*)(LPVOID* This, int a2,int a3,int a4,int a5,int a6,int a7)) 0x07169E9)


class PETS
{
public:
char __thiscall PetBarHP(int a1, int a2);
void PetAddEffect();
void Hook();




};extern PETS cPets;


HPPet.cpp


#include "stdafx.h"
#include "HPPet.h"
#include "Monster.h"
#include "Util.h"


PETS cPets;
char PETS::PetBarHP(int a1, int a2)
{
int v2;
[Only registered and activated users can see links]
[Only registered and activated users can see links]




OBJECTSTRUCT * gObj = (OBJECTSTRUCT *)( *(DWORD*)0x79B9D48);




if (gObj->objPet < 7475 || gObj->objPet > 7479
&& gObj->objPet != 0x1D73
&& gObj->objPet != 0x1D74
&& gObj->objPet != 0x1D76
&& gObj->objPet != 0x1D58
&& gObj->objPet != 0x1D7F)
{
result = 0;
}
else
{


switch ( gObj->objPet )
{
case 0x1D33:
v2 = SearchLineText((LPVOID)SearchLineTextThis,353);
CopyText((int)&PetName, v2);
break;
case 0x1D34:
v2 = SearchLineText((LPVOID)SearchLineTextThis,354);
CopyText((int)&PetName, v2);
break;
case 0x1D35:
v2 = SearchLineText((LPVOID)SearchLineTextThis,355);
CopyText((int)&PetName, v2);
break;
case 0x1D36:
v2 = SearchLineText((LPVOID)SearchLineTextThis,354);
CopyText((int)&PetName, v2);
break;
case 0x1D37:
v2 = SearchLineText((LPVOID)SearchLineTextThis,1187);
CopyText((int)&PetName, v2);
break;
case 0x1D58:
v2 = SearchLineText((LPVOID)SearchLineTextThis,1916);
CopyText((int)&PetName, v2);
break;
case 0x1D7F:
v2 = SearchLineText((LPVOID)SearchLineTextThis,2118);
CopyText((int)&PetName, v2);
break;
case 0x1D73:
CopyText((int)&PetName, *(DWORD*)0x79FAE58 + 0x89D00);
break;
case 0x1D74:
CopyText((int)&PetName, *(DWORD*)0x79FAE58 + 0x89D54);
break;
case 0x1D76:
CopyText((int)&PetName, *(DWORD*)0x79FAE58 + 0x89DFC);
break;
default:
break;
}
sub_7169E9((LPVOID*)this,a1, a2, (int)&PetName, *(BYTE *)(*(DWORD*)0x79FAE5C + 0x13DE), 0xFF, 0);
result = 1;
}
return result;
}


void PETS::Hook()
{


SetCompleteHook(0xE9,0x0716CF3,&PETS::PetBarHP);
}


Main.cpp


gPets.Load();

cPets.Hook();


4 minutes:------- Atualizado -------

Posição do pet no inventório


void __declspec(naked) PetPosition()
{
_asm
{
CMP ESI,0x1D76
JNZ Pet


FLD DWORD PTR SS:[ESP+0x18]
FSUB DWORD PTR DS:[0x814498]
MOV DWORD PTR DS:[0x7B544F8],0x43870000
MOV DWORD PTR DS:[0x7B544FC],0x42200000
FSTP DWORD PTR SS:[ESP+0x18]
mov eax, 0x00591B2F


Pet :


CMP ESI,New_Pet
JNZ Return


FLD DWORD PTR SS:[ESP+0x18]
FSUB DWORD PTR DS:[0x814498]
MOV DWORD PTR DS:[0x7B544F8],0x43870000
MOV DWORD PTR DS:[0x7B544FC],0x42200000
FSTP DWORD PTR SS:[ESP+0x18]
mov eax, 0x00591B2F


Return :


mov eax,0x00592B09;
jmp eax


}
}
//hook
ToolKit.WriteJmp(0x00592ADA,(DWORD)&PetPosition);

louis
09/01/2018, 06:26 PM
De volta aos trabalhos, se eu consegui eu mando pra vcs

1 53 minutes:------- Atualizado -------

[Only registered and activated users can see links]

Assim está certo?

Pq ao move não tenho problema, sempre moveu normal como falei, o problema era ao remover o mob, que está resolvido, se estiver tudo certo eu posto aqui o código complicado...coloquei o ID 200 no pet

Malyk
09/01/2018, 09:41 PM
Caramba cara nem acredito que funcionou, é assim mesmo louis, cara ainda bem que tô me inspirando em um ótimo programador, você me motivou a continuar meus estudo e aprender sozinho, quando postou aquela brincadeira programada do pão no post do Arcade, após isso procurei a source da MuEMu F-team e começei a Seguir o boris160, Conheci a source do Kiosani (Nemesis), vim aqui tinha um pouco de código do Boris e eu peguei o restante do ZabinooOO e só procurei os Offsets, agora vendo isso mano eu quero ser igual vocês e vou conseguir daqui a alguns anos, obrigado por vcs compartilharem conosco esses códigos, pois sem vocês eu estaria pior que cego no tiroteio..
Obrigado
Louis (Luiz)
Boris160(Weslley)
E a toda essa comunidade.

boris160
10/01/2018, 05:16 AM
De volta aos trabalhos, se eu consegui eu mando pra vcs

1 53 minutes:------- Atualizado -------

[Only registered and activated users can see links]

Assim está certo?

Pq ao move não tenho problema, sempre moveu normal como falei, o problema era ao remover o mob, que está resolvido, se estiver tudo certo eu posto aqui o código complicado...coloquei o ID 200 no pet

Kkkkk pqp eu tava colocando index do pet 76, é igual as wings tem q por apartir da index 200,agr tdas as peças se encaixam kkkk vo add fenrils :ott1


Caramba cara nem acredito que funcionou, é assim mesmo louis, cara ainda bem que tô me inspirando em um ótimo programador, você me motivou a continuar meus estudo e aprender sozinho, quando postou aquela brincadeira programada do pão no post do Arcade, após isso procurei a source da MuEMu F-team e começei a Seguir o boris160, Conheci a source do Kiosani (Nemesis), vim aqui tinha um pouco de código do Boris e eu peguei o restante do ZabinooOO e só procurei os Offsets, agora vendo isso mano eu quero ser igual vocês e vou conseguir daqui a alguns anos, obrigado por vcs compartilharem conosco esses códigos, pois sem vocês eu estaria pior que cego no tiroteio..
Obrigado
Louis (Luiz)
Boris160(Weslley)
E a toda essa comunidade.

É nois kkk

Mentor
10/01/2018, 08:48 AM
boris160 esse código que você disponibilizou já está funcional, ou precisar acrescentar mais códigos na source?
Outra coisa,você tem os offsets para a Season6?

Abraço!

Malyk
10/01/2018, 09:04 AM
@Mentor ([Only registered and activated users can see links]) Alguns OffSets Season 6 tem aqui nessa Source

[Only registered and activated users can see links]!iQwm0LCC!j-twcTmfjQYXeKz0STnJH1sBJkGKMhV9yWIB39PXBwA

Se tiver Senha é:
tuservermu com ve < adicione os (.)



OBS: Lembrem que os ID devem ser após o ID 200..

boris160
10/01/2018, 09:30 AM
boris160 esse código que você disponibilizou já está funcional, ou precisar acrescentar mais códigos na source?
Outra coisa,você tem os offsets para a Season6?

Abraço!
Funcional pro s4 pro s6 tem q achar os offsets e as linhas

Malyk
12/01/2018, 07:44 AM
Alguém pode arrumar o tópico para que fique mais fácil de entender?

louis
12/01/2018, 08:40 AM
Malyk se você está aprendendo não recomendo usar as informações desse post pois até agora não funcionam os pets corretamente, estamos trabalhando nisso, recomendo você tentar usar algo que funcione para aprender kk

cleniojr
02/02/2018, 02:42 AM
Isso é no gs

Malyk
18/03/2018, 10:25 AM
Loguei depois de tanto tempo mellow

Thút
18/03/2018, 11:40 AM
Quanta revolta, keridinha.
Você precisa de um consolo.
[Only registered and activated users can see links]
[Only registered and activated users can see links]

djagripnos
28/08/2018, 06:40 PM
boris160 Fix for Season 6 custom pet

k12leito
29/08/2018, 05:59 PM
Alguem conseguiu fixar o MakePreview?

Estou trabalhando com outro versão, estou tentanndo fixar o makepreview e quando o char muda de mapa o pet some, alguma ideia?

away337159
21/09/2018, 12:52 AM
Não está funcionando, poderia mandar os respectivos arquivos .h e .cpp?

23 Horas 25 minutes:------- Atualizado -------

Não passou o arquivo "Monster.h"
Tá gerando vários erros, creio que seja por isso
E também esse "código", onde colocá-lo?
Qual arquivo?

AlanHenrique
19/03/2019, 10:54 PM
galera alguem conseguil fixa. na hora de move pet some #MakePreview ta um help ai

cleniojr
25/03/2020, 06:01 PM
Até consegui compilar no main... Adicionei a partir do 200, como mencionado no tópico. Tive o problema de remover o pet, movimentação (ficou ruim todos os outros pets) e o que aparece é o de angel para mim (no hp também)