aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/base/auth_database.sql12
-rw-r--r--sql/updates/auth/2014_04_28_00_rbac_permissions.sql21
-rw-r--r--sql/updates/world/2014_04_26_04_world_creature_template.sql3
-rw-r--r--sql/updates/world/2014_04_27_00_world_misc.sql24
-rw-r--r--sql/updates/world/2014_04_27_01_world_gossip_menu_option.sql223
-rw-r--r--sql/updates/world/2014_04_27_02_world_creature_template.sql8
-rw-r--r--sql/updates/world/2014_04_27_03_world_creature_template.sql125
-rw-r--r--sql/updates/world/2014_04_27_04_world_creature_template.sql5
-rw-r--r--sql/updates/world/2014_04_27_05_world_creature_template.sql12
-rw-r--r--sql/updates/world/2014_04_27_06_world_creature_template.sql14
-rw-r--r--sql/updates/world/2014_04_27_07_world_creature_template.sql40
-rw-r--r--sql/updates/world/2014_04_27_08_world_creature_template.sql85
-rw-r--r--sql/updates/world/2014_04_27_09_world_creature_template.sql23
-rw-r--r--sql/updates/world/2014_04_27_10_world_creature_template.sql2
-rw-r--r--sql/updates/world/2014_04_28_00_world_creature_template.sql88
-rw-r--r--sql/updates/world/2014_04_28_01_world_creature_template.sql24
-rw-r--r--sql/updates/world/2014_04_28_02_world_creature_template.sql11
-rw-r--r--sql/updates/world/2014_04_28_03_world_command.sql10
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp2
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp4
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp2
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp6
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.cpp4
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp6
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundSA.h1
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp7
-rw-r--r--src/server/game/Entities/Creature/Creature.h3
-rw-r--r--src/server/game/Entities/Object/Object.h1
-rw-r--r--src/server/game/Entities/Player/Player.cpp3
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp5
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp162
-rw-r--r--src/server/game/Handlers/TradeHandler.cpp9
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp2
-rw-r--r--src/server/game/Spells/SpellMgr.cpp2
-rw-r--r--src/server/game/Texts/CreatureTextMgr.cpp12
-rw-r--r--src/server/scripts/Commands/cs_npc.cpp8
-rw-r--r--src/server/scripts/Commands/cs_reload.cpp127
-rw-r--r--src/server/scripts/Northrend/zone_sholazar_basin.cpp8
-rw-r--r--src/server/scripts/Northrend/zone_zuldrak.cpp2
-rw-r--r--src/server/shared/Database/Implementation/WorldDatabase.cpp4
40 files changed, 926 insertions, 184 deletions
diff --git a/sql/base/auth_database.sql b/sql/base/auth_database.sql
index 29f8f8c274e..a1337fbca12 100644
--- a/sql/base/auth_database.sql
+++ b/sql/base/auth_database.sql
@@ -1,8 +1,8 @@
--- MySQL dump 10.13 Distrib 5.6.9-rc, for Win64 (x86_64)
+-- MySQL dump 10.15 Distrib 10.0.10-MariaDB, for Win64 (x86)
--
-- Host: localhost Database: auth
-- ------------------------------------------------------
--- Server version 5.6.9-rc
+-- Server version 10.0.10-MariaDB
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -224,7 +224,7 @@ DROP TABLE IF EXISTS `logs`;
CREATE TABLE `logs` (
`time` int(10) unsigned NOT NULL,
`realm` int(10) unsigned NOT NULL,
- `type` varchar(250),
+ `type` varchar(250) DEFAULT NULL,
`level` tinyint(3) unsigned NOT NULL DEFAULT '0',
`string` text CHARACTER SET latin1
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -289,7 +289,7 @@ CREATE TABLE `rbac_default_permissions` (
LOCK TABLES `rbac_default_permissions` WRITE;
/*!40000 ALTER TABLE `rbac_default_permissions` DISABLE KEYS */;
-INSERT INTO `rbac_default_permissions` VALUES (3,192),(2,193),(1,194),(0,195);
+INSERT INTO `rbac_default_permissions` VALUES (0,195),(1,194),(2,193),(3,192);
/*!40000 ALTER TABLE `rbac_default_permissions` ENABLE KEYS */;
UNLOCK TABLES;
@@ -341,7 +341,7 @@ CREATE TABLE `rbac_permissions` (
LOCK TABLES `rbac_permissions` WRITE;
/*!40000 ALTER TABLE `rbac_permissions` DISABLE KEYS */;
-INSERT INTO `rbac_permissions` VALUES (1,'Instant logout'),(2,'Skip Queue'),(3,'Join Normal Battleground'),(4,'Join Random Battleground'),(5,'Join Arenas'),(6,'Join Dungeon Finder'),(11,'Log GM trades'),(13,'Skip Instance required bosses check'),(14,'Skip character creation team mask check'),(15,'Skip character creation class mask check'),(16,'Skip character creation race mask check'),(17,'Skip character creation reserved name check'),(18,'Skip character creation heroic min level check'),(19,'Skip needed requirements to use channel check'),(20,'Skip disable map check'),(21,'Skip reset talents when used more than allowed check'),(22,'Skip spam chat check'),(23,'Skip over-speed ping check'),(24,'Two side faction characters on the same account'),(25,'Allow say chat between factions'),(26,'Allow channel chat between factions'),(27,'Two side mail interaction'),(28,'See two side who list'),(29,'Add friends of other faction'),(30,'Save character without delay with .save command'),(31,'Use params with .unstuck command'),(32,'Can be assigned tickets with .assign ticket command'),(33,'Notify if a command was not found'),(34,'Check if should appear in list using .gm ingame command'),(35,'See all security levels with who command'),(36,'Filter whispers'),(37,'Use staff badge in chat'),(38,'Resurrect with full Health Points'),(39,'Restore saved gm setting states'),(40,'Allows to add a gm to friend list'),(41,'Use Config option START_GM_LEVEL to assign new character level'),(42,'Allows to use CMSG_WORLD_TELEPORT opcode'),(43,'Allows to use CMSG_WHOIS opcode'),(44,'Receive global GM messages/texts'),(45,'Join channels without announce'),(46,'Change channel settings without being channel moderator'),(47,'Enables lower security than target check'),(48,'Enable IP, Last Login and EMail output in pinfo'),(49,'Forces to enter the email for confirmation on password change'),(50,'Allow user to check his own email with .account'),(192,'Role: Sec Level Administrator'),(193,'Role: Sec Level Gamemaster'),(194,'Role: Sec Level Moderator'),(195,'Role: Sec Level Player'),(196,'Role: Administrator Commands'),(197,'Role: Gamemaster Commands'),(198,'Role: Moderator Commands'),(199,'Role: Player Commands'),(200,'Command: rbac'),(201,'Command: rbac account'),(202,'Command: rbac account list'),(203,'Command: rbac account grant'),(204,'Command: rbac account deny'),(205,'Command: rbac account revoke'),(206,'Command: rbac list'),(217,'Command: account'),(218,'Command: account addon'),(219,'Command: account create'),(220,'Command: account delete'),(221,'Command: account lock'),(222,'Command: account lock country'),(223,'Command: account lock ip'),(224,'Command: account onlinelist'),(225,'Command: account password'),(226,'Command: account set'),(227,'Command: account set addon'),(228,'Command: account set gmlevel'),(229,'Command: account set password'),(230,'Command: achievement'),(231,'Command: achievement add'),(232,'Command: arena'),(233,'Command: arena captain'),(234,'Command: arena create'),(235,'Command: arena disband'),(236,'Command: arena info'),(237,'Command: arena lookup'),(238,'Command: arena rename'),(239,'Command: ban'),(240,'Command: ban account'),(241,'Command: ban character'),(242,'Command: ban ip'),(243,'Command: ban playeraccount'),(244,'Command: baninfo'),(245,'Command: baninfo account'),(246,'Command: baninfo character'),(247,'Command: baninfo ip'),(248,'Command: banlist'),(249,'Command: banlist account'),(250,'Command: banlist character'),(251,'Command: banlist ip'),(252,'Command: unban'),(253,'Command: unban account'),(254,'Command: unban character'),(255,'Command: unban ip'),(256,'Command: unban playeraccount'),(257,'Command: bf'),(258,'Command: bf start'),(259,'Command: bf stop'),(260,'Command: bf switch'),(261,'Command: bf timer'),(262,'Command: bf enable'),(263,'Command: account email'),(264,'Command: account set sec'),(265,'Command: account set sec email'),(266,'Command: account set sec regmail'),(267,'Command: cast'),(268,'Command: cast back'),(269,'Command: cast dist'),(270,'Command: cast self'),(271,'Command: cast target'),(272,'Command: cast dest'),(273,'Command: character'),(274,'Command: character customize'),(275,'Command: character changefaction'),(276,'Command: character changerace'),(277,'Command: character deleted'),(279,'Command: character deleted list'),(280,'Command: character deleted restore'),(283,'Command: character level'),(284,'Command: character rename'),(285,'Command: character reputation'),(286,'Command: character titles'),(287,'Command: levelup'),(288,'Command: pdump'),(289,'Command: pdump load'),(290,'Command: pdump write'),(291,'Command: cheat'),(292,'Command: cheat casttime'),(293,'Command: cheat cooldown'),(294,'Command: cheat explore'),(295,'Command: cheat god'),(296,'Command: cheat power'),(297,'Command: cheat status'),(298,'Command: cheat taxi'),(299,'Command: cheat waterwalk'),(300,'Command: debug'),(301,'Command: debug anim'),(302,'Command: debug areatriggers'),(303,'Command: debug arena'),(304,'Command: debug bg'),(305,'Command: debug entervehicle'),(306,'Command: debug getitemstate'),(307,'Command: debug getitemvalue'),(308,'Command: debug getvalue'),(309,'Command: debug hostil'),(310,'Command: debug itemexpire'),(311,'Command: debug lootrecipient'),(312,'Command: debug los'),(313,'Command: debug mod32value'),(314,'Command: debug moveflags'),(315,'Command: debug play'),(316,'Command: debug play cinematics'),(317,'Command: debug play movie'),(318,'Command: debug play sound'),(319,'Command: debug send'),(320,'Command: debug send buyerror'),(321,'Command: debug send channelnotify'),(322,'Command: debug send chatmessage'),(323,'Command: debug send equiperror'),(324,'Command: debug send largepacket'),(325,'Command: debug send opcode'),(326,'Command: debug send qinvalidmsg'),(327,'Command: debug send qpartymsg'),(328,'Command: debug send sellerror'),(329,'Command: debug send setphaseshift'),(330,'Command: debug send spellfail'),(331,'Command: debug setaurastate'),(332,'Command: debug setbit'),(333,'Command: debug setitemvalue'),(334,'Command: debug setvalue'),(335,'Command: debug setvid'),(336,'Command: debug spawnvehicle'),(337,'Command: debug threat'),(338,'Command: debug update'),(339,'Command: debug uws'),(340,'Command: wpgps'),(341,'Command: deserter'),(342,'Command: deserter bg'),(343,'Command: deserter bg add'),(344,'Command: deserter bg remove'),(345,'Command: deserter instance'),(346,'Command: deserter instance add'),(347,'Command: deserter instance remove'),(348,'Command: disable'),(349,'Command: disable add'),(350,'Command: disable add achievement_criteria'),(351,'Command: disable add battleground'),(352,'Command: disable add map'),(353,'Command: disable add mmap'),(354,'Command: disable add outdoorpvp'),(355,'Command: disable add quest'),(356,'Command: disable add spell'),(357,'Command: disable add vmap'),(358,'Command: disable remove'),(359,'Command: disable remove achievement_criteria'),(360,'Command: disable remove battleground'),(361,'Command: disable remove map'),(362,'Command: disable remove mmap'),(363,'Command: disable remove outdoorpvp'),(364,'Command: disable remove quest'),(365,'Command: disable remove spell'),(366,'Command: disable remove vmap'),(367,'Command: event'),(368,'Command: event activelist'),(369,'Command: event start'),(370,'Command: event stop'),(371,'Command: gm'),(372,'Command: gm chat'),(373,'Command: gm fly'),(374,'Command: gm ingame'),(375,'Command: gm list'),(376,'Command: gm visible'),(377,'Command: go'),(378,'Command: go creature'),(379,'Command: go graveyard'),(380,'Command: go grid'),(381,'Command: go object'),(382,'Command: go taxinode'),(383,'Command: go ticket'),(384,'Command: go trigger'),(385,'Command: go xyz'),(386,'Command: go zonexy'),(387,'Command: gobject'),(388,'Command: gobject activate'),(389,'Command: gobject add'),(390,'Command: gobject add temp'),(391,'Command: gobject delete'),(392,'Command: gobject info'),(393,'Command: gobject move'),(394,'Command: gobject near'),(395,'Command: gobject set'),(396,'Command: gobject set phase'),(397,'Command: gobject set state'),(398,'Command: gobject target'),(399,'Command: gobject turn'),(400,'debug transport'),(401,'Command: guild'),(402,'Command: guild create'),(403,'Command: guild delete'),(404,'Command: guild invite'),(405,'Command: guild uninvite'),(406,'Command: guild rank'),(407,'Command: guild rename'),(408,'Command: honor'),(409,'Command: honor add'),(410,'Command: honor add kill'),(411,'Command: honor update'),(412,'Command: instance'),(413,'Command: instance listbinds'),(414,'Command: instance unbind'),(415,'Command: instance stats'),(416,'Command: instance savedata'),(417,'Command: learn'),(418,'Command: learn all'),(419,'Command: learn all my'),(420,'Command: learn all my class'),(421,'Command: learn all my pettalents'),(422,'Command: learn all my spells'),(423,'Command: learn all my talents'),(424,'Command: learn all gm'),(425,'Command: learn all crafts'),(426,'Command: learn all default'),(427,'Command: learn all lang'),(428,'Command: learn all recipes'),(429,'Command: unlearn'),(430,'Command: lfg'),(431,'Command: lfg player'),(432,'Command: lfg group'),(433,'Command: lfg queue'),(434,'Command: lfg clean'),(435,'Command: lfg options'),(436,'Command: list'),(437,'Command: list creature'),(438,'Command: list item'),(439,'Command: list object'),(440,'Command: list auras'),(441,'Command: list mail'),(442,'Command: lookup'),(443,'Command: lookup area'),(444,'Command: lookup creature'),(445,'Command: lookup event'),(446,'Command: lookup faction'),(447,'Command: lookup item'),(448,'Command: lookup itemset'),(449,'Command: lookup object'),(450,'Command: lookup quest'),(451,'Command: lookup player'),(452,'Command: lookup player ip'),(453,'Command: lookup player account'),(454,'Command: lookup player email'),(455,'Command: lookup skill'),(456,'Command: lookup spell'),(457,'Command: lookup spell id'),(458,'Command: lookup taxinode'),(459,'Command: lookup tele'),(460,'Command: lookup title'),(461,'Command: lookup map'),(462,'Command: announce'),(463,'Command: channel'),(464,'Command: channel set'),(465,'Command: channel set ownership'),(466,'Command: gmannounce'),(467,'Command: gmnameannounce'),(468,'Command: gmnotify'),(469,'Command: nameannounce'),(470,'Command: notify'),(471,'Command: whispers'),(472,'Command: group'),(473,'Command: group leader'),(474,'Command: group disband'),(475,'Command: group remove'),(476,'Command: group join'),(477,'Command: group list'),(478,'Command: group summon'),(479,'Command: pet'),(480,'Command: pet create'),(481,'Command: pet learn'),(482,'Command: pet unlearn'),(483,'Command: send'),(484,'Command: send items'),(485,'Command: send mail'),(486,'Command: send message'),(487,'Command: send money'),(488,'Command: additem'),(489,'Command: additemset'),(490,'Command: appear'),(491,'Command: aura'),(492,'Command: bank'),(493,'Command: bindsight'),(494,'Command: combatstop'),(495,'Command: cometome'),(496,'Command: commands'),(497,'Command: cooldown'),(498,'Command: damage'),(499,'Command: dev'),(500,'Command: die'),(501,'Command: dismount'),(502,'Command: distance'),(503,'Command: flusharenapoints'),(504,'Command: freeze'),(505,'Command: gps'),(506,'Command: guid'),(507,'Command: help'),(508,'Command: hidearea'),(509,'Command: itemmove'),(510,'Command: kick'),(511,'Command: linkgrave'),(512,'Command: listfreeze'),(513,'Command: maxskill'),(514,'Command: movegens'),(515,'Command: mute'),(516,'Command: neargrave'),(517,'Command: pinfo'),(518,'Command: playall'),(519,'Command: possess'),(520,'Command: recall'),(521,'Command: repairitems'),(522,'Command: respawn'),(523,'Command: revive'),(524,'Command: saveall'),(525,'Command: save'),(526,'Command: setskill'),(527,'Command: showarea'),(528,'Command: summon'),(529,'Command: unaura'),(530,'Command: unbindsight'),(531,'Command: unfreeze'),(532,'Command: unmute'),(533,'Command: unpossess'),(534,'Command: unstuck'),(535,'Command: wchange'),(536,'Command: mmap'),(537,'Command: mmap loadedtiles'),(538,'Command: mmap loc'),(539,'Command: mmap path'),(540,'Command: mmap stats'),(541,'Command: mmap testarea'),(542,'Command: morph'),(543,'Command: demorph'),(544,'Command: modify'),(545,'Command: modify arenapoints'),(546,'Command: modify bit'),(547,'Command: modify drunk'),(548,'Command: modify energy'),(549,'Command: modify faction'),(550,'Command: modify gender'),(551,'Command: modify honor'),(552,'Command: modify hp'),(553,'Command: modify mana'),(554,'Command: modify money'),(555,'Command: modify mount'),(556,'Command: modify phase'),(557,'Command: modify rage'),(558,'Command: modify reputation'),(559,'Command: modify runicpower'),(560,'Command: modify scale'),(561,'Command: modify speed'),(562,'Command: modify speed all'),(563,'Command: modify speed backwalk'),(564,'Command: modify speed fly'),(565,'Command: modify speed walk'),(566,'Command: modify speed swim'),(567,'Command: modify spell'),(568,'Command: modify standstate'),(569,'Command: modify talentpoints'),(570,'Command: npc'),(571,'Command: npc add'),(572,'Command: npc add formation'),(573,'Command: npc add item'),(574,'Command: npc add move'),(575,'Command: npc add temp'),(576,'Command: npc add delete'),(577,'Command: npc add delete item'),(578,'Command: npc add follow'),(579,'Command: npc add follow stop'),(580,'Command: npc set'),(581,'Command: npc set allowmove'),(582,'Command: npc set entry'),(583,'Command: npc set factionid'),(584,'Command: npc set flag'),(585,'Command: npc set level'),(586,'Command: npc set link'),(587,'Command: npc set model'),(588,'Command: npc set movetype'),(589,'Command: npc set phase'),(590,'Command: npc set spawndist'),(591,'Command: npc set spawntime'),(592,'Command: npc set data'),(593,'Command: npc info'),(594,'Command: npc near'),(595,'Command: npc move'),(596,'Command: npc playemote'),(597,'Command: npc say'),(598,'Command: npc textemote'),(599,'Command: npc whisper'),(600,'Command: npc yell'),(601,'Command: npc tame'),(602,'Command: quest'),(603,'Command: quest add'),(604,'Command: quest complete'),(605,'Command: quest remove'),(606,'Command: quest reward'),(607,'Command: reload'),(608,'Command: reload access_requirement'),(609,'Command: reload achievement_criteria_data'),(610,'Command: reload achievement_reward'),(611,'Command: reload all'),(612,'Command: reload all achievement'),(613,'Command: reload all area'),(614,'Command: mailbox'),(615,'Command: reload all gossips'),(616,'Command: reload all item'),(617,'Command: reload all locales'),(618,'Command: reload all loot'),(619,'Command: reload all npc'),(620,'Command: reload all quest'),(621,'Command: reload all scripts'),(622,'Command: reload all spell'),(623,'Command: reload areatrigger_involvedrelation'),(624,'Command: reload areatrigger_tavern'),(625,'Command: reload areatrigger_teleport'),(626,'Command: reload auctions'),(627,'Command: reload autobroadcast'),(628,'Command: reload command'),(629,'Command: reload conditions'),(630,'Command: reload config'),(631,'Command: reload creature_text'),(632,'Command: reload creature_ai_scripts'),(633,'Command: reload creature_ai_texts'),(634,'Command: reload creature_questender'),(635,'Command: reload creature_linked_respawn'),(636,'Command: reload creature_loot_template'),(637,'Command: reload creature_onkill_reputation'),(638,'Command: reload creature_queststarter'),(639,'Command: reload creature_summon_groups'),(640,'Command: reload creature_template'),(641,'Command: reload disables'),(642,'Command: reload disenchant_loot_template'),(643,'Command: reload event_scripts'),(644,'Command: reload fishing_loot_template'),(645,'Command: reload game_graveyard_zone'),(646,'Command: reload game_tele'),(647,'Command: reload gameobject_questender'),(648,'Command: reload gameobject_loot_template'),(649,'Command: reload gameobject_queststarter'),(650,'Command: reload gm_tickets'),(651,'Command: reload gossip_menu'),(652,'Command: reload gossip_menu_option'),(653,'Command: reload item_enchantment_template'),(654,'Command: reload item_loot_template'),(655,'Command: reload item_set_names'),(656,'Command: reload lfg_dungeon_rewards'),(657,'Command: reload locales_achievement_reward'),(658,'Command: reload locales_creature'),(659,'Command: reload locales_creature_text'),(660,'Command: reload locales_gameobject'),(661,'Command: reload locales_gossip_menu_option'),(662,'Command: reload locales_item'),(663,'Command: reload locales_item_set_name'),(664,'Command: reload locales_npc_text'),(665,'Command: reload locales_page_text'),(666,'Command: reload locales_points_of_interest'),(667,'Command: reload locales_quest'),(668,'Command: reload mail_level_reward'),(669,'Command: reload mail_loot_template'),(670,'Command: reload milling_loot_template'),(671,'Command: reload npc_spellclick_spells'),(672,'Command: reload npc_trainer'),(673,'Command: reload npc_vendor'),(674,'Command: reload page_text'),(675,'Command: reload pickpocketing_loot_template'),(676,'Command: reload points_of_interest'),(677,'Command: reload prospecting_loot_template'),(678,'Command: reload quest_poi'),(679,'Command: reload quest_template'),(680,'Command: reload rbac'),(681,'Command: reload reference_loot_template'),(682,'Command: reload reserved_name'),(683,'Command: reload reputation_reward_rate'),(684,'Command: reload reputation_spillover_template'),(685,'Command: reload skill_discovery_template'),(686,'Command: reload skill_extra_item_template'),(687,'Command: reload skill_fishing_base_level'),(688,'Command: reload skinning_loot_template'),(689,'Command: reload smart_scripts'),(690,'Command: reload spell_required'),(691,'Command: reload spell_area'),(692,'Command: reload spell_bonus_data'),(693,'Command: reload spell_group'),(694,'Command: reload spell_learn_spell'),(695,'Command: reload spell_loot_template'),(696,'Command: reload spell_linked_spell'),(697,'Command: reload spell_pet_auras'),(698,'Command: reload spell_proc_event'),(699,'Command: reload spell_proc'),(700,'Command: reload spell_scripts'),(701,'Command: reload spell_target_position'),(702,'Command: reload spell_threats'),(703,'Command: reload spell_group_stack_rules'),(704,'Command: reload trinity_string'),(705,'Command: reload warden_action'),(706,'Command: reload waypoint_scripts'),(707,'Command: reload waypoint_data'),(708,'Command: reload vehicle_accessory'),(709,'Command: reload vehicle_template_accessory'),(710,'Command: reset'),(711,'Command: reset achievements'),(712,'Command: reset honor'),(713,'Command: reset level'),(714,'Command: reset spells'),(715,'Command: reset stats'),(716,'Command: reset talents'),(717,'Command: reset all'),(718,'Command: server'),(719,'Command: server corpses'),(720,'Command: server exit'),(721,'Command: server idlerestart'),(722,'Command: server idlerestart cancel'),(723,'Command: server idleshutdown'),(724,'Command: server idleshutdown cancel'),(725,'Command: server info'),(726,'Command: server plimit'),(727,'Command: server restart'),(728,'Command: server restart cancel'),(729,'Command: server set'),(730,'Command: server set closed'),(731,'Command: server set difftime'),(732,'Command: server set loglevel'),(733,'Command: server set motd'),(734,'Command: server shutdown'),(735,'Command: server shutdown cancel'),(736,'Command: server motd'),(737,'Command: tele'),(738,'Command: tele add'),(739,'Command: tele del'),(740,'Command: tele name'),(741,'Command: tele group'),(742,'Command: ticket'),(743,'Command: ticket assign'),(744,'Command: ticket close'),(745,'Command: ticket closedlist'),(746,'Command: ticket comment'),(747,'Command: ticket complete'),(748,'Command: ticket delete'),(749,'Command: ticket escalate'),(750,'Command: ticket escalatedlist'),(751,'Command: ticket list'),(752,'Command: ticket onlinelist'),(753,'Command: ticket reset'),(754,'Command: ticket response'),(755,'Command: ticket response append'),(756,'Command: ticket response appendln'),(757,'Command: ticket togglesystem'),(758,'Command: ticket unassign'),(759,'Command: ticket viewid'),(760,'Command: ticket viewname'),(761,'Command: titles'),(762,'Command: titles add'),(763,'Command: titles current'),(764,'Command: titles remove'),(765,'Command: titles set'),(766,'Command: titles set mask'),(767,'Command: wp'),(768,'Command: wp add'),(769,'Command: wp event'),(770,'Command: wp load'),(771,'Command: wp modify'),(772,'Command: wp unload'),(773,'Command: wp reload'),(774,'Command: wp show'),(777,'Command: mailbox');
+INSERT INTO `rbac_permissions` VALUES (1,'Instant logout'),(2,'Skip Queue'),(3,'Join Normal Battleground'),(4,'Join Random Battleground'),(5,'Join Arenas'),(6,'Join Dungeon Finder'),(11,'Log GM trades'),(13,'Skip Instance required bosses check'),(14,'Skip character creation team mask check'),(15,'Skip character creation class mask check'),(16,'Skip character creation race mask check'),(17,'Skip character creation reserved name check'),(18,'Skip character creation heroic min level check'),(19,'Skip needed requirements to use channel check'),(20,'Skip disable map check'),(21,'Skip reset talents when used more than allowed check'),(22,'Skip spam chat check'),(23,'Skip over-speed ping check'),(24,'Two side faction characters on the same account'),(25,'Allow say chat between factions'),(26,'Allow channel chat between factions'),(27,'Two side mail interaction'),(28,'See two side who list'),(29,'Add friends of other faction'),(30,'Save character without delay with .save command'),(31,'Use params with .unstuck command'),(32,'Can be assigned tickets with .assign ticket command'),(33,'Notify if a command was not found'),(34,'Check if should appear in list using .gm ingame command'),(35,'See all security levels with who command'),(36,'Filter whispers'),(37,'Use staff badge in chat'),(38,'Resurrect with full Health Points'),(39,'Restore saved gm setting states'),(40,'Allows to add a gm to friend list'),(41,'Use Config option START_GM_LEVEL to assign new character level'),(42,'Allows to use CMSG_WORLD_TELEPORT opcode'),(43,'Allows to use CMSG_WHOIS opcode'),(44,'Receive global GM messages/texts'),(45,'Join channels without announce'),(46,'Change channel settings without being channel moderator'),(47,'Enables lower security than target check'),(48,'Enable IP, Last Login and EMail output in pinfo'),(49,'Forces to enter the email for confirmation on password change'),(50,'Allow user to check his own email with .account'),(192,'Role: Sec Level Administrator'),(193,'Role: Sec Level Gamemaster'),(194,'Role: Sec Level Moderator'),(195,'Role: Sec Level Player'),(196,'Role: Administrator Commands'),(197,'Role: Gamemaster Commands'),(198,'Role: Moderator Commands'),(199,'Role: Player Commands'),(200,'Command: rbac'),(201,'Command: rbac account'),(202,'Command: rbac account list'),(203,'Command: rbac account grant'),(204,'Command: rbac account deny'),(205,'Command: rbac account revoke'),(206,'Command: rbac list'),(217,'Command: account'),(218,'Command: account addon'),(219,'Command: account create'),(220,'Command: account delete'),(221,'Command: account lock'),(222,'Command: account lock country'),(223,'Command: account lock ip'),(224,'Command: account onlinelist'),(225,'Command: account password'),(226,'Command: account set'),(227,'Command: account set addon'),(228,'Command: account set gmlevel'),(229,'Command: account set password'),(230,'Command: achievement'),(231,'Command: achievement add'),(232,'Command: arena'),(233,'Command: arena captain'),(234,'Command: arena create'),(235,'Command: arena disband'),(236,'Command: arena info'),(237,'Command: arena lookup'),(238,'Command: arena rename'),(239,'Command: ban'),(240,'Command: ban account'),(241,'Command: ban character'),(242,'Command: ban ip'),(243,'Command: ban playeraccount'),(244,'Command: baninfo'),(245,'Command: baninfo account'),(246,'Command: baninfo character'),(247,'Command: baninfo ip'),(248,'Command: banlist'),(249,'Command: banlist account'),(250,'Command: banlist character'),(251,'Command: banlist ip'),(252,'Command: unban'),(253,'Command: unban account'),(254,'Command: unban character'),(255,'Command: unban ip'),(256,'Command: unban playeraccount'),(257,'Command: bf'),(258,'Command: bf start'),(259,'Command: bf stop'),(260,'Command: bf switch'),(261,'Command: bf timer'),(262,'Command: bf enable'),(263,'Command: account email'),(264,'Command: account set sec'),(265,'Command: account set sec email'),(266,'Command: account set sec regmail'),(267,'Command: cast'),(268,'Command: cast back'),(269,'Command: cast dist'),(270,'Command: cast self'),(271,'Command: cast target'),(272,'Command: cast dest'),(273,'Command: character'),(274,'Command: character customize'),(275,'Command: character changefaction'),(276,'Command: character changerace'),(277,'Command: character deleted'),(279,'Command: character deleted list'),(280,'Command: character deleted restore'),(283,'Command: character level'),(284,'Command: character rename'),(285,'Command: character reputation'),(286,'Command: character titles'),(287,'Command: levelup'),(288,'Command: pdump'),(289,'Command: pdump load'),(290,'Command: pdump write'),(291,'Command: cheat'),(292,'Command: cheat casttime'),(293,'Command: cheat cooldown'),(294,'Command: cheat explore'),(295,'Command: cheat god'),(296,'Command: cheat power'),(297,'Command: cheat status'),(298,'Command: cheat taxi'),(299,'Command: cheat waterwalk'),(300,'Command: debug'),(301,'Command: debug anim'),(302,'Command: debug areatriggers'),(303,'Command: debug arena'),(304,'Command: debug bg'),(305,'Command: debug entervehicle'),(306,'Command: debug getitemstate'),(307,'Command: debug getitemvalue'),(308,'Command: debug getvalue'),(309,'Command: debug hostil'),(310,'Command: debug itemexpire'),(311,'Command: debug lootrecipient'),(312,'Command: debug los'),(313,'Command: debug mod32value'),(314,'Command: debug moveflags'),(315,'Command: debug play'),(316,'Command: debug play cinematics'),(317,'Command: debug play movie'),(318,'Command: debug play sound'),(319,'Command: debug send'),(320,'Command: debug send buyerror'),(321,'Command: debug send channelnotify'),(322,'Command: debug send chatmessage'),(323,'Command: debug send equiperror'),(324,'Command: debug send largepacket'),(325,'Command: debug send opcode'),(326,'Command: debug send qinvalidmsg'),(327,'Command: debug send qpartymsg'),(328,'Command: debug send sellerror'),(329,'Command: debug send setphaseshift'),(330,'Command: debug send spellfail'),(331,'Command: debug setaurastate'),(332,'Command: debug setbit'),(333,'Command: debug setitemvalue'),(334,'Command: debug setvalue'),(335,'Command: debug setvid'),(336,'Command: debug spawnvehicle'),(337,'Command: debug threat'),(338,'Command: debug update'),(339,'Command: debug uws'),(340,'Command: wpgps'),(341,'Command: deserter'),(342,'Command: deserter bg'),(343,'Command: deserter bg add'),(344,'Command: deserter bg remove'),(345,'Command: deserter instance'),(346,'Command: deserter instance add'),(347,'Command: deserter instance remove'),(348,'Command: disable'),(349,'Command: disable add'),(350,'Command: disable add achievement_criteria'),(351,'Command: disable add battleground'),(352,'Command: disable add map'),(353,'Command: disable add mmap'),(354,'Command: disable add outdoorpvp'),(355,'Command: disable add quest'),(356,'Command: disable add spell'),(357,'Command: disable add vmap'),(358,'Command: disable remove'),(359,'Command: disable remove achievement_criteria'),(360,'Command: disable remove battleground'),(361,'Command: disable remove map'),(362,'Command: disable remove mmap'),(363,'Command: disable remove outdoorpvp'),(364,'Command: disable remove quest'),(365,'Command: disable remove spell'),(366,'Command: disable remove vmap'),(367,'Command: event'),(368,'Command: event activelist'),(369,'Command: event start'),(370,'Command: event stop'),(371,'Command: gm'),(372,'Command: gm chat'),(373,'Command: gm fly'),(374,'Command: gm ingame'),(375,'Command: gm list'),(376,'Command: gm visible'),(377,'Command: go'),(378,'Command: go creature'),(379,'Command: go graveyard'),(380,'Command: go grid'),(381,'Command: go object'),(382,'Command: go taxinode'),(383,'Command: go ticket'),(384,'Command: go trigger'),(385,'Command: go xyz'),(386,'Command: go zonexy'),(387,'Command: gobject'),(388,'Command: gobject activate'),(389,'Command: gobject add'),(390,'Command: gobject add temp'),(391,'Command: gobject delete'),(392,'Command: gobject info'),(393,'Command: gobject move'),(394,'Command: gobject near'),(395,'Command: gobject set'),(396,'Command: gobject set phase'),(397,'Command: gobject set state'),(398,'Command: gobject target'),(399,'Command: gobject turn'),(400,'debug transport'),(401,'Command: guild'),(402,'Command: guild create'),(403,'Command: guild delete'),(404,'Command: guild invite'),(405,'Command: guild uninvite'),(406,'Command: guild rank'),(407,'Command: guild rename'),(408,'Command: honor'),(409,'Command: honor add'),(410,'Command: honor add kill'),(411,'Command: honor update'),(412,'Command: instance'),(413,'Command: instance listbinds'),(414,'Command: instance unbind'),(415,'Command: instance stats'),(416,'Command: instance savedata'),(417,'Command: learn'),(418,'Command: learn all'),(419,'Command: learn all my'),(420,'Command: learn all my class'),(421,'Command: learn all my pettalents'),(422,'Command: learn all my spells'),(423,'Command: learn all my talents'),(424,'Command: learn all gm'),(425,'Command: learn all crafts'),(426,'Command: learn all default'),(427,'Command: learn all lang'),(428,'Command: learn all recipes'),(429,'Command: unlearn'),(430,'Command: lfg'),(431,'Command: lfg player'),(432,'Command: lfg group'),(433,'Command: lfg queue'),(434,'Command: lfg clean'),(435,'Command: lfg options'),(436,'Command: list'),(437,'Command: list creature'),(438,'Command: list item'),(439,'Command: list object'),(440,'Command: list auras'),(441,'Command: list mail'),(442,'Command: lookup'),(443,'Command: lookup area'),(444,'Command: lookup creature'),(445,'Command: lookup event'),(446,'Command: lookup faction'),(447,'Command: lookup item'),(448,'Command: lookup itemset'),(449,'Command: lookup object'),(450,'Command: lookup quest'),(451,'Command: lookup player'),(452,'Command: lookup player ip'),(453,'Command: lookup player account'),(454,'Command: lookup player email'),(455,'Command: lookup skill'),(456,'Command: lookup spell'),(457,'Command: lookup spell id'),(458,'Command: lookup taxinode'),(459,'Command: lookup tele'),(460,'Command: lookup title'),(461,'Command: lookup map'),(462,'Command: announce'),(463,'Command: channel'),(464,'Command: channel set'),(465,'Command: channel set ownership'),(466,'Command: gmannounce'),(467,'Command: gmnameannounce'),(468,'Command: gmnotify'),(469,'Command: nameannounce'),(470,'Command: notify'),(471,'Command: whispers'),(472,'Command: group'),(473,'Command: group leader'),(474,'Command: group disband'),(475,'Command: group remove'),(476,'Command: group join'),(477,'Command: group list'),(478,'Command: group summon'),(479,'Command: pet'),(480,'Command: pet create'),(481,'Command: pet learn'),(482,'Command: pet unlearn'),(483,'Command: send'),(484,'Command: send items'),(485,'Command: send mail'),(486,'Command: send message'),(487,'Command: send money'),(488,'Command: additem'),(489,'Command: additemset'),(490,'Command: appear'),(491,'Command: aura'),(492,'Command: bank'),(493,'Command: bindsight'),(494,'Command: combatstop'),(495,'Command: cometome'),(496,'Command: commands'),(497,'Command: cooldown'),(498,'Command: damage'),(499,'Command: dev'),(500,'Command: die'),(501,'Command: dismount'),(502,'Command: distance'),(503,'Command: flusharenapoints'),(504,'Command: freeze'),(505,'Command: gps'),(506,'Command: guid'),(507,'Command: help'),(508,'Command: hidearea'),(509,'Command: itemmove'),(510,'Command: kick'),(511,'Command: linkgrave'),(512,'Command: listfreeze'),(513,'Command: maxskill'),(514,'Command: movegens'),(515,'Command: mute'),(516,'Command: neargrave'),(517,'Command: pinfo'),(518,'Command: playall'),(519,'Command: possess'),(520,'Command: recall'),(521,'Command: repairitems'),(522,'Command: respawn'),(523,'Command: revive'),(524,'Command: saveall'),(525,'Command: save'),(526,'Command: setskill'),(527,'Command: showarea'),(528,'Command: summon'),(529,'Command: unaura'),(530,'Command: unbindsight'),(531,'Command: unfreeze'),(532,'Command: unmute'),(533,'Command: unpossess'),(534,'Command: unstuck'),(535,'Command: wchange'),(536,'Command: mmap'),(537,'Command: mmap loadedtiles'),(538,'Command: mmap loc'),(539,'Command: mmap path'),(540,'Command: mmap stats'),(541,'Command: mmap testarea'),(542,'Command: morph'),(543,'Command: demorph'),(544,'Command: modify'),(545,'Command: modify arenapoints'),(546,'Command: modify bit'),(547,'Command: modify drunk'),(548,'Command: modify energy'),(549,'Command: modify faction'),(550,'Command: modify gender'),(551,'Command: modify honor'),(552,'Command: modify hp'),(553,'Command: modify mana'),(554,'Command: modify money'),(555,'Command: modify mount'),(556,'Command: modify phase'),(557,'Command: modify rage'),(558,'Command: modify reputation'),(559,'Command: modify runicpower'),(560,'Command: modify scale'),(561,'Command: modify speed'),(562,'Command: modify speed all'),(563,'Command: modify speed backwalk'),(564,'Command: modify speed fly'),(565,'Command: modify speed walk'),(566,'Command: modify speed swim'),(567,'Command: modify spell'),(568,'Command: modify standstate'),(569,'Command: modify talentpoints'),(570,'Command: npc'),(571,'Command: npc add'),(572,'Command: npc add formation'),(573,'Command: npc add item'),(574,'Command: npc add move'),(575,'Command: npc add temp'),(576,'Command: npc add delete'),(577,'Command: npc add delete item'),(578,'Command: npc add follow'),(579,'Command: npc add follow stop'),(580,'Command: npc set'),(581,'Command: npc set allowmove'),(582,'Command: npc set entry'),(583,'Command: npc set factionid'),(584,'Command: npc set flag'),(585,'Command: npc set level'),(586,'Command: npc set link'),(587,'Command: npc set model'),(588,'Command: npc set movetype'),(589,'Command: npc set phase'),(590,'Command: npc set spawndist'),(591,'Command: npc set spawntime'),(592,'Command: npc set data'),(593,'Command: npc info'),(594,'Command: npc near'),(595,'Command: npc move'),(596,'Command: npc playemote'),(597,'Command: npc say'),(598,'Command: npc textemote'),(599,'Command: npc whisper'),(600,'Command: npc yell'),(601,'Command: npc tame'),(602,'Command: quest'),(603,'Command: quest add'),(604,'Command: quest complete'),(605,'Command: quest remove'),(606,'Command: quest reward'),(607,'Command: reload'),(608,'Command: reload access_requirement'),(609,'Command: reload achievement_criteria_data'),(610,'Command: reload achievement_reward'),(611,'Command: reload all'),(612,'Command: reload all achievement'),(613,'Command: reload all area'),(614,'Command: mailbox'),(615,'Command: reload all gossips'),(616,'Command: reload all item'),(617,'Command: reload all locales'),(618,'Command: reload all loot'),(619,'Command: reload all npc'),(620,'Command: reload all quest'),(621,'Command: reload all scripts'),(622,'Command: reload all spell'),(623,'Command: reload areatrigger_involvedrelation'),(624,'Command: reload areatrigger_tavern'),(625,'Command: reload areatrigger_teleport'),(626,'Command: reload auctions'),(627,'Command: reload autobroadcast'),(628,'Command: reload command'),(629,'Command: reload conditions'),(630,'Command: reload config'),(633,'Command: reload creature_linked_respawn'),(634,'Command: reload creature_loot_template'),(635,'Command: reload creature_onkill_reputation'),(636,'Command: reload creature_questender'),(637,'Command: reload creature_queststarter'),(638,'Command: reload creature_summon_groups'),(639,'Command: reload creature_template'),(640,'Command: reload creature_text'),(641,'Command: reload disables'),(642,'Command: reload disenchant_loot_template'),(643,'Command: reload event_scripts'),(644,'Command: reload fishing_loot_template'),(645,'Command: reload game_graveyard_zone'),(646,'Command: reload game_tele'),(647,'Command: reload gameobject_questender'),(648,'Command: reload gameobject_loot_template'),(649,'Command: reload gameobject_queststarter'),(650,'Command: reload gm_tickets'),(651,'Command: reload gossip_menu'),(652,'Command: reload gossip_menu_option'),(653,'Command: reload item_enchantment_template'),(654,'Command: reload item_loot_template'),(655,'Command: reload item_set_names'),(656,'Command: reload lfg_dungeon_rewards'),(657,'Command: reload locales_achievement_reward'),(658,'Command: reload locales_creature'),(659,'Command: reload locales_creature_text'),(660,'Command: reload locales_gameobject'),(661,'Command: reload locales_gossip_menu_option'),(662,'Command: reload locales_item'),(663,'Command: reload locales_item_set_name'),(664,'Command: reload locales_npc_text'),(665,'Command: reload locales_page_text'),(666,'Command: reload locales_points_of_interest'),(667,'Command: reload locales_quest'),(668,'Command: reload mail_level_reward'),(669,'Command: reload mail_loot_template'),(670,'Command: reload milling_loot_template'),(671,'Command: reload npc_spellclick_spells'),(672,'Command: reload npc_trainer'),(673,'Command: reload npc_vendor'),(674,'Command: reload page_text'),(675,'Command: reload pickpocketing_loot_template'),(676,'Command: reload points_of_interest'),(677,'Command: reload prospecting_loot_template'),(678,'Command: reload quest_poi'),(679,'Command: reload quest_template'),(680,'Command: reload rbac'),(681,'Command: reload reference_loot_template'),(682,'Command: reload reserved_name'),(683,'Command: reload reputation_reward_rate'),(684,'Command: reload reputation_spillover_template'),(685,'Command: reload skill_discovery_template'),(686,'Command: reload skill_extra_item_template'),(687,'Command: reload skill_fishing_base_level'),(688,'Command: reload skinning_loot_template'),(689,'Command: reload smart_scripts'),(690,'Command: reload spell_required'),(691,'Command: reload spell_area'),(692,'Command: reload spell_bonus_data'),(693,'Command: reload spell_group'),(694,'Command: reload spell_learn_spell'),(695,'Command: reload spell_loot_template'),(696,'Command: reload spell_linked_spell'),(697,'Command: reload spell_pet_auras'),(698,'Command: reload spell_proc_event'),(699,'Command: reload spell_proc'),(700,'Command: reload spell_scripts'),(701,'Command: reload spell_target_position'),(702,'Command: reload spell_threats'),(703,'Command: reload spell_group_stack_rules'),(704,'Command: reload trinity_string'),(705,'Command: reload warden_action'),(706,'Command: reload waypoint_scripts'),(707,'Command: reload waypoint_data'),(708,'Command: reload vehicle_accessory'),(709,'Command: reload vehicle_template_accessory'),(710,'Command: reset'),(711,'Command: reset achievements'),(712,'Command: reset honor'),(713,'Command: reset level'),(714,'Command: reset spells'),(715,'Command: reset stats'),(716,'Command: reset talents'),(717,'Command: reset all'),(718,'Command: server'),(719,'Command: server corpses'),(720,'Command: server exit'),(721,'Command: server idlerestart'),(722,'Command: server idlerestart cancel'),(723,'Command: server idleshutdown'),(724,'Command: server idleshutdown cancel'),(725,'Command: server info'),(726,'Command: server plimit'),(727,'Command: server restart'),(728,'Command: server restart cancel'),(729,'Command: server set'),(730,'Command: server set closed'),(731,'Command: server set difftime'),(732,'Command: server set loglevel'),(733,'Command: server set motd'),(734,'Command: server shutdown'),(735,'Command: server shutdown cancel'),(736,'Command: server motd'),(737,'Command: tele'),(738,'Command: tele add'),(739,'Command: tele del'),(740,'Command: tele name'),(741,'Command: tele group'),(742,'Command: ticket'),(743,'Command: ticket assign'),(744,'Command: ticket close'),(745,'Command: ticket closedlist'),(746,'Command: ticket comment'),(747,'Command: ticket complete'),(748,'Command: ticket delete'),(749,'Command: ticket escalate'),(750,'Command: ticket escalatedlist'),(751,'Command: ticket list'),(752,'Command: ticket onlinelist'),(753,'Command: ticket reset'),(754,'Command: ticket response'),(755,'Command: ticket response append'),(756,'Command: ticket response appendln'),(757,'Command: ticket togglesystem'),(758,'Command: ticket unassign'),(759,'Command: ticket viewid'),(760,'Command: ticket viewname'),(761,'Command: titles'),(762,'Command: titles add'),(763,'Command: titles current'),(764,'Command: titles remove'),(765,'Command: titles set'),(766,'Command: titles set mask'),(767,'Command: wp'),(768,'Command: wp add'),(769,'Command: wp event'),(770,'Command: wp load'),(771,'Command: wp modify'),(772,'Command: wp unload'),(773,'Command: wp reload'),(774,'Command: wp show'),(777,'Command: mailbox');
/*!40000 ALTER TABLE `rbac_permissions` ENABLE KEYS */;
UNLOCK TABLES;
@@ -440,4 +440,4 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--- Dump completed on 2013-09-10 23:18:53
+-- Dump completed on 2014-04-28 13:43:54
diff --git a/sql/updates/auth/2014_04_28_00_rbac_permissions.sql b/sql/updates/auth/2014_04_28_00_rbac_permissions.sql
new file mode 100644
index 00000000000..290052764dd
--- /dev/null
+++ b/sql/updates/auth/2014_04_28_00_rbac_permissions.sql
@@ -0,0 +1,21 @@
+DELETE FROM `rbac_permissions` WHERE `id` IN (631,632,633,634,635,636,637,638,639,640);
+INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
+(633, 'Command: reload creature_linked_respawn'),
+(634, 'Command: reload creature_loot_template'),
+(635, 'Command: reload creature_onkill_reputation'),
+(636, 'Command: reload creature_questender'),
+(637, 'Command: reload creature_queststarter'),
+(638, 'Command: reload creature_summon_groups'),
+(639, 'Command: reload creature_template'),
+(640, 'Command: reload creature_text');
+
+DELETE FROM `rbac_linked_permissions` WHERE `linkedId` IN (631,632,633,634,635,636,637,638,639,640);
+INSERT INTO `rbac_linked_permissions` (`id`, `linkedId`) VALUES
+(196, 633),
+(196, 634),
+(196, 635),
+(196, 636),
+(196, 637),
+(196, 638),
+(196, 639),
+(196, 640);
diff --git a/sql/updates/world/2014_04_26_04_world_creature_template.sql b/sql/updates/world/2014_04_26_04_world_creature_template.sql
new file mode 100644
index 00000000000..bd24736e10a
--- /dev/null
+++ b/sql/updates/world/2014_04_26_04_world_creature_template.sql
@@ -0,0 +1,3 @@
+--
+UPDATE `creature_template` SET `faction_A`=1770, `faction_H`=1770 WHERE `entry`=37614;
+UPDATE `creature_template` SET `faction_A`=534, `faction_H`=534 WHERE `entry`=37606;
diff --git a/sql/updates/world/2014_04_27_00_world_misc.sql b/sql/updates/world/2014_04_27_00_world_misc.sql
new file mode 100644
index 00000000000..4046efcc190
--- /dev/null
+++ b/sql/updates/world/2014_04_27_00_world_misc.sql
@@ -0,0 +1,24 @@
+-- Reconnaissance Flight (12671)
+-- additions
+SET @PLANE := 28710; -- Vic's Flying Machine
+SET @SPELL_PLANE := 52256; -- Vic's Flying Machine Validate (must have condition to target player)
+SET @SPELL_LAND := 52226; -- Land Flying Machine
+SET @GOB_LANDING := 190708; -- Landing Pad Focus
+SET @SPELL_AGGRO := 52259; -- Vic's Flying Machine Aggro Dummy
+SET @NPC_SCREECHER := 28170; -- Frosthowl Screecher
+SET @SPELL_SBOLT := 52257; -- Shadow Bolt
+
+UPDATE `creature_template` SET InhabitType='4' WHERE `entry`=@PLANE;
+DELETE FROM `vehicle_template_accessory` WHERE `entry`=@PLANE;
+
+DELETE FROM `conditions` WHERE (`SourceEntry`=@SPELL_LAND AND `SourceTypeOrReferenceId`=17) OR (`SourceEntry` IN (@SPELL_AGGRO,@SPELL_SBOLT) AND `SourceTypeOrReferenceId`=13);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+-- because vehicles ignore spell focus we add an extra condition to fill in for this
+(17,0,@SPELL_LAND,0,0,30,0,@GOB_LANDING,10,0,0,0,0,'','Requires Landing Pad Focus near to cast Land Flying Machine'),
+(13,1,@SPELL_AGGRO,0,0,31,0,3,@NPC_SCREECHER,0,0,0,0,'','Vic''s Flying Machine Aggro Dummy to Frosthowl Screecher'),
+(13,1,@SPELL_SBOLT,0,0,31,0,3,@PLANE,0,0,0,0,'','Shadow Bolt to Vic''s Flying Machine');
+
+-- Frosthowl Screecher
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@NPC_SCREECHER;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@NPC_SCREECHER,0,0,0,0,0,100,0,0,0,3000,4000,11,52257,0,0,0,0,0,2,0,0,0,0,0,0,0,'Cast Shadow Bolt');
diff --git a/sql/updates/world/2014_04_27_01_world_gossip_menu_option.sql b/sql/updates/world/2014_04_27_01_world_gossip_menu_option.sql
new file mode 100644
index 00000000000..0ed8a806cf8
--- /dev/null
+++ b/sql/updates/world/2014_04_27_01_world_gossip_menu_option.sql
@@ -0,0 +1,223 @@
+DELETE FROM `gossip_menu` WHERE (`entry`=646 AND `text_id`=7017) OR (`entry`=657 AND `text_id`=1220) OR (`entry`=657 AND `text_id`=7026) OR (`entry`=940 AND `text_id`=1514) OR (`entry`=941 AND `text_id`=1515) OR (`entry`=1047 AND `text_id`=1647) OR (`entry`=1049 AND `text_id`=1649) OR (`entry`=1469 AND `text_id`=2138) OR (`entry`=2386 AND `text_id`=3056) OR (`entry`=2721 AND `text_id`=3380) OR (`entry`=2952 AND `text_id`=3666) OR (`entry`=3202 AND `text_id`=3960) OR (`entry`=4152 AND `text_id`=5177) OR (`entry`=4508 AND `text_id`=5694) OR (`entry`=4510 AND `text_id`=4986) OR (`entry`=4544 AND `text_id`=4439) OR (`entry`=4554 AND `text_id`=560) OR (`entry`=4764 AND `text_id`=5821) OR (`entry`=4844 AND `text_id`=5919) OR (`entry`=5268 AND `text_id`=6287) OR (`entry`=5855 AND `text_id`=7027) OR (`entry`=5962 AND `text_id`=7115) OR (`entry`=6185 AND `text_id`=7340) OR (`entry`=6187 AND `text_id`=7341) OR (`entry`=6210 AND `text_id`=7363) OR (`entry`=6211 AND `text_id`=7364) OR (`entry`=6212 AND `text_id`=7365) OR (`entry`=6213 AND `text_id`=7375) OR (`entry`=6222 AND `text_id`=7379) OR (`entry`=6470 AND `text_id`=7642) OR (`entry`=6472 AND `text_id`=7642) OR (`entry`=6473 AND `text_id`=7642) OR (`entry`=6474 AND `text_id`=7642) OR (`entry`=6475 AND `text_id`=7642) OR (`entry`=6478 AND `text_id`=7678) OR (`entry`=6480 AND `text_id`=7678) OR (`entry`=6482 AND `text_id`=7678) OR (`entry`=6502 AND `text_id`=7699) OR (`entry`=6506 AND `text_id`=7699) OR (`entry`=7236 AND `text_id`=8536) OR (`entry`=7361 AND `text_id`=8822) OR (`entry`=7398 AND `text_id`=8862) OR (`entry`=7399 AND `text_id`=8865) OR (`entry`=7400 AND `text_id`=8868) OR (`entry`=7428 AND `text_id`=8990) OR (`entry`=7429 AND `text_id`=8991) OR (`entry`=7430 AND `text_id`=8992) OR (`entry`=7434 AND `text_id`=8997) OR (`entry`=7479 AND `text_id`=9061) OR (`entry`=7700 AND `text_id`=9395) OR (`entry`=7858 AND `text_id`=9623) OR (`entry`=7859 AND `text_id`=9622) OR (`entry`=8494 AND `text_id`=10214) OR (`entry`=8775 AND `text_id`=11217) OR (`entry`=8816 AND `text_id`=11324) OR (`entry`=8817 AND `text_id`=11328) OR (`entry`=8853 AND `text_id`=11496) OR (`entry`=8875 AND `text_id`=11580) OR (`entry`=8885 AND `text_id`=11614) OR (`entry`=8886 AND `text_id`=11622) OR (`entry`=8917 AND `text_id`=11851) OR (`entry`=8926 AND `text_id`=11898) OR (`entry`=8929 AND `text_id`=11912) OR (`entry`=9044 AND `text_id`=12221) OR (`entry`=9200 AND `text_id`=12500) OR (`entry`=9201 AND `text_id`=12502) OR (`entry`=9253 AND `text_id`=12566) OR (`entry`=9253 AND `text_id`=12591) OR (`entry`=9262 AND `text_id`=12577) OR (`entry`=9295 AND `text_id`=12607) OR (`entry`=9296 AND `text_id`=12608) OR (`entry`=9297 AND `text_id`=12606) OR (`entry`=9418 AND `text_id`=12664) OR (`entry`=9492 AND `text_id`=12775) OR (`entry`=9495 AND `text_id`=12780) OR (`entry`=9600 AND `text_id`=12958) OR (`entry`=9631 AND `text_id`=13031) OR (`entry`=9669 AND `text_id`=13100) OR (`entry`=9821 AND `text_id`=13557) OR (`entry`=9853 AND `text_id`=13642) OR (`entry`=9871 AND `text_id`=13682) OR (`entry`=9923 AND `text_id`=13786) OR (`entry`=9928 AND `text_id`=13800) OR (`entry`=9983 AND `text_id`=13832) OR (`entry`=10012 AND `text_id`=13883) OR (`entry`=10200 AND `text_id`=14159) OR (`entry`=10200 AND `text_id`=14160) OR (`entry`=10204 AND `text_id`=14168) OR (`entry`=10204 AND `text_id`=14169) OR (`entry`=10204 AND `text_id`=14170) OR (`entry`=10366 AND `text_id`=14375) OR (`entry`=10398 AND `text_id`=14431) OR (`entry`=10400 AND `text_id`=14436) OR (`entry`=10402 AND `text_id`=14438) OR (`entry`=10453 AND `text_id`=14489) OR (`entry`=10464 AND `text_id`=14492) OR (`entry`=10465 AND `text_id`=14492) OR (`entry`=10476 AND `text_id`=14497) OR (`entry`=10477 AND `text_id`=14496) OR (`entry`=10601 AND `text_id`=14670) OR (`entry`=10605 AND `text_id`=14673) OR (`entry`=10614 AND `text_id`=14688) OR (`entry`=10614 AND `text_id`=14738) OR (`entry`=10860 AND `text_id`=15081) OR (`entry`=10906 AND `text_id`=15152) OR (`entry`=10923 AND `text_id`=15172) OR (`entry`=10930 AND `text_id`=15189) OR (`entry`=10944 AND `text_id`=15412) OR (`entry`=10949 AND `text_id`=15214) OR (`entry`=11016 AND `text_id`=15221) OR (`entry`=11032 AND `text_id`=15340) OR (`entry`=11397 AND `text_id`=15877) OR (`entry`=11398 AND `text_id`=15876);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
+(646, 7017),
+(657, 1220),
+(657, 7026),
+(940, 1514),
+(941, 1515),
+(1047, 1647),
+(1049, 1649),
+(1469, 2138),
+(2386, 3056),
+(2721, 3380),
+(2952, 3666),
+(3202, 3960),
+(4152, 5177),
+(4508, 5694),
+(4510, 4986),
+(4544, 4439),
+(4554, 560),
+(4764, 5821),
+(4844, 5919),
+(5268, 6287),
+(5855, 7027),
+(5962, 7115),
+(6185, 7340),
+(6187, 7341),
+(6210, 7363),
+(6211, 7364),
+(6212, 7365),
+(6213, 7375),
+(6222, 7379),
+(6470, 7642),
+(6472, 7642),
+(6473, 7642),
+(6474, 7642),
+(6475, 7642),
+(6478, 7678),
+(6480, 7678),
+(6482, 7678),
+(6502, 7699),
+(6506, 7699),
+(7236, 8536),
+(7361, 8822),
+(7398, 8862),
+(7399, 8865),
+(7400, 8868),
+(7428, 8990),
+(7429, 8991),
+(7430, 8992),
+(7434, 8997),
+(7479, 9061),
+(7700, 9395),
+(7858, 9623),
+(7859, 9622),
+(8494, 10214),
+(8775, 11217),
+(8816, 11324),
+(8817, 11328),
+(8853, 11496),
+(8875, 11580),
+(8885, 11614),
+(8886, 11622),
+(8917, 11851),
+(8926, 11898),
+(8929, 11912),
+(9044, 12221),
+(9200, 12500),
+(9201, 12502),
+(9253, 12566),
+(9253, 12591),
+(9262, 12577),
+(9295, 12607),
+(9296, 12608),
+(9297, 12606),
+(9418, 12664),
+(9492, 12775),
+(9495, 12780),
+(9600, 12958),
+(9631, 13031),
+(9669, 13100),
+(9821, 13557),
+(9853, 13642),
+(9871, 13682),
+(9923, 13786),
+(9928, 13800),
+(9983, 13832),
+(10012, 13883),
+(10200, 14159),
+(10200, 14160),
+(10204, 14168),
+(10204, 14169),
+(10204, 14170),
+(10366, 14375),
+(10398, 14431),
+(10400, 14436),
+(10402, 14438),
+(10453, 14489),
+(10464, 14492),
+(10465, 14492),
+(10476, 14497),
+(10477, 14496),
+(10601, 14670),
+(10605, 14673),
+(10614, 14688),
+(10614, 14738),
+(10860, 15081),
+(10906, 15152),
+(10923, 15172),
+(10930, 15189),
+(10944, 15412),
+(10949, 15214),
+(11016, 15221),
+(11032, 15340),
+(11397, 15877),
+(11398, 15876);
+
+
+DELETE FROM `gossip_menu_option` WHERE (`menu_id`=344 AND `id`=3) OR (`menu_id`=646 AND `id`=0) OR (`menu_id`=900 AND `id`=0) OR (`menu_id`=940 AND `id`=0) OR (`menu_id`=942 AND `id`=0) OR (`menu_id`=942 AND `id`=1) OR (`menu_id`=1022 AND `id`=0) OR (`menu_id`=1142 AND `id`=0) OR (`menu_id`=1293 AND `id`=3) OR (`menu_id`=1801 AND `id`=0) OR (`menu_id`=1802 AND `id`=0) OR (`menu_id`=1802 AND `id`=1) OR (`menu_id`=1971 AND `id`=0) OR (`menu_id`=2306 AND `id`=0) OR (`menu_id`=2422 AND `id`=0) OR (`menu_id`=2890 AND `id`=1) OR (`menu_id`=2890 AND `id`=5) OR (`menu_id`=2952 AND `id`=0) OR (`menu_id`=3624 AND `id`=0) OR (`menu_id`=3626 AND `id`=0) OR (`menu_id`=3626 AND `id`=1) OR (`menu_id`=4149 AND `id`=0) OR (`menu_id`=4152 AND `id`=0) OR (`menu_id`=4166 AND `id`=0) OR (`menu_id`=4210 AND `id`=0) OR (`menu_id`=4306 AND `id`=0) OR (`menu_id`=4354 AND `id`=0) OR (`menu_id`=4554 AND `id`=0) OR (`menu_id`=4554 AND `id`=1) OR (`menu_id`=4746 AND `id`=0) OR (`menu_id`=4822 AND `id`=0) OR (`menu_id`=4844 AND `id`=0) OR (`menu_id`=5221 AND `id`=0) OR (`menu_id`=5221 AND `id`=1) OR (`menu_id`=5262 AND `id`=0) OR (`menu_id`=5262 AND `id`=1) OR (`menu_id`=5262 AND `id`=2) OR (`menu_id`=5262 AND `id`=3) OR (`menu_id`=5262 AND `id`=4) OR (`menu_id`=5262 AND `id`=5) OR (`menu_id`=5262 AND `id`=6) OR (`menu_id`=5263 AND `id`=0) OR (`menu_id`=5263 AND `id`=1) OR (`menu_id`=5268 AND `id`=0) OR (`menu_id`=5268 AND `id`=1) OR (`menu_id`=5268 AND `id`=2) OR (`menu_id`=5268 AND `id`=3) OR (`menu_id`=5268 AND `id`=4) OR (`menu_id`=5268 AND `id`=5) OR (`menu_id`=5268 AND `id`=6) OR (`menu_id`=6185 AND `id`=0) OR (`menu_id`=6185 AND `id`=1) OR (`menu_id`=6185 AND `id`=2) OR (`menu_id`=6185 AND `id`=3) OR (`menu_id`=6186 AND `id`=0) OR (`menu_id`=6187 AND `id`=0) OR (`menu_id`=6210 AND `id`=0) OR (`menu_id`=6210 AND `id`=1) OR (`menu_id`=6210 AND `id`=2) OR (`menu_id`=6211 AND `id`=0) OR (`menu_id`=6213 AND `id`=1) OR (`menu_id`=7149 AND `id`=0) OR (`menu_id`=7428 AND `id`=0) OR (`menu_id`=7429 AND `id`=0) OR (`menu_id`=7430 AND `id`=0) OR (`menu_id`=7859 AND `id`=0) OR (`menu_id`=8917 AND `id`=0) OR (`menu_id`=9200 AND `id`=0) OR (`menu_id`=9280 AND `id`=0) OR (`menu_id`=9297 AND `id`=0) OR (`menu_id`=9297 AND `id`=1) OR (`menu_id`=9418 AND `id`=0) OR (`menu_id`=9492 AND `id`=0) OR (`menu_id`=9669 AND `id`=0) OR (`menu_id`=9683 AND `id`=0) OR (`menu_id`=9848 AND `id`=0) OR (`menu_id`=9928 AND `id`=0) OR (`menu_id`=10012 AND `id`=0) OR (`menu_id`=10200 AND `id`=0) OR (`menu_id`=10204 AND `id`=0) OR (`menu_id`=10204 AND `id`=1) OR (`menu_id`=10206 AND `id`=0) OR (`menu_id`=10316 AND `id`=1) OR (`menu_id`=10366 AND `id`=0) OR (`menu_id`=10464 AND `id`=1) OR (`menu_id`=10465 AND `id`=1) OR (`menu_id`=10477 AND `id`=0) OR (`menu_id`=10601 AND `id`=0) OR (`menu_id`=10614 AND `id`=0) OR (`menu_id`=10614 AND `id`=2) OR (`menu_id`=10614 AND `id`=3) OR (`menu_id`=10860 AND `id`=0) OR (`menu_id`=10949 AND `id`=0) OR (`menu_id`=10949 AND `id`=1) OR (`menu_id`=11014 AND `id`=0) OR (`menu_id`=11014 AND `id`=3) OR (`menu_id`=11014 AND `id`=4) OR (`menu_id`=11014 AND `id`=5) OR (`menu_id`=11016 AND `id`=0) OR (`menu_id`=11016 AND `id`=1) OR (`menu_id`=11016 AND `id`=3) OR (`menu_id`=11016 AND `id`=5) OR (`menu_id`=11104 AND `id`=0) OR (`menu_id`=11398 AND `id`=0);
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `OptionBroadcastTextID`, `box_coded`, `box_money`, `box_text`) VALUES
+(344, 3, 1, 'Let me browse your goods.', 2823, 0, 0, ''),
+(646, 0, 3, 'Train me.', 3266, 0, 0, ''),
+(900, 0, 1, 'I would like to buy from you.', 2583, 0, 0, ''),
+(940, 0, 0, 'Will you blow up that door now?', 3805, 0, 0, ''),
+(942, 0, 0, 'Please tell me more about the hippogryphs.', 3814, 0, 0, ''),
+(942, 1, 0, 'Please tell me more about the Gordunni ogres.', 3923, 0, 0, ''),
+(1022, 0, 3, 'Train me.', 3266, 0, 0, ''),
+(1142, 0, 0, 'Tell me more, Trenton.', 4183, 0, 0, ''),
+(1293, 3, 1, 'I want to browse your goods.', 3370, 0, 0, ''),
+(1801, 0, 0, 'How can I get Evoroot?', 4827, 0, 0, ''),
+(1802, 0, 0, 'Can you tell me how I can get a Videre Elixir?', 4721, 0, 0, ''),
+(1802, 1, 1, 'Buy somethin'', will ya?', 4720, 0, 0, ''),
+(1971, 0, 0, 'Where is the zeppelin now?', 22086, 0, 0, ''),
+(2306, 0, 0, 'I need help in defeating the shadowsilk poachers.', 5306, 0, 0, ''),
+(2422, 0, 0, 'What do you think of Dadanga?', 5512, 0, 0, ''),
+(2890, 1, 5, 'Make this inn your home.', 2822, 0, 0, ''),
+(2890, 5, 1, 'I want to browse your goods.', 3370, 0, 0, ''),
+(2952, 0, 1, 'I would like to buy from you.', 2583, 0, 0, ''),
+(3624, 0, 0, 'What about the Winterfall furbolg?', 7139, 0, 0, ''),
+(3626, 0, 3, 'I''d like to train.', 7149, 0, 0, ''),
+(3626, 1, 1, 'Let me browse your goods.', 2823, 0, 0, ''),
+(4149, 0, 3, 'Train me.', 3266, 0, 0, ''),
+(4152, 0, 3, 'Train me.', 3266, 0, 0, ''),
+(4166, 0, 3, 'Train me.', 3266, 0, 0, ''),
+(4210, 0, 3, 'Train me.', 3266, 0, 0, ''),
+(4306, 0, 2, 'Sure! Let''s go for a ride.', 8105, 0, 0, ''),
+(4354, 0, 3, 'Train me.', 3266, 0, 0, ''),
+(4554, 0, 3, 'I am interested in mage training.', 2522, 0, 0, ''),
+(4554, 1, 0, 'I wish to unlearn my talents.', 8271, 0, 0, ''),
+(4746, 0, 1, 'I wish to browse your goods, Dirge.', 8345, 0, 0, ''),
+(4822, 0, 3, 'Please teach me.', 8442, 0, 0, ''),
+(4844, 0, 3, 'Train me.', 3266, 0, 0, ''),
+(5221, 0, 3, 'I''d like some weapon training', 8811, 0, 0, ''),
+(5221, 1, 0, 'What can other weapon masters teach?', 8812, 0, 0, ''),
+(5262, 0, 0, 'Crossbow', 20582, 0, 0, ''),
+(5262, 1, 0, 'Dagger', 20583, 0, 0, ''),
+(5262, 2, 0, 'Fist Weapon', 20584, 0, 0, ''),
+(5262, 3, 0, 'Gun', 20585, 0, 0, ''),
+(5262, 4, 0, 'Mace', 20586, 0, 0, ''),
+(5262, 5, 0, 'Polearm', 20587, 0, 0, ''),
+(5262, 6, 0, 'Sword', 20589, 0, 0, ''),
+(5263, 0, 3, 'I''d like some weapon training', 8811, 0, 0, ''),
+(5263, 1, 0, 'What can other weapon masters teach?', 8812, 0, 0, ''),
+(5268, 0, 0, 'Axe', 20580, 0, 0, ''),
+(5268, 1, 0, 'Bow', 20581, 0, 0, ''),
+(5268, 2, 0, 'Fist Weapon', 20584, 0, 0, ''),
+(5268, 3, 0, 'Gun', 20585, 0, 0, ''),
+(5268, 4, 0, 'Mace', 20586, 0, 0, ''),
+(5268, 5, 0, 'Staff', 20588, 0, 0, ''),
+(5268, 6, 0, 'Thrown', 20590, 0, 0, ''),
+(6185, 0, 0, 'I slay the man on the spot as my liege would expect me to do, as he is nothing more than a thief and a liar.', 10049, 0, 0, ''),
+(6185, 1, 0, 'I turn over the man to my liege for punishment, as he has broken the law of the land and it is my sworn duty to enforce it.', 10050, 0, 0, ''),
+(6185, 2, 0, 'I confiscate the corn he has stolen, warn him that stealing is a path towards doom and destruction, but I let him go to return to his family.', 10051, 0, 0, ''),
+(6185, 3, 0, 'I allow the man to take enough corn to feed his family for a couple of days, encouraging him to leave the land.', 10052, 0, 0, ''),
+(6186, 0, 0, 'I am ready to discover where my fortune lies!', 10047, 0, 0, ''),
+(6187, 0, 0, 'I execute him as per my liege''s instructions, and do it in such a manner that he suffers painfully before he dies as retribution for his crimes against my people.', 10075, 0, 0, ''),
+(6210, 0, 0, 'I would show my liege the beast''s ear and claim the beast''s death as my own, taking the reward for my own use. It is wrong to claim a deed as your own that someone else in fact did.\r\n', 10087, 0, 0, ''),
+(6210, 1, 0, 'I would show my liege the beast''s ear and claim the beast''s death as my own - after all, I did slay it. I would then offer some of the reward to the destitute knight to help his family.', 10088, 0, 0, ''),
+(6210, 2, 0, 'I would remain silent about the kill and allow the knight to claim the reward to aid his family.', 10089, 0, 0, ''),
+(6211, 0, 0, 'I''d love to get one of those written fortunes you mentioned! I''ve got the space in my inventory for it.', 10091, 0, 0, ''),
+(6213, 1, 0, 'The Darkmoon Faire has already arrived, you say? Where is it located?', 10110, 0, 0, ''),
+(7149, 0, 2, 'Yes, I''d like to purchase a ride down to the Ghostlands.', 12085, 0, 0, ''),
+(7428, 0, 1, 'I wish to browse your wares, Ergh.', 14155, 0, 0, ''),
+(7429, 0, 3, 'Please teach me how to skin, Gurf.', 14157, 0, 0, ''),
+(7430, 0, 3, 'I wish to become a leatherworker, Moordo. Please train me.', 14159, 0, 0, ''),
+(7859, 0, 0, 'Show me, Seer.', 16026, 0, 0, ''),
+(8917, 0, 0, 'So, how does a dwarf like you end up in a place like this?', 22609, 0, 0, ''),
+(9200, 0, 0, 'What can we do to assist you?', 25096, 0, 0, ''),
+(9280, 0, 0, '<Search corpse for Issliruk''s Totem.>', 25422, 0, 0, ''),
+(9297, 0, 0, 'You''re not alone here?', 25562, 0, 0, ''),
+(9297, 1, 0, 'What would Kil''jaeden want with a mortal woman?', 25564, 0, 0, ''),
+(9418, 0, 0, 'Let''s do this, Thassarian. It''s now or never.', 25840, 0, 0, ''),
+(9492, 0, 0, 'Use the outhouse.', 26332, 0, 0, ''),
+(9669, 0, 0, 'Brann, it would be our honor!', 27614, 0, 0, ''),
+(9683, 0, 2, 'Do you think I could take a ride on one of those flying machines?', 27819, 0, 0, ''),
+(9848, 0, 1, 'Can you repair my gear?', 30450, 0, 0, ''),
+(9928, 0, 0, 'I''m with you, Thorim.', 31225, 0, 0, ''),
+(10012, 0, 0, 'We''re with you Brann! Open it!', 31547, 0, 0, ''),
+(10200, 0, 0, 'I''m ready, Highlord.', 32933, 0, 0, ''),
+(10204, 0, 0, 'I... I think so....', 32988, 0, 0, ''),
+(10204, 1, 0, 'I am ready, Lady Corastrasza.', 32990, 0, 0, ''),
+(10206, 0, 0, 'There will be plenty of time for this later Brann, we need to get moving!', 33002, 0, 0, ''),
+(10316, 1, 0, 'Glad to help, my lady. I''m told you were once the guardian of a fabled sword. Do you know where I might find it?', 33363, 0, 0, ''),
+(10366, 0, 0, 'Activate secondary defensive systems.', 34420, 0, 0, ''),
+(10464, 1, 0, 'I am ready to fight!', 33430, 0, 0, ''),
+(10465, 1, 0, 'I am ready to fight!', 33430, 0, 0, ''),
+(10477, 0, 0, 'Confirmed.', 34421, 0, 0, ''),
+(10601, 0, 9, 'I would like to go to the battleground.', 10355, 0, 0, ''),
+(10614, 0, 0, 'I am ready.', 35320, 0, 0, ''),
+(10614, 2, 0, 'I am ready.', 35320, 0, 0, ''),
+(10614, 3, 0, 'I am ready. However, I''d like to skip the pageantry.', 36657, 0, 0, ''),
+(10860, 0, 0, 'We''re ready! Let''s go!', 36885, 0, 0, ''),
+(10949, 0, 1, 'I''m not into any of that creepy stuff you like, Brazie. Just show me the "legal" wares.', 37565, 0, 0, ''),
+(10949, 1, 0, 'You''re an odd little guy.', 37619, 0, 0, ''),
+(11014, 0, 0, 'Teleport to Light''s Hammer.', 37671, 0, 0, ''),
+(11014, 3, 0, 'Teleport to the Rampart of Skulls.', 37723, 0, 0, ''),
+(11014, 4, 0, 'Teleport to the Deathbringer''s Rise.', 37724, 0, 0, ''),
+(11014, 5, 0, 'Teleport to the Upper Spire.', 37725, 0, 0, ''),
+(11016, 0, 0, 'Teleport to Light''s Hammer.', 37671, 0, 0, ''),
+(11016, 1, 0, 'Teleport to the Oratory of the Damned.', 37722, 0, 0, ''),
+(11016, 3, 0, 'Teleport to the Rampart of Skulls.', 37723, 0, 0, ''),
+(11016, 5, 0, 'Teleport to the Upper Spire.', 37725, 0, 0, ''),
+(11104, 0, 1, 'I wish to browse your wares.', 4424, 0, 0, ''),
+(11398, 0, 0, 'How do we do that?', 40480, 0, 0, '');
diff --git a/sql/updates/world/2014_04_27_02_world_creature_template.sql b/sql/updates/world/2014_04_27_02_world_creature_template.sql
new file mode 100644
index 00000000000..9d5c16410f8
--- /dev/null
+++ b/sql/updates/world/2014_04_27_02_world_creature_template.sql
@@ -0,0 +1,8 @@
+--
+UPDATE `creature_template` SET `faction_A`=1216, `faction_H`=1216 WHERE `entry` IN (13087,22731,31948);
+UPDATE `creature_template` SET `faction_A`=59, `faction_H`=59 WHERE `entry` IN (13081,22746,32017);
+UPDATE `creature_template` SET `faction_A`=14, `faction_H`=14 WHERE `entry` IN (34606,34649,33670,34109,33651,34108,33515,34175,33432,34106);
+UPDATE `creature_template` SET `faction_A`=103, `faction_H`=103 WHERE `entry` IN (31218,31541,30882,31539,30858,31546);
+UPDATE `creature_template` SET `faction_A`=35, `faction_H`=35 WHERE `entry` IN (31118,31491);
+UPDATE `creature_template` SET `faction_A`=16, `faction_H`=16 WHERE `entry` IN (29829,30926);
+UPDATE `command` SET `name`='reload broadcast_text' WHERE `name`='broadcast_text';
diff --git a/sql/updates/world/2014_04_27_03_world_creature_template.sql b/sql/updates/world/2014_04_27_03_world_creature_template.sql
new file mode 100644
index 00000000000..bcc5bc10226
--- /dev/null
+++ b/sql/updates/world/2014_04_27_03_world_creature_template.sql
@@ -0,0 +1,125 @@
+--
+UPDATE `creature_template` SET `difficulty_entry_2`=32003, `difficulty_entry_3`=37322 WHERE `entry`=14848;
+UPDATE `creature_template` SET `difficulty_entry_3`=37266 WHERE `entry`=13087;
+UPDATE `creature_template` SET `difficulty_entry_3`=37247 WHERE `entry`=13551;
+UPDATE `creature_template` SET `difficulty_entry_3`=37265 WHERE `entry`=13089;
+UPDATE `creature_template` SET `difficulty_entry_2`=31928, `difficulty_entry_3`=37246 WHERE `entry`=13536;
+UPDATE `creature_template` SET `difficulty_entry_1`=40673, `difficulty_entry_2`=40674, `difficulty_entry_3`=40675 WHERE `entry`=40135;
+UPDATE `creature_template` SET `difficulty_entry_1`=40670, `difficulty_entry_2`=40671, `difficulty_entry_3`=40672 WHERE `entry`=40001;
+UPDATE `creature_template` SET `difficulty_entry_1`=39232, `difficulty_entry_2`=39233, `difficulty_entry_3`=39234 WHERE `entry`=39231;
+UPDATE `creature_template` SET `difficulty_entry_1`=39011, `difficulty_entry_2`=39012, `difficulty_entry_3`=39013 WHERE `entry`=39010;
+UPDATE `creature_template` SET `difficulty_entry_1`=38601 WHERE `entry`=37919;
+UPDATE `creature_template` SET `difficulty_entry_1`=38698 WHERE `entry`=38456;
+UPDATE `creature_template` SET `difficulty_entry_1`=38590 WHERE `entry`=38589;
+UPDATE `creature_template` SET `difficulty_entry_1`=38552 WHERE `entry`=38551;
+UPDATE `creature_template` SET `difficulty_entry_1`=37658 WHERE `entry`=36792;
+UPDATE `creature_template` SET `difficulty_entry_1`=37678 WHERE `entry`=36595;
+UPDATE `creature_template` SET `difficulty_entry_1`=38496 WHERE `entry`=38492;
+UPDATE `creature_template` SET `difficulty_entry_1`=37654 WHERE `entry`=36889;
+UPDATE `creature_template` SET `difficulty_entry_1`=37653 WHERE `entry`=36888;
+UPDATE `creature_template` SET `difficulty_entry_1`=37634 WHERE `entry`=37222;
+UPDATE `creature_template` SET `difficulty_entry_1`=38388 WHERE `entry`=38386;
+UPDATE `creature_template` SET `difficulty_entry_1`=38094 WHERE `entry`=37028;
+UPDATE `creature_template` SET `difficulty_entry_1`=38495 WHERE `entry`=38491;
+UPDATE `creature_template` SET `difficulty_entry_1`=38134 WHERE `entry`=37228;
+UPDATE `creature_template` SET `difficulty_entry_1`=38137 WHERE `entry`=37229;
+UPDATE `creature_template` SET `difficulty_entry_1`=37657 WHERE `entry`=36796;
+UPDATE `creature_template` SET `difficulty_entry_3`=37482 WHERE `entry`=13181;
+UPDATE `creature_template` SET `difficulty_entry_3`=37478 WHERE `entry`=11837;
+UPDATE `creature_template` SET `difficulty_entry_3`=37477 WHERE `entry`=11838;
+UPDATE `creature_template` SET `difficulty_entry_3`=37476 WHERE `entry`=10991;
+UPDATE `creature_template` SET `difficulty_entry_3`=37474 WHERE `entry`=11840;
+UPDATE `creature_template` SET `difficulty_entry_2`=32142, `difficulty_entry_3`=37472 WHERE `entry`=11606;
+UPDATE `creature_template` SET `difficulty_entry_3`=37471 WHERE `entry`=11605;
+UPDATE `creature_template` SET `difficulty_entry_2`=31903, `difficulty_entry_3`=37467 WHERE `entry`=14769;
+UPDATE `creature_template` SET `difficulty_entry_2`=32138, `difficulty_entry_3`=37466 WHERE `entry`=13178;
+UPDATE `creature_template` SET `difficulty_entry_2`=32137, `difficulty_entry_3`=37465 WHERE `entry`=13817;
+UPDATE `creature_template` SET `difficulty_entry_2`=32136, `difficulty_entry_3`=37464 WHERE `entry`=14948;
+UPDATE `creature_template` SET `difficulty_entry_2`=32135, `difficulty_entry_3`=37463 WHERE `entry`=13337;
+UPDATE `creature_template` SET `difficulty_entry_2`=37462, `difficulty_entry_3`=37462 WHERE `entry`=13336;
+UPDATE `creature_template` SET `difficulty_entry_2`=31904, `difficulty_entry_3`=37461 WHERE `entry`=13530;
+UPDATE `creature_template` SET `difficulty_entry_2`=31905, `difficulty_entry_3`=37460 WHERE `entry`=13522;
+UPDATE `creature_template` SET `difficulty_entry_2`=31906, `difficulty_entry_3`=37459 WHERE `entry`=13518;
+UPDATE `creature_template` SET `difficulty_entry_2`=32133, `difficulty_entry_3`=37458 WHERE `entry`=13335;
+UPDATE `creature_template` SET `difficulty_entry_3`=37457 WHERE `entry`=13334;
+UPDATE `creature_template` SET `difficulty_entry_3`=37456 WHERE `entry`=13556;
+UPDATE `creature_template` SET `difficulty_entry_2`=32130, `difficulty_entry_3`=37455 WHERE `entry`=13544;
+UPDATE `creature_template` SET `difficulty_entry_3`=37454 WHERE `entry`=13553;
+UPDATE `creature_template` SET `difficulty_entry_2`=32128, `difficulty_entry_3`=37453 WHERE `entry`=13541;
+UPDATE `creature_template` SET `difficulty_entry_2`=32127, `difficulty_entry_3`=37452 WHERE `entry`=13333;
+UPDATE `creature_template` SET `difficulty_entry_2`=31907, `difficulty_entry_3`=37449 WHERE `entry`=13526;
+UPDATE `creature_template` SET `difficulty_entry_3`=37448 WHERE `entry`=13538;
+UPDATE `creature_template` SET `difficulty_entry_3`=37447 WHERE `entry`=13550;
+UPDATE `creature_template` SET `difficulty_entry_3`=37446 WHERE `entry`=13535;
+UPDATE `creature_template` SET `difficulty_entry_3`=37445 WHERE `entry`=13547;
+UPDATE `creature_template` SET `difficulty_entry_2`=32120, `difficulty_entry_3`=37443 WHERE `entry`=14016;
+UPDATE `creature_template` SET `difficulty_entry_2`=32118, `difficulty_entry_3`=37441 WHERE `entry`=14031;
+UPDATE `creature_template` SET `difficulty_entry_2`=32117, `difficulty_entry_3`=37440 WHERE `entry`=14030;
+UPDATE `creature_template` SET `difficulty_entry_2`=32116, `difficulty_entry_3`=37439 WHERE `entry`=14027;
+UPDATE `creature_template` SET `difficulty_entry_2`=32115, `difficulty_entry_3`=37438 WHERE `entry`=14028;
+UPDATE `creature_template` SET `difficulty_entry_2`=32114, `difficulty_entry_3`=37437 WHERE `entry`=14029;
+UPDATE `creature_template` SET `difficulty_entry_2`=32113, `difficulty_entry_3`=37436 WHERE `entry`=14026;
+UPDATE `creature_template` SET `difficulty_entry_2`=31908, `difficulty_entry_3`=37434 WHERE `entry`=14767;
+UPDATE `creature_template` SET `difficulty_entry_2`=32112, `difficulty_entry_3`=37433 WHERE `entry`=13217;
+UPDATE `creature_template` SET `difficulty_entry_2`=32111, `difficulty_entry_3`=37432 WHERE `entry`=14019;
+UPDATE `creature_template` SET `difficulty_entry_2`=32109, `difficulty_entry_3`=37430 WHERE `entry`=13151;
+UPDATE `creature_template` SET `difficulty_entry_2`=32108, `difficulty_entry_3`=37429 WHERE `entry`=13149;
+UPDATE `creature_template` SET `difficulty_entry_2`=32107, `difficulty_entry_3`=37428 WHERE `entry`=13150;
+UPDATE `creature_template` SET `difficulty_entry_2`=32104, `difficulty_entry_3`=37425 WHERE `entry`=13416;
+UPDATE `creature_template` SET `difficulty_entry_2`=32103, `difficulty_entry_3`=37424 WHERE `entry`=14141;
+UPDATE `creature_template` SET `difficulty_entry_2`=32102, `difficulty_entry_3`=37423 WHERE `entry`=13520;
+UPDATE `creature_template` SET `difficulty_entry_2`=32100, `difficulty_entry_3`=37421 WHERE `entry`=13576;
+UPDATE `creature_template` SET `difficulty_entry_2`=32097, `difficulty_entry_3`=37418 WHERE `entry`=12047;
+UPDATE `creature_template` SET `difficulty_entry_2`=32096, `difficulty_entry_3`=37417 WHERE `entry`=13356;
+UPDATE `creature_template` SET `difficulty_entry_2`=32093, `difficulty_entry_3`=37414 WHERE `entry`=13598;
+UPDATE `creature_template` SET `difficulty_entry_2`=32092, `difficulty_entry_3`=37413 WHERE `entry`=15103;
+UPDATE `creature_template` SET `difficulty_entry_2`=32090, `difficulty_entry_3`=37411 WHERE `entry`=13524;
+UPDATE `creature_template` SET `difficulty_entry_1`=22573, `difficulty_entry_2`=32087, `difficulty_entry_3`=37408 WHERE `entry`=14775;
+UPDATE `creature_template` SET `difficulty_entry_2`=32075, `difficulty_entry_3`=37396 WHERE `entry`=13330;
+UPDATE `creature_template` SET `difficulty_entry_2`=32074, `difficulty_entry_3`=37395 WHERE `entry`=13327;
+UPDATE `creature_template` SET `difficulty_entry_2`=32073, `difficulty_entry_3`=37394 WHERE `entry`=13529;
+UPDATE `creature_template` SET `difficulty_entry_2`=32072, `difficulty_entry_3`=37393 WHERE `entry`=13521;
+UPDATE `creature_template` SET `difficulty_entry_2`=32071, `difficulty_entry_3`=37392 WHERE `entry`=13517;
+UPDATE `creature_template` SET `difficulty_entry_2`=32070, `difficulty_entry_3`=37391 WHERE `entry`=13325;
+UPDATE `creature_template` SET `difficulty_entry_2`=32069, `difficulty_entry_3`=37390 WHERE `entry`=13329;
+UPDATE `creature_template` SET `difficulty_entry_3`=37389 WHERE `entry`=13555;
+UPDATE `creature_template` SET `difficulty_entry_3`=37388 WHERE `entry`=13543;
+UPDATE `creature_template` SET `difficulty_entry_3`=37387 WHERE `entry`=13552;
+UPDATE `creature_template` SET `difficulty_entry_3`=37386 WHERE `entry`=13540;
+UPDATE `creature_template` SET `difficulty_entry_2`=32064, `difficulty_entry_3`=37385 WHERE `entry`=13324;
+UPDATE `creature_template` SET `difficulty_entry_2`=32061, `difficulty_entry_3`=37382 WHERE `entry`=13525;
+UPDATE `creature_template` SET `difficulty_entry_2`=32060, `difficulty_entry_3`=37381 WHERE `entry`=13537;
+UPDATE `creature_template` SET `difficulty_entry_3`=37380 WHERE `entry`=13549;
+UPDATE `creature_template` SET `difficulty_entry_3`=37379 WHERE `entry`=13534;
+UPDATE `creature_template` SET `difficulty_entry_3`=37378 WHERE `entry`=13546;
+UPDATE `creature_template` SET `difficulty_entry_2`=15998 WHERE `entry`=15992;
+UPDATE `creature_template` SET `difficulty_entry_2`=15999 WHERE `entry`=15993;
+UPDATE `creature_template` SET `difficulty_entry_2`=32056, `difficulty_entry_3`=37377 WHERE `entry`=13221;
+UPDATE `creature_template` SET `difficulty_entry_1`=33691 WHERE `entry`=33051;
+UPDATE `creature_template` SET `difficulty_entry_1`=35546 WHERE `entry`=35545;
+UPDATE `creature_template` SET `difficulty_entry_1`=35717 WHERE `entry`=35590;
+UPDATE `creature_template` SET `difficulty_entry_1`=35568 WHERE `entry`=35564;
+UPDATE `creature_template` SET `difficulty_entry_2`=32055, `difficulty_entry_3`=37376 WHERE `entry`=13496;
+UPDATE `creature_template` SET `difficulty_entry_2`=32054, `difficulty_entry_3`=37375 WHERE `entry`=14018;
+UPDATE `creature_template` SET `difficulty_entry_2`=32042, `difficulty_entry_3`=37362 WHERE `entry`=13144;
+UPDATE `creature_template` SET `difficulty_entry_2`=32041, `difficulty_entry_3`=37361 WHERE `entry`=13143;
+UPDATE `creature_template` SET `difficulty_entry_2`=32040, `difficulty_entry_3`=37360 WHERE `entry`=13297;
+UPDATE `creature_template` SET `difficulty_entry_2`=32039, `difficulty_entry_3`=37359 WHERE `entry`=13138;
+UPDATE `creature_template` SET `difficulty_entry_2`=32038, `difficulty_entry_3`=37358 WHERE `entry`=13137;
+UPDATE `creature_template` SET `difficulty_entry_2`=32037, `difficulty_entry_3`=37357 WHERE `entry`=13146;
+UPDATE `creature_template` SET `difficulty_entry_2`=32036, `difficulty_entry_3`=37356 WHERE `entry`=13300;
+UPDATE `creature_template` SET `difficulty_entry_2`=32035, `difficulty_entry_3`=37355 WHERE `entry`=13299;
+UPDATE `creature_template` SET `difficulty_entry_2`=32034, `difficulty_entry_3`=37354 WHERE `entry`=13147;
+UPDATE `creature_template` SET `difficulty_entry_2`=32033, `difficulty_entry_3`=37353 WHERE `entry`=13296;
+UPDATE `creature_template` SET `difficulty_entry_2`=32032, `difficulty_entry_3`=37352 WHERE `entry`=13841;
+UPDATE `creature_template` SET `difficulty_entry_2`=32031, `difficulty_entry_3`=37351 WHERE `entry`=13145;
+UPDATE `creature_template` SET `difficulty_entry_2`=32030, `difficulty_entry_3`=37350 WHERE `entry`=13298;
+UPDATE `creature_template` SET `difficulty_entry_3`=37339 WHERE `entry`=13098;
+UPDATE `creature_template` SET `difficulty_entry_3`=37338 WHERE `entry`=11602;
+UPDATE `creature_template` SET `difficulty_entry_3`=37336 WHERE `entry`=13081;
+UPDATE `creature_template` SET `difficulty_entry_2`=32013, `difficulty_entry_3`=37332 WHERE `entry`=11599;
+UPDATE `creature_template` SET `difficulty_entry_2`=32011, `difficulty_entry_3`=37330 WHERE `entry`=11601;
+UPDATE `creature_template` SET `difficulty_entry_2`=31938, `difficulty_entry_3`=37256 WHERE `entry`=13557;
+UPDATE `creature_template` SET `difficulty_entry_2`=31937, `difficulty_entry_3`=37255 WHERE `entry`=13545;
+UPDATE `creature_template` SET `difficulty_entry_2`=31936, `difficulty_entry_3`=37254 WHERE `entry`=13554;
+UPDATE `creature_template` SET `difficulty_entry_2`=31935, `difficulty_entry_3`=37253 WHERE `entry`=13542;
diff --git a/sql/updates/world/2014_04_27_04_world_creature_template.sql b/sql/updates/world/2014_04_27_04_world_creature_template.sql
new file mode 100644
index 00000000000..134452b9485
--- /dev/null
+++ b/sql/updates/world/2014_04_27_04_world_creature_template.sql
@@ -0,0 +1,5 @@
+--
+UPDATE `creature_template` SET `exp`=2 WHERE `entry` IN (39232,39233,39234,40673,40674,40675,40670,40671,40672,38601,38590,37654,38698,39011,39012,39013,38094,38496,38552,38137,38134,37653,37678,35546,35717,35568,33691);
+UPDATE `creature_template` SET `exp`=1 WHERE `entry` IN (32118,37441,32117,37440,32114,37437,32115,37438,32116,37439,32113,37436,32033,37353);
+UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=38094;
+UPDATE `creature_template` SET `unit_class`=2 WHERE `entry` IN (37456,37389,37445,37378,37386,37448,32060,37339,37477,37478,37654,32055);
diff --git a/sql/updates/world/2014_04_27_05_world_creature_template.sql b/sql/updates/world/2014_04_27_05_world_creature_template.sql
new file mode 100644
index 00000000000..323b596eafa
--- /dev/null
+++ b/sql/updates/world/2014_04_27_05_world_creature_template.sql
@@ -0,0 +1,12 @@
+--
+UPDATE `creature_template` SET `faction_A`=14, `faction_H`=14 WHERE `entry` IN (40673,40674,40675,40670,40671,40672,38601,38698,37386,32069,37390,37678,35568,37476);
+UPDATE `creature_template` SET `faction_A`=1214, `faction_H`=1214 WHERE `entry` IN (32137,32087,37408,32034,37354,32037,37357,32031,37351,32042,37362,32041,37361,37265,32038,37358);
+UPDATE `creature_template` SET `faction_A`=1216, `faction_H`=1216 WHERE `entry` IN (32039,37359,37339,32090,37411,32104,37425,32096,37417,32093,32100,37421,37378,32035,37355,32030,37350,32033,37353,37266,32097,37418);
+UPDATE `creature_template` SET `faction_A`=32, `faction_H`=32 WHERE `entry` IN (32056,37377,32040,37360,31904,37461,32073,37394,31907,37449,32061,37382,37462,32136,37464,31938,37256,37456,37389,31936,37254,37454,37387,37247,37447,37380,37445,32130,37455,37388,31908,37434,32128,37453,32133,37458,3212737452,32064,37385,32036,37356);
+UPDATE `creature_template` SET `faction_A`=85, `faction_H`=85 WHERE `entry` IN (32135,37463,31935,37448,32060,37446,37379,37457,37396,32138);
+UPDATE `creature_template` SET `faction_A`=70, `faction_H`=70 WHERE `entry` IN (32109,32107,37428,32108,37429);
+UPDATE `creature_template` SET `faction_A`=59, `faction_H`=59 WHERE `entry` IN (32011,37330,32013,37332,37336,37338);
+UPDATE `creature_template` SET `faction_A`=1334, `faction_H`=1334 WHERE `entry` IN (32003,32032,32112);
+UPDATE `creature_template` SET `faction_A`=21, `faction_H`=21 WHERE `entry` IN (39232,39233,39234);
+UPDATE `creature_template` SET `faction_A`=16, `faction_H`=16 WHERE `entry` IN (39011,39011,39012,39012,39013,39013,35717,35717);
+UPDATE `creature_template` SET `faction_A`=39, `faction_H`=39 WHERE `entry` IN (37474,37477,37478);
diff --git a/sql/updates/world/2014_04_27_06_world_creature_template.sql b/sql/updates/world/2014_04_27_06_world_creature_template.sql
new file mode 100644
index 00000000000..19711483634
--- /dev/null
+++ b/sql/updates/world/2014_04_27_06_world_creature_template.sql
@@ -0,0 +1,14 @@
+--
+UPDATE `creature_template` SET `faction_A`=2209, `faction_H`=2209 WHERE `entry` IN (38137,38134);
+UPDATE `creature_template` SET `faction_A`=1770, `faction_H`=1770 WHERE `entry` IN (37653,37654);
+UPDATE `creature_template` SET `faction_A`=1534, `faction_H`=1534 WHERE `entry` IN (31903,37467);
+UPDATE `creature_template` SET `faction_A`=29, `faction_H`=29 WHERE `entry` IN (31937,31928);
+UPDATE `creature_template` SET `faction_A`=32, `faction_H`=32 WHERE `entry` IN (32127,37452);
+UPDATE `creature_template` SET `faction_A`=11, `faction_H`=11 WHERE `entry` IN (32074,37395);
+UPDATE `creature_template` SET `faction_A`=55, `faction_H`=55 WHERE `entry` IN (32070,37391);
+UPDATE `creature_template` SET `faction_A`=83, `faction_H`=83 WHERE `entry` IN (38094);
+UPDATE `creature_template` SET `faction_A`=1771, `faction_H`=1771 WHERE `entry` IN (37657);
+UPDATE `creature_template` SET `faction_A`=1217, `faction_H`=1217 WHERE `entry` IN (32092);
+UPDATE `creature_template` SET `faction_A`=1215, `faction_H`=1215 WHERE `entry` IN (37482);
+UPDATE `creature_template` SET `faction_A`=85, `faction_H`=85 WHERE `entry` IN (32075);
+UPDATE `creature_template` SET `faction_A`=26, `faction_H`=26 WHERE `entry` IN (37471);
diff --git a/sql/updates/world/2014_04_27_07_world_creature_template.sql b/sql/updates/world/2014_04_27_07_world_creature_template.sql
new file mode 100644
index 00000000000..a79ab1e0f68
--- /dev/null
+++ b/sql/updates/world/2014_04_27_07_world_creature_template.sql
@@ -0,0 +1,40 @@
+--
+UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37376;
+UPDATE `creature_template` SET `faction_A`=32, `faction_H`=32 WHERE `entry`=32134;
+UPDATE `creature_template` SET `difficulty_entry_2`=32134 WHERE `entry`=13336;
+UPDATE `creature_template` SET `npcflag`=1048577 WHERE `entry` IN (32092,37413);
+UPDATE `creature_template` SET `faction_A`=1334, `faction_H`=1334, `npcflag`=3 WHERE `entry`=37352;
+UPDATE `creature_template` SET `faction_A`=1334, `faction_H`=1334, `npcflag`=3 WHERE `entry`=37322;
+UPDATE `creature_template` SET `faction_A`=1214, `faction_H`=1214, `npcflag`=2 WHERE `entry`=37465;
+UPDATE `creature_template` SET `faction_A`=1216, `faction_H`=1216, `npcflag`=2 WHERE `entry`=37414;
+UPDATE `creature_template` SET `faction_A`=29, `faction_H`=29, `npcflag`=2 WHERE `entry`=37255;
+UPDATE `creature_template` SET `faction_A`=85, `faction_H`=85, `npcflag`=2 WHERE `entry`=37253;
+UPDATE `creature_template` SET `faction_A`=85, `faction_H`=85, `npcflag`=2 WHERE `entry`=37381;
+UPDATE `creature_template` SET `faction_A`=29, `faction_H`=29, `npcflag`=2 WHERE `entry`=37246;
+UPDATE `creature_template` SET `npcflag`=4224 WHERE `entry`=32112;
+UPDATE `creature_template` SET `npcflag`=4224 WHERE `entry`=37433;
+UPDATE `creature_template` SET `npcflag`=3 WHERE `entry`=38590;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=38495;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=38552;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=38496;
+UPDATE `creature_template` SET `npcflag`=3 WHERE `entry`=32003;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=32137;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=32093;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=31937;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=31935;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37448;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=32060;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=31928;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37446;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37379;
+UPDATE `creature_template` SET `npcflag`=3 WHERE `entry`=37482;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=32138;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=32109;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37265;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37336;
+UPDATE `creature_template` SET `faction_A`=1217, `faction_H`=1217 WHERE `entry`=37413;
+UPDATE `creature_template` SET `faction_A`=1334, `faction_H`=1334 WHERE `entry`=37433;
+UPDATE `creature_template` SET `faction_A`=85, `faction_H`=85, `npcflag`=2 WHERE `entry`=37466;
+UPDATE `creature_template` SET `faction_A`=70, `faction_H`=70, `npcflag`=2 WHERE `entry`=37430;
+UPDATE `creature_template` SET `npcflag`=3 WHERE `entry`=32032;
+UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37381;
diff --git a/sql/updates/world/2014_04_27_08_world_creature_template.sql b/sql/updates/world/2014_04_27_08_world_creature_template.sql
new file mode 100644
index 00000000000..84157ed8633
--- /dev/null
+++ b/sql/updates/world/2014_04_27_08_world_creature_template.sql
@@ -0,0 +1,85 @@
+--
+UPDATE `creature_template` SET `difficulty_entry_2`=31917, `difficulty_entry_3`=37233 WHERE `entry`=13161;
+UPDATE `creature_template` SET `difficulty_entry_1`=34131 WHERE `entry`=33105;
+UPDATE `creature_template` SET `difficulty_entry_1`=35410 WHERE `entry`=34929;
+UPDATE `creature_template` SET `difficulty_entry_2`=31919, `difficulty_entry_3`=37235 WHERE `entry`=12048;
+UPDATE `creature_template` SET `difficulty_entry_1`=34277 WHERE `entry`=33387;
+UPDATE `creature_template` SET `difficulty_entry_1`=34276 WHERE `entry`=34275;
+UPDATE `creature_template` SET `difficulty_entry_1`=33815 WHERE `entry`=33806;
+UPDATE `creature_template` SET `difficulty_entry_1`=33397 WHERE `entry`=33168;
+UPDATE `creature_template` SET `difficulty_entry_1`=33942 WHERE `entry`=33809;
+UPDATE `creature_template` SET `difficulty_entry_1`=34110 WHERE `entry`=34047;
+UPDATE `creature_template` SET `difficulty_entry_1`=33668 WHERE `entry`=33667;
+UPDATE `creature_template` SET `difficulty_entry_1`=33664 WHERE `entry`=33663;
+UPDATE `creature_template` SET `difficulty_entry_1`=30801 WHERE `entry`=22271;
+UPDATE `creature_template` SET `difficulty_entry_1`=30799 WHERE `entry`=22264;
+UPDATE `creature_template` SET `difficulty_entry_1`=30797 WHERE `entry`=22270;
+UPDATE `creature_template` SET `difficulty_entry_1`=37525, `difficulty_entry_2`=37526 WHERE `entry`=33351;
+UPDATE `creature_template` SET `difficulty_entry_1`=30793 WHERE `entry`=22304;
+UPDATE `creature_template` SET `difficulty_entry_2`=32044, `difficulty_entry_3`=37365 WHERE `entry`=13377;
+UPDATE `creature_template` SET `difficulty_entry_3`=37363 WHERE `entry`=13256;
+UPDATE `creature_template` SET `difficulty_entry_2`=32023, `difficulty_entry_3`=37343 WHERE `entry`=14944;
+UPDATE `creature_template` SET `difficulty_entry_2`=32022, `difficulty_entry_3`=37342 WHERE `entry`=13219;
+UPDATE `creature_template` SET `difficulty_entry_1`=34170 WHERE `entry`=34168;
+UPDATE `creature_template` SET `difficulty_entry_3`=37341 WHERE `entry`=13419;
+UPDATE `creature_template` SET `difficulty_entry_1`=33396 WHERE `entry`=33088;
+UPDATE `creature_template` SET `difficulty_entry_2`=32010, `difficulty_entry_3`=37329 WHERE `entry`=14947;
+UPDATE `creature_template` SET `difficulty_entry_1`=22562, `difficulty_entry_2`=32009, `difficulty_entry_3`=37328 WHERE `entry`=14774;
+UPDATE `creature_template` SET `difficulty_entry_1`=22559, `difficulty_entry_2`=32006, `difficulty_entry_3`=37325 WHERE `entry`=14766;
+UPDATE `creature_template` SET `difficulty_entry_2`=32005, `difficulty_entry_3`=37324 WHERE `entry`=10985;
+UPDATE `creature_template` SET `difficulty_entry_2`=32002, `difficulty_entry_3`=37321 WHERE `entry`=14943;
+UPDATE `creature_template` SET `difficulty_entry_1`=33730 WHERE `entry`=33516;
+UPDATE `creature_template` SET `difficulty_entry_2`=32000, `difficulty_entry_3`=37319 WHERE `entry`=603;
+UPDATE `creature_template` SET `difficulty_entry_1`=35425 WHERE `entry`=35346;
+UPDATE `creature_template` SET `difficulty_entry_2`=31998, `difficulty_entry_3`=37317 WHERE `entry`=13977;
+UPDATE `creature_template` SET `difficulty_entry_2`=31997, `difficulty_entry_3`=37316 WHERE `entry`=15139;
+UPDATE `creature_template` SET `difficulty_entry_2`=31995, `difficulty_entry_3`=37314 WHERE `entry`=13281;
+UPDATE `creature_template` SET `difficulty_entry_2`=31993, `difficulty_entry_3`=37312 WHERE `entry`=13440;
+UPDATE `creature_template` SET `difficulty_entry_2`=31992, `difficulty_entry_3`=37311 WHERE `entry`=12052;
+UPDATE `creature_template` SET `difficulty_entry_2`=31990, `difficulty_entry_3`=37309 WHERE `entry`=13378;
+UPDATE `creature_template` SET `difficulty_entry_2`=31988, `difficulty_entry_3`=37307 WHERE `entry`=14142;
+UPDATE `creature_template` SET `difficulty_entry_2`=31987, `difficulty_entry_3`=37306 WHERE `entry`=13528;
+UPDATE `creature_template` SET `difficulty_entry_2`=31985, `difficulty_entry_3`=37304 WHERE `entry`=13516;
+UPDATE `creature_template` SET `difficulty_entry_2`=31984, `difficulty_entry_3`=37303 WHERE `entry`=13357;
+UPDATE `creature_template` SET `difficulty_entry_3`=37301 WHERE `entry`=11998;
+UPDATE `creature_template` SET `difficulty_entry_2`=31980, `difficulty_entry_3`=37299 WHERE `entry`=13597;
+UPDATE `creature_template` SET `difficulty_entry_2`=31979, `difficulty_entry_3`=37298 WHERE `entry`=15106;
+UPDATE `creature_template` SET `difficulty_entry_3`=37295 WHERE `entry`=14285;
+UPDATE `creature_template` SET `difficulty_entry_1`=34228 WHERE `entry`=34213;
+UPDATE `creature_template` SET `difficulty_entry_2`=31974, `difficulty_entry_3`=37293 WHERE `entry`=11676;
+UPDATE `creature_template` SET `difficulty_entry_2`=31973, `difficulty_entry_3`=37392 WHERE `entry`=13446;
+UPDATE `creature_template` SET `difficulty_entry_1`=37611 WHERE `entry`=36913;
+UPDATE `creature_template` SET `difficulty_entry_1`=37610 WHERE `entry`=36610;
+UPDATE `creature_template` SET `difficulty_entry_1`=33839 WHERE `entry`=33838;
+UPDATE `creature_template` SET `difficulty_entry_2`=25389 WHERE `entry`=25390;
+UPDATE `creature_template` SET `difficulty_entry_1`=34148 WHERE `entry`=34147;
+UPDATE `creature_template` SET `difficulty_entry_2`=31971, `difficulty_entry_3`=37290 WHERE `entry`=14768;
+UPDATE `creature_template` SET `difficulty_entry_1`=22545, `difficulty_entry_2`=31969, `difficulty_entry_3`=37288 WHERE `entry`=14771;
+UPDATE `creature_template` SET `difficulty_entry_2`=31962, `difficulty_entry_3`=37280 WHERE `entry`=13155;
+UPDATE `creature_template` SET `difficulty_entry_1`=29853 WHERE `entry`=29818;
+UPDATE `creature_template` SET `difficulty_entry_1`=25683, `difficulty_entry_2`=25704 WHERE `entry`=25537;
+UPDATE `creature_template` SET `difficulty_entry_2`=25412 WHERE `entry`=25323;
+UPDATE `creature_template` SET `difficulty_entry_2`=31961, `difficulty_entry_3`=37279 WHERE `entry`=13776;
+UPDATE `creature_template` SET `difficulty_entry_1`=35356, `difficulty_entry_2`=35357, `difficulty_entry_3`=35358 WHERE `entry`=34630;
+UPDATE `creature_template` SET `difficulty_entry_1`=35353, `difficulty_entry_2`=35354, `difficulty_entry_3`=35355 WHERE `entry`=34628;
+UPDATE `creature_template` SET `difficulty_entry_2`=31959, `difficulty_entry_3`=37277 WHERE `entry`=13139;
+UPDATE `creature_template` SET `difficulty_entry_2`=31958, `difficulty_entry_3`=37376 WHERE `entry`=13153;
+UPDATE `creature_template` SET `difficulty_entry_2`=31957, `difficulty_entry_3`=37275 WHERE `entry`=13318;
+UPDATE `creature_template` SET `difficulty_entry_2`=31956, `difficulty_entry_3`=37274 WHERE `entry`=13152;
+UPDATE `creature_template` SET `difficulty_entry_2`=31955, `difficulty_entry_3`=37273 WHERE `entry`=13154;
+UPDATE `creature_template` SET `difficulty_entry_2`=31954, `difficulty_entry_3`=37272 WHERE `entry`=13320;
+UPDATE `creature_template` SET `difficulty_entry_2`=31953, `difficulty_entry_3`=37271 WHERE `entry`=13319;
+UPDATE `creature_template` SET `difficulty_entry_2`=31952, `difficulty_entry_3`=37270 WHERE `entry`=13140;
+UPDATE `creature_template` SET `difficulty_entry_2`=31945, `difficulty_entry_3`=37263 WHERE `entry`=13428;
+UPDATE `creature_template` SET `difficulty_entry_2`=31944, `difficulty_entry_3`=37362 WHERE `entry`=13427;
+UPDATE `creature_template` SET `difficulty_entry_2`=31943, `difficulty_entry_3`=37261 WHERE `entry`=13531;
+UPDATE `creature_template` SET `difficulty_entry_2`=31942, `difficulty_entry_3`=37260 WHERE `entry`=13523;
+UPDATE `creature_template` SET `difficulty_entry_2`=31941, `difficulty_entry_3`=37259 WHERE `entry`=13519;
+UPDATE `creature_template` SET `difficulty_entry_2`=31940, `difficulty_entry_3`=37358 WHERE `entry`=13426;
+UPDATE `creature_template` SET `difficulty_entry_2`=31939, `difficulty_entry_3`=37257 WHERE `entry`=13425;
+UPDATE `creature_template` SET `difficulty_entry_2`=31934, `difficulty_entry_3`=37252 WHERE `entry`=13424;
+UPDATE `creature_template` SET `difficulty_entry_2`=31931, `difficulty_entry_3`=37249 WHERE `entry`=13527;
+UPDATE `creature_template` SET `difficulty_entry_2`=31930, `difficulty_entry_3`=37248 WHERE `entry`=13539;
+UPDATE `creature_template` SET `difficulty_entry_3`=37245 WHERE `entry`=13548;
+UPDATE `creature_template` SET `difficulty_entry_2`=31925, `difficulty_entry_3`=37241 WHERE `entry`=10989;
+UPDATE `creature_template` SET `difficulty_entry_3`=37238 WHERE `entry`=13959;
diff --git a/sql/updates/world/2014_04_27_09_world_creature_template.sql b/sql/updates/world/2014_04_27_09_world_creature_template.sql
new file mode 100644
index 00000000000..05da0b277c7
--- /dev/null
+++ b/sql/updates/world/2014_04_27_09_world_creature_template.sql
@@ -0,0 +1,23 @@
+--
+UPDATE `creature_template` SET `difficulty_entry_3`=37262 WHERE `entry`=13427;
+UPDATE `creature_template` SET `difficulty_entry_3`=37258 WHERE `entry`=13426;
+UPDATE `creature_template` SET `faction_A`=1215, `faction_H`=1215, `npcflag`=1048577 WHERE `entry`=31979;
+UPDATE `creature_template` SET `faction_A`=21, `faction_H`=21 WHERE `entry`=29853;
+UPDATE `creature_template` SET `faction_A`=114, `faction_H`=114 WHERE `entry`=34110;
+UPDATE `creature_template` SET `faction_A`=1335, `faction_H`=1335, `npcflag`=4226 WHERE `entry`=32022;
+UPDATE `creature_template` SET `faction_A`=1732, `faction_H`=1732, `npcflag`=16777216 WHERE `entry`=35410;
+UPDATE `creature_template` SET `faction_A`=1534, `faction_H`=1534 WHERE `entry`=32006;
+UPDATE `creature_template` SET `faction_A`=1534, `faction_H`=1534 WHERE `entry`=37325;
+UPDATE `creature_template` SET `faction_A`=84, `faction_H`=84 WHERE `entry`=31919;
+UPDATE `creature_template` SET `faction_A`=84, `faction_H`=84 WHERE `entry`=37235;
+UPDATE `creature_template` SET `faction_A`=58, `faction_H`=58 WHERE `entry`=31917;
+UPDATE `creature_template` SET `faction_A`=58, `faction_H`=58 WHERE `entry`=37233;
+UPDATE `creature_template` SET `faction_A`=1217, `faction_H`=1217 WHERE `entry`=31934;
+UPDATE `creature_template` SET `faction_A`=1217, `faction_H`=1217 WHERE `entry`=37252;
+UPDATE `creature_template` SET `faction_A`=85, `faction_H`=85 WHERE `entry`=31962;
+UPDATE `creature_template` SET `faction_A`=85, `faction_H`=85 WHERE `entry`=31943;
+UPDATE `creature_template` SET `faction_A`=85, `faction_H`=85, `unit_class`=2 WHERE `entry`=37363;
+UPDATE `creature_template` SET `faction_A`=1872, `faction_H`=1872, `npcflag`=4225 WHERE `entry`=30799;
+UPDATE `creature_template` SET `faction_A`=1872, `faction_H`=1872, `npcflag`=129 WHERE `entry`=30797;
+UPDATE `creature_template` SET `faction_A`=1872, `faction_H`=1872, `npcflag`=129 WHERE `entry`=30801;
+UPDATE `creature_template` SET `faction_A`=1216, `faction_H`=1216, `npcflag`=3, `exp`=1 WHERE `entry`=31954;
diff --git a/sql/updates/world/2014_04_27_10_world_creature_template.sql b/sql/updates/world/2014_04_27_10_world_creature_template.sql
new file mode 100644
index 00000000000..f251bdd51aa
--- /dev/null
+++ b/sql/updates/world/2014_04_27_10_world_creature_template.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `creature_template` DROP `faction_H`;
+ALTER TABLE `creature_template` CHANGE `faction_A` `faction` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0';
diff --git a/sql/updates/world/2014_04_28_00_world_creature_template.sql b/sql/updates/world/2014_04_28_00_world_creature_template.sql
new file mode 100644
index 00000000000..58b078b9182
--- /dev/null
+++ b/sql/updates/world/2014_04_28_00_world_creature_template.sql
@@ -0,0 +1,88 @@
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=37611;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=37610;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=35353;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=35354;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=35355;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=35356;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=35357;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=35358;
+UPDATE `creature_template` SET `faction`=16 WHERE `entry`=34276;
+UPDATE `creature_template` SET `faction`=16 WHERE `entry`=33839;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=33942;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=33815;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=33730;
+UPDATE `creature_template` SET `faction`=16 WHERE `entry`=34277;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=34131;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=33396;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31956;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37274;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31952;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=31959;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=37277;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31992;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37311;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37301;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=32000;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=37319;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=32010;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=37329;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=32023;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=37343;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=32002;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=37321;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32009;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37328;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31969;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37288;
+UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31971;
+UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37290;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37295;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=37238;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31961;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31987;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37306;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=31931;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=37249;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=31973;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31993;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37312;
+UPDATE `creature_template` SET `faction`=29 WHERE `entry`=31945;
+UPDATE `creature_template` SET `faction`=29 WHERE `entry`=37263;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=31944;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=37262;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=31940;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=37258;
+UPDATE `creature_template` SET `faction`=29 WHERE `entry`=31939;
+UPDATE `creature_template` SET `faction`=29 WHERE `entry`=37257;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=37341;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31990;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37309;
+UPDATE `creature_template` SET `faction`=29 WHERE `entry`=32044;
+UPDATE `creature_template` SET `faction`=32 WHERE `entry`=37245;
+UPDATE `creature_template` SET `faction`=29 WHERE `entry`=31930;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31984;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37303;
+UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31953;
+UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31957;
+UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37275;
+UPDATE `creature_template` SET `faction`=1215 WHERE `entry`=37298;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31980;
+UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37272;
+UPDATE `creature_template` SET `faction`=1335 WHERE `entry`=37342;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31955;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31958;
+UPDATE `creature_template` SET `npcflag`=1048577 WHERE `entry`=37298;
+UPDATE `creature_template` SET `npcflag`=3 WHERE `entry`=31961;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=31980;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=31930;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=31943;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=31973;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=32044;
+UPDATE `creature_template` SET `npcflag`=3 WHERE `entry`=37272;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=31953;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37363;
+UPDATE `creature_template` SET `npcflag`=4226 WHERE `entry`=37342;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=31962;
+UPDATE `creature_template` SET `npcflag`=3 WHERE `entry`=31955;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=31958;
+UPDATE `creature_template` SET `npcflag`=1 WHERE `entry`=31952;
diff --git a/sql/updates/world/2014_04_28_01_world_creature_template.sql b/sql/updates/world/2014_04_28_01_world_creature_template.sql
new file mode 100644
index 00000000000..0bdd9657c65
--- /dev/null
+++ b/sql/updates/world/2014_04_28_01_world_creature_template.sql
@@ -0,0 +1,24 @@
+UPDATE `creature_template` SET `difficulty_entry_3`=37292 WHERE `entry`=13446;
+UPDATE `creature_template` SET `difficulty_entry_3`=37276 WHERE `entry`=13153;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37279;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37299;
+UPDATE `creature_template` SET `npcflag`=3 WHERE `entry`=37279;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37299;
+UPDATE `creature_template` SET `faction`=29 WHERE `entry`=37248;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37248;
+UPDATE `creature_template` SET `faction`=85 WHERE `entry`=37261;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37261;
+UPDATE `creature_template` SET `faction`=29 WHERE `entry`=37365;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37365;
+UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37271;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37271;
+UPDATE `creature_template` SET `faction`=85 WHERE `entry`=37280;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37280;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37273;
+UPDATE `creature_template` SET `npcflag`=3 WHERE `entry`=37273;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37270;
+UPDATE `creature_template` SET `npcflag`=1 WHERE `entry`=37270;
+UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37276;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37276;
+UPDATE `creature_template` SET `faction`=14 WHERE `entry`=37292;
+UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37292;
diff --git a/sql/updates/world/2014_04_28_02_world_creature_template.sql b/sql/updates/world/2014_04_28_02_world_creature_template.sql
new file mode 100644
index 00000000000..f01b87d53ff
--- /dev/null
+++ b/sql/updates/world/2014_04_28_02_world_creature_template.sql
@@ -0,0 +1,11 @@
+--
+UPDATE `creature_template` SET `minlevel`=80, `maxlevel`=80, `exp`=2 WHERE `entry`=37610;
+UPDATE `creature_template` SET `minlevel`=80, `maxlevel`=80, `exp`=2 WHERE `entry`=35425;
+UPDATE `creature_template` SET `minlevel`=82, `maxlevel`=82, `exp`=2 WHERE `entry`=35353;
+UPDATE `creature_template` SET `minlevel`=82, `maxlevel`=82, `exp`=2 WHERE `entry`=35354;
+UPDATE `creature_template` SET `minlevel`=82, `maxlevel`=82, `exp`=2 WHERE `entry`=35355;
+UPDATE `creature_template` SET `minlevel`=82, `maxlevel`=82, `exp`=2 WHERE `entry`=35356;
+UPDATE `creature_template` SET `minlevel`=82, `maxlevel`=82, `exp`=2 WHERE `entry`=35357;
+UPDATE `creature_template` SET `minlevel`=82, `maxlevel`=82, `exp`=2 WHERE `entry`=35358;
+UPDATE `creature_template` SET `exp`=1 WHERE `entry`=37272;
+UPDATE `creature_template` SET `exp`=2 WHERE `entry`=25389;
diff --git a/sql/updates/world/2014_04_28_03_world_command.sql b/sql/updates/world/2014_04_28_03_world_command.sql
new file mode 100644
index 00000000000..85d17f87fb6
--- /dev/null
+++ b/sql/updates/world/2014_04_28_03_world_command.sql
@@ -0,0 +1,10 @@
+DELETE FROM `command` WHERE `permission` IN (631,632,633,634,635,636,637,638,639,640);
+INSERT INTO `command` (`name`, `permission`, `help`) VALUES
+('reload creature_linked_respawn', 633, 'Syntax: .reload creature_linked_respawn\r\nReload creature_linked_respawn table.'),
+('reload creature_loot_template', 634, 'Syntax: .reload creature_loot_template\nReload creature_loot_template table.'),
+('reload creature_onkill_reputation', 635, 'Syntax: .reload creature_onkill_reputation\r\nReload creature_onkill_reputation table.'),
+('reload creature_questender', 636, 'Syntax: .reload creature_questender\nReload creature_questender table.'),
+('reload creature_queststarter', 637, 'Syntax: .reload creature_queststarter\nReload creature_queststarter table.'),
+('reload creature_summon_groups', 638, 'Syntax: .reload creature_summon_groups\nReload creature_summon_groups table.'),
+('reload creature_template', 639, 'Syntax: .reload creature_template $entry\r\nReload the specified creature''s template.'),
+('reload creature_text', 640, 'Syntax: .reload creature_text\nReload creature_text Table.');
diff --git a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
index 43596ffb4cb..d06f90c1aeb 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
@@ -166,7 +166,7 @@ void npc_escortAI::JustRespawned()
//add a small delay before going to first waypoint, normal in near all cases
m_uiWPWaitTimer = 2500;
- if (me->getFaction() != me->GetCreatureTemplate()->faction_A)
+ if (me->getFaction() != me->GetCreatureTemplate()->faction)
me->RestoreFaction();
Reset();
diff --git a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
index df6bee51642..a106c98c786 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
@@ -165,8 +165,8 @@ void FollowerAI::JustRespawned()
if (!IsCombatMovementAllowed())
SetCombatMovement(true);
- if (me->getFaction() != me->GetCreatureTemplate()->faction_A)
- me->setFaction(me->GetCreatureTemplate()->faction_A);
+ if (me->getFaction() != me->GetCreatureTemplate()->faction)
+ me->setFaction(me->GetCreatureTemplate()->faction);
Reset();
}
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index 521f39171af..098f3130fed 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -532,7 +532,7 @@ void SmartAI::JustRespawned()
mDespawnState = 0;
mEscortState = SMART_ESCORT_NONE;
me->SetVisible(true);
- if (me->getFaction() != me->GetCreatureTemplate()->faction_A)
+ if (me->getFaction() != me->GetCreatureTemplate()->faction)
me->RestoreFaction();
GetScript()->ProcessEventsFor(SMART_EVENT_RESPAWN);
mJustReset = true;
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index a0e516ca819..1032af57460 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -261,11 +261,11 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
{
if (CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate((*itr)->ToCreature()->GetEntry()))
{
- if ((*itr)->ToCreature()->getFaction() != ci->faction_A)
+ if ((*itr)->ToCreature()->getFaction() != ci->faction)
{
- (*itr)->ToCreature()->setFaction(ci->faction_A);
+ (*itr)->ToCreature()->setFaction(ci->faction);
TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_SET_FACTION: Creature entry %u, GuidLow %u set faction to %u",
- (*itr)->GetEntry(), (*itr)->GetGUIDLow(), ci->faction_A);
+ (*itr)->GetEntry(), (*itr)->GetGUIDLow(), ci->faction);
}
}
}
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
index 29d80f5fa6b..f4699f0519e 100644
--- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
+++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
@@ -702,7 +702,7 @@ bool AuctionEntry::LoadFromDB(Field* fields)
return false;
}
- factionTemplateId = auctioneerInfo->faction_A;
+ factionTemplateId = auctioneerInfo->faction;
auctionHouseEntry = AuctionHouseMgr::GetAuctionHouseEntry(factionTemplateId);
if (!auctionHouseEntry)
{
@@ -825,7 +825,7 @@ bool AuctionEntry::LoadFromFieldList(Field* fields)
return false;
}
- factionTemplateId = auctioneerInfo->faction_A;
+ factionTemplateId = auctioneerInfo->faction;
auctionHouseEntry = AuctionHouseMgr::GetAuctionHouseEntry(factionTemplateId);
if (!auctionHouseEntry)
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
index 72ffddadf56..c057591e4eb 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
@@ -569,7 +569,7 @@ void BattlegroundSA::ProcessEvent(WorldObject* obj, uint32 eventId, WorldObject*
if (Creature* c = obj->FindNearestCreature(NPC_WORLD_TRIGGER, 500.0f))
SendChatMessage(c, gate->DamagedText, invoker);
- PlaySoundToAll(Attackers == ALLIANCE ? SOUND_WALL_ATTACKED_ALLIANCE : SOUND_WALL_ATTACKED_HORDE);
+ PlaySoundToAll(Attackers == TEAM_ALLIANCE ? SOUND_WALL_ATTACKED_ALLIANCE : SOUND_WALL_ATTACKED_HORDE);
}
// destroyed
else if (eventId == go->GetGOInfo()->building.destroyedEvent)
@@ -617,7 +617,7 @@ void BattlegroundSA::ProcessEvent(WorldObject* obj, uint32 eventId, WorldObject*
if (Creature* c = obj->FindNearestCreature(NPC_WORLD_TRIGGER, 500.0f))
SendChatMessage(c, gate->DestroyedText, invoker);
- PlaySoundToAll(Attackers == ALLIANCE ? SOUND_WALL_DESTROYED_ALLIANCE : SOUND_WALL_DESTROYED_HORDE);
+ PlaySoundToAll(Attackers == TEAM_ALLIANCE ? SOUND_WALL_DESTROYED_ALLIANCE : SOUND_WALL_DESTROYED_HORDE);
}
else
break;
@@ -681,7 +681,7 @@ void BattlegroundSA::DemolisherStartState(bool start)
}
}
-void BattlegroundSA::DestroyGate(Player* player, GameObject* go)
+void BattlegroundSA::DestroyGate(Player* /*player*/, GameObject* /*go*/)
{
}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.h b/src/server/game/Battlegrounds/Zones/BattlegroundSA.h
index 2a5c8fc15e4..8e3c933f893 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.h
@@ -20,6 +20,7 @@
#define __BATTLEGROUNDSA_H
#include "Battleground.h"
+#include "Object.h"
struct BattlegroundSAScore : public BattlegroundScore
{
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 58a55d263df..0a02339adfa 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -367,10 +367,7 @@ bool Creature::UpdateEntry(uint32 Entry, uint32 team, const CreatureData* data)
if (!GetCreatureAddon())
SetSheath(SHEATH_STATE_MELEE);
- if (team == HORDE)
- setFaction(cInfo->faction_H);
- else
- setFaction(cInfo->faction_A);
+ setFaction(cInfo->faction);
uint32 npcflag, unit_flags, dynamicflags;
ObjectMgr::ChooseCreatureFlags(cInfo, npcflag, unit_flags, dynamicflags, data);
@@ -408,7 +405,7 @@ bool Creature::UpdateEntry(uint32 Entry, uint32 team, const CreatureData* data)
UpdateAllStats();
// checked and error show at loading templates
- if (FactionTemplateEntry const* factionTemplate = sFactionTemplateStore.LookupEntry(cInfo->faction_A))
+ if (FactionTemplateEntry const* factionTemplate = sFactionTemplateStore.LookupEntry(cInfo->faction))
{
if (factionTemplate->factionFlags & FACTION_TEMPLATE_FLAG_PVP)
SetPvP(true);
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index 69c3d169170..e702df51637 100644
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -88,8 +88,7 @@ struct CreatureTemplate
uint8 minlevel;
uint8 maxlevel;
uint32 expansion;
- uint32 faction_A;
- uint32 faction_H;
+ uint32 faction;
uint32 npcflag;
float speed_walk;
float speed_run;
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index 3d308ee88c1..7bd253ab704 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -33,6 +33,7 @@
#define INTERACTION_DISTANCE 5.0f
#define ATTACK_DISTANCE 5.0f
#define INSPECT_DISTANCE 28.0f
+#define TRADE_DISTANCE 11.11f
#define MAX_VISIBILITY_DISTANCE SIZE_OF_GRIDS // max distance for visible objects
#define SIGHT_RANGE_UNIT 50.0f
#define DEFAULT_VISIBILITY_DISTANCE 90.0f // default visible distance, 90 yards on continents
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 11f1050684b..ecea7104c5e 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -6764,9 +6764,6 @@ bool Player::UpdatePosition(float x, float y, float z, float orientation, bool t
if (GetGroup())
SetGroupUpdateFlag(GROUP_UPDATE_FLAG_POSITION);
- if (GetTrader() && !IsWithinDistInMap(GetTrader(), INTERACTION_DISTANCE))
- GetSession()->SendCancelTrade();
-
CheckAreaExploreAndOutdoor();
return true;
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index a6871cd9906..91c25a0f069 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -15952,10 +15952,7 @@ void Unit::RestoreFaction()
}
if (CreatureTemplate const* cinfo = ToCreature()->GetCreatureTemplate()) // normal creature
- {
- FactionTemplateEntry const* faction = GetFactionTemplateEntry();
- setFaction((faction && faction->friendlyMask & 0x004) ? cinfo->faction_H : cinfo->faction_A);
- }
+ setFaction(cinfo->faction);
}
}
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index fce89b22b53..454ab920531 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -396,7 +396,7 @@ void ObjectMgr::LoadCreatureTemplates()
// 0 1 2 3 4 5 6 7 8
QueryResult result = WorldDatabase.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 20 21
- "modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, faction_A, faction_H, npcflag, speed_walk, speed_run, "
+ "modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, faction, npcflag, speed_walk, speed_run, "
// 22 23 24 25 26 27 28 29 30 31 32 33
"scale, rank, mindmg, maxdmg, dmgschool, attackpower, dmg_multiplier, baseattacktime, rangeattacktime, unit_class, unit_flags, unit_flags2, "
// 34 35 36 37 38 39 40 41 42 43
@@ -447,65 +447,64 @@ void ObjectMgr::LoadCreatureTemplates()
creatureTemplate.minlevel = fields[14].GetUInt8();
creatureTemplate.maxlevel = fields[15].GetUInt8();
creatureTemplate.expansion = uint32(fields[16].GetInt16());
- creatureTemplate.faction_A = uint32(fields[17].GetUInt16());
- creatureTemplate.faction_H = uint32(fields[18].GetUInt16());
- creatureTemplate.npcflag = fields[19].GetUInt32();
- creatureTemplate.speed_walk = fields[20].GetFloat();
- creatureTemplate.speed_run = fields[21].GetFloat();
- creatureTemplate.scale = fields[22].GetFloat();
- creatureTemplate.rank = uint32(fields[23].GetUInt8());
- creatureTemplate.mindmg = fields[24].GetFloat();
- creatureTemplate.maxdmg = fields[25].GetFloat();
- creatureTemplate.dmgschool = uint32(fields[26].GetInt8());
- creatureTemplate.attackpower = fields[27].GetUInt32();
- creatureTemplate.dmg_multiplier = fields[28].GetFloat();
- creatureTemplate.baseattacktime = fields[29].GetUInt32();
- creatureTemplate.rangeattacktime = fields[30].GetUInt32();
- creatureTemplate.unit_class = uint32(fields[31].GetUInt8());
- creatureTemplate.unit_flags = fields[32].GetUInt32();
- creatureTemplate.unit_flags2 = fields[33].GetUInt32();
- creatureTemplate.dynamicflags = fields[34].GetUInt32();
- creatureTemplate.family = uint32(fields[35].GetUInt8());
- creatureTemplate.trainer_type = uint32(fields[36].GetUInt8());
- creatureTemplate.trainer_spell = fields[37].GetUInt32();
- creatureTemplate.trainer_class = uint32(fields[38].GetUInt8());
- creatureTemplate.trainer_race = uint32(fields[39].GetUInt8());
- creatureTemplate.minrangedmg = fields[40].GetFloat();
- creatureTemplate.maxrangedmg = fields[41].GetFloat();
- creatureTemplate.rangedattackpower = uint32(fields[42].GetUInt16());
- creatureTemplate.type = uint32(fields[43].GetUInt8());
- creatureTemplate.type_flags = fields[44].GetUInt32();
- creatureTemplate.lootid = fields[45].GetUInt32();
- creatureTemplate.pickpocketLootId = fields[46].GetUInt32();
- creatureTemplate.SkinLootId = fields[47].GetUInt32();
+ creatureTemplate.faction = uint32(fields[17].GetUInt16());
+ creatureTemplate.npcflag = fields[18].GetUInt32();
+ creatureTemplate.speed_walk = fields[19].GetFloat();
+ creatureTemplate.speed_run = fields[20].GetFloat();
+ creatureTemplate.scale = fields[21].GetFloat();
+ creatureTemplate.rank = uint32(fields[22].GetUInt8());
+ creatureTemplate.mindmg = fields[23].GetFloat();
+ creatureTemplate.maxdmg = fields[24].GetFloat();
+ creatureTemplate.dmgschool = uint32(fields[25].GetInt8());
+ creatureTemplate.attackpower = fields[26].GetUInt32();
+ creatureTemplate.dmg_multiplier = fields[27].GetFloat();
+ creatureTemplate.baseattacktime = fields[28].GetUInt32();
+ creatureTemplate.rangeattacktime = fields[29].GetUInt32();
+ creatureTemplate.unit_class = uint32(fields[30].GetUInt8());
+ creatureTemplate.unit_flags = fields[31].GetUInt32();
+ creatureTemplate.unit_flags2 = fields[32].GetUInt32();
+ creatureTemplate.dynamicflags = fields[33].GetUInt32();
+ creatureTemplate.family = uint32(fields[34].GetUInt8());
+ creatureTemplate.trainer_type = uint32(fields[35].GetUInt8());
+ creatureTemplate.trainer_spell = fields[36].GetUInt32();
+ creatureTemplate.trainer_class = uint32(fields[37].GetUInt8());
+ creatureTemplate.trainer_race = uint32(fields[38].GetUInt8());
+ creatureTemplate.minrangedmg = fields[39].GetFloat();
+ creatureTemplate.maxrangedmg = fields[40].GetFloat();
+ creatureTemplate.rangedattackpower = uint32(fields[41].GetUInt16());
+ creatureTemplate.type = uint32(fields[42].GetUInt8());
+ creatureTemplate.type_flags = fields[43].GetUInt32();
+ creatureTemplate.lootid = fields[44].GetUInt32();
+ creatureTemplate.pickpocketLootId = fields[45].GetUInt32();
+ creatureTemplate.SkinLootId = fields[46].GetUInt32();
for (uint8 i = SPELL_SCHOOL_HOLY; i < MAX_SPELL_SCHOOL; ++i)
- creatureTemplate.resistance[i] = fields[48 + i -1].GetInt16();
+ creatureTemplate.resistance[i] = fields[47 + i -1].GetInt16();
for (uint8 i = 0; i < CREATURE_MAX_SPELLS; ++i)
- creatureTemplate.spells[i] = fields[54 + i].GetUInt32();
-
- creatureTemplate.PetSpellDataId = fields[62].GetUInt32();
- creatureTemplate.VehicleId = fields[63].GetUInt32();
- creatureTemplate.mingold = fields[64].GetUInt32();
- creatureTemplate.maxgold = fields[65].GetUInt32();
- creatureTemplate.AIName = fields[66].GetString();
- creatureTemplate.MovementType = uint32(fields[67].GetUInt8());
- creatureTemplate.InhabitType = uint32(fields[68].GetUInt8());
- creatureTemplate.HoverHeight = fields[69].GetFloat();
- creatureTemplate.ModHealth = fields[70].GetFloat();
- creatureTemplate.ModMana = fields[71].GetFloat();
- creatureTemplate.ModArmor = fields[72].GetFloat();
- creatureTemplate.RacialLeader = fields[73].GetBool();
+ creatureTemplate.spells[i] = fields[53 + i].GetUInt32();
+
+ creatureTemplate.PetSpellDataId = fields[61].GetUInt32();
+ creatureTemplate.VehicleId = fields[62].GetUInt32();
+ creatureTemplate.mingold = fields[63].GetUInt32();
+ creatureTemplate.maxgold = fields[64].GetUInt32();
+ creatureTemplate.AIName = fields[65].GetString();
+ creatureTemplate.MovementType = uint32(fields[66].GetUInt8());
+ creatureTemplate.InhabitType = uint32(fields[67].GetUInt8());
+ creatureTemplate.HoverHeight = fields[68].GetFloat();
+ creatureTemplate.ModHealth = fields[69].GetFloat();
+ creatureTemplate.ModMana = fields[70].GetFloat();
+ creatureTemplate.ModArmor = fields[71].GetFloat();
+ creatureTemplate.RacialLeader = fields[72].GetBool();
for (uint8 i = 0; i < MAX_CREATURE_QUEST_ITEMS; ++i)
- creatureTemplate.questItems[i] = fields[74 + i].GetUInt32();
+ creatureTemplate.questItems[i] = fields[73 + i].GetUInt32();
- creatureTemplate.movementId = fields[80].GetUInt32();
- creatureTemplate.RegenHealth = fields[81].GetBool();
- creatureTemplate.MechanicImmuneMask = fields[82].GetUInt32();
- creatureTemplate.flags_extra = fields[83].GetUInt32();
- creatureTemplate.ScriptID = GetScriptId(fields[84].GetCString());
+ creatureTemplate.movementId = fields[79].GetUInt32();
+ creatureTemplate.RegenHealth = fields[80].GetBool();
+ creatureTemplate.MechanicImmuneMask = fields[81].GetUInt32();
+ creatureTemplate.flags_extra = fields[82].GetUInt32();
+ creatureTemplate.ScriptID = GetScriptId(fields[83].GetCString());
++count;
}
@@ -637,37 +636,51 @@ void ObjectMgr::CheckCreatureTemplate(CreatureTemplate const* cInfo)
}
ok2 = true;
}
+
if (!ok2)
continue;
if (cInfo->expansion > difficultyInfo->expansion)
{
- TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, expansion %u) has different `expansion` in difficulty %u mode (Entry: %u, expansion %u).",
+ TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, exp %u) has different `exp` in difficulty %u mode (Entry: %u, exp %u).",
cInfo->Entry, cInfo->expansion, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->expansion);
}
- if (cInfo->faction_A != difficultyInfo->faction_A)
+ if (cInfo->minlevel > difficultyInfo->minlevel)
+ {
+ TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, minlevel %u) has different `minlevel` in difficulty %u mode (Entry: %u, minlevel %u).",
+ cInfo->Entry, cInfo->minlevel, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->minlevel);
+ }
+
+ if (cInfo->maxlevel > difficultyInfo->maxlevel)
{
- TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, faction_A %u) has different `faction_A` in difficulty %u mode (Entry: %u, faction_A %u).",
- cInfo->Entry, cInfo->faction_A, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->faction_A);
+ TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, maxlevel %u) has different `maxlevel` in difficulty %u mode (Entry: %u, maxlevel %u).",
+ cInfo->Entry, cInfo->maxlevel, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->maxlevel);
}
- if (cInfo->faction_H != difficultyInfo->faction_H)
+ if (cInfo->faction != difficultyInfo->faction)
{
- TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, faction_H %u) has different `faction_H` in difficulty %u mode (Entry: %u, faction_H %u).",
- cInfo->Entry, cInfo->faction_H, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->faction_H);
+ TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, faction %u) has different `faction` in difficulty %u mode (Entry: %u, faction %u).",
+ cInfo->Entry, cInfo->faction, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->faction);
+ TC_LOG_ERROR("sql.sql", "Possible FIX: UPDATE `creature_template` SET `faction`=%u WHERE `entry`=%u;",
+ cInfo->faction, cInfo->DifficultyEntry[diff]);
}
if (cInfo->unit_class != difficultyInfo->unit_class)
{
TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, class %u) has different `unit_class` in difficulty %u mode (Entry: %u, class %u).",
cInfo->Entry, cInfo->unit_class, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->unit_class);
+ TC_LOG_ERROR("sql.sql", "Possible FIX: UPDATE `creature_template` SET `unit_class`=%u WHERE `entry`=%u;",
+ cInfo->unit_class, cInfo->DifficultyEntry[diff]);
continue;
}
if (cInfo->npcflag != difficultyInfo->npcflag)
{
- TC_LOG_ERROR("sql.sql", "Creature (Entry: %u) has different `npcflag` in difficulty %u mode (Entry: %u).", cInfo->Entry, diff + 1, cInfo->DifficultyEntry[diff]);
+ TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, `npcflag`: %u) has different `npcflag` in difficulty %u mode (Entry: %u, `npcflag`: %u).",
+ cInfo->Entry, cInfo->npcflag, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->npcflag);
+ TC_LOG_ERROR("sql.sql", "Possible FIX: UPDATE `creature_template` SET `npcflag`=%u WHERE `entry`=%u;",
+ cInfo->npcflag, cInfo->DifficultyEntry[diff]);
continue;
}
@@ -675,23 +688,34 @@ void ObjectMgr::CheckCreatureTemplate(CreatureTemplate const* cInfo)
{
TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, family %u) has different `family` in difficulty %u mode (Entry: %u, family %u).",
cInfo->Entry, cInfo->family, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->family);
+ TC_LOG_ERROR("sql.sql", "Possible FIX: UPDATE `creature_template` SET `family`=%u WHERE `entry`=%u;",
+ cInfo->family, cInfo->DifficultyEntry[diff]);
}
if (cInfo->trainer_class != difficultyInfo->trainer_class)
{
- TC_LOG_ERROR("sql.sql", "Creature (Entry: %u) has different `trainer_class` in difficulty %u mode (Entry: %u).", cInfo->Entry, diff + 1, cInfo->DifficultyEntry[diff]);
+ TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, trainer_class: %u) has different `trainer_class` in difficulty %u mode (Entry: %u, trainer_class: %u).",
+ cInfo->Entry, cInfo->trainer_class, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->trainer_class);
+ TC_LOG_ERROR("sql.sql", "Possible FIX: UPDATE `creature_template` SET `trainer_class`=%u WHERE `entry`=%u;",
+ cInfo->trainer_class, cInfo->DifficultyEntry[diff]);
continue;
}
if (cInfo->trainer_race != difficultyInfo->trainer_race)
{
- TC_LOG_ERROR("sql.sql", "Creature (Entry: %u) has different `trainer_race` in difficulty %u mode (Entry: %u).", cInfo->Entry, diff + 1, cInfo->DifficultyEntry[diff]);
+ TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, trainer_race: %u) has different `trainer_race` in difficulty %u mode (Entry: %u, trainer_race: %u).",
+ cInfo->Entry, cInfo->trainer_race, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->trainer_race);
+ TC_LOG_ERROR("sql.sql", "Possible FIX: UPDATE `creature_template` SET `trainer_race`=%u WHERE `entry`=%u;",
+ cInfo->trainer_race, cInfo->DifficultyEntry[diff]);
continue;
}
if (cInfo->trainer_type != difficultyInfo->trainer_type)
{
- TC_LOG_ERROR("sql.sql", "Creature (Entry: %u) has different `trainer_type` in difficulty %u mode (Entry: %u).", cInfo->Entry, diff + 1, cInfo->DifficultyEntry[diff]);
+ TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, trainer_type: %u) has different `trainer_type` in difficulty %u mode (Entry: %u, trainer_type: %u).",
+ cInfo->Entry, cInfo->trainer_type, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->trainer_type);
+ TC_LOG_ERROR("sql.sql", "Possible FIX: UPDATE `creature_template` SET `trainer_type`=%u WHERE `entry`=%u;",
+ cInfo->trainer_type, cInfo->DifficultyEntry[diff]);
continue;
}
@@ -705,6 +729,8 @@ void ObjectMgr::CheckCreatureTemplate(CreatureTemplate const* cInfo)
{
TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, type %u) has different `type` in difficulty %u mode (Entry: %u, type %u).",
cInfo->Entry, cInfo->type, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->type);
+ TC_LOG_ERROR("sql.sql", "Possible FIX: UPDATE `creature_template` SET `type`=%u WHERE `entry`=%u;",
+ cInfo->type, cInfo->DifficultyEntry[diff]);
}
if (!cInfo->VehicleId && difficultyInfo->VehicleId)
@@ -732,13 +758,9 @@ void ObjectMgr::CheckCreatureTemplate(CreatureTemplate const* cInfo)
ok = true;
}
- FactionTemplateEntry const* factionTemplate = sFactionTemplateStore.LookupEntry(cInfo->faction_A);
- if (!factionTemplate)
- TC_LOG_ERROR("sql.sql", "Creature (Entry: %u) has non-existing faction_A template (%u).", cInfo->Entry, cInfo->faction_A);
-
- factionTemplate = sFactionTemplateStore.LookupEntry(cInfo->faction_H);
+ FactionTemplateEntry const* factionTemplate = sFactionTemplateStore.LookupEntry(cInfo->faction);
if (!factionTemplate)
- TC_LOG_ERROR("sql.sql", "Creature (Entry: %u) has non-existing faction_H template (%u).", cInfo->Entry, cInfo->faction_H);
+ TC_LOG_ERROR("sql.sql", "Creature (Entry: %u) has non-existing faction template (%u).", cInfo->Entry, cInfo->faction);
// used later for scale
CreatureDisplayInfoEntry const* displayScaleEntry = NULL;
diff --git a/src/server/game/Handlers/TradeHandler.cpp b/src/server/game/Handlers/TradeHandler.cpp
index 28a511ad9d3..4372de9eafe 100644
--- a/src/server/game/Handlers/TradeHandler.cpp
+++ b/src/server/game/Handlers/TradeHandler.cpp
@@ -276,6 +276,13 @@ void WorldSession::HandleAcceptTradeOpcode(WorldPacket& /*recvPacket*/)
// set before checks for propertly undo at problems (it already set in to client)
my_trade->SetAccepted(true);
+ if (!_player->IsWithinDistInMap(trader, TRADE_DISTANCE, false))
+ {
+ SendTradeStatus(TRADE_STATUS_TARGET_TO_FAR);
+ my_trade->SetAccepted(false);
+ return;
+ }
+
// not accept case incorrect money amount
if (!_player->HasEnoughMoney(my_trade->GetMoney()))
{
@@ -648,7 +655,7 @@ void WorldSession::HandleInitiateTradeOpcode(WorldPacket& recvPacket)
return;
}
- if (!pOther->IsWithinDistInMap(_player, 10.0f, false))
+ if (!pOther->IsWithinDistInMap(_player, TRADE_DISTANCE, false))
{
SendTradeStatus(TRADE_STATUS_TARGET_TO_FAR);
return;
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index b87524357d2..0175c685076 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -6099,7 +6099,7 @@ void AuraEffect::HandlePeriodicHealAurasTick(Unit* target, Unit* caster) const
uint32 procVictim = PROC_FLAG_TAKEN_PERIODIC;
uint32 procEx = (crit ? PROC_EX_CRITICAL_HIT : PROC_EX_NORMAL_HIT) | PROC_EX_INTERNAL_HOT;
// ignore item heals
- if (!haveCastItem)
+ if (!haveCastItem && GetAuraType() != SPELL_AURA_OBS_MOD_HEALTH)
caster->ProcDamageAndSpell(target, procAttacker, procVictim, procEx, damage, BASE_ATTACK, GetSpellInfo());
}
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 0342b22d735..548685b9bb6 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -813,7 +813,7 @@ bool SpellMgr::IsSpellProcEventCanTriggeredBy(SpellProcEventEntry const* spellPr
return true;
/// Any aura that has only PROC_FLAG_DONE_PERIODIC or PROC_FLAG_TAKEN_PERIODIC should always proc, if procSpell is correct or not is checked in Unit::HandleAuraProc
- if (EventProcFlag == PROC_FLAG_DONE_PERIODIC || EventProcFlag == PROC_FLAG_TAKEN_PERIODIC)
+ if ((EventProcFlag == PROC_FLAG_DONE_PERIODIC && procFlags == PROC_FLAG_DONE_PERIODIC) || (EventProcFlag == PROC_FLAG_TAKEN_PERIODIC && procFlags == PROC_FLAG_TAKEN_PERIODIC))
return true;
if (procFlags & PROC_FLAG_DONE_PERIODIC && EventProcFlag & PROC_FLAG_DONE_PERIODIC)
diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp
index 77592ab4a8e..72aaa17394f 100644
--- a/src/server/game/Texts/CreatureTextMgr.cpp
+++ b/src/server/game/Texts/CreatureTextMgr.cpp
@@ -82,7 +82,7 @@ void CreatureTextMgr::LoadCreatureTexts()
if (!result)
{
- TC_LOG_INFO("server.loading", ">> Loaded 0 ceature texts. DB table `creature_texts` is empty.");
+ TC_LOG_INFO("server.loading", ">> Loaded 0 ceature texts. DB table `creature_text` is empty.");
return;
}
@@ -111,20 +111,20 @@ void CreatureTextMgr::LoadCreatureTexts()
{
if (!sSoundEntriesStore.LookupEntry(temp.sound))
{
- TC_LOG_ERROR("sql.sql", "CreatureTextMgr: Entry %u, Group %u in table `creature_texts` has Sound %u but sound does not exist.", temp.entry, temp.group, temp.sound);
+ TC_LOG_ERROR("sql.sql", "CreatureTextMgr: Entry %u, Group %u in table `creature_text` has Sound %u but sound does not exist.", temp.entry, temp.group, temp.sound);
temp.sound = 0;
}
}
if (!GetLanguageDescByID(temp.lang))
{
- TC_LOG_ERROR("sql.sql", "CreatureTextMgr: Entry %u, Group %u in table `creature_texts` using Language %u but Language does not exist.", temp.entry, temp.group, uint32(temp.lang));
+ TC_LOG_ERROR("sql.sql", "CreatureTextMgr: Entry %u, Group %u in table `creature_text` using Language %u but Language does not exist.", temp.entry, temp.group, uint32(temp.lang));
temp.lang = LANG_UNIVERSAL;
}
if (temp.type >= MAX_CHAT_MSG_TYPE)
{
- TC_LOG_ERROR("sql.sql", "CreatureTextMgr: Entry %u, Group %u in table `creature_texts` has Type %u but this Chat Type does not exist.", temp.entry, temp.group, uint32(temp.type));
+ TC_LOG_ERROR("sql.sql", "CreatureTextMgr: Entry %u, Group %u in table `creature_text` has Type %u but this Chat Type does not exist.", temp.entry, temp.group, uint32(temp.type));
temp.type = CHAT_MSG_SAY;
}
@@ -132,7 +132,7 @@ void CreatureTextMgr::LoadCreatureTexts()
{
if (!sEmotesStore.LookupEntry(temp.emote))
{
- TC_LOG_ERROR("sql.sql", "CreatureTextMgr: Entry %u, Group %u in table `creature_texts` has Emote %u but emote does not exist.", temp.entry, temp.group, uint32(temp.emote));
+ TC_LOG_ERROR("sql.sql", "CreatureTextMgr: Entry %u, Group %u in table `creature_text` has Emote %u but emote does not exist.", temp.entry, temp.group, uint32(temp.emote));
temp.emote = EMOTE_ONESHOT_NONE;
}
}
@@ -141,7 +141,7 @@ void CreatureTextMgr::LoadCreatureTexts()
{
if (!sObjectMgr->GetBroadcastText(temp.BroadcastTextId))
{
- TC_LOG_ERROR("sql.sql", "CreatureTextMgr: Entry %u, Group %u, Id %u in table `creature_texts` has non-existing or incompatible BroadcastTextId %u.", temp.entry, temp.group, temp.id, temp.BroadcastTextId);
+ TC_LOG_ERROR("sql.sql", "CreatureTextMgr: Entry %u, Group %u, Id %u in table `creature_text` has non-existing or incompatible BroadcastTextId %u.", temp.entry, temp.group, temp.id, temp.BroadcastTextId);
temp.BroadcastTextId = 0;
}
}
diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp
index a5b13301403..9856a77b61f 100644
--- a/src/server/scripts/Commands/cs_npc.cpp
+++ b/src/server/scripts/Commands/cs_npc.cpp
@@ -596,17 +596,13 @@ public:
// Update in memory..
if (CreatureTemplate const* cinfo = creature->GetCreatureTemplate())
- {
- const_cast<CreatureTemplate*>(cinfo)->faction_A = factionId;
- const_cast<CreatureTemplate*>(cinfo)->faction_H = factionId;
- }
+ const_cast<CreatureTemplate*>(cinfo)->faction = factionId;
// ..and DB
PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_FACTION);
stmt->setUInt16(0, uint16(factionId));
- stmt->setUInt16(1, uint16(factionId));
- stmt->setUInt32(2, creature->GetEntry());
+ stmt->setUInt32(1, creature->GetEntry());
WorldDatabase.Execute(stmt);
diff --git a/src/server/scripts/Commands/cs_reload.cpp b/src/server/scripts/Commands/cs_reload.cpp
index 4de697f2597..89dc08d5737 100644
--- a/src/server/scripts/Commands/cs_reload.cpp
+++ b/src/server/scripts/Commands/cs_reload.cpp
@@ -456,72 +456,71 @@ public:
cInfo->minlevel = fields[13].GetUInt8();
cInfo->maxlevel = fields[14].GetUInt8();
cInfo->expansion = fields[15].GetUInt16();
- cInfo->faction_A = fields[16].GetUInt16();
- cInfo->faction_H = fields[17].GetUInt16();
- cInfo->npcflag = fields[18].GetUInt32();
- cInfo->speed_walk = fields[19].GetFloat();
- cInfo->speed_run = fields[20].GetFloat();
- cInfo->scale = fields[21].GetFloat();
- cInfo->rank = fields[22].GetUInt8();
- cInfo->mindmg = fields[23].GetFloat();
- cInfo->maxdmg = fields[24].GetFloat();
- cInfo->dmgschool = fields[25].GetUInt8();
- cInfo->attackpower = fields[26].GetUInt32();
- cInfo->dmg_multiplier = fields[27].GetFloat();
- cInfo->baseattacktime = fields[28].GetUInt32();
- cInfo->rangeattacktime = fields[29].GetUInt32();
- cInfo->unit_class = fields[30].GetUInt8();
- cInfo->unit_flags = fields[31].GetUInt32();
- cInfo->unit_flags2 = fields[32].GetUInt32();
- cInfo->dynamicflags = fields[33].GetUInt32();
- cInfo->family = fields[34].GetUInt8();
- cInfo->trainer_type = fields[35].GetUInt8();
- cInfo->trainer_spell = fields[36].GetUInt32();
- cInfo->trainer_class = fields[37].GetUInt8();
- cInfo->trainer_race = fields[38].GetUInt8();
- cInfo->minrangedmg = fields[39].GetFloat();
- cInfo->maxrangedmg = fields[40].GetFloat();
- cInfo->rangedattackpower = fields[41].GetUInt16();
- cInfo->type = fields[42].GetUInt8();
- cInfo->type_flags = fields[43].GetUInt32();
- cInfo->lootid = fields[44].GetUInt32();
- cInfo->pickpocketLootId = fields[45].GetUInt32();
- cInfo->SkinLootId = fields[46].GetUInt32();
+ cInfo->faction = fields[16].GetUInt16();
+ cInfo->npcflag = fields[17].GetUInt32();
+ cInfo->speed_walk = fields[18].GetFloat();
+ cInfo->speed_run = fields[19].GetFloat();
+ cInfo->scale = fields[20].GetFloat();
+ cInfo->rank = fields[21].GetUInt8();
+ cInfo->mindmg = fields[22].GetFloat();
+ cInfo->maxdmg = fields[23].GetFloat();
+ cInfo->dmgschool = fields[24].GetUInt8();
+ cInfo->attackpower = fields[25].GetUInt32();
+ cInfo->dmg_multiplier = fields[26].GetFloat();
+ cInfo->baseattacktime = fields[27].GetUInt32();
+ cInfo->rangeattacktime = fields[28].GetUInt32();
+ cInfo->unit_class = fields[29].GetUInt8();
+ cInfo->unit_flags = fields[30].GetUInt32();
+ cInfo->unit_flags2 = fields[31].GetUInt32();
+ cInfo->dynamicflags = fields[32].GetUInt32();
+ cInfo->family = fields[33].GetUInt8();
+ cInfo->trainer_type = fields[34].GetUInt8();
+ cInfo->trainer_spell = fields[35].GetUInt32();
+ cInfo->trainer_class = fields[36].GetUInt8();
+ cInfo->trainer_race = fields[37].GetUInt8();
+ cInfo->minrangedmg = fields[38].GetFloat();
+ cInfo->maxrangedmg = fields[39].GetFloat();
+ cInfo->rangedattackpower = fields[40].GetUInt16();
+ cInfo->type = fields[41].GetUInt8();
+ cInfo->type_flags = fields[42].GetUInt32();
+ cInfo->lootid = fields[43].GetUInt32();
+ cInfo->pickpocketLootId = fields[44].GetUInt32();
+ cInfo->SkinLootId = fields[45].GetUInt32();
for (uint8 i = SPELL_SCHOOL_HOLY; i < MAX_SPELL_SCHOOL; ++i)
- cInfo->resistance[i] = fields[47 + i -1].GetUInt16();
-
- cInfo->spells[0] = fields[53].GetUInt32();
- cInfo->spells[1] = fields[54].GetUInt32();
- cInfo->spells[2] = fields[55].GetUInt32();
- cInfo->spells[3] = fields[56].GetUInt32();
- cInfo->spells[4] = fields[57].GetUInt32();
- cInfo->spells[5] = fields[58].GetUInt32();
- cInfo->spells[6] = fields[59].GetUInt32();
- cInfo->spells[7] = fields[60].GetUInt32();
- cInfo->PetSpellDataId = fields[61].GetUInt32();
- cInfo->VehicleId = fields[62].GetUInt32();
- cInfo->mingold = fields[63].GetUInt32();
- cInfo->maxgold = fields[64].GetUInt32();
- cInfo->AIName = fields[65].GetString();
- cInfo->MovementType = fields[66].GetUInt8();
- cInfo->InhabitType = fields[67].GetUInt8();
- cInfo->HoverHeight = fields[68].GetFloat();
- cInfo->ModHealth = fields[69].GetFloat();
- cInfo->ModMana = fields[70].GetFloat();
- cInfo->ModArmor = fields[71].GetFloat();
- cInfo->RacialLeader = fields[72].GetBool();
- cInfo->questItems[0] = fields[73].GetUInt32();
- cInfo->questItems[1] = fields[74].GetUInt32();
- cInfo->questItems[2] = fields[75].GetUInt32();
- cInfo->questItems[3] = fields[76].GetUInt32();
- cInfo->questItems[4] = fields[77].GetUInt32();
- cInfo->questItems[5] = fields[78].GetUInt32();
- cInfo->movementId = fields[79].GetUInt32();
- cInfo->RegenHealth = fields[80].GetBool();
- cInfo->MechanicImmuneMask = fields[81].GetUInt32();
- cInfo->flags_extra = fields[82].GetUInt32();
- cInfo->ScriptID = sObjectMgr->GetScriptId(fields[83].GetCString());
+ cInfo->resistance[i] = fields[46 + i -1].GetUInt16();
+
+ cInfo->spells[0] = fields[52].GetUInt32();
+ cInfo->spells[1] = fields[53].GetUInt32();
+ cInfo->spells[2] = fields[54].GetUInt32();
+ cInfo->spells[3] = fields[55].GetUInt32();
+ cInfo->spells[4] = fields[56].GetUInt32();
+ cInfo->spells[5] = fields[57].GetUInt32();
+ cInfo->spells[6] = fields[58].GetUInt32();
+ cInfo->spells[7] = fields[59].GetUInt32();
+ cInfo->PetSpellDataId = fields[60].GetUInt32();
+ cInfo->VehicleId = fields[61].GetUInt32();
+ cInfo->mingold = fields[62].GetUInt32();
+ cInfo->maxgold = fields[63].GetUInt32();
+ cInfo->AIName = fields[64].GetString();
+ cInfo->MovementType = fields[65].GetUInt8();
+ cInfo->InhabitType = fields[66].GetUInt8();
+ cInfo->HoverHeight = fields[67].GetFloat();
+ cInfo->ModHealth = fields[68].GetFloat();
+ cInfo->ModMana = fields[69].GetFloat();
+ cInfo->ModArmor = fields[70].GetFloat();
+ cInfo->RacialLeader = fields[71].GetBool();
+ cInfo->questItems[0] = fields[72].GetUInt32();
+ cInfo->questItems[1] = fields[73].GetUInt32();
+ cInfo->questItems[2] = fields[74].GetUInt32();
+ cInfo->questItems[3] = fields[75].GetUInt32();
+ cInfo->questItems[4] = fields[76].GetUInt32();
+ cInfo->questItems[5] = fields[77].GetUInt32();
+ cInfo->movementId = fields[78].GetUInt32();
+ cInfo->RegenHealth = fields[79].GetBool();
+ cInfo->MechanicImmuneMask = fields[80].GetUInt32();
+ cInfo->flags_extra = fields[81].GetUInt32();
+ cInfo->ScriptID = sObjectMgr->GetScriptId(fields[82].GetCString());
sObjectMgr->CheckCreatureTemplate(cInfo);
}
diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp
index 6e39d341c58..770a95c23d7 100644
--- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp
+++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp
@@ -1021,7 +1021,14 @@ public:
void PassengerBoarded(Unit* passenger, int8 /*seatId*/, bool apply) OVERRIDE
{
if (apply && passenger->GetTypeId() == TYPEID_PLAYER)
+ {
+ /// @workaround - Because accessory gets unmounted when using vehicle_template_accessory.
+ /// When vehicle spawns accessory is mounted to seat 0,but when player mounts
+ /// he uses the same seat (instead of mounting to seat 1) kicking the accessory out.
+ passenger->ChangeSeat(1, false);
+ me->GetVehicleKit()->InstallAccessory(NPC_PILOT, 0, true, TEMPSUMMON_DEAD_DESPAWN, 0);
me->GetMotionMaster()->MovePath(NPC_PLANE, false);
+ }
}
void MovementInform(uint32 type, uint32 id) OVERRIDE
@@ -1056,6 +1063,7 @@ public:
case 25:
Talk(PLANE_EMOTE);
DoCast(SPELL_ENGINE);
+ me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FORCE_MOVEMENT);
break;
}
}
diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp
index 0f542b3aca7..fbf9a38512b 100644
--- a/src/server/scripts/Northrend/zone_zuldrak.cpp
+++ b/src/server/scripts/Northrend/zone_zuldrak.cpp
@@ -148,7 +148,7 @@ public:
me->RemoveAurasDueToSpell(SPELL_LEFT_CHAIN);
me->RemoveAurasDueToSpell(SPELL_RIGHT_CHAIN);
me->RemoveAurasDueToSpell(SPELL_KNEEL);
- me->setFaction(me->GetCreatureTemplate()->faction_H);
+ me->setFaction(me->GetCreatureTemplate()->faction);
DoCast(me, SPELL_UNSHACKLED, true);
Talk(SAY_RAGECLAW);
me->GetMotionMaster()->MoveRandom(10);
diff --git a/src/server/shared/Database/Implementation/WorldDatabase.cpp b/src/server/shared/Database/Implementation/WorldDatabase.cpp
index 78fd859ea8f..d0e9c463ad7 100644
--- a/src/server/shared/Database/Implementation/WorldDatabase.cpp
+++ b/src/server/shared/Database/Implementation/WorldDatabase.cpp
@@ -38,7 +38,7 @@ void WorldDatabaseConnection::DoPrepareStatements()
PrepareStatement(WORLD_DEL_NPC_VENDOR, "DELETE FROM npc_vendor WHERE entry = ? AND item = ?", CONNECTION_ASYNC);
PrepareStatement(WORLD_SEL_NPC_VENDOR_REF, "SELECT item, maxcount, incrtime, ExtendedCost FROM npc_vendor WHERE entry = ? ORDER BY slot ASC", CONNECTION_SYNCH);
PrepareStatement(WORLD_UPD_CREATURE_MOVEMENT_TYPE, "UPDATE creature SET MovementType = ? WHERE guid = ?", CONNECTION_ASYNC);
- PrepareStatement(WORLD_UPD_CREATURE_FACTION, "UPDATE creature_template SET faction_A = ?, faction_H = ? WHERE entry = ?", CONNECTION_ASYNC);
+ PrepareStatement(WORLD_UPD_CREATURE_FACTION, "UPDATE creature_template SET faction = ? WHERE entry = ?", CONNECTION_ASYNC);
PrepareStatement(WORLD_UPD_CREATURE_NPCFLAG, "UPDATE creature_template SET npcflag = ? WHERE entry = ?", CONNECTION_ASYNC);
PrepareStatement(WORLD_UPD_CREATURE_POSITION, "UPDATE creature SET position_x = ?, position_y = ?, position_z = ?, orientation = ? WHERE guid = ?", CONNECTION_ASYNC);
PrepareStatement(WORLD_UPD_CREATURE_SPAWN_DISTANCE, "UPDATE creature SET spawndist = ?, MovementType = ? WHERE guid = ?", CONNECTION_ASYNC);
@@ -76,7 +76,7 @@ void WorldDatabaseConnection::DoPrepareStatements()
PrepareStatement(WORLD_SEL_WAYPOINT_SCRIPT_ID_BY_GUID, "SELECT id FROM waypoint_scripts WHERE guid = ?", CONNECTION_SYNCH);
PrepareStatement(WORLD_DEL_CREATURE, "DELETE FROM creature WHERE guid = ?", CONNECTION_ASYNC);
PrepareStatement(WORLD_SEL_COMMANDS, "SELECT name, permission, help FROM command", CONNECTION_SYNCH);
- PrepareStatement(WORLD_SEL_CREATURE_TEMPLATE, "SELECT difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, faction_A, faction_H, npcflag, speed_walk, speed_run, scale, rank, mindmg, maxdmg, dmgschool, attackpower, dmg_multiplier, baseattacktime, rangeattacktime, unit_class, unit_flags, unit_flags2, dynamicflags, family, trainer_type, trainer_spell, trainer_class, trainer_race, minrangedmg, maxrangedmg, rangedattackpower, type, type_flags, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, InhabitType, HoverHeight, Health_mod, Mana_mod, Armor_mod, RacialLeader, questItem1, questItem2, questItem3, questItem4, questItem5, questItem6, movementId, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName FROM creature_template WHERE entry = ?", CONNECTION_SYNCH);
+ PrepareStatement(WORLD_SEL_CREATURE_TEMPLATE, "SELECT difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, faction, npcflag, speed_walk, speed_run, scale, rank, mindmg, maxdmg, dmgschool, attackpower, dmg_multiplier, baseattacktime, rangeattacktime, unit_class, unit_flags, unit_flags2, dynamicflags, family, trainer_type, trainer_spell, trainer_class, trainer_race, minrangedmg, maxrangedmg, rangedattackpower, type, type_flags, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, InhabitType, HoverHeight, Health_mod, Mana_mod, Armor_mod, RacialLeader, questItem1, questItem2, questItem3, questItem4, questItem5, questItem6, movementId, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName FROM creature_template WHERE entry = ?", CONNECTION_SYNCH);
PrepareStatement(WORLD_SEL_WAYPOINT_SCRIPT_BY_ID, "SELECT guid, delay, command, datalong, datalong2, dataint, x, y, z, o FROM waypoint_scripts WHERE id = ?", CONNECTION_SYNCH);
PrepareStatement(WORLD_SEL_ITEM_TEMPLATE_BY_NAME, "SELECT entry FROM item_template WHERE name = ?", CONNECTION_SYNCH);
PrepareStatement(WORLD_SEL_CREATURE_BY_ID, "SELECT guid FROM creature WHERE id = ?", CONNECTION_SYNCH);