Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Custom bows & crossbows Main 1.04E  (Visto 3031 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline Natzugen on: November 27, 2018, 09:59:33 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 532
  • Gracias recibida: 7552
  • co
Bueno, acá dejo mi source para los bows y crossbows nuevos sin limite y con efectos de ataque dinamicos, las estructuras las pueden obtener del source de zteam y la carga del archivo ya la hace cada uno.



CustomBows.cpp



CustomBows.h



Ejemplo archivo de carga:



Creditos
Nemesis
MyHeart
Natzugen
« Ultima edicion: November 27, 2018, 10:04:29 PM by Natzugen »

Offline djagripnos #1 on: November 27, 2018, 11:51:10 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 569
  • Gracias recibida: 12068
  • gr
@Natzugen how much support custom bow ?????


GetMainInfo we will add something ?????
« Ultima edicion: November 27, 2018, 11:58:54 PM by djagripnos »

Offline Crowley #2 on: November 28, 2018, 01:03:29 AM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 7
  • Gracias recibida: 0
  • it

Offline GX_KYO #3 on: November 28, 2018, 01:34:53 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 226
  • Gracias recibida: 544
  • pe
Puedes dejar una imagen de como se ven los crossbows en la espalda de la elf cuando esta en safe zone??
Killing me one breath at a time... Cutting you with my pair of lives... So go on and lay me down to rest, You make it painless, painless!
I can't... I can't... I can't...
I can't feel ANY PAIN!

Offline Natzugen #4 on: December 25, 2018, 08:37:33 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 532
  • Gracias recibida: 7552
  • co
Puedes dejar una imagen de como se ven los crossbows en la espalda de la elf cuando esta en safe zone??

Gracias:


Offline GX_KYO #5 on: December 26, 2018, 01:03:24 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 226
  • Gracias recibida: 544
  • pe
Xevre, la parte del CrossPos era la que me faltaba para tener el código completo, antes no me quedaban bien en la espalda de la ELF 8)
Killing me one breath at a time... Cutting you with my pair of lives... So go on and lay me down to rest, You make it painless, painless!
I can't... I can't... I can't...
I can't feel ANY PAIN!

Offline spartacus #6 on: December 27, 2018, 09:15:34 AM

  • 0 puntos por ventas
  • *
  • Rank: Usuario activo
  • Posts: 65
  • Gracias recibida: 8
  • cl
hola, tendría una forma de hacer una configuración extra para ser configurada en el getmaininfo de muemu?

Gracias:


Offline louis #7 on: December 31, 2018, 04:23:43 PM

  • C++ Coder
  • +2 puntos por ventas
  • *
  • *
  • *
  • Rank: Puto amo
  • Posts: 528
  • Gracias recibida: 7942
  • br
Muchas gracias por el sistema

creo que no esta completo?

