Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

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

0 Miembros and 1 Guest are viewing this topic.

Offline Natzugen Posteado: November 27, 2018, 09:59:33 PM | Modificado: November 27, 2018, 10:04:29 PM by Natzugen

  • MAESTRO

  • US. DE HONOR

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 543
  • Gracias recibida: 20077
  • 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

Gracias:

xxyatsenxx, juancarlin, quanhongle, kamus, Fakuu08, heto3000, THOTH, sOwi, carper, smil158, ochurus, raul31, yokkjll, FedexaZ, armamor, mudavion, matan3599, capocimic, voladito, haphinha, xufqing, darkes607, sergio093, Xysad, pachu1, lautha, ssp4rt4cus, sebelt, vladonsio, bykakuv, Xoda, ezesosa, leonardexapps, bbbbcccc, joaovithor1, Ryzenn, unico, RAGNAR111, lstuan, natias21, liron003, nelson, usersa, korron, wnz5678, Pakalois22, wiljipa, solar, ꧁༒☬Gabriel☬༒꧂, wslleyj, Wikka, Djassar, RyukZ, jaime1, anquy123, victhorinox, ellite3, thesofer, xz18786628, NghienMU, Dieguinho, lkt22, ta6akus7, LHB_LOVE, davidrcj, juampicdx, Keko, Dragonvl15, shadukan, Flashxxx, Iямαηɗαɗ ☠, taovanluc, mavrdisk, mudevsbr, Part1zanBelarus, senha1k2, Macêdo, jhonhy, okilove23, away337159, daotho, JokerZoe, hanzel, hiep, gacon201294, juniorcgr, comelon666, VictorKing, DarkEternity, AmericaHost, josecola, DIOSES, jinfansub, showmax, ailsoncost, Yuntao, baolove000, angel3858, thunwa1, thanhbinhqht, MsotoC, nguqua, LeeHenry, admkolla, MaxVoll, Kosh, alexfy, briner2016, GabrielDevel, erickmalfoy, kayito, guigonvg, tonesn, RafhaelSouza, miltonho2, GabrielDev, ilubatar, Fukerito, axeman192, binhchivn, zehel62, JavixFer, samhaiminh, draco425, dark32, SaintZeus, 6atters, Tester1838a, Lil Kid, neicer, tangyi90, Cartman, RafaMaster, jumongski, takumi12, zeruskill, bimaloha, repiolaa, fabianm, Denis Alves, trkgncmg, shizen, Karuritoku, C4nn4b1s, 123asd456, Jean LR, favgames, dlawls662, luciferlg, Shaman, nxx, legacy101, becoloko, nscbr, AreS, jorge2016, marcelin, 日メリーのRu, oleas14, Yalc, neeck1234, dahouzi, mario2015, shangxin, leones55, admmunowar, Hax.Gaming, kind, ZTMarkz, Zeus, jorginhuz, Alexsupra0, unnamedsk1, pravednik, Gamers, conter, tiagoassisprof, zxzedgod, nonnan005, RinOv, MollvaX, c4nhsatcodong, TioMostaza, dagang, harry130, Almdar, AZURE, NasLy, Celical, Wendigo, lokura, KhongGianOL, Lude, kksky, kaiocnx, mastermcy, Ryuno, k12leito, zwinkbade, emersonx13, Andre1981, BruceCM, Daniel@, caron22, emciel, spartacus, gauyeutho, beibei, idpnguyeni, agtanalata, bond2012, zlethanhlong, seedmaker, piscis007, datcom, Ponteleymon, louis, Gardelito, beecubin, cobyzero, ediiinson, SetecSoft, quyanxu, PachoRasta, deathsquad, Nexus, herjuni, dedicadobk, maychell, Nemesis, elqtmete, onlinezajzaj, xuanthanhyt, datos32, Crowley, GX_KYO, juan1997, Thor Host, djagripnos, ZabiinoOo, Kapocha33, chuckhai, humito

Offline djagripnos #1 Posteado: November 27, 2018, 11:51:10 PM | Modificado: November 27, 2018, 11:58:54 PM by djagripnos

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

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


GetMainInfo we will add something ?????


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

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

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

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 337
  • Gracias recibida: 2887
  • 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 Posteado: December 25, 2018, 08:37:33 PM

  • MAESTRO

  • US. DE HONOR

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 543
  • Gracias recibida: 20077
  • 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 Posteado: December 26, 2018, 01:03:24 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 337
  • Gracias recibida: 2887
  • 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 Posteado: December 27, 2018, 09:15:34 AM

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

