EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Archive::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=621)
-   -   Item_Struct changes ? (https://www.eqemulator.org/forums/showthread.php?t=6013)

mytopie 03-16-2003 12:29 PM

Item_Struct changes ?
 
Hey guys,

did the item structure changed since 4.1 ? i'm asking because i've found few ithings that aren't where i expected them to be, specifically the skillModPercent and skillModId are shifted by 4 bytes i think.

I've created test item with the admin tool (v4.2), in items -> stats2 tab i have set the values from top to bottom to be consecutive from 24 to 35, so the skillModPercent should be 24 and skillModId should be 25.
Instead it is 26 and 27 which should be bane race and bane race modifier.

Anybody go any insight into this ?

Thanks Dingo :juggle:

mytopie 03-16-2003 02:25 PM

I've also noticed that defined ITEM_STRUCT_SIZE is 360 but sizeof(Item_Struct) in gdb returns 364

atm i'm working on syncing the Item_Struct with the one used in the admin tool v4.2 i'm not sure if that is a good thing or not, but since i don't run a server and i have no other way to get Item_Struct with known data and there is a 4 byte difference .. well you get the idea :D ..

I will post the differences here once i'm done so you can see them ...

Dingo :juggle:

mytopie 03-16-2003 03:26 PM

Here are the promised changes:

the original piece of the structure:

Code:

/*0279*/ sint8    effecttype;      // 0=combat, 1=click anywhere w/o class check, 2=latent/worn, 3=click anywhere EXPENDABLE, 4=click worn, 5=click anywhere w/ class check, -1=no effect
/*0280*/ uint16  spellId;        // spellId of special effect
/*0282*/ uint8    unknown0282[10]; // ***Placeholder 0288
/*0292*/ uint32  casttime;        // Cast time of clicky item in miliseconds
/*0296*/ uint8    unknown0296[16]; // ***Placeholder
/*0312*/ uint16  skillModPercent; // Skill mod value in % (Sept 25, 2002)
/*0314*/ sint16  skillModId;      // Skill mod index (Sept 25, 2002)
/*0316*/ sint16  BaneDMGRace;
/*0318*/ sint16  BaneDMGBody;
/*0321*/ uint8    unknown0321[4];  // placeholder ?
/*0324*/ uint8    RecLevel;        // max should be 65
/*0325*/ uint8    RecSkill;        // Max should be 252
/*0326*/ uint8    unknown0325[2];
/*0328*/ uint8    ElemDmgType;
/*0329*/ uint8    ElemDmg;
/*0330*/ uint8    unknown0330[28];  // Bane and Elemental dmg struct (writing it now, hopefully will be up soon)
/*0358*/ int16    focusspellId;

And here is the modified code:

Code:

/*0279*/ sint8    effecttype;      // 0=combat, 1=click anywhere w/o class check, 2=latent/worn, 3=click anywhere EXPENDABLE, 4=click worn, 5=click anywhere w/ class check, -1=no effect
/*0280*/ uint16  spellId;        // spellId of special effect
/*0282*/ uint8    unknown0282[10]; // ***Placeholder 0288
/*0292*/ uint32  casttime;        // Cast time of clicky item in miliseconds
/*0296*/ uint8    unknown0296[12]; // ***Placeholder
/*0308*/ sint16  skillModId;      // Skill mod index (Sept 25, 2002)
/*0310*/ uint16  skillModPercent; // Skill mod value in % (Sept 25, 2002)
/*0312*/ sint16  BaneDMGRace;    // Bane Damage Race
/*0314*/ sint16  BaneDMGMod;      // Bane Damage Modifier
/*0316*/ sint16  BaneDMG;        // Bane Damage
/*0318*/ uint8    unknown0322[2];  // placeholder ?
/*0320*/ uint8    RecLevel;        // max should be 65
/*0321*/ uint8    RecSkill;        // Max should be 252
/*0322*/ uint8    unknown0326[1];  // placeholder ?
/*0323*/ uint8    ResistDmgType;  // Resist Damage Type
/*0324*/ sint16  ResistDmg;      // Resist Damage
/*0326*/ uint8    unknown0325[2];  // placeholder ?
/*0328*/ uint8    ElemDmgType;   
/*0329*/ uint8    ElemDmg;
/*0330*/ uint8    unknown0330[28];  // Bane and Elemental dmg struct (writing it now, hopefully will be up soon)
/*0358*/ int16    focusspellId;

the modified code works with admin tool v4.2, not sure if it would work with the client prog since i have no way to test it.

:*EDIT> - I just checked the changes against hack server and they appear to be correct, atleast the bane damage and skill mods for sure. <EDIT*

Dingo :juggle:

killspree 03-16-2003 11:48 PM

I'm thinking either 318 or 322 are the required levels that are listed on a lot of PoP items.

Trumpcard 03-17-2003 01:47 AM

I'll try using this struct when I get in this afternoon and see if it works clientside.

mytopie 03-17-2003 02:01 AM

give me couple of hours before you do, i think the modifers are only 8 bits instead 16 since some of the things that i compared didn't match up the way i expected them to, but i don't have any items that i would be 100% positive about that they were collected from live server ...

ID 28941 - 0x00710D
Name Great Sword of Slaughter
Size Medium - 0x000002
Type Normal - 0x000000
Weapon Skill 2 Hand Slash - 0x000001
Damage 10 - 0x00000A
Delay 40 - 0x000028
Bane Damage 15415% vs Werewolf - 0x3C37 - 0x000E
Weight 1.00 - 0x00000A
Price 1p - 0x0003E8
Flags Nodrop - [GM:0][LR:0][ND:0][NS:-1]
Mods AC: +50, Str: +30, Sta: +30, Agi: +30, Dex: +30, Hp: +125, Mana: +125, Magic Resist: +25, Fire Resist: +25, Cold Resist: +25, Poison Resist: +25, Disease Resist: +25
Classes Paladin, Ranger, Shadow Knight, Warrior - 0x00001D
Races Barbarian, Dark Elf, Dwarf, Erudite, Gnome, Half Elf, Halfling, High Elf, Human, Iksar, Ogre, Troll, Vah Shir, Wood Elf - 0x003FFF
Inventory Slots Primary - 0x002000

check out the bane damage percentage ;)

