Added some additional SpellAffectIndex declarations to the enumeration (no reference.) Added dev script for function to retrieve spell affect index id labels for spells from queries

This commit is contained in:
Uleat 2017-02-06 07:14:50 -05:00
parent a13694c859
commit 5dbbc5f21c
3 changed files with 124 additions and 35 deletions

View File

@ -67,11 +67,58 @@ const int SpellTypes_Beneficial = SpellType_Heal|SpellType_Buff|SpellType_Escape
#define SpellType_Any 0xFFFF #define SpellType_Any 0xFFFF
// These don't appear to be consistent either through us or soe..
// Use for generalization rather than validation
enum SpellAffectIndex { enum SpellAffectIndex {
SAI_Calm = 12, // Lull and Alliance Spells SAI_Summon_Mount_Unclass = -1,
SAI_Dispell_Sight = 14, // Dispells and Spells like Bind Sight SAI_Direct_Damage = 0,
SAI_Memory_Blur = 27, SAI_Heal_Cure = 1,
SAI_Calm_Song = 43 // Lull and Alliance Songs SAI_AC_Buff = 2,
SAI_AE_Damage = 3,
SAI_Summon = 4, // Summoned Pets and Items
SAI_Sight = 5,
SAI_Mana_Regen_Resist_Song = 6,
SAI_Stat_Buff = 7,
SAI_Vanish = 9, // Invisibility and Gate/Port
SAI_Appearance = 10, // Illusion and Size
SAI_Enchanter_Pet = 11,
SAI_Calm = 12, // Lull and Alliance Spells
SAI_Fear = 13,
SAI_Dispell_Sight = 14, // Dispells and Spells like Bind Sight
SAI_Stun = 15,
SAI_Haste_Runspeed = 16, // Haste and SoW
SAI_Combat_Slow = 17,
SAI_Damage_Shield = 18,
SAI_Cannibalize_Weapon_Proc = 19,
SAI_Weaken = 20,
SAI_Banish = 21,
SAI_Blind_Poison = 22,
SAI_Cold_DD = 23,
SAI_Poison_Disease_DD = 24,
SAI_Fire_DD = 25,
SAI_Memory_Blur = 27,
SAI_Gravity_Fling = 28,
SAI_Suffocate = 29,
SAI_Lifetap_Over_Time = 30,
SAI_Fire_AE = 31,
SAI_Cold_AE = 33,
SAI_Poison_Disease_AE = 34,
SAI_Teleport = 40,
SAI_Direct_Damage_Song = 41,
SAI_Combat_Buff_Song = 42,
SAI_Calm_Song = 43, // Lull and Alliance Songs
SAI_Firework = 45,
SAI_Firework_AE = 46,
SAI_Weather_Rocket = 47,
SAI_Convert_Vitals = 50,
SAI_NPC_Special_60 = 60,
SAI_NPC_Special_61 = 61,
SAI_NPC_Special_62 = 62,
SAI_NPC_Special_63 = 63,
SAI_NPC_Special_70 = 70,
SAI_NPC_Special_71 = 71,
SAI_NPC_Special_80 = 80,
SAI_Trap_Lock = 88
}; };
enum RESISTTYPE enum RESISTTYPE
{ {

View File

@ -0,0 +1,71 @@
DELIMITER $$
DROP FUNCTION IF EXISTS `GetSpellAffectIndexToken`;
-- This function converts a numeric spell affect index id to a string label based on server code designations
--
-- example:
-- SELECT `id`, `name`, GetSpellAffectIndexToken(`SpellAffectIndex`) FROM `spells_new` WHERE `id` IN ('73', '2253', '2319');
CREATE FUNCTION `GetSpellAffectIndexToken` (`affect_index_id` INT(11)) RETURNS VARCHAR(64)
BEGIN
DECLARE `token` VARCHAR(64) DEFAULT '';
CASE `affect_index_id`
WHEN '-1' THEN SET `token` = 'SAI_Summon_Mount_Unclass';
WHEN '0' THEN SET `token` = 'SAI_Direct_Damage';
WHEN '1' THEN SET `token` = 'SAI_Heal_Cure';
WHEN '2' THEN SET `token` = 'SAI_AC_Buff';
WHEN '3' THEN SET `token` = 'SAI_AE_Damage';
WHEN '4' THEN SET `token` = 'SAI_Summon';
WHEN '5' THEN SET `token` = 'SAI_Sight';
WHEN '6' THEN SET `token` = 'SAI_Mana_Regen_Resist_Song';
WHEN '7' THEN SET `token` = 'SAI_Stat_Buff';
WHEN '9' THEN SET `token` = 'SAI_Vanish';
WHEN '10' THEN SET `token` = 'SAI_Appearance';
WHEN '11' THEN SET `token` = 'SAI_Enchanter_Pet';
WHEN '12' THEN SET `token` = 'SAI_Calm';
WHEN '13' THEN SET `token` = 'SAI_Fear';
WHEN '14' THEN SET `token` = 'SAI_Dispell_Sight';
WHEN '15' THEN SET `token` = 'SAI_Stun';
WHEN '16' THEN SET `token` = 'SAI_Haste_Runspeed';
WHEN '17' THEN SET `token` = 'SAI_Combat_Slow';
WHEN '18' THEN SET `token` = 'SAI_Damage_Shield';
WHEN '19' THEN SET `token` = 'SAI_Cannibalize_Weapon_Proc';
WHEN '20' THEN SET `token` = 'SAI_Weaken';
WHEN '21' THEN SET `token` = 'SAI_Banish';
WHEN '22' THEN SET `token` = 'SAI_Blind_Poison';
WHEN '23' THEN SET `token` = 'SAI_Cold_DD';
WHEN '24' THEN SET `token` = 'SAI_Poison_Disease_DD';
WHEN '25' THEN SET `token` = 'SAI_Fire_DD';
WHEN '27' THEN SET `token` = 'SAI_Memory_Blur';
WHEN '28' THEN SET `token` = 'SAI_Gravity_Fling';
WHEN '29' THEN SET `token` = 'SAI_Suffocate';
WHEN '30' THEN SET `token` = 'SAI_Lifetap_Over_Time';
WHEN '31' THEN SET `token` = 'SAI_Fire_AE';
WHEN '33' THEN SET `token` = 'SAI_Cold_AE';
WHEN '34' THEN SET `token` = 'SAI_Poison_Disease_AE';
WHEN '40' THEN SET `token` = 'SAI_Teleport';
WHEN '41' THEN SET `token` = 'SAI_Direct_Damage_Song';
WHEN '42' THEN SET `token` = 'SAI_Combat_Buff_Song';
WHEN '43' THEN SET `token` = 'SAI_Calm_Song';
WHEN '45' THEN SET `token` = 'SAI_Firework';
WHEN '46' THEN SET `token` = 'SAI_Firework_AE';
WHEN '47' THEN SET `token` = 'SAI_Weather_Rocket';
WHEN '50' THEN SET `token` = 'SAI_Convert_Vitals';
WHEN '60' THEN SET `token` = 'SAI_NPC_Special_60';
WHEN '61' THEN SET `token` = 'SAI_NPC_Special_61';
WHEN '62' THEN SET `token` = 'SAI_NPC_Special_62';
WHEN '63' THEN SET `token` = 'SAI_NPC_Special_63';
WHEN '70' THEN SET `token` = 'SAI_NPC_Special_70';
WHEN '71' THEN SET `token` = 'SAI_NPC_Special_71';
WHEN '80' THEN SET `token` = 'SAI_NPC_Special_80';
WHEN '88' THEN SET `token` = 'SAI_Lock_Trap';
ELSE SET `token` = 'unk';
END CASE;
SET `token` = CONCAT(`token`, '(', `affect_index_id`, ')');
RETURN `token`;
END$$
DELIMITER ;

View File

@ -7,9 +7,9 @@ DROP FUNCTION IF EXISTS `GetSpellTargetTypeToken`;
-- --
-- example: -- example:
-- SELECT `id`, `name`, GetSpellTargetTypeToken(`targettype`, `CastRestriction`) FROM `spells_new` WHERE `id` IN ('6836', '10763', '25039'); -- SELECT `id`, `name`, GetSpellTargetTypeToken(`targettype`, `CastRestriction`) FROM `spells_new` WHERE `id` IN ('6836', '10763', '25039');
CREATE FUNCTION `GetSpellTargetTypeToken` (`target_type` INT(11), `cast_restriction` INT(11)) RETURNS VARCHAR(64) CREATE FUNCTION `GetSpellTargetTypeToken` (`target_type` INT(11), `cast_restriction` INT(11)) RETURNS VARCHAR(128)
BEGIN BEGIN
DECLARE `token` VARCHAR(64) DEFAULT ''; DECLARE `token` VARCHAR(128) DEFAULT '';
DECLARE `token2` VARCHAR(64) DEFAULT ''; DECLARE `token2` VARCHAR(64) DEFAULT '';
CASE `target_type` CASE `target_type`
@ -56,7 +56,6 @@ BEGIN
CASE `cast_restriction` CASE `cast_restriction`
WHEN '0' THEN SET `token2` = 'None'; WHEN '0' THEN SET `token2` = 'None';
-- WHEN '1' THEN SET `token2` = '---';
WHEN '100' THEN SET `token2` = 'Only works on Animal or Humanoid'; WHEN '100' THEN SET `token2` = 'Only works on Animal or Humanoid';
WHEN '101' THEN SET `token2` = 'Only works on Dragon'; WHEN '101' THEN SET `token2` = 'Only works on Dragon';
WHEN '102' THEN SET `token2` = 'Only works on Animal or Insect'; WHEN '102' THEN SET `token2` = 'Only works on Animal or Insect';
@ -81,11 +80,6 @@ BEGIN
WHEN '124' THEN SET `token2` = 'Undead HP Less Than 10%'; WHEN '124' THEN SET `token2` = 'Undead HP Less Than 10%';
WHEN '125' THEN SET `token2` = 'Clockwork HP Less Than 45%'; WHEN '125' THEN SET `token2` = 'Clockwork HP Less Than 45%';
WHEN '126' THEN SET `token2` = 'Wisp HP Less Than 10%'; WHEN '126' THEN SET `token2` = 'Wisp HP Less Than 10%';
-- WHEN '127' THEN SET `token2` = '---';
-- WHEN '128' THEN SET `token2` = '---';
-- WHEN '129' THEN SET `token2` = '---';
-- WHEN '130' THEN SET `token2` = '---';
-- WHEN '150' THEN SET `token2` = '---';
WHEN '190' THEN SET `token2` = 'Doesn\'t work on Raid Bosses'; WHEN '190' THEN SET `token2` = 'Doesn\'t work on Raid Bosses';
WHEN '191' THEN SET `token2` = 'Only works on Raid Bosses'; WHEN '191' THEN SET `token2` = 'Only works on Raid Bosses';
WHEN '201' THEN SET `token2` = 'HP Above 75%'; WHEN '201' THEN SET `token2` = 'HP Above 75%';
@ -120,8 +114,6 @@ BEGIN
WHEN '402' THEN SET `token2` = 'HP Between 35 and 45%'; WHEN '402' THEN SET `token2` = 'HP Between 35 and 45%';
WHEN '403' THEN SET `token2` = 'HP Between 45 and 55%'; WHEN '403' THEN SET `token2` = 'HP Between 45 and 55%';
WHEN '404' THEN SET `token2` = 'HP Between 55 and 65%'; WHEN '404' THEN SET `token2` = 'HP Between 55 and 65%';
-- WHEN '410' THEN SET `token2` = '---';
-- WHEN '411' THEN SET `token2` = '---';
WHEN '412' THEN SET `token2` = 'HP Above 99%'; WHEN '412' THEN SET `token2` = 'HP Above 99%';
WHEN '501' THEN SET `token2` = 'HP Below 5%'; WHEN '501' THEN SET `token2` = 'HP Below 5%';
WHEN '502' THEN SET `token2` = 'HP Below 10%'; WHEN '502' THEN SET `token2` = 'HP Below 10%';
@ -145,24 +137,12 @@ BEGIN
WHEN '521' THEN SET `token2` = 'Mana Below X%'; WHEN '521' THEN SET `token2` = 'Mana Below X%';
WHEN '522' THEN SET `token2` = 'End Below 40%'; WHEN '522' THEN SET `token2` = 'End Below 40%';
WHEN '523' THEN SET `token2` = 'Mana Below 40%'; WHEN '523' THEN SET `token2` = 'Mana Below 40%';
-- WHEN '601' THEN SET `token2` = '---';
WHEN '603' THEN SET `token2` = 'Only works on Undead2'; WHEN '603' THEN SET `token2` = 'Only works on Undead2';
WHEN '608' THEN SET `token2` = 'Only works on Undead3'; WHEN '608' THEN SET `token2` = 'Only works on Undead3';
WHEN '624' THEN SET `token2` = 'Only works on Summoned2'; WHEN '624' THEN SET `token2` = 'Only works on Summoned2';
-- WHEN '626' THEN SET `token2` = '---';
-- WHEN '700' THEN SET `token2` = '---';
WHEN '701' THEN SET `token2` = 'Doesn\'t work on Pets'; WHEN '701' THEN SET `token2` = 'Doesn\'t work on Pets';
-- WHEN '800' THEN SET `token2` = '---';
-- WHEN '812' THEN SET `token2` = '---';
-- WHEN '814' THEN SET `token2` = '---';
-- WHEN '815' THEN SET `token2` = '---';
-- WHEN '816' THEN SET `token2` = '---';
-- WHEN '817' THEN SET `token2` = '---';
WHEN '818' THEN SET `token2` = 'Only works on Undead4'; WHEN '818' THEN SET `token2` = 'Only works on Undead4';
WHEN '819' THEN SET `token2` = 'Doesn\'t work on Undead4'; WHEN '819' THEN SET `token2` = 'Doesn\'t work on Undead4';
-- WHEN '820' THEN SET `token2` = '---';
-- WHEN '821' THEN SET `token2` = '---';
-- WHEN '822' THEN SET `token2` = '---';
WHEN '825' THEN SET `token2` = 'End Below 21%'; WHEN '825' THEN SET `token2` = 'End Below 21%';
WHEN '826' THEN SET `token2` = 'End Below 25%'; WHEN '826' THEN SET `token2` = 'End Below 25%';
WHEN '827' THEN SET `token2` = 'End Below 29%'; WHEN '827' THEN SET `token2` = 'End Below 29%';
@ -171,15 +151,6 @@ BEGIN
WHEN '842' THEN SET `token2` = 'Only works on Humanoid Level 84 Max'; WHEN '842' THEN SET `token2` = 'Only works on Humanoid Level 84 Max';
WHEN '843' THEN SET `token2` = 'Only works on Humanoid Level 86 Max'; WHEN '843' THEN SET `token2` = 'Only works on Humanoid Level 86 Max';
WHEN '844' THEN SET `token2` = 'Only works on Humanoid Level 88 Max'; WHEN '844' THEN SET `token2` = 'Only works on Humanoid Level 88 Max';
-- WHEN '845' THEN SET `token2` = '---';
-- WHEN '846' THEN SET `token2` = '---';
-- WHEN '847' THEN SET `token2` = '---';
-- WHEN '860' THEN SET `token2` = '---';
-- WHEN '861' THEN SET `token2` = '---';
-- WHEN '862' THEN SET `token2` = '---';
-- WHEN '863' THEN SET `token2` = '---';
-- WHEN '864' THEN SET `token2` = '---';
-- WHEN '865' THEN SET `token2` = '---';
WHEN '1000' THEN SET `token2` = 'Between Level 1 and 75'; WHEN '1000' THEN SET `token2` = 'Between Level 1 and 75';
WHEN '1001' THEN SET `token2` = 'Between Level 76 and 85'; WHEN '1001' THEN SET `token2` = 'Between Level 76 and 85';
WHEN '1002' THEN SET `token2` = 'Between Level 86 and 95'; WHEN '1002' THEN SET `token2` = 'Between Level 86 and 95';