Gracias:


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

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • C++ Coder
  • +12 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 903
  • Gracias recibida: 42429
  • 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

Update 41 is ready!!!
Discord: louisemulator

Gracias:


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

  • MAESTRO

  • US. DE HONOR

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 543
  • Gracias recibida: 20077
  • 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 Posteado: December 31, 2018, 08:42:09 PM | Modificado: December 31, 2018, 08:46:43 PM by louis

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

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


Creditos a ti



Update 41 is ready!!!
Discord: louisemulator

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

  • 0 puntos por ventas
  • *
  • Rank: Usuario activo
  • Posts: 72
  • Gracias recibida: 19
  • vn
hi @louis

efecto de habilidad colocado en el servidor, y nombre que


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

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • C++ Coder
  • +12 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 903
  • Gracias recibida: 42429
  • br
hi @louis

efecto de habilidad colocado en el servidor, y nombre que

no recuerdo creo que es 335 y 509 como el video

Update 41 is ready!!!
Discord: louisemulator

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

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 274
  • Gracias recibida: 132
  • 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 Posteado: January 02, 2019, 04:36:17 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 274
  • Gracias recibida: 132
  • cl
Alguien me puede ayudar con este problema?



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

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 502
  • Gracias recibida: 2189
  • 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 Posteado: January 02, 2019, 08:10:39 PM

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • C++ Coder
  • +12 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 903
  • Gracias recibida: 42429
  • 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;}

Update 41 is ready!!!
Discord: louisemulator

Gracias:


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

  • MAESTRO

  • US. DE HONOR

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 543
  • Gracias recibida: 20077
  • 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 Posteado: January 04, 2019, 07:20:16 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 274
  • Gracias recibida: 132
  • 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 Posteado: January 16, 2019, 07:37:36 AM

  • 0 puntos por ventas
  • *
  • Rank: Usuario activo
  • Posts: 72
  • Gracias recibida: 19
  • vn
Hi. i dont cant find file #include "BMD.h" ?


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

  • 0 puntos por ventas
  • *
  • Rank: Usuario activo
  • Posts: 72
  • Gracias recibida: 19
  • vn

Offline AZURE #20 Posteado: January 25, 2019, 11:09:03 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 255
  • Gracias recibida: 3407
  • cl
en el main cpp  va asi
gCustomBow?

Gracias:


Offline AZURE #21 Posteado: January 27, 2019, 08:59:19 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 255
  • Gracias recibida: 3407
  • cl
ayuda como va en el main.cpp
asi= gCustomBow();  o  asi  InitBows();

una ayuda porfa


Offline Lude #22 Posteado: January 27, 2019, 09:53:18 AM | Modificado: January 27, 2019, 05:56:29 PM by Lude

  • MAESTRO

  • US. DE HONOR

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 379
  • Gracias recibida: 20599
  • us
ayuda como va en el main.cpp
asi= gCustomBow();  o  asi  InitBows();

una ayuda porfa

.

Gracias:


Offline Fake #23 Posteado: January 28, 2019, 10:59:16 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 12
  • Gracias recibida: 4
  • ar
Hay que adaptar esto al GetMainInfo para lo del archivo de carga verdad?


Offline spartacus #24 Posteado: January 29, 2019, 04:10:16 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 274
  • Gracias recibida: 132
  • cl
ayuda como va en el main.cpp
asi= gCustomBow();  o  asi  InitBows();

una ayuda porfa

gCustomBow.Load();


Offline Fake #25 Posteado: January 29, 2019, 10:31:31 AM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 12
  • Gracias recibida: 4
  • ar
Puede alguien explicarme acerca del archivo de carga? Donde va?


Offline Crowley #26 Posteado: April 09, 2019, 05:15:23 AM

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

Offline Alexsupra0 #27 Posteado: April 09, 2019, 05:58:02 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 29
  • Gracias recibida: 24
  • pe
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

Muy bueno , se agradece para los usuarios nuevos pequeña consulta . se adapta al cliente que tengas ?
siendo 1.0.4E , una breve guia textual o video para agregar los comandos . ! Excelente trabajo .


Offline Ryuno #28 Posteado: April 09, 2019, 06:27:07 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 502
  • Gracias recibida: 2189
  • dz
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

