aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/macros/FindOpenSSL.cmake180
-rw-r--r--dep/g3dlite/include/G3D/platform.h2
-rw-r--r--sql/updates/world/2012_11_11_00_world_sai.sql113
-rw-r--r--sql/updates/world/2012_11_11_01_world_quest_template.sql2
-rw-r--r--sql/updates/world/2012_11_11_02_world_gossip_menu.sql109
-rw-r--r--sql/updates/world/2012_11_11_03_world_gossip_menu.sql280
-rw-r--r--src/server/collision/CMakeLists.txt1
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp187
-rw-r--r--src/server/scripts/World/npc_taxi.cpp8
-rw-r--r--src/server/shared/CMakeLists.txt1
10 files changed, 779 insertions, 104 deletions
diff --git a/cmake/macros/FindOpenSSL.cmake b/cmake/macros/FindOpenSSL.cmake
new file mode 100644
index 00000000000..245a91d4199
--- /dev/null
+++ b/cmake/macros/FindOpenSSL.cmake
@@ -0,0 +1,180 @@
+# - Try to find the OpenSSL encryption library
+# Once done this will define
+#
+# OPENSSL_ROOT_DIR - Set this variable to the root installation of OpenSSL
+#
+# Read-Only variables:
+# OPENSSL_FOUND - system has the OpenSSL library
+# OPENSSL_INCLUDE_DIR - the OpenSSL include directory
+# OPENSSL_LIBRARIES - The libraries needed to use OpenSSL
+
+#=============================================================================
+# Copyright 2006-2009 Kitware, Inc.
+# Copyright 2006 Alexander Neundorf <neundorf@kde.org>
+# Copyright 2009-2010 Mathieu Malaterre <mathieu.malaterre@gmail.com>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distributed this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+# http://www.slproweb.com/products/Win32OpenSSL.html
+
+SET(_OPENSSL_ROOT_HINTS
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]"
+ )
+
+IF(PLATFORM EQUAL 64)
+ SET(_OPENSSL_ROOT_PATHS
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;InstallLocation]"
+ "C:/OpenSSL-Win64/"
+ "C:/OpenSSL/"
+ )
+ELSE()
+ SET(_OPENSSL_ROOT_PATHS
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;InstallLocation]"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;InstallLocation]"
+ "C:/OpenSSL/"
+ )
+ENDIF()
+
+FIND_PATH(OPENSSL_ROOT_DIR
+ NAMES
+ include/openssl/ssl.h
+ HINTS
+ ${_OPENSSL_ROOT_HINTS}
+ PATHS
+ ${_OPENSSL_ROOT_PATHS}
+)
+MARK_AS_ADVANCED(OPENSSL_ROOT_DIR)
+
+# Re-use the previous path:
+FIND_PATH(OPENSSL_INCLUDE_DIR openssl/ssl.h
+ ${OPENSSL_ROOT_DIR}/include
+)
+
+IF(WIN32 AND NOT CYGWIN)
+ # MINGW should go here too
+ IF(MSVC)
+ # /MD and /MDd are the standard values - if someone wants to use
+ # others, the libnames have to change here too
+ # use also ssl and ssleay32 in debug as fallback for openssl < 0.9.8b
+ # TODO: handle /MT and static lib
+ # In Visual C++ naming convention each of these four kinds of Windows libraries has it's standard suffix:
+ # * MD for dynamic-release
+ # * MDd for dynamic-debug
+ # * MT for static-release
+ # * MTd for static-debug
+
+ # Implementation details:
+ # We are using the libraries located in the VC subdir instead of the parent directory eventhough :
+ # libeay32MD.lib is identical to ../libeay32.lib, and
+ # ssleay32MD.lib is identical to ../ssleay32.lib
+
+ FIND_LIBRARY(LIB_EAY_DEBUG
+ NAMES
+ libeay32MDd libeay32
+ PATHS
+ ${OPENSSL_ROOT_DIR}/lib/VC
+ )
+
+ FIND_LIBRARY(LIB_EAY_RELEASE
+ NAMES
+ libeay32MD libeay32
+ PATHS
+ ${OPENSSL_ROOT_DIR}/lib/VC
+ )
+
+ FIND_LIBRARY(SSL_EAY_DEBUG
+ NAMES
+ ssleay32MDd ssleay32 ssl
+ PATHS
+ ${OPENSSL_ROOT_DIR}/lib/VC
+ )
+
+ FIND_LIBRARY(SSL_EAY_RELEASE
+ NAMES
+ ssleay32MD ssleay32 ssl
+ PATHS
+ ${OPENSSL_ROOT_DIR}/lib/VC
+ )
+
+ if( CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE )
+ set( OPENSSL_LIBRARIES
+ optimized ${SSL_EAY_RELEASE} ${LIB_EAY_RELEASE}
+ debug ${SSL_EAY_DEBUG} ${LIB_EAY_DEBUG}
+ )
+ else()
+ set( OPENSSL_LIBRARIES
+ ${SSL_EAY_RELEASE}
+ ${LIB_EAY_RELEASE}
+ )
+ endif()
+
+ MARK_AS_ADVANCED(SSL_EAY_DEBUG SSL_EAY_RELEASE LIB_EAY_DEBUG LIB_EAY_RELEASE)
+ ELSEIF(MINGW)
+
+ # same player, for MingW
+ FIND_LIBRARY(LIB_EAY
+ NAMES
+ libeay32
+ PATHS
+ ${OPENSSL_ROOT_DIR}/lib/MinGW
+ )
+
+ FIND_LIBRARY(SSL_EAY NAMES
+ NAMES
+ ssleay32
+ PATHS
+ ${OPENSSL_ROOT_DIR}/lib/MinGW
+ )
+
+ MARK_AS_ADVANCED(SSL_EAY LIB_EAY)
+
+ set( OPENSSL_LIBRARIES
+ ${SSL_EAY}
+ ${LIB_EAY}
+ )
+ ELSE(MSVC)
+ # Not sure what to pick for -say- intel, let's use the toplevel ones and hope someone report issues:
+ FIND_LIBRARY(LIB_EAY
+ NAMES
+ libeay32
+ PATHS
+ ${OPENSSL_ROOT_DIR}/lib
+ ${OPENSSL_ROOT_DIR}/lib/VC
+ )
+
+ FIND_LIBRARY(SSL_EAY
+ NAMES
+ ssleay32
+ PATHS
+ ${OPENSSL_ROOT_DIR}/lib
+ ${OPENSSL_ROOT_DIR}/lib/VC
+ )
+ MARK_AS_ADVANCED(SSL_EAY LIB_EAY)
+
+ SET( OPENSSL_LIBRARIES ${SSL_EAY} ${LIB_EAY} )
+ ENDIF(MSVC)
+ELSE(WIN32 AND NOT CYGWIN)
+ FIND_LIBRARY(OPENSSL_SSL_LIBRARIES NAMES ssl ssleay32 ssleay32MD)
+ FIND_LIBRARY(OPENSSL_CRYPTO_LIBRARIES NAMES crypto)
+ MARK_AS_ADVANCED(OPENSSL_CRYPTO_LIBRARIES OPENSSL_SSL_LIBRARIES)
+
+ SET(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARIES})
+
+ENDIF(WIN32 AND NOT CYGWIN)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(OpenSSL DEFAULT_MSG
+ OPENSSL_LIBRARIES
+ OPENSSL_INCLUDE_DIR
+)
+
+MARK_AS_ADVANCED(OPENSSL_INCLUDE_DIR OPENSSL_LIBRARIES)
diff --git a/dep/g3dlite/include/G3D/platform.h b/dep/g3dlite/include/G3D/platform.h
index c8d2f0b6534..11093f4a6ce 100644
--- a/dep/g3dlite/include/G3D/platform.h
+++ b/dep/g3dlite/include/G3D/platform.h
@@ -57,7 +57,7 @@
#elif defined(__linux__)
#define G3D_LINUX
#elif defined(__APPLE__)
- #define G3D_OSX
+ #define G3D_LINUX
// Prevent OS X fp.h header from being included; it defines
// pi as a constant, which creates a conflict with G3D
diff --git a/sql/updates/world/2012_11_11_00_world_sai.sql b/sql/updates/world/2012_11_11_00_world_sai.sql
new file mode 100644
index 00000000000..7d895b81b7b
--- /dev/null
+++ b/sql/updates/world/2012_11_11_00_world_sai.sql
@@ -0,0 +1,113 @@
+-- Update creature gossip_menu_option from sniff
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (8803,8808,8894,9045,9621,9879,9895,9987,10117,10218) AND `id`=0;
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=9879 AND `id`=1;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(8803,0,1, 'I need some booze, Coot.',3,128,0,0,0,0, ''),
+(8808,0,1, 'I require some components, Sorely.',3,128,0,0,0,0, ''),
+(8894,0,0, 'I need to fly to the Windrunner Official business!',1,1,0,0,0,0, ''),
+(9045,0,0, 'I don''t have time for chit-chat, Lou. Take me to Scalawag Point.',1,1,0,0,0,0, ''),
+(9621,0,0, 'Harry said I could use his bomber to Bael''gun''s. I''m ready to go!',1,1,0,0,0,0, ''),
+(9879,0,3, 'Train me',5,16,0,0,0,0, ''),
+(9879,1,1, 'Let me browse your goods.',3,128,0,0,0,0, ''),
+(9895,0,3, 'Train me',5,16,0,0,0,0, ''),
+(9987,0,3, 'Train me',5,16,0,0,0,0, ''),
+(10117,0,3, 'Train me',5,16,0,0,0,0, ''),
+(10218,0,0, '<Get in the bomber and return to Scalawag Point.>',1,1,0,0,0,0, '');
+-- Insert gossip menu from sniff
+DELETE FROM `gossip_menu` WHERE `entry`=8803 AND `text_id`=11287;
+DELETE FROM `gossip_menu` WHERE `entry`=8808 AND `text_id`=11297;
+DELETE FROM `gossip_menu` WHERE `entry`=8820 AND `text_id`=11352;
+DELETE FROM `gossip_menu` WHERE `entry`=8832 AND `text_id`=11418;
+DELETE FROM `gossip_menu` WHERE `entry`=8839 AND `text_id`=11436;
+DELETE FROM `gossip_menu` WHERE `entry`=8893 AND `text_id`=11655;
+DELETE FROM `gossip_menu` WHERE `entry`=8900 AND `text_id`=11691;
+DELETE FROM `gossip_menu` WHERE `entry`=8957 AND `text_id`=11746;
+DELETE FROM `gossip_menu` WHERE `entry`=8985 AND `text_id`=12130;
+DELETE FROM `gossip_menu` WHERE `entry`=9008 AND `text_id`=12170;
+DELETE FROM `gossip_menu` WHERE `entry`=9045 AND `text_id`=12222;
+DELETE FROM `gossip_menu` WHERE `entry`=9346 AND `text_id`=12646;
+DELETE FROM `gossip_menu` WHERE `entry`=9895 AND `text_id`=13738;
+DELETE FROM `gossip_menu` WHERE `entry`=9987 AND `text_id`=13841;
+DELETE FROM `gossip_menu` WHERE `entry`=10117 AND `text_id`=14043;
+DELETE FROM `gossip_menu` WHERE `entry`=10218 AND `text_id`=14205;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+(8803,11287),
+(8808,11297),
+(8820,11352),
+(8832,11418),
+(8839,11436),
+(8893,11655),
+(8900,11691),
+(8957,11746),
+(8985,12130),
+(9008,12170),
+(9045,12222),
+(9346,12646),
+(9895,13738),
+(9987,13841),
+(10117,14043),
+(10218,14205);
+-- Insert creature gossip_menu_id Update from sniff
+UPDATE `creature_template` SET `gossip_menu_id`=8803 WHERE `entry`=23737; -- Coot "The Stranger" Albertson
+UPDATE `creature_template` SET `gossip_menu_id`=8808 WHERE `entry`=23732; -- Sorely Twitchblade
+UPDATE `creature_template` SET `gossip_menu_id`=8820 WHERE `entry`=23862; -- Finlay Fletcher
+UPDATE `creature_template` SET `gossip_menu_id`=8832 WHERE `entry`=23770; -- Cannoneer Ely
+UPDATE `creature_template` SET `gossip_menu_id`=8839 WHERE `entry`=23906; -- Scout Knowles
+UPDATE `creature_template` SET `gossip_menu_id`=8893 WHERE `entry`=24106; -- Scout Valory
+UPDATE `creature_template` SET `gossip_menu_id`=8900 WHERE `entry`=24135; -- Greatmother Ankha
+UPDATE `creature_template` SET `gossip_menu_id`=8957 WHERE `entry`=23833; -- Explorer Jaren
+UPDATE `creature_template` SET `gossip_menu_id`=8985 WHERE `entry`=24544; -- Old Icefin
+UPDATE `creature_template` SET `gossip_menu_id`=9008, `npcflag`=`npcflag`|1 WHERE `entry`=24643; -- Grezzix Spindlesnap
+UPDATE `creature_template` SET `gossip_menu_id`=9045, `npcflag`=1, `AIName`='SmartAI' WHERE `entry`=24896; -- Lou the Cabin Boy
+UPDATE `creature_template` SET `gossip_menu_id`=9346 WHERE `entry`=26540; -- Drenk Spannerspark
+UPDATE `creature_template` SET `gossip_menu_id`=9821 WHERE `entry` IN (24067,24154,24350); -- Mahana Frosthoof, Mary Darrow, Robert Clarke
+UPDATE `creature_template` SET `gossip_menu_id`=9879 WHERE `entry`=26959; -- Booker Kells
+UPDATE `creature_template` SET `gossip_menu_id`=9895 WHERE `entry`=26960; -- Carter Tiffens
+UPDATE `creature_template` SET `gossip_menu_id`=9987 WHERE `entry`=26953; -- Thomas Kolichio
+UPDATE `creature_template` SET `gossip_menu_id`=10117 WHERE `entry`=26964; -- Alexandra McQueen
+UPDATE `creature_template` SET `gossip_menu_id`=10218, `AIName`='SmartAI' WHERE `entry`=28277; -- Harry's Bomber
+-- Insert npc_text from sniff
+DELETE FROM `npc_text` WHERE `ID` IN (12130,13702);
+INSERT INTO `npc_text` (`ID`,`text0_0`,`text0_1`,`lang0`,`prob0`,`em0_0`,`em0_1`,`em0_2`,`em0_3`,`em0_4`,`em0_5`,`text1_0`,`text1_1`,`lang1`,`prob1`,`em1_0`,`em1_1`,`em1_2`,`em1_3`,`em1_4`,`em1_5`,`text2_0`,`text2_1`,`lang2`,`prob2`,`em2_0`,`em2_1`,`em2_2`,`em2_3`,`em2_4`,`em2_5`,`text3_0`,`text3_1`,`lang3`,`prob3`,`em3_0`,`em3_1`,`em3_2`,`em3_3`,`em3_4`,`em3_5`,`text4_0`,`text4_1`,`lang4`,`prob4`,`em4_0`,`em4_1`,`em4_2`,`em4_3`,`em4_4`,`em4_5`,`text5_0`,`text5_1`,`lang5`,`prob5`,`em5_0`,`em5_1`,`em5_2`,`em5_3`,`em5_4`,`em5_5`,`text6_0`,`text6_1`,`lang6`,`prob6`,`em6_0`,`em6_1`,`em6_2`,`em6_3`,`em6_4`,`em6_5`,`text7_0`,`text7_1`,`lang7`,`prob7`,`em7_0`,`em7_1`,`em7_2`,`em7_3`,`em7_4`,`em7_5`,`WDBVerified`) VALUES
+(12130,'<Old Icefin eyes you warily, his fishy eye blinking as he bobs his head up and down once in a curt dismissal.>','',0,1,0,396,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,12340),
+(13702,'How may I help you?','',0,1,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,12340);
+-- Insert creature_text from sniff
+DELETE FROM `creature_text` WHERE `entry` IN (27923,27933);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(27923,0,0,'Hang on to your hat, $N! To Scalawag we go!',12,0,100,0,0,0,'Lou the Cabin Boy'),
+(27923,1,0,'YAAARRRRR! Here we be, matey! Scalawag Point!',12,0,100,0,0,0,'Lou the Cabin Boy'),
+(27933,0,0,'Enjoy the ride! It''s a one way trip!',12,0,100,3,0,0,'Alanya');
+-- Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN (8894,9045,9621,10218) AND `SourceEntry`=0;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN (8894,9546) AND `SourceEntry`=1;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,8894,0,0,0,9,0,11229,0,0,0,0,'','Bathandler Camille - Show gossip option only if player has taken quest 11229'),
+(15,8894,1,0,0,9,0,11170,0,0,0,0,'','Bathandler Camille - Show gossip option only if player has taken quest 11170'),
+(15,9045,0,0,0,9,0,11509,0,0,0,0,'','Lou the Cabin Boy - Show gossip option only if player has taken quest 11509'),
+(15,9546,1,0,0,9,0,12298,0,0,0,0,'','Greer Orehammer - Show gossip option only if player has taken quest 12298'),
+(15,9621,0,0,0,9,0,11567,0,0,0,0,'','Alanya - Show gossip option only if player has taken quest 11567'),
+(15,10218,0,0,0,9,0,11567,0,0,0,0,'','Harry''s Bomber - Show gossip option if player has taken quest 11567');
+-- SmartAIs
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=27933;
+UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=23816;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=23859 AND `source_type`=0 AND `id` IN (3,4); -- this npc had already a SmartAI so deleting just the new lines
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (23816,24896,27933,28277) AND `source_type`=0;
+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
+(23816,0,0,2,62,0,100,0,8894,0,0,0,85,43074,0,0,0,0,0,7,0,0,0,0,0,0,0,'Bathandler Camille - On gossip select - Invoker spellcast'),
+(23816,0,1,2,62,0,100,0,8894,1,0,0,85,43136,0,0,0,0,0,7,0,0,0,0,0,0,0,'Bathandler Camille - On gossip select - Invoker spellcast'),
+(23816,0,2,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Bathandler Camille - On gossip select - Close gossip'),
+(23859,0,3,4,62,0,100,0,9546,1,0,0,11,48862,0,0,0,0,0,7,0,0,0,0,0,0,0,'Greer Orehammer - On gossip select - Invoker spellcast'),
+(23859,0,4,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Greer Orehammer - On gossip select - Close gossip'),
+(24896,0,0,1,62,0,100,0,9045,0,0,0,11,50004,0,0,0,0,0,7,0,0,0,0,0,0,0,'Lou the Cabin Boy - On gossip select - Spellcast'),
+(24896,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Lou the Cabin Boy - On gossip select - Close gossip'),
+(27933,0,0,1,62,0,100,0,9621,0,0,0,11,50038,0,0,0,0,0,7,0,0,0,0,0,0,0,'Alanya - On gossip select - Spellcast'),
+(27933,0,1,2,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Alanya - On gossip select - Close gossip'),
+(27933,0,2,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Alanya - On gossip select - Say line'),
+(28277,0,0,1,62,0,100,0,10218,0,0,0,11,61604,0,0,0,0,0,7,0,0,0,0,0,0,0,'Harry''s Bomber - On gossip select - Spellcast'),
+(28277,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Harry''s Bomber - On gossip select - Close gossip');
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=24896; -- that was absolutely not correct
+DELETE FROM `spell_target_position` WHERE `id` IN (50005,50039,61605);
+INSERT INTO `spell_target_position` (`id`,`target_map`,`target_position_x`,`target_position_y`,`target_position_z`,`target_orientation`) VALUES
+(50005,571,595.208,-2796.47,-0.124098,3.66519), -- Summon Lou the Cabin Boy
+(50039,571,-170.469,-3588.19,-0.221146,4.2586), -- Summon Harry's Bomber
+(61605,571,89.7416,-6286.08,1.17903,1.58825); -- Summon Harry's Bomber
diff --git a/sql/updates/world/2012_11_11_01_world_quest_template.sql b/sql/updates/world/2012_11_11_01_world_quest_template.sql
new file mode 100644
index 00000000000..9abf2ea3cd1
--- /dev/null
+++ b/sql/updates/world/2012_11_11_01_world_quest_template.sql
@@ -0,0 +1,2 @@
+-- Fix a typo in RewardText table for quest Spooky Lighthouse (1687)
+UPDATE `quest_template` SET `OfferRewardText`="WOW, that was a real life ghost! That was so awesome - I can't wait to tell everyone back at the orphanage. Captain Grayson... he even looked like a pirate! When I grow up I wanna be a ghost pirate too!$B$BThanks for taking me to Westfall, $N. I know there are scary things out there in the wilds of Westfall, and I hope I wasn't too much of a pain. You're awesome!" WHERE `Id`=1687;
diff --git a/sql/updates/world/2012_11_11_02_world_gossip_menu.sql b/sql/updates/world/2012_11_11_02_world_gossip_menu.sql
new file mode 100644
index 00000000000..59d1a10b337
--- /dev/null
+++ b/sql/updates/world/2012_11_11_02_world_gossip_menu.sql
@@ -0,0 +1,109 @@
+UPDATE `creature_template` SET `gossip_menu_id`=9260 WHERE `entry`=25754;
+DELETE FROM `gossip_menu` WHERE `entry`=9260 AND `text_id`=12572;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9260,12572);
+
+UPDATE `creature_template` SET `gossip_menu_id`=11417 WHERE `entry`=25697;
+DELETE FROM `gossip_menu` WHERE `entry`=11417 AND `text_id`=12390;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (11417,12390);
+
+UPDATE `creature_template` SET `gossip_menu_id`=9298 WHERE `entry`=16818;
+DELETE FROM `gossip_menu` WHERE `entry`=9298 AND `text_id`=12609;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9298,12609);
+
+UPDATE `creature_template` SET `gossip_menu_id`=9204 WHERE `entry`=26113;
+UPDATE `creature_template` SET `gossip_menu_id`=9204 WHERE `entry`=25994;
+DELETE FROM `gossip_menu` WHERE `entry`=9204 AND `text_id`=12506;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9204,12506);
+
+UPDATE `creature_template` SET `gossip_menu_id`=9148 WHERE `entry`=16781;
+DELETE FROM `gossip_menu` WHERE `entry`=9148 AND `text_id`=12376;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9148,12376);
+
+UPDATE `creature_template` SET `gossip_menu_id`=9157 WHERE `entry`=26221;
+DELETE FROM `gossip_menu` WHERE `entry`=9157 AND `text_id`=12390;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9157,12390);
+
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25884;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25918;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25919;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25920;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25921;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25922;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25924;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25926;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25928;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25929;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25930;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25932;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25934;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25936;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25937;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25938;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25940;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25943;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25947;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32809;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32810;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32811;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32812;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32813;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32814;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32815;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32816;
+DELETE FROM `gossip_menu` WHERE `entry`=9278 AND `text_id`=12582;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9278,12582);
+
+DELETE FROM `gossip_menu` WHERE `entry`=9354 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9354,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9384 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9384,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9385 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9385,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9386 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9386,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9387 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9387,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9389 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9389,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9390 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9390,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9393 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9393,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9395 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9395,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9396 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9396,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9399 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9399,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9401 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9401,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9403 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9403,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9408 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9408,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9409 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9409,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9410 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9410,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9411 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9411,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9412 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9412,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9413 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9413,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10230 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10230,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10232 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10232,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10233 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10233,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10234 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10234,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10237 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10237,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10238 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10238,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10240 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10240,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10243 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10243,12377);
diff --git a/sql/updates/world/2012_11_11_03_world_gossip_menu.sql b/sql/updates/world/2012_11_11_03_world_gossip_menu.sql
new file mode 100644
index 00000000000..4f250597388
--- /dev/null
+++ b/sql/updates/world/2012_11_11_03_world_gossip_menu.sql
@@ -0,0 +1,280 @@
+-- Creature Gossip Update for midsummer event from sniff
+UPDATE `creature_template` SET `gossip_menu_id`=9148 WHERE `entry`=16781; -- Midsummer Celebrant
+UPDATE `creature_template` SET `gossip_menu_id`=7326 WHERE `entry`=16817; -- Festival Loremaster
+UPDATE `creature_template` SET `gossip_menu_id`=11417 WHERE `entry`=25697; -- Luma Skymother <The Earthen Ring>
+UPDATE `creature_template` SET `gossip_menu_id`=9260 WHERE `entry`=25754; -- Earthen Ring Flamecaller <The Earthen Ring>
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25883; -- Ashenvale Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25884; -- Ashenvale Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25887; -- Arathi Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25888; -- Azuremyst Isle Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25889; -- Blade's Edge Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25890; -- Blasted Lands Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25891; -- Bloodmyst Isle Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25892; -- Burning Steppes Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25893; -- Darkshore Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25894; -- Desolace Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25895; -- Dun Morogh Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25896; -- Duskwood Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25897; -- Dustwallow Marsh Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25898; -- Elwynn Forest Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25899; -- Feralas Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25900; -- Hellfire Peninsula Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25901; -- Hillsbrad Flame Warden -> Deleted in cata, taking from 3.x sniff
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25902; -- Loch Modan Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25903; -- Nagrand Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25904; -- Redridge Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25905; -- Shadowmoon Valley Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25906; -- Teldrassil Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25907; -- Terokkar Forest Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25908; -- The Hinterlands Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25909; -- Western Plaguelands Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25910; -- Westfall Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25911; -- Wetlands Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25912; -- Zangarmarsh Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25913; -- Netherstorm Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25914; -- Silithus Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25915; -- Cape of Stranglethorn Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25916; -- Tanaris Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25917; -- Winterspring Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25918; -- Netherstorm Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25919; -- Silithus Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25920; -- Cape of Stranglethorn Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25921; -- Tanaris Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25922; -- Winterspring Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25923; -- Arathi Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25925; -- Badlands Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25926; -- Blade's Edge Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25927; -- Burning Steppes Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25928; -- Desolace Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25929; -- Durotar Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25930; -- Dustwallow Marsh Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25931; -- Eversong Woods Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25932; -- Feralas Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25933; -- Ghostlands Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25934; -- Hellfire Peninsula Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25935; -- Hillsbrad Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25936; -- Mulgore Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25937; -- Nagrand Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25938; -- Shadowmoon Valley Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25939; -- Silverpine Forest Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25940; -- Stonetalon Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25941; -- Swamp of Sorrows Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25942; -- Terokkar Forest Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25943; -- The Northern Barrens Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25944; -- The Hinterlands Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25945; -- Thousand Needles Flame Keeper -> Deleted in cata, taking from 3.x sniff
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25946; -- Tirisfal Glades Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25947; -- Zangarmarsh Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9204 WHERE `entry`=25962; -- Fire Eater
+UPDATE `creature_template` SET `gossip_menu_id`=9204 WHERE `entry`=25975; -- Master Fire Eater
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32801; -- Borean Tundra Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32802; -- Sholazar Basin Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32806; -- Storm Peaks Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32807; -- Crystalsong Forest Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32808; -- Zul'Drak Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32809; -- Borean Tundra Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32810; -- Sholazar Basin Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32811; -- Dragonblight Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32812; -- Howling Fjord Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32813; -- Grizzly Hills Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32814; -- Storm Peaks Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32815; -- Crystalsong Forest Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32816; -- Zul'Drak Flame Keeper
+-- Gossip insert from sniff
+DELETE FROM `gossip_menu` WHERE (`entry`=9148 AND `text_id`=12376) OR (`entry`=7326 AND `text_id`=8703) OR (`entry`=11417 AND `text_id`=12390) OR (`entry`=9260 AND `text_id`=12571) OR (`entry`=9260 AND `text_id`=12572) OR (`entry`=9203 AND `text_id`=12504) OR (`entry`=9278 AND `text_id`=12582) OR (`entry`=9204 AND `text_id`=12506) OR (`entry`=9370 AND `text_id`=12374) OR (`entry`=9406 AND `text_id`=12377) OR (`entry`=9352 AND `text_id`=12377) OR (`entry`=9354 AND `text_id`=12377) OR (`entry`=9384 AND `text_id`=12377) OR (`entry`=9385 AND `text_id`=12377) OR (`entry`=9386 AND `text_id`=12377) OR (`entry`=9387 AND `text_id`=12377) OR (`entry`=9388 AND `text_id`=12377) OR (`entry`=9389 AND `text_id`=12377) OR (`entry`=9390 AND `text_id`=12377) OR (`entry`=9391 AND `text_id`=12377) OR (`entry`=9392 AND `text_id`=12377) OR (`entry`=9393 AND `text_id`=12377) OR (`entry`=9394 AND `text_id`=12377) OR (`entry`=9395 AND `text_id`=12377) OR (`entry`=9396 AND `text_id`=12377) OR (`entry`=9397 AND `text_id`=12377) OR (`entry`=9398 AND `text_id`=12377) OR (`entry`=9399 AND `text_id`=12377) OR (`entry`=9400 AND `text_id`=12377) OR (`entry`=9401 AND `text_id`=12377) OR (`entry`=9402 AND `text_id`=12377) OR (`entry`=9403 AND `text_id`=12377) OR (`entry`=9404 AND `text_id`=12377) OR (`entry`=9405 AND `text_id`=12377) OR (`entry`=9407 AND `text_id`=12377) OR (`entry`=9408 AND `text_id`=12377) OR (`entry`=9409 AND `text_id`=12377) OR(`entry`=9410 AND `text_id`=12377) OR (`entry`=9411 AND `text_id`=12377) OR (`entry`=9412 AND `text_id`=12377) OR (`entry`=9413 AND `text_id`=12377) OR (`entry`=9353 AND `text_id`=12374) OR (`entry`=9355 AND `text_id`=12374) OR (`entry`=9379 AND `text_id`=12374) OR (`entry`=9380 AND `text_id`=12374) OR (`entry`=9381 AND `text_id`=12374) OR (`entry`=9382 AND `text_id`=12374) OR (`entry`=9383 AND `text_id`=12374) OR (`entry`=9356 AND `text_id`=12374) OR (`entry`=9357 AND `text_id`=12374) OR (`entry`=9358 AND `text_id`=12374) OR (`entry`=9359 AND `text_id`=12374) OR (`entry`=9360 AND `text_id`=12374) OR (`entry`=9361 AND `text_id`=12374) OR (`entry`=9362 AND `text_id`=12374) OR (`entry`=9363 AND `text_id`=12374) OR (`entry`=9364 AND `text_id`=12374) OR (`entry`=9365 AND `text_id`=12374) OR (`entry`=9366 AND `text_id`=12374) OR (`entry`=9367 AND `text_id`=12374) OR (`entry`=9368 AND `text_id`=12374) OR (`entry`=9369 AND `text_id`=12374) OR (`entry`=9371 AND `text_id`=12374) OR (`entry`=9372 AND `text_id`=12374) OR (`entry`=9373 AND `text_id`=12374) OR (`entry`=9374 AND `text_id`=12374) OR (`entry`=9375 AND `text_id`=12374) OR (`entry`=9377 AND `text_id`=12374) OR (`entry`=9378 AND `text_id`=12374) OR (`entry`=10227 AND `text_id`=12377) OR (`entry`=10228 AND `text_id`=12374) OR (`entry`=10231 AND `text_id`=12374) OR (`entry`=10230 AND `text_id`=12377) OR (`entry`=10239 AND `text_id`=12374) OR (`entry`=10238 AND `text_id`=12377) OR (`entry`=10240 AND `text_id`=12377) OR (`entry`=10241 AND `text_id`=12374) OR (`entry`=10242 AND `text_id`=12374) OR (`entry`=10243 AND `text_id`=12377);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
+(9148, 12376), -- 16781
+(7326, 8703), -- 16817
+(11417, 12390), -- 25697
+(9260, 12571), -- 25754
+(9260, 12572), -- 25754
+(9203, 12504), -- 25883, 25887, 25888, 25889, 25890, 25891, 25892, 25893, 25894, 25895, 25896, 25897, 25898, 25899, 25900, 25901, 25902, 25903, 25904, 25905, 25906, 25907, 25908, 25909, 25910, 25911, 25912, 25913, 25914, 25915, 25916, 25917, 32801, 32802, 32806, 32807, 32808
+(9278, 12582), -- 25884, 25918, 25919, 25920, 25921, 25922, 25923, 25925, 25926, 25927, 25928, 25929, 25930, 25931, 25932, 25933, 25934, 25935, 25936, 25937, 25938, 25939, 25940, 25941, 25942, 25943, 25944, 25945, 25946, 25947, 32809, 32810, 32811, 32812, 32813, 32814, 32815, 32816
+(9204, 12506), -- 25962, 25975
+(9370, 12374), -- 187559
+(9406, 12377), -- 187564
+(9352, 12377), -- 187914
+(9354, 12377), -- 187916
+(9384, 12377), -- 187917
+(9385, 12377), -- 187919
+(9386, 12377), -- 187920
+(9387, 12377), -- 187921
+(9388, 12377), -- 187922
+(9389, 12377), -- 187923
+(9390, 12377), -- 187924
+(9391, 12377), -- 187925
+(9392, 12377), -- 187926
+(9393, 12377), -- 187927
+(9394, 12377), -- 187928
+(9395, 12377), -- 187929
+(9396, 12377), -- 187930
+(9397, 12377), -- 187931 -> Deleted in cata, taking from 3.x sniff
+(9398, 12377), -- 187932
+(9399, 12377), -- 187933
+(9400, 12377), -- 187934
+(9401, 12377), -- 187935
+(9402, 12377), -- 187936
+(9403, 12377), -- 187937
+(9404, 12377), -- 187938
+(9405, 12377), -- 187939
+(9407, 12377), -- 187940
+(9408, 12377), -- 187941
+(9409, 12377), -- 187942
+(9410, 12377), -- 187943
+(9411, 12377), -- 187944
+(9412, 12377), -- 187945
+(9413, 12377), -- 187946
+(9353, 12374), -- 187947
+(9355, 12374), -- 187948
+(9379, 12374), -- 187949
+(9380, 12374), -- 187950
+(9381, 12374), -- 187951
+(9382, 12374), -- 187952
+(9383, 12374), -- 187953
+(9356, 12374), -- 187954
+(9357, 12374), -- 187955
+(9358, 12374), -- 187956
+(9359, 12374), -- 187957
+(9360, 12374), -- 187958
+(9361, 12374), -- 187959
+(9362, 12374), -- 187960
+(9363, 12374), -- 187961
+(9364, 12374), -- 187962
+(9365, 12374), -- 187963
+(9366, 12374), -- 187964
+(9367, 12374), -- 187965
+(9368, 12374), -- 187966
+(9369, 12374), -- 187967
+(9371, 12374), -- 187968
+(9372, 12374), -- 187969
+(9373, 12374), -- 187970
+(9374, 12374), -- 187971
+(9375, 12374), -- 187972
+(9377, 12374), -- 187974
+(9378, 12374), -- 187975
+(10227, 12377), -- 194032
+(10228, 12374), -- 194033
+(10231, 12374), -- 194034
+(10230, 12377), -- 194035
+(10239, 12374), -- 194043
+(10238, 12377), -- 194044
+(10240, 12377), -- 194045
+(10241, 12374), -- 194046
+(10242, 12374), -- 194048
+(10243, 12377); -- 194049
+-- Add quest to creature (warden)
+DELETE FROM `game_event_creature_quest` WHERE (`id`=25883 AND `quest`=11805) OR (`id`=25887 AND `quest`=11804) OR (`id`=25888 AND `quest`=11806) OR (`id`=25889 AND `quest`=11807) OR (`id`=25890 AND `quest`=11808) OR (`id`=25891 AND `quest`=11809) OR (`id`=25892 AND `quest`=11810) OR (`id`=25893 AND `quest`=11811) OR (`id`=25894 AND `quest`=11812) OR (`id`=25895 AND `quest`=11813) OR (`id`=25896 AND `quest`=11814) OR (`id`=25897 AND `quest`=11815) OR (`id`=25898 AND `quest`=11816) OR (`id`=25899 AND `quest`=11817) OR (`id`=25900 AND `quest`=11818) OR (`id`=25901 AND `quest`=11819) OR (`id`=25902 AND `quest`=11820) OR (`id`=25903 AND `quest`=11821) OR (`id`=25904 AND `quest`=11822) OR (`id`=25905 AND `quest`=11823) OR (`id`=25906 AND `quest`=11824) OR (`id`=25907 AND `quest`=11825) OR (`id`=25908 AND `quest`=11826) OR (`id`=25909 AND `quest`=11827) OR (`id`=25910 AND `quest`=11583) OR (`id`=25911 AND `quest`=11828) OR (`id`=25912 AND `quest`=11829) OR (`id`=25913 AND `quest`=11830) OR (`id`=25914 AND `quest`=11831) OR (`id`=25915 AND `quest`=11832) OR (`id`=25916 AND `quest`=11833) OR (`id`=25917 AND `quest`=11834) OR (`id`=32801 AND `quest`=13485) OR (`id`=32802 AND `quest`=13486) OR (`id`=32806 AND `quest`=13490) OR (`id`=32807 AND `quest`=13491) OR (`id`=32808 AND `quest`=13492);
+INSERT INTO `game_event_creature_quest` (`eventEntry`, `id`, `quest`) VALUES
+(1, 25883, 11805),
+(1, 25887, 11804),
+(1, 25888, 11806),
+(1, 25889, 11807),
+(1, 25890, 11808),
+(1, 25891, 11809),
+(1, 25892, 11810),
+(1, 25893, 11811),
+(1, 25894, 11812),
+(1, 25895, 11813),
+(1, 25896, 11814),
+(1, 25897, 11815),
+(1, 25898, 11816),
+(1, 25899, 11817),
+(1, 25900, 11818),
+(1, 25901, 11819), -- Deleted in cata, taking from 3.x sniff
+(1, 25902, 11820),
+(1, 25903, 11821),
+(1, 25904, 11822),
+(1, 25905, 11823),
+(1, 25906, 11824),
+(1, 25907, 11825),
+(1, 25908, 11826),
+(1, 25909, 11827),
+(1, 25910, 11583),
+(1, 25911, 11828),
+(1, 25912, 11829),
+(1, 25913, 11830),
+(1, 25914, 11831),
+(1, 25915, 11832),
+(1, 25916, 11833),
+(1, 25917, 11834),
+(1, 32801, 13485),
+(1, 32802, 13486),
+(1, 32806, 13490),
+(1, 32807, 13491),
+(1, 32808, 13492);
+-- Delete double quest
+DELETE FROM `creature_questrelation` WHERE `id`=25889 AND `quest` =11807;
+-- Add quest relation to Gameobject (fire)
+DELETE FROM `game_event_gameobject_quest` WHERE (`id`=187559 AND `quest`=11580) OR (`id`=187564 AND `quest`=11581) OR (`id`=187914 AND `quest`=11732) OR (`id`=187916 AND `quest`=11734) OR (`id`=187917 AND `quest`=11735) OR (`id`=187919 AND `quest`=11736) OR (`id`=187920 AND `quest`=11737) OR (`id`=187921 AND `quest`=11738) OR (`id`=187922 AND `quest`=11739) OR (`id`=187923 AND `quest`=11740) OR (`id`=187924 AND `quest`=11741) OR (`id`=187925 AND `quest`=11742) OR (`id`=187926 AND `quest`=11743) OR (`id`=187927 AND `quest`=11744) OR (`id`=187928 AND `quest`=11745) OR (`id`=187929 AND `quest`=11746) OR (`id`=187930 AND `quest`=11747) OR (`id`=187931 AND `quest`=11748) OR (`id`=187932 AND `quest`=11749) OR (`id`=187933 AND `quest`=11750) OR (`id`=187934 AND `quest`=11751) OR (`id`=187935 AND `quest`=11752) OR (`id`=187936 AND `quest`=11753) OR (`id`=187937 AND `quest`=11754) OR (`id`=187938 AND `quest`=11755) OR (`id`=187939 AND `quest`=11756) OR (`id`=187940 AND `quest`=11757) OR (`id`=187941 AND `quest`=11758) OR (`id`=187942 AND `quest`=11759) OR(`id`=187943 AND `quest`=11760) OR (`id`=187944 AND `quest`=11761) OR (`id`=187945 AND `quest`=11762) OR (`id`=187946 AND `quest`=11763) OR (`id`=187947 AND `quest`=11764) OR (`id`=187948 AND `quest`=11765) OR (`id`=187949 AND `quest`=11799) OR (`id`=187950 AND `quest`=11800) OR (`id`=187951 AND `quest`=11801) OR (`id`=187952 AND `quest`=11802) OR (`id`=187953 AND `quest`=11803) OR (`id`=187954 AND `quest`=11766) OR (`id`=187955 AND `quest`=11767) OR (`id`=187956 AND `quest`=11768) OR (`id`=187957 AND `quest`=11769) OR (`id`=187958 AND `quest`=11770) OR (`id`=187959 AND `quest`=11771) OR (`id`=187960 AND `quest`=11772) OR (`id`=187961 AND `quest`=11773) OR (`id`=187962 AND `quest`=11774) OR (`id`=187963 AND `quest`=11775) OR (`id`=187964 AND `quest`=11776) OR (`id`=187965 AND `quest`=11777) OR (`id`=187966 AND `quest`=11778) OR (`id`=187967 AND `quest`=11779) OR (`id`=187968 AND `quest`=11780) OR (`id`=187969 AND `quest`=11781) OR (`id`=187970 AND `quest`=11782) OR (`id`=187971 AND `quest`=11783) OR (`id`=187972 AND `quest`=11784) OR (`id`=187974 AND `quest`=11786) OR (`id`=187975 AND `quest`=11787) OR (`id`=194032 AND `quest`=13440) OR (`id`=194033 AND `quest`=13441) OR (`id`=194034 AND `quest`=13450) OR (`id`=194035 AND `quest`=13442) OR (`id`=194043 AND `quest`=13455) OR (`id`=194044 AND `quest`=13446) OR (`id`=194045 AND `quest`=13447) OR (`id`=194046 AND `quest`=13457) OR (`id`=194048 AND `quest`=13458) OR (`id`=194049 AND `quest`=13449);
+INSERT INTO `game_event_gameobject_quest` (`eventEntry`, `id`, `quest`) VALUES
+(1, 187559, 11580),
+(1, 187564, 11581),
+(1, 187914, 11732),
+(1, 187916, 11734),
+(1, 187917, 11735),
+(1, 187919, 11736),
+(1, 187920, 11737),
+(1, 187921, 11738),
+(1, 187922, 11739),
+(1, 187923, 11740),
+(1, 187924, 11741),
+(1, 187925, 11742),
+(1, 187926, 11743),
+(1, 187927, 11744),
+(1, 187928, 11745),
+(1, 187929, 11746),
+(1, 187930, 11747),
+(1, 187931, 11748), -- Deleted in cata, taking from 3.x sniff
+(1, 187932, 11749),
+(1, 187933, 11750),
+(1, 187934, 11751),
+(1, 187935, 11752),
+(1, 187936, 11753),
+(1, 187937, 11754),
+(1, 187938, 11755),
+(1, 187939, 11756),
+(1, 187940, 11757),
+(1, 187941, 11758),
+(1, 187942, 11759),
+(1, 187943, 11760),
+(1, 187944, 11761),
+(1, 187945, 11762),
+(1, 187946, 11763),
+(1, 187947, 11764),
+(1, 187948, 11765),
+(1, 187949, 11799),
+(1, 187950, 11800),
+(1, 187951, 11801),
+(1, 187952, 11802),
+(1, 187953, 11803),
+(1, 187954, 11766),
+(1, 187955, 11767),
+(1, 187956, 11768),
+(1, 187957, 11769),
+(1, 187958, 11770),
+(1, 187959, 11771),
+(1, 187960, 11772),
+(1, 187961, 11773),
+(1, 187962, 11774),
+(1, 187963, 11775),
+(1, 187964, 11776),
+(1, 187965, 11777),
+(1, 187966, 11778),
+(1, 187967, 11779),
+(1, 187968, 11780),
+(1, 187969, 11781),
+(1, 187970, 11782),
+(1, 187971, 11783),
+(1, 187972, 11784),
+(1, 187974, 11786),
+(1, 187975, 11787),
+(1, 194032, 13440),
+(1, 194033, 13441),
+(1, 194034, 13450),
+(1, 194035, 13442),
+(1, 194043, 13455),
+(1, 194044, 13446),
+(1, 194045, 13447),
+(1, 194046, 13457),
+(1, 194048, 13458),
+(1, 194049, 13449);
diff --git a/src/server/collision/CMakeLists.txt b/src/server/collision/CMakeLists.txt
index 9a6b8ee75f4..3182b20d008 100644
--- a/src/server/collision/CMakeLists.txt
+++ b/src/server/collision/CMakeLists.txt
@@ -31,6 +31,7 @@ set(collision_STAT_SRCS
)
include_directories(
+ ${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}/dep/g3dlite/include
${CMAKE_SOURCE_DIR}/src/server/shared
${CMAKE_SOURCE_DIR}/src/server/shared/Debugging
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp
index b2b4083f9c6..cef95b607c7 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp
@@ -24,8 +24,8 @@ enum Spells
SPELL_CLEAVE = 40504,
SPELL_DEMORALIZING_SHOUT = 23511,
SPELL_ENRAGE = 8599,
- SPELL_WHIRLWIND1 = 15589,
- SPELL_WHIRLWIND2 = 13736,
+ SPELL_WHIRLWIND = 13736,
+
SPELL_NORTH_MARSHAL = 45828,
SPELL_SOUTH_MARSHAL = 45829,
SPELL_STONEHEARTH_MARSHAL = 45830,
@@ -48,38 +48,55 @@ enum Creatures
NPC_WEST_FROSTWOLF_WARMASTER = 14777
};
+enum Events
+{
+ EVENT_CHARGE_TARGET = 1,
+ EVENT_CLEAVE = 2,
+ EVENT_DEMORALIZING_SHOUT = 3,
+ EVENT_WHIRLWIND = 4,
+ EVENT_ENRAGE = 5,
+ EVENT_CHECK_RESET = 6
+};
+
+struct SpellPair
+{
+ uint32 npcEntry;
+ uint32 spellId;
+};
+
+uint8 const MAX_SPELL_PAIRS = 8;
+SpellPair const _auraPairs[MAX_SPELL_PAIRS] =
+{
+ { NPC_NORTH_MARSHAL, SPELL_NORTH_MARSHAL },
+ { NPC_SOUTH_MARSHAL, SPELL_SOUTH_MARSHAL },
+ { NPC_STONEHEARTH_MARSHAL, SPELL_STONEHEARTH_MARSHAL },
+ { NPC_ICEWING_MARSHAL, SPELL_ICEWING_MARSHAL },
+ { NPC_EAST_FROSTWOLF_WARMASTER, SPELL_EAST_FROSTWOLF_WARMASTER },
+ { NPC_WEST_FROSTWOLF_WARMASTER, SPELL_WEST_FROSTWOLF_WARMASTER },
+ { NPC_TOWER_POINT_WARMASTER, SPELL_TOWER_POINT_WARMASTER },
+ { NPC_ICEBLOOD_WARMASTER, SPELL_ICEBLOOD_WARMASTER }
+};
+
class mob_av_marshal_or_warmaster : public CreatureScript
{
public:
-
- mob_av_marshal_or_warmaster()
- : CreatureScript("mob_av_marshal_or_warmaster") {}
+ mob_av_marshal_or_warmaster() : CreatureScript("mob_av_marshal_or_warmaster") { }
struct mob_av_marshal_or_warmasterAI : public ScriptedAI
{
- mob_av_marshal_or_warmasterAI(Creature* creature) : ScriptedAI(creature) {}
-
- uint32 ChargeTimer;
- uint32 CleaveTimer;
- uint32 DemoralizingShoutTimer;
- uint32 Whirlwind1Timer;
- uint32 Whirlwind2Timer;
- uint32 EnrageTimer;
- uint32 ResetTimer;
-
- bool bHasAura;
+ mob_av_marshal_or_warmasterAI(Creature* creature) : ScriptedAI(creature) { }
void Reset()
{
- ChargeTimer = urand(2 * IN_MILLISECONDS, 12 * IN_MILLISECONDS);
- CleaveTimer = urand(1 * IN_MILLISECONDS, 11 * IN_MILLISECONDS);
- DemoralizingShoutTimer = urand(2 * IN_MILLISECONDS, 2 * IN_MILLISECONDS);
- Whirlwind1Timer = urand(1 * IN_MILLISECONDS, 12 * IN_MILLISECONDS);
- Whirlwind2Timer = urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
- EnrageTimer = urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
- ResetTimer = 5 * IN_MILLISECONDS;
-
- bHasAura = false;
+ events.Reset();
+ events.ScheduleEvent(EVENT_CHARGE_TARGET, urand(2 * IN_MILLISECONDS, 12 * IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_CLEAVE, urand(1 * IN_MILLISECONDS, 11 * IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DEMORALIZING_SHOUT, 2000);
+ events.ScheduleEvent(EVENT_WHIRLWIND, urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_ENRAGE, urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_CHECK_RESET, 5000);
+
+ _hasAura = false;
}
void JustRespawned()
@@ -87,90 +104,70 @@ class mob_av_marshal_or_warmaster : public CreatureScript
Reset();
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(uint32 const diff)
{
- if (!bHasAura)
+ // I have a feeling this isn't blizzlike, but owell, I'm only passing by and cleaning up.
+ if (!_hasAura)
{
- switch (me->GetEntry())
- {
- case NPC_NORTH_MARSHAL:
- DoCast(me, SPELL_NORTH_MARSHAL);
- break;
- case NPC_SOUTH_MARSHAL:
- DoCast(me, SPELL_SOUTH_MARSHAL);
- break;
- case NPC_STONEHEARTH_MARSHAL:
- DoCast(me, SPELL_STONEHEARTH_MARSHAL);
- break;
- case NPC_ICEWING_MARSHAL:
- DoCast(me, SPELL_ICEWING_MARSHAL);
- break;
- case NPC_EAST_FROSTWOLF_WARMASTER:
- DoCast(me, SPELL_EAST_FROSTWOLF_WARMASTER);
- break;
- case NPC_WEST_FROSTWOLF_WARMASTER:
- DoCast(me, SPELL_WEST_FROSTWOLF_WARMASTER);
- break;
- case NPC_ICEBLOOD_WARMASTER:
- DoCast(me, SPELL_ICEBLOOD_WARMASTER);
- break;
- case NPC_TOWER_POINT_WARMASTER:
- DoCast(me, SPELL_TOWER_POINT_WARMASTER);
- break;
- }
+ for (uint8 i = 0; i < MAX_SPELL_PAIRS; ++i)
+ if (_auraPairs[i].npcEntry == me->GetEntry())
+ DoCast(me, _auraPairs[i].spellId);
- bHasAura = true;
+ _hasAura = true;
}
if (!UpdateVictim())
return;
- if (ChargeTimer <= diff)
- {
- DoCast(me->getVictim(), SPELL_CHARGE);
- ChargeTimer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
- } else ChargeTimer -= diff;
-
- if (CleaveTimer <= diff)
- {
- DoCast(me->getVictim(), SPELL_CLEAVE);
- CleaveTimer = urand(10 * IN_MILLISECONDS, 16 * IN_MILLISECONDS);
- } else CleaveTimer -= diff;
-
- if (DemoralizingShoutTimer <= diff)
- {
- DoCast(me->getVictim(), SPELL_DEMORALIZING_SHOUT);
- DemoralizingShoutTimer = urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
- } else DemoralizingShoutTimer -= diff;
+ events.Update(diff);
- if (Whirlwind1Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_WHIRLWIND1);
- Whirlwind1Timer = urand(6 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
- } else Whirlwind1Timer -= diff;
-
- if (Whirlwind2Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_WHIRLWIND2);
- Whirlwind2Timer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
- } else Whirlwind2Timer -= diff;
-
- if (EnrageTimer <= diff)
- {
- DoCast(me->getVictim(), SPELL_ENRAGE);
- EnrageTimer = urand(10 * IN_MILLISECONDS, 30 * IN_MILLISECONDS);
- }else EnrageTimer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- // check if creature is not outside of building
- if (ResetTimer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
- EnterEvadeMode();
- ResetTimer = 5 * IN_MILLISECONDS;
- } else ResetTimer -= diff;
+ switch (eventId)
+ {
+ case EVENT_CHARGE_TARGET:
+ DoCast(me->getVictim(), SPELL_CHARGE);
+ events.ScheduleEvent(EVENT_CHARGE, urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS));
+ break;
+ case EVENT_CLEAVE:
+ DoCast(me->getVictim(), SPELL_CLEAVE);
+ events.ScheduleEvent(EVENT_CLEAVE, urand(10 * IN_MILLISECONDS, 16 * IN_MILLISECONDS));
+ break;
+ case EVENT_DEMORALIZING_SHOUT:
+ DoCast(me, SPELL_DEMORALIZING_SHOUT);
+ events.ScheduleEvent(EVENT_DEMORALIZING_SHOUT, urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS));
+ break;
+ case EVENT_WHIRLWIND:
+ DoCast(me, SPELL_WHIRLWIND);
+ events.ScheduleEvent(EVENT_WHIRLWIND, urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS));
+ break;
+ case EVENT_ENRAGE:
+ DoCast(me, SPELL_ENRAGE);
+ events.ScheduleEvent(EVENT_ENRAGE, urand(10 * IN_MILLISECONDS, 30 * IN_MILLISECONDS));
+ break;
+ case EVENT_CHECK_RESET:
+ {
+ Position const& _homePosition = me->GetHomePosition();
+ if (me->GetDistance2d(_homePosition.GetPositionX(), _homePosition.GetPositionY()) > 50.0f)
+ {
+ EnterEvadeMode();
+ return;
+ }
+ events.ScheduleEvent(EVENT_CHECK_RESET, 5000);
+ break;
+ }
+ }
+ }
DoMeleeAttackIfReady();
}
+
+ private:
+ EventMap events;
+ bool _hasAura;
};
CreatureAI* GetAI(Creature* creature) const
diff --git a/src/server/scripts/World/npc_taxi.cpp b/src/server/scripts/World/npc_taxi.cpp
index efdd4da73d6..18f776e7171 100644
--- a/src/server/scripts/World/npc_taxi.cpp
+++ b/src/server/scripts/World/npc_taxi.cpp
@@ -51,8 +51,6 @@ EndScriptData
#define GOSSIP_TARIOLSTRASZ2 "Can you spare a drake to travel to Lord Of Afrasastrasz, in the middle of the temple?"
#define GOSSIP_TORASTRASZA1 "I would like to see Lord Of Afrasastrasz, in the middle of the temple."
#define GOSSIP_TORASTRASZA2 "Yes, Please. I would like to return to the ground floor of the temple."
-#define GOSSIP_CAMILLE1 "I need to fly to the Windrunner Official business!"
-#define GOSSIP_CAMILLE2 "<The riding bat for the special task is necessary to me.>"
#define GOSSIP_CRIMSONWING "<Ride the gryphons to Survey Alcaz Island>"
#define GOSSIP_THRICESTAR1 "Do you think I could take a ride on one of those flying machines?"
#define GOSSIP_THRICESTAR2 "Kara, I need to be flown out the Dens of Dying to find Bixie."
@@ -159,12 +157,6 @@ public:
// top -> ground
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TORASTRASZA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22);
break;
- case 23816: // Howling Fjord - Bat Handler Camille
- if (!player->GetQuestRewardStatus(11229))
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CAMILLE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 23);
- if (player->GetQuestStatus(11170) == QUEST_STATUS_INCOMPLETE)
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CAMILLE2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 24);
- break;
case 23704: // Dustwallow Marsh - Cassa Crimsonwing
if (player->GetQuestStatus(11142) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CRIMSONWING, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+25);
diff --git a/src/server/shared/CMakeLists.txt b/src/server/shared/CMakeLists.txt
index f057527c284..e9f414d34e5 100644
--- a/src/server/shared/CMakeLists.txt
+++ b/src/server/shared/CMakeLists.txt
@@ -49,6 +49,7 @@ set(shared_STAT_SRCS
)
include_directories(
+ ${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}/dep/SFMT
${CMAKE_SOURCE_DIR}/dep/sockets/include
${CMAKE_SOURCE_DIR}/dep/utf8cpp