Dingo :juggle:

mytopie 03-17-2003 04:07 AM

hmm i need to get some sleep, so far it looks like this:

Code:

/*0279*/ sint8    effecttype;      // 0=combat, 1=click anywhere w/o class check, 2=latent/worn, 3=click anywhere EXPENDABLE, 4=click worn, 5=click anywhere w/ class check, -1=no effect
/*0280*/ uint16  spellId;        // spellId of special effect
/*0282*/ uint8    unknown0282[10]; // ***Placeholder 0288
/*0292*/ uint32  casttime;        // Cast time of clicky item in miliseconds
/*0296*/ uint8    unknown0296[12]; // ***Placeholder
/*0308*/ sint16  skillModId;      // Skill mod index (Sept 25, 2002)
/*0310*/ uint16  skillModPercent; // Skill mod value in % (Sept 25, 2002)
/*0312*/ sint16  BaneDMGRace;    // Bane Damage Race
/*0313*/ uint8    BaneDMGMod;      // Bane Damage Modifier
/*0314*/ uint8    unknown0314;
/*0316*/ sint16  BaneDMG;        // Bane Damage
/*0318*/ uint8    unknown0318[2];
/*0320*/ uint8    RecLevel;        // max should be 65
/*0321*/ uint8    RecSkill;        // Max should be 252
/*0322*/ uint8    unknown0322;    // placeholder ?
/*0323*/ uint8    ResistDmgType;  // Resist Damage Type
/*0324*/ sint16  ResistDmg;      // Resist Damage
/*0326*/ uint8    unknown0326[2];
/*0328*/ uint8    ElemDmgType;   
/*0329*/ uint8    ElemDmg;
/*0330*/ uint8    unknown0330[28];  // Bane and Elemental dmg struct (writing it now, hopefully will be up soon)
/*0358*/ int16    focusspellId;

snip from p/d item.common:

Quote:

effecttype = 125,
spellId = 65535,
unknown0282 = {0, 0, 0, 0, 0, 0, 160, 65, 0, 0},
casttime = 0,
unknown0296 = {0 <repeats 12 times>},
skillModId = 0,
skillModPercent = 0,
BaneDMGRace = 3,
BaneDMGMod = 10,
unknown0314 = 0,
BaneDMG = 0,
unknown0318 = {0, 0},
RecLevel = 69,
RecSkill = 1,
unknown0322 = 0,
ResistDmgType = 0,
ResistDmg = 0,
unknown0326 = {0, 0},
ElemDmgType = 0,
ElemDmg = 0,
unknown0330 = {0 <repeats 28 times>},
focusspellId = 0
it seems that some of the variables are also used for different purpose, i've found out that current client doesn't show bane damage (?) but i compared item 15996 - Hammer of divination with my database, allakhazam data on the item, admin tool and client item stats on hack server.

allthough it doesn't show in the client, allakhazam shows +10 vs undead, the admin tool shows the same, and with the struct snip above i got the same from my database which is v4.2.

i'm not sure about the RecLevel and RecSkill, it lines up with admin tool v4.2 but it doesn't show in the client and atleast the RecLevel should.

Dingo :juggle:

killspree 03-17-2003 04:29 AM

Erm, it doesnt? RecLevel shows fine on my client...how old is the eq you're trying to view the item with?

mytopie 03-17-2003 10:35 AM

its from the eqemu patch server last time patched umm 2-3 days ago
if i could find one item with bane damage that i was sure about that it was collected by packet sniffer instead of created from scratch, it would be much easier :)

what i ment was some items show rec levels so i can figure out where it is stored given some time, but the bane damage doesn't show ...

Dingo :juggle:

killspree 03-17-2003 10:40 AM

Oh, try any vex thal items for recommended levels. A bane weapon off the top of my head would be The Sword of Ssraeshza.

mytopie 03-17-2003 10:47 AM

Thanks, the rec level items work but ssra sword shows magic dam: 2 instead of bane damage .. i think we both, the eqemu and the admin tool little offset on that data, i'm gonna try to see if i can find something on hack that shows bane ...

Dingo :juggle:

killspree 03-17-2003 11:56 AM

Ah extra planar isnt "bane"? Because it has either 7 or 9 damage to extra planar on top of the 2 magic damage.


All times are GMT -4. The time now is 06:47 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.