From 2a89913879a254d799a9a33ab1dad397b7052728 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Fri, 5 Jan 2018 12:22:12 -0500 Subject: [PATCH] Core/Creature: Added TitleAlt to creature_template --- .../Database/Databases/WorldDatabase.cs | 2 +- Source/Game/Entities/Creature/CreatureData.cs | 1 + Source/Game/Globals/ObjectManager.cs | 125 +++++++++--------- Source/Game/Handlers/QueryHandler.cs | 2 +- .../world/master/2018_01_05_03_world.sql | 2 + .../world/master/2018_01_05_04_world.sql | 2 + 6 files changed, 70 insertions(+), 64 deletions(-) create mode 100644 sql/updates/world/master/2018_01_05_03_world.sql create mode 100644 sql/updates/world/master/2018_01_05_04_world.sql diff --git a/Source/Framework/Database/Databases/WorldDatabase.cs b/Source/Framework/Database/Databases/WorldDatabase.cs index e5df80658..62ff18501 100644 --- a/Source/Framework/Database/Databases/WorldDatabase.cs +++ b/Source/Framework/Database/Databases/WorldDatabase.cs @@ -75,7 +75,7 @@ namespace Framework.Database PrepareStatement(WorldStatements.SEL_WAYPOINT_SCRIPT_ID_BY_GUID, "SELECT id FROM waypoint_scripts WHERE guid = ?"); PrepareStatement(WorldStatements.DEL_CREATURE, "DELETE FROM creature WHERE guid = ?"); PrepareStatement(WorldStatements.SEL_COMMANDS, "SELECT name, permission, help FROM command"); - PrepareStatement(WorldStatements.SEL_CREATURE_TEMPLATE, "SELECT entry, difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, modelid4, name, femaleName, subname, IconName, gossip_menu_id, minlevel, maxlevel, HealthScalingExpansion, RequiredExpansion, VignetteID, faction, npcflag, speed_walk, speed_run, scale, rank, dmgschool, BaseAttackTime, RangeAttackTime, BaseVariance, RangeVariance, unit_class, unit_flags, unit_flags2, unit_flags3, dynamicflags, family, trainer_class, type, type_flags, type_flags2, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, VehicleId, mingold, maxgold, AIName, MovementType, InhabitType, HoverHeight, HealthModifier, HealthModifierExtra, ManaModifier, ManaModifierExtra, ArmorModifier, DamageModifier, ExperienceModifier, RacialLeader, movementId, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName FROM creature_template WHERE entry = ?"); + PrepareStatement(WorldStatements.SEL_CREATURE_TEMPLATE, "SELECT entry, difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, modelid4, name, femaleName, subname, TitleAlt, IconName, gossip_menu_id, minlevel, maxlevel, HealthScalingExpansion, RequiredExpansion, VignetteID, faction, npcflag, speed_walk, speed_run, scale, rank, dmgschool, BaseAttackTime, RangeAttackTime, BaseVariance, RangeVariance, unit_class, unit_flags, unit_flags2, unit_flags3, dynamicflags, family, trainer_class, type, type_flags, type_flags2, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, VehicleId, mingold, maxgold, AIName, MovementType, InhabitType, HoverHeight, HealthModifier, HealthModifierExtra, ManaModifier, ManaModifierExtra, ArmorModifier, DamageModifier, ExperienceModifier, RacialLeader, movementId, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName FROM creature_template WHERE entry = ?"); PrepareStatement(WorldStatements.SEL_WAYPOINT_SCRIPT_BY_ID, "SELECT guid, delay, command, datalong, datalong2, dataint, x, y, z, o FROM waypoint_scripts WHERE id = ?"); PrepareStatement(WorldStatements.SEL_CREATURE_BY_ID, "SELECT guid FROM creature WHERE id = ?"); PrepareStatement(WorldStatements.SEL_GAMEOBJECT_NEAREST, "SELECT guid, id, position_x, position_y, position_z, map, (POW(position_x - ?, 2) + POW(position_y - ?, 2) + POW(position_z - ?, 2)) AS order_ FROM gameobject WHERE map = ? AND (POW(position_x - ?, 2) + POW(position_y - ?, 2) + POW(position_z - ?, 2)) <= ? ORDER BY order_"); diff --git a/Source/Game/Entities/Creature/CreatureData.cs b/Source/Game/Entities/Creature/CreatureData.cs index 3edf9340f..8c48c55f2 100644 --- a/Source/Game/Entities/Creature/CreatureData.cs +++ b/Source/Game/Entities/Creature/CreatureData.cs @@ -35,6 +35,7 @@ namespace Game.Entities public string Name; public string FemaleName; public string SubName; + public string TitleAlt; public string IconName; public uint GossipMenuId; public short Minlevel; diff --git a/Source/Game/Globals/ObjectManager.cs b/Source/Game/Globals/ObjectManager.cs index 91e3aa5d4..be52b42a0 100644 --- a/Source/Game/Globals/ObjectManager.cs +++ b/Source/Game/Globals/ObjectManager.cs @@ -1712,21 +1712,21 @@ namespace Game { var time = Time.GetMSTime(); - // 0 1 2 3 4 5 6 7 8 + // 0 1 2 3 4 5 6 7 8 SQLResult result = DB.World.Query("SELECT entry, difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, " + - //9 10 11 12 13 14 15 16 17 18 19 - "modelid4, name, femaleName, subname, IconName, gossip_menu_id, minlevel, maxlevel, HealthScalingExpansion, RequiredExpansion, VignetteID, " + - //20 21 22 23 24 25 26 27 28 29 30 + //9 10 11 12 13 14 15 16 17 18 19 20 + "modelid4, name, femaleName, subname, TitleAlt, IconName, gossip_menu_id, minlevel, maxlevel, HealthScalingExpansion, RequiredExpansion, VignetteID, " + + //21 22 23 24 25 26 27 28 29 30 31 "faction, npcflag, speed_walk, speed_run, scale, rank, dmgschool, BaseAttackTime, RangeAttackTime, BaseVariance, RangeVariance, " + - //31 32 33 34 35 36 37 38 + //32 33 34 35 36 37 38 39 "unit_class, unit_flags, unit_flags2, unit_flags3, dynamicflags, family, trainer_class, type, " + - //39 40 41 42 43 44 45 46 47 48 49 + // 40 41 42 43 44 45 46 47 48 49 50 "type_flags, type_flags2, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, " + - //50 51 52 53 54 55 56 57 58 59 60 61 62 + //51 52 53 54 55 56 57 58 59 60 61 62 63 "spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, VehicleId, mingold, maxgold, AIName, MovementType, " + - //63 64 65 66 67 68 69 70 71 + //64 65 66 67 68 69 70 71 72 "InhabitType, HoverHeight, HealthModifier, HealthModifierExtra, ManaModifier, ManaModifierExtra, ArmorModifier, DamageModifier, ExperienceModifier, " + - //72 73 74 75 76 77 + //73 74 75 76 77 78 "RacialLeader, movementId, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName FROM creature_template"); if (result.IsEmpty()) @@ -1766,64 +1766,65 @@ namespace Game creature.Name = fields.Read(10); creature.FemaleName = fields.Read(11); creature.SubName = fields.Read(12); - creature.IconName = fields.Read(13); - creature.GossipMenuId = fields.Read(14); - creature.Minlevel = fields.Read(15); - creature.Maxlevel = fields.Read(16); - creature.HealthScalingExpansion = fields.Read(17); - creature.RequiredExpansion = fields.Read(18); - creature.VignetteID = fields.Read(19); - creature.Faction = fields.Read(20); - creature.Npcflag = (NPCFlags)fields.Read(21); - creature.SpeedWalk = fields.Read(22); - creature.SpeedRun = fields.Read(23); - creature.Scale = fields.Read(24); - creature.Rank = (CreatureEliteType)fields.Read(25); - creature.DmgSchool = fields.Read(26); - creature.BaseAttackTime = fields.Read(27); - creature.RangeAttackTime = fields.Read(28); - creature.BaseVariance = fields.Read(29); - creature.RangeVariance = fields.Read(30); - creature.UnitClass = fields.Read(31); - creature.UnitFlags = (UnitFlags)fields.Read(32); - creature.UnitFlags2 = fields.Read(33); - creature.UnitFlags3 = fields.Read(34); - creature.DynamicFlags = fields.Read(35); - creature.Family = (CreatureFamily)fields.Read(36); - creature.TrainerClass = (Class)fields.Read(37); - creature.CreatureType = (CreatureType)fields.Read(38); - creature.TypeFlags = (CreatureTypeFlags)fields.Read(39); - creature.TypeFlags2 = fields.Read(40); - creature.LootId = fields.Read(41); - creature.PickPocketId = fields.Read(42); - creature.SkinLootId = fields.Read(43); + creature.TitleAlt = fields.Read(13); + creature.IconName = fields.Read(14); + creature.GossipMenuId = fields.Read(15); + creature.Minlevel = fields.Read(16); + creature.Maxlevel = fields.Read(17); + creature.HealthScalingExpansion = fields.Read(18); + creature.RequiredExpansion = fields.Read(19); + creature.VignetteID = fields.Read(20); + creature.Faction = fields.Read(21); + creature.Npcflag = (NPCFlags)fields.Read(22); + creature.SpeedWalk = fields.Read(23); + creature.SpeedRun = fields.Read(24); + creature.Scale = fields.Read(25); + creature.Rank = (CreatureEliteType)fields.Read(26); + creature.DmgSchool = fields.Read(27); + creature.BaseAttackTime = fields.Read(28); + creature.RangeAttackTime = fields.Read(29); + creature.BaseVariance = fields.Read(30); + creature.RangeVariance = fields.Read(31); + creature.UnitClass = fields.Read(32); + creature.UnitFlags = (UnitFlags)fields.Read(33); + creature.UnitFlags2 = fields.Read(34); + creature.UnitFlags3 = fields.Read(35); + creature.DynamicFlags = fields.Read(36); + creature.Family = (CreatureFamily)fields.Read(37); + creature.TrainerClass = (Class)fields.Read(38); + creature.CreatureType = (CreatureType)fields.Read(39); + creature.TypeFlags = (CreatureTypeFlags)fields.Read(40); + creature.TypeFlags2 = fields.Read(41); + creature.LootId = fields.Read(42); + creature.PickPocketId = fields.Read(43); + creature.SkinLootId = fields.Read(44); for (var i = (int)SpellSchools.Holy; i < (int)SpellSchools.Max; ++i) - creature.Resistance[i] = fields.Read(44 + i - 1); + creature.Resistance[i] = fields.Read(45 + i - 1); for (var i = 0; i < SharedConst.MaxCreatureSpells; ++i) - creature.Spells[i] = fields.Read(50 + i); + creature.Spells[i] = fields.Read(51 + i); - creature.VehicleId = fields.Read(58); - creature.MinGold = fields.Read(59); - creature.MaxGold = fields.Read(60); - creature.AIName = fields.Read(61); - creature.MovementType = fields.Read(62); - creature.InhabitType = (InhabitType)fields.Read(63); - creature.HoverHeight = fields.Read(64); - creature.ModHealth = fields.Read(65); - creature.ModHealthExtra = fields.Read(66); - creature.ModMana = fields.Read(67); - creature.ModManaExtra = fields.Read(68); - creature.ModArmor = fields.Read(69); - creature.ModDamage = fields.Read(70); - creature.ModExperience = fields.Read(71); - creature.RacialLeader = fields.Read(72); - creature.MovementId = fields.Read(73); - creature.RegenHealth = fields.Read(74); - creature.MechanicImmuneMask = fields.Read(75); - creature.FlagsExtra = (CreatureFlagsExtra)fields.Read(76); - creature.ScriptID = GetScriptId(fields.Read(77)); + creature.VehicleId = fields.Read(59); + creature.MinGold = fields.Read(60); + creature.MaxGold = fields.Read(61); + creature.AIName = fields.Read(62); + creature.MovementType = fields.Read(63); + creature.InhabitType = (InhabitType)fields.Read(64); + creature.HoverHeight = fields.Read(65); + creature.ModHealth = fields.Read(66); + creature.ModHealthExtra = fields.Read(67); + creature.ModMana = fields.Read(68); + creature.ModManaExtra = fields.Read(69); + creature.ModArmor = fields.Read(70); + creature.ModDamage = fields.Read(71); + creature.ModExperience = fields.Read(72); + creature.RacialLeader = fields.Read(73); + creature.MovementId = fields.Read(74); + creature.RegenHealth = fields.Read(75); + creature.MechanicImmuneMask = fields.Read(76); + creature.FlagsExtra = (CreatureFlagsExtra)fields.Read(77); + creature.ScriptID = GetScriptId(fields.Read(78)); creatureTemplateStorage.Add(entry, creature); } diff --git a/Source/Game/Handlers/QueryHandler.cs b/Source/Game/Handlers/QueryHandler.cs index 1cb8c841c..59a26ac33 100644 --- a/Source/Game/Handlers/QueryHandler.cs +++ b/Source/Game/Handlers/QueryHandler.cs @@ -157,7 +157,7 @@ namespace Game stats.VignetteID = creatureInfo.VignetteID; stats.Title = creatureInfo.SubName; - //stats.TitleAlt = ; + stats.TitleAlt = creatureInfo.TitleAlt; stats.CursorName = creatureInfo.IconName; var items = Global.ObjectMgr.GetCreatureQuestItemList(packet.CreatureID); diff --git a/sql/updates/world/master/2018_01_05_03_world.sql b/sql/updates/world/master/2018_01_05_03_world.sql new file mode 100644 index 000000000..8b5760006 --- /dev/null +++ b/sql/updates/world/master/2018_01_05_03_world.sql @@ -0,0 +1,2 @@ +ALTER TABLE `creature_template` + ADD COLUMN `TitleAlt` CHAR(200) NULL AFTER `subname`; diff --git a/sql/updates/world/master/2018_01_05_04_world.sql b/sql/updates/world/master/2018_01_05_04_world.sql new file mode 100644 index 000000000..7aa56548a --- /dev/null +++ b/sql/updates/world/master/2018_01_05_04_world.sql @@ -0,0 +1,2 @@ +UPDATE `creature_template` SET `TitleAlt`='Council to the Triumvirate' WHERE `entry`=124574; -- Hatuun +UPDATE `creature_template` SET `name`='Kobold Worker' WHERE `entry`=257; -- Kobold Workers