Code: [Select]
void CreateBowSkillEffect(DWORD lpObj, DWORD lpModel, DWORD Owner, BYTE a4, BYTE a5, WORD Skill)
{
lpViewObj gObj = &*(ObjectPreview*)lpObj;
lpModelObj gModel = &*(ObjectModel*)lpModel;

vec3_t Color;
vec3_t VecPos;
vec3_t WorldPos;

Vector(gModel->ColorR, gModel->ColorG, gModel->ColorB, Color);
Vector(gModel->VecPosX, gModel->VecPosY, gModel->VecPosZ, VecPos);
Vector(gModel->WorldPos.X, gModel->WorldPos.Y, gModel->WorldPos.Z, WorldPos);

int EffectType = 0;
short CrossBow = gObj->WeaponFirstSlot;
short Bow = gObj->WeaponSecondSlot;

if (lpObj == oUserPreviewStruct)
{
CrossBow = gObjUser.lpPlayer->pEquipment[0].ItemID;
Bow = gObjUser.lpPlayer->pEquipment[1].ItemID;

if (CrossBow != -1) CrossBow += ITEM_INTER;
if (Bow != -1) Bow += ITEM_INTER;
}

if (Skill == 52 || Skill == 416)
{
EffectType = 2;
pChatReserveLine(85, (int)lpModel, 0);
}

*(int*)0x8793730 = Skill;

if (Skill == 51 || Skill == 424)
pChatReserveLine(130, (int)lpModel, 0);

if (a5 == 2)
EffectType = 99;

if (Skill == 46)
{
CreateEffect(365, VecPos, WorldPos, Color, 0, Owner, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
}
else
{
if (gCustomBow.CheckCustomBow(CrossBow-ITEM_INTER) || gCustomBow.CheckCustomBow(Bow-ITEM_INTER))
{
for (int i = 0; i < 100; i++)
{
if ((CrossBow-ITEM_INTER) == (gCustomBow.m_CustomBow[i].ItemIndex) || (Bow-ITEM_INTER) == (gCustomBow.m_CustomBow[i].ItemIndex))
{
CreateEffect(gCustomBow.m_CustomBow[i].EffectId, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
return;
}
}
}

switch ( CrossBow )
{
case 3227:
CreateEffect(267, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3228:
CreateEffect(267, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3229:
CreateEffect(271, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3230:
CreateEffect(269, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3231:
CreateEffect(268, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3232:
CreateEffect(274, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3233:
CreateEffect(273, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3235:
CreateEffect(294, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3237:
CreateEffect(321, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3238:
CreateEffect(324, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
default:
break;
}
switch ( Bow )
{
case 3219:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3220:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3221:
CreateEffect(270, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3222:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3223:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3224:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3225:
CreateEffect(272, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3236:
CreateEffect(295, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3239:
CreateEffect(335, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3240:
CreateEffect(296, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3241:
CreateEffect(297, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3242:
CreateEffect(298, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3243:
CreateEffect(509, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3246:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
default:
return;
}
//--
}
}

Code: [Select]
typedef struct	//648? 848!!
{
/*+0*/ int Prev;
/*+4*/ BYTE Unknown4;
BYTE gap01[4];
/*+9*/ BYTE Unknown9;
BYTE gap02[2];
/*+12*/ BYTE Unknown12;
BYTE gap022[2];
/*+15*/ BYTE Unknown15;
BYTE gap03[2];
/*+18*/ WORD AnimationID;
/*+20*/ WORD Unknown20;
/*+22*/ BYTE Unknown22;
/*+23*/ BYTE Unknown23;
/*+24*/ BYTE ObjectType;
BYTE gap04[13];
/*+38*/ WORD Unknown38;
BYTE gap05[8];
/*+48*/ DWORD SkinID;
BYTE gap06[44];
/*+96*/ float Scale;
BYTE gap07[16];
/*+116*/ float Unknown116;
BYTE gap08[20];
/*+140*/ float Unknown140;
/*+144*/ float Unknown144;
/*+148*/ float Unknown148;
/*+152*/ float Unknown152;
/*+156*/ float ColorR;
/*+160*/ float ColorG;
/*+164*/ float ColorB;
BYTE gap09[36];
/*+204*/ VAngle Unknown204;
/*+216*/ VAngle Unknown216;
BYTE gap10[24];
/*+252*/ float VecPosX;
/*+256*/ float VecPosY;
/*+260*/ float VecPosZ;
/*+264*/ VAngle WorldPos;
BYTE gap11[148];
/*+424*/ ObjectModel_424 Unknown424;
BYTE gap12[176];
/*+484*/
} ObjectModel, * lpModelObj;

Asi funciona bien aqui

abrazp

Gracias:


Offline Natzugen #8 on: December 31, 2018, 06:10:19 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 532
  • Gracias recibida: 7552
  • co
Muchas gracias por el sistema

creo que no esta completo?

Code: [Select]
typedef struct	//648? 848!!
{
/*+0*/ int Prev;
/*+4*/ BYTE Unknown4;
BYTE gap01[4];
/*+9*/ BYTE Unknown9;
BYTE gap02[2];
/*+12*/ BYTE Unknown12;
BYTE gap022[2];
/*+15*/ BYTE Unknown15;
BYTE gap03[2];
/*+18*/ WORD AnimationID;
/*+20*/ WORD Unknown20;
/*+22*/ BYTE Unknown22;
/*+23*/ BYTE Unknown23;
/*+24*/ BYTE ObjectType;
BYTE gap04[13];
/*+38*/ WORD Unknown38;
BYTE gap05[8];
/*+48*/ DWORD SkinID;
BYTE gap06[44];
/*+96*/ float Scale;
BYTE gap07[16];
/*+116*/ float Unknown116;
BYTE gap08[20];
/*+140*/ float Unknown140;
/*+144*/ float Unknown144;
/*+148*/ float Unknown148;
/*+152*/ float Unknown152;
/*+156*/ float ColorR;
/*+160*/ float ColorG;
/*+164*/ float ColorB;
BYTE gap09[36];
/*+204*/ VAngle Unknown204;
/*+216*/ VAngle Unknown216;
BYTE gap10[24];
/*+252*/ float VecPosX;
/*+256*/ float VecPosY;
/*+260*/ float VecPosZ;
/*+264*/ VAngle WorldPos;
BYTE gap11[148];
/*+424*/ ObjectModel_424 Unknown424;
BYTE gap12[176];
/*+484*/
} ObjectModel, * lpModelObj;

Asi funciona bien aqui


Esta completo, lo unico faltante era el strcut del objectmodel que esta en el source de zteam y la carga de archivos que hice desde mi encoder por lo que no la puedo compartir.

En cuanto a esto:


Code: [Select]
void CreateBowSkillEffect(DWORD lpObj, DWORD lpModel, DWORD Owner, BYTE a4, BYTE a5, WORD Skill)
{
lpViewObj gObj = &*(ObjectPreview*)lpObj;
lpModelObj gModel = &*(ObjectModel*)lpModel;

vec3_t Color;
vec3_t VecPos;
vec3_t WorldPos;

Vector(gModel->ColorR, gModel->ColorG, gModel->ColorB, Color);
Vector(gModel->VecPosX, gModel->VecPosY, gModel->VecPosZ, VecPos);
Vector(gModel->WorldPos.X, gModel->WorldPos.Y, gModel->WorldPos.Z, WorldPos);

int EffectType = 0;
short CrossBow = gObj->WeaponFirstSlot;
short Bow = gObj->WeaponSecondSlot;

if (lpObj == oUserPreviewStruct)
{
CrossBow = gObjUser.lpPlayer->pEquipment[0].ItemID;
Bow = gObjUser.lpPlayer->pEquipment[1].ItemID;

if (CrossBow != -1) CrossBow += ITEM_INTER;
if (Bow != -1) Bow += ITEM_INTER;
}

if (Skill == 52 || Skill == 416)
{
EffectType = 2;
pChatReserveLine(85, (int)lpModel, 0);
}

*(int*)0x8793730 = Skill;

if (Skill == 51 || Skill == 424)
pChatReserveLine(130, (int)lpModel, 0);

if (a5 == 2)
EffectType = 99;

if (Skill == 46)
{
CreateEffect(365, VecPos, WorldPos, Color, 0, Owner, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
}
else
{
if (gCustomBow.CheckCustomBow(CrossBow-ITEM_INTER) || gCustomBow.CheckCustomBow(Bow-ITEM_INTER))
{
for (int i = 0; i < 100; i++)
{
if ((CrossBow-ITEM_INTER) == (gCustomBow.m_CustomBow[i].ItemIndex) || (Bow-ITEM_INTER) == (gCustomBow.m_CustomBow[i].ItemIndex))
{
CreateEffect(gCustomBow.m_CustomBow[i].EffectId, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
return;
}
}
}

switch ( CrossBow )
{
case 3227:
CreateEffect(267, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3228:
CreateEffect(267, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3229:
CreateEffect(271, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3230:
CreateEffect(269, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3231:
CreateEffect(268, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3232:
CreateEffect(274, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3233:
CreateEffect(273, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3235:
CreateEffect(294, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3237:
CreateEffect(321, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3238:
CreateEffect(324, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
default:
break;
}
switch ( Bow )
{
case 3219:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3220:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3221:
CreateEffect(270, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3222:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3223:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3224:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3225:
CreateEffect(272, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3236:
CreateEffect(295, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3239:
CreateEffect(335, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3240:
CreateEffect(296, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3241:
CreateEffect(297, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3242:
CreateEffect(298, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3243:
CreateEffect(509, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3246:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
default:
return;
}
//--
}
}

lo anterior se hace en estas lineas (se puede eliminar el ciclo for por que ya esta dentro de las funciones check) solo es agregar todos los arcos como se muestra en el archivo de carga:

Code: [Select]
if (gCustomBow.CheckCrossbow(CrossBow))
{
for (int i = 0; i < 256; i++)
{
if (CrossBow == GET_ITEM_MODEL(4, gCustomBow.m_CustomBow[i].ItemId))
{
CreateEffect(gCustomBow.m_CustomBow[i].EffectId, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
}
}
}
//--
if (gCustomBow.CheckBow(Bow))
{
for (int i = 0; i < 256; i++)
{
if (Bow == GET_ITEM_MODEL(4, gCustomBow.m_CustomBow[i].ItemId))
{
CreateEffect(gCustomBow.m_CustomBow[i].EffectId, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
}
}
}

Gracias:


Offline louis #9 on: December 31, 2018, 08:42:09 PM

  • C++ Coder
  • +2 puntos por ventas
  • *
  • *
  • *
  • Rank: Puto amo
  • Posts: 528
  • Gracias recibida: 7942
  • br
Entendo..esta en lo file ...gracias ^^
 ^^
Yo cambié el file, funciona muy bien


Creditos a ti

https://youtu.be/k1xsc2wwIHQ
« Ultima edicion: December 31, 2018, 08:46:43 PM by louis »

Offline idpnguyeni #10 on: January 02, 2019, 05:04:43 AM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 55
  • Gracias recibida: 5
  • vn
hi @louis

efecto de habilidad colocado en el servidor, y nombre que

Offline louis #11 on: January 02, 2019, 07:30:18 AM

  • C++ Coder
  • +2 puntos por ventas
  • *
  • *
  • *
  • Rank: Puto amo
  • Posts: 528
  • Gracias recibida: 7942
  • br
hi @louis

efecto de habilidad colocado en el servidor, y nombre que

no recuerdo creo que es 335 y 509 como el video

Offline spartacus #12 on: January 02, 2019, 10:01:29 AM

  • 0 puntos por ventas
  • *
  • Rank: Usuario activo
  • Posts: 65
  • Gracias recibida: 8
  • cl
@Natzugen
En este caso debe sustituir la If:
Code: [Select]
if (gCustomBow.CheckCustomBow(CrossBow-ITEM_INTER) || gCustomBow.CheckCustomBow(Bow-ITEM_INTER))
{
for (int i = 0; i < 100; i++)
{
if ((CrossBow-ITEM_INTER) == (gCustomBow.m_CustomBow[i].ItemIndex) || (Bow-ITEM_INTER) == (gCustomBow.m_CustomBow[i].ItemIndex))
{
CreateEffect(gCustomBow.m_CustomBow[i].EffectId, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
return;
}
}
}

switch ( CrossBow )
{
case 3227:
CreateEffect(267, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3228:
CreateEffect(267, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3229:
CreateEffect(271, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3230:
CreateEffect(269, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3231:
CreateEffect(268, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3232:
CreateEffect(274, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3233:
CreateEffect(273, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3235:
CreateEffect(294, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3237:
CreateEffect(321, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3238:
CreateEffect(324, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
default:
break;
}
switch ( Bow )
{
case 3219:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3220:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3221:
CreateEffect(270, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3222:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3223:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3224:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3225:
CreateEffect(272, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3236:
CreateEffect(295, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3239:
CreateEffect(335, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3240:
CreateEffect(296, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3241:
CreateEffect(297, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3242:
CreateEffect(298, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3243:
CreateEffect(509, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3246:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
default:
return;
}
//--
}
}

por eso If?

Code: [Select]
if (gCustomBow.CheckCrossbow(CrossBow))
{
for (int i = 0; i < 256; i++)
{
if (CrossBow == GET_ITEM_MODEL(4, gCustomBow.m_CustomBow[i].ItemId))
{
CreateEffect(gCustomBow.m_CustomBow[i].EffectId, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
}
}
}
//--
if (gCustomBow.CheckBow(Bow))
{
for (int i = 0; i < 256; i++)
{
if (Bow == GET_ITEM_MODEL(4, gCustomBow.m_CustomBow[i].ItemId))
{
CreateEffect(gCustomBow.m_CustomBow[i].EffectId, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
}
}
}

@louis tiene que publicar cómo se quedó el suyo?

Offline spartacus #13 on: January 02, 2019, 04:36:17 PM

  • 0 puntos por ventas
  • *
  • Rank: Usuario activo
  • Posts: 65
  • Gracias recibida: 8
  • cl
Alguien me puede ayudar con este problema?


Offline Ryuno #14 on: January 02, 2019, 08:00:32 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 479
  • Gracias recibida: 1033
  • dz
Bueno, acá dejo mi source para los bows y crossbows nuevos sin limite y con efectos de ataque dinamicos, las estructuras las pueden obtener del source de zteam y la carga del archivo ya la hace cada uno.



CustomBows.cpp

CustomBows.h

Ejemplo archivo de carga:

Creditos
Nemesis
MyHeart
Natzugen

muy Bonito quedo Natzugen la verdad  ademas mire que lo adaptaste al parecer con el getmaininfo. :D

una pregunta nada mas de curioso  _asm{jmp BowPosition}  si como tal la funcion tiene el naked
porque hacer el llamado tantas veces _asm     no se podria  hacer solamente  JMP [Address1]

Muy buen trabajo :D

Offline louis #15 on: January 02, 2019, 08:10:39 PM

  • C++ Coder
  • +2 puntos por ventas
  • *
  • *
  • *
  • Rank: Puto amo
  • Posts: 528
  • Gracias recibida: 7942
  • br
Alguien me puede ayudar con este problema?



Agrega iso en Defines.h

Code: [Select]
//-- Vectors -----------------------------------------------------
#include <math.h>

typedef float vec_t;

typedef vec_t vec3_t[3];
typedef vec_t vec4_t[4];
typedef vec_t vec34_t[3][4];

#define Vector(a,b,c,d) {(d)[0]=a;(d)[1]=b;(d)[2]=c;}

Gracias:


Offline Natzugen #16 on: January 02, 2019, 09:36:31 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 532
  • Gracias recibida: 7552
  • co
muy Bonito quedo Natzugen la verdad  ademas mire que lo adaptaste al parecer con el getmaininfo. :D

una pregunta nada mas de curioso  _asm{jmp BowPosition}  si como tal la funcion tiene el naked
porque hacer el llamado tantas veces _asm     no se podria  hacer solamente  JMP [Address1]

Muy buen trabajo :D
Por que cuando lo termine y ya estaba funcional me dio pereza limpiarlo para que quedara mas corto xDD

Gracias:


Offline spartacus #17 on: January 04, 2019, 07:20:16 PM

  • 0 puntos por ventas
  • *
  • Rank: Usuario activo
  • Posts: 65
  • Gracias recibida: 8
  • cl
@louis

Estoy poniendo la estructura que has publicado en Object.h
 y estoy teniendo un problema en la compilación en esta última línea de la estructura:
 } ObjectModel, * lpModelObj;

me está dando el siguiente error:
error C2371: 'ObjectModel' : redefinition; different basic types

Offline idpnguyeni #18 on: January 16, 2019, 07:37:36 AM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 55
  • Gracias recibida: 5
  • vn
Hi. i dont cant find file #include "BMD.h" ?

Offline idpnguyeni #19 on: January 16, 2019, 08:14:18 AM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 55
  • Gracias recibida: 5
  • vn

Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

 

Related Topics

  Subject / Started by Replies Last post
3 Replies
1121 Views
Last post October 03, 2018, 01:37:12 PM
by gtpro
0 Replies
386 Views
Last post March 09, 2018, 07:30:30 AM
by tigre1123
8 Replies
845 Views
Last post March 15, 2018, 01:41:13 AM
by draganus
0 Replies
646 Views
Last post October 11, 2018, 03:16:37 PM
by DemonLove
0 Replies
121 Views
Last post March 24, 2019, 11:51:15 AM
by muzic25