Muy bueno , se agradece para los usuarios nuevos pequeña consulta . se adapta al cliente que tengas ?
siendo 1.0.4E , una breve guia textual o video para agregar los comandos . ! Excelente trabajo .
Solo falta la parte del getmain info la cual no es dificil de agregar y queda amigo

Gracias:


Offline TioMostaza #29 Posteado: May 01, 2019, 12:45:46 PM | Modificado: May 01, 2019, 12:48:22 PM by TioMostaza

  • 0 puntos por ventas
  • *
  • Rank: Destacado
  • Posts: 90
  • Gracias recibida: 51
  • pe
Hola Gente de TSM miren estoy compilando esta source de @Natzugen  @louis  y me salen estos errores todos los demas que tenia ya los solucione
 
Spoiler for Hiden:
1>  CustomBows.cpp
1>CustomBows.cpp(171): error C2065: 'lpModelObj': identificador no declarado
1>CustomBows.cpp(171): error C2146: error de sintaxis: falta ';' delante del identificador 'gModel'
1>CustomBows.cpp(171): error C2065: 'gModel': identificador no declarado
1>CustomBows.cpp(177): error C2065: 'gModel': identificador no declarado
1>CustomBows.cpp(177): error C2227: el operando izquierdo de '->ColorR' debe señalar al tipo class/struct/union/generic
1>  CustomBows.cpp(177): note: el tipo es 'unknown-type'
1>CustomBows.cpp(177): error C2227: el operando izquierdo de '->ColorG' debe señalar al tipo class/struct/union/generic
1>  CustomBows.cpp(177): note: el tipo es 'unknown-type'
1>CustomBows.cpp(177): error C2227: el operando izquierdo de '->ColorB' debe señalar al tipo class/struct/union/generic
1>  CustomBows.cpp(177): note: el tipo es 'unknown-type'
1>CustomBows.cpp(178): error C2065: 'gModel': identificador no declarado
1>CustomBows.cpp(178): error C2227: el operando izquierdo de '->VecPosX' debe señalar al tipo class/struct/union/generic
1>  CustomBows.cpp(178): note: el tipo es 'unknown-type'
1>CustomBows.cpp(178): error C2227: el operando izquierdo de '->VecPosY' debe señalar al tipo class/struct/union/generic
1>  CustomBows.cpp(178): note: el tipo es 'unknown-type'
1>CustomBows.cpp(178): error C2227: el operando izquierdo de '->VecPosZ' debe señalar al tipo class/struct/union/generic
1>  CustomBows.cpp(178): note: el tipo es 'unknown-type'
1>CustomBows.cpp(179): error C2065: 'gModel': identificador no declarado
1>CustomBows.cpp(179): error C2227: el operando izquierdo de '->WorldPos' debe señalar al tipo class/struct/union/generic
1>  CustomBows.cpp(179): note: el tipo es 'unknown-type'
1>CustomBows.cpp(179): error C2228: el operando izquierdo de '.X' debe tener class/struct/union
1>CustomBows.cpp(179): error C2228: el operando izquierdo de '.Y' debe tener class/struct/union
1>CustomBows.cpp(179): error C2228: el operando izquierdo de '.Z' debe tener class/struct/union
1>CustomBows.cpp(236): error C2601: 'InitBows': las definiciones de funciones locales no son válidas
1>  CustomBows.cpp(211): note: esta línea contiene un elemento '{' y no se ha encontrado su elemento de cierre
1>CustomBows.cpp(211): fatal error C1075: el elemento llave '{' de la izquierda estaba sin asignar al final del archivo


asi tengo mi Object.h

Spoiler for Hiden:
#pragma once


#pragma pack(push, 1)
typedef struct  //-> Complete (size: 27)
{
   WORD   ObjectID;
   char   Name[25];
} NpcNameList, * lpNpcNameList;
#pragma pack(pop)


