converted spell id's to integers and made the internal representation 322-bit

This commit is contained in:
dannuic
2026-04-26 23:53:57 -06:00
parent 05cb1921e8
commit 5de441fa20
134 changed files with 1644 additions and 1645 deletions
+3 -3
View File
@@ -466,7 +466,7 @@ namespace RoF
for (int i = 0; i < emu->count; ++i)
{
__packet->WriteUInt32(emu->type == 0 ? ServerToRoFBuffSlot(emu->entries[i].buff_slot) : emu->entries[i].buff_slot);
__packet->WriteUInt32(emu->entries[i].spell_id);
__packet->WriteSInt32 (emu->entries[i].spell_id);
__packet->WriteUInt32(emu->entries[i].tics_remaining);
__packet->WriteUInt32(emu->entries[i].num_hits); // Unknown
__packet->WriteString(emu->entries[i].caster);
@@ -1879,7 +1879,7 @@ namespace RoF
if (emu->spellid[i])
{
__packet->WriteUInt32(i);
__packet->WriteUInt32(emu->spellid[i]);
__packet->WriteSInt32 (emu->spellid[i]);
__packet->WriteUInt32(emu->ticsremaining[i]);
__packet->WriteUInt32(0); // numhits
__packet->WriteString("");
@@ -2179,7 +2179,7 @@ namespace RoF
outapp->WriteUInt32(emu->buffs[r].counters);
outapp->WriteUInt32(emu->buffs[r].duration);
outapp->WriteUInt8(emu->buffs[r].level);
outapp->WriteUInt32(emu->buffs[r].spellid);
outapp->WriteSInt32 (emu->buffs[r].spellid);
outapp->WriteUInt8(effect_type); // Only ever seen 2
outapp->WriteUInt32(emu->buffs[r].num_hits);
outapp->WriteUInt32(0);
+3 -3
View File
@@ -724,7 +724,7 @@ namespace RoF2
for (int i = 0; i < emu->count; ++i)
{
__packet->WriteUInt32(emu->type == 0 ? ServerToRoF2BuffSlot(emu->entries[i].buff_slot) : emu->entries[i].buff_slot);
__packet->WriteUInt32(emu->entries[i].spell_id);
__packet->WriteSInt32 (emu->entries[i].spell_id);
__packet->WriteUInt32(emu->entries[i].tics_remaining);
__packet->WriteUInt32(emu->entries[i].num_hits); // Unknown
__packet->WriteString(emu->entries[i].caster);
@@ -2485,7 +2485,7 @@ namespace RoF2
if (emu->spellid[i])
{
__packet->WriteUInt32(i);
__packet->WriteUInt32(emu->spellid[i]);
__packet->WriteSInt32 (emu->spellid[i]);
__packet->WriteUInt32(emu->ticsremaining[i]);
__packet->WriteUInt32(0); // num hits
__packet->WriteString("");
@@ -2786,7 +2786,7 @@ namespace RoF2
outapp->WriteUInt32(emu->buffs[r].counters);
outapp->WriteUInt32(emu->buffs[r].duration);
outapp->WriteUInt8(emu->buffs[r].level);
outapp->WriteUInt32(emu->buffs[r].spellid);
outapp->WriteSInt32 (emu->buffs[r].spellid);
outapp->WriteUInt8(effect_type); // Only ever seen 2
outapp->WriteUInt32(emu->buffs[r].num_hits);
outapp->WriteUInt32(0);
+11 -11
View File
@@ -668,7 +668,7 @@ struct NewZone_Struct {
*/
struct MemorizeSpell_Struct {
uint32 slot; // Spot in the spell book/memorized slot
uint32 spell_id; // Spell id (200 or c8 is minor healing, etc)
int32 spell_id; // Spell id (200 or c8 is minor healing, etc)
uint32 scribing; // 1 if memorizing a spell, set to 0 if scribing to book, 2 if un-memming
uint32 reduction; // lowers reuse
};
@@ -705,7 +705,7 @@ struct ManaChange_Struct
{
/*00*/ uint32 new_mana; // New Mana AMount
/*04*/ uint32 stamina;
/*08*/ uint32 spell_id;
/*08*/ int32 spell_id;
/*12*/ uint8 keepcasting; // won't stop the cast. Change mana while casting?
/*13*/ uint8 padding[3]; // client doesn't read it, garbage data seems like
/*16*/ int32 slot; // -1 for normal usage slot for when we want silent interrupt? I think it does timer stuff or something. Linked Spell Reuse interrupt uses it
@@ -719,7 +719,7 @@ struct SwapSpell_Struct
struct BeginCast_Struct
{
/*000*/ uint32 spell_id;
/*000*/ int32 spell_id;
/*004*/ uint16 caster_id;
/*006*/ uint32 cast_time; // in miliseconds
/*010*/
@@ -728,7 +728,7 @@ struct BeginCast_Struct
struct CastSpell_Struct
{
/*00*/ uint32 slot;
/*04*/ uint32 spell_id;
/*04*/ int32 spell_id;
/*08*/ InventorySlot_Struct inventory_slot; // slot for clicky item, Seen unknown of 131 = normal cast
/*20*/ uint32 target_id;
/*24*/ uint32 cs_unknown[2];
@@ -760,7 +760,7 @@ struct SpellBuff_Struct
/*002*/ uint8 unknown002; //pretty sure padding now
/*003*/ uint8 unknown003; // MQ2 used to call this "damage shield" -- don't see client referencing it, so maybe server side DS type tracking?
/*004*/ float bard_modifier;
/*008*/ uint32 spellid;
/*008*/ int32 spellid;
/*012*/ uint32 duration;
/*016*/ uint32 player_id; // caster ID, pretty sure just zone ID
/*020*/ uint32 num_hits;
@@ -791,7 +791,7 @@ struct BuffRemoveRequest_Struct
// not in use
struct BuffIconEntry_Struct {
/*000*/ uint32 buff_slot;
/*004*/ uint32 spell_id;
/*004*/ int32 spell_id;
/*008*/ uint32 tics_remaining;
/*012*/ uint32 num_hits;
// char name[0]; caster name is also here sometimes
@@ -1513,7 +1513,7 @@ struct CombatDamage_Struct
/* 00 */ uint16 target;
/* 02 */ uint16 source;
/* 04 */ uint8 type; //slashing, etc. 231 (0xE7) for spells
/* 05 */ uint32 spellid;
/* 05 */ int32 spellid;
/* 09 */ int32 damage;
/* 13 */ float force; // cd cc cc 3d
/* 17 */ float hit_heading; // see above notes in Action_Struct
@@ -1549,7 +1549,7 @@ struct Death_Struct
/*004*/ uint32 killer_id;
/*008*/ uint32 corpseid; // was corpseid
/*012*/ uint32 attack_skill; // was type
/*016*/ uint32 spell_id;
/*016*/ int32 spell_id;
/*020*/ uint32 bindzoneid; //bindzoneid?
/*024*/ uint32 damage;
/*028*/ uint32 unknown028;
@@ -2658,7 +2658,7 @@ struct GroupFollow_Struct { // Live Follow Struct
};
struct InspectBuffs_Struct {
/*000*/ uint32 spell_id[BUFF_COUNT];
/*000*/ int32 spell_id[BUFF_COUNT];
/*168*/ int32 tics_remaining[BUFF_COUNT];
};
@@ -3077,7 +3077,7 @@ struct Resurrect_Struct
/*024*/ char your_name[64];
/*088*/ uint32 unknown088;
/*092*/ char rezzer_name[64];
/*156*/ uint32 spellid;
/*156*/ int32 spellid;
/*160*/ char corpse_name[64];
/*224*/ uint32 action;
/*228*/ uint32 unknown228;
@@ -4581,7 +4581,7 @@ struct SendAA_Struct {
/*0045*/ uint32 prereq_minpoints_count; // mutliple prereqs at least 1, even no prereqs
/*0049*/ uint32 prereq_minpoints; //min points in the prereq
/*0053*/ uint32 type;
/*0057*/ uint32 spellid;
/*0057*/ int32 spellid;
/*0061*/ uint32 unknown057; // Introduced during HoT - Seen 1 - Maybe account status or enable/disable AA?
/*0065*/ uint32 spell_type;
/*0069*/ uint32 spell_refresh;
+11 -11
View File
@@ -614,7 +614,7 @@ struct NewZone_Struct {
*/
struct MemorizeSpell_Struct {
uint32 slot; // Spot in the spell book/memorized slot
uint32 spell_id; // Spell id (200 or c8 is minor healing, etc)
int32 spell_id; // Spell id (200 or c8 is minor healing, etc)
uint32 scribing; // 1 if memorizing a spell, set to 0 if scribing to book, 2 if un-memming
uint32 reduction; // lowers reuse
};
@@ -651,7 +651,7 @@ struct ManaChange_Struct
{
/*00*/ uint32 new_mana; // New Mana AMount
/*04*/ uint32 stamina;
/*08*/ uint32 spell_id;
/*08*/ int32 spell_id;
/*12*/ uint8 keepcasting; // won't stop the cast. Change mana while casting?
/*13*/ uint8 padding[3]; // client doesn't read it, garbage data seems like
/*16*/ int32 slot; // -1 for normal usage slot for when we want silent interrupt? I think it does timer stuff or something. Linked Spell Reuse interrupt uses it
@@ -665,7 +665,7 @@ struct SwapSpell_Struct
struct BeginCast_Struct
{
/*000*/ uint32 spell_id;
/*000*/ int32 spell_id;
/*004*/ uint16 caster_id;
/*006*/ uint32 cast_time; // in miliseconds
/*010*/
@@ -674,7 +674,7 @@ struct BeginCast_Struct
struct CastSpell_Struct
{
/*00*/ uint32 slot;
/*04*/ uint32 spell_id;
/*04*/ int32 spell_id;
/*08*/ InventorySlot_Struct inventory_slot; // slot for clicky item, Seen unknown of 131 = normal cast
/*20*/ uint32 target_id;
/*24*/ uint32 cs_unknown[2];
@@ -706,7 +706,7 @@ struct SpellBuff_Struct
/*002*/ uint8 unknown002; //pretty sure padding now
/*003*/ uint8 unknown003; // MQ2 used to call this "damage shield" -- don't see client referencing it, so maybe server side DS type tracking?
/*004*/ float bard_modifier;
/*008*/ uint32 spellid;
/*008*/ int32 spellid;
/*012*/ uint32 duration;
/*016*/ uint32 player_id; // caster ID, pretty sure just zone ID
/*020*/ uint32 num_hits;
@@ -737,7 +737,7 @@ struct BuffRemoveRequest_Struct
// not in use
struct BuffIconEntry_Struct {
/*000*/ uint32 buff_slot;
/*004*/ uint32 spell_id;
/*004*/ int32 spell_id;
/*008*/ uint32 tics_remaining;
/*012*/ uint32 num_hits;
// char name[0]; caster name is also here sometimes
@@ -1500,7 +1500,7 @@ struct CombatDamage_Struct
/* 00 */ uint16 target;
/* 02 */ uint16 source;
/* 04 */ uint8 type; //slashing, etc. 231 (0xE7) for spells
/* 05 */ uint32 spellid;
/* 05 */ int32 spellid;
/* 09 */ int32 damage;
/* 13 */ float force; // cd cc cc 3d
/* 17 */ float hit_heading; // see above notes in Action_Struct
@@ -1536,7 +1536,7 @@ struct Death_Struct
/*004*/ uint32 killer_id;
/*008*/ uint32 corpseid; // was corpseid
/*012*/ uint32 attack_skill; // was type
/*016*/ uint32 spell_id;
/*016*/ int32 spell_id;
/*020*/ uint32 bindzoneid; //bindzoneid?
/*024*/ uint32 damage;
/*028*/ uint32 unknown028;
@@ -2603,7 +2603,7 @@ struct GroupFollow_Struct { // Live Follow Struct
};
struct InspectBuffs_Struct {
/*000*/ uint32 spell_id[BUFF_COUNT];
/*000*/ int32 spell_id[BUFF_COUNT];
/*168*/ int32 tics_remaining[BUFF_COUNT];
};
@@ -3013,7 +3013,7 @@ struct Resurrect_Struct
/*024*/ char your_name[64];
/*088*/ uint32 unknown088;
/*092*/ char rezzer_name[64];
/*156*/ uint32 spellid;
/*156*/ int32 spellid;
/*160*/ char corpse_name[64];
/*224*/ uint32 action;
/*228*/ uint32 unknown228;
@@ -4333,7 +4333,7 @@ struct SendAA_Struct {
/*0045*/ uint32 prereq_minpoints_count; // mutliple prereqs at least 1, even no prereqs
/*0049*/ uint32 prereq_minpoints; //min points in the prereq
/*0053*/ uint32 type;
/*0057*/ uint32 spellid;
/*0057*/ int32 spellid;
/*0061*/ uint32 unknown057; // Introduced during HoT - Seen 1 - Maybe account status or enable/disable AA?
/*0065*/ uint32 spell_type;
/*0069*/ uint32 spell_refresh;
+9 -9
View File
@@ -480,7 +480,7 @@ struct NewZone_Struct {
*/
struct MemorizeSpell_Struct {
uint32 slot; // Spot in the spell book/memorized slot
uint32 spell_id; // Spell id (200 or c8 is minor healing, etc)
int32 spell_id; // Spell id (200 or c8 is minor healing, etc)
uint32 scribing; // 1 if memorizing a spell, set to 0 if scribing to book, 2 if un-memming
uint32 reduction; // lowers reuse
};
@@ -517,7 +517,7 @@ struct ManaChange_Struct
{
/*00*/ uint32 new_mana; // New Mana AMount
/*04*/ uint32 stamina;
/*08*/ uint32 spell_id;
/*08*/ int32 spell_id;
/*12*/ uint8 keepcasting; // won't stop the cast. Change mana while casting?
/*13*/ uint8 padding[3]; // client doesn't read it, garbage data seems like
/*16*/ int32 slot; // -1 for normal usage slot for when we want silent interrupt? I think it does timer stuff or something. Linked Spell Reuse interrupt uses it
@@ -535,14 +535,14 @@ struct BeginCast_Struct
{
// len = 8
/*004*/ uint16 caster_id;
/*006*/ uint16 spell_id;
/*006*/ int16 spell_id;
/*016*/ uint32 cast_time; // in miliseconds
};
struct CastSpell_Struct
{
uint32 slot;
uint32 spell_id;
int32 spell_id;
uint32 inventoryslot; // slot for clicky item, 0xFFFF = normal cast
uint32 target_id;
uint8 cs_unknown[4];
@@ -571,7 +571,7 @@ struct SpellBuff_Struct
/*001*/ uint8 level; // Seen 1 for no buff
/*002*/ uint8 bard_modifier;
/*003*/ uint8 unknown003; // MQ2 used to call this "damage shield" -- don't see client referencing it, so maybe server side DS type tracking?
/*004*/ uint32 spellid;
/*004*/ int32 spellid;
/*008*/ uint32 duration;
/*012*/ uint32 counters;
/*016*/ uint32 unknown016;
@@ -1266,7 +1266,7 @@ struct CombatDamage_Struct
/* 00 */ uint16 target;
/* 02 */ uint16 source;
/* 04 */ uint8 type; //slashing, etc. 231 (0xE7) for spells
/* 05 */ uint16 spellid;
/* 05 */ int16 spellid;
/* 07 */ int32 damage;
/* 11 */ float force; // cd cc cc 3d
/* 15 */ float hit_heading; // see above notes in Action_Struct
@@ -1301,7 +1301,7 @@ struct Death_Struct
/*004*/ uint32 killer_id;
/*008*/ uint32 corpseid; // was corpseid
/*012*/ uint32 attack_skill; // was type
/*016*/ uint32 spell_id;
/*016*/ int32 spell_id;
/*020*/ uint32 bindzoneid; //bindzoneid?
/*024*/ uint32 damage;
/*028*/ uint32 unknown028;
@@ -2534,7 +2534,7 @@ struct Resurrect_Struct {
char your_name[64];
uint32 unknown88;
char rezzer_name[64];
uint32 spellid;
int32 spellid;
char corpse_name[64];
uint32 action;
/* 228 */
@@ -3787,7 +3787,7 @@ struct SendAA_Struct {
/*0037*/ uint32 prereq_skill; //is < 0, abs() is category #
/*0041*/ uint32 prereq_minpoints; //min points in the prereq
/*0045*/ uint32 type;
/*0049*/ uint32 spellid;
/*0049*/ int32 spellid;
/*0053*/ uint32 spell_type;
/*0057*/ uint32 spell_refresh;
/*0061*/ uint32 classes;
+9 -9
View File
@@ -480,7 +480,7 @@ struct NewZone_Struct {
*/
struct MemorizeSpell_Struct {
uint32 slot; // Spot in the spell book/memorized slot
uint32 spell_id; // Spell id (200 or c8 is minor healing, etc)
int32 spell_id; // Spell id (200 or c8 is minor healing, etc)
uint32 scribing; // 1 if memorizing a spell, set to 0 if scribing to book, 2 if un-memming
uint32 reduction; // lowers reuse
};
@@ -517,7 +517,7 @@ struct ManaChange_Struct
{
/*00*/ uint32 new_mana; // New Mana AMount
/*04*/ uint32 stamina;
/*08*/ uint32 spell_id;
/*08*/ int32 spell_id;
/*12*/ uint8 keepcasting; // won't stop the cast. Change mana while casting?
/*13*/ uint8 padding[3]; // client doesn't read it, garbage data seems like
/*16*/ int32 slot; // -1 for normal usage slot for when we want silent interrupt? I think it does timer stuff or something. Linked Spell Reuse interrupt uses it
@@ -535,14 +535,14 @@ struct BeginCast_Struct
{
// len = 8
/*004*/ uint16 caster_id;
/*006*/ uint16 spell_id;
/*006*/ int16 spell_id;
/*016*/ uint32 cast_time; // in miliseconds
};
struct CastSpell_Struct
{
uint32 slot;
uint32 spell_id;
int32 spell_id;
uint32 inventoryslot; // slot for clicky item, 0xFFFF = normal cast
uint32 target_id;
uint8 cs_unknown[4];
@@ -571,7 +571,7 @@ struct SpellBuff_Struct
/*001*/ uint8 level; // Seen 1 for no buff
/*002*/ uint8 bard_modifier;
/*003*/ uint8 unknown003; // MQ2 used to call this "damage shield" -- don't see client referencing it, so maybe server side DS type tracking?
/*004*/ uint32 spellid;
/*004*/ int32 spellid;
/*008*/ uint32 duration;
/*012*/ uint32 counters;
/*016*/ uint32 unknown016;
@@ -1266,7 +1266,7 @@ struct CombatDamage_Struct
/* 00 */ uint16 target;
/* 02 */ uint16 source;
/* 04 */ uint8 type; //slashing, etc. 231 (0xE7) for spells
/* 05 */ uint16 spellid;
/* 05 */ int16 spellid;
/* 07 */ int32 damage;
/* 11 */ float force; // cd cc cc 3d
/* 15 */ float hit_heading; // see above notes in Action_Struct
@@ -1301,7 +1301,7 @@ struct Death_Struct
/*004*/ uint32 killer_id;
/*008*/ uint32 corpseid; // was corpseid
/*012*/ uint32 attack_skill; // was type
/*016*/ uint32 spell_id;
/*016*/ int32 spell_id;
/*020*/ uint32 bindzoneid; //bindzoneid?
/*024*/ uint32 damage;
/*028*/ uint32 unknown028;
@@ -2504,7 +2504,7 @@ struct Resurrect_Struct {
char your_name[64];
uint32 unknown88;
char rezzer_name[64];
uint32 spellid;
int32 spellid;
char corpse_name[64];
uint32 action;
/* 228 */
@@ -3711,7 +3711,7 @@ struct SendAA_Struct {
/*0037*/ uint32 prereq_skill; //is < 0, abs() is category #
/*0041*/ uint32 prereq_minpoints; //min points in the prereq
/*0045*/ uint32 type;
/*0049*/ uint32 spellid;
/*0049*/ int32 spellid;
/*0053*/ uint32 spell_type;
/*0057*/ uint32 spell_refresh;
/*0061*/ uint32 classes;
+9 -9
View File
@@ -406,7 +406,7 @@ struct NewZone_Struct {
*/
struct MemorizeSpell_Struct {
uint32 slot; // Spot in the spell book/memorized slot
uint32 spell_id; // Spell id (200 or c8 is minor healing, etc)
int32 spell_id; // Spell id (200 or c8 is minor healing, etc)
uint32 scribing; // 1 if memorizing a spell, set to 0 if scribing to book, 2 if un-memming
uint32 reduction; // lowers reuse
};
@@ -442,7 +442,7 @@ struct ManaChange_Struct
{
/*00*/ uint32 new_mana; // New Mana AMount
/*04*/ uint32 stamina;
/*08*/ uint32 spell_id;
/*08*/ int32 spell_id;
/*12*/ uint8 keepcasting; // won't stop the cast. Change mana while casting?
/*13*/ uint8 padding[3]; // client doesn't read it, garbage data seems like
};
@@ -459,14 +459,14 @@ struct BeginCast_Struct
{
// len = 8
/*000*/ uint16 caster_id;
/*002*/ uint16 spell_id;
/*002*/ int16 spell_id;
/*004*/ uint32 cast_time; // in miliseconds
};
struct CastSpell_Struct
{
uint32 slot;
uint32 spell_id;
int32 spell_id;
uint32 inventoryslot; // slot for clicky item, 0xFFFF = normal cast
uint32 target_id;
uint8 cs_unknown[4];
@@ -495,7 +495,7 @@ struct SpellBuff_Struct
/*001*/ uint8 level;
/*002*/ uint8 bard_modifier;
/*003*/ uint8 unknown003; // MQ2 used to call this "damage shield" -- don't see client referencing it, so maybe server side DS type tracking?
/*004*/ uint32 spellid;
/*004*/ int32 spellid;
/*008*/ int32 duration;
/*012*/ uint32 counters; // single book keeping value (counters, rune/vie)
/*016*/ uint32 player_id; // caster ID, pretty sure just zone ID
@@ -1142,7 +1142,7 @@ struct CombatDamage_Struct
/* 00 */ uint16 target;
/* 02 */ uint16 source;
/* 04 */ uint8 type; //slashing, etc. 231 (0xE7) for spells, skill
/* 05 */ uint16 spellid;
/* 05 */ int16 spellid;
/* 07 */ uint32 damage;
/* 11 */ float force;
/* 15 */ float hit_heading; // see above notes in Action_Struct
@@ -1177,7 +1177,7 @@ struct Death_Struct
/*004*/ uint32 killer_id;
/*008*/ uint32 corpseid; // was corpseid
/*012*/ uint32 attack_skill; // was type
/*016*/ uint32 spell_id;
/*016*/ int32 spell_id;
/*020*/ uint32 bindzoneid; //bindzoneid?
/*024*/ uint32 damage;
/*028*/ uint32 unknown028;
@@ -2233,7 +2233,7 @@ struct Resurrect_Struct {
char your_name[64];
uint32 unknown88;
char rezzer_name[64];
uint32 spellid;
int32 spellid;
char corpse_name[64];
uint32 action;
/* 228 */
@@ -3247,7 +3247,7 @@ struct SendAA_Struct {
/*0040*/ uint32 prereq_skill; //is < 0, abs() is category #
/*0044*/ uint32 prereq_minpoints; //min points in the prereq
/*0048*/ uint32 type;
/*0052*/ uint32 spellid;
/*0052*/ int32 spellid;
/*0056*/ uint32 spell_type;
/*0060*/ uint32 spell_refresh;
/*0064*/ uint32 classes;
+7 -7
View File
@@ -627,7 +627,7 @@ namespace TOB {
/*004*/ uint32 killer_id;
/*008*/ uint32 corpseid; //not read by client
/*012*/ uint32 unknown1; //not read by client
/*016*/ uint32 spell_id;
/*016*/ int32 spell_id;
/*020*/ uint32 attack_skill;
/*024*/ uint64 damage;
/*032*/ uint32 unknown2; //not read by client
@@ -672,7 +672,7 @@ namespace TOB {
struct BeginCast_Struct
{
/*000*/ uint32 spell_id;
/*000*/ int32 spell_id;
/*004*/ uint16 caster_id;
/*006*/ uint32 cast_time; // in miliseconds
/*010*/ uint32 unknown0a; // I think this is caster effective level but im not sure. live always sends 0. The client uses this for the spell link
@@ -682,7 +682,7 @@ namespace TOB {
struct MemorizeSpell_Struct {
uint32 slot; // Spot in the spell book/memorized slot
uint32 spell_id; // Spell id (200 or c8 is minor healing, etc)
int32 spell_id; // Spell id (200 or c8 is minor healing, etc)
uint32 scribing; // -1 refreshes book, 0 scribe to book, 2 end mem, 1 start mem, 3 unmem, 4 set activated item keyring -- client will send back 2 if a 0 operation updated a memorized spell of the same group + subgroup
uint32 reduction; // lower reuse (only used if scribing is 4)
};
@@ -702,7 +702,7 @@ namespace TOB {
struct CastSpell_Struct
{
/*00*/ uint32 slot;
/*04*/ uint32 spell_id;
/*04*/ int32 spell_id;
/*08*/ CastSpellInventorySlot_Struct inventory_slot;
/*18*/ uint32 target_id;
/*22*/ uint32 spell_crc;
@@ -732,7 +732,7 @@ namespace TOB {
/*000*/ EQAffectSlot_Struct slots[6];
/*096*/ EqGuid caster_id;
/*104*/ uint32 flags;
/*108*/ uint32 spell_id;
/*108*/ int32 spell_id;
/*112*/ uint32 duration;
/*116*/ uint32 initial_duration;
/*120*/ uint32 hit_count;
@@ -762,7 +762,7 @@ namespace TOB {
{
uint32 new_mana;
uint32 stamina; // endurance
uint32 spell_id;
int32 spell_id;
uint32 keepcasting;
int32 slot; // gem slot
};
@@ -775,7 +775,7 @@ namespace TOB {
{
uint16 target;
uint16 source;
uint32 spell_id;
int32 spell_id;
//4 leaves a buff
uint32 effect_type;
uint32 effective_casting_level;
+1 -1
View File
@@ -473,7 +473,7 @@ namespace UF
for (int i = 0; i < emu->count; ++i)
{
__packet->WriteUInt32(emu->type == 0 ? ServerToUFBuffSlot(emu->entries[i].buff_slot) : emu->entries[i].buff_slot);
__packet->WriteUInt32(emu->entries[i].spell_id);
__packet->WriteSInt32 (emu->entries[i].spell_id);
__packet->WriteUInt32(emu->entries[i].tics_remaining);
__packet->WriteUInt32(emu->entries[i].num_hits);
__packet->WriteString(emu->entries[i].caster);
+11 -11
View File
@@ -480,7 +480,7 @@ struct NewZone_Struct {
*/
struct MemorizeSpell_Struct {
uint32 slot; // Spot in the spell book/memorized slot
uint32 spell_id; // Spell id (200 or c8 is minor healing, etc)
int32 spell_id; // Spell id (200 or c8 is minor healing, etc)
uint32 scribing; // 1 if memorizing a spell, set to 0 if scribing to book, 2 if un-memming
uint32 reduction; // lowers reuse
};
@@ -517,7 +517,7 @@ struct ManaChange_Struct
{
/*00*/ uint32 new_mana; // New Mana AMount
/*04*/ uint32 stamina;
/*08*/ uint32 spell_id;
/*08*/ int32 spell_id;
/*12*/ uint8 keepcasting; // won't stop the cast. Change mana while casting?
/*13*/ uint8 padding[3]; // client doesn't read it, garbage data seems like
/*16*/ int32 slot; // -1 for normal usage slot for when we want silent interrupt? I think it does timer stuff or something. Linked Spell Reuse interrupt uses it
@@ -535,14 +535,14 @@ struct BeginCast_Struct
{
// len = 8
/*004*/ uint16 caster_id;
/*006*/ uint16 spell_id;
/*006*/ int16 spell_id;
/*016*/ uint32 cast_time; // in miliseconds
};
struct CastSpell_Struct
{
uint32 slot;
uint32 spell_id;
int32 spell_id;
uint32 inventoryslot; // slot for clicky item, 0xFFFF = normal cast
uint32 target_id;
uint32 cs_unknown1;
@@ -575,7 +575,7 @@ struct SpellBuff_Struct
/*002*/ uint8 unknown002; //pretty sure padding now
/*003*/ uint8 unknown003; // MQ2 used to call this "damage shield" -- don't see client referencing it, so maybe server side DS type tracking?
/*004*/ float bard_modifier;
/*008*/ uint32 spellid;
/*008*/ int32 spellid;
/*012*/ uint32 duration;
/*016*/ uint32 num_hits;
/*020*/ uint32 player_id; // caster ID, pretty sure just zone ID
@@ -595,7 +595,7 @@ struct SpellBuffPacket_Struct {
#if 0
struct BuffIconEntry_Struct {
/*000*/ uint32 buff_slot;
/*004*/ uint32 spell_id;
/*004*/ int32 spell_id;
/*008*/ uint32 tics_remaining;
/*012*/ uint32 num_hits;
// char name[0]; caster name is also here sometimes
@@ -1306,7 +1306,7 @@ struct CombatDamage_Struct
/* 00 */ uint16 target;
/* 02 */ uint16 source;
/* 04 */ uint8 type; //slashing, etc. 231 (0xE7) for spells
/* 05 */ uint16 spellid;
/* 05 */ int16 spellid;
/* 07 */ int32 damage;
/* 11 */ float force; // cd cc cc 3d
/* 15 */ float hit_heading; // see above notes in Action_Struct
@@ -1342,7 +1342,7 @@ struct Death_Struct
/*004*/ uint32 killer_id;
/*008*/ uint32 corpseid; // was corpseid
/*012*/ uint32 attack_skill; // was type
/*016*/ uint32 spell_id;
/*016*/ int32 spell_id;
/*020*/ uint32 bindzoneid; //bindzoneid?
/*024*/ uint32 damage;
/*028*/ uint32 unknown028;
@@ -2194,7 +2194,7 @@ struct GroupFollow_Struct { // Underfoot Follow Struct
};
struct InspectBuffs_Struct {
/*000*/ uint32 spell_id[BUFF_COUNT];
/*000*/ int32 spell_id[BUFF_COUNT];
/*120*/ int32 tics_remaining[BUFF_COUNT];
};
@@ -2610,7 +2610,7 @@ struct Resurrect_Struct {
char your_name[64];
uint32 unknown88;
char rezzer_name[64];
uint32 spellid;
int32 spellid;
char corpse_name[64];
uint32 action;
/* 228 */
@@ -3896,7 +3896,7 @@ struct SendAA_Struct {
/*0037*/ uint32 prereq_skill; //is < 0, abs() is category #
/*0041*/ uint32 prereq_minpoints; //min points in the prereq
/*0045*/ uint32 type;
/*0049*/ uint32 spellid;
/*0049*/ int32 spellid;
/*0053*/ uint32 spell_type;
/*0057*/ uint32 spell_refresh;
/*0061*/ uint32 classes;