From f1b70b33408eb610db8b50b4e40a959c40a15cf7 Mon Sep 17 00:00:00 2001 From: badcaptain Date: Fri, 11 Oct 2013 23:27:55 -0400 Subject: [PATCH] Fix Merc crash bugs. --- changelog.txt | 3 + .../2013_10_11_Merc_Special_Abilities.sql | 40 ++++++++++++ .../2013_10_11_Merc_vwMercNpcTypes.sql | 62 +++++++++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 utils/sql/git/required/2013_10_11_Merc_Special_Abilities.sql create mode 100644 utils/sql/git/required/2013_10_11_Merc_vwMercNpcTypes.sql diff --git a/changelog.txt b/changelog.txt index e8511f6b6..8ece10e19 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,8 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- +== 10/11/2013 == +Bad_Captain: Fixed merc crash issue by updating special_abilities & vwMercNpcTypes (Sorvani). + == 10/05/2013 == Sorvani: fixed issue with stackable items being created with 0 charges cause by fix to SummonItems diff --git a/utils/sql/git/required/2013_10_11_Merc_Special_Abilities.sql b/utils/sql/git/required/2013_10_11_Merc_Special_Abilities.sql new file mode 100644 index 000000000..740bf7517 --- /dev/null +++ b/utils/sql/git/required/2013_10_11_Merc_Special_Abilities.sql @@ -0,0 +1,40 @@ +ALTER TABLE `merc_stats` ADD COLUMN `special_abilities` TEXT NOT NULL DEFAULT '' AFTER `specialattks`; + +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "1,1^") WHERE specialattks LIKE BINARY '%S%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "2,1^") WHERE specialattks LIKE BINARY '%E%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "3,1^") WHERE specialattks LIKE BINARY '%R%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "4,1^") WHERE specialattks LIKE BINARY '%r%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "5,1^") WHERE specialattks LIKE BINARY '%F%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "6,1^") WHERE specialattks LIKE BINARY '%T%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "7,1^") WHERE specialattks LIKE BINARY '%Q%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "8,1^") WHERE specialattks LIKE BINARY '%L%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "9,1^") WHERE specialattks LIKE BINARY '%b%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "10,1^") WHERE specialattks LIKE BINARY '%m%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "11,1^") WHERE specialattks LIKE BINARY '%Y%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "12,1^") WHERE specialattks LIKE BINARY '%U%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "13,1^") WHERE specialattks LIKE BINARY '%M%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "14,1^") WHERE specialattks LIKE BINARY '%C%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "15,1^") WHERE specialattks LIKE BINARY '%N%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "16,1^") WHERE specialattks LIKE BINARY '%I%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "17,1^") WHERE specialattks LIKE BINARY '%D%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "18,1^") WHERE specialattks LIKE BINARY '%K%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "19,1^") WHERE specialattks LIKE BINARY '%A%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "20,1^") WHERE specialattks LIKE BINARY '%B%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "21,1^") WHERE specialattks LIKE BINARY '%f%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "22,1^") WHERE specialattks LIKE BINARY '%O%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "23,1^") WHERE specialattks LIKE BINARY '%W%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "24,1^") WHERE specialattks LIKE BINARY '%H%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "25,1^") WHERE specialattks LIKE BINARY '%G%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "26,1^") WHERE specialattks LIKE BINARY '%g%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "27,1^") WHERE specialattks LIKE BINARY '%d%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "28,1^") WHERE specialattks LIKE BINARY '%i%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "29,1^") WHERE specialattks LIKE BINARY '%t%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "30,1^") WHERE specialattks LIKE BINARY '%n%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "31,1^") WHERE specialattks LIKE BINARY '%p%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "32,1^") WHERE specialattks LIKE BINARY '%J%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "33,1^") WHERE specialattks LIKE BINARY '%j%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "34,1^") WHERE specialattks LIKE BINARY '%o%'; +UPDATE merc_stats SET special_abilities = CONCAT(special_abilities, "35,1^") WHERE specialattks LIKE BINARY '%Z%'; +UPDATE merc_stats SET special_abilities = TRIM(TRAILING '^' FROM special_abilities); + +ALTER TABLE `merc_stats` DROP COLUMN `specialattks`; \ No newline at end of file diff --git a/utils/sql/git/required/2013_10_11_Merc_vwMercNpcTypes.sql b/utils/sql/git/required/2013_10_11_Merc_vwMercNpcTypes.sql new file mode 100644 index 000000000..75d7d75e1 --- /dev/null +++ b/utils/sql/git/required/2013_10_11_Merc_vwMercNpcTypes.sql @@ -0,0 +1,62 @@ +DROP VIEW IF EXISTS vwMercNpcTypes; +CREATE VIEW vwMercNpcTypes AS +SELECT + ms.merc_npc_type_id, + '' AS name, + ms.clientlevel, + ms.level, + mtyp.race_id, + mstyp.class_id, + ms.hp, + ms.mana, + 0 AS gender, + mai.texture, + mai.helmtexture, + ms.attack_speed, + ms.STR, + ms.STA, + ms.DEX, + ms.AGI, + ms._INT, + ms.WIS, + ms.CHA, + ms.MR, + ms.CR, + ms.DR, + ms.FR, + ms.PR, + ms.Corrup, + ms.mindmg, + ms.maxdmg, + ms.attack_count, + ms.special_abilities, + mwi.d_meele_texture1, + mwi.d_meele_texture2, + mwi.prim_melee_type, + mwi.sec_melee_type, + ms.runspeed, + ms.hp_regen_rate, + ms.mana_regen_rate, + 1 AS bodytype, + mai.armortint_id, + mai.armortint_red, + mai.armortint_green, + mai.armortint_blue, + ms.AC, + ms.ATK, + ms.Accuracy, + ms.spellscale, + ms.healscale + FROM merc_stats ms + INNER JOIN merc_armorinfo mai + ON ms.merc_npc_type_id = mai.merc_npc_type_id + AND mai.minlevel <= ms.level AND mai.maxlevel >= ms.level + INNER JOIN merc_weaponinfo mwi + ON ms.merc_npc_type_id = mwi.merc_npc_type_id + AND mwi.minlevel <= ms.level AND mwi.maxlevel >= ms.level + INNER JOIN merc_templates mtem + ON mtem.merc_npc_type_id = ms.merc_npc_type_id + INNER JOIN merc_types mtyp + ON mtem.merc_type_id = mtyp.merc_type_id + INNER JOIN merc_subtypes mstyp + ON mtem.merc_subtype_id = mstyp.merc_subtype_id; \ No newline at end of file