#pragma pack(push, 1)
typedef struct
{
   BYTE gap01[172];
   /*+172*/   DWORD   HuntingRange;
   /*+176*/   bool   RecoveryPotionOn;
   /*+177*/   BYTE   RecoveryPotionPercent;
   /*+178*/   bool   RecoveryHealOn;         //-> CLASS_ELF
   /*+179*/   BYTE   RecoveryHealPercent;   //-> CLASS_ELF
   /*+180*/   bool   RecoveryDrainOn;      //-> CLASS_SUMMONER
   /*+181*/   BYTE   RecoveryDrainPercent;   //-> CLASS_SUMMONER
   /*+182*/   bool   DistanceLongOn;
   /*+183*/   bool   DistanceReturnOn;
   /*+184*/   DWORD   DistanceMin;
   /*+188*/   DWORD   SkillBasicID;
   /*+192*/   DWORD   SkillSecond1ID;
   /*+196*/   BOOL   SkillSecond1DelayOn;
   /*+200*/   DWORD   SkillSecond1DelayTime;
   /*+204*/   BOOL   SkillSecond1CounterOn;
   /*+208*/   int      SkillSecond1CounterPre;
   /*+212*/   int      SkillSecond1CounterSub;
   /*+216*/   DWORD   SkillSecond2ID;
   /*+220*/   BOOL   SkillSecond2DelayOn;
   /*+224*/   DWORD   SkillSecond2DelayTime;
   /*+228*/   BOOL   SkillSecond2CounterOn;
   /*+232*/   int      SkillSecond2CounterPre;
   /*+236*/   int      SkillSecond2CounterSub;
   /*+240*/   bool   ComboOn;            //-> CLASS_KNIGHT
   /*+241*/   bool   PartyModeOn;
   /*+242*/   bool   PartyModeHealOn;      //-> CLASS_ELF
   /*+243*/   BYTE   PartyModeHealPercent;   //-> CLASS_ELF
   /*+244*/   BOOL   PartyModeBuffOn;
   /*+248*/   DWORD   PartyModeBuffInterval;
   /*+252*/   BOOL   DarkSpiritOn;         //-> CLASS_DARKLORD
   /*+256*/   DWORD   DarkSpiritMode;         //-> CLASS_DARKLORD
   /*+260*/   BOOL   BuffOn;
   /*+264*/   DWORD   BuffSkill[3];
   /*+276*/   DWORD   BuffExtra[3];
   /*+288*/   DWORD   ObtainRange;
   /*+292*/   bool   ObtainRepairOn;
   /*+293*/   bool   ObtainPickNear;
   /*+294*/   bool   ObtainPickSelected;
   /*+295*/   bool   ObtainPickJewels;
   /*+296*/   bool   ObtainPickAncient;
   /*+297*/   bool   ObtainPickMoney;
   /*+298*/   bool   ObtainPickExcellent;
   /*+299*/   bool   ObtainPickExtra;
   /*+300*/   BYTE   ObtainPickItemList[28][12];
   /*+636*/   BYTE   Unknown636;
   /*+637*/   BYTE   Unknown637;
   /*+638*/   BYTE   Unknown638;
} MUHelper, * lpMUHelper;
#pragma pack(pop)


typedef class
{
public:
   /*+16*/
   int      Color1;
   /*+40*/      int      Color2;
   /*+64*/      int      Color3;
   /*+88*/      int      Color6;
   /*+112*/   int      Color7;
   /*+136*/   int      Color8;
   /*+160*/   int      Color4;
   /*+184*/   int      Color5;
   /*+208*/   int      Color9;
   /*+232*/   int      Color10;

   /*+268*/   char *   Unknwon268;   //
   /*+316*/   DWORD   Unknown316;
   /*+320*/   DWORD   Unknown320;
   /*+328*/   DWORD   Unknown328;
   /*+336*/   float   Unknown336;
};


#pragma pack(push, 1)
struct PartyList //-> Complete (size: 32)
{
   /*+0*/   char   Name[10];
   /*+10*/   BYTE   Unknown10;
   /*+11*/   BYTE   Unknown11;
   /*+12*/   BYTE   MapNumber;
   /*+13*/   BYTE   PosX;
   /*+14*/   BYTE   PosY;
   BYTE gap01;
   /*+16*/   int      Life;
   /*+20*/   int      MaxLife;
   /*+24*/   BYTE   LifePercent;
   BYTE gap02[3];
   /*+28*/   int      ViewportID;
};
typedef PartyList * lpPartyList;
#pragma pack(pop)


#pragma pack(push, 1)
struct ItemAttribute
{
   /*+0*/      char Name[10];   //??
   /*+60*/      short ReqLevel;
};
#pragma pack(pop)


#pragma pack(push, 1)
typedef struct   //-> Complete (size: 107)
{
   /*+0*/      short   ItemID;
   /*+2*/      int      Level;
   /*+6*/      char   Unknown6;
   /*+7*/      char   Unknown7;
   /*+8*/      char   Unknown8;
   /*+9*/      short   DamageMin;
   /*+11*/      short   DamageMax;
   /*+13*/      char   Unknown13;
   /*+14*/      short   Unknown14;
   /*+16*/      short   Unknown16;
   /*+18*/      char   Unknown18;
   /*+19*/      char   Unknown19;
   /*+20*/      short   Unknown20;
   /*+22*/      char   Durability;
   /*+23*/      char   ExcellentOption;
   /*+24*/      char   AncientOption;
   /*+25*/      short   ReqStrenght;
   /*+27*/      short   ReqDextirity;
   /*+29*/      short   ReqEnergy;
   /*+31*/      short   ReqVitality;
   /*+33*/      short   ReqCommand;
   /*+35*/      short   ReqLevel;
   /*+37*/      char   SpecialCount;
   /*+38*/      WORD   SpecialType[8];
   /*+54*/      BYTE   SpecialValue[8];
   /*+62*/      int      UniqueID;
   /*+66*/      char   Unknown66;
   /*+67*/      char    PosX;
   /*+68*/      char    PosY;
   /*+69*/      WORD    HarmonyType;
   /*+71*/      short   HarmonyValue;
   /*+73*/      char    Is380Item;
   /*+74*/      char   SocketOption[5];
   /*+79*/      char   Unknown79;
   /*+80*/      char   SocketSeedIndex[5];
   /*+85*/      char   SocketSphereLevel[5];
   /*+90*/      char   SocketSet;
   BYTE gap01[5];
   /*+96*/      char   DurabilityState;
   /*+97*/      char    PeriodItem;
   /*+98*/      char    ExpiredItem;
   /*+99*/      int      ExpireDateConvert;
   /*+103*/   int      Unknown103;
} ObjectItem, * lpItemObj;
#pragma pack(pop)


#pragma pack(push, 1)
struct UnknownStruct0
{
   /*+0*/   WORD   Unknown0;//?
   /*+2*/   WORD   Unknown2;//?
   /*+4*/   WORD   Unknown4;//?
   /*+6*/   WORD   Unknown6;
   /*+8*/   WORD   Unknown8;
   /*+10*/   WORD   Unknown10;
   /*+12*/   WORD   Unknown12;//?
   /*+14*/   WORD   Unknown14;
   /*+16*/   WORD   Unknown16;
};
#pragma pack(pop)


#pragma pack(push, 1)
typedef struct   //-> InDev (size: 6012)
{
   /*+0*/      char   Name[11];
   /*+11*/      char   Class;
   /*+12*/      BYTE   Unknown12;
   /*+13*/      BYTE   Unknown13;
   /*+14*/      short   Level;
   /*+16*/      DWORD   Experience;
   /*+20*/      DWORD   NextExperience;
   /*+24*/      WORD   Strength;
   /*+26*/      WORD   Dexterity;
   /*+28*/      WORD   Vitality;
   /*+30*/      WORD   Energy;
   /*+32*/      WORD   Leadership;
   /*+34*/      WORD   Life;
   /*+36*/      WORD   Mana;
   /*+38*/      WORD   MaxLife;
   /*+40*/      WORD   MaxMana;
   /*+42*/      WORD   Shield;
   /*+44*/      WORD   MaxShield;
   /*+46*/      WORD   AttackRate;
   /*+48*/      WORD   DefenseRate;
   /*+50*/      short   AddStrength;
   /*+52*/      short   AddDexterity;
   /*+54*/      short   AddVitality;
   /*+56*/      short   AddEnergy;
   BYTE gap01[4];
   /*+62*/      WORD   AddLeadership;   //GS use unsigned value...
   /*+64*/      WORD   Stamina;
   /*+66*/      WORD   MaxStamina;
   /*+68*/      BYTE   ItemSpecialUseFlag;      //Bit decomposit (1, 2, 8)
   BYTE UnknownGap;
   /*+70*/      WORD   ItemSpecialUseTime[3];   //[ ]
   /*+76*/      WORD   AddPoint;   //FruitStat start
   /*+78*/      WORD   MaxAddPoint;
   /*+80*/      WORD   MinusPoint;
   /*+82*/      WORD   MaxMinusPoint;   //FruitStat end
   /*+84*/      WORD   AttackSpeed;
   /*+86*/      WORD   DamageRate;
   /*+88*/      WORD   DamageMin;
   /*+90*/      WORD   DamageMax;
   /*+92*/      WORD   Unknown92;
   /*+94*/      WORD   Unknown94;
   /*+96*/      WORD   MagicSpeed;
   BYTE gap02[10];
   /*+108*/   WORD   Unknown108;
   /*+110*/   WORD   Unknown110;
   BYTE gap03[4];
   /*+116*/   WORD   LevelPoint;
   /*+118*/   BYTE   MagicCount;
   /*+119*/   BYTE   Unknown119;
   /*+120*/   WORD   pMagicList[650];   //maybe 150?
   /*1420*/
   BYTE gap04[3252];   //maybe preview struct some here
   /*+4672*/   ObjectItem pEquipment[12];
   /*+5956*/   DWORD   MoneyInventory;   //(C4)
   /*+5960*/   DWORD   MoneyWarehouse;   //(C4)
   BYTE gap05[8];
   /*+5972*/   UnknownStruct0 Unknown5972;
   BYTE gap06[2];
   /*+5992*/   WORD   Unknown5992;
   /*+5994*/   WORD   Unknown5994;
   BYTE gap07[2];
   /*+5998*/   WORD   Unknown5998;
   /*+6000*/   WORD   Unknown6000;
   /*+6002*/   WORD   Unknown6002;
   /*+6004*/   WORD   Unknown6004;
   /*+6006*/   WORD   Unknown6006;
   /*+6008*/   BYTE   Unknown6008;
   /*+6009*/   BYTE   Unknown6009;
   /*+6010*/   BYTE   Unknown6010;
   /*+6011*/   BYTE   Unknown6011;
} ObjectCharacter, * lpCharObj;
#pragma pack(pop)


