Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: CustomPetEffectStatic 1.4 D  (Visto 9529 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline kind #40 Posteado: May 23, 2020, 06:39:21 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Experto
  • Posts: 153
  • Gracias recibida: 1852
  • ar

Offline takumi12 #41 Posteado: May 23, 2020, 07:18:44 PM

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • Php Coder
  • +11 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 1.310
  • Gracias recibida: 39644
  • mx
Como dijo Daniel@ esta funcion ata los efectos al bmd entero x asi decirlo, no va a funcionar igual q los efectos en alas x ej.
Habiendo dicho eso, comparto la forma para en vez de agregar 1 efecto estatico, agregar dinamicos y darle un poco mas de sentido a la funcion, ya que sino ni rinde.
El codigo esta todo croto, lo hice para probar nomas.
 Asi queda:



muy buena men, yo ya no lo revisé, xD leíste lo que te mandé en imbox?, sobre lo de solucionar el skilldrawswitch no quede oculto por los dragones?


Las offset no se crea, ni se destruye, solo se transforma

Offline ConejoMalo #42 Posteado: May 26, 2020, 12:13:06 AM

  • +1 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 781
  • Gracias recibida: 7675
  • ar
hola, alguien pudo probarlo y decirme si funciona? quiero implementarlo pero mi main crashea .8

Servicios de  Reparacion de bug Files Muemu, desde source y agregados Custom, soporte de configuracion.

Offline Llalex #43 Posteado: May 26, 2020, 09:12:40 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 337
  • Gracias recibida: 374
  • ve
hola, alguien pudo probarlo y decirme si funciona? quiero implementarlo pero mi main crashea .8

Me puse a chequear un poco el codigo y todo esta bien, el error de crash pasa porque en esta zona Naraku la coloco para que fuese dinámica y ahí es donde viene el problema de crash, si manejas todo sin colocarlo dinamicamente como lo dejo Naraku te andará bien..

Post Original
Code: [Select]
int ItemGroup = (dwItemNumber - 1171) / 512;
int ItemID = (dwItemNumber - 1171) % 512;
if(gCustomPet2.CheckCustomPetByItem(ItemGroup, ItemID))
{
CUSTOM_PET_INFO* lpInfo = gCustomPet2.GetInfoByItem(ItemGroup, ItemID);

*(float*)(a4 + 96) = 2.0; //Aca
}


Naraku
Code: [Select]
//================================================================================
if(gCustomPet2.CheckCustomPetByItem(ItemGroup, ItemID))
{
CUSTOM_PET_INFO* lpInfo = gCustomPet2.GetInfoByItem(ItemGroup, ItemID);

*(float*)(a4 + 96) = lpInfo->PetSize ; //Aca
}
//================================================================================


Offline ConejoMalo #44 Posteado: May 26, 2020, 09:20:51 PM

  • +1 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 781
  • Gracias recibida: 7675
  • ar
hola, alguien pudo probarlo y decirme si funciona? quiero implementarlo pero mi main crashea .8

Me puse a chequear un poco el codigo y todo esta bien, el error de crash pasa porque en esta zona Naraku la coloco para que fuese dinámica y ahí es donde viene el problema de crash, si manejas todo sin colocarlo dinamicamente como lo dejo Naraku te andará bien..

Post Original
Code: [Select]
int ItemGroup = (dwItemNumber - 1171) / 512;
         int ItemID = (dwItemNumber - 1171) % 512;
         if(gCustomPet2.CheckCustomPetByItem(ItemGroup, ItemID))
         {
            CUSTOM_PET_INFO* lpInfo = gCustomPet2.GetInfoByItem(ItemGroup, ItemID);

               *(float*)(a4 + 96) = 2.0; //Aca
         }


Naraku
Code: [Select]
//================================================================================
         if(gCustomPet2.CheckCustomPetByItem(ItemGroup, ItemID))
         {
            CUSTOM_PET_INFO* lpInfo = gCustomPet2.GetInfoByItem(ItemGroup, ItemID);

               *(float*)(a4 + 96) = lpInfo->PetSize ; //Aca
         }
//================================================================================
gracias bro sos un genio, disculpa ya trmenda ayuda me diste con esto pero tendrias como colocarlo en el maininfo y el txt externo?

Servicios de  Reparacion de bug Files Muemu, desde source y agregados Custom, soporte de configuracion.

Offline Llalex #45 Posteado: May 26, 2020, 09:39:13 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 337
  • Gracias recibida: 374
  • ve
hola, alguien pudo probarlo y decirme si funciona? quiero implementarlo pero mi main crashea .8

Me puse a chequear un poco el codigo y todo esta bien, el error de crash pasa porque en esta zona Naraku la coloco para que fuese dinámica y ahí es donde viene el problema de crash, si manejas todo sin colocarlo dinamicamente como lo dejo Naraku te andará bien..

Post Original
Code: [Select]
int ItemGroup = (dwItemNumber - 1171) / 512;
         int ItemID = (dwItemNumber - 1171) % 512;
         if(gCustomPet2.CheckCustomPetByItem(ItemGroup, ItemID))
         {
            CUSTOM_PET_INFO* lpInfo = gCustomPet2.GetInfoByItem(ItemGroup, ItemID);

               *(float*)(a4 + 96) = 2.0; //Aca
         }


Naraku
Code: [Select]
//================================================================================
         if(gCustomPet2.CheckCustomPetByItem(ItemGroup, ItemID))
         {
            CUSTOM_PET_INFO* lpInfo = gCustomPet2.GetInfoByItem(ItemGroup, ItemID);

               *(float*)(a4 + 96) = lpInfo->PetSize ; //Aca
         }
//================================================================================
gracias bro sos un genio, disculpa ya trmenda ayuda me diste con esto pero tendrias como colocarlo en el maininfo y el txt externo?

No lo veo necesario colocarlo en el GetInfo ya que no toma en si los valores dinámico...


Offline takumi12 #46 Posteado: May 26, 2020, 09:47:29 PM

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • Php Coder
  • +11 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 1.310
  • Gracias recibida: 39644
  • mx
hola, alguien pudo probarlo y decirme si funciona? quiero implementarlo pero mi main crashea .8

Me puse a chequear un poco el codigo y todo esta bien, el error de crash pasa porque en esta zona Naraku la coloco para que fuese dinámica y ahí es donde viene el problema de crash, si manejas todo sin colocarlo dinamicamente como lo dejo Naraku te andará bien..

Post Original
Code: [Select]
int ItemGroup = (dwItemNumber - 1171) / 512;
         int ItemID = (dwItemNumber - 1171) % 512;
         if(gCustomPet2.CheckCustomPetByItem(ItemGroup, ItemID))
         {
            CUSTOM_PET_INFO* lpInfo = gCustomPet2.GetInfoByItem(ItemGroup, ItemID);

               *(float*)(a4 + 96) = 2.0; //Aca
         }


Naraku
Code: [Select]
//================================================================================
         if(gCustomPet2.CheckCustomPetByItem(ItemGroup, ItemID))
         {
            CUSTOM_PET_INFO* lpInfo = gCustomPet2.GetInfoByItem(ItemGroup, ItemID);

               *(float*)(a4 + 96) = lpInfo->PetSize ; //Aca
         }
//================================================================================
gracias bro sos un genio, disculpa ya trmenda ayuda me diste con esto pero tendrias como colocarlo en el maininfo y el txt externo?

No lo veo necesario colocarlo en el GetInfo ya que no toma en si los valores dinámico...

es porque esta incompleto, solo es la base principal...


Las offset no se crea, ni se destruye, solo se transforma

Offline ConejoMalo #47 Posteado: May 26, 2020, 10:41:25 PM

  • +1 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 781
  • Gracias recibida: 7675
  • ar
 cool2 gracias muchachos

Servicios de  Reparacion de bug Files Muemu, desde source y agregados Custom, soporte de configuracion.

Offline ConejoMalo #48 Posteado: May 26, 2020, 11:19:27 PM

  • +1 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 781
  • Gracias recibida: 7675
  • ar
prueba asi

Code: [Select]
64       0      270     1       2        1            1            0          "Soul Claw"                          043     242         252         35            100          0                 0                 0          227           75             0           0             0               1      0       0       0       0       0       0       3

@takumi12 me falta


Code: [Select]
bool cCustomPet::CheckCustomPetByItem(int ItemType,int ItemIndex) // OK
{
   for (int i=0;i<MAX_PET_ITEM; i++)
   {
      if (ItemType == this->m_CustomPetInfo[i].ItemType && ItemIndex == this->m_CustomPetInfo[i].ItemIndex)
      {
         return true;
      }
   }
   return false;
}

hola donde va esto? lo coloque en el custompet.ccp y en el petex.ccp y no se me soluciono

bool cCustomPet::CheckCustomPetByItem(int ItemType,int ItemIndex) // OK
{
   for (int i=0;i<MAX_PET_ITEM; i++)
   {
      if (ItemType == this->m_CustomPetInfo.ItemType && ItemIndex == this->m_CustomPetInfo.ItemIndex)
      {
         return true;
      }
   }
   return false;
}

neceito definir algo en algun lafo ?   

Servicios de  Reparacion de bug Files Muemu, desde source y agregados Custom, soporte de configuracion.

Offline ConejoMalo #49 Posteado: June 14, 2020, 10:57:49 PM

  • +1 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 781
  • Gracias recibida: 7675
  • ar
Alguien tiene las offsets para 1.04E?

@Naraku  con respecto a la fuente que publicó, tiene la parte que personaliza el tamaño de la PET en el inventario?

en uno de los comentarios deje el offset faltante para 1.04E

si tengo la source que modifica la posicion y tamaño de los pets en el inventario.. luego la publico
bro podrias subir esa source que tienes?

Servicios de  Reparacion de bug Files Muemu, desde source y agregados Custom, soporte de configuracion.

Offline laulinh2 #50 Posteado: June 17, 2020, 09:30:40 PM

  • 0 puntos por ventas
  • *
  • Rank: Usuario activo
  • Posts: 65
  • Gracias recibida: 12
  • vn
PetEffect don't work:(, i use main 1.04E


Offline laulinh2 #51 Posteado: June 26, 2020, 02:04:14 AM

  • 0 puntos por ventas
  • *
  • Rank: Usuario activo
  • Posts: 65
  • Gracias recibida: 12
  • vn
Como dijo Daniel@ esta funcion ata los efectos al bmd entero x asi decirlo, no va a funcionar igual q los efectos en alas x ej.
Habiendo dicho eso, comparto la forma para en vez de agregar 1 efecto estatico, agregar dinamicos y darle un poco mas de sentido a la funcion, ya que sino ni rinde.
El codigo esta todo croto, lo hice para probar nomas.
 Asi queda:

(DWORD)pGetModel,pModelThis() offset???


Offline kind #52 Posteado: June 26, 2020, 08:42:41 AM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Experto
  • Posts: 153
  • Gracias recibida: 1852
  • ar

(DWORD)pGetModel,pModelThis() offset???

#define pModelThis   ((LPVOID(*)())0x004CDA10)
#define pGetModel   ((LPVOID(__thiscall*)(LPVOID This, signed int a2)) 0x00969C50)


Offline Jean LR #53 Posteado: June 27, 2020, 12:04:38 PM

  • 0 puntos por ventas
  • *
  • Rank: Liga mayor
  • Posts: 195
  • Gracias recibida: 85
  • pe
Funciona en 1.04e alguien lo probó? a mi no me funciona...


Offline takumi12 #54 Posteado: June 27, 2020, 04:02:29 PM

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • Php Coder
  • +11 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 1.310
  • Gracias recibida: 39644
  • mx
Funciona en 1.04e alguien lo probó? a mi no me funciona...



100%  cool2


Las offset no se crea, ni se destruye, solo se transforma

Gracias:


Offline kaiocnx #55 Posteado: June 27, 2020, 05:09:21 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 49
  • Gracias recibida: 513
  • br

Offline hiep #56 Posteado: June 28, 2020, 03:35:32 AM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 43
  • Gracias recibida: 155
  • vn
Funciona en 1.04e alguien lo probó? a mi no me funciona...



100%  cool2
Can you share code xD  please


Offline SaintZeus #57 Posteado: July 05, 2020, 11:05:24 PM | Modificado: July 06, 2020, 07:51:16 PM by SaintZeus

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 482
  • Gracias recibida: 2753
  • ar
El GetMain es asi o nada que ver?  comiendo

GetMain
GetMainInfo.cpp

Code: [Select]
#include "PetEx.h"
PETEX_EFFECT m_Effect[MAX_PETEX_EFFECT];
gPetEffect.Load("CustomPetEffect.txt");
memcpy(info.m_Effect, gPetEffect.m_Effect, sizeof(info.m_Effect));


PetEx.cpp
Code: [Select]
#include  "stdafx.h"
#include "PetEx.h"
#include "MemScript.h"

cCPetEx gPetEffect;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

cCPetEx::cCPetEx() // OK
{
this->Init();
}

cCPetEx::~cCPetEx() // OK
{

}

void cCPetEx::Init() // OK
{
for (int n = 0; n < MAX_PETEX_EFFECT; n++)
{
this->m_Effect[n].Index = -1;
}
}

void cCPetEx::Load(char* path) // OK
{
CMemScript* lpMemScript = new CMemScript;

if (lpMemScript == 0)
{
printf(MEM_SCRIPT_ALLOC_ERROR, path);
return;
}

if (lpMemScript->SetBuffer(path) == 0)
{
printf(lpMemScript->GetLastError());
delete lpMemScript;
return;
}

this->Init();

try
{
while (true)
{
if (lpMemScript->GetToken() == TOKEN_END)
{
break;
}

if (strcmp("end", lpMemScript->GetString()) == 0)
{
break;
}

PETEX_EFFECT info;

memset(&info, 0, sizeof(info));

static int CustomItemIndexCount = 0;

info.Index = CustomItemIndexCount++;

info.ItemIndex = lpMemScript->GetNumber();
info.EffectIndex = lpMemScript->GetNumber();
info.ColorR = lpMemScript->GetAsFloatNumber();
info.ColorG = lpMemScript->GetAsFloatNumber();
info.ColorB = lpMemScript->GetAsFloatNumber();
info.ColorSize = lpMemScript->GetAsFloatNumber();
info.ColorMain = lpMemScript->GetAsFloatNumber();
info.ColorSide = lpMemScript->GetAsFloatNumber();



this->SetInfo(info);
}
}
catch (...)
{
printf(lpMemScript->GetLastError());
}

delete lpMemScript;
}

void cCPetEx::SetInfo(PETEX_EFFECT info) // OK
{
if (info.Index < 0 || info.Index >= MAX_PETEX_EFFECT)
{
return;
}

this->m_Effect[info.Index] = info;
}

PetEx.h
Code: [Select]
#pragma once

#define MAX_PETEX_EFFECT 512

struct PETEX_EFFECT
{
int Index;
int ItemIndex;
int EffectIndex;
float ColorR;
float ColorG;
float ColorB;
float ColorSize;
float ColorMain;
float ColorSide;
};

class cCPetEx
{
public:
cCPetEx();
virtual ~cCPetEx();
void Init();
void Load(char* path);
void SetInfo(PETEX_EFFECT info);

public:
PETEX_EFFECT m_Effect[MAX_PETEX_EFFECT];
};

extern cCPetEx gPetEffect;

Main

Protect.h
Code: [Select]
#include "PetEx.h"
PETEX_EFFECT m_Effect[MAX_PETEX_EFFECT];

Main.cpp
Code: [Select]
#include "PetEx.h"
gPetEffect.Load(gProtect.m_MainInfo.m_Effect);

Gracias:


Offline Jean LR #58 Posteado: July 06, 2020, 02:32:19 PM

  • 0 puntos por ventas
  • *
  • Rank: Liga mayor
  • Posts: 195
  • Gracias recibida: 85
  • pe
El GetMain es asi o nada que ver?  comiendo

GetMain
GetMainInfo.cpp

Code: [Select]
#include "PetEx.h"
gPetEffect.Load("CustomPetEffect.txt");
memcpy(info.m_Effect, gPetEffect.m_Effect, sizeof(info.m_Effect));


PetEx.cpp
Code: [Select]
#include  "stdafx.h"
#include "PetEx.h"
#include "MemScript.h"

cCPetEx gPetEffect;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

cCPetEx::cCPetEx() // OK
{
this->Init();
}

cCPetEx::~cCPetEx() // OK
{

}

void cCPetEx::Init() // OK
{
for (int n = 0; n < MAX_PETEX_EFFECT; n++)
{
this->m_Effect[n].Index = -1;
}
}

void cCPetEx::Load(char* path) // OK
{
CMemScript* lpMemScript = new CMemScript;

if (lpMemScript == 0)
{
printf(MEM_SCRIPT_ALLOC_ERROR, path);
return;
}

if (lpMemScript->SetBuffer(path) == 0)
{
printf(lpMemScript->GetLastError());
delete lpMemScript;
return;
}

this->Init();

try
{
while (true)
{
if (lpMemScript->GetToken() == TOKEN_END)
{
break;
}

if (strcmp("end", lpMemScript->GetString()) == 0)
{
break;
}

PETEX_EFFECT info;

memset(&info, 0, sizeof(info));

static int CustomItemIndexCount = 0;

info.Index = CustomItemIndexCount++;

info.ItemIndex = lpMemScript->GetNumber();
info.EffectIndex = lpMemScript->GetNumber();
info.ColorR = lpMemScript->GetAsFloatNumber();
info.ColorG = lpMemScript->GetAsFloatNumber();
info.ColorB = lpMemScript->GetAsFloatNumber();
info.ColorSize = lpMemScript->GetAsFloatNumber();
info.ColorMain = lpMemScript->GetAsFloatNumber();
info.ColorSide = lpMemScript->GetAsFloatNumber();



this->SetInfo(info);
}
}
catch (...)
{
printf(lpMemScript->GetLastError());
}

delete lpMemScript;
}

void cCPetEx::SetInfo(PETEX_EFFECT info) // OK
{
if (info.Index < 0 || info.Index >= MAX_PETEX_EFFECT)
{
return;
}

this->m_Effect[info.Index] = info;
}

PetEx.h
Code: [Select]
#pragma once

#define MAX_PETEX_EFFECT 512

struct PETEX_EFFECT
{
int Index;
int ItemIndex;
int EffectIndex;
float ColorR;
float ColorG;
float ColorB;
float ColorSize;
float ColorMain;
float ColorSide;
};

class cCPetEx
{
public:
cCPetEx();
virtual ~cCPetEx();
void Init();
void Load(char* path);
void SetInfo(PETEX_EFFECT info);

public:
PETEX_EFFECT m_Effect[MAX_PETEX_EFFECT];
};

extern cCPetEx gPetEffect;

Main

Protect.h
Code: [Select]
#include "PetEx.h"
PETEX_EFFECT m_Effect[MAX_PETEX_EFFECT];

Main.cpp
Code: [Select]
#include "PetEx.h"
gPetEffect.Load(gProtect.m_MainInfo.m_Effect);

Uso 1.4e y no funcionó, por mas que le cambie el offset


Offline SaintZeus #59 Posteado: July 11, 2020, 01:37:34 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 482
  • Gracias recibida: 2753
  • ar
El GetMain es asi o nada que ver?  comiendo

GetMain
GetMainInfo.cpp

Code: [Select]
#include "PetEx.h"
gPetEffect.Load("CustomPetEffect.txt");
memcpy(info.m_Effect, gPetEffect.m_Effect, sizeof(info.m_Effect));


PetEx.cpp
Code: [Select]
#include  "stdafx.h"
#include "PetEx.h"
#include "MemScript.h"

cCPetEx gPetEffect;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

cCPetEx::cCPetEx() // OK
{
this->Init();
}

cCPetEx::~cCPetEx() // OK
{

}

void cCPetEx::Init() // OK
{
for (int n = 0; n < MAX_PETEX_EFFECT; n++)
{
this->m_Effect[n].Index = -1;
}
}

void cCPetEx::Load(char* path) // OK
{
CMemScript* lpMemScript = new CMemScript;

if (lpMemScript == 0)
{
printf(MEM_SCRIPT_ALLOC_ERROR, path);
return;
}

if (lpMemScript->SetBuffer(path) == 0)
{
printf(lpMemScript->GetLastError());
delete lpMemScript;
return;
}

this->Init();

try
{
while (true)
{
if (lpMemScript->GetToken() == TOKEN_END)
{
break;
}

if (strcmp("end", lpMemScript->GetString()) == 0)
{
break;
}

PETEX_EFFECT info;

memset(&info, 0, sizeof(info));

static int CustomItemIndexCount = 0;

info.Index = CustomItemIndexCount++;

info.ItemIndex = lpMemScript->GetNumber();
info.EffectIndex = lpMemScript->GetNumber();
info.ColorR = lpMemScript->GetAsFloatNumber();
info.ColorG = lpMemScript->GetAsFloatNumber();
info.ColorB = lpMemScript->GetAsFloatNumber();
info.ColorSize = lpMemScript->GetAsFloatNumber();
info.ColorMain = lpMemScript->GetAsFloatNumber();
info.ColorSide = lpMemScript->GetAsFloatNumber();



this->SetInfo(info);
}
}
catch (...)
{
printf(lpMemScript->GetLastError());
}

delete lpMemScript;
}

void cCPetEx::SetInfo(PETEX_EFFECT info) // OK
{
if (info.Index < 0 || info.Index >= MAX_PETEX_EFFECT)
{
return;
}

this->m_Effect[info.Index] = info;
}

PetEx.h
Code: [Select]
#pragma once

#define MAX_PETEX_EFFECT 512

struct PETEX_EFFECT
{
int Index;
int ItemIndex;
int EffectIndex;
float ColorR;
float ColorG;
float ColorB;
float ColorSize;
float ColorMain;
float ColorSide;
};

class cCPetEx
{
public:
cCPetEx();
virtual ~cCPetEx();
void Init();
void Load(char* path);
void SetInfo(PETEX_EFFECT info);

public:
PETEX_EFFECT m_Effect[MAX_PETEX_EFFECT];
};

extern cCPetEx gPetEffect;

Main

Protect.h
Code: [Select]
#include "PetEx.h"
PETEX_EFFECT m_Effect[MAX_PETEX_EFFECT];

Main.cpp
Code: [Select]
#include "PetEx.h"
gPetEffect.Load(gProtect.m_MainInfo.m_Effect);

Uso 1.4e y no funcionó, por mas que le cambie el offset
mmm no, me habia faltado algo...



Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate