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
+17 -17
View File
@@ -128,7 +128,7 @@ struct LDoNTrapTemplate
{
uint32 id;
LDoNChestTypes type;
uint32 spell_id;
int32 spell_id;
uint16 skill;
uint8 locked;
};
@@ -422,7 +422,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; // lower reuse
};
@@ -471,7 +471,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 normal, otherwise clear ETA and GCD
@@ -489,14 +489,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;
uint32 cs_unknown1;
@@ -544,7 +544,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? -- OSX client calls this "activated"
/*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
@@ -574,7 +574,7 @@ struct BuffRemoveRequest_Struct
struct PetBuff_Struct {
/*000*/ uint32 petid;
/*004*/ uint32 spellid[PET_BUFF_COUNT];
/*004*/ int32 spellid[PET_BUFF_COUNT];
/*124*/ int32 ticsremaining[PET_BUFF_COUNT];
/*244*/ uint32 buffcount;
};
@@ -875,7 +875,7 @@ struct BindStruct {
struct SuspendedMinion_Struct
{
/*000*/ uint16 SpellID;
/*000*/ int16 SpellID;
/*002*/ uint32 HP;
/*006*/ uint32 Mana;
/*010*/ SpellBuff_Struct Buffs[BUFF_COUNT];
@@ -1010,7 +1010,7 @@ struct PlayerProfile_Struct
/*2505*/ uint8 unknown2541[47]; // ?
/*2552*/ uint8 languages[MAX_PP_LANGUAGE];
/*2580*/ uint8 unknown2616[4];
/*2584*/ uint32 spell_book[EQ::spells::SPELLBOOK_SIZE];
/*2584*/ int32 spell_book[EQ::spells::SPELLBOOK_SIZE];
/*4504*/ uint8 unknown4540[128]; // Was [428] all 0xff
/*4632*/ uint32 mem_spells[EQ::spells::SPELL_GEM_COUNT];
/*4668*/ uint8 unknown4704[32]; //
@@ -1344,7 +1344,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
@@ -1377,7 +1377,7 @@ struct Death_Struct
/*004*/ uint32 killer_id;
/*008*/ uint32 corpseid; // was corpseid
/*012*/ uint32 bindzoneid;
/*016*/ uint32 spell_id;
/*016*/ int32 spell_id;
/*020*/ uint32 attack_skill;
/*024*/ uint32 damage;
/*028*/ uint32 unknown028;
@@ -2983,7 +2983,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 */
@@ -2991,7 +2991,7 @@ struct Resurrect_Struct {
struct Translocate_Struct {
/*000*/ uint32 ZoneID;
/*004*/ uint32 SpellID;
/*004*/ int32 SpellID;
/*008*/ uint32 unknown008; //Heading ?
/*012*/ char Caster[64];
/*076*/ float y;
@@ -3008,7 +3008,7 @@ struct PendingTranslocate_Struct
float x;
float y;
float z;
uint32 spell_id;
int32 spell_id;
};
struct Sacrifice_Struct {
@@ -4875,7 +4875,7 @@ struct MarkNPC_Struct
};
struct InspectBuffs_Struct {
/*000*/ uint32 spell_id[BUFF_COUNT];
/*000*/ int32 spell_id[BUFF_COUNT];
/*100*/ int32 tics_remaining[BUFF_COUNT];
};
@@ -5144,7 +5144,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*/ uint16 classes;
@@ -5645,7 +5645,7 @@ struct HideCorpse_Struct
struct BuffIconEntry_Struct
{
uint32 buff_slot;
uint32 spell_id;
int32 spell_id;
int32 tics_remaining;
uint32 num_hits;
char caster[64];
+2 -2
View File
@@ -960,7 +960,7 @@ namespace PlayerEvent {
struct ResurrectAcceptEvent {
std::string resurrecter_name;
std::string spell_name;
uint32 spell_id;
int32 spell_id;
// cereal
template <class Archive>
@@ -1058,7 +1058,7 @@ namespace PlayerEvent {
uint32 killer_id;
std::string killer_name;
int64 damage;
uint32 spell_id;
int32 spell_id;
std::string spell_name;
int skill_id;
std::string skill_name;
+1 -1
View File
@@ -11,7 +11,7 @@ void Links::FormatItemLink(char* Buffer, size_t BufferSize, const EQ::ItemInstan
// TODO: Reverse 0x14064B220 to get definition of this function
}
void Links::FormatSpellLink(char* Buffer, size_t BufferSize, uint32_t SpellID,
void Links::FormatSpellLink(char* Buffer, size_t BufferSize, int32_t SpellID,
const char* spellNameOverride)
{
snprintf(Buffer, BufferSize, "%c%d3^%d^0^'%s%c", ITEM_TAG_CHAR, ETAG_SPELL, SpellID,
+1 -1
View File
@@ -49,7 +49,7 @@ void FormatItemLink(char* Buffer, size_t BufferSize, const EQ::ItemInstance* ite
// Create a spell link for the given spell, with optional spell name override. Spells on items often have
// spell name overrides that changes the display name of the spell.
void FormatSpellLink(char* Buffer, size_t BufferSize, uint32_t SpellID,
void FormatSpellLink(char* Buffer, size_t BufferSize, int32_t SpellID,
const char* spellNameOverride = nullptr);
// Format text into a clickable dialog link. The keyword is the text that will be displayed in the chat window,
+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;
@@ -37,7 +37,7 @@ class BaseBlockedSpellsRepository {
public:
struct BlockedSpells {
int32_t id;
uint32_t spellid;
int32_t spellid;
int8_t type;
int32_t zoneid;
float x;
@@ -37,7 +37,7 @@ class BaseBotBlockedBuffsRepository {
public:
struct BotBlockedBuffs {
uint32_t bot_id;
uint32_t spell_id;
int32_t spell_id;
uint8_t blocked;
uint8_t blocked_pet;
};
@@ -38,7 +38,7 @@ public:
struct BotBuffs {
uint32_t buffs_index;
uint32_t bot_id;
uint32_t spell_id;
int32_t spell_id;
uint8_t caster_level;
uint32_t duration_formula;
uint32_t tics_remaining;
@@ -38,7 +38,7 @@ public:
struct BotPetBuffs {
uint32_t pet_buffs_index;
uint32_t pets_index;
uint32_t spell_id;
int32_t spell_id;
uint32_t caster_level;
uint32_t duration;
};
@@ -37,7 +37,7 @@ class BaseBotPetsRepository {
public:
struct BotPets {
uint32_t pets_index;
uint32_t spell_id;
int32_t spell_id;
uint32_t bot_id;
std::string name;
int32_t mana;
@@ -38,7 +38,7 @@ public:
struct BotSpellSettings {
uint32_t id;
int32_t bot_id;
int16_t spell_id;
int32_t spell_id;
int16_t priority;
int16_t min_hp;
int16_t max_hp;
@@ -38,7 +38,7 @@ public:
struct BotSpellsEntries {
uint32_t id;
int32_t npc_spells_id;
uint16_t spell_id;
int32_t spell_id;
uint32_t type;
uint8_t minlevel;
uint8_t maxlevel;
@@ -42,7 +42,7 @@ public:
uint32_t recast_time;
uint8_t is_spell;
uint8_t is_disc;
uint32_t spell_id;
int32_t spell_id;
uint8_t is_item;
uint32_t item_id;
};
@@ -38,7 +38,7 @@ public:
struct CharacterBuffs {
uint32_t character_id;
uint8_t slot_id;
uint16_t spell_id;
int32_t spell_id;
uint8_t caster_level;
std::string caster_name;
int32_t ticsremaining;
@@ -38,7 +38,7 @@ public:
struct CharacterMemmedSpells {
uint32_t id;
uint16_t slot_id;
uint16_t spell_id;
int32_t spell_id;
};
static std::string PrimaryKey()
@@ -38,7 +38,7 @@ public:
struct CharacterSpells {
uint32_t id;
uint16_t slot_id;
uint16_t spell_id;
int32_t spell_id;
};
static std::string PrimaryKey()
@@ -36,7 +36,7 @@
class BaseDamageshieldtypesRepository {
public:
struct Damageshieldtypes {
uint32_t spellid;
int32_t spellid;
uint8_t type;
};
@@ -38,7 +38,7 @@ public:
struct LdonTrapTemplates {
uint32_t id;
uint8_t type;
uint16_t spell_id;
int32_t spell_id;
uint16_t skill;
uint8_t locked;
};
@@ -38,7 +38,7 @@ public:
struct MercBuffs {
uint32_t MercBuffId;
uint32_t MercId;
uint32_t SpellId;
int32_t SpellId;
uint32_t CasterLevel;
uint32_t DurationFormula;
int32_t TicsRemaining;
@@ -39,7 +39,7 @@ public:
struct MercSpellListEntries {
uint32_t merc_spell_list_entry_id;
uint32_t merc_spell_list_id;
uint32_t spell_id;
int32_t spell_id;
uint32_t spell_type;
uint8_t stance_id;
uint8_t minlevel;
@@ -38,7 +38,7 @@ public:
struct NpcSpellsEntries {
uint32_t id;
int32_t npc_spells_id;
uint16_t spellid;
int32_t spellid;
uint32_t type;
uint8_t minlevel;
uint8_t maxlevel;
@@ -36,7 +36,7 @@
class BaseSpellBucketsRepository {
public:
struct SpellBuckets {
uint32_t spell_id;
int32_t spell_id;
std::string bucket_name;
std::string bucket_value;
uint8_t bucket_comparison;
+2 -2
View File
@@ -1425,7 +1425,7 @@ struct CZSpell_Struct {
uint8 update_type; // 0 - Character, 1 - Group, 2 - Raid, 3 - Guild, 4 - Expedition, 5 - Character Name
uint8 update_subtype; // 0 - Cast Spell, 1 - Remove Spell
int update_identifier; // Character ID, Group ID, Raid ID, Guild ID, or Expedition ID based on update type, 0 for Character Name
uint32 spell_id;
int32 spell_id;
char client_name[64]; // Only used by Character Name Type, else empty
};
@@ -1498,7 +1498,7 @@ struct WWSignal_Struct {
struct WWSpell_Struct {
uint8 update_type; // 0 - Cast Spell, 1 - Remove Spell
uint32 spell_id;
int32 spell_id;
uint8 min_status;
uint8 max_status;
};
+148 -148
View File
File diff suppressed because it is too large Load Diff
+152 -153
View File
@@ -21,9 +21,8 @@
#include "common/item_data.h"
#include "common/skills.h"
#define SPELL_UNKNOWN 0xFFFF
#define POISON_PROC 0xFFFE
#define SPELLBOOK_UNKNOWN 0xFFFFFFFF //player profile spells are 32 bit
#define SPELL_UNKNOWN -1
#define POISON_PROC -2
//some spell IDs which will prolly change, but are needed
#define SPELL_COMPLETE_HEAL 13
@@ -914,10 +913,10 @@ bool BotSpellTypeRequiresTarget(uint16 spell_type);
bool BotSpellTypeRequiresAEChecks(uint16 spell_type);
bool IsCommandedBotSpellType(uint16 spell_type);
bool IsPullingBotSpellType(uint16 spell_type);
uint16 GetCorrectBotSpellType(uint16 spell_type, uint16 spell_id);
uint16 GetCorrectBotSpellType(uint16 spell_type, int32 spell_id);
uint16 GetPetBotSpellType(uint16 spell_type);
bool IsBotBuffSpellType(uint16 spell_type);
bool BotRequiresLoSToCast(uint16 spell_type, uint16 spell_id);
bool BotRequiresLoSToCast(uint16 spell_type, int32 spell_id);
// These should not be used to determine spell category..
// They are a graphical affects (effects?) index only
@@ -1762,157 +1761,157 @@ struct SPDat_Spell_Struct
extern const SPDat_Spell_Struct* spells;
extern int32 SPDAT_RECORDS;
bool IsTargetableAESpell(uint16 spell_id);
bool IsSacrificeSpell(uint16 spell_id);
bool IsLifetapSpell(uint16 spell_id);
bool IsMesmerizeSpell(uint16 spell_id);
bool SpellBreaksMez(uint16 spell_id);
bool IsStunSpell(uint16 spell_id);
bool IsSlowSpell(uint16 spell_id);
bool IsHasteSpell(uint16 spell_id);
bool IsHarmonySpell(uint16 spell_id);
bool IsPercentalHealSpell(uint16 spell_id);
bool IsGroupOnlySpell(uint16 spell_id);
bool IsBeneficialSpell(uint16 spell_id);
bool IsDetrimentalSpell(uint16 spell_id);
bool IsInvisibleSpell(uint16 spell_id);
bool IsInvulnerabilitySpell(uint16 spell_id);
bool IsCompleteHealDurationSpell(uint16 spell_id);
bool IsPoisonCounterSpell(uint16 spell_id);
bool IsDiseaseCounterSpell(uint16 spell_id);
bool IsSummonItemSpell(uint16 spell_id);
bool IsSummonSkeletonSpell(uint16 spell_id);
bool IsSummonPetSpell(uint16 spell_id);
bool IsSummonPCSpell(uint16 spell_id);
bool IsPetSpell(uint16 spell_id);
bool IsCharmSpell(uint16 spell_id);
bool IsResurrectionSicknessSpell(uint16 spell_id);
bool IsBlindSpell(uint16 spell_id);
bool IsHealthSpell(uint16 spell_id);
bool IsCastTimeReductionSpell(uint16 spell_id);
bool IsIncreaseDurationSpell(uint16 spell_id);
bool IsManaCostReductionSpell(uint16 spell_id);
bool IsIncreaseRangeSpell(uint16 spell_id);
bool IsImprovedHealingSpell(uint16 spell_id);
bool IsImprovedDamageSpell(uint16 spell_id);
bool IsAEDurationSpell(uint16 spell_id);
bool IsPureNukeSpell(uint16 spell_id);
bool IsAENukeSpell(uint16 spell_id);
bool IsPBAENukeSpell(uint16 spell_id);
bool IsAERainNukeSpell(uint16 spell_id);
bool IsAnyNukeOrStunSpell(uint16 spell_id);
bool IsAnyAESpell(uint16 spell_id);
bool IsAESpell(uint16 spell_id);
bool IsPBAESpell(uint16 spell_id);
bool IsAERainSpell(uint16 spell_id);
bool IsPartialResistableSpell(uint16 spell_id);
bool IsResistableSpell(uint16 spell_id);
bool IsGroupSpell(uint16 spell_id);
bool IsTGBCompatibleSpell(uint16 spell_id);
bool IsBardSong(uint16 spell_id);
bool IsEffectInSpell(uint16 spell_id, int effect_id);
uint16 GetSpellTriggerSpellID(uint16 spell_id, int effect_id);
bool IsBlankSpellEffect(uint16 spell_id, int effect_index);
bool IsValidSpell(uint32 spell_id);
bool IsSummonSpell(uint16 spell_id);
bool IsDamageSpell(uint16 spell_id);
bool IsAnyDamageSpell(uint16 spell_id);
bool IsDamageOverTimeSpell(uint16 spell_i);
bool IsFearSpell(uint16 spell_id);
bool IsCureSpell(uint16 spell_id);
bool IsHarmTouchSpell(uint16 spell_id);
int GetSpellEffectIndex(uint16 spell_id, int effect_id);
uint8 GetSpellMinimumLevel(uint16 spell_id);
uint8 GetSpellLevel(uint16 spell_id, uint8 class_id);
bool IsTargetableAESpell(int32 spell_id);
bool IsSacrificeSpell(int32 spell_id);
bool IsLifetapSpell(int32 spell_id);
bool IsMesmerizeSpell(int32 spell_id);
bool SpellBreaksMez(int32 spell_id);
bool IsStunSpell(int32 spell_id);
bool IsSlowSpell(int32 spell_id);
bool IsHasteSpell(int32 spell_id);
bool IsHarmonySpell(int32 spell_id);
bool IsPercentalHealSpell(int32 spell_id);
bool IsGroupOnlySpell(int32 spell_id);
bool IsBeneficialSpell(int32 spell_id);
bool IsDetrimentalSpell(int32 spell_id);
bool IsInvisibleSpell(int32 spell_id);
bool IsInvulnerabilitySpell(int32 spell_id);
bool IsCompleteHealDurationSpell(int32 spell_id);
bool IsPoisonCounterSpell(int32 spell_id);
bool IsDiseaseCounterSpell(int32 spell_id);
bool IsSummonItemSpell(int32 spell_id);
bool IsSummonSkeletonSpell(int32 spell_id);
bool IsSummonPetSpell(int32 spell_id);
bool IsSummonPCSpell(int32 spell_id);
bool IsPetSpell(int32 spell_id);
bool IsCharmSpell(int32 spell_id);
bool IsResurrectionSicknessSpell(int32 spell_id);
bool IsBlindSpell(int32 spell_id);
bool IsHealthSpell(int32 spell_id);
bool IsCastTimeReductionSpell(int32 spell_id);
bool IsIncreaseDurationSpell(int32 spell_id);
bool IsManaCostReductionSpell(int32 spell_id);
bool IsIncreaseRangeSpell(int32 spell_id);
bool IsImprovedHealingSpell(int32 spell_id);
bool IsImprovedDamageSpell(int32 spell_id);
bool IsAEDurationSpell(int32 spell_id);
bool IsPureNukeSpell(int32 spell_id);
bool IsAENukeSpell(int32 spell_id);
bool IsPBAENukeSpell(int32 spell_id);
bool IsAERainNukeSpell(int32 spell_id);
bool IsAnyNukeOrStunSpell(int32 spell_id);
bool IsAnyAESpell(int32 spell_id);
bool IsAESpell(int32 spell_id);
bool IsPBAESpell(int32 spell_id);
bool IsAERainSpell(int32 spell_id);
bool IsPartialResistableSpell(int32 spell_id);
bool IsResistableSpell(int32 spell_id);
bool IsGroupSpell(int32 spell_id);
bool IsTGBCompatibleSpell(int32 spell_id);
bool IsBardSong(int32 spell_id);
bool IsEffectInSpell(int32 spell_id, int effect_id);
int32 GetSpellTriggerSpellID(int32 spell_id, int effect_id);
bool IsBlankSpellEffect(int32 spell_id, int effect_index);
bool IsValidSpell(int32 spell_id);
bool IsSummonSpell(int32 spell_id);
bool IsDamageSpell(int32 spell_id);
bool IsAnyDamageSpell(int32 spell_id);
bool IsDamageOverTimeSpell(int32 spell_id);
bool IsFearSpell(int32 spell_id);
bool IsCureSpell(int32 spell_id);
bool IsHarmTouchSpell(int32 spell_id);
int GetSpellEffectIndex(int32 spell_id, int effect_id);
uint8 GetSpellMinimumLevel(int32 spell_id);
uint8 GetSpellLevel(int32 spell_id, uint8 class_id);
int CalcBuffDuration_formula(int level, int formula, int duration);
int32 CalculatePoisonCounters(uint16 spell_id);
int32 CalculateDiseaseCounters(uint16 spell_id);
int32 CalculateCurseCounters(uint16 spell_id);
int32 CalculateCorruptionCounters(uint16 spell_id);
int32 CalculateCounters(uint16 spell_id);
bool IsDisciplineBuff(uint16 spell_id);
bool IsDiscipline(uint16 spell_id);
bool IsCombatSkill(uint16 spell_id);
bool IsResurrectionEffects(uint16 spell_id);
int8 GetSpellResurrectionSicknessCheck(uint16 spell_id_one, uint16 spell_id_two);
bool IsRuneSpell(uint16 spell_id);
bool IsMagicRuneSpell(uint16 spell_id);
bool IsManaTapSpell(uint16 spell_id);
bool IsAllianceSpell(uint16 spell_id);
bool IsDeathSaveSpell(uint16 spell_id);
bool IsFullDeathSaveSpell(uint16 spell_id);
bool IsPartialDeathSaveSpell(uint16 spell_id);
bool IsShadowStepSpell(uint16 spell_id);
bool IsSuccorSpell(uint16 spell_id);
bool IsTeleportSpell(uint16 spell_id);
bool IsTranslocateSpell(uint16 spell_id);
bool IsGateSpell(uint16 spell_id);
bool IsIllusionSpell(uint16 spell_id);
bool IsLDoNObjectSpell(uint16 spell_id);
int GetSpellResistType(uint16 spell_id);
int GetSpellTargetType(uint16 spell_id);
bool IsHealOverTimeSpell(uint16 spell_id);
bool IsCompleteHealSpell(uint16 spell_id);
bool IsFastHealSpell(uint16 spell_id);
bool IsVeryFastHealSpell(uint16 spell_id);
bool IsRegularSingleTargetHealSpell(uint16 spell_id);
bool IsRegularPetHealSpell(uint16 spell_id);
bool IsRegularGroupHealSpell(uint16 spell_id);
bool IsGroupCompleteHealSpell(uint16 spell_id);
bool IsGroupHealOverTimeSpell(uint16 spell_id);
bool IsAnyHealSpell(uint16 spell_id);
bool IsAnyBuffSpell(uint16 spell_id);
bool IsDispelSpell(uint16 spell_id);
bool IsEscapeSpell(uint16 spell_id);
bool IsDebuffSpell(uint16 spell_id);
bool IsHateReduxSpell(uint16 spell_id);
bool IsResistDebuffSpell(uint16 spell_id);
bool IsSelfConversionSpell(uint16 spell_id);
bool IsBuffSpell(uint16 spell_id);
bool IsPersistDeathSpell(uint16 spell_id);
bool IsSuspendableSpell(uint16 spell_id);
bool IsCastOnFadeDurationSpell(uint16 spell_id);
bool IsDistanceModifierSpell(uint16 spell_id);
int GetSpellPartialMeleeRuneReduction(uint16 spell_id);
int GetSpellPartialMagicRuneReduction(uint16 spell_id);
int GetSpellPartialMeleeRuneAmount(uint16 spell_id);
int GetSpellPartialMagicRuneAmount(uint16 spell_id);
bool IsNoDetrimentalSpellAggroSpell(uint16 spell_id);
bool IsStackableDOT(uint16 spell_id);
int32 CalculatePoisonCounters(int32 spell_id);
int32 CalculateDiseaseCounters(int32 spell_id);
int32 CalculateCurseCounters(int32 spell_id);
int32 CalculateCorruptionCounters(int32 spell_id);
int32 CalculateCounters(int32 spell_id);
bool IsDisciplineBuff(int32 spell_id);
bool IsDiscipline(int32 spell_id);
bool IsCombatSkill(int32 spell_id);
bool IsResurrectionEffects(int32 spell_id);
int8 GetSpellResurrectionSicknessCheck(int32 spell_id_one, int32 spell_id_two);
bool IsRuneSpell(int32 spell_id);
bool IsMagicRuneSpell(int32 spell_id);
bool IsManaTapSpell(int32 spell_id);
bool IsAllianceSpell(int32 spell_id);
bool IsDeathSaveSpell(int32 spell_id);
bool IsFullDeathSaveSpell(int32 spell_id);
bool IsPartialDeathSaveSpell(int32 spell_id);
bool IsShadowStepSpell(int32 spell_id);
bool IsSuccorSpell(int32 spell_id);
bool IsTeleportSpell(int32 spell_id);
bool IsTranslocateSpell(int32 spell_id);
bool IsGateSpell(int32 spell_id);
bool IsIllusionSpell(int32 spell_id);
bool IsLDoNObjectSpell(int32 spell_id);
int GetSpellResistType(int32 spell_id);
int GetSpellTargetType(int32 spell_id);
bool IsHealOverTimeSpell(int32 spell_id);
bool IsCompleteHealSpell(int32 spell_id);
bool IsFastHealSpell(int32 spell_id);
bool IsVeryFastHealSpell(int32 spell_id);
bool IsRegularSingleTargetHealSpell(int32 spell_id);
bool IsRegularPetHealSpell(int32 spell_id);
bool IsRegularGroupHealSpell(int32 spell_id);
bool IsGroupCompleteHealSpell(int32 spell_id);
bool IsGroupHealOverTimeSpell(int32 spell_id);
bool IsAnyHealSpell(int32 spell_id);
bool IsAnyBuffSpell(int32 spell_id);
bool IsDispelSpell(int32 spell_id);
bool IsEscapeSpell(int32 spell_id);
bool IsDebuffSpell(int32 spell_id);
bool IsHateReduxSpell(int32 spell_id);
bool IsResistDebuffSpell(int32 spell_id);
bool IsSelfConversionSpell(int32 spell_id);
bool IsBuffSpell(int32 spell_id);
bool IsPersistDeathSpell(int32 spell_id);
bool IsSuspendableSpell(int32 spell_id);
bool IsCastOnFadeDurationSpell(int32 spell_id);
bool IsDistanceModifierSpell(int32 spell_id);
int GetSpellPartialMeleeRuneReduction(int32 spell_id);
int GetSpellPartialMagicRuneReduction(int32 spell_id);
int GetSpellPartialMeleeRuneAmount(int32 spell_id);
int GetSpellPartialMagicRuneAmount(int32 spell_id);
bool IsNoDetrimentalSpellAggroSpell(int32 spell_id);
bool IsStackableDOT(int32 spell_id);
bool IsBardOnlyStackEffect(int effect_id);
bool IsCastWhileInvisibleSpell(uint16 spell_id);
bool IsCastWhileInvisibleSpell(int32 spell_id);
bool IsEffectIgnoredInStacking(int effect_id);
bool IsFocusLimit(int effect_id);
bool IsTargetRequiredForSpell(uint16 spell_id);
bool IsVirusSpell(uint16 spell_id);
int GetSpellViralMinimumSpreadTime(uint16 spell_id);
int GetSpellViralMaximumSpreadTime(uint16 spell_id);
int GetSpellViralSpreadRange(uint16 spell_id);
bool IsInstrumentModifierAppliedToSpellEffect(uint16 spell_id, int effect_id);
bool IsPulsingBardSong(uint16 spell_id);
int GetSpellProcLimitTimer(uint16 spell_id, int proc_type);
bool IsCastNotStandingSpell(uint16 spell_id);
int GetSpellEffectDescriptionNumber(uint16 spell_id);
DmgShieldType GetDamageShieldType(uint16 spell_id, int damage_shield_type = 0);
bool IsRestAllowedSpell(uint16 spell_id);
int GetSpellNimbusEffect(uint16 spell_id);
int GetSpellFuriousBash(uint16 spell_id);
bool IsShortDurationBuff(uint16 spell_id);
bool IsSpellUsableInThisZoneType(uint16 spell_id, uint8 zone_type);
const char *GetSpellName(uint16 spell_id);
int GetSpellStatValue(uint16 spell_id, const char* stat_identifier, uint8 slot = 0);
bool IsCastRestrictedSpell(uint16 spell_id);
bool IsAegolismSpell(uint16 spell_id);
bool AegolismStackingIsSymbolSpell(uint16 spell_id);
bool AegolismStackingIsArmorClassSpell(uint16 spell_id);
int8 SpellEffectsCount(uint16 spell_id);
bool IsLichSpell(uint16 spell_id);
bool IsInstantHealSpell(uint32 spell_id);
bool IsResurrectSpell(uint16 spell_id);
bool IsTargetRequiredForSpell(int32 spell_id);
bool IsVirusSpell(int32 spell_id);
int GetSpellViralMinimumSpreadTime(int32 spell_id);
int GetSpellViralMaximumSpreadTime(int32 spell_id);
int GetSpellViralSpreadRange(int32 spell_id);
bool IsInstrumentModifierAppliedToSpellEffect(int32 spell_id, int effect_id);
bool IsPulsingBardSong(int32 spell_id);
int GetSpellProcLimitTimer(int32 spell_id, int proc_type);
bool IsCastNotStandingSpell(int32 spell_id);
int GetSpellEffectDescriptionNumber(int32 spell_id);
DmgShieldType GetDamageShieldType(int32 spell_id, int damage_shield_type = 0);
bool IsRestAllowedSpell(int32 spell_id);
int GetSpellNimbusEffect(int32 spell_id);
int GetSpellFuriousBash(int32 spell_id);
bool IsShortDurationBuff(int32 spell_id);
bool IsSpellUsableInThisZoneType(int32 spell_id, uint8 zone_type);
const char *GetSpellName(int32 spell_id);
int GetSpellStatValue(int32 spell_id, const char* stat_identifier, uint8 slot = 0);
bool IsCastRestrictedSpell(int32 spell_id);
bool IsAegolismSpell(int32 spell_id);
bool AegolismStackingIsSymbolSpell(int32 spell_id);
bool AegolismStackingIsArmorClassSpell(int32 spell_id);
int8 SpellEffectsCount(int32 spell_id);
bool IsLichSpell(int32 spell_id);
bool IsInstantHealSpell(int32 spell_id);
bool IsResurrectSpell(int32 spell_id);
bool RequiresStackCheck(uint16 spell_type);
bool IsResistanceBuffSpell(uint16 spell_id);
bool IsResistanceOnlySpell(uint16 spell_id);
bool IsDamageShieldOnlySpell(uint16 spell_id);
bool IsDamageShieldAndResistSpell(uint16 spell_id);
bool IsHateSpell(uint16 spell_id);
bool IsResistanceBuffSpell(int32 spell_id);
bool IsResistanceOnlySpell(int32 spell_id);
bool IsDamageShieldOnlySpell(int32 spell_id);
bool IsDamageShieldAndResistSpell(int32 spell_id);
bool IsHateSpell(int32 spell_id);
bool IsDisciplineTome(const EQ::ItemData* item);
+2 -2
View File
@@ -432,7 +432,7 @@ bool IsPullingBotSpellType(uint16 spell_type) {
return false;
}
uint16 GetCorrectBotSpellType(uint16 spell_type, uint16 spell_id) {
uint16 GetCorrectBotSpellType(uint16 spell_type, int32 spell_id) {
if (!IsValidSpell(spell_id)) {
return UINT16_MAX;
}
@@ -504,7 +504,7 @@ bool IsBotBuffSpellType(uint16 spell_type) {
return false;
}
bool BotRequiresLoSToCast(uint16 spell_type, uint16 spell_id) {
bool BotRequiresLoSToCast(uint16 spell_type, int32 spell_id) {
if (!BotSpellTypeRequiresTarget(spell_type)) {
return false;
}