#pragma pack(push, 1)

struct VAngle
{
   float X;
   float Y;
   float Z;
};
#pragma pack(pop)


#pragma pack(push, 1)
struct ObjectModel_424
{
   float Unknown0;
   float Unknown4;
   float Unknown8;
   float Unknown12;
   float Unknown16;
   float Unknown20;
   float Unknown24;
   float Unknown28;
   float Unknown32;
   float Unknown36;
   float Unknown40;
   float Unknown44;
};
#pragma pack(pop)


#pragma pack(push, 1)
struct ObjectModel   //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;
   BYTE gap09[56];
   /*+204*/   VAngle   Unknown204;
   /*+216*/   VAngle   Unknown216;
   BYTE gap10[24];
   /*+252*/   float   VecPosX;
   /*+256*/   float   VecPosY;
   /*+260*/   float   VecPosZ;
   /*+264*/   float   Unknown264;
   /*+268*/   float   Unknown268;
   /*+272*/   float   Unknown272;
   BYTE gap11[148];
   /*+424*/   ObjectModel_424 Unknown424;
   BYTE gap12[176];
   /*+484*/
};
#pragma pack(pop)


#pragma pack(push, 1)
typedef struct   //-> InDev (size: 1432)
{
   BYTE gap01[14];
   /*+14*/      bool   InSafeZone;
   /*+15*/      BYTE   Unknown15;
   /*+16*/      BYTE   Unknown16;
   /*+17*/      BYTE   IsLiveObject;
   /*+18*/      BYTE   Unknown18;
   /*+19*/      BYTE   Class;
   /*+20*/      BYTE   Unknown20;
   /*+21*/      BYTE   CtlCode;   //Bit decomposit (0x10)
   /*+22*/      BYTE   Unknown22;
   /*+23*/      BYTE   Unknown23;
   /*+24*/      BYTE   Unknown24;
   /*+25*/      BYTE   Unknown25;
   /*+26*/      BYTE   Unknown26;
   /*+27*/      BYTE   Unknown27;
   /*+28*/      BYTE   Unknown28;
   /*+29*/      BYTE   Unknown29;
   /*+30*/      BYTE   Unknown30;
   /*+31*/      BYTE   GensInfluence;   //0 - None, 1 - D, 2 - V
   /*+32*/      BYTE   Unknown32;
   /*+33*/      BYTE   Unknown33;
   /*+34*/      BYTE   Unknown34;
   /*+35*/      BYTE   Unknown35;
   /*+36*/      BYTE   Unknown36;   //Personal Shop
   /*+37*/      BYTE   Unknown37;
   /*+38*/      WORD   Unknown38;
   /*+40*/      BYTE   Unknown40;
   /*+41*/      BYTE   Unknown41;
   /*+42*/      BYTE   Unknown42;
   BYTE gap03[2];
   /*+45*/      BYTE   RespawnPosX;
   /*+46*/      BYTE   RespawnPosY;
   BYTE gap04[3];
   /*+50*/      BYTE   ActiveMagic;
   BYTE gap05[5];
   /*+56*/      char   Name[25];   //need check size
   BYTE gap06[39];
   /*+120*/   BYTE   Unknown120;
   /*+121*/   BYTE   Unknown121;
   BYTE gap07[2];
   /*+124*/   WORD   Unknown124;
   /*+126*/   WORD   aIndex;
   /*+128*/   WORD   Unknown128;
   /*+130*/   WORD   Unknown130;
   /*+132*/   WORD   ID;
   /*+134*/   WORD   Unknown134;
   /*+136*/   //maybe word
   BYTE gap09[36];
   /*+172*/   DWORD   MapPosX;
   /*+176*/   DWORD   MapPosY;
   BYTE gap10[8];
   /*+188*/   float   Unknown188;
   BYTE gap11[76];
   /*+268*/   short   HelmSlot;
   /*+270*/   BYTE   HelmLevel;
   /*+271*/   BYTE   HelmExcellent;
   /*+272*/   BYTE   HelmAncient;
   BYTE gap12[31];
   /*+304*/   short   ArmorSlot;
   /*+306*/   BYTE   ArmorLevel;
   /*+307*/   BYTE   ArmorExcellent;
   /*+308*/   BYTE   ArmorAncient;
   BYTE gap13[31];
   /*+340*/   short   PantsSlot;
   /*+342*/   BYTE   PantsLevel;
   /*+343*/   BYTE   PantsExcellent;
   /*+344*/   BYTE   PantsAncient;
   BYTE gap14[31];
   /*+376*/   short   GlovesSlot;
   /*+378*/   BYTE   GlovesLevel;
   /*+379*/   BYTE   GlovesExcellent;
   /*+380*/   BYTE   GlovesAncient;
   BYTE gap15[31];
   /*+412*/   short   BootsSlot;
   /*+414*/   BYTE   BootsLevel;
   /*+415*/   BYTE   BootsExcellent;
   /*+416*/   BYTE   BootsAncient;
   BYTE gap16[31];
   /*+448*/   short   WeaponFirstSlot;
   /*+450*/   BYTE   WeaponFirstLevel;
   /*+451*/   BYTE   WeaponFirstExcellent;
   /*+452*/   BYTE   WeaponFirstAncient;
   BYTE gap17[31];
   /*+484*/   short   WeaponSecondSlot;
   /*+486*/   BYTE   WeaponSecondLevel;
   /*+487*/   BYTE   WeaponSecondExcellent;
   /*+488*/   BYTE   WeaponSecondAncient;
   BYTE gap18[31];
   /*+520*/   short   WingsSlot;
   /*+522*/   BYTE   WingsLevel;
   /*+523*/   BYTE   WingsExcellent;
   /*+524*/   BYTE   WingsAncient;
   BYTE gap19[31];
   /*+556*/   short   PetSlot;
   /*+558*/   BYTE   PetLevel;
   /*+559*/   BYTE   PetExcellent;
   /*+560*/   BYTE   PetAncient;
   BYTE gap20[111];
   /*+672*/   DWORD   Unknown672;
   /*+676*/   DWORD   Unknown676;
   BYTE gap21[84];
   /*+764*/   DWORD   Unknown764;
   BYTE gap22[8];
   /*+776*/   ObjectModel   m_Model;
   /*+1424*/   BYTE   Unknown1424;   //maybe gens rank
   BYTE gap23[3];
   /*+1428*/   DWORD   Unknown1428;   //-> end
} ObjectPreview, * lpViewObj;
#pragma pack(pop)

y aca una foto



a ver si me pueden ayudar y si no bueno gracias igual :)


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
3 Replies
3601 Views
Last post October 03, 2018, 02:37:12 PM
by gtpro
0 Replies
1065 Views
Last post March 09, 2018, 08:30:30 AM
by tigre1123
3 Replies
4527 Views
Last post September 07, 2020, 08:36:45 PM
by tosadorin1
3 Replies
5510 Views
Last post October 01, 2022, 12:27:06 PM
by MrRabbit
0 Replies
351 Views
Last post January 18, 2024, 12:23:38 PM
by doouglas66