diff --git a/Source/Framework/Constants/SmartAIConst.cs b/Source/Framework/Constants/SmartAIConst.cs index a109ddaf1..d39190ef2 100644 --- a/Source/Framework/Constants/SmartAIConst.cs +++ b/Source/Framework/Constants/SmartAIConst.cs @@ -302,7 +302,7 @@ namespace Framework.Constants AddDynamicFlag = 95, // Flags RemoveDynamicFlag = 96, // Flags JumpToPos = 97, // Speedxy, Speedz, Targetx, Targety, Targetz - SendGossipMenu = 98, // Menuid, Optionid + SendGossipMenu = 98, // Menuid, optionIndex GoSetLootState = 99, // State SendTargetToTarget = 100, // Id SetHomePos = 101, // None diff --git a/Source/Game/Conditions/ConditionManager.cs b/Source/Game/Conditions/ConditionManager.cs index 46602113d..6e5d25c2b 100644 --- a/Source/Game/Conditions/ConditionManager.cs +++ b/Source/Game/Conditions/ConditionManager.cs @@ -574,7 +574,7 @@ namespace Game var pMenuItemBounds = Global.ObjectMgr.GetGossipMenuItemsMapBounds(cond.SourceGroup); foreach (var menuItems in pMenuItemBounds) { - if (menuItems.MenuId == cond.SourceGroup && menuItems.OptionId == cond.SourceEntry) + if (menuItems.MenuId == cond.SourceGroup && menuItems.OptionIndex == cond.SourceEntry) { menuItems.Conditions.Add(cond); return true; diff --git a/Source/Game/Entities/Creature/Gossip.cs b/Source/Game/Entities/Creature/Gossip.cs index 8df13a830..cf11565ae 100644 --- a/Source/Game/Entities/Creature/Gossip.cs +++ b/Source/Game/Entities/Creature/Gossip.cs @@ -68,10 +68,10 @@ namespace Game.Misc /// Adds a localized gossip menu item from db by menu id and menu item id. /// /// menuId Gossip menu id. - /// menuItemId Gossip menu item id. + /// menuItemId Gossip menu item id. /// sender Identifier of the current menu. /// action Custom action given to OnGossipHello. - public void AddMenuItem(uint menuId, uint menuItemId, uint sender, uint action) + public void AddMenuItem(uint menuId, uint optionIndex, uint sender, uint action) { /// Find items for given menu id. var bounds = Global.ObjectMgr.GetGossipMenuItemsMapBounds(menuId); @@ -83,7 +83,7 @@ namespace Game.Misc foreach (var item in bounds) { // Find the one with the given menu item id. - if (item.OptionId != menuItemId) + if (item.OptionIndex != optionIndex) continue; /// Store texts for localization. @@ -109,7 +109,7 @@ namespace Game.Misc if (optionBroadcastText == null) { // Find localizations from database. - GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, menuItemId); + GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, optionIndex); if (gossipMenuLocale != null) ObjectManager.GetLocaleString(gossipMenuLocale.OptionText, GetLocale(), ref strOptionText); } @@ -117,7 +117,7 @@ namespace Game.Misc if (boxBroadcastText == null) { // Find localizations from database. - GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, menuItemId); + GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, optionIndex); if (gossipMenuLocale != null) ObjectManager.GetLocaleString(gossipMenuLocale.BoxText, GetLocale(), ref strBoxText); } @@ -125,8 +125,8 @@ namespace Game.Misc } // Add menu item with existing method. Menu item id -1 is also used in ADD_GOSSIP_ITEM macro. - uint optionIndex = AddMenuItem(-1, item.OptionIcon, strOptionText, sender, action, strBoxText, item.BoxMoney, item.BoxCoded); - AddGossipMenuItemData(optionIndex, item.ActionMenuId, item.ActionPoiId, item.TrainerId); + uint newOptionIndex = AddMenuItem(-1, item.OptionIcon, strOptionText, sender, action, strBoxText, item.BoxMoney, item.BoxCoded); + AddGossipMenuItemData(newOptionIndex, item.ActionMenuId, item.ActionPoiId, item.TrainerId); } } @@ -844,7 +844,7 @@ namespace Game.Misc public class GossipMenuItems { public uint MenuId; - public uint OptionId; + public uint OptionIndex; public GossipOptionIcon OptionIcon; public string OptionText; public uint OptionBroadcastTextId; diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index 044d66553..e90e38d93 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -2405,7 +2405,7 @@ namespace Game.Entities if (optionBroadcastText == null) { // Find localizations from database. - GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, menuItems.OptionId); + GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, menuItems.OptionIndex); if (gossipMenuLocale != null) ObjectManager.GetLocaleString(gossipMenuLocale.OptionText, locale, ref strOptionText); } @@ -2413,14 +2413,14 @@ namespace Game.Entities if (boxBroadcastText == null) { // Find localizations from database. - GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, menuItems.OptionId); + GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, menuItems.OptionIndex); if (gossipMenuLocale != null) ObjectManager.GetLocaleString(gossipMenuLocale.BoxText, locale, ref strBoxText); } } - menu.GetGossipMenu().AddMenuItem((int)menuItems.OptionId, menuItems.OptionIcon, strOptionText, 0, (uint)menuItems.OptionType, strBoxText, menuItems.BoxMoney, menuItems.BoxCoded); - menu.GetGossipMenu().AddGossipMenuItemData(menuItems.OptionId, menuItems.ActionMenuId, menuItems.ActionPoiId, menuItems.TrainerId); + menu.GetGossipMenu().AddMenuItem((int)menuItems.OptionIndex, menuItems.OptionIcon, strOptionText, 0, (uint)menuItems.OptionType, strBoxText, menuItems.BoxMoney, menuItems.BoxCoded); + menu.GetGossipMenu().AddGossipMenuItemData(menuItems.OptionIndex, menuItems.ActionMenuId, menuItems.ActionPoiId, menuItems.TrainerId); } } } @@ -2448,7 +2448,7 @@ namespace Game.Entities PlayerTalkClass.SendGossipMenu(textId, source.GetGUID()); } - public void OnGossipSelect(WorldObject source, uint gossipListId, uint menuId) + public void OnGossipSelect(WorldObject source, uint optionIndex, uint menuId) { GossipMenu gossipMenu = PlayerTalkClass.GetGossipMenu(); @@ -2456,27 +2456,27 @@ namespace Game.Entities if (menuId != gossipMenu.GetMenuId()) return; - GossipMenuItem item = gossipMenu.GetItem(gossipListId); + GossipMenuItem item = gossipMenu.GetItem(optionIndex); if (item == null) return; - uint gossipOptionId = item.OptionType; + uint gossipOptionType = item.OptionType; ObjectGuid guid = source.GetGUID(); if (source.IsTypeId(TypeId.GameObject)) { - if (gossipOptionId > (int)GossipOption.Questgiver) + if (gossipOptionType > (int)GossipOption.Questgiver) { Log.outError(LogFilter.Player, "Player guid {0} request invalid gossip option for GameObject entry {1}", GetGUID().ToString(), source.GetEntry()); return; } } - GossipMenuItemData menuItemData = gossipMenu.GetItemData(gossipListId); + GossipMenuItemData menuItemData = gossipMenu.GetItemData(optionIndex); if (menuItemData == null) return; - int cost = (int)item.BoxMoney; + long cost = item.BoxMoney; if (!HasEnoughMoney(cost)) { SendBuyError(BuyResult.NotEnoughtMoney, null, 0); @@ -2484,7 +2484,7 @@ namespace Game.Entities return; } - switch ((GossipOption)gossipOptionId) + switch ((GossipOption)gossipOptionType) { case GossipOption.Gossip: { @@ -2500,7 +2500,7 @@ namespace Game.Entities break; } case GossipOption.Outdoorpvp: - Global.OutdoorPvPMgr.HandleGossipOption(this, source.ToCreature(), gossipListId); + Global.OutdoorPvPMgr.HandleGossipOption(this, source.ToCreature(), optionIndex); break; case GossipOption.Spirithealer: if (IsDead()) diff --git a/Source/Game/Globals/ObjectManager.cs b/Source/Game/Globals/ObjectManager.cs index 9fc023938..cd7edf552 100644 --- a/Source/Game/Globals/ObjectManager.cs +++ b/Source/Game/Globals/ObjectManager.cs @@ -604,7 +604,7 @@ namespace Game gossipMenusStorage.Clear(); - SQLResult result = DB.World.Query("SELECT MenuID, TextID FROM gossip_menu"); + SQLResult result = DB.World.Query("SELECT MenuId, TextId FROM gossip_menu"); if (result.IsEmpty()) { Log.outError(LogFilter.ServerLoading, "Loaded 0 gossip_menu entries. DB table `gossip_menu` is empty!"); @@ -637,14 +637,14 @@ namespace Game gossipMenuItemsStorage.Clear(); // 0 1 2 3 4 5 6 - SQLResult result = DB.World.Query("SELECT o.MenuID, o.OptionID, o.OptionIcon, o.OptionText, o.OptionBroadcastTextId, o.OptionType, o.OptionNpcflag, " + + SQLResult result = DB.World.Query("SELECT o.MenuId, o.OptionIndex, o.OptionIcon, o.OptionText, o.OptionBroadcastTextId, o.OptionType, o.OptionNpcFlag, " + // 7 8 9 10 11 12 13 - "oa.ActionMenuID, oa.ActionPoiID, ob.BoxCoded, ob.BoxMoney, ob.BoxText, ob.BoxBroadcastTextId, ot.TrainerId " + + "oa.ActionMenuId, oa.ActionPoiId, ob.BoxCoded, ob.BoxMoney, ob.BoxText, ob.BoxBroadcastTextId, ot.TrainerId " + "FROM gossip_menu_option o " + - "LEFT JOIN gossip_menu_option_action oa ON o.MenuID = oa.MenuID AND o.OptionID = oa.OptionID " + - "LEFT JOIN gossip_menu_option_box ob ON o.MenuID = ob.MenuID AND o.OptionID = ob.OptionID " + - "LEFT JOIN gossip_menu_option_trainer ot ON o.MenuID = ot.MenuID AND o.OptionID = ot.OptionID " + - "ORDER BY o.MenuId, o.OptionID"); + "LEFT JOIN gossip_menu_option_action oa ON o.MenuId = oa.MenuId AND o.OptionIndex = oa.OptionIndex " + + "LEFT JOIN gossip_menu_option_box ob ON o.MenuId = ob.MenuId AND o.OptionIndex = ob.OptionIndex " + + "LEFT JOIN gossip_menu_option_trainer ot ON o.MenuId = ot.MenuId AND o.OptionIndex = ot.OptionIndex " + + "ORDER BY o.MenuId, o.OptionIndex"); if (result.IsEmpty()) { @@ -657,7 +657,7 @@ namespace Game GossipMenuItems gMenuItem = new GossipMenuItems(); gMenuItem.MenuId = result.Read(0); - gMenuItem.OptionId = result.Read(1); + gMenuItem.OptionIndex = result.Read(1); gMenuItem.OptionIcon = (GossipOptionIcon)result.Read(2); gMenuItem.OptionText = result.Read(3); gMenuItem.OptionBroadcastTextId = result.Read(4); @@ -673,7 +673,7 @@ namespace Game if (gMenuItem.OptionIcon >= GossipOptionIcon.Max) { - Log.outError(LogFilter.Sql, $"Table gossip_menu_option for MenuId {gMenuItem.MenuId}, OptionID {gMenuItem.OptionId} has unknown icon id {gMenuItem.OptionIcon}. Replacing with GossipOptionIcon.Chat"); + Log.outError(LogFilter.Sql, $"Table gossip_menu_option for MenuId {gMenuItem.MenuId}, OptionIndex {gMenuItem.OptionIndex} has unknown icon id {gMenuItem.OptionIcon}. Replacing with GossipOptionIcon.Chat"); gMenuItem.OptionIcon = GossipOptionIcon.Chat; } @@ -681,17 +681,17 @@ namespace Game { if (!CliDB.BroadcastTextStorage.ContainsKey(gMenuItem.OptionBroadcastTextId)) { - Log.outError(LogFilter.Sql, $"Table `gossip_menu_option` for MenuId {gMenuItem.MenuId}, OptionID {gMenuItem.OptionId} has non-existing or incompatible OptionBroadcastTextId {gMenuItem.OptionBroadcastTextId}, ignoring."); + Log.outError(LogFilter.Sql, $"Table `gossip_menu_option` for MenuId {gMenuItem.MenuId}, OptionIndex {gMenuItem.OptionIndex} has non-existing or incompatible OptionBroadcastTextId {gMenuItem.OptionBroadcastTextId}, ignoring."); gMenuItem.OptionBroadcastTextId = 0; } } if (gMenuItem.OptionType >= GossipOption.Max) - Log.outError(LogFilter.Sql, $"Table gossip_menu_option for MenuId {gMenuItem.MenuId}, OptionID {gMenuItem.OptionId} has unknown option id {gMenuItem.OptionType}. Option will not be used"); + Log.outError(LogFilter.Sql, $"Table gossip_menu_option for MenuId {gMenuItem.MenuId}, OptionIndex {gMenuItem.OptionIndex} has unknown option id {gMenuItem.OptionType}. Option will not be used"); if (gMenuItem.ActionPoiId != 0 && GetPointOfInterest(gMenuItem.ActionPoiId) == null) { - Log.outError(LogFilter.Sql, $"Table gossip_menu_option for MenuId {gMenuItem.MenuId}, OptionID {gMenuItem.OptionId} use non-existing actionpoiid {gMenuItem.ActionPoiId}, ignoring"); + Log.outError(LogFilter.Sql, $"Table gossip_menu_option for MenuId {gMenuItem.MenuId}, OptionIndex {gMenuItem.OptionIndex} use non-existing actionpoiid {gMenuItem.ActionPoiId}, ignoring"); gMenuItem.ActionPoiId = 0; } @@ -699,21 +699,21 @@ namespace Game { if (!CliDB.BroadcastTextStorage.ContainsKey(gMenuItem.BoxBroadcastTextId)) { - Log.outError(LogFilter.Sql, $"Table `gossip_menu_option` for MenuId {gMenuItem.MenuId}, OptionID {gMenuItem.OptionId} has non-existing or incompatible BoxBroadcastTextId {gMenuItem.BoxBroadcastTextId}, ignoring."); + Log.outError(LogFilter.Sql, $"Table `gossip_menu_option` for MenuId {gMenuItem.MenuId}, OptionIndex {gMenuItem.OptionIndex} has non-existing or incompatible BoxBroadcastTextId {gMenuItem.BoxBroadcastTextId}, ignoring."); gMenuItem.BoxBroadcastTextId = 0; } } if (gMenuItem.TrainerId != 0 && GetTrainer(gMenuItem.TrainerId) == null) { - Log.outError(LogFilter.Sql, $"Table `gossip_menu_option_trainer` for MenuId {gMenuItem.MenuId}, OptionID {gMenuItem.OptionId} use non-existing TrainerId {gMenuItem.TrainerId}, ignoring"); + Log.outError(LogFilter.Sql, $"Table `gossip_menu_option_trainer` for MenuId {gMenuItem.MenuId}, OptionIndex {gMenuItem.OptionIndex} use non-existing TrainerId {gMenuItem.TrainerId}, ignoring"); gMenuItem.TrainerId = 0; } gossipMenuItemsStorage.Add(gMenuItem.MenuId, gMenuItem); } while (result.NextRow()); - Log.outInfo(LogFilter.ServerLoading, "Loaded {0} gossip_menu_option entries in {1} ms", gossipMenuItemsStorage.Count, Time.GetMSTimeDiffToNow(oldMSTime)); + Log.outInfo(LogFilter.ServerLoading, $"Loaded {gossipMenuItemsStorage.Count} gossip_menu_option entries in {Time.GetMSTimeDiffToNow(oldMSTime)} ms"); } public void LoadPointsOfInterest() { @@ -7854,14 +7854,14 @@ namespace Game _gossipMenuItemsLocaleStorage.Clear(); // need for reload case // 0 1 2 3 4 - SQLResult result = DB.World.Query("SELECT MenuID, OptionID, Locale, OptionText, BoxText FROM gossip_menu_option_locale"); + SQLResult result = DB.World.Query("SELECT MenuId, OptionIndex, Locale, OptionText, BoxText FROM gossip_menu_option_locale"); if (result.IsEmpty()) return; do { - ushort menuId = result.Read(0); - ushort optionId = result.Read(1); + uint menuId = result.Read(0); + uint optionIndex = result.Read(1); string localeName = result.Read(2); LocaleConstant locale = localeName.ToEnum(); @@ -7872,7 +7872,7 @@ namespace Game AddLocaleString(result.Read(3), locale, data.OptionText); AddLocaleString(result.Read(4), locale, data.BoxText); - _gossipMenuItemsLocaleStorage[MathFunctions.MakePair32(menuId, optionId)] = data; + _gossipMenuItemsLocaleStorage[Tuple.Create(menuId, optionIndex)] = data; } while (result.NextRow()); @@ -7958,9 +7958,9 @@ namespace Game { return _questObjectivesLocaleStorage.LookupByKey(entry); } - public GossipMenuItemsLocale GetGossipMenuItemsLocale(uint menuId, uint menuItemId) + public GossipMenuItemsLocale GetGossipMenuItemsLocale(uint menuId, uint optionIndex) { - return _gossipMenuItemsLocaleStorage.LookupByKey(MathFunctions.MakePair32(menuId, menuItemId)); + return _gossipMenuItemsLocaleStorage.LookupByKey(Tuple.Create(menuId, optionIndex)); } public PageTextLocale GetPageTextLocale(uint entry) { @@ -9568,7 +9568,7 @@ namespace Game Dictionary _questObjectivesLocaleStorage = new Dictionary(); Dictionary _questOfferRewardLocaleStorage = new Dictionary(); Dictionary _questRequestItemsLocaleStorage = new Dictionary(); - Dictionary _gossipMenuItemsLocaleStorage = new Dictionary(); + Dictionary, GossipMenuItemsLocale> _gossipMenuItemsLocaleStorage = new Dictionary, GossipMenuItemsLocale>(); Dictionary _pageTextLocaleStorage = new Dictionary(); Dictionary _pointOfInterestLocaleStorage = new Dictionary(); Dictionary _playerChoiceLocales = new Dictionary(); diff --git a/sql/updates/world/master/2018_01_20_00_world.sql b/sql/updates/world/master/2018_01_20_00_world.sql new file mode 100644 index 000000000..743752c0f --- /dev/null +++ b/sql/updates/world/master/2018_01_20_00_world.sql @@ -0,0 +1,4 @@ +-- Quest: The Burning Blade +DELETE FROM `creature_loot_template` WHERE `Item`= 52564; +INSERT INTO `creature_loot_template` (`Entry`,`Item`,`Chance`,`QuestRequired`,`MinCount`,`MaxCount`) VALUES +(3196,52564,86,1,1,1),(3199,52564,64,1,1,1),(3195,52564,43,1,1,1); diff --git a/sql/updates/world/master/2018_01_20_01_world.sql b/sql/updates/world/master/2018_01_20_01_world.sql new file mode 100644 index 000000000..4ca510bb5 --- /dev/null +++ b/sql/updates/world/master/2018_01_20_01_world.sql @@ -0,0 +1,62 @@ +/* creature */ +SET @CGUID := 251569; -- Set necessary +DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+7; +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`) VALUES +(@CGUID+0,42560,0,40,109,1,169,0,0,0,-9855.52,1277.67,40.8733,5.64321,120,0,0,0,0,0,0,0,0,'',18019), +(@CGUID+1,42403,0,40,109,1,169,0,0,0,-9854.61,1277.01,40.8672,5.54896,120,0,0,0,0,0,0,0,0,'',18019), +(@CGUID+2,42386,0,40,109,1,169,0,32826,0,-9859.24,1279.61,41.0337,5.58039,120,0,0,0,0,0,0,0,0,'',18019), +(@CGUID+3,42384,0,40,109,1,169,0,32819,0,-9861.03,1276.97,40.7707,0.110977,120,0,0,0,0,0,0,0,0,'',18019), +(@CGUID+4,42384,0,40,109,1,169,0,32818,0,-9851.09,1273.94,41.0974,2.4279,120,0,0,0,0,0,0,0,0,'',18019), +(@CGUID+5,42559,0,40,109,1,169,0,0,0,-9852.11,1274.83,41.0164,5.54593,120,0,0,0,0,0,0,0,0,'',18019), +(@CGUID+6,42559,0,40,109,1,169,0,0,0,-9859.83,1276.11,40.7818,2.44651,120,0,0,0,0,0,0,0,0,'',18019), +(@CGUID+7,42558,0,40,109,1,169,0,0,0,-9854.99,1275.83,40.9068,1.43605,120,0,0,2865,0,0,0,0,0,'',18019); + +UPDATE `creature` SET `spawndist` = 3 , `MovementType` = 1 WHERE `guid` = 276241; +UPDATE `creature` SET `spawndist` = 3 , `MovementType` = 1 WHERE `guid` = 276239; +UPDATE `creature` SET `spawndist` = 3 , `MovementType` = 1 WHERE `guid` = 276262; +UPDATE `creature` SET `spawndist` = 3 , `MovementType` = 1 WHERE `guid` = 276256; + +/* creature addon */ +DELETE FROM `creature_addon` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+7; +INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `aiAnimKit`, `movementAnimKit`, `meleeAnimKit`, `auras`) VALUES +(@CGUID+0,0,0,65536,0,0,0,0,0,29266), +(@CGUID+2,0,0,0,0,430,0,0,0,NULL), +(@CGUID+3,0,0,0,0,430,0,0,0,NULL), +(@CGUID+4,0,0,0,0,430,0,0,0,NULL), +(@CGUID+7,0,0,8,0,0,0,0,0,NULL); + +DELETE FROM `creature_addon` WHERE `guid` IN (349939, 349940, 349978, 349979, 349980, 349981, 349982, 349983); +INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `aiAnimKit`, `movementAnimKit`, `meleeAnimKit`, `auras`) VALUES +(349939,0,0,0,1,333,0,0,0,NULL), +(349940,0,0,0,1,333,0,0,0,NULL), +(349978,0,0,0,1,333,0,0,0,NULL), +(349979,0,0,0,1,333,0,0,0,NULL), +(349980,0,0,0,1,333,0,0,0,NULL), +(349981,0,0,0,1,333,0,0,0,NULL), +(349982,0,0,0,1,333,0,0,0,NULL), +(349983,0,0,0,1,333,0,0,0,NULL); + +/* quest template addon */ +DELETE FROM `quest_template_addon` WHERE `ID` IN (26209, 26213, 26214, 26215, 26229, 26230, 26241, 26270, 26237, 26286, 26289, 26292, 26287, 26236, 26266); +INSERT INTO `quest_template_addon` (`ID`, `MaxLevel`, `AllowableClasses`, `SourceSpellID`, `PrevQuestID`, `NextQuestID`, `ExclusiveGroup`, `RewardMailTemplateID`, `RewardMailDelay`, `RequiredSkillID`, `RequiredSkillPoints`, `RequiredMinRepFaction`, `RequiredMaxRepFaction`, `RequiredMinRepValue`, `RequiredMaxRepValue`, `ProvidedItemCount`, `SpecialFlags`) VALUES +(26209,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), +(26215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), +(26213,0,0,0,26209,26215,-26213,0,0,0,0,0,0,0,0,0,0), +(26214,0,0,0,26209,26215,-26213,0,0,0,0,0,0,0,0,0,0), +(26229,0,0,0,26215,0,0,0,0,0,0,0,0,0,0,0,0), +(26230,0,0,0,26215,0,0,0,0,0,0,0,0,0,0,0,0), +(26241,0,0,0,26236,0,0,0,0,0,0,0,0,0,0,0,0), +(26270,0,0,0,26241,0,0,0,0,0,0,0,0,0,0,0,0), +(26237,0,0,0,26236,0,0,0,0,0,0,0,0,0,0,0,0), +(26286,0,0,0,26266,0,0,0,0,0,0,0,0,0,0,0,0), +(26289,0,0,0,26286,0,0,0,0,0,0,0,0,0,0,0,0), +(26292,0,0,0,26291,0,0,0,0,0,0,0,0,0,0,0,0), +(26287,0,0,0,26266,0,0,0,0,0,0,0,0,0,0,0,0), +(26236,0,0,0,26232,0,0,0,0,0,0,0,0,0,0,0,0), +(26266,0,0,0,26270,0,0,0,0,0,0,0,0,0,0,1,0); + +/* creature loot template */ +DELETE FROM `creature_loot_template` WHERE `Entry`=114 AND `Item`=57935; +INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(114,57935,0,8.75,0,1,0,1,1,NULL); +UPDATE `creature_loot_template` SET `QuestRequired` = 1 WHERE `Entry` = 42677 AND `Item` = 58118; diff --git a/sql/updates/world/master/2018_01_28_00_world.sql b/sql/updates/world/master/2018_01_28_00_world.sql new file mode 100644 index 000000000..db16731ab --- /dev/null +++ b/sql/updates/world/master/2018_01_28_00_world.sql @@ -0,0 +1,2 @@ +ALTER TABLE `spell_area` CHANGE `autocast` `flags` TINYINT(3) UNSIGNED NOT NULL DEFAULT '3' AFTER `gender`; +UPDATE `spell_area` SET `flags`=`flags`|2; diff --git a/sql/updates/world/master/2018_01_29_00_world.sql b/sql/updates/world/master/2018_01_29_00_world.sql new file mode 100644 index 000000000..06383902c --- /dev/null +++ b/sql/updates/world/master/2018_01_29_00_world.sql @@ -0,0 +1,2 @@ +-- +DELETE FROM `creature` WHERE `guid`=86933; diff --git a/sql/updates/world/master/2018_02_01_00_world.sql b/sql/updates/world/master/2018_02_01_00_world.sql new file mode 100644 index 000000000..34ff35f7d --- /dev/null +++ b/sql/updates/world/master/2018_02_01_00_world.sql @@ -0,0 +1,24 @@ +ALTER TABLE `gossip_menu` + CHANGE `MenuID` `MenuId` INT(10) UNSIGNED NOT NULL DEFAULT '0', + CHANGE `TextID` `TextId` INT(10) UNSIGNED NOT NULL DEFAULT '0'; + +ALTER TABLE `gossip_menu_option` + CHANGE `MenuID` `MenuId` INT(10) UNSIGNED NOT NULL DEFAULT '0', + CHANGE `OptionID` `OptionIndex` INT(10) UNSIGNED NOT NULL DEFAULT '0', + CHANGE `OptionNpcflag` `OptionNpcFlag` bigint(20) UNSIGNED NOT NULL DEFAULT '0'; + +ALTER TABLE `gossip_menu_option_action` + CHANGE `MenuID` `MenuId` INT(10) UNSIGNED NOT NULL DEFAULT '0', + CHANGE `OptionID` `OptionIndex` INT(10) UNSIGNED NOT NULL DEFAULT '0'; + +ALTER TABLE `gossip_menu_option_box` + CHANGE `MenuID` `MenuId` INT(10) UNSIGNED NOT NULL DEFAULT '0', + CHANGE `OptionID` `OptionIndex` INT(10) UNSIGNED NOT NULL DEFAULT '0'; + +ALTER TABLE `gossip_menu_option_trainer` + CHANGE `MenuID` `MenuId` INT(10) UNSIGNED NOT NULL DEFAULT '0', + CHANGE `OptionID` `OptionIndex` INT(10) UNSIGNED NOT NULL DEFAULT '0'; + +ALTER TABLE `gossip_menu_option_locale` + CHANGE `MenuID` `MenuId` INT(10) UNSIGNED NOT NULL DEFAULT '0', + CHANGE `OptionID` `OptionIndex` INT(10) UNSIGNED NOT NULL DEFAULT '0';