From 0e52b111f3731611ff6c5be2bf0bd849d4e012fb Mon Sep 17 00:00:00 2001 From: DDuarte Date: Tue, 29 Jul 2014 01:47:00 +0100 Subject: [PATCH 01/33] Core/Config: User-friendlyfy configuration parsing errors It will now print useful error messages that pinpoint the issue with the config file (missing file, bad syntax, etc) In memory of MitchesD that lost 18 hours finding a problem with his config because of a duplicated line. --- src/server/authserver/Main.cpp | 6 +++--- src/server/game/World/World.cpp | 5 +++-- src/server/shared/Configuration/Config.cpp | 17 ++++++++++++----- src/server/shared/Configuration/Config.h | 4 ++-- src/server/worldserver/Main.cpp | 6 +++--- 5 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/server/authserver/Main.cpp b/src/server/authserver/Main.cpp index 7c2ed4951c5..69e0d5a1e64 100644 --- a/src/server/authserver/Main.cpp +++ b/src/server/authserver/Main.cpp @@ -68,10 +68,10 @@ int main(int argc, char** argv) if (vm.count("help")) return 0; - if (!sConfigMgr->LoadInitial(configFile)) + std::string configError; + if (!sConfigMgr->LoadInitial(configFile, configError)) { - printf("Invalid or missing configuration file : %s\n", configFile.c_str()); - printf("Verify that the file exists and has \'[authserver]\' written in the top of the file!\n"); + printf("Error in config file: %s\n", configError.c_str()); return 1; } diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 533fbe6b2a4..bc1058d931d 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -408,9 +408,10 @@ void World::LoadConfigSettings(bool reload) { if (reload) { - if (!sConfigMgr->Reload()) + std::string configError; + if (!sConfigMgr->Reload(configError)) { - TC_LOG_ERROR("misc", "World settings reload fail: can't read settings from %s.", sConfigMgr->GetFilename().c_str()); + TC_LOG_ERROR("misc", "World settings reload fail: %s.", configError.c_str()); return; } sLog->LoadFromConfig(); diff --git a/src/server/shared/Configuration/Config.cpp b/src/server/shared/Configuration/Config.cpp index ecebf30182e..6b83f562520 100644 --- a/src/server/shared/Configuration/Config.cpp +++ b/src/server/shared/Configuration/Config.cpp @@ -25,7 +25,7 @@ using namespace boost::property_tree; -bool ConfigMgr::LoadInitial(std::string const& file) +bool ConfigMgr::LoadInitial(std::string const& file, std::string& error) { std::lock_guard lock(_configLock); @@ -34,25 +34,32 @@ bool ConfigMgr::LoadInitial(std::string const& file) try { ptree fullTree; - boost::property_tree::ini_parser::read_ini(file, fullTree); + ini_parser::read_ini(file, fullTree); if (fullTree.empty()) + { + error = "empty file (" + file + ")"; return false; + } // Since we're using only one section per config file, we skip the section and have direct property access _config = fullTree.begin()->second; } - catch (std::exception const& /*ex*/) + catch (ini_parser::ini_parser_error const& e) { + if (e.line() == 0) + error = e.message() + " (" + e.filename() + ")"; + else + error = e.message() + " (" + e.filename() + ":" + std::to_string(e.line()) + ")"; return false; } return true; } -bool ConfigMgr::Reload() +bool ConfigMgr::Reload(std::string& error) { - return LoadInitial(_filename.c_str()); + return LoadInitial(_filename.c_str(), error); } std::string ConfigMgr::GetStringDefault(std::string const& name, const std::string& def) diff --git a/src/server/shared/Configuration/Config.h b/src/server/shared/Configuration/Config.h index 42c3a700f3f..ff0233b5669 100644 --- a/src/server/shared/Configuration/Config.h +++ b/src/server/shared/Configuration/Config.h @@ -31,7 +31,7 @@ class ConfigMgr public: /// Method used only for loading main configuration files (authserver.conf and worldserver.conf) - bool LoadInitial(std::string const& file); + bool LoadInitial(std::string const& file, std::string& error); static ConfigMgr* instance() { @@ -39,7 +39,7 @@ public: return &instance; } - bool Reload(); + bool Reload(std::string& error); std::string GetStringDefault(std::string const& name, const std::string& def); bool GetBoolDefault(std::string const& name, bool def); diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp index 02e6268cd26..3afa9e84e8b 100644 --- a/src/server/worldserver/Main.cpp +++ b/src/server/worldserver/Main.cpp @@ -109,10 +109,10 @@ extern int main(int argc, char** argv) WinServiceRun(); #endif - if (!sConfigMgr->LoadInitial(configFile)) + std::string configError; + if (!sConfigMgr->LoadInitial(configFile, configError)) { - printf("Invalid or missing configuration file : %s\n", configFile.c_str()); - printf("Verify that the file exists and has \'[worldserver]' written in the top of the file!\n"); + printf("Error in config file: %s\n", configError.c_str()); return 1; } From 5aa900dd535b288524c1f2767dbf6656442405cb Mon Sep 17 00:00:00 2001 From: Dr-J Date: Tue, 29 Jul 2014 14:12:08 +0100 Subject: [PATCH 02/33] DB/Creature: Spawn missing spawns (3.3.5) Spawn Miles Sidney and Wright Williams who are missing from 3.3.5 world db --- sql/updates/world/2014_07_29_00_335_world_sai.sql | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 sql/updates/world/2014_07_29_00_335_world_sai.sql diff --git a/sql/updates/world/2014_07_29_00_335_world_sai.sql b/sql/updates/world/2014_07_29_00_335_world_sai.sql new file mode 100644 index 00000000000..2d431886124 --- /dev/null +++ b/sql/updates/world/2014_07_29_00_335_world_sai.sql @@ -0,0 +1,6 @@ +SET @CGUID := 45215; + +DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+1; +INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES +(@CGUID+0, 28355, 0, 1, 1, -8670.599, 427.4635, 100.9918, 0.9599311, 120, 0, 0), +(@CGUID+1, 28347, 0, 1, 1, -8672.78, 430.8922, 100.9918, 0.6632251, 120, 0, 0); From e8a261e3cc09640489248d5888a23669715c2abe Mon Sep 17 00:00:00 2001 From: Dr-J Date: Tue, 29 Jul 2014 14:16:08 +0100 Subject: [PATCH 03/33] DB/SAI: Add some missing texts * adds texts for Bimble Longberry * Rescripts Miles Sidney and Wright Williams so texts are said in order of dialect rather than just random texts, also adds the missing texts. --- .../world/2014_07_29_01_world_misc.sql | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sql/updates/world/2014_07_29_01_world_misc.sql diff --git a/sql/updates/world/2014_07_29_01_world_misc.sql b/sql/updates/world/2014_07_29_01_world_misc.sql new file mode 100644 index 00000000000..c5bfb6ba585 --- /dev/null +++ b/sql/updates/world/2014_07_29_01_world_misc.sql @@ -0,0 +1,38 @@ +UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`='' WHERE `entry` IN(28347,7978); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(28347,28355,7978) and `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid` BETWEEN 2834700 AND 2834703 and `source_type`=9; + +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 +(7978, 0, 0, 0, 1, 0, 100, 0, 0, 30000, 15000, 45000, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bimble Longberry - OOC - Say'), +(28347, 0, 0, 0, 1, 0, 100, 0, 0, 30000, 60000, 90000, 87, 2834700, 2834701, 2834702, 2834703, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Miles Sidney - OOC - Run Random Script'), +(28347, 0, 1, 0, 10, 0, 100, 0, 1, 20, 30000, 60000, 1, 5, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Miles Sidney - OOC LOS - Say Line 5'), + +(2834700, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Miles Sidney - Script 1 - Say Line 0'), +(2834700, 9, 1, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 19, 28355, 0, 0, 0, 0, 0, 0, 'Miles Sidney - Script 1 - Say Line 2 (Wright Williams)'), +(2834700, 9, 2, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Miles Sidney - Script 1 - Say Line 4'), +(2834701, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 28355, 0, 0, 0, 0, 0, 0, 'Miles Sidney - Script 2 - Say Line 0 (Wright Williams)'), +(2834701, 9, 1, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Miles Sidney - Script 2 - Say Line 1'), +(2834702, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 19, 28355, 0, 0, 0, 0, 0, 0, 'Miles Sidney - Script 3 - Say Line 1 (Wright Williams)'), +(2834702, 9, 1, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Miles Sidney - Script 3 - Say Line 2'), +(2834703, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 19, 28355, 0, 0, 0, 0, 0, 0, 'Miles Sidney - Script 4 - Say Line 3 (Wright Williams)'), +(2834703, 9, 1, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Miles Sidney - Script 4 - Say Line 3'); + +DELETE FROM `creature_text` WHERE `entry` IN(7978,28347,28355); +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES +(7978, 0, 1, 'Straight from the lush forests of Elwynn, get your fresh fruit right here.', 12, 7, 100, 0, 0, 0, 'Bimble Longberry', 4021), +(7978, 0, 2, 'Juicy fruits for sale!', 12, 7, 100, 0, 0, 0, 'Bimble Longberry', 4019), +(7978, 0, 3, 'Sink your teeth into a fresh, ripe apple.', 12, 7, 100, 0, 0, 0, 'Bimble Longberry', 4020), +(28355, 0, 0, 'Sir, our customers are complaining that there''s not enough Maiden''s Anguish in our Deadly Poisons.', 12, 0, 100, 0, 0, 0, 'Wright Williams', 27801), +(28355, 1, 0, 'Sir, I think we were close with the Lethargy Root in that last poison recipe.', 12, 0, 100, 0, 0, 0, 'Wright Williams', 27803), +(28355, 2, 0, 'I''m working on it, I just don''t want to sell it until I''m happy with it. It shouldn''t be long.', 12, 0, 100, 0, 0, 0, 'Wright Williams', 27808), +(28355, 3, 0, 'Sir, our customers are complaining that there''s too much Deathweed in our Anesthetics.', 12, 0, 100, 0, 0, 0, 'Wright Williams', 27802), +(28347, 0, 0, 'Wright, have you finished that new concoction you''ve been working on? I''m tired of these spores filling up my shop!', 12, 0, 100, 0, 0, 0, 'Miles Sidney', 27804), +(28347, 1, 0, 'Then put twice as much in next time!', 12, 0, 100, 0, 0, 0, 'Miles Sidney', 27805), +(28347, 2, 0, 'Remember, kid: You''re always more wrong than you think you are. Double It!', 12, 0, 100, 0, 0, 0, 'Miles Sidney', 27807), +(28347, 3, 0, 'Only put half as much in next time.', 12, 0, 100, 0, 0, 0, 'Miles Sidney', 27806), +(28347, 4, 0, 'That''s what you always say. Sometimes I think you''re never going to finish that thing.', 12, 0, 100, 0, 0, 0, 'Miles Sidney', 27810), +(28347, 5, 0, 'Greetings.', 12, 7, 100, 3, 0, 0, 'Miles Sidney', 43337), +(28347, 5, 1, 'Greetings, $c.', 12, 7, 100, 3, 0, 0, 'Miles Sidney', 43330), +(28347, 5, 2, 'Greetings! Please have a look around.', 12, 7, 100, 3, 0, 0, 'Miles Sidney',43333), +(28347, 5, 3, 'Let me know if you need help finding anything, $c.', 12, 7, 100, 3, 0, 0, 'Miles Sidney', 43335), +(28347, 5, 4, 'Welcome. May I help you find something?', 12, 7, 100, 3, 0, 0, 'Miles Sidney', 43336); From 09a10f2872c0f7b5d4e28c82445b0dfe36b18c5c Mon Sep 17 00:00:00 2001 From: DDuarte Date: Tue, 29 Jul 2014 14:59:17 +0100 Subject: [PATCH 04/33] Core/Channels: Do not allow creation of channels starting with digits --- src/server/game/Handlers/ChannelHandler.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/server/game/Handlers/ChannelHandler.cpp b/src/server/game/Handlers/ChannelHandler.cpp index c95eadc7d90..cda6e7a4efb 100644 --- a/src/server/game/Handlers/ChannelHandler.cpp +++ b/src/server/game/Handlers/ChannelHandler.cpp @@ -20,6 +20,8 @@ #include "ChannelMgr.h" #include "Player.h" +#include + void WorldSession::HandleJoinChannel(WorldPacket& recvPacket) { uint32 channelId; @@ -45,6 +47,9 @@ void WorldSession::HandleJoinChannel(WorldPacket& recvPacket) if (channelName.empty()) return; + if (isdigit(channelName[0])) + return; + if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam())) { cMgr->setTeam(GetPlayer()->GetTeam()); From 7d4514c44777e570a5d1b5f2599e7965436966b5 Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 29 Jul 2014 17:19:20 +0200 Subject: [PATCH 05/33] Core/Chat: Restored split alliance and horde chat channels Closes #12664 --- src/server/game/Chat/Channels/ChannelMgr.cpp | 8 +++++--- src/server/game/Chat/Channels/ChannelMgr.h | 11 +---------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/server/game/Chat/Channels/ChannelMgr.cpp b/src/server/game/Chat/Channels/ChannelMgr.cpp index 00824ae2056..95ed8834010 100644 --- a/src/server/game/Chat/Channels/ChannelMgr.cpp +++ b/src/server/game/Chat/Channels/ChannelMgr.cpp @@ -28,14 +28,16 @@ ChannelMgr::~ChannelMgr() ChannelMgr* ChannelMgr::forTeam(uint32 team) { + static ChannelMgr allianceChannelMgr; + static ChannelMgr hordeChannelMgr; if (sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)) - return AllianceChannelMgr::instance(); // cross-faction + return &allianceChannelMgr; // cross-faction if (team == ALLIANCE) - return AllianceChannelMgr::instance(); + return &allianceChannelMgr; if (team == HORDE) - return HordeChannelMgr::instance(); + return &hordeChannelMgr; return NULL; } diff --git a/src/server/game/Chat/Channels/ChannelMgr.h b/src/server/game/Chat/Channels/ChannelMgr.h index f3ca9694176..fb93af2c310 100644 --- a/src/server/game/Chat/Channels/ChannelMgr.h +++ b/src/server/game/Chat/Channels/ChannelMgr.h @@ -35,13 +35,7 @@ class ChannelMgr ~ChannelMgr(); public: - static ChannelMgr* instance() - { - static ChannelMgr instance; - return &instance; - } - - static ChannelMgr * forTeam(uint32 team); + static ChannelMgr* forTeam(uint32 team); void setTeam(uint32 newTeam) { team = newTeam; } Channel* GetJoinChannel(std::string const& name, uint32 channel_id); @@ -55,7 +49,4 @@ class ChannelMgr void MakeNotOnPacket(WorldPacket* data, std::string const& name); }; -class AllianceChannelMgr : public ChannelMgr { }; -class HordeChannelMgr : public ChannelMgr { }; - #endif From 04f8a902afc711c2ac8aaaa61ec7e686bbb4d784 Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Tue, 29 Jul 2014 17:41:06 +0200 Subject: [PATCH 06/33] Core/Conditions: Added more infos for CONDITION_SPELL error log --- src/server/game/Conditions/ConditionMgr.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index c77b34a39a3..817adc9c45b 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -1756,9 +1756,9 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond) } if (cond->ConditionValue2) - TC_LOG_ERROR("sql.sql", "Spell condition has useless data in value2 (%u)!", cond->ConditionValue2); + TC_LOG_ERROR("sql.sql", "Spell condition has useless data (spell Id: %d) in value2 (%u)!", cond->ConditionValue1, cond->ConditionValue2); if (cond->ConditionValue3) - TC_LOG_ERROR("sql.sql", "Spell condition has useless data in value3 (%u)!", cond->ConditionValue3); + TC_LOG_ERROR("sql.sql", "Spell condition has useless data (spell Id: %d) in value3 (%u)!", cond->ConditionValue1, cond->ConditionValue3); break; } case CONDITION_LEVEL: From 7aff8037b50d2167596de976d12e8c947c9d3a9e Mon Sep 17 00:00:00 2001 From: Dr-J Date: Tue, 29 Jul 2014 17:12:22 +0100 Subject: [PATCH 07/33] Update 2014_07_28_13_world_sai.sql Kill some startup errors. --- sql/updates/world/2014_07_28_13_world_sai.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/updates/world/2014_07_28_13_world_sai.sql b/sql/updates/world/2014_07_28_13_world_sai.sql index a4e110ac06b..dbcc219155d 100644 --- a/sql/updates/world/2014_07_28_13_world_sai.sql +++ b/sql/updates/world/2014_07_28_13_world_sai.sql @@ -28,13 +28,13 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`, (15,1443,0,0,0,25,0,13028,0,0,1,0,'','Show gossip option only if player does not already know goldthorn tea recipe'), (15,1443,0,0,0,7,0,185,180,0,1,0,'','Show Gossip only if player does not have at least 180 skill in cooking'), (15,1443,1,0,0,7,0,171,1,0,0,0,'','Show gossip option only if player has Alchemy'), -(15,1443,1,0,0,25,0,3451,1,0,1,0,'','Show gossip option only if player does not already know Major Trolls Blood Elixir'), +(15,1443,1,0,0,25,0,3451,0,0,1,0,'','Show gossip option only if player does not already know Major Trolls Blood Elixir'), (15,1443,1,0,0,7,0,171,175,0,1,0,'','Show gossip only if player does not have at least 175 skill in Alchemy'), (15,1443,2,0,0,7,0,185,1,0,0,0,'','Show gossip option only if player has cooking'), (15,1443,2,0,0,25,0,13028,0,0,1,0,'','Show gossip option only if player does not already know goldthorn tea recipe'), (15,1443,2,0,0,7,0,185,180,0,0,0,'','Show Gossip only if player has at least 180 skill in cooking'), (15,1443,3,0,0,7,0,171,1,0,0,0,'','Show gossip option only if player has Alchemy'), -(15,1443,3,0,0,25,0,3451,1,0,1,0,'','Show gossip option only if player does not already know Major Trolls Blood Elixir'), +(15,1443,3,0,0,25,0,3451,0,0,1,0,'','Show gossip option only if player does not already know Major Trolls Blood Elixir'), (15,1443,3,0,0,7,0,171,175,0,0,0,'','Show gossip only if player has at least 175 skill in Alchemy'); DELETE FROM `gossip_menu_option` WHERE `menu_id`=1443; From d46c3bf877b88cc9d31bf4bc93bfa6dac286e46c Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 29 Jul 2014 18:26:10 +0200 Subject: [PATCH 08/33] Core/Authserver: Fixed invalid memory access when AsByteArray returns less bytes than expected --- src/server/authserver/Server/AuthSession.cpp | 29 +++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/server/authserver/Server/AuthSession.cpp b/src/server/authserver/Server/AuthSession.cpp index 697fe027f5e..cdd8298174f 100644 --- a/src/server/authserver/Server/AuthSession.cpp +++ b/src/server/authserver/Server/AuthSession.cpp @@ -108,8 +108,13 @@ typedef struct AUTH_RECONNECT_PROOF_C #pragma pack(pop) -#define BYTE_SIZE 32 -#define REALMLIST_SKIP_PACKETS 5 +enum class BufferSizes : uint32 +{ + SRP_6_V = 0x20, + SRP_6_S = 0x20, +}; + +#define REALM_LIST_PACKET_SIZE 5 #define XFER_ACCEPT_SIZE 1 #define XFER_RESUME_SIZE 9 #define XFER_CANCEL_SIZE 1 @@ -122,7 +127,7 @@ std::unordered_map AuthSession::InitHandlers() handlers[AUTH_LOGON_PROOF] = { STATUS_CONNECTED, sizeof(AUTH_LOGON_PROOF_C), &AuthSession::HandleLogonProof }; handlers[AUTH_RECONNECT_CHALLENGE] = { STATUS_CONNECTED, sizeof(AUTH_LOGON_CHALLENGE_C), &AuthSession::HandleReconnectChallenge }; handlers[AUTH_RECONNECT_PROOF] = { STATUS_CONNECTED, sizeof(AUTH_RECONNECT_PROOF_C), &AuthSession::HandleReconnectProof }; - handlers[REALM_LIST] = { STATUS_AUTHED, REALMLIST_SKIP_PACKETS, &AuthSession::HandleRealmList }; + handlers[REALM_LIST] = { STATUS_AUTHED, REALM_LIST_PACKET_SIZE, &AuthSession::HandleRealmList }; handlers[XFER_ACCEPT] = { STATUS_AUTHED, XFER_ACCEPT_SIZE, &AuthSession::HandleXferAccept }; handlers[XFER_RESUME] = { STATUS_AUTHED, XFER_RESUME_SIZE, &AuthSession::HandleXferResume }; handlers[XFER_CANCEL] = { STATUS_AUTHED, XFER_CANCEL_SIZE, &AuthSession::HandleXferCancel }; @@ -318,7 +323,7 @@ bool AuthSession::HandleLogonChallenge() TC_LOG_DEBUG("network", "database authentication values: v='%s' s='%s'", databaseV.c_str(), databaseS.c_str()); // multiply with 2 since bytes are stored as hexstring - if (databaseV.size() != BYTE_SIZE * 2 || databaseS.size() != BYTE_SIZE * 2) + if (databaseV.size() != size_t(BufferSizes::SRP_6_V) * 2 || databaseS.size() != size_t(BufferSizes::SRP_6_S) * 2) SetVSFields(rI); else { @@ -344,10 +349,10 @@ bool AuthSession::HandleLogonChallenge() // B may be calculated < 32B so we force minimal length to 32B pkt.append(B.AsByteArray(32).get(), 32); // 32 bytes pkt << uint8(1); - pkt.append(g.AsByteArray().get(), 1); + pkt.append(g.AsByteArray(1).get(), 1); pkt << uint8(32); pkt.append(N.AsByteArray(32).get(), 32); - pkt.append(s.AsByteArray().get(), s.GetNumBytes()); // 32 bytes + pkt.append(s.AsByteArray(int32(BufferSizes::SRP_6_S)).get(), size_t(BufferSizes::SRP_6_S)); // 32 bytes pkt.append(unk3.AsByteArray(16).get(), 16); uint8 securityFlags = 0; @@ -488,10 +493,10 @@ bool AuthSession::HandleLogonProof() sha.UpdateBigNumbers(&s, &A, &B, &K, NULL); sha.Finalize(); BigNumber M; - M.SetBinary(sha.GetDigest(), 20); + M.SetBinary(sha.GetDigest(), sha.GetLength()); // Check if SRP6 results match (password is correct), else send an error - if (!memcmp(M.AsByteArray().get(), logonProof->M1, 20)) + if (!memcmp(M.AsByteArray(sha.GetLength()).get(), logonProof->M1, 20)) { TC_LOG_DEBUG("server.authserver", "'%s:%d' User '%s' successfully authenticated", GetRemoteIpAddress().to_string().c_str(), GetRemotePort(), _login.c_str()); @@ -909,21 +914,19 @@ bool AuthSession::HandleXferAccept() // Make the SRP6 calculation from hash in dB void AuthSession::SetVSFields(const std::string& rI) { - s.SetRand(BYTE_SIZE * 8); + s.SetRand(int32(BufferSizes::SRP_6_S) * 8); BigNumber I; I.SetHexStr(rI.c_str()); // In case of leading zeros in the rI hash, restore them uint8 mDigest[SHA_DIGEST_LENGTH]; - memset(mDigest, 0, SHA_DIGEST_LENGTH); - if (I.GetNumBytes() <= SHA_DIGEST_LENGTH) - memcpy(mDigest, I.AsByteArray().get(), I.GetNumBytes()); + memcpy(mDigest, I.AsByteArray(SHA_DIGEST_LENGTH).get(), SHA_DIGEST_LENGTH); std::reverse(mDigest, mDigest + SHA_DIGEST_LENGTH); SHA1Hash sha; - sha.UpdateData(s.AsByteArray().get(), s.GetNumBytes()); + sha.UpdateData(s.AsByteArray(uint32(BufferSizes::SRP_6_S)).get(), (uint32(BufferSizes::SRP_6_S))); sha.UpdateData(mDigest, SHA_DIGEST_LENGTH); sha.Finalize(); BigNumber x; From 2cace8f8e41d6659c491ddf4cebb135379c3a818 Mon Sep 17 00:00:00 2001 From: Dr-J Date: Tue, 29 Jul 2014 17:26:52 +0100 Subject: [PATCH 09/33] DB/Misc: Kill some startup errors V2 Resubmit for errors fixed in https://github.com/TrinityCore/TrinityCore/commit/7aff8037b50d2167596de976d12e8c947c9d3a9e from https://github.com/TrinityCore/TrinityCore/commit/e594630d30a831acf5562bf5f964ea4f33c9ace2 --- sql/updates/world/2014_07_29_02_world_misc.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 sql/updates/world/2014_07_29_02_world_misc.sql diff --git a/sql/updates/world/2014_07_29_02_world_misc.sql b/sql/updates/world/2014_07_29_02_world_misc.sql new file mode 100644 index 00000000000..178a278a5df --- /dev/null +++ b/sql/updates/world/2014_07_29_02_world_misc.sql @@ -0,0 +1,2 @@ +UPDATE `conditions` SET `ConditionValue2`=0 WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=1443 AND `SourceEntry`=3 AND `SourceId`=0 AND `ElseGroup`=0 AND `ConditionTypeOrReference`=25 AND `ConditionTarget`=0 AND `ConditionValue1`=3451 AND `ConditionValue2`=1 AND `ConditionValue3`=0; +UPDATE `conditions` SET `ConditionValue2`=0 WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=1443 AND `SourceEntry`=1 AND `SourceId`=0 AND `ElseGroup`=0 AND `ConditionTypeOrReference`=25 AND `ConditionTarget`=0 AND `ConditionValue1`=3451 AND `ConditionValue2`=1 AND `ConditionValue3`=0; From 24a14979fec23fed243c503fcb845e9e3051759f Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Tue, 29 Jul 2014 20:16:16 +0200 Subject: [PATCH 10/33] Scripts/BloodmystIsle: Fix StartUp Errors --- .../scripts/Kalimdor/zone_bloodmyst_isle.cpp | 61 +------------------ 1 file changed, 1 insertion(+), 60 deletions(-) diff --git a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp index 05aab1ef723..81a175b57b7 100644 --- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp @@ -19,14 +19,12 @@ /* ScriptData SDName: Bloodmyst_Isle SD%Complete: 80 -SDComment: Quest support: 9670, 9667 +SDComment: Quest support: 9670 SDCategory: Bloodmyst Isle EndScriptData */ /* ContentData npc_webbed_creature -npc_princess_stillpine -go_princess_stillpines_cage EndContentData */ #include "ScriptMgr.h" @@ -85,64 +83,7 @@ public: } }; -/*###### -## Quest 9667: Saving Princess Stillpine -######*/ - -enum Stillpine -{ - QUEST_SAVING_PRINCESS_STILLPINE = 9667, - NPC_PRINCESS_STILLPINE = 17682, - GO_PRINCESS_STILLPINES_CAGE = 181928, - SPELL_OPENING_PRINCESS_STILLPINE_CREDIT = 31003, - SAY_DIRECTION = 0 -}; - -class go_princess_stillpines_cage : public GameObjectScript -{ -public: - go_princess_stillpines_cage() : GameObjectScript("go_princess_stillpines_cage") { } - - bool OnGossipHello(Player* player, GameObject* go) override - { - go->SetGoState(GO_STATE_READY); - if (Creature* stillpine = go->FindNearestCreature(NPC_PRINCESS_STILLPINE, 25, true)) - { - stillpine->GetMotionMaster()->MovePoint(1, go->GetPositionX(), go->GetPositionY()-15, go->GetPositionZ()); - player->KilledMonsterCredit(NPC_PRINCESS_STILLPINE, stillpine->GetGUID()); - } - return true; - } -}; - -class npc_princess_stillpine : public CreatureScript -{ -public: - npc_princess_stillpine() : CreatureScript("npc_princess_stillpine") { } - - struct npc_princess_stillpineAI : public ScriptedAI - { - npc_princess_stillpineAI(Creature* creature) : ScriptedAI(creature) { } - - void MovementInform(uint32 type, uint32 id) override - { - if (type == POINT_MOTION_TYPE && id == 1) - { - Talk(SAY_DIRECTION); - me->DespawnOrUnsummon(); - } - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_princess_stillpineAI(creature); - } -}; - void AddSC_bloodmyst_isle() { new npc_webbed_creature(); - new npc_princess_stillpine(); - new go_princess_stillpines_cage(); } From 655b04bb9b4bd6b68be36274e1632891a29012cb Mon Sep 17 00:00:00 2001 From: Malcrom Date: Tue, 29 Jul 2014 17:22:36 -0230 Subject: [PATCH 11/33] DB/Waypoints: Pathing for Unending Voidwraith at Manaforge Ultrus. Only Visual but nice to have done :) --- .../world/2014_07_29_03_world_waypoints.sql | 161 ++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 sql/updates/world/2014_07_29_03_world_waypoints.sql diff --git a/sql/updates/world/2014_07_29_03_world_waypoints.sql b/sql/updates/world/2014_07_29_03_world_waypoints.sql new file mode 100644 index 00000000000..e68dc55f714 --- /dev/null +++ b/sql/updates/world/2014_07_29_03_world_waypoints.sql @@ -0,0 +1,161 @@ +-- Fix InhabitType for Unending Voidwraith Entry: 19568 +UPDATE creature_template SET `InhabitType`=4 WHERE entry=19568; + +-- Remove overspawns +DELETE FROM `creature` WHERE `guid` IN (70004,69971,69972,69974,69975,69979,69983,69983,69984,69985); + +-- Pathing for Unending Voidwraith Entry: 19568 +SET @NPC := 69987; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3915.081,`position_y`=2111.545,`position_z`=274.4216 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,3910.933,2130.042,268.1047,0,0,0,0,100,0), +(@PATH,2,3906.025,2154.37,268.1672,0,0,0,0,100,0), +(@PATH,3,3902.745,2174.67,268.7223,0,0,0,0,100,0), +(@PATH,4,3897.602,2202.157,270.2776,0,1000,0,80,100,0); + +-- Pathing for Unending Voidwraith Entry: 19568 +SET @NPC := 69988; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3887.315,`position_y`=2258.425,`position_z`=214.2984 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,3886.422,2258.591,207.7289,0,0,1,0,100,0), +(@PATH,2,3880.079,2289.422,171.0624,0,1000,0,81,100,0); + +-- Pathing for Unending Voidwraith Entry: 19568 +SET @NPC := 69989; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3726.479,`position_y`=1961.26,`position_z`=249.9123 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,3726.549,1962.258,241.1067,0,0,1,0,100,0), +(@PATH,2,3726.522,1962.159,210.7784,0,0,0,0,100,0), +(@PATH,3,3726.594,1962.199,171.9171,0,1000,0,82,100,0); + +-- Pathing for Unending Voidwraith Entry: 19568 +SET @NPC := 69991; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4044.87,`position_y`=2025.382,`position_z`=267.5442 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,4065.068,2028.757,270.5326,0,0,0,0,100,0), +(@PATH,2,4080.474,2031.845,270.3937,0,0,0,0,100,0), +(@PATH,3,4114.268,2037.787,271.1436,0,1000,0,83,100,0); + +-- Pathing for Unending Voidwraith Entry: 19568 +SET @NPC := 69993; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4148.985,`position_y`=2042.905,`position_z`=164.7122 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,4148.518,2041.715,179.4717,0,0,0,0,100,0), +(@PATH,2,4148.935,2042.122,214.9162,0,0,0,0,100,0), +(@PATH,3,4149.163,2042.004,249.0274,0,1000,0,84,100,0); + +-- Pathing for Unending Voidwraith Entry: 19568 +SET @NPC := 69994; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3827.957,`position_y`=1979.826,`position_z`=275.0208 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,3827.956,1980.894,268.086,0,0,0,0,100,0), +(@PATH,2,3808.116,1977.663,268.8724,0,0,0,0,100,0), +(@PATH,3,3781.85,1972.763,269.8727,0,0,0,0,100,0), +(@PATH,4,3759.935,1969.464,271.9074,0,1000,0,85,100,0); + +-- Pathing for Unending Voidwraith Entry: 19568 +SET @NPC := 69998; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4151.247,`position_y`=2042.391,`position_z`=245.5923 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,4150.083,2041.977,243.7888,0,0,0,0,100,0), +(@PATH,2,4150.307,2041.957,214.594,0,0,0,0,100,0), +(@PATH,3,4150.337,2041.994,173.4543,0,1000,0,86,100,0); + +-- Pathing for Unending Voidwraith Entry: 19568 +SET @NPC := 69999; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3957.735,`position_y`=1894.359,`position_z`=269.9256 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,3959.09,1891.894,271.8099,0,0,0,0,100,0), +(@PATH,2,3963.445,1862.928,271.171,0,0,0,0,100,0), +(@PATH,3,3969.4,1841.54,271.3934,0,0,0,0,100,0), +(@PATH,4,3976.177,1801.907,271.8932,0,0,0,0,100,0), +(@PATH,5,3978.509,1789.356,271.8932,0,0,0,0,100,0), +(@PATH,6,3985.332,1757.852,271.9979,0,0,0,0,100,0), +(@PATH,7,3988.208,1743.379,272.2765,0,1000,0,87,100,0); + +-- Pathing for Unending Voidwraith Entry: 19568 +SET @NPC := 69978; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3990.148,`position_y`=1735.373,`position_z`=270.1769 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,3990.676,1736.489,274.6074,0,0,0,0,100,0), +(@PATH,2,3984.71,1764.321,270.99,0,0,0,0,100,0), +(@PATH,3,3978.079,1796.415,270.7212,0,0,0,0,100,0), +(@PATH,4,3976.071,1818.841,270.7491,0,0,0,0,100,0), +(@PATH,5,3967.914,1856.6,273.707,0,0,0,0,100,0), +(@PATH,6,3965.208,1873.519,274.3181,0,1000,0,88,100,0); + +-- Pathing for Unending Voidwraith Entry: 19568 +SET @NPC := 69980; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4001.008,`position_y`=1683.551,`position_z`=137.2256 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,4000.599,1682.332,144.5384,0,0,0,0,100,0), +(@PATH,2,4001.468,1682.875,184.6771,0,0,0,0,100,0), +(@PATH,3,4000.325,1683.686,228.1769,0,1000,0,89,100,0); + +-- Pathing for Unending Voidwraith Entry: 19568 +SET @NPC := 69982; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3696.551,`position_y`=1954.486,`position_z`=134.3766 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,3660.113,1949.127,128.0894,0,0,0,0,100,0), +(@PATH,2,3632.976,1946.206,126.9835,0,0,0,0,100,0), +(@PATH,3,3591.018,1935.34,128.265,0,0,0,0,100,0), +(@PATH,4,3570.341,1931.432,128.7372,0,0,0,0,100,0), +(@PATH,5,3552.659,1931.052,126.8722,0,1000,0,90,100,0); + +DELETE FROM `waypoint_scripts` WHERE `id` IN (80,81,82,83,84,85,86,87,88,89,90); +INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`,`guid`) VALUES +(80,0,6,530,1,0,3915.081,2111.545,274.4216,0,880), +(81,0,6,530,1,0,3887.315,2258.425,214.2984,0,881), +(82,0,6,530,1,0,3726.479,1961.26,249.9123,0,882), +(83,0,6,530,1,0,4044.87,2025.382,267.5442,0,883), +(84,0,6,530,1,0,4148.985,2042.905,164.7122,0,884), +(85,0,6,530,1,0,3827.957,1979.826,275.0208,0,885), +(86,0,6,530,1,0,4151.247,2042.391,245.5923,0,886), +(87,0,6,530,1,0,3957.735,1894.359,269.9256,0,887), +(88,0,6,530,1,0,3990.148,1735.373,270.1769,0,888), +(89,0,6,530,1,0,4001.008,1683.551,137.2256,0,889), +(90,0,6,530,1,0,3696.551,1954.486,134.3766,0,890); From 9bbad3f4f49b787590fe10fa898e8256bc58c87a Mon Sep 17 00:00:00 2001 From: Malcrom Date: Tue, 29 Jul 2014 19:07:10 -0230 Subject: [PATCH 12/33] DB/SAI: Some SAI updates to use CMC --- sql/updates/world/2014_07_29_04_world_sai.sql | 196 ++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 sql/updates/world/2014_07_29_04_world_sai.sql diff --git a/sql/updates/world/2014_07_29_04_world_sai.sql b/sql/updates/world/2014_07_29_04_world_sai.sql new file mode 100644 index 00000000000..586be996444 --- /dev/null +++ b/sql/updates/world/2014_07_29_04_world_sai.sql @@ -0,0 +1,196 @@ +-- Feeboz SAI +SET @ENTRY := 4063; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Feeboz - On Aggro - Say Line 0 (No Repeat)"), +(@ENTRY,0,1,0,0,0,100,0,0,0,4600,8400,11,34083,64,0,0,0,0,2,0,0,0,0,0,0,0,"Feeboz - In Combat CMC - Cast 'Fireball'"), +(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Feeboz - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Blackrock Scout SAI +SET @ENTRY := 4064; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2300,3900,11,6660,64,0,0,0,0,2,0,0,0,0,0,0,0,"Blackrock Scout - In Combat CMC - Cast 'Shoot'"), +(@ENTRY,0,1,2,0,0,100,0,1400,4300,16900,25300,11,3019,1,0,0,0,0,1,0,0,0,0,0,0,0,"Blackrock Scout - In Combat - Cast 'Frenzy'"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Blackrock Scout - In Combat - Say Line 0"), +(@ENTRY,0,3,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Blackrock Scout - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Galak Wrangler SAI +SET @ENTRY := 4093; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2300,3900,11,6660,64,0,0,0,0,2,0,0,0,0,0,0,0,"Galak Wrangler - In Combat CMC - Cast 'Shoot'"), +(@ENTRY,0,1,0,0,0,100,0,3000,5500,9000,15000,11,6533,1,0,0,0,0,2,0,0,0,0,0,0,0,"Galak Wrangler - In Combat - Cast 'Net'"), +(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Wrangler - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Galak Scout SAI +SET @ENTRY := 4094; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2300,3900,11,6660,64,0,0,0,0,2,0,0,0,0,0,0,0,"Galak Scout - In Combat CMC - Cast 'Shoot'"), +(@ENTRY,0,1,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Scout - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Galak Stormer SAI +SET @ENTRY := 4097; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,9532,64,0,0,0,0,2,0,0,0,0,0,0,0,"Galak Stormer - In Combat CMC - Cast 'Lightning Bolt' (No Repeat)"), +(@ENTRY,0,1,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Galak Stormer - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Gravelsnout Surveyor SAI +SET @ENTRY := 4116; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,20806,64,0,0,0,0,2,0,0,0,0,0,0,0,"Gravelsnout Surveyor - In Combat CMC - Cast 'Frostbolt'"), +(@ENTRY,0,1,0,0,0,100,0,6000,9000,17000,21000,11,6141,1,0,0,0,0,2,0,0,0,0,0,0,0,"Gravelsnout Surveyor - In Combat - Cast 'Blizzard'"), +(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gravelsnout Surveyor - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Cloud Serpent SAI +SET @ENTRY := 4117; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,8246,64,0,0,0,0,2,0,0,0,0,0,0,0,"Cloud Serpent - In Combat CMC - Cast 'Lightning Bolt'"); + + +-- Elder Cloud Serpent SAI +SET @ENTRY := 4119; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,7000,11000,11,421,65,0,0,0,0,2,0,0,0,0,0,0,0,"Elder Cloud Serpent - In Combat CMC - Cast 'Chain Lightning'"); + +-- Keeper Ordanus SAI +SET @ENTRY := 4273; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,3400,4800,11,9532,64,0,0,0,0,2,0,0,0,0,0,0,0,"Keeper Ordanus - In Combat CMC - Cast 'Lightning Bolt'"), +(@ENTRY,0,1,0,0,0,100,0,3500,6200,20900,34300,11,12747,1,0,0,0,0,5,0,0,0,0,0,0,0,"Keeper Ordanus - In Combat - Cast 'Entangling Roots'"), +(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Keeper Ordanus - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Scarlet Evoker SAI +SET @ENTRY := 4289; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,2400,3800,11,9053,64,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Evoker - In Combat CMC - Cast 'Fireball' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,6000,8000,14000,29000,11,8422,1,0,0,0,0,5,0,0,0,0,0,0,0,"Scarlet Evoker - In Combat - Cast 'Flamestrike' (Normal Dungeon)"), +(@ENTRY,0,2,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Evoker - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Scarlet Diviner SAI +SET @ENTRY := 4291; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,2400,3800,11,9053,64,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Diviner - In Combat CMC - Cast 'Fireball' (Normal Dungeon)"), +(@ENTRY,0,1,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Diviner - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Scarlet Sorcerer SAI +SET @ENTRY := 4294; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,2400,3800,11,9672,64,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Sorcerer - In Combat CMC - Cast 'Frostbolt'(Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,6000,8000,18000,21000,11,6146,1,0,0,0,0,5,0,0,0,0,0,0,0,"Scarlet Sorcerer - In Combat - Cast 'Slow' (Normal Dungeon)"), +(@ENTRY,0,2,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Sorcerer - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Scarlet Conjuror SAI +SET @ENTRY := 4297; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,2400,3800,11,9053,64,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Conjuror - In Combat CMC - Cast 'Fireball' (Normal Dungeon)"), +(@ENTRY,0,1,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Conjuror - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Defias Taskmaster SAI +SET @ENTRY := 4417; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,2200,3800,11,6660,64,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Taskmaster - In Combat CMC - Cast 'Shoot' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,32000,39000,32000,39000,11,6685,1,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Taskmaster - In Combat - Cast 'Piercing Shot' (Normal Dungeon)"); + +-- Defias Wizard SAI +SET @ENTRY := 4418; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,3300,5600,11,9053,64,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Wizard - In Combat CMC - Cast 'Fireball' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,1100,1100,42600,63500,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Wizard - In Combat - Cast 'Quick Flame Ward' (Normal Dungeon)"), +(@ENTRY,0,2,0,0,0,100,2,3300,7800,9600,14200,11,113,32,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Wizard - In Combat - Cast 'Chains of Ice' (Normal Dungeon)"), +(@ENTRY,0,3,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Wizard - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Death Speaker Jargba SAI +SET @ENTRY := 4428; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,2400,3800,11,9613,64,0,0,0,0,2,0,0,0,0,0,0,0,"Death Speaker Jargba - In Combat CMC - Cast 'Shadow Bolt'"), +(@ENTRY,0,1,0,0,0,100,2,7000,10000,10000,15000,11,14515,1,0,0,0,0,6,0,0,0,0,0,0,0,"Death Speaker Jargba - In Combat - Cast 'Dominate Mind'"); + +-- Murkgill Hunter SAI +SET @ENTRY := 4458; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2600,4800,11,10277,64,0,0,0,0,2,0,0,0,0,0,0,0,"Murkgill Hunter - In Combat CMC - Cast 'Throw'"), +(@ENTRY,0,1,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Hunter - Between 0-15% Health - Flee For Assist"); + +-- Murkgill Oracle SAI +SET @ENTRY := 4459; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,9532,64,0,0,0,0,2,0,0,0,0,0,0,0,"Murkgill Oracle - In Combat CMC - Cast 'Lightning Bolt'"), +(@ENTRY,0,1,0,14,0,100,0,700,40,25000,35000,11,11986,1,0,0,0,0,7,0,0,0,0,0,0,0,"Murkgill Oracle - Friendly At 700 Health - Cast 'Healing Wave'"), +(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Oracle - Between 0-15% Health - Flee For Assist"); + +-- Murkgill Lord SAI +SET @ENTRY := 4460; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,1000,1000,1800000,1800000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murkgill Lord - Out of Combat - Cast 'Frost Armor'"), +(@ENTRY,0,1,0,0,0,100,0,0,0,2400,3800,11,9672,64,0,0,0,0,2,0,0,0,0,0,0,0,"Murkgill Lord - In Combat CMC - Cast 'Frostbolt'"), +(@ENTRY,0,2,0,0,0,100,0,6000,9000,15000,18500,11,11831,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - In Combat - Cast 'Frost Nova'"); + +-- Blackrock Hunter SAI +SET @ENTRY := 4462; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,4,0,10,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Blackrock Hunter - On Aggro - Say Line 0"), +(@ENTRY,0,1,0,0,0,100,0,0,0,2200,3800,11,10277,64,0,0,0,0,2,0,0,0,0,0,0,0,"Blackrock Hunter - In Combat CMC - Cast 'Throw'"), +(@ENTRY,0,2,3,0,0,100,0,6400,31400,19700,34400,11,3019,1,0,0,0,0,1,0,0,0,0,0,0,0,"Blackrock Hunter - In Combat - Cast 'Frenzy'"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Blackrock Hunter - In Combat - Say Line 1"), +(@ENTRY,0,4,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Blackrock Hunter - Between 0-15% Health - Flee For Assist"); + +-- Blackrock Summoner SAI +SET @ENTRY := 4463; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,100,1,1000,1000,0,0,11,11939,0,0,0,0,0,1,0,0,0,0,0,0,0,"Blackrock Summoner - Out of Combat - Cast 'Summon Imp' (No Repeat)"), +(@ENTRY,0,1,0,4,0,10,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Blackrock Summoner - On Aggro - Say Line 0 (No Repeat)"), +(@ENTRY,0,2,0,0,0,100,0,0,0,3400,6000,11,20793,64,0,0,0,0,2,0,0,0,0,0,0,0,"Blackrock Summoner - In Combat CMC - Cast 'Fireball'"), +(@ENTRY,0,3,0,0,0,100,0,300,6400,18100,38800,11,184,1,0,0,0,0,1,0,0,0,0,0,0,0,"Blackrock Summoner - In Combat - Cast 'Fire Shield II'"), +(@ENTRY,0,4,5,0,0,100,0,6400,31400,39100,68100,11,3019,1,0,0,0,0,1,0,0,0,0,0,0,0,"Blackrock Summoner - In Combat - Cast 'Frenzy'"), +(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Blackrock Summoner - In Combat - Say Line 1"), +(@ENTRY,0,6,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Blackrock Summoner - Between 0-15% Health - Flee For Assist"); + +-- Scarlet Spellbinder SAI +SET @ENTRY := 4494; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,20822,64,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Spellbinder - In Combat CMC - Cast 'Frostbolt'"), +(@ENTRY,0,1,0,0,0,100,0,6000,9000,15000,18500,11,11831,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - In Combat - Cast 'Frost Nova'"), +(@ENTRY,0,2,0,0,0,100,0,4000,6000,20000,25000,11,11436,1,0,0,0,0,5,0,0,0,0,0,0,0,"Scarlet Spellbinder - In Combat - Cast 'Slow'"), +(@ENTRY,0,3,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Spellbinder - Between 0-15% Health - Flee For Assist"); From 04bb78f6c3c67535cf0627055697d5de757873b0 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Tue, 29 Jul 2014 23:45:34 +0200 Subject: [PATCH 13/33] Scripts/OutdoorPvP: replaced some chat texts with proper defense messages --- .../2014_07_29_05_world_trinity_string.sql | 1 + src/server/authserver/Main.cpp | 4 +- .../game/Achievements/AchievementMgr.cpp | 2 +- src/server/game/Entities/Player/Player.cpp | 8 --- src/server/game/Miscellaneous/Language.h | 53 ----------------- src/server/game/OutdoorPvP/OutdoorPvP.cpp | 30 +++++++++- src/server/game/OutdoorPvP/OutdoorPvP.h | 12 ++++ src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp | 9 +++ src/server/game/OutdoorPvP/OutdoorPvPMgr.h | 2 + src/server/game/Server/WorldSocket.cpp | 6 +- .../scripts/OutdoorPvP/OutdoorPvPEP.cpp | 58 ++++--------------- src/server/scripts/OutdoorPvP/OutdoorPvPEP.h | 15 ++++- .../scripts/OutdoorPvP/OutdoorPvPHP.cpp | 18 ++---- src/server/scripts/OutdoorPvP/OutdoorPvPHP.h | 10 ++++ .../scripts/OutdoorPvP/OutdoorPvPNA.cpp | 10 +--- src/server/scripts/OutdoorPvP/OutdoorPvPNA.h | 10 ++++ .../scripts/OutdoorPvP/OutdoorPvPSI.cpp | 2 + .../scripts/OutdoorPvP/OutdoorPvPTF.cpp | 10 ++-- src/server/scripts/OutdoorPvP/OutdoorPvPTF.h | 10 ++++ .../scripts/OutdoorPvP/OutdoorPvPZM.cpp | 21 ++----- src/server/scripts/OutdoorPvP/OutdoorPvPZM.h | 35 +++++------ .../Database/Implementation/LoginDatabase.cpp | 4 +- 22 files changed, 152 insertions(+), 178 deletions(-) create mode 100644 sql/updates/world/2014_07_29_05_world_trinity_string.sql diff --git a/sql/updates/world/2014_07_29_05_world_trinity_string.sql b/sql/updates/world/2014_07_29_05_world_trinity_string.sql new file mode 100644 index 00000000000..0a35f4ef72c --- /dev/null +++ b/sql/updates/world/2014_07_29_05_world_trinity_string.sql @@ -0,0 +1 @@ +DELETE FROM `trinity_string` WHERE `entry` BETWEEN 10001 AND 10048; diff --git a/src/server/authserver/Main.cpp b/src/server/authserver/Main.cpp index 69e0d5a1e64..701792293de 100644 --- a/src/server/authserver/Main.cpp +++ b/src/server/authserver/Main.cpp @@ -78,8 +78,8 @@ int main(int argc, char** argv) TC_LOG_INFO("server.authserver", "%s (authserver)", _FULLVERSION); TC_LOG_INFO("server.authserver", " to stop.\n"); TC_LOG_INFO("server.authserver", "Using configuration file %s.", configFile.c_str()); - TC_LOG_INFO("server.worldserver", "Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION)); - TC_LOG_INFO("server.worldserver", "Using Boost version: %i.%i.%i", BOOST_VERSION / 100000, BOOST_VERSION / 100 % 1000, BOOST_VERSION % 100); + TC_LOG_INFO("server.authserver", "Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION)); + TC_LOG_INFO("server.authserver", "Using Boost version: %i.%i.%i", BOOST_VERSION / 100000, BOOST_VERSION / 100 % 1000, BOOST_VERSION % 100); // authserver PID file creation std::string pidFile = sConfigMgr->GetStringDefault("PidFile", ""); diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index d54b0572252..e38b9f352e9 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -60,7 +60,7 @@ namespace Trinity private: Player const* _player; ChatMsg _msgType; - int32 _textId; + uint32 _textId; uint32 _achievementId; }; } // namespace Trinity diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index ee93fc09f5e..ba8e8eafe79 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2965,14 +2965,6 @@ void Player::GiveXP(uint32 xp, Unit* victim, float group_rate) sScriptMgr->OnGivePlayerXP(this, xp, victim); - // Favored experience increase START - uint32 zone = GetZoneId(); - float favored_exp_mult = 0; - if ((HasAura(32096) || HasAura(32098)) && (zone == 3483 || zone == 3562 || zone == 3836 || zone == 3713 || zone == 3714)) - favored_exp_mult = 0.05f; // Thrallmar's Favor and Honor Hold's Favor - xp = uint32(xp * (1 + favored_exp_mult)); - // Favored experience increase END - // XP to money conversion processed in Player::RewardQuest if (level >= sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)) return; diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h index 3a680e30217..f4d1bc03144 100644 --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -1136,59 +1136,6 @@ enum TrinityStrings // Use for not-in-offcial-sources patches // 10000-10999 - // opvp hp - LANG_OPVP_HP_CAPTURE_OVERLOOK_H = 10001, - LANG_OPVP_HP_CAPTURE_OVERLOOK_A = 10002, - LANG_OPVP_HP_CAPTURE_STADIUM_H = 10003, - LANG_OPVP_HP_CAPTURE_STADIUM_A = 10004, - LANG_OPVP_HP_CAPTURE_BROKENHILL_H = 10005, - LANG_OPVP_HP_CAPTURE_BROKENHILL_A = 10006, - LANG_OPVP_HP_LOSE_OVERLOOK_H = 10007, - LANG_OPVP_HP_LOSE_OVERLOOK_A = 10008, - LANG_OPVP_HP_LOSE_STADIUM_H = 10009, - LANG_OPVP_HP_LOSE_STADIUM_A = 10010, - LANG_OPVP_HP_LOSE_BROKENHILL_H = 10011, - LANG_OPVP_HP_LOSE_BROKENHILL_A = 10012, - // opvp zm - LANG_OPVP_ZM_CAPTURE_WEST_H = 10013, - LANG_OPVP_ZM_CAPTURE_WEST_A = 10014, - LANG_OPVP_ZM_CAPTURE_EAST_H = 10015, - LANG_OPVP_ZM_CAPTURE_EAST_A = 10016, - LANG_OPVP_ZM_CAPTURE_GY_H = 10017, - LANG_OPVP_ZM_CAPTURE_GY_A = 10018, - LANG_OPVP_ZM_LOSE_WEST_H = 10019, - LANG_OPVP_ZM_LOSE_WEST_A = 10020, - LANG_OPVP_ZM_LOSE_EAST_H = 10021, - LANG_OPVP_ZM_LOSE_EAST_A = 10022, - LANG_OPVP_ZM_LOSE_GY_H = 10023, - LANG_OPVP_ZM_LOSE_GY_A = 10024, - // opvp na - LANG_OPVP_NA_CAPTURE_H = 10025, - LANG_OPVP_NA_CAPTURE_A = 10026, - LANG_OPVP_NA_LOSE_H = 10027, - LANG_OPVP_NA_LOSE_A = 10028, - // opvp tf - LANG_OPVP_TF_CAPTURE_H = 10029, - LANG_OPVP_TF_CAPTURE_A = 10030, - LANG_OPVP_TF_LOSE_H = 10031, - LANG_OPVP_TF_LOSE_A = 10032, - // opvp ep - LANG_OPVP_EP_CAPTURE_NPT_H = 10033, - LANG_OPVP_EP_CAPTURE_NPT_A = 10034, - LANG_OPVP_EP_CAPTURE_EWT_H = 10035, - LANG_OPVP_EP_CAPTURE_EWT_A = 10036, - LANG_OPVP_EP_CAPTURE_CGT_H = 10037, - LANG_OPVP_EP_CAPTURE_CGT_A = 10038, - LANG_OPVP_EP_CAPTURE_PWT_H = 10039, - LANG_OPVP_EP_CAPTURE_PWT_A = 10040, - LANG_OPVP_EP_LOSE_NPT_H = 10041, - LANG_OPVP_EP_LOSE_NPT_A = 10042, - LANG_OPVP_EP_LOSE_EWT_H = 10043, - LANG_OPVP_EP_LOSE_EWT_A = 10044, - LANG_OPVP_EP_LOSE_CGT_H = 10045, - LANG_OPVP_EP_LOSE_CGT_A = 10046, - LANG_OPVP_EP_LOSE_PWT_H = 10047, - LANG_OPVP_EP_LOSE_PWT_A = 10048, // opvp si LANG_OPVP_SI_CAPTURE_H = 10049, LANG_OPVP_SI_CAPTURE_A = 10050, diff --git a/src/server/game/OutdoorPvP/OutdoorPvP.cpp b/src/server/game/OutdoorPvP/OutdoorPvP.cpp index cacec14d5e6..976b5d3c0d7 100644 --- a/src/server/game/OutdoorPvP/OutdoorPvP.cpp +++ b/src/server/game/OutdoorPvP/OutdoorPvP.cpp @@ -25,10 +25,29 @@ #include "WorldPacket.h" #include "GridNotifiers.h" #include "GridNotifiersImpl.h" -#include "GridNotifiers.h" -#include "GridNotifiersImpl.h" #include "CellImpl.h" +class DefenseMessageBuilder +{ + public: + DefenseMessageBuilder(uint32 zoneId, uint32 id) + : _zoneId(zoneId), _id(id) { } + + void operator()(WorldPacket& data, LocaleConstant locale) const + { + std::string text = sOutdoorPvPMgr->GetDefenseMessage(_zoneId, _id, locale); + + data.Initialize(SMSG_DEFENSE_MESSAGE, 4 + 4 + text.length()); + data.append(_zoneId); + data.append(text.length()); + data << text; + } + + private: + uint32 _zoneId; ///< ZoneId + uint32 _id; ///< BroadcastTextId +}; + OPvPCapturePoint::OPvPCapturePoint(OutdoorPvP* pvp): m_capturePointGUID(0), m_capturePoint(NULL), m_maxValue(0.0f), m_minValue(0.0f), m_maxSpeed(0), m_value(0), m_team(TEAM_NEUTRAL), m_OldState(OBJECTIVESTATE_NEUTRAL), @@ -616,3 +635,10 @@ void OutdoorPvP::OnGameObjectRemove(GameObject* go) if (OPvPCapturePoint *cp = GetCapturePoint(go->GetDBTableGUIDLow())) cp->m_capturePoint = NULL; } + +void OutdoorPvP::SendDefenseMessage(uint32 zoneId, uint32 id) +{ + DefenseMessageBuilder builder(zoneId, id); + Trinity::LocalizedPacketDo localizer(builder); + BroadcastWorker(localizer, zoneId); +} diff --git a/src/server/game/OutdoorPvP/OutdoorPvP.h b/src/server/game/OutdoorPvP/OutdoorPvP.h index 9a7cc92c2ed..ba2d7ae9d1b 100644 --- a/src/server/game/OutdoorPvP/OutdoorPvP.h +++ b/src/server/game/OutdoorPvP/OutdoorPvP.h @@ -261,6 +261,8 @@ class OutdoorPvP : public ZoneScript } } + void SendDefenseMessage(uint32 zoneId, uint32 id); + protected: // the map of the objectives belonging to this outdoorpvp @@ -300,6 +302,16 @@ class OutdoorPvP : public ZoneScript bool HasPlayer(Player const* player) const; void TeamCastSpell(TeamId team, int32 spellId); + + template + void BroadcastWorker(Worker& _worker, uint32 zoneId) + { + for (uint32 i = 0; i < BG_TEAMS_COUNT; ++i) + for (PlayerSet::iterator itr = m_players[i].begin(); itr != m_players[i].end(); ++itr) + if (Player* player = ObjectAccessor::FindPlayer(*itr)) + if (player->GetZoneId() == zoneId) + _worker(player); + } }; #endif /*OUTDOOR_PVP_H_*/ diff --git a/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp b/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp index 2b05f7255f6..5306a3ca3c1 100644 --- a/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp +++ b/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp @@ -228,3 +228,12 @@ void OutdoorPvPMgr::HandlePlayerResurrects(Player* player, uint32 zoneid) if (itr->second->HasPlayer(player)) itr->second->HandlePlayerResurrects(player, zoneid); } + +std::string OutdoorPvPMgr::GetDefenseMessage(uint32 zoneId, uint32 id, LocaleConstant locale) const +{ + if (BroadcastText const* bct = sObjectMgr->GetBroadcastText(id)) + return bct->GetText(locale); + + TC_LOG_ERROR("outdoorpvp", "Can not find DefenseMessage (Zone: %u, Id: %u). BroadcastText (Id: %u) does not exist.", zoneId, id, id); + return ""; +} diff --git a/src/server/game/OutdoorPvP/OutdoorPvPMgr.h b/src/server/game/OutdoorPvP/OutdoorPvPMgr.h index 1a9db2b682e..bf2f14a291f 100644 --- a/src/server/game/OutdoorPvP/OutdoorPvPMgr.h +++ b/src/server/game/OutdoorPvP/OutdoorPvPMgr.h @@ -84,6 +84,8 @@ class OutdoorPvPMgr void HandleDropFlag(Player* player, uint32 spellId); + std::string GetDefenseMessage(uint32 zoneId, uint32 id, LocaleConstant locale) const; + private: typedef std::vector OutdoorPvPSet; typedef std::map OutdoorPvPMap; diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index 99c2d27ed03..e5fea7e6b6b 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -199,7 +199,7 @@ void WorldSocket::HandleAuthSession(WorldPacket& recvPacket) unk3, clientSeed); - // Get the account information from the realmd database + // Get the account information from the auth database // 0 1 2 3 4 5 6 7 8 // SELECT id, sessionkey, last_ip, locked, expansion, mutetime, locale, recruiter, os FROM account WHERE username = ? PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_INFO_BY_NAME); @@ -239,7 +239,7 @@ void WorldSocket::HandleAuthSession(WorldPacket& recvPacket) // id has to be fetched at this point, so that first actual account response that fails can be logged id = fields[0].GetUInt32(); - ///- Re-check ip locking (same check as in realmd). + ///- Re-check ip locking (same check as in auth). if (fields[3].GetUInt8() == 1) // if ip is locked { if (strcmp(fields[2].GetCString(), address.c_str())) @@ -299,7 +299,7 @@ void WorldSocket::HandleAuthSession(WorldPacket& recvPacket) security = fields[0].GetUInt8(); } - // Re-check account ban (same check as in realmd) + // Re-check account ban (same check as in auth) stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_BANS); stmt->setUInt32(0, id); diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp index 687eb3f388d..45d52d7f560 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp @@ -24,8 +24,6 @@ #include "ObjectAccessor.h" #include "OutdoorPvPMgr.h" #include "Creature.h" -#include "Language.h" -#include "World.h" #include "GossipDef.h" OPvPCapturePointEP_EWT::OPvPCapturePointEP_EWT(OutdoorPvP* pvp) @@ -38,16 +36,8 @@ OPvPCapturePointEP_EWT::OPvPCapturePointEP_EWT(OutdoorPvP* pvp) void OPvPCapturePointEP_EWT::ChangeState() { // if changing from controlling alliance to horde or vice versa - if ( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State ) - { - sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_EWT_A)); + if (m_OldState == OBJECTIVESTATE_ALLIANCE || m_OldState == OBJECTIVESTATE_HORDE) ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, 0); - } - else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State ) - { - sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_EWT_H)); - ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, 0); - } uint32 artkit = 21; @@ -58,14 +48,14 @@ void OPvPCapturePointEP_EWT::ChangeState() artkit = 2; SummonSupportUnitAtNorthpassTower(ALLIANCE); ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, ALLIANCE); - if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_EWT_A)); + m_PvP->SendDefenseMessage(EP_GraveYardZone, TEXT_EASTWALL_TOWER_TAKEN_ALLIANCE); break; case OBJECTIVESTATE_HORDE: m_TowerState = EP_TS_H; artkit = 1; SummonSupportUnitAtNorthpassTower(HORDE); ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, HORDE); - if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_EWT_H)); + m_PvP->SendDefenseMessage(EP_GraveYardZone, TEXT_EASTWALL_TOWER_TAKEN_HORDE); break; case OBJECTIVESTATE_NEUTRAL: m_TowerState = EP_TS_N; @@ -176,16 +166,8 @@ OPvPCapturePointEP_NPT::OPvPCapturePointEP_NPT(OutdoorPvP* pvp) void OPvPCapturePointEP_NPT::ChangeState() { // if changing from controlling alliance to horde or vice versa - if ( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State ) - { - sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_NPT_A)); + if (m_OldState == OBJECTIVESTATE_ALLIANCE || m_OldState == OBJECTIVESTATE_HORDE) ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, 0); - } - else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State ) - { - sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_NPT_H)); - ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, 0); - } uint32 artkit = 21; @@ -196,14 +178,14 @@ void OPvPCapturePointEP_NPT::ChangeState() artkit = 2; SummonGO(ALLIANCE); ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, ALLIANCE); - if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_NPT_A)); + m_PvP->SendDefenseMessage(EP_GraveYardZone, TEXT_NORTHPASS_TOWER_TAKEN_ALLIANCE); break; case OBJECTIVESTATE_HORDE: m_TowerState = EP_TS_H; artkit = 1; SummonGO(HORDE); ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, HORDE); - if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_NPT_H)); + m_PvP->SendDefenseMessage(EP_GraveYardZone, TEXT_NORTHPASS_TOWER_TAKEN_HORDE); break; case OBJECTIVESTATE_NEUTRAL: m_TowerState = EP_TS_N; @@ -318,16 +300,8 @@ OPvPCapturePointEP_CGT::OPvPCapturePointEP_CGT(OutdoorPvP* pvp) void OPvPCapturePointEP_CGT::ChangeState() { // if changing from controlling alliance to horde or vice versa - if ( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State ) - { - sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_CGT_A)); + if (m_OldState == OBJECTIVESTATE_ALLIANCE || m_OldState == OBJECTIVESTATE_HORDE) ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_CGT, 0); - } - else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State ) - { - sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_CGT_H)); - ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_CGT, 0); - } uint32 artkit = 21; @@ -338,14 +312,14 @@ void OPvPCapturePointEP_CGT::ChangeState() artkit = 2; LinkGraveYard(ALLIANCE); ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_CGT, ALLIANCE); - if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_CGT_A)); + m_PvP->SendDefenseMessage(EP_GraveYardZone, TEXT_CROWN_GUARD_TOWER_TAKEN_ALLIANCE); break; case OBJECTIVESTATE_HORDE: m_TowerState = EP_TS_H; artkit = 1; LinkGraveYard(HORDE); ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_CGT, HORDE); - if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_CGT_H)); + m_PvP->SendDefenseMessage(EP_GraveYardZone, TEXT_CROWN_GUARD_TOWER_TAKEN_HORDE); break; case OBJECTIVESTATE_NEUTRAL: m_TowerState = EP_TS_N; @@ -447,16 +421,8 @@ OPvPCapturePointEP_PWT::OPvPCapturePointEP_PWT(OutdoorPvP* pvp) void OPvPCapturePointEP_PWT::ChangeState() { // if changing from controlling alliance to horde or vice versa - if ( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State ) - { - sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_PWT_A)); + if ( m_OldState == OBJECTIVESTATE_ALLIANCE || m_OldState == OBJECTIVESTATE_HORDE) ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_PWT, 0); - } - else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State ) - { - sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_PWT_H)); - ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_PWT, 0); - } uint32 artkit = 21; @@ -467,14 +433,14 @@ void OPvPCapturePointEP_PWT::ChangeState() SummonFlightMaster(ALLIANCE); artkit = 2; ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_PWT, ALLIANCE); - if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_PWT_A)); + m_PvP->SendDefenseMessage(EP_GraveYardZone, TEXT_PLAGUEWOOD_TOWER_TAKEN_ALLIANCE); break; case OBJECTIVESTATE_HORDE: m_TowerState = EP_TS_H; SummonFlightMaster(HORDE); artkit = 1; ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_PWT, HORDE); - if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_PWT_H)); + m_PvP->SendDefenseMessage(EP_GraveYardZone, TEXT_PLAGUEWOOD_TOWER_TAKEN_HORDE); break; case OBJECTIVESTATE_NEUTRAL: m_TowerState = EP_TS_N; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h index 50b412348cf..923010e7192 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h @@ -18,9 +18,22 @@ #ifndef OUTDOOR_PVP_EP_ #define OUTDOOR_PVP_EP_ -#include "DBCStructure.h" #include "OutdoorPvP.h" +enum DefenseMessages +{ + TEXT_PLAGUEWOOD_TOWER_TAKEN_ALLIANCE = 13629, // '|cffffff00The Plaguewood Tower has been taken by the Alliance!|r' + TEXT_NORTHPASS_TOWER_TAKEN_ALLIANCE = 13630, // '|cffffff00Northpass Tower has been taken by the Alliance!|r' + TEXT_EASTWALL_TOWER_TAKEN_ALLIANCE = 13631, // '|cffffff00Eastwall Tower has been taken by the Alliance!|r' + TEXT_CROWN_GUARD_TOWER_TAKEN_ALLIANCE = 13632, // '|cffffff00Crown Guard Tower has been taken by the Alliance!|r' + TEXT_PLAGUEWOOD_TOWER_TAKEN_HORDE = 13634, // '|cffffff00The Plaguewood Tower has been taken by the Horde!|r' + TEXT_NORTHPASS_TOWER_TAKEN_HORDE = 13635, // '|cffffff00Northpass Tower has been taken by the Horde!|r' + TEXT_EASTWALL_TOWER_TAKEN_HORDE = 13636, // '|cffffff00Eastwall Tower has been taken by the Horde!|r' + TEXT_CROWN_GUARD_TOWER_TAKEN_HORDE = 13633, // '|cffffff00Crown Guard Tower has been taken by the Horde!|r' + TEXT_ALL_TOWERS_IN_CONTROL_ALLIANCE = 13638, // (NYI) '|cff33ccffAll four towers are now in control of the Alliance!|r' + TEXT_ALL_TOWERS_IN_CONTROL_HORDE = 13637, // (NYI) '|cffff0000All four towers are now in control of the Horde!|r' +}; + const uint32 EP_AllianceBuffs[4] = {11413, 11414, 11415, 1386}; const uint32 EP_HordeBuffs[4] = {30880, 30683, 30682, 29520}; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp index 99b782336ec..d8f5c0f654f 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp @@ -20,18 +20,12 @@ #include "OutdoorPvP.h" #include "OutdoorPvPMgr.h" #include "Player.h" -#include "WorldPacket.h" -#include "World.h" #include "ObjectMgr.h" -#include "Language.h" +#include "WorldPacket.h" -const uint32 HP_LANG_LOSE_A[HP_TOWER_NUM] = {LANG_OPVP_HP_LOSE_BROKENHILL_A, LANG_OPVP_HP_LOSE_OVERLOOK_A, LANG_OPVP_HP_LOSE_STADIUM_A}; +const uint32 HP_LANG_CAPTURE_A[HP_TOWER_NUM] = { TEXT_BROKEN_HILL_TAKEN_ALLIANCE, TEXT_OVERLOOK_TAKEN_ALLIANCE, TEXT_STADIUM_TAKEN_ALLIANCE }; -const uint32 HP_LANG_LOSE_H[HP_TOWER_NUM] = {LANG_OPVP_HP_LOSE_BROKENHILL_H, LANG_OPVP_HP_LOSE_OVERLOOK_H, LANG_OPVP_HP_LOSE_STADIUM_H}; - -const uint32 HP_LANG_CAPTURE_A[HP_TOWER_NUM] = {LANG_OPVP_HP_CAPTURE_BROKENHILL_A, LANG_OPVP_HP_CAPTURE_OVERLOOK_A, LANG_OPVP_HP_CAPTURE_STADIUM_A}; - -const uint32 HP_LANG_CAPTURE_H[HP_TOWER_NUM] = {LANG_OPVP_HP_CAPTURE_BROKENHILL_H, LANG_OPVP_HP_CAPTURE_OVERLOOK_H, LANG_OPVP_HP_CAPTURE_STADIUM_H}; +const uint32 HP_LANG_CAPTURE_H[HP_TOWER_NUM] = { TEXT_BROKEN_HILL_TAKEN_HORDE, TEXT_OVERLOOK_TAKEN_HORDE, TEXT_STADIUM_TAKEN_HORDE }; OPvPCapturePointHP::OPvPCapturePointHP(OutdoorPvP* pvp, OutdoorPvPHPTowerType type) : OPvPCapturePoint(pvp), m_TowerType(type) @@ -177,13 +171,11 @@ void OPvPCapturePointHP::ChangeState() field = HP_MAP_A[m_TowerType]; if (uint32 alliance_towers = ((OutdoorPvPHP*)m_PvP)->GetAllianceTowersControlled()) ((OutdoorPvPHP*)m_PvP)->SetAllianceTowersControlled(--alliance_towers); - sWorld->SendZoneText(OutdoorPvPHPBuffZones[0], sObjectMgr->GetTrinityStringForDBCLocale(HP_LANG_LOSE_A[m_TowerType])); break; case OBJECTIVESTATE_HORDE: field = HP_MAP_H[m_TowerType]; if (uint32 horde_towers = ((OutdoorPvPHP*)m_PvP)->GetHordeTowersControlled()) ((OutdoorPvPHP*)m_PvP)->SetHordeTowersControlled(--horde_towers); - sWorld->SendZoneText(OutdoorPvPHPBuffZones[0], sObjectMgr->GetTrinityStringForDBCLocale(HP_LANG_LOSE_H[m_TowerType])); break; case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE: field = HP_MAP_N[m_TowerType]; @@ -220,7 +212,7 @@ void OPvPCapturePointHP::ChangeState() uint32 alliance_towers = ((OutdoorPvPHP*)m_PvP)->GetAllianceTowersControlled(); if (alliance_towers < 3) ((OutdoorPvPHP*)m_PvP)->SetAllianceTowersControlled(++alliance_towers); - sWorld->SendZoneText(OutdoorPvPHPBuffZones[0], sObjectMgr->GetTrinityStringForDBCLocale(HP_LANG_CAPTURE_A[m_TowerType])); + m_PvP->SendDefenseMessage(OutdoorPvPHPBuffZones[0], HP_LANG_CAPTURE_A[m_TowerType]); break; } case OBJECTIVESTATE_HORDE: @@ -231,7 +223,7 @@ void OPvPCapturePointHP::ChangeState() uint32 horde_towers = ((OutdoorPvPHP*)m_PvP)->GetHordeTowersControlled(); if (horde_towers < 3) ((OutdoorPvPHP*)m_PvP)->SetHordeTowersControlled(++horde_towers); - sWorld->SendZoneText(OutdoorPvPHPBuffZones[0], sObjectMgr->GetTrinityStringForDBCLocale(HP_LANG_CAPTURE_H[m_TowerType])); + m_PvP->SendDefenseMessage(OutdoorPvPHPBuffZones[0], HP_LANG_CAPTURE_H[m_TowerType]); break; } case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE: diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.h b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.h index fa78da4732d..e2140ac9941 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.h @@ -20,6 +20,16 @@ #include "OutdoorPvP.h" +enum DefenseMessages +{ + TEXT_OVERLOOK_TAKEN_ALLIANCE = 14841, // '|cffffff00The Overlook has been taken by the Alliance!|r' + TEXT_OVERLOOK_TAKEN_HORDE = 14842, // '|cffffff00The Overlook has been taken by the Horde!|r' + TEXT_STADIUM_TAKEN_ALLIANCE = 14843, // '|cffffff00The Stadium has been taken by the Alliance!|r' + TEXT_STADIUM_TAKEN_HORDE = 14844, // '|cffffff00The Stadium has been taken by the Horde!|r' + TEXT_BROKEN_HILL_TAKEN_ALLIANCE = 14845, // '|cffffff00Broken Hill has been taken by the Alliance!|r' + TEXT_BROKEN_HILL_TAKEN_HORDE = 14846, // '|cffffff00Broken Hill has been taken by the Horde!|r' +}; + #define OutdoorPvPHPBuffZonesNum 6 // HP, citadel, ramparts, blood furnace, shattered halls, mag's lair const uint32 OutdoorPvPHPBuffZones[OutdoorPvPHPBuffZonesNum] = { 3483, 3563, 3562, 3713, 3714, 3836 }; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp index 9008b0867d7..1b6b19115b9 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp @@ -21,8 +21,6 @@ #include "ObjectMgr.h" #include "OutdoorPvPMgr.h" #include "WorldPacket.h" -#include "Language.h" -#include "World.h" OutdoorPvPNA::OutdoorPvPNA() { @@ -135,10 +133,6 @@ void OPvPCapturePointNA::FactionTakeOver(uint32 team) { if (m_ControllingFaction) sObjectMgr->RemoveGraveYardLink(NA_HALAA_GRAVEYARD, NA_HALAA_GRAVEYARD_ZONE, m_ControllingFaction, false); - if (m_ControllingFaction == ALLIANCE) - sWorld->SendZoneText(NA_HALAA_GRAVEYARD_ZONE, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_NA_LOSE_A)); - else if (m_ControllingFaction == HORDE) - sWorld->SendZoneText(NA_HALAA_GRAVEYARD_ZONE, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_NA_LOSE_H)); m_ControllingFaction = team; if (m_ControllingFaction) @@ -160,7 +154,7 @@ void OPvPCapturePointNA::FactionTakeOver(uint32 team) m_PvP->SendUpdateWorldState(NA_UI_HORDE_GUARDS_SHOW, 0); m_PvP->SendUpdateWorldState(NA_UI_ALLIANCE_GUARDS_SHOW, 1); m_PvP->SendUpdateWorldState(NA_UI_GUARDS_LEFT, m_GuardsAlive); - sWorld->SendZoneText(NA_HALAA_GRAVEYARD_ZONE, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_NA_CAPTURE_A)); + m_PvP->SendDefenseMessage(NA_HALAA_GRAVEYARD_ZONE, TEXT_HALAA_TAKEN_ALLIANCE); } else { @@ -172,7 +166,7 @@ void OPvPCapturePointNA::FactionTakeOver(uint32 team) m_PvP->SendUpdateWorldState(NA_UI_HORDE_GUARDS_SHOW, 1); m_PvP->SendUpdateWorldState(NA_UI_ALLIANCE_GUARDS_SHOW, 0); m_PvP->SendUpdateWorldState(NA_UI_GUARDS_LEFT, m_GuardsAlive); - sWorld->SendZoneText(NA_HALAA_GRAVEYARD_ZONE, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_NA_CAPTURE_H)); + m_PvP->SendDefenseMessage(NA_HALAA_GRAVEYARD_ZONE, TEXT_HALAA_TAKEN_HORDE); } UpdateWyvernRoostWorldState(NA_ROOST_S); UpdateWyvernRoostWorldState(NA_ROOST_N); diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h index 011775e1715..eccf74afa35 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h @@ -20,6 +20,16 @@ #include "OutdoorPvP.h" +enum DefenseMessages +{ + TEXT_ALL_GUARDS_DEFEATED = 15017, // (NYI) '|cffffff00All the guards have been defeated!|r' + TEXT_HALAA_TAKEN_ALLIANCE = 15018, // '|cffffff00The Alliance has taken control of Halaa!|r' + TEXT_HALAA_TAKEN_HORDE = 15019, // '|cffffff00The Horde has taken control of Halaa!|r' + TEXT_HALAA_DEFENSELESS = 15020, // (NYI) '|cffffff00Halaa is defenseless!|r' + TEXT_HALAA_GAINING_CONTROL_HORDE = 15493, // (NYI) '|cffffff00The Horde is gaining control of Halaa!|r' + TEXT_HALAA_GAINING_CONTROL_ALLIANCE = 15494 // (NYI) '|cffffff00The Alliance is gaining control of Halaa!|r' +}; + /// @todo "sometimes" set to neutral enum OutdoorPvPNASpells diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp index a3ef9ce7b5c..66c7564fc5c 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp @@ -95,6 +95,7 @@ bool OutdoorPvPSI::HandleAreaTrigger(Player* player, uint32 trigger) if (m_Gathered_A >= SI_MAX_RESOURCES) { TeamApplyBuff(TEAM_ALLIANCE, SI_CENARION_FAVOR); + /// @todo: confirm this text sWorld->SendZoneText(OutdoorPvPSIBuffZones[0], sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_SI_CAPTURE_A)); m_LastController = ALLIANCE; m_Gathered_A = 0; @@ -120,6 +121,7 @@ bool OutdoorPvPSI::HandleAreaTrigger(Player* player, uint32 trigger) if (m_Gathered_H >= SI_MAX_RESOURCES) { TeamApplyBuff(TEAM_HORDE, SI_CENARION_FAVOR); + /// @todo: confirm this text sWorld->SendZoneText(OutdoorPvPSIBuffZones[0], sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_SI_CAPTURE_H)); m_LastController = HORDE; m_Gathered_A = 0; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp index c8c707a1958..cafbd2188fb 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp @@ -22,8 +22,6 @@ #include "WorldPacket.h" #include "Player.h" #include "ObjectMgr.h" -#include "Language.h" -#include "World.h" OutdoorPvPTF::OutdoorPvPTF() { @@ -286,14 +284,14 @@ void OPvPCapturePointTF::ChangeState() { if (uint32 alliance_towers = ((OutdoorPvPTF*)m_PvP)->GetAllianceTowersControlled()) ((OutdoorPvPTF*)m_PvP)->SetAllianceTowersControlled(--alliance_towers); - sWorld->SendZoneText(OutdoorPvPTFBuffZones[0], sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_TF_LOSE_A)); + m_PvP->SendDefenseMessage(OutdoorPvPTFBuffZones[0], TEXT_SPIRIT_TOWER_LOSE_ALLIANCE); } // if changing from controlling horde to alliance else if (m_OldState == OBJECTIVESTATE_HORDE) { if (uint32 horde_towers = ((OutdoorPvPTF*)m_PvP)->GetHordeTowersControlled()) ((OutdoorPvPTF*)m_PvP)->SetHordeTowersControlled(--horde_towers); - sWorld->SendZoneText(OutdoorPvPTFBuffZones[0], sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_TF_LOSE_H)); + m_PvP->SendDefenseMessage(OutdoorPvPTFBuffZones[0], TEXT_SPIRIT_TOWER_LOSE_HORDE); } uint32 artkit = 21; @@ -308,7 +306,7 @@ void OPvPCapturePointTF::ChangeState() if (alliance_towers < TF_TOWER_NUM) ((OutdoorPvPTF*)m_PvP)->SetAllianceTowersControlled(++alliance_towers); - sWorld->SendZoneText(OutdoorPvPTFBuffZones[0], sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_TF_CAPTURE_A)); + m_PvP->SendDefenseMessage(OutdoorPvPTFBuffZones[0], TEXT_SPIRIT_TOWER_TAKEN_ALLIANCE); for (PlayerSet::iterator itr = m_activePlayers[0].begin(); itr != m_activePlayers[0].end(); ++itr) if (Player* player = ObjectAccessor::FindPlayer(*itr)) @@ -323,7 +321,7 @@ void OPvPCapturePointTF::ChangeState() if (horde_towers < TF_TOWER_NUM) ((OutdoorPvPTF*)m_PvP)->SetHordeTowersControlled(++horde_towers); - sWorld->SendZoneText(OutdoorPvPTFBuffZones[0], sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_TF_CAPTURE_H)); + m_PvP->SendDefenseMessage(OutdoorPvPTFBuffZones[0], TEXT_SPIRIT_TOWER_TAKEN_HORDE); for (PlayerSet::iterator itr = m_activePlayers[1].begin(); itr != m_activePlayers[1].end(); ++itr) if (Player* player = ObjectAccessor::FindPlayer(*itr)) diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h index 2c4ad0445be..6d2d5e45575 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h @@ -20,6 +20,16 @@ #include "OutdoorPvP.h" +enum DefenseMessages +{ + TEXT_BONE_WASTES_TAKEN_ALLIANCE = 16120, // (NYI) '|cffffff00The Alliance has taken control of The Bone Wastes!|r' + TEXT_BONE_WASTES_TAKEN_HORDE = 16119, // (NYI) '|cffffff00The Horde has taken control of The Bone Wastes!|r' + TEXT_SPIRIT_TOWER_TAKEN_ALLIANCE = 18285, // '|cffffff00The Alliance has taken control of a Spirit Tower!|r' + TEXT_SPIRIT_TOWER_TAKEN_HORDE = 18286, // '|cffffff00The Horde has taken control of a Spirit Tower!|r' + TEXT_SPIRIT_TOWER_LOSE_ALLIANCE = 18288, // '|cffffff00The Alliance has lost control of a Spirit Tower!|r' + TEXT_SPIRIT_TOWER_LOSE_HORDE = 18287 // '|cffffff00The Horde has lost control of a Spirit Tower!|r' +}; + const uint8 OutdoorPvPTFBuffZonesNum = 5; const uint32 OutdoorPvPTFBuffZones[OutdoorPvPTFBuffZonesNum] = diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp index d54a4f7d4d7..85978b64eed 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp @@ -24,7 +24,6 @@ #include "ObjectAccessor.h" #include "WorldPacket.h" #include "GossipDef.h" -#include "World.h" OPvPCapturePointZM_Beacon::OPvPCapturePointZM_Beacon(OutdoorPvP* pvp, ZM_BeaconType type) : OPvPCapturePoint(pvp), m_TowerType(type), m_TowerState(ZM_TOWERSTATE_N) @@ -78,14 +77,12 @@ void OPvPCapturePointZM_Beacon::ChangeState() { if (uint32 alliance_towers = ((OutdoorPvPZM*)m_PvP)->GetAllianceTowersControlled()) ((OutdoorPvPZM*)m_PvP)->SetAllianceTowersControlled(--alliance_towers); - sWorld->SendZoneText(ZM_GRAVEYARD_ZONE, sObjectMgr->GetTrinityStringForDBCLocale(ZMBeaconLoseA[m_TowerType])); } // if changing from controlling horde to alliance else if (m_OldState == OBJECTIVESTATE_HORDE) { if (uint32 horde_towers = ((OutdoorPvPZM*)m_PvP)->GetHordeTowersControlled()) ((OutdoorPvPZM*)m_PvP)->SetHordeTowersControlled(--horde_towers); - sWorld->SendZoneText(ZM_GRAVEYARD_ZONE, sObjectMgr->GetTrinityStringForDBCLocale(ZMBeaconLoseH[m_TowerType])); } switch (m_State) @@ -96,7 +93,7 @@ void OPvPCapturePointZM_Beacon::ChangeState() uint32 alliance_towers = ((OutdoorPvPZM*)m_PvP)->GetAllianceTowersControlled(); if (alliance_towers < ZM_NUM_BEACONS) ((OutdoorPvPZM*)m_PvP)->SetAllianceTowersControlled(++alliance_towers); - sWorld->SendZoneText(ZM_GRAVEYARD_ZONE, sObjectMgr->GetTrinityStringForDBCLocale(ZMBeaconCaptureA[m_TowerType])); + m_PvP->SendDefenseMessage(ZM_GRAVEYARD_ZONE, ZMBeaconCaptureA[m_TowerType]); break; } case OBJECTIVESTATE_HORDE: @@ -105,7 +102,7 @@ void OPvPCapturePointZM_Beacon::ChangeState() uint32 horde_towers = ((OutdoorPvPZM*)m_PvP)->GetHordeTowersControlled(); if (horde_towers < ZM_NUM_BEACONS) ((OutdoorPvPZM*)m_PvP)->SetHordeTowersControlled(++horde_towers); - sWorld->SendZoneText(ZM_GRAVEYARD_ZONE, sObjectMgr->GetTrinityStringForDBCLocale(ZMBeaconCaptureH[m_TowerType])); + m_PvP->SendDefenseMessage(ZM_GRAVEYARD_ZONE, ZMBeaconCaptureH[m_TowerType]); break; } case OBJECTIVESTATE_NEUTRAL: @@ -220,8 +217,6 @@ int32 OPvPCapturePointZM_GraveYard::HandleOpenGo(Player* player, uint64 guid) { if (player->HasAura(ZM_BATTLE_STANDARD_A) && m_GraveYardState != ZM_GRAVEYARD_A) { - if (m_GraveYardState == ZM_GRAVEYARD_H) - sWorld->SendZoneText(ZM_GRAVEYARD_ZONE, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_ZM_LOSE_GY_H)); m_GraveYardState = ZM_GRAVEYARD_A; DelObject(0); // only one gotype is used in the whole outdoor pvp, no need to call it a constant AddObject(0, ZM_Banner_A.entry, ZM_Banner_A.map, ZM_Banner_A.x, ZM_Banner_A.y, ZM_Banner_A.z, ZM_Banner_A.o, ZM_Banner_A.rot0, ZM_Banner_A.rot1, ZM_Banner_A.rot2, ZM_Banner_A.rot3); @@ -229,12 +224,10 @@ int32 OPvPCapturePointZM_GraveYard::HandleOpenGo(Player* player, uint64 guid) sObjectMgr->AddGraveYardLink(ZM_GRAVEYARD_ID, ZM_GRAVEYARD_ZONE, ALLIANCE, false); // add gy m_PvP->TeamApplyBuff(TEAM_ALLIANCE, ZM_CAPTURE_BUFF); player->RemoveAurasDueToSpell(ZM_BATTLE_STANDARD_A); - sWorld->SendZoneText(ZM_GRAVEYARD_ZONE, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_ZM_CAPTURE_GY_A)); + m_PvP->SendDefenseMessage(ZM_GRAVEYARD_ZONE, TEXT_TWIN_SPIRE_RUINS_TAKEN_ALLIANCE); } else if (player->HasAura(ZM_BATTLE_STANDARD_H) && m_GraveYardState != ZM_GRAVEYARD_H) { - if (m_GraveYardState == ZM_GRAVEYARD_A) - sWorld->SendZoneText(ZM_GRAVEYARD_ZONE, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_ZM_LOSE_GY_A)); m_GraveYardState = ZM_GRAVEYARD_H; DelObject(0); // only one gotype is used in the whole outdoor pvp, no need to call it a constant AddObject(0, ZM_Banner_H.entry, ZM_Banner_H.map, ZM_Banner_H.x, ZM_Banner_H.y, ZM_Banner_H.z, ZM_Banner_H.o, ZM_Banner_H.rot0, ZM_Banner_H.rot1, ZM_Banner_H.rot2, ZM_Banner_H.rot3); @@ -242,7 +235,7 @@ int32 OPvPCapturePointZM_GraveYard::HandleOpenGo(Player* player, uint64 guid) sObjectMgr->AddGraveYardLink(ZM_GRAVEYARD_ID, ZM_GRAVEYARD_ZONE, HORDE, false); // add gy m_PvP->TeamApplyBuff(TEAM_HORDE, ZM_CAPTURE_BUFF); player->RemoveAurasDueToSpell(ZM_BATTLE_STANDARD_H); - sWorld->SendZoneText(ZM_GRAVEYARD_ZONE, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_ZM_CAPTURE_GY_H)); + m_PvP->SendDefenseMessage(ZM_GRAVEYARD_ZONE, TEXT_TWIN_SPIRE_RUINS_TAKEN_HORDE); } UpdateTowerState(); } @@ -454,11 +447,7 @@ void OutdoorPvPZM::SendRemoveWorldStates(Player* player) class OutdoorPvP_zangarmarsh : public OutdoorPvPScript { public: - - OutdoorPvP_zangarmarsh() - : OutdoorPvPScript("outdoorpvp_zm") - { - } + OutdoorPvP_zangarmarsh() : OutdoorPvPScript("outdoorpvp_zm") { } OutdoorPvP* GetOutdoorPvP() const override { diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h index fdd093a1bfe..b7a092f74bd 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h @@ -18,9 +18,22 @@ #ifndef OUTDOOR_PVP_ZM_ #define OUTDOOR_PVP_ZM_ -#include "Language.h" #include "OutdoorPvP.h" +enum DefenseMessages +{ + TEXT_WEST_BEACON_TAKEN_ALLIANCE = 15541, // '|cffffff00The Alliance has taken control of the West Beacon!|r' + TEXT_WEST_BEACON_TAKEN_HORDE = 15543, // '|cffffff00The Horde has taken control of the West Beacon!|r' + TEXT_EAST_BEACON_TAKEN_ALLIANCE = 15546, // '|cffffff00The Alliance has taken control of the East Beacon!|r' + TEXT_EAST_BEACON_TAKEN_HORDE = 15545, // '|cffffff00The Horde has taken control of the East Beacon!|r' + TEXT_TWIN_SPIRE_RUINS_TAKEN_ALLIANCE = 15591, // '|cffffff00The Alliance has taken control of Twin Spire Ruins!|r' + TEXT_TWIN_SPIRE_RUINS_TAKEN_HORDE = 15590, // '|cffffff00The Horde has taken control of Twin Spire Ruins!|r' + TEXT_BOTH_BEACONS_TAKEN_ALLIANCE = 16284, // (NYI) '|cffffff00The Alliance has taken control of both beacons!|r' + TEXT_BOTH_BEACONS_TAKEN_HORDE = 16285, // (NYI) '|cffffff00The Horde has taken control of both beacons!|r' + TEXT_BATTLE_STANDARDS_ALLIANCE = 16287, // (NYI) '|cffffff00The Alliance Field Scout is now issuing battle standards.|r' + TEXT_BATTLE_STANDARDS_HORDE = 16288 // (NYI) '|cffffff00The Horde Field Scout is now issuing battle standards.|r' +}; + const uint8 OutdoorPvPZMBuffZonesNum = 5; // the buff is cast in these zones @@ -94,26 +107,14 @@ const zm_beacon ZMBeaconInfo[ZM_NUM_BEACONS] = const uint32 ZMBeaconCaptureA[ZM_NUM_BEACONS] = { - LANG_OPVP_ZM_CAPTURE_EAST_A, - LANG_OPVP_ZM_CAPTURE_WEST_A + TEXT_EAST_BEACON_TAKEN_ALLIANCE, + TEXT_WEST_BEACON_TAKEN_ALLIANCE }; const uint32 ZMBeaconCaptureH[ZM_NUM_BEACONS] = { - LANG_OPVP_ZM_CAPTURE_EAST_H, - LANG_OPVP_ZM_CAPTURE_WEST_H -}; - -const uint32 ZMBeaconLoseA[ZM_NUM_BEACONS] = -{ - LANG_OPVP_ZM_LOSE_EAST_A, - LANG_OPVP_ZM_LOSE_WEST_A -}; - -const uint32 ZMBeaconLoseH[ZM_NUM_BEACONS] = -{ - LANG_OPVP_ZM_LOSE_EAST_H, - LANG_OPVP_ZM_LOSE_WEST_H + TEXT_EAST_BEACON_TAKEN_HORDE, + TEXT_WEST_BEACON_TAKEN_HORDE }; const go_type ZMCapturePoints[ZM_NUM_BEACONS] = diff --git a/src/server/shared/Database/Implementation/LoginDatabase.cpp b/src/server/shared/Database/Implementation/LoginDatabase.cpp index 488ff18dca4..a2b9091a8d5 100644 --- a/src/server/shared/Database/Implementation/LoginDatabase.cpp +++ b/src/server/shared/Database/Implementation/LoginDatabase.cpp @@ -26,13 +26,13 @@ void LoginDatabaseConnection::DoPrepareStatements() PrepareStatement(LOGIN_DEL_EXPIRED_IP_BANS, "DELETE FROM ip_banned WHERE unbandate<>bandate AND unbandate<=UNIX_TIMESTAMP()", CONNECTION_ASYNC); PrepareStatement(LOGIN_UPD_EXPIRED_ACCOUNT_BANS, "UPDATE account_banned SET active = 0 WHERE active = 1 AND unbandate<>bandate AND unbandate<=UNIX_TIMESTAMP()", CONNECTION_SYNCH); PrepareStatement(LOGIN_SEL_IP_BANNED, "SELECT * FROM ip_banned WHERE ip = ?", CONNECTION_SYNCH); - PrepareStatement(LOGIN_INS_IP_AUTO_BANNED, "INSERT INTO ip_banned (ip, bandate, unbandate, bannedby, banreason) VALUES (?, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()+?, 'Trinity realmd', 'Failed login autoban')", CONNECTION_ASYNC); + PrepareStatement(LOGIN_INS_IP_AUTO_BANNED, "INSERT INTO ip_banned (ip, bandate, unbandate, bannedby, banreason) VALUES (?, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()+?, 'Trinity Auth', 'Failed login autoban')", CONNECTION_ASYNC); PrepareStatement(LOGIN_SEL_IP_BANNED_ALL, "SELECT ip, bandate, unbandate, bannedby, banreason FROM ip_banned WHERE (bandate = unbandate OR unbandate > UNIX_TIMESTAMP()) ORDER BY unbandate", CONNECTION_SYNCH); PrepareStatement(LOGIN_SEL_IP_BANNED_BY_IP, "SELECT ip, bandate, unbandate, bannedby, banreason FROM ip_banned WHERE (bandate = unbandate OR unbandate > UNIX_TIMESTAMP()) AND ip LIKE CONCAT('%%', ?, '%%') ORDER BY unbandate", CONNECTION_SYNCH); PrepareStatement(LOGIN_SEL_ACCOUNT_BANNED, "SELECT bandate, unbandate FROM account_banned WHERE id = ? AND active = 1", CONNECTION_SYNCH); PrepareStatement(LOGIN_SEL_ACCOUNT_BANNED_ALL, "SELECT account.id, username FROM account, account_banned WHERE account.id = account_banned.id AND active = 1 GROUP BY account.id", CONNECTION_SYNCH); PrepareStatement(LOGIN_SEL_ACCOUNT_BANNED_BY_USERNAME, "SELECT account.id, username FROM account, account_banned WHERE account.id = account_banned.id AND active = 1 AND username LIKE CONCAT('%%', ?, '%%') GROUP BY account.id", CONNECTION_SYNCH); - PrepareStatement(LOGIN_INS_ACCOUNT_AUTO_BANNED, "INSERT INTO account_banned VALUES (?, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()+?, 'Trinity realmd', 'Failed login autoban', 1)", CONNECTION_ASYNC); + PrepareStatement(LOGIN_INS_ACCOUNT_AUTO_BANNED, "INSERT INTO account_banned VALUES (?, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()+?, 'Trinity Auth', 'Failed login autoban', 1)", CONNECTION_ASYNC); PrepareStatement(LOGIN_DEL_ACCOUNT_BANNED, "DELETE FROM account_banned WHERE id = ?", CONNECTION_ASYNC); PrepareStatement(LOGIN_SEL_SESSIONKEY, "SELECT a.sessionkey, a.id, aa.gmlevel FROM account a LEFT JOIN account_access aa ON (a.id = aa.id) WHERE username = ?", CONNECTION_SYNCH); PrepareStatement(LOGIN_UPD_VS, "UPDATE account SET v = ?, s = ? WHERE username = ?", CONNECTION_ASYNC); From d2d1d37fbeabdf242dd762fb20525adb5672e1de Mon Sep 17 00:00:00 2001 From: Dr-J Date: Tue, 29 Jul 2014 23:18:03 +0100 Subject: [PATCH 14/33] DB/TEXT: Replace incorrect text Replace text on infused crystal http://www.wowhead.com/npc=16364 with correct emote text which should be used by this npc during quest powering our defenses, Leaving https://github.com/TrinityCore/TrinityCore/issues/12696 open though as there are sill more issues with this quest. --- sql/updates/world/2014_07_29_06_world_misc.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 sql/updates/world/2014_07_29_06_world_misc.sql diff --git a/sql/updates/world/2014_07_29_06_world_misc.sql b/sql/updates/world/2014_07_29_06_world_misc.sql new file mode 100644 index 00000000000..5fb99f4c57a --- /dev/null +++ b/sql/updates/world/2014_07_29_06_world_misc.sql @@ -0,0 +1,3 @@ +DELETE FROM `creature_text` WHERE `entry`=16364; +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES +(16364, 0, 0, '%s releases the last of its energies into the nearby runestone, successfully reactivating it.', 16, 0, 100, 0, 0, 0, 'Infused Crystal', 12272); From b4bafb95aeeedf3a332a16d24ca95c5207b23322 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Tue, 29 Jul 2014 19:50:56 -0230 Subject: [PATCH 15/33] DB/SAI: Some SAI updates to use CMC --- sql/updates/world/2014_07_29_07_world_sai.sql | 172 ++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 sql/updates/world/2014_07_29_07_world_sai.sql diff --git a/sql/updates/world/2014_07_29_07_world_sai.sql b/sql/updates/world/2014_07_29_07_world_sai.sql new file mode 100644 index 00000000000..b8a3d47cbec --- /dev/null +++ b/sql/updates/world/2014_07_29_07_world_sai.sql @@ -0,0 +1,172 @@ +-- Death's Head Adept SAI +SET @ENTRY := 4516; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,2400,3800,11,9672,64,0,0,0,0,2,0,0,0,0,0,0,0,"Death's Head Adept - In Combat CMC - Cast 'Frostbolt' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,3000,6000,10000,15000,11,113,1,0,0,0,0,5,0,0,0,0,0,0,0,"Death's Head Adept - In Combat - Cast 'Chains of Ice' (Normal Dungeon)"), +(@ENTRY,0,2,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Adept - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Death's Head Priest SAI +SET @ENTRY := 4517; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,100,2,1000,1000,1800000,1800000,11,1245,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Out of Combat - Cast 'Power Word: Fortitude' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,0,0,2400,3800,11,9613,64,0,0,0,0,2,0,0,0,0,0,0,0,"Death's Head Priest - In Combat CMC - Cast 'Shadow Bolt' (No Repeat) (Normal Dungeon)"), +(@ENTRY,0,2,0,2,0,100,2,0,40,14000,20000,11,6063,1,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Between 0-40% Health - Cast 'Heal' (Normal Dungeon)"), +(@ENTRY,0,3,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Death's Head Priest - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Burning Blade Augur SAI +SET @ENTRY := 4663; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,20807,64,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Blade Augur - In Combat CMC - Cast 'Shadow Bolt'"), +(@ENTRY,0,1,0,0,0,100,0,3000,6000,25000,25000,11,6909,32,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Blade Augur - In Combat - Cast 'Curse of Thorns'"), +(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Augur - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Burning Blade Adept SAI +SET @ENTRY := 4665; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,19816,64,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Blade Adept - In Combat CMC - Cast 'Fireball'"), +(@ENTRY,0,1,0,2,0,100,1,0,20,0,0,11,6742,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Adept - Between 0-20% Health - Cast 'Bloodlust'"), +(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Adept - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Burning Blade Shadowmage SAI +SET @ENTRY := 4667; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,20816,64,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Blade Shadowmage - In Combat CMC - Cast 'Shadow Bolt'"), +(@ENTRY,0,1,0,0,0,100,0,5000,12000,18000,26000,11,9657,1,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Shadowmage - In Combat - Cast 'Shadow Shell'"), +(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Shadowmage - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Burning Blade Summoner SAI +SET @ENTRY := 4668; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,100,1,1000,1000,0,0,11,688,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Summoner - Out of Combat - Cast 'Summon Imp'"), +(@ENTRY,0,1,0,0,0,100,0,0,0,2400,3800,11,20825,64,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Blade Summoner - In Combat CMC - Cast 'Shadow Bolt'"), +(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Summoner - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Fallenroot Hellcaller SAI +SET @ENTRY := 4799; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,2400,3800,11,9613,64,0,0,0,0,2,0,0,0,0,0,0,0,"Fallenroot Hellcaller - In Combat CMC - Cast 'Shadow Bolt' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,12000,15000,30000,45000,11,8129,1,0,0,0,0,5,0,0,0,0,0,0,0,"Fallenroot Hellcaller - In Combat - Cast 'Mana Burn' (Normal Dungeon)"); + +-- Blackfathom Tide Priestess SAI +SET @ENTRY := 4802; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,3400,4800,11,9672,64,0,0,0,0,2,0,0,0,0,0,0,0,"Blackfathom Tide Priestess - In Combat CMC - Cast 'Frostbolt'"), +(@ENTRY,0,1,0,2,0,100,0,0,30,25000,35000,11,11642,1,0,0,0,0,1,0,0,0,0,0,0,0,"Blackfathom Tide Priestess - Between 0-30% Health - Cast 'Heal'"), +(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Blackfathom Tide Priestess - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Twilight Aquamancer SAI +SET @ENTRY := 4811; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,100,3,1000,1000,0,0,11,8372,1,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Aquamancer - Out of Combat - Cast 'Summon Aqua Guardian' (No Repeat)"), +(@ENTRY,0,1,0,0,0,100,2,0,40,2400,3800,11,9672,64,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Aquamancer - In Combat CMC - Cast 'Frostbolt' (Normal Dungeon)"), +(@ENTRY,0,2,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Aquamancer - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Twilight Shadowmage SAI +SET @ENTRY := 4813; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,100,3,1000,1000,0,0,11,12746,1,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Shadowmage - Out of Combat - Cast 'Summon Voidwalker' (No Repeat) (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,0,0,2400,3800,11,9613,64,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Shadowmage - In Combat CMC - Cast 'Shadow Bolt' (Normal Dungeon)"), +(@ENTRY,0,2,0,0,0,100,2,18000,26000,24000,30000,11,7645,1,0,0,0,0,6,0,0,0,0,0,0,0,"Twilight Shadowmage - In Combat - Cast 'Dominate Mind' (Normal Dungeon)"), +(@ENTRY,0,3,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Shadowmage - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Blindlight Oracle SAI +SET @ENTRY := 4820; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,2400,3800,11,9532,64,0,0,0,0,2,0,0,0,0,0,0,0,"Blindlight Oracle - In Combat CMC - Cast 'Lightning Bolt' (Normal Dungeon)"), +(@ENTRY,0,1,0,14,0,100,2,1000,40,30000,40000,11,6063,1,0,0,0,0,7,0,0,0,0,0,0,0,"Blindlight Oracle - Friendly At 1000 Health - Cast 'Heal' (Normal Dungeon)"), +(@ENTRY,0,2,0,2,0,100,2,0,49,22000,22000,11,8362,1,0,0,0,0,1,0,0,0,0,0,0,0,"Blindlight Oracle - Between 0-50% Health - Cast 'Renew' (Normal Dungeon)"), +(@ENTRY,0,3,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Blindlight Oracle - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Lady Sarevess SAI +SET @ENTRY := 4831; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,4,0,100,3,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lady Sarevess - On Aggro - Say Line 0 (No Repeat) (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,0,0,2300,3900,11,6660,64,0,0,0,0,2,0,0,0,0,0,0,0,"Lady Sarevess - In Combat CMC - Cast 'Shoot' (Normal Dungeon)"), +(@ENTRY,0,2,0,0,0,100,2,9000,12000,12000,15000,11,8435,1,0,0,0,0,2,0,0,0,0,0,0,0,"Lady Sarevess - In Combat - Cast 'Forked Lightning' (Normal Dungeon)"), +(@ENTRY,0,3,0,0,0,100,2,6000,8500,9000,13000,11,865,1,0,0,0,0,1,0,0,0,0,0,0,0,"Lady Sarevess - In Combat - Cast 'Frost Nova' (Normal Dungeon)"), +(@ENTRY,0,4,0,0,0,100,2,7000,9000,9000,13000,11,246,33,0,0,0,0,6,0,0,0,0,0,0,0,"Lady Sarevess - In Combat - Cast 'Slow' (Normal Dungeon)"), +(@ENTRY,0,5,0,6,0,100,3,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lady Sarevess - On Just Died - Say Line 1 (Normal Dungeon)"); + +-- Earthcaller Halmgar SAI +SET @ENTRY := 4842; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,100,3,1000,1000,0,0,11,8270,1,0,0,0,0,1,0,0,0,0,0,0,0,"Earthcaller Halmgar - Out of Combat - Cast 'Summon Earth Rumbler' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,0,0,2400,3800,11,9532,64,0,0,0,0,2,0,0,0,0,0,0,0,"Earthcaller Halmgar - In Combat CMC - Cast 'Lightning Bolt' (Normal Dungeon)"), +(@ENTRY,0,2,0,0,0,100,2,0,2000,50000,60000,11,2484,1,0,0,0,0,1,0,0,0,0,0,0,0,"Earthcaller Halmgar - In Combat - Cast 'Earthbind Totem' (Normal Dungeon)"), +(@ENTRY,0,3,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Earthcaller Halmgar - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Shadowforge Surveyor SAI +SET @ENTRY := 4844; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Shadowforge Surveyor - Out of Combat - Cast 'Frost Armor' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,0,0,0,3400,5000,11,9053,64,0,0,0,0,2,0,0,0,0,0,0,0,"Shadowforge Surveyor - In Combat CMC - Cast 'Fireball'"), +(@ENTRY,0,2,0,0,0,100,0,10700,20100,20300,22600,11,11831,1,0,0,0,0,1,0,0,0,0,0,0,0,"Shadowforge Surveyor - In Combat - Cast 'Frost Nova'"), +(@ENTRY,0,3,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadowforge Surveyor - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Shadowforge Darkcaster SAI +SET @ENTRY := 4848; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,2400,3800,11,9081,64,0,0,0,0,2,0,0,0,0,0,0,0,"Shadowforge Darkcaster - In Combat CMC - Cast 'Shadow Bolt Volley' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,9000,13000,11000,15000,11,15800,1,0,0,0,0,5,0,0,0,0,0,0,0,"Shadowforge Darkcaster - In Combat - Cast 'Mana Burn' (Normal Dungeon)"), +(@ENTRY,0,2,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadowforge Darkcaster - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Stonevault Geomancer SAI +SET @ENTRY := 4853; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,2400,3800,11,9053,64,0,0,0,0,2,0,0,0,0,0,0,0,"Stonevault Geomancer - In Combat CMC - Cast 'Fireball' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,4000,8000,30000,38000,11,10452,1,0,0,0,0,2,0,0,0,0,0,0,0,"Stonevault Geomancer - In Combat - Cast 'Flame Buffet' (Normal Dungeon)"), +(@ENTRY,0,2,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stonevault Geomancer - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Grimlok SAI +SET @ENTRY := 4854; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,4,0,100,3,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Grimlok - On Aggro - Say Line 0 (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,0,0,2400,3800,11,9532,64,0,0,0,0,2,0,0,0,0,0,0,0,"Grimlok - In Combat CMC - Cast 'Lightning Bolt' (Normal Dungeon)"), +(@ENTRY,0,2,0,0,0,100,2,8000,12000,21000,31000,11,8292,0,0,0,0,0,2,0,0,0,0,0,0,0,"Grimlok - In Combat - Cast 'Chain Bolt' (Normal Dungeon)"), +(@ENTRY,0,3,0,0,0,100,3,5000,7000,0,0,11,8143,1,0,0,0,0,1,0,0,0,0,0,0,0,"Grimlok - In Combat - Cast 'Tremor Totem' (No Repeat) (Normal Dungeon)"), +(@ENTRY,0,4,0,2,0,100,2,0,50,25000,35000,11,11892,33,0,0,0,0,5,0,0,0,0,0,0,0,"Grimlok - Between 0-50% Health - Cast 'Shrink' (Normal Dungeon)"), +(@ENTRY,0,5,0,2,0,100,2,0,30,30000,35000,11,6742,1,0,0,0,0,1,0,0,0,0,0,0,0,"Grimlok - Between 0-30% Health - Cast 'Bloodlust' (Normal Dungeon)"), +(@ENTRY,0,6,0,5,0,100,3,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Grimlok - On Killed Unit - Say Line 2 (No Repeat) (Normal Dungeon)"); + +-- Stonevault Cave Hunter SAI +SET @ENTRY := 4856; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2800,4700,11,10277,64,0,0,0,0,2,0,0,0,0,0,0,0,"Stonevault Cave Hunter - In Combat CMC - Cast 'Throw'"), +(@ENTRY,0,1,0,0,0,100,0,5900,13200,20300,26700,11,6533,0,0,0,0,0,2,0,0,0,0,0,0,0,"Stonevault Cave Hunter - In Combat - Cast 'Net'"), +(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stonevault Cave Hunter - Between 0-15% Health - Flee For Assist (No Repeat)"); From 89af042fe6b7e2d2497d19316291967cfe4c7210 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Tue, 29 Jul 2014 20:35:31 -0230 Subject: [PATCH 16/33] DB/SAI: More updates to SAI. A lot of non working SAI fixed. --- sql/updates/world/2014_07_29_08_world_sai.sql | 288 ++++++++++++++++++ 1 file changed, 288 insertions(+) create mode 100644 sql/updates/world/2014_07_29_08_world_sai.sql diff --git a/sql/updates/world/2014_07_29_08_world_sai.sql b/sql/updates/world/2014_07_29_08_world_sai.sql new file mode 100644 index 00000000000..3246f547e8b --- /dev/null +++ b/sql/updates/world/2014_07_29_08_world_sai.sql @@ -0,0 +1,288 @@ +-- Gordunni Ogre Mage SAI +SET @ENTRY := 5237; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,9532,64,0,0,0,0,2,0,0,0,0,0,0,0,"Gordunni Ogre Mage - In Combat CMC - Cast 'Lightning Bolt'"), +(@ENTRY,0,1,0,2,0,100,1,0,30,0,0,11,6742,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gordunni Ogre Mage - Between 0-30% Health - Cast 'Bloodlust' (No Repeat)"); + +-- Gordunni Mage-Lord SAI +SET @ENTRY := 5239; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,20823,64,0,0,0,0,2,0,0,0,0,0,0,0,"Gordunni Mage-Lord - In Combat CMC - Cast 'Fireball'"), +(@ENTRY,0,1,0,0,0,100,0,5000,9000,20000,26000,11,20827,1,0,0,0,0,2,0,0,0,0,0,0,0,"Gordunni Mage-Lord - In Combat - Cast 'Flamestrike'"), +(@ENTRY,0,2,0,2,0,100,1,0,30,0,0,11,6742,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gordunni Mage-Lord - Between 0-30% Health - Cast 'Bloodlust' (No Repeat)"); + +-- Woodpaw Mystic SAI +SET @ENTRY := 5254; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,9532,64,0,0,0,0,2,0,0,0,0,0,0,0,"Woodpaw Mystic - In Combat CMC - Cast 'Lightning Bolt'"), +(@ENTRY,0,1,0,14,0,100,0,800,30,45000,45000,11,8005,1,0,0,0,0,7,0,0,0,0,0,0,0,"Woodpaw Mystic - Friendly At 800 Health - Cast 'Healing Wave'"), +(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Woodpaw Mystic - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Atal'ai Witch Doctor SAI +SET @ENTRY := 5259; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,3500,5200,11,9532,64,0,0,0,0,2,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - In Combat CMC - Cast 'Lightning Bolt' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,4900,13100,13100,18400,11,12058,1,0,0,0,0,2,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - In Combat - Cast 'Chain Lightning' (Normal Dungeon)"), +(@ENTRY,0,2,0,0,0,100,2,10900,26100,17100,35100,11,11641,1,0,0,0,0,5,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - In Combat - Cast 'Hex' (Normal Dungeon)"), +(@ENTRY,0,3,0,14,0,100,2,1800,40,12700,23100,11,11986,1,0,0,0,0,7,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - Friendly At 1800 Health - Cast 'Healing Wave' (Normal Dungeon)"), +(@ENTRY,0,4,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Witch Doctor - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Enthralled Atal'ai SAI +SET @ENTRY := 5261; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,5000,12000,18000,25000,11,12021,0,0,0,0,0,2,0,0,0,0,0,0,0,"Enthralled Atal'ai - In Combat - Cast 'Fixate' (Normal Dungeon)"); + +-- Mummified Atal'ai SAI +SET @ENTRY := 5263; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,8000,15000,4000,10000,11,16186,32,0,0,0,0,2,0,0,0,0,0,0,0,"Mummified Atal'ai - In Combat - Cast 'Fevered Plague' (Normal Dungeon)"); + +-- Atal'ai Priest SAI +SET @ENTRY := 5269; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,100,2,1000,1000,1800000,1800000,11,31976,1,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Out of Combat - Cast 'Shadow Shield' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,0,0,2400,3800,11,9613,64,0,0,0,0,2,0,0,0,0,0,0,0,"Atal'ai Priest - In Combat CMC - Cast 'Shadow Bolt' (Normal Dungeon)"), +(@ENTRY,0,2,0,14,0,100,2,1000,30,11000,15000,11,11642,1,0,0,0,0,7,0,0,0,0,0,0,0,"Atal'ai Priest - Friendly At 1000 Health - Cast 'Heal' (Normal Dungeon)"), +(@ENTRY,0,3,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Priest - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Atal'ai Corpse Eater SAI +SET @ENTRY := 5270; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,2,0,100,3,0,30,12000,12000,11,12134,1,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Corpse Eater - Between 0-30% Health - Cast 'Atal'ai Corpse Eat' (No Repeat) (Normal Dungeon)"); + +-- Atal'ai Deathwalker SAI +SET @ENTRY := 5271; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,7300,14500,15900,32200,11,11639,0,0,0,0,0,2,0,0,0,0,0,0,0,"Atal'ai Deathwalker - In Combat - Cast 'Shadow Word: Pain' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,9000,13000,13000,18000,11,12096,1,0,0,0,0,6,0,0,0,0,0,0,0,"Atal'ai Deathwalker - In Combat - Cast 'Fear' (Normal Dungeon)"), +(@ENTRY,0,2,0,6,0,100,3,0,0,0,0,11,12095,7,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai Deathwalker - On Just Died - Cast 'Summon Atal'ai Deathwalker's Spirit' (No Repeat) (Normal Dungeon)"); + +-- Atal'ai High Priest SAI +SET @ENTRY := 5273; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,3600,3600,11,9613,64,0,0,0,0,2,0,0,0,0,0,0,0,"Atal'ai High Priest - In Combat CMC - Cast 'Shadow Bolt' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,40,2,10000,20000,75000,75000,11,12151,1,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai High Priest - In Combat - Cast 'Summon Atal'ai Skeleton' (Normal Dungeon)"), +(@ENTRY,0,2,0,14,0,100,2,2500,40,20000,30000,11,12039,1,0,0,0,0,7,0,0,0,0,0,0,0,"Atal'ai High Priest - Friendly At 2500 Health - Cast 'Heal' (Normal Dungeon)"), +(@ENTRY,0,3,0,2,0,100,3,0,30,0,0,11,12040,1,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai High Priest - Between 0-30% Health - Cast 'Shadow Shield' (No Repeat) (Normal Dungeon)"), +(@ENTRY,0,4,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Atal'ai High Priest - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Ironfur Patriarch SAI +SET @ENTRY := 5274; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,60,0,8000,8000,12000,12000,11,10968,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ironfur Patriarch - In Combat - Cast 'Demoralizing Roar'"); + +-- Nightmare Scalebane SAI +SET @ENTRY := 5277; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,4500,10900,11900,17100,11,3639,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nightmare Scalebane - In Combat - Cast 'Improved Blocking' (Normal Dungeon)"); + +-- Nightmare Wyrmkin SAI +SET @ENTRY := 5280; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,0,0,3400,4800,11,9591,64,0,0,0,0,2,0,0,0,0,0,0,0,"Nightmare Wyrmkin - In Combat CMC - Cast 'Acid Spit' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,9000,14000,23000,27000,11,12098,1,0,0,0,0,6,0,0,0,0,0,0,0,"Nightmare Wyrmkin - In Combat - Cast 'Sleep' (Normal Dungeon)"); + +-- Nightmare Wanderer SAI +SET @ENTRY := 5283; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,13900,16700,12100,19900,11,11976,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nightmare Wanderer - In Combat - Cast 'Strike' (Normal Dungeon)"), +(@ENTRY,0,1,0,9,0,100,2,0,5,23800,38200,11,12097,33,0,0,0,0,2,0,0,0,0,0,0,0,"Nightmare Wanderer - Within 0-5 Range - Cast 'Pierce Armor' (Normal Dungeon)"); + +-- Areatrigger SAI +SET @ENTRY := 5284; +DELETE FROM `areatrigger_scripts` WHERE `entry`=@ENTRY; +INSERT INTO `areatrigger_scripts` VALUES (@ENTRY,"SmartTrigger"); +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=2; +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 +(@ENTRY,2,0,0,46,0,100,0,5284,0,0,0,85,60111,2,0,0,0,0,7,0,0,0,0,0,0,0,"Areatrigger - On Trigger - Cast 'Kill Credit South'"); + +-- Areatrigger SAI +SET @ENTRY := 5285; +DELETE FROM `areatrigger_scripts` WHERE `entry`=@ENTRY; +INSERT INTO `areatrigger_scripts` VALUES (@ENTRY,"SmartTrigger"); +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=2; +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 +(@ENTRY,2,0,0,46,0,100,0,5285,0,0,0,85,60112,2,0,0,0,0,7,0,0,0,0,0,0,0,"Areatrigger - On Trigger - Cast 'Kill Credit Central'"); + +-- Areatrigger SAI +SET @ENTRY := 5286; +DELETE FROM `areatrigger_scripts` WHERE `entry`=@ENTRY; +INSERT INTO `areatrigger_scripts` VALUES (@ENTRY,"SmartTrigger"); +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=2; +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 +(@ENTRY,2,0,0,46,0,100,0,5286,0,0,0,85,60115,2,0,0,0,0,7,0,0,0,0,0,0,0,"Areatrigger - On Trigger - Cast 'Kill Credit North'"); + +-- Areatrigger SAI +SET @ENTRY := 5287; +DELETE FROM `areatrigger_scripts` WHERE `entry`=@ENTRY; +INSERT INTO `areatrigger_scripts` VALUES (@ENTRY,"SmartTrigger"); +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=2; +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 +(@ENTRY,2,0,0,46,0,100,0,5287,0,0,0,85,60117,2,0,0,0,0,7,0,0,0,0,0,0,0,"Areatrigger - On Trigger - Cast 'Kill Credit Northwest'"); + +-- Hakkari Frostwing SAI +SET @ENTRY := 5291; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,5900,9700,15900,32200,11,8398,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hakkari Frostwing - In Combat - Cast 'Frostbolt Volley' (Normal Dungeon)"), +(@ENTRY,0,1,0,9,0,100,2,0,5,8000,17800,11,5708,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hakkari Frostwing - Within 0-5 Range - Cast 'Swoop' (Normal Dungeon)"), +(@ENTRY,0,2,0,0,0,100,2,6900,16800,16800,29600,11,11831,1,0,0,0,0,1,0,0,0,0,0,0,0,"Hakkari Frostwing - In Combat - Cast 'Frost Nova' (Normal Dungeon)"); + +-- Ferocious Rage Scar SAI +SET @ENTRY := 5299; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,60,0,15000,15000,45000,45000,11,3147,0,0,0,0,0,5,0,0,0,0,0,0,0,"Ferocious Rage Scar - In Combat - Cast 'Rend Flesh'"); + +-- Dunemaul Ogre Mage SAI +SET @ENTRY := 5473; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,9053,64,0,0,0,0,2,0,0,0,0,0,0,0,"Dunemaul Ogre Mage - In Combat CMC - Cast 'Fireball'"), +(@ENTRY,0,1,0,0,0,100,0,4000,9000,18000,26000,11,11436,1,0,0,0,0,2,0,0,0,0,0,0,0,"Dunemaul Ogre Mage - In Combat - Cast 'Slow'"), +(@ENTRY,0,2,0,2,0,100,1,0,30,0,0,11,6742,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dunemaul Ogre Mage - Between 0-30% Health - Cast 'Bloodlust' (No Repeat)"); + +-- Dunemaul Brute SAI +SET @ENTRY := 5474; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,4000,7000,9000,12000,11,10966,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dunemaul Brute - In Combat - Cast 'Uppercut'"); + +-- Dunemaul Warlock SAI +SET @ENTRY := 5475; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,9613,64,0,0,0,0,2,0,0,0,0,0,0,0,"Dunemaul Warlock - In Combat CMC - Cast 'Shadow Bolt'"), +(@ENTRY,0,1,0,0,0,100,0,7000,11000,21000,26000,11,2941,1,0,0,0,0,2,0,0,0,0,0,0,0,"Dunemaul Warlock - In Combat - Cast 'Immolate'"), +(@ENTRY,0,2,0,0,0,100,0,3000,5000,180000,188000,11,6909,1,0,0,0,0,2,0,0,0,0,0,0,0,"Dunemaul Warlock - In Combat - Cast 'Curse of Thorns'"); + +-- Thistleshrub Dew Collector SAI +SET @ENTRY := 5481; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,500,2500,22000,26000,11,11922,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thistleshrub Dew Collector - In Combat - Cast 'Entangling Roots'"); + +-- Thistleshrub Rootshaper SAI +SET @ENTRY := 5485; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,500,2500,25000,35000,11,8376,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistleshrub Rootshaper - In Combat - Cast 'Earthgrab Totem'"); + +-- Wastewander Rogue SAI +SET @ENTRY := 5615; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,100,1,1000,1000,0,0,11,30831,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewander Rogue - Out of Combat - Cast 'Stealth'"), +(@ENTRY,0,1,0,0,0,100,0,3000,6000,6000,10000,11,8721,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wastewander Rogue - In Combat - Cast 'Backstab'"); + +-- Wastewander Thief SAI +SET @ENTRY := 5616; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,6000,9000,7000,12000,11,6713,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wastewander Thief - In Combat - Cast 'Disarm'"); + +-- Wastewander Shadow Mage SAI +SET @ENTRY := 5617; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,100,1,1000,1000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewander Shadow Mage - Out of Combat - Cast 'Summon Voidwalker' (No Repeat)"), +(@ENTRY,0,1,0,0,0,100,0,0,0,2400,3800,11,20825,64,0,0,0,0,2,0,0,0,0,0,0,0,"Wastewander Shadow Mage - In Combat CMC - Cast 'Shadow Bolt'"), +(@ENTRY,0,2,0,0,0,100,0,6000,9000,19000,26000,11,20826,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wastewander Shadow Mage - In Combat - Cast 'Immolate'"), +(@ENTRY,0,3,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wastewander Shadow Mage - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Wastewander Bandit SAI +SET @ENTRY := 5618; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,4000,8000,7000,12000,11,8629,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wastewander Bandit - In Combat - Cast 'Gouge'"), +(@ENTRY,0,1,0,0,0,100,0,3000,6000,6000,10000,11,8721,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wastewander Bandit - In Combat - Cast 'Backstab'"); + +-- Sandfury Hideskinner SAI +SET @ENTRY := 5645; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,3000,6000,6000,10000,11,7159,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sandfury Hideskinner - In Combat - Cast 'Backstab'"); + +-- Sandfury Axe Thrower SAI +SET @ENTRY := 5646; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2200,3900,11,10277,64,0,0,0,0,2,0,0,0,0,0,0,0,"Sandfury Axe Thrower - In Combat CMC - Cast 'Throw'"), +(@ENTRY,0,1,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sandfury Axe Thrower - Between 0-15% Health - Flee For Assist (No Repeat)"); + + +-- Sandfury Firecaller SAI +SET @ENTRY := 5647; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,20823,64,0,0,0,0,2,0,0,0,0,0,0,0,"Sandfury Firecaller - In Combat CMC - Cast 'Fireball'"), +(@ENTRY,0,1,0,0,0,85,0,8000,14000,20000,26000,11,11990,1,0,0,0,0,2,0,0,0,0,0,0,0,"Sandfury Firecaller - In Combat - Cast 'Rain of Fire'"), +(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sandfury Firecaller - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Sandfury Shadowcaster SAI +SET @ENTRY := 5648; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,100,2,1000,1000,1800000,1800000,11,20798,1,0,0,0,0,1,0,0,0,0,0,0,0,"Sandfury Shadowcaster - Out of Combat - Cast 'Demon Skin' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,0,0,2400,3800,11,12471,64,0,0,0,0,2,0,0,0,0,0,0,0,"Sandfury Shadowcaster - In Combat CMC - Cast 'Shadow Bolt' (Normal Dungeon)"), +(@ENTRY,0,2,0,0,0,100,2,6000,9000,23000,28000,11,14032,1,0,0,0,0,5,0,0,0,0,0,0,0,"Sandfury Shadowcaster - In Combat - Cast 'Shadow Word: Pain' (Normal Dungeon)"), +(@ENTRY,0,3,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sandfury Shadowcaster - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)"); + +-- Sandfury Blood Drinker SAI +SET @ENTRY := 5649; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,85,2,5500,8000,8000,10000,11,11898,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sandfury Blood Drinker - In Combat - Cast 'Blood Leech' (Normal Dungeon)"); + +-- Sandfury Witch Doctor SAI +SET @ENTRY := 5650; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,2,6000,6000,45000,45000,11,11899,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sandfury Witch Doctor - In Combat - Cast 'Healing Ward' (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,85,2,3000,3000,35000,35000,11,8264,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sandfury Witch Doctor - In Combat - Cast 'Lava Spout Totem' (Normal Dungeon)"), +(@ENTRY,0,2,0,2,0,100,2,0,50,12000,12000,11,17843,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sandfury Witch Doctor - Between 0-50% Health - Cast 'Flash Heal' (Normal Dungeon)"); From 1d42ed8212422d028cf4f3720904790de23059f4 Mon Sep 17 00:00:00 2001 From: Dr-J Date: Wed, 30 Jul 2014 00:36:52 +0100 Subject: [PATCH 17/33] DB/SAI: Eversong woods scripts A couple of quest complete scripts for eversong woods * The Fallen Courier * Abandoned Investigations --- sql/updates/world/2014_07_29_09_world_sai.sql | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 sql/updates/world/2014_07_29_09_world_sai.sql diff --git a/sql/updates/world/2014_07_29_09_world_sai.sql b/sql/updates/world/2014_07_29_09_world_sai.sql new file mode 100644 index 00000000000..ceed8de74de --- /dev/null +++ b/sql/updates/world/2014_07_29_09_world_sai.sql @@ -0,0 +1,20 @@ +UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`='' WHERE `entry` IN(16196,16183, 15951); + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(16196,16183, 15951) 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 +(16183, 0, 0, 0, 38, 0, 100, 0, 1, 1, 0, 0, 91, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Courier Dawnstrider - On Data Set - Remove Bytes 1'), +(16183, 0, 1, 0, 38, 0, 100, 0, 2, 2, 0, 0, 90, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Courier Dawnstrider - On Data Set - Set Bytes 1'), +(16196, 0, 0, 1, 20, 0, 100, 0, 9147, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, 16183, 0, 0, 0, 0, 0, 0, 'Apothecary Thedra - On Quest Reward (The Fallen Courier) - Set Data 1 1 on Courier Dawnstrider'), +(16196, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 7000, 0, 0, 0, 0, 19, 16183, 0, 0, 0, 0, 0, 0, 'Apothecary Thedra - Linked with Previous Event - Say Line 1 on Courier Dawnstrider'), +(16196, 0, 2, 3, 52, 0, 100, 0, 0, 16183, 0, 0, 45, 2, 2, 0, 0, 0, 0, 19, 16183, 0, 0, 0, 0, 0, 0, 'Apothecary Thedra - On Text Over - Set Data 2 2 on Courier Dawnstrider'), +(16196, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apothecary Thedra - Linked with Previous Event - Say Line 1'), +(15951, 0, 0, 1, 20, 0, 100, 0, 8891, 0, 0, 0, 50, 181012, 4000, 0, 0, 0, 0, 8, 0, 0, 0, 9049.713, -7434.266, 84.65627, 2.094393, 'Magister Duskwither - On Quest Reward (Abandoned Investigations) - Spawn Magister Duskwithers Journal'), +(15951, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Magister Duskwither - Linked with Previous Event - Say Line 1'), +(15951, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 26660, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,0 , 0, 'Magister Duskwither - Linked with Previous Event - Cast Duskwither''s Fireball'); + +DELETE FROM `creature_text` WHERE `entry` IN (16183,15951,16196); +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES +(16183, 0, 0, 'Where... where am I?', 12, 0, 100, 0, 0, 0, 'Courier Dawnstrider', 12726), +(15951, 0, 0, 'Good riddance... now none shall be able to repeat my mistakes!', 12, 0, 100, 0, 0, 0, 'Magister Duskwither',11713), +(16196, 0, 0, 'You''re not going anywhere just yet, handsome. Not until you regain your strength.', 12, 0, 100, 0, 0, 0, 'Apothecary Thedra',12728); From 5f9e6db27cacde2fe81d692d7c946c017e483564 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Wed, 30 Jul 2014 03:15:15 +0200 Subject: [PATCH 18/33] Scripts/OutdoorPvP: dropped redundand code --- .../scripts/OutdoorPvP/OutdoorPvPEP.cpp | 135 +----------------- src/server/scripts/OutdoorPvP/OutdoorPvPEP.h | 42 ------ .../scripts/OutdoorPvP/OutdoorPvPHP.cpp | 45 +----- src/server/scripts/OutdoorPvP/OutdoorPvPHP.h | 16 +-- .../scripts/OutdoorPvP/OutdoorPvPNA.cpp | 42 +----- src/server/scripts/OutdoorPvP/OutdoorPvPNA.h | 15 -- .../scripts/OutdoorPvP/OutdoorPvPSI.cpp | 6 +- src/server/scripts/OutdoorPvP/OutdoorPvPSI.h | 2 - .../scripts/OutdoorPvP/OutdoorPvPTF.cpp | 44 +----- src/server/scripts/OutdoorPvP/OutdoorPvPTF.h | 14 -- .../scripts/OutdoorPvP/OutdoorPvPZM.cpp | 38 +---- src/server/scripts/OutdoorPvP/OutdoorPvPZM.h | 28 +--- 12 files changed, 12 insertions(+), 415 deletions(-) diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp index 45d52d7f560..4fb84fa0759 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp @@ -88,17 +88,6 @@ void OPvPCapturePointEP_EWT::ChangeState() SendObjectiveComplete(EP_EWT_CM, 0); } -void OPvPCapturePointEP_EWT::SendChangePhase() -{ - // send this too, sometimes the slider disappears, dunno why :( - SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1); - // send these updates to only the ones in this objective - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase); - // send this too, sometimes it resets :S - SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct); -} - void OPvPCapturePointEP_EWT::FillInitialWorldStates(WorldPacket &data) { data << EP_EWT_A << uint32((m_TowerState & EP_TS_A) != 0); @@ -117,25 +106,6 @@ void OPvPCapturePointEP_EWT::UpdateTowerState() m_PvP->SendUpdateWorldState(EP_EWT_N, (m_TowerState & EP_TS_N) != 0); } -bool OPvPCapturePointEP_EWT::HandlePlayerEnter(Player* player) -{ - if (OPvPCapturePoint::HandlePlayerEnter(player)) - { - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1); - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase); - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct); - return true; - } - return false; -} - -void OPvPCapturePointEP_EWT::HandlePlayerLeave(Player* player) -{ - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0); - OPvPCapturePoint::HandlePlayerLeave(player); -} - void OPvPCapturePointEP_EWT::SummonSupportUnitAtNorthpassTower(uint32 team) { if (m_UnitsSummonedSide != team) @@ -228,17 +198,6 @@ void OPvPCapturePointEP_NPT::ChangeState() SendObjectiveComplete(EP_NPT_CM, 0); } -void OPvPCapturePointEP_NPT::SendChangePhase() -{ - // send this too, sometimes the slider disappears, dunno why :( - SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1); - // send these updates to only the ones in this objective - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase); - // send this too, sometimes it resets :S - SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct); -} - void OPvPCapturePointEP_NPT::FillInitialWorldStates(WorldPacket &data) { data << EP_NPT_A << uint32((m_TowerState & EP_TS_A) != 0); @@ -257,25 +216,6 @@ void OPvPCapturePointEP_NPT::UpdateTowerState() m_PvP->SendUpdateWorldState(EP_NPT_N, (m_TowerState & EP_TS_N) != 0); } -bool OPvPCapturePointEP_NPT::HandlePlayerEnter(Player* player) -{ - if (OPvPCapturePoint::HandlePlayerEnter(player)) - { - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1); - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase); - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct); - return true; - } - return false; -} - -void OPvPCapturePointEP_NPT::HandlePlayerLeave(Player* player) -{ - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0); - OPvPCapturePoint::HandlePlayerLeave(player); -} - void OPvPCapturePointEP_NPT::SummonGO(uint32 team) { if (m_SummonedGOSide != team) @@ -352,17 +292,6 @@ void OPvPCapturePointEP_CGT::ChangeState() SendObjectiveComplete(EP_CGT_CM, 0); } -void OPvPCapturePointEP_CGT::SendChangePhase() -{ - // send this too, sometimes the slider disappears, dunno why :( - SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1); - // send these updates to only the ones in this objective - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase); - // send this too, sometimes it resets :S - SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct); -} - void OPvPCapturePointEP_CGT::FillInitialWorldStates(WorldPacket &data) { data << EP_CGT_A << uint32((m_TowerState & EP_TS_A) != 0); @@ -381,25 +310,6 @@ void OPvPCapturePointEP_CGT::UpdateTowerState() m_PvP->SendUpdateWorldState(EP_CGT_N, (m_TowerState & EP_TS_N) != 0); } -bool OPvPCapturePointEP_CGT::HandlePlayerEnter(Player* player) -{ - if (OPvPCapturePoint::HandlePlayerEnter(player)) - { - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1); - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase); - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct); - return true; - } - return false; -} - -void OPvPCapturePointEP_CGT::HandlePlayerLeave(Player* player) -{ - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0); - OPvPCapturePoint::HandlePlayerLeave(player); -} - void OPvPCapturePointEP_CGT::LinkGraveYard(uint32 team) { if (m_GraveyardSide != team) @@ -483,17 +393,6 @@ void OPvPCapturePointEP_PWT::ChangeState() SendObjectiveComplete(EP_PWT_CM, 0); } -void OPvPCapturePointEP_PWT::SendChangePhase() -{ - // send this too, sometimes the slider disappears, dunno why :( - SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1); - // send these updates to only the ones in this objective - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase); - // send this too, sometimes it resets :S - SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct); -} - void OPvPCapturePointEP_PWT::FillInitialWorldStates(WorldPacket &data) { data << EP_PWT_A << uint32((m_TowerState & EP_TS_A) != 0); @@ -512,25 +411,6 @@ void OPvPCapturePointEP_PWT::UpdateTowerState() m_PvP->SendUpdateWorldState(EP_PWT_N, (m_TowerState & EP_TS_N) != 0); } -bool OPvPCapturePointEP_PWT::HandlePlayerEnter(Player* player) -{ - if (OPvPCapturePoint::HandlePlayerEnter(player)) - { - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1); - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase); - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct); - return true; - } - return false; -} - -void OPvPCapturePointEP_PWT::HandlePlayerLeave(Player* player) -{ - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0); - OPvPCapturePoint::HandlePlayerLeave(player); -} - void OPvPCapturePointEP_PWT::SummonFlightMaster(uint32 team) { if (m_FlightMasterSpawned != team) @@ -688,22 +568,15 @@ void OutdoorPvPEP::FillInitialWorldStates(WorldPacket & data) { data << EP_UI_TOWER_COUNT_A << m_AllianceTowersControlled; data << EP_UI_TOWER_COUNT_H << m_HordeTowersControlled; - data << EP_UI_TOWER_SLIDER_DISPLAY << uint32(0); - data << EP_UI_TOWER_SLIDER_POS << uint32(50); - data << EP_UI_TOWER_SLIDER_N << uint32(100); + for (OPvPCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr) - { itr->second->FillInitialWorldStates(data); - } } void OutdoorPvPEP::SendRemoveWorldStates(Player* player) { player->SendUpdateWorldState(EP_UI_TOWER_COUNT_A, 0); player->SendUpdateWorldState(EP_UI_TOWER_COUNT_H, 0); - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0); - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, 0); - player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, 0); player->SendUpdateWorldState(EP_EWT_A, 0); player->SendUpdateWorldState(EP_EWT_H, 0); @@ -733,11 +606,7 @@ void OutdoorPvPEP::SendRemoveWorldStates(Player* player) class OutdoorPvP_eastern_plaguelands : public OutdoorPvPScript { public: - - OutdoorPvP_eastern_plaguelands() - : OutdoorPvPScript("outdoorpvp_ep") - { - } + OutdoorPvP_eastern_plaguelands() : OutdoorPvPScript("outdoorpvp_ep") { } OutdoorPvP* GetOutdoorPvP() const override { diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h index 923010e7192..f6a2354263d 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h @@ -97,10 +97,6 @@ enum EP_CrownGuardTowerWorldStates enum EP_WorldStates { - EP_UI_TOWER_SLIDER_DISPLAY = 2426, - EP_UI_TOWER_SLIDER_POS = 2427, - EP_UI_TOWER_SLIDER_N = 2428, - EP_UI_TOWER_COUNT_A = 2327, EP_UI_TOWER_COUNT_H = 2328 }; @@ -198,27 +194,18 @@ class OutdoorPvPEP; class OPvPCapturePointEP_EWT : public OPvPCapturePoint { public: - OPvPCapturePointEP_EWT(OutdoorPvP* pvp); void ChangeState(); - void SendChangePhase(); - void FillInitialWorldStates(WorldPacket & data); - // used when player is activated/inactivated in the area - bool HandlePlayerEnter(Player* player); - void HandlePlayerLeave(Player* player); - protected: - void SummonSupportUnitAtNorthpassTower(uint32 team); void UpdateTowerState(); protected: - uint32 m_TowerState; uint32 m_UnitsSummonedSide; @@ -227,27 +214,18 @@ class OPvPCapturePointEP_EWT : public OPvPCapturePoint class OPvPCapturePointEP_NPT : public OPvPCapturePoint { public: - OPvPCapturePointEP_NPT(OutdoorPvP* pvp); void ChangeState(); - void SendChangePhase(); - void FillInitialWorldStates(WorldPacket & data); - // used when player is activated/inactivated in the area - bool HandlePlayerEnter(Player* player); - void HandlePlayerLeave(Player* player); - protected: - void SummonGO(uint32 team); void UpdateTowerState(); protected: - uint32 m_TowerState; uint32 m_SummonedGOSide; @@ -256,27 +234,18 @@ class OPvPCapturePointEP_NPT : public OPvPCapturePoint class OPvPCapturePointEP_CGT : public OPvPCapturePoint { public: - OPvPCapturePointEP_CGT(OutdoorPvP* pvp); void ChangeState(); - void SendChangePhase(); - void FillInitialWorldStates(WorldPacket & data); - // used when player is activated/inactivated in the area - bool HandlePlayerEnter(Player* player); - void HandlePlayerLeave(Player* player); - protected: - void LinkGraveYard(uint32 team); void UpdateTowerState(); protected: - uint32 m_TowerState; uint32 m_GraveyardSide; @@ -285,27 +254,18 @@ class OPvPCapturePointEP_CGT : public OPvPCapturePoint class OPvPCapturePointEP_PWT : public OPvPCapturePoint { public: - OPvPCapturePointEP_PWT(OutdoorPvP* pvp); void ChangeState(); - void SendChangePhase(); - void FillInitialWorldStates(WorldPacket & data); - // used when player is activated/inactivated in the area - bool HandlePlayerEnter(Player* player); - void HandlePlayerLeave(Player* player); - protected: - void SummonFlightMaster(uint32 team); void UpdateTowerState(); protected: - uint32 m_FlightMasterSpawned; uint32 m_TowerState; @@ -314,7 +274,6 @@ class OPvPCapturePointEP_PWT : public OPvPCapturePoint class OutdoorPvPEP : public OutdoorPvP { public: - OutdoorPvPEP(); bool SetupOutdoorPvP(); @@ -333,7 +292,6 @@ class OutdoorPvPEP : public OutdoorPvP void SetControlledState(uint32 index, uint32 state); private: - // how many towers are controlled uint32 EP_Controls[EP_TOWER_NUM]; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp index d8f5c0f654f..b3492b8334b 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp @@ -133,9 +133,7 @@ void OutdoorPvPHP::SendRemoveWorldStates(Player* player) player->SendUpdateWorldState(HP_UI_TOWER_DISPLAY_H, 0); player->SendUpdateWorldState(HP_UI_TOWER_COUNT_H, 0); player->SendUpdateWorldState(HP_UI_TOWER_COUNT_A, 0); - player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_N, 0); - player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_POS, 0); - player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_DISPLAY, 0); + for (int i = 0; i < HP_TOWER_NUM; ++i) { player->SendUpdateWorldState(HP_MAP_N[i], 0); @@ -150,13 +148,9 @@ void OutdoorPvPHP::FillInitialWorldStates(WorldPacket &data) data << uint32(HP_UI_TOWER_DISPLAY_H) << uint32(1); data << uint32(HP_UI_TOWER_COUNT_A) << uint32(m_AllianceTowersControlled); data << uint32(HP_UI_TOWER_COUNT_H) << uint32(m_HordeTowersControlled); - data << uint32(HP_UI_TOWER_SLIDER_DISPLAY) << uint32(0); - data << uint32(HP_UI_TOWER_SLIDER_POS) << uint32(50); - data << uint32(HP_UI_TOWER_SLIDER_N) << uint32(100); + for (OPvPCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr) - { itr->second->FillInitialWorldStates(data); - } } void OPvPCapturePointHP::ChangeState() @@ -264,16 +258,6 @@ void OPvPCapturePointHP::ChangeState() SendObjectiveComplete(HP_CREDITMARKER[m_TowerType], 0); } -void OPvPCapturePointHP::SendChangePhase() -{ - SendUpdateWorldState(HP_UI_TOWER_SLIDER_N, m_neutralValuePct); - // send these updates to only the ones in this objective - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - SendUpdateWorldState(HP_UI_TOWER_SLIDER_POS, phase); - // send this too, sometimes the slider disappears, dunno why :( - SendUpdateWorldState(HP_UI_TOWER_SLIDER_DISPLAY, 1); -} - void OPvPCapturePointHP::FillInitialWorldStates(WorldPacket &data) { switch (m_State) @@ -301,25 +285,6 @@ void OPvPCapturePointHP::FillInitialWorldStates(WorldPacket &data) } } -bool OPvPCapturePointHP::HandlePlayerEnter(Player* player) -{ - if (OPvPCapturePoint::HandlePlayerEnter(player)) - { - player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_DISPLAY, 1); - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_POS, phase); - player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_N, m_neutralValuePct); - return true; - } - return false; -} - -void OPvPCapturePointHP::HandlePlayerLeave(Player* player) -{ - player->SendUpdateWorldState(HP_UI_TOWER_SLIDER_DISPLAY, 0); - OPvPCapturePoint::HandlePlayerLeave(player); -} - void OutdoorPvPHP::HandleKillImpl(Player* player, Unit* killed) { if (killed->GetTypeId() != TYPEID_PLAYER) @@ -354,11 +319,7 @@ void OutdoorPvPHP::SetHordeTowersControlled(uint32 count) class OutdoorPvP_hellfire_peninsula : public OutdoorPvPScript { public: - - OutdoorPvP_hellfire_peninsula() - : OutdoorPvPScript("outdoorpvp_hp") - { - } + OutdoorPvP_hellfire_peninsula() : OutdoorPvPScript("outdoorpvp_hp") { } OutdoorPvP* GetOutdoorPvP() const override { diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.h b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.h index e2140ac9941..5b81960b24f 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.h @@ -62,11 +62,7 @@ enum OutdoorPvPHPWorldStates HP_UI_TOWER_DISPLAY_H = 0x9b9, HP_UI_TOWER_COUNT_H = 0x9ae, - HP_UI_TOWER_COUNT_A = 0x9ac, - - HP_UI_TOWER_SLIDER_N = 2475, - HP_UI_TOWER_SLIDER_POS = 2474, - HP_UI_TOWER_SLIDER_DISPLAY = 2473 + HP_UI_TOWER_COUNT_A = 0x9ac }; const uint32 HP_MAP_N[HP_TOWER_NUM] = {0x9b5, 0x9b2, 0x9a8}; @@ -98,28 +94,19 @@ const go_type HPTowerFlags[HP_TOWER_NUM] = class OPvPCapturePointHP : public OPvPCapturePoint { public: - OPvPCapturePointHP(OutdoorPvP* pvp, OutdoorPvPHPTowerType type); void ChangeState(); - void SendChangePhase(); - void FillInitialWorldStates(WorldPacket & data); - // used when player is activated/inactivated in the area - bool HandlePlayerEnter(Player* player); - void HandlePlayerLeave(Player* player); - private: - OutdoorPvPHPTowerType m_TowerType; }; class OutdoorPvPHP : public OutdoorPvP { public: - OutdoorPvPHP(); bool SetupOutdoorPvP(); @@ -142,7 +129,6 @@ class OutdoorPvPHP : public OutdoorPvP void SetHordeTowersControlled(uint32 count); private: - // how many towers are controlled uint32 m_AllianceTowersControlled; uint32 m_HordeTowersControlled; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp index 1b6b19115b9..1b4828dec51 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp @@ -174,25 +174,6 @@ void OPvPCapturePointNA::FactionTakeOver(uint32 team) UpdateWyvernRoostWorldState(NA_ROOST_E); } -bool OPvPCapturePointNA::HandlePlayerEnter(Player* player) -{ - if (OPvPCapturePoint::HandlePlayerEnter(player)) - { - player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_DISPLAY, 1); - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_POS, phase); - player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_N, m_neutralValuePct); - return true; - } - return false; -} - -void OPvPCapturePointNA::HandlePlayerLeave(Player* player) -{ - player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_DISPLAY, 0); - OPvPCapturePoint::HandlePlayerLeave(player); -} - OPvPCapturePointNA::OPvPCapturePointNA(OutdoorPvP* pvp) : OPvPCapturePoint(pvp), m_capturable(true), m_GuardsAlive(0), m_ControllingFaction(0), m_WyvernStateNorth(0), m_WyvernStateSouth(0), m_WyvernStateEast(0), m_WyvernStateWest(0), @@ -255,10 +236,6 @@ void OPvPCapturePointNA::FillInitialWorldStates(WorldPacket &data) data << NA_UI_GUARDS_MAX << NA_GUARDS_MAX; data << NA_UI_GUARDS_LEFT << uint32(m_GuardsAlive); - data << NA_UI_TOWER_SLIDER_DISPLAY << uint32(0); - data << NA_UI_TOWER_SLIDER_POS << uint32(50); - data << NA_UI_TOWER_SLIDER_N << uint32(100); - data << NA_MAP_WYVERN_NORTH_NEU_H << uint32((m_WyvernStateNorth & WYVERN_NEU_HORDE) != 0); data << NA_MAP_WYVERN_NORTH_NEU_A << uint32((m_WyvernStateNorth & WYVERN_NEU_ALLIANCE) != 0); data << NA_MAP_WYVERN_NORTH_H << uint32((m_WyvernStateNorth & WYVERN_HORDE) != 0); @@ -292,9 +269,6 @@ void OutdoorPvPNA::SendRemoveWorldStates(Player* player) player->SendUpdateWorldState(NA_UI_ALLIANCE_GUARDS_SHOW, 0); player->SendUpdateWorldState(NA_UI_GUARDS_MAX, 0); player->SendUpdateWorldState(NA_UI_GUARDS_LEFT, 0); - player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_DISPLAY, 0); - player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_POS, 0); - player->SendUpdateWorldState(NA_UI_TOWER_SLIDER_N, 0); player->SendUpdateWorldState(NA_MAP_WYVERN_NORTH_NEU_H, 0); player->SendUpdateWorldState(NA_MAP_WYVERN_NORTH_NEU_A, 0); player->SendUpdateWorldState(NA_MAP_WYVERN_NORTH_H, 0); @@ -602,16 +576,6 @@ void OPvPCapturePointNA::ChangeState() UpdateHalaaWorldState(); } -void OPvPCapturePointNA::SendChangePhase() -{ - // send this too, sometimes the slider disappears, dunno why :( - SendUpdateWorldState(NA_UI_TOWER_SLIDER_DISPLAY, 1); - // send these updates to only the ones in this objective - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - SendUpdateWorldState(NA_UI_TOWER_SLIDER_POS, phase); - SendUpdateWorldState(NA_UI_TOWER_SLIDER_N, m_neutralValuePct); -} - void OPvPCapturePointNA::UpdateHalaaWorldState() { m_PvP->SendUpdateWorldState(NA_MAP_HALAA_NEUTRAL, uint32((m_HalaaState & HALAA_N) != 0)); @@ -655,11 +619,7 @@ void OPvPCapturePointNA::UpdateWyvernRoostWorldState(uint32 roost) class OutdoorPvP_nagrand : public OutdoorPvPScript { public: - - OutdoorPvP_nagrand() - : OutdoorPvPScript("outdoorpvp_na") - { - } + OutdoorPvP_nagrand() : OutdoorPvPScript("outdoorpvp_na") { } OutdoorPvP* GetOutdoorPvP() const override { diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h index eccf74afa35..aa52c8135e7 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h @@ -61,10 +61,6 @@ enum OutdoorPvPNAWorldStates NA_UI_GUARDS_MAX = 2493, NA_UI_GUARDS_LEFT = 2491, - NA_UI_TOWER_SLIDER_DISPLAY = 2495, - NA_UI_TOWER_SLIDER_POS = 2494, - NA_UI_TOWER_SLIDER_N = 2497, - NA_MAP_WYVERN_NORTH_NEU_H = 2762, NA_MAP_WYVERN_NORTH_NEU_A = 2662, NA_MAP_WYVERN_NORTH_H = 2663, @@ -263,21 +259,14 @@ class OutdoorPvPNA; class OPvPCapturePointNA : public OPvPCapturePoint { public: - OPvPCapturePointNA(OutdoorPvP* pvp); bool Update(uint32 diff); void ChangeState(); - void SendChangePhase(); - void FillInitialWorldStates(WorldPacket & data); - // used when player is activated/inactivated in the area - bool HandlePlayerEnter(Player* player); - void HandlePlayerLeave(Player* player); - bool HandleCustomSpell(Player* player, uint32 spellId, GameObject* go); int32 HandleOpenGo(Player* player, uint64 guid); @@ -286,7 +275,6 @@ class OPvPCapturePointNA : public OPvPCapturePoint uint32 GetControllingFaction() const; protected: - // called when a faction takes control void FactionTakeOver(uint32 team); @@ -300,7 +288,6 @@ class OPvPCapturePointNA : public OPvPCapturePoint void UpdateHalaaWorldState(); private: - bool m_capturable; uint32 m_GuardsAlive; @@ -322,7 +309,6 @@ class OPvPCapturePointNA : public OPvPCapturePoint class OutdoorPvPNA : public OutdoorPvP { public: - OutdoorPvPNA(); bool SetupOutdoorPvP(); @@ -339,7 +325,6 @@ class OutdoorPvPNA : public OutdoorPvP void HandleKillImpl(Player* player, Unit* killed); private: - OPvPCapturePointNA * m_obj; }; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp index 66c7564fc5c..539f54ab421 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp @@ -240,11 +240,7 @@ bool OutdoorPvPSI::HandleCustomSpell(Player* player, uint32 spellId, GameObject* class OutdoorPvP_silithus : public OutdoorPvPScript { public: - - OutdoorPvP_silithus() - : OutdoorPvPScript("outdoorpvp_si") - { - } + OutdoorPvP_silithus() : OutdoorPvPScript("outdoorpvp_si") { } OutdoorPvP* GetOutdoorPvP() const override { diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.h b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.h index 050bd6e8889..fdab0a292bd 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.h @@ -54,7 +54,6 @@ enum SI_WorldStates class OutdoorPvPSI : public OutdoorPvP { public: - OutdoorPvPSI(); bool SetupOutdoorPvP(); @@ -77,7 +76,6 @@ class OutdoorPvPSI : public OutdoorPvP void UpdateWorldState(); private: - uint32 m_Gathered_A; uint32 m_Gathered_H; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp index cafbd2188fb..e089dfdb7d5 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp @@ -54,10 +54,6 @@ void OPvPCapturePointTF::FillInitialWorldStates(WorldPacket &data) void OutdoorPvPTF::FillInitialWorldStates(WorldPacket &data) { - data << TF_UI_TOWER_SLIDER_POS << uint32(50); - data << TF_UI_TOWER_SLIDER_N << uint32(100); - data << TF_UI_TOWER_SLIDER_DISPLAY << uint32(0); - data << TF_UI_TOWER_COUNT_H << m_HordeTowersControlled; data << TF_UI_TOWER_COUNT_A << m_AllianceTowersControlled; data << TF_UI_TOWERS_CONTROLLED_DISPLAY << uint32(!m_IsLocked); @@ -78,10 +74,6 @@ void OutdoorPvPTF::FillInitialWorldStates(WorldPacket &data) void OutdoorPvPTF::SendRemoveWorldStates(Player* player) { - player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_POS, uint32(0)); - player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_N, uint32(0)); - player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_DISPLAY, uint32(0)); - player->SendUpdateWorldState(TF_UI_TOWER_COUNT_H, uint32(0)); player->SendUpdateWorldState(TF_UI_TOWER_COUNT_A, uint32(0)); player->SendUpdateWorldState(TF_UI_TOWERS_CONTROLLED_DISPLAY, uint32(0)); @@ -109,25 +101,6 @@ void OPvPCapturePointTF::UpdateTowerState() m_PvP->SendUpdateWorldState(uint32(TFTowerWorldStates[m_TowerType].a), uint32((m_TowerState & TF_TOWERSTATE_A) != 0)); } -bool OPvPCapturePointTF::HandlePlayerEnter(Player* player) -{ - if (OPvPCapturePoint::HandlePlayerEnter(player)) - { - player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_DISPLAY, 1); - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_POS, phase); - player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_N, m_neutralValuePct); - return true; - } - return false; -} - -void OPvPCapturePointTF::HandlePlayerLeave(Player* player) -{ - player->SendUpdateWorldState(TF_UI_TOWER_SLIDER_DISPLAY, 0); - OPvPCapturePoint::HandlePlayerLeave(player); -} - bool OutdoorPvPTF::Update(uint32 diff) { bool changed = OutdoorPvP::Update(diff); @@ -344,25 +317,10 @@ void OPvPCapturePointTF::ChangeState() UpdateTowerState(); } -void OPvPCapturePointTF::SendChangePhase() -{ - // send this too, sometimes the slider disappears, dunno why :( - SendUpdateWorldState(TF_UI_TOWER_SLIDER_DISPLAY, 1); - // send these updates to only the ones in this objective - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - SendUpdateWorldState(TF_UI_TOWER_SLIDER_POS, phase); - // send this too, sometimes it resets :S - SendUpdateWorldState(TF_UI_TOWER_SLIDER_N, m_neutralValuePct); -} - class OutdoorPvP_terokkar_forest : public OutdoorPvPScript { public: - - OutdoorPvP_terokkar_forest() - : OutdoorPvPScript("outdoorpvp_tf") - { - } + OutdoorPvP_terokkar_forest() : OutdoorPvPScript("outdoorpvp_tf") { } OutdoorPvP* GetOutdoorPvP() const override { diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h index 6d2d5e45575..ef400452e63 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h @@ -108,10 +108,6 @@ const uint32 TFTowerPlayerLeaveEvents[TF_TOWER_NUM] = enum TFWorldStates { - TF_UI_TOWER_SLIDER_POS = 0xa41, - TF_UI_TOWER_SLIDER_N = 0xa40, - TF_UI_TOWER_SLIDER_DISPLAY = 0xa3f, - TF_UI_TOWER_COUNT_H = 0xa3e, TF_UI_TOWER_COUNT_A = 0xa3d, TF_UI_TOWERS_CONTROLLED_DISPLAY = 0xa3c, @@ -134,25 +130,17 @@ enum TFTowerStates class OPvPCapturePointTF : public OPvPCapturePoint { public: - OPvPCapturePointTF(OutdoorPvP* pvp, OutdoorPvPTF_TowerType type); bool Update(uint32 diff); void ChangeState(); - void SendChangePhase(); - void FillInitialWorldStates(WorldPacket & data); - // used when player is activated/inactivated in the area - bool HandlePlayerEnter(Player* player); - void HandlePlayerLeave(Player* player); - void UpdateTowerState(); protected: - OutdoorPvPTF_TowerType m_TowerType; uint32 m_TowerState; @@ -161,7 +149,6 @@ class OPvPCapturePointTF : public OPvPCapturePoint class OutdoorPvPTF : public OutdoorPvP { public: - OutdoorPvPTF(); bool SetupOutdoorPvP(); @@ -184,7 +171,6 @@ class OutdoorPvPTF : public OutdoorPvP bool IsLocked() const; private: - bool m_IsLocked; uint32 m_LockTimer; uint32 m_LockTimerUpdate; diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp index 85978b64eed..d6ee91ff2a9 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp @@ -51,25 +51,6 @@ void OPvPCapturePointZM_Beacon::UpdateTowerState() m_PvP->SendUpdateWorldState(uint32(ZMBeaconInfo[m_TowerType].map_tower_h), uint32((m_TowerState & ZM_TOWERSTATE_H) != 0)); } -bool OPvPCapturePointZM_Beacon::HandlePlayerEnter(Player* player) -{ - if (OPvPCapturePoint::HandlePlayerEnter(player)) - { - player->SendUpdateWorldState(ZMBeaconInfo[m_TowerType].slider_disp, 1); - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - player->SendUpdateWorldState(ZMBeaconInfo[m_TowerType].slider_pos, phase); - player->SendUpdateWorldState(ZMBeaconInfo[m_TowerType].slider_n, m_neutralValuePct); - return true; - } - return false; -} - -void OPvPCapturePointZM_Beacon::HandlePlayerLeave(Player* player) -{ - player->SendUpdateWorldState(ZMBeaconInfo[m_TowerType].slider_disp, 0); - OPvPCapturePoint::HandlePlayerLeave(player); -} - void OPvPCapturePointZM_Beacon::ChangeState() { // if changing from controlling alliance to horde @@ -117,16 +98,6 @@ void OPvPCapturePointZM_Beacon::ChangeState() UpdateTowerState(); } -void OPvPCapturePointZM_Beacon::SendChangePhase() -{ - // send this too, sometimes the slider disappears, dunno why :( - SendUpdateWorldState(ZMBeaconInfo[m_TowerType].slider_disp, 1); - // send these updates to only the ones in this objective - uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f); - SendUpdateWorldState(ZMBeaconInfo[m_TowerType].slider_pos, phase); - SendUpdateWorldState(ZMBeaconInfo[m_TowerType].slider_n, m_neutralValuePct); -} - bool OutdoorPvPZM::Update(uint32 diff) { bool changed = OutdoorPvP::Update(diff); @@ -408,20 +379,13 @@ void OutdoorPvPZM::SetHordeTowersControlled(uint32 count) void OutdoorPvPZM::FillInitialWorldStates(WorldPacket &data) { data << ZM_WORLDSTATE_UNK_1 << uint32(1); + for (OPvPCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr) - { itr->second->FillInitialWorldStates(data); - } } void OutdoorPvPZM::SendRemoveWorldStates(Player* player) { - player->SendUpdateWorldState(ZM_UI_TOWER_SLIDER_N_W, 0); - player->SendUpdateWorldState(ZM_UI_TOWER_SLIDER_POS_W, 0); - player->SendUpdateWorldState(ZM_UI_TOWER_SLIDER_DISPLAY_W, 0); - player->SendUpdateWorldState(ZM_UI_TOWER_SLIDER_N_E, 0); - player->SendUpdateWorldState(ZM_UI_TOWER_SLIDER_POS_E, 0); - player->SendUpdateWorldState(ZM_UI_TOWER_SLIDER_DISPLAY_E, 0); player->SendUpdateWorldState(ZM_WORLDSTATE_UNK_1, 1); player->SendUpdateWorldState(ZM_UI_TOWER_EAST_N, 0); player->SendUpdateWorldState(ZM_UI_TOWER_EAST_H, 0); diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h index b7a092f74bd..eef1ff9cc3b 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h @@ -79,9 +79,6 @@ enum ZMCreatureTypes struct zm_beacon { - uint32 slider_disp; - uint32 slider_n; - uint32 slider_pos; uint32 ui_tower_n; uint32 ui_tower_h; uint32 ui_tower_a; @@ -101,8 +98,8 @@ enum ZM_BeaconType const zm_beacon ZMBeaconInfo[ZM_NUM_BEACONS] = { - {2533, 2535, 2534, 2560, 2559, 2558, 2652, 2651, 2650, 11807, 11806}, - {2527, 2529, 2528, 2557, 2556, 2555, 2646, 2645, 2644, 11805, 11804} + {2560, 2559, 2558, 2652, 2651, 2650, 11807, 11806}, + {2557, 2556, 2555, 2646, 2645, 2644, 11805, 11804} }; const uint32 ZMBeaconCaptureA[ZM_NUM_BEACONS] = @@ -125,14 +122,6 @@ const go_type ZMCapturePoints[ZM_NUM_BEACONS] = enum OutdoorPvPZMWorldStates { - ZM_UI_TOWER_SLIDER_N_W = 2529, - ZM_UI_TOWER_SLIDER_POS_W = 2528, - ZM_UI_TOWER_SLIDER_DISPLAY_W = 2527, - - ZM_UI_TOWER_SLIDER_N_E = 2535, - ZM_UI_TOWER_SLIDER_POS_E = 2534, - ZM_UI_TOWER_SLIDER_DISPLAY_E = 2533, - ZM_WORLDSTATE_UNK_1 = 2653, ZM_UI_TOWER_EAST_N = 2560, @@ -170,23 +159,15 @@ class OutdoorPvPZM; class OPvPCapturePointZM_Beacon : public OPvPCapturePoint { public: - OPvPCapturePointZM_Beacon(OutdoorPvP* pvp, ZM_BeaconType type); void ChangeState(); - void SendChangePhase(); - void FillInitialWorldStates(WorldPacket & data); - // used when player is activated/inactivated in the area - bool HandlePlayerEnter(Player* player); - void HandlePlayerLeave(Player* player); - void UpdateTowerState(); protected: - ZM_BeaconType m_TowerType; uint32 m_TowerState; }; @@ -201,7 +182,6 @@ enum ZM_GraveYardState class OPvPCapturePointZM_GraveYard : public OPvPCapturePoint { public: - OPvPCapturePointZM_GraveYard(OutdoorPvP* pvp); bool Update(uint32 diff); @@ -225,11 +205,9 @@ class OPvPCapturePointZM_GraveYard : public OPvPCapturePoint uint32 GetGraveYardState() const; private: - uint32 m_GraveYardState; protected: - uint32 m_BothControllingFaction; uint64 m_FlagCarrierGUID; @@ -238,7 +216,6 @@ class OPvPCapturePointZM_GraveYard : public OPvPCapturePoint class OutdoorPvPZM : public OutdoorPvP { public: - OutdoorPvPZM(); bool SetupOutdoorPvP(); @@ -261,7 +238,6 @@ class OutdoorPvPZM : public OutdoorPvP void SetHordeTowersControlled(uint32 count); private: - OPvPCapturePointZM_GraveYard * m_GraveYard; uint32 m_AllianceTowersControlled; From 2b6ee6674a4a1314cfa95ce30437ec720e850bbe Mon Sep 17 00:00:00 2001 From: Malcrom Date: Tue, 29 Jul 2014 23:40:22 -0230 Subject: [PATCH 19/33] DB/Misc: Some SAI, Waypoints, and emote fixes for Outlands. --- .../world/2014_07_29_10_world_misc.sql | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sql/updates/world/2014_07_29_10_world_misc.sql diff --git a/sql/updates/world/2014_07_29_10_world_misc.sql b/sql/updates/world/2014_07_29_10_world_misc.sql new file mode 100644 index 00000000000..c2e56002de7 --- /dev/null +++ b/sql/updates/world/2014_07_29_10_world_misc.sql @@ -0,0 +1,99 @@ +-- Ango'rosh Ogre SAI +SET @ENTRY := 18117; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,2000,2000,4000,4000,11,11978,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ango'rosh Ogre - In Combat - Cast 'Kick'"), +(@ENTRY,0,1,2,2,0,100,1,0,25,0,0,11,8599,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Ogre - Between 0-25% Health - Cast 'Enrage' (No Repeat)"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Ogre - Between 0-25% Health - Say Line 0 (No Repeat)"); + +-- Ango'rosh Shaman SAI +SET @ENTRY := 18118; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,9532,64,0,0,0,0,2,0,0,0,0,0,0,0,"Ango'rosh Shaman - In Combat CMC - Cast 'Lightning Bolt'"), +(@ENTRY,0,1,0,0,0,100,1,18000,25000,0,0,11,32062,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ango'rosh Shaman - In Combat - Cast 'Fire Nova Totem' (No Repeat)"), +(@ENTRY,0,2,0,2,0,100,1,0,49,0,0,11,23381,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Shaman - Between 0-49% Health - Cast 'Healing Touch' (No Repeat)"), +(@ENTRY,0,3,0,2,0,100,1,0,30,0,0,11,6742,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Shaman - Between 0-30% Health - Cast 'Bloodlust' (No Repeat)"); + +-- Ango'rosh Brute SAI +SET @ENTRY := 18119; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,2000,2000,4000,4000,11,11428,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ango'rosh Brute - In Combat - Cast 'Knockdown'"), +(@ENTRY,0,1,2,2,0,100,1,0,25,0,0,11,8599,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Brute - Between 0-25% Health - Cast 'Enrage' (No Repeat)"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Brute - Between 0-25% Health - Say Line 0 (No Repeat)"); + +-- Ango'rosh Mauler SAI +SET @ENTRY := 18120; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,2,0,100,1,0,49,0,0,11,14895,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ango'rosh Mauler - Between 0-49% Health - Cast 'Overpower' (No Repeat)"); + +-- Ango'rosh Souleater SAI +SET @ENTRY := 18121; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,9613,64,0,0,0,0,2,0,0,0,0,0,0,0,"Ango'rosh Souleater - In Combat CMC - Cast 'Shadow Bolt'"), +(@ENTRY,0,1,0,2,0,100,1,0,30,0,0,11,35195,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ango'rosh Souleater - Between 0-30% Health - Cast 'Siphon Life' (No Repeat)"); + +UPDATE creature SET `spawndist`=0,`MovementType`=0 WHERE `id` IN (18117); +UPDATE creature_template_addon SET `emote`=234 WHERE `entry` IN (18117); + +-- Pathing for Voidshrieker Entry: 18870 +SET @NPC := 67511; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4103.666,`position_y`=2008.716,`position_z`=230.7258 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,4103.666,2008.716,230.7258,0,0,0,0,100,0), +(@PATH,2,4125.061,1977.475,222.0139,0,0,0,0,100,0), +(@PATH,3,4144.464,1974.719,217.2654,0,0,0,0,100,0), +(@PATH,4,4179.295,1998.64,200.3009,0,0,0,0,100,0), +(@PATH,5,4187.473,2032.222,181.2747,0,0,0,0,100,0), +(@PATH,6,4175.088,2063.897,166.8787,0,0,0,0,100,0), +(@PATH,7,4187.473,2032.222,181.4369,0,0,0,0,100,0), +(@PATH,8,4179.295,1998.64,200.3009,0,0,0,0,100,0), +(@PATH,9,4144.464,1974.719,217.2654,0,0,0,0,100,0), +(@PATH,10,4125.061,1977.475,222.0139,0,0,0,0,100,0), +(@PATH,11,4103.666,2008.716,230.7258,0,0,0,0,100,0), +(@PATH,12,4080.718,2041.648,241.5903,0,0,0,0,100,0), +(@PATH,13,4062.161,2056.093,248.8654,0,0,0,0,100,0), +(@PATH,14,4035.457,2075.88,254.4613,0,0,0,0,100,0), +(@PATH,15,4006.357,2097.843,254.2741,0,0,0,0,100,0), +(@PATH,16,4035.457,2075.88,254.4613,0,0,0,0,100,0), +(@PATH,17,4061.979,2056.222,248.8656,0,0,0,0,100,0), +(@PATH,18,4080.718,2041.648,241.5903,0,0,0,0,100,0); + +-- Pathing for Voidshrieker Entry: 18870 +SET @NPC := 67509; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3798.831,`position_y`=1750.282,`position_z`=178.7591 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,3798.831,1750.282,178.7591,0,0,0,0,100,0), +(@PATH,2,3832.464,1753.988,196.8661,0,0,0,0,100,0), +(@PATH,3,3861.998,1759.556,211.6918,0,0,0,0,100,0), +(@PATH,4,3884.387,1775.794,220.648,0,0,0,0,100,0), +(@PATH,5,3899.43,1797.509,226.1601,0,0,0,0,100,0), +(@PATH,6,3903.543,1822.17,230.1046,0,0,0,0,100,0), +(@PATH,7,3886.774,1848.648,239.562,0,0,0,0,100,0), +(@PATH,8,3895.88,1866.627,248.396,0,0,0,0,100,0), +(@PATH,9,3897.675,1884.414,252.7833,0,0,0,0,100,0), +(@PATH,10,3882.037,1917.948,254.2183,0,0,0,0,100,0), +(@PATH,11,3897.675,1884.414,252.7833,0,0,0,0,100,0), +(@PATH,12,3895.88,1866.627,248.396,0,0,0,0,100,0), +(@PATH,13,3886.774,1848.648,239.562,0,0,0,0,100,0), +(@PATH,14,3903.543,1822.17,230.1046,0,0,0,0,100,0), +(@PATH,15,3899.43,1797.509,226.1601,0,0,0,0,100,0), +(@PATH,16,3884.387,1775.794,220.648,0,0,0,0,100,0), +(@PATH,17,3862.094,1759.63,211.6694,0,0,0,0,100,0), +(@PATH,18,3832.464,1753.988,196.8661,0,0,0,0,100,0); From 43f868e55ca368d42f3b1dbf763d50cf01233498 Mon Sep 17 00:00:00 2001 From: DDuarte Date: Wed, 30 Jul 2014 03:44:30 +0100 Subject: [PATCH 20/33] Core/PacketLog: Save session ip and port information in saved packets This data is put into the "optional data" part of each packet of the PKT 3.1 format It will be used with WPP to debug some networking issues --- src/server/game/Server/Protocol/PacketLog.cpp | 28 +++++++++++++++++-- src/server/game/Server/Protocol/PacketLog.h | 3 +- src/server/game/Server/WorldSocket.cpp | 4 +-- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/server/game/Server/Protocol/PacketLog.cpp b/src/server/game/Server/Protocol/PacketLog.cpp index 23dfb3538bc..62779d3fbf2 100644 --- a/src/server/game/Server/Protocol/PacketLog.cpp +++ b/src/server/game/Server/Protocol/PacketLog.cpp @@ -38,11 +38,19 @@ struct LogHeader struct PacketHeader { + // used to uniquely identify a connection + struct OptionalData + { + uint8 SocketIPBytes[16]; + uint32 SocketPort; + }; + char Direction[4]; uint32 ConnectionId; uint32 ArrivalTicks; uint32 OptionalDataSize; uint32 Length; + OptionalData OptionalData; uint32 Opcode; }; @@ -89,14 +97,28 @@ void PacketLog::Initialize() } } -void PacketLog::LogPacket(WorldPacket const& packet, Direction direction) +void PacketLog::LogPacket(WorldPacket const& packet, Direction direction, boost::asio::ip::address addr, uint16 port) { PacketHeader header; *reinterpret_cast(header.Direction) = direction == CLIENT_TO_SERVER ? 0x47534d43 : 0x47534d53; header.ConnectionId = 0; header.ArrivalTicks = getMSTime(); - header.OptionalDataSize = 0; - header.Length = packet.size() + 4; + + header.OptionalDataSize = sizeof(header.OptionalData); + memset(header.OptionalData.SocketIPBytes, 0, sizeof(header.OptionalData.SocketIPBytes)); + if (addr.is_v4()) + { + auto bytes = addr.to_v4().to_bytes(); + memcpy(header.OptionalData.SocketIPBytes, bytes.data(), bytes.size()); + } + else if (addr.is_v6()) + { + auto bytes = addr.to_v6().to_bytes(); + memcpy(header.OptionalData.SocketIPBytes, bytes.data(), bytes.size()); + } + + header.OptionalData.SocketPort = port; + header.Length = packet.size() + sizeof(header.Opcode); header.Opcode = packet.GetOpcode(); fwrite(&header, sizeof(header), 1, _file); diff --git a/src/server/game/Server/Protocol/PacketLog.h b/src/server/game/Server/Protocol/PacketLog.h index 4f298fa3c50..b09e853236a 100644 --- a/src/server/game/Server/Protocol/PacketLog.h +++ b/src/server/game/Server/Protocol/PacketLog.h @@ -19,6 +19,7 @@ #define TRINITY_PACKETLOG_H #include "Common.h" +#include enum Direction { @@ -43,7 +44,7 @@ class PacketLog void Initialize(); bool CanLogPacket() const { return (_file != NULL); } - void LogPacket(WorldPacket const& packet, Direction direction); + void LogPacket(WorldPacket const& packet, Direction direction, boost::asio::ip::address addr, uint16 port); private: FILE* _file; diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index e5fea7e6b6b..65a424d5d75 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -92,7 +92,7 @@ void WorldSocket::ReadDataHandler(boost::system::error_code error, size_t transf } if (sPacketLog->CanLogPacket()) - sPacketLog->LogPacket(packet, CLIENT_TO_SERVER); + sPacketLog->LogPacket(packet, CLIENT_TO_SERVER, GetRemoteIpAddress(), GetRemotePort()); TC_LOG_TRACE("network.opcode", "C->S: %s %s", (_worldSession ? _worldSession->GetPlayerInfo() : GetRemoteIpAddress().to_string()).c_str(), GetOpcodeNameForLogging(opcode).c_str()); @@ -142,7 +142,7 @@ void WorldSocket::ReadDataHandler(boost::system::error_code error, size_t transf void WorldSocket::AsyncWrite(WorldPacket& packet) { if (sPacketLog->CanLogPacket()) - sPacketLog->LogPacket(packet, SERVER_TO_CLIENT); + sPacketLog->LogPacket(packet, SERVER_TO_CLIENT, GetRemoteIpAddress(), GetRemotePort()); TC_LOG_TRACE("network.opcode", "S->C: %s %s", (_worldSession ? _worldSession->GetPlayerInfo() : GetRemoteIpAddress().to_string()).c_str(), GetOpcodeNameForLogging(packet.GetOpcode()).c_str()); From 044f5679f9c864f4c9472c4f38bb63ef6069a488 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Wed, 30 Jul 2014 03:02:40 -0230 Subject: [PATCH 21/33] DB/Waypoints: Add waypoints for Marsh Walkers, Ango'rosh Shaman, & Ango'rosh Sentry in Zangarmarsh --- .../world/2014_07_30_00_world_waypoints.sql | 792 ++++++++++++++++++ 1 file changed, 792 insertions(+) create mode 100644 sql/updates/world/2014_07_30_00_world_waypoints.sql diff --git a/sql/updates/world/2014_07_30_00_world_waypoints.sql b/sql/updates/world/2014_07_30_00_world_waypoints.sql new file mode 100644 index 00000000000..adb3bf83b04 --- /dev/null +++ b/sql/updates/world/2014_07_30_00_world_waypoints.sql @@ -0,0 +1,792 @@ +-- Fix speed for Marsh Walker +UPDATE `creature_template` SET `speed_walk`=0.714285 WHERE `entry`=18135; + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64827; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-301.1938,`position_y`=8503.301,`position_z`=18.08551 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-301.1938,8503.301,18.08551,0,0,0,0,100,0), +(@PATH,2,-329.7956,8532.172,18.0473,0,0,0,0,100,0), +(@PATH,3,-346.0217,8570.542,17.29573,0,0,0,0,100,0), +(@PATH,4,-381.4028,8604.693,17.4228,0,0,0,0,100,0), +(@PATH,5,-346.0217,8570.542,17.29573,0,0,0,0,100,0), +(@PATH,6,-329.7956,8532.172,18.0473,0,0,0,0,100,0), +(@PATH,7,-301.1938,8503.301,18.08551,0,0,0,0,100,0), +(@PATH,8,-274.4911,8481.536,17.49909,0,0,0,0,100,0), +(@PATH,9,-232.2047,8467.544,17.49908,0,0,0,0,100,0), +(@PATH,10,-248.1649,8454.211,17.49908,0,0,0,0,100,0), +(@PATH,11,-250.5263,8417.836,17.49909,0,0,0,0,100,0), +(@PATH,12,-254.9303,8379.229,17.49908,0,0,0,0,100,0), +(@PATH,13,-250.5263,8417.836,17.49909,0,0,0,0,100,0), +(@PATH,14,-248.1649,8454.211,17.49908,0,0,0,0,100,0), +(@PATH,15,-232.2047,8467.544,17.49908,0,0,0,0,100,0), +(@PATH,16,-274.4911,8481.536,17.49909,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64825; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=874.0325,`position_y`=8117.328,`position_z`=17.64004 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,874.0325,8117.328,17.64004,0,0,0,0,100,0), +(@PATH,2,872.1207,8150.702,17.51563,0,0,0,0,100,0), +(@PATH,3,856.12,8173.937,17.83715,0,0,0,0,100,0), +(@PATH,4,872.1207,8150.702,17.51563,0,0,0,0,100,0), +(@PATH,5,874.0325,8117.328,17.64004,0,0,0,0,100,0), +(@PATH,6,869.3058,8088.53,17.37932,0,0,0,0,100,0), +(@PATH,7,849.413,8053.933,17.49905,0,0,0,0,100,0), +(@PATH,8,823.0306,8058.05,17.49907,0,0,0,0,100,0), +(@PATH,9,786.84,8065.035,17.72405,0,0,0,0,100,0), +(@PATH,10,823.0306,8058.05,17.49907,0,0,0,0,100,0), +(@PATH,11,849.413,8053.933,17.49905,0,0,0,0,100,0), +(@PATH,12,869.3058,8088.53,17.37932,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64836; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-170.0164,`position_y`=8324.316,`position_z`=17.49908 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-170.0164,8324.316,17.49908,0,0,0,0,100,0), +(@PATH,2,-151.9314,8340.622,17.4991,0,0,0,0,100,0), +(@PATH,3,-125.7491,8351.658,17.59933,0,0,0,0,100,0), +(@PATH,4,-105.4347,8331.116,17.55655,0,0,0,0,100,0), +(@PATH,5,-85.87706,8321.008,17.69277,0,0,0,0,100,0), +(@PATH,6,-49.14638,8337.898,17.94507,0,0,0,0,100,0), +(@PATH,7,-42.37836,8378.92,17.43042,0,0,0,0,100,0), +(@PATH,8,-48.26867,8414.372,17.47196,0,0,0,0,100,0), +(@PATH,9,-55.37891,8463.818,17.39169,0,0,0,0,100,0), +(@PATH,10,-53.64724,8494.014,17.42002,0,0,0,0,100,0), +(@PATH,11,-55.37891,8463.818,17.39169,0,0,0,0,100,0), +(@PATH,12,-48.26867,8414.372,17.47196,0,0,0,0,100,0), +(@PATH,13,-42.37836,8378.92,17.43042,0,0,0,0,100,0), +(@PATH,14,-49.14638,8337.898,17.94507,0,0,0,0,100,0), +(@PATH,15,-85.87706,8321.008,17.69277,0,0,0,0,100,0), +(@PATH,16,-105.4347,8331.116,17.55655,0,0,0,0,100,0), +(@PATH,17,-125.7491,8351.658,17.59933,0,0,0,0,100,0), +(@PATH,18,-151.9314,8340.622,17.4991,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64830; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=447.8367,`position_y`=8068.624,`position_z`=17.57124 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,447.8367,8068.624,17.57124,0,0,0,0,100,0), +(@PATH,2,466.6456,8034.254,17.49908,0,0,0,0,100,0), +(@PATH,3,480.148,8005.124,17.40107,0,0,0,0,100,0), +(@PATH,4,458.6443,7973.283,17.4404,0,0,0,0,100,0), +(@PATH,5,420.8627,7951.928,18.2707,0,0,0,0,100,0), +(@PATH,6,395.485,7930.003,17.47219,0,0,0,0,100,0), +(@PATH,7,415.0804,7917.56,17.55268,0,0,0,0,100,0), +(@PATH,8,425.3092,7890.014,17.49909,0,0,0,0,100,0), +(@PATH,9,415.0804,7917.56,17.55268,0,0,0,0,100,0), +(@PATH,10,395.485,7930.003,17.47219,0,0,0,0,100,0), +(@PATH,11,420.8627,7951.928,18.2707,0,0,0,0,100,0), +(@PATH,12,458.6443,7973.283,17.4404,0,0,0,0,100,0), +(@PATH,13,480.148,8005.124,17.40107,0,0,0,0,100,0), +(@PATH,14,466.6456,8034.254,17.49908,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64823; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1118.289,`position_y`=8010.705,`position_z`=17.82893 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,1118.289,8010.705,17.82893,0,0,0,0,100,0), +(@PATH,2,1087.97,8006.682,17.62409,0,0,0,0,100,0), +(@PATH,3,1084.727,7979.982,17.49906,0,0,0,0,100,0), +(@PATH,4,1095.844,7952.913,17.70093,0,0,0,0,100,0), +(@PATH,5,1098.577,7920.478,17.51494,0,0,0,0,100,0), +(@PATH,6,1078.124,7900.944,18.06584,0,0,0,0,100,0), +(@PATH,7,1042.975,7908.009,17.94593,0,0,0,0,100,0), +(@PATH,8,1016.453,7917.573,17.33556,0,0,0,0,100,0), +(@PATH,9,1042.975,7908.009,17.94593,0,0,0,0,100,0), +(@PATH,10,1078.124,7900.944,18.06584,0,0,0,0,100,0), +(@PATH,11,1098.577,7920.478,17.51494,0,0,0,0,100,0), +(@PATH,12,1095.844,7952.913,17.70093,0,0,0,0,100,0), +(@PATH,13,1084.727,7979.982,17.49906,0,0,0,0,100,0), +(@PATH,14,1087.97,8006.682,17.62409,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64839; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-114.5583,`position_y`=8460.023,`position_z`=18.7491 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-114.5583,8460.023,18.7491,0,0,0,0,100,0), +(@PATH,2,-93.83334,8491.481,17.4991,0,0,0,0,100,0), +(@PATH,3,-111.76,8506.979,17.4991,0,0,0,0,100,0), +(@PATH,4,-93.83334,8491.481,17.4991,0,0,0,0,100,0), +(@PATH,5,-114.5583,8460.023,18.7491,0,0,0,0,100,0), +(@PATH,6,-122.5003,8425.968,17.49909,0,0,0,0,100,0), +(@PATH,7,-129.3711,8389.323,18.05834,0,0,0,0,100,0), +(@PATH,8,-116.9223,8349.573,17.63839,0,0,0,0,100,0), +(@PATH,9,-117.383,8311.256,17.51004,0,0,0,0,100,0), +(@PATH,10,-114.472,8279.946,17.5043,0,0,0,0,100,0), +(@PATH,11,-77.70963,8284.504,17.49908,0,0,0,0,100,0), +(@PATH,12,-114.472,8279.946,17.5043,0,0,0,0,100,0), +(@PATH,13,-117.383,8311.256,17.51004,0,0,0,0,100,0), +(@PATH,14,-116.9223,8349.573,17.63839,0,0,0,0,100,0), +(@PATH,15,-129.3711,8389.323,18.05834,0,0,0,0,100,0), +(@PATH,16,-122.5003,8425.968,17.49909,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64829; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=578.0402,`position_y`=7958.319,`position_z`=17.49801 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,578.0402,7958.319,17.49801,0,0,0,0,100,0), +(@PATH,2,584.077,7995.75,17.45513,0,0,0,0,100,0), +(@PATH,3,609.2556,8015.048,17.37646,0,0,0,0,100,0), +(@PATH,4,584.077,7995.75,17.45513,0,0,0,0,100,0), +(@PATH,5,578.0402,7958.319,17.49801,0,0,0,0,100,0), +(@PATH,6,555.1559,7936.427,17.49322,0,0,0,0,100,0), +(@PATH,7,514.7059,7943.127,17.47691,0,0,0,0,100,0), +(@PATH,8,488.2624,7948.173,17.4991,0,0,0,0,100,0), +(@PATH,9,460.5211,7917.301,17.49908,0,0,0,0,100,0), +(@PATH,10,488.2624,7948.173,17.4991,0,0,0,0,100,0), +(@PATH,11,514.7059,7943.127,17.47691,0,0,0,0,100,0), +(@PATH,12,555.1559,7936.427,17.49322,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64820; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=781.5635,`position_y`=7542.347,`position_z`=17.736 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,781.5635,7542.347,17.736,0,0,0,0,100,0), +(@PATH,2,815.6573,7517.502,17.78351,0,0,0,0,100,0), +(@PATH,3,781.5635,7542.347,17.736,0,0,0,0,100,0), +(@PATH,4,762.9514,7551.243,17.6321,0,0,0,0,100,0), +(@PATH,5,726.7571,7550.808,17.64579,0,0,0,0,100,0), +(@PATH,6,677.6494,7553.893,17.60796,0,0,0,0,100,0), +(@PATH,7,636.2073,7560.307,17.38115,0,0,0,0,100,0), +(@PATH,8,601.652,7580.129,17.57902,0,0,0,0,100,0), +(@PATH,9,636.2073,7560.307,17.38115,0,0,0,0,100,0), +(@PATH,10,677.6494,7553.893,17.60796,0,0,0,0,100,0), +(@PATH,11,726.7571,7550.808,17.64579,0,0,0,0,100,0), +(@PATH,12,762.9514,7551.243,17.6321,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64821; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=644.4886,`position_y`=7622.633,`position_z`=17.49904 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,644.4886,7622.633,17.49904,0,0,0,0,100,0), +(@PATH,2,623.101,7642.905,17.48726,0,0,0,0,100,0), +(@PATH,3,587.3256,7666.358,17.46451,0,0,0,0,100,0), +(@PATH,4,551.9452,7682.568,17.49909,0,0,0,0,100,0), +(@PATH,5,524.8663,7686.722,17.49909,0,0,0,0,100,0), +(@PATH,6,484.5952,7692.899,17.49909,0,0,0,0,100,0), +(@PATH,7,461.4081,7714.175,17.49909,0,0,0,0,100,0), +(@PATH,8,445.0038,7746.1,18.03618,0,0,0,0,100,0), +(@PATH,9,461.4081,7714.175,17.49909,0,0,0,0,100,0), +(@PATH,10,484.5952,7692.899,17.49909,0,0,0,0,100,0), +(@PATH,11,524.8663,7686.722,17.49909,0,0,0,0,100,0), +(@PATH,12,551.9452,7682.568,17.49909,0,0,0,0,100,0), +(@PATH,13,587.3256,7666.358,17.46451,0,0,0,0,100,0), +(@PATH,14,623.101,7642.905,17.48726,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64834; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=86.54546,`position_y`=8255.574,`position_z`=18.9558 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,86.54546,8255.574,18.9558,0,0,0,0,100,0), +(@PATH,2,87.19987,8292.317,18.10031,0,0,0,0,100,0), +(@PATH,3,94.62978,8320.794,17.46457,0,0,0,0,100,0), +(@PATH,4,87.61372,8359.54,17.70627,0,0,0,0,100,0), +(@PATH,5,94.62978,8320.794,17.46457,0,0,0,0,100,0), +(@PATH,6,87.19987,8292.317,18.10031,0,0,0,0,100,0), +(@PATH,7,86.54546,8255.574,18.9558,0,0,0,0,100,0), +(@PATH,8,94.9808,8216.692,18.18986,0,0,0,0,100,0), +(@PATH,9,86.12218,8174.826,17.72863,0,0,0,0,100,0), +(@PATH,10,108.6104,8145.648,18.16449,0,0,0,0,100,0), +(@PATH,11,117.8114,8117.763,17.48594,0,0,0,0,100,0), +(@PATH,12,112.2395,8086.566,17.46772,0,0,0,0,100,0), +(@PATH,13,109.7972,8043.445,17.49909,0,0,0,0,100,0), +(@PATH,14,93.5204,8017.323,17.62408,0,0,0,0,100,0), +(@PATH,15,116.5076,8021.615,17.62409,0,0,0,0,100,0), +(@PATH,16,148.3784,8017.857,18.15998,0,0,0,0,100,0), +(@PATH,17,116.5076,8021.615,17.62409,0,0,0,0,100,0), +(@PATH,18,93.5204,8017.323,17.62408,0,0,0,0,100,0), +(@PATH,19,109.7972,8043.445,17.49909,0,0,0,0,100,0), +(@PATH,20,112.2395,8086.566,17.46772,0,0,0,0,100,0), +(@PATH,21,117.8114,8117.763,17.48594,0,0,0,0,100,0), +(@PATH,22,108.6104,8145.648,18.16449,0,0,0,0,100,0), +(@PATH,23,86.12218,8174.826,17.72863,0,0,0,0,100,0), +(@PATH,24,94.9808,8216.692,18.18986,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64824; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=961.119,`position_y`=8084.976,`position_z`=17.46151 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,961.119,8084.976,17.46151,0,0,0,0,100,0), +(@PATH,2,944.0886,8122.21,17.58651,0,0,0,0,100,0), +(@PATH,3,961.119,8084.976,17.46151,0,0,0,0,100,0), +(@PATH,4,965.8881,8057.272,17.07878,0,0,0,0,100,0), +(@PATH,5,966.6901,8014.281,17.40984,0,0,0,0,100,0), +(@PATH,6,932.3383,8016.327,17.51394,0,0,0,0,100,0), +(@PATH,7,886.6631,8012.957,17.5023,0,0,0,0,100,0), +(@PATH,8,884.9916,7986.938,17.5023,0,0,0,0,100,0), +(@PATH,9,886.6631,8012.957,17.5023,0,0,0,0,100,0), +(@PATH,10,932.3383,8016.327,17.51394,0,0,0,0,100,0), +(@PATH,11,966.6901,8014.281,17.40984,0,0,0,0,100,0), +(@PATH,12,965.8881,8057.272,17.07878,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64835; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-50.38683,`position_y`=8411.523,`position_z`=17.47196 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-50.38683,8411.523,17.47196,0,0,0,0,100,0), +(@PATH,2,-7.419705,8405.802,17.59548,0,0,0,0,100,0), +(@PATH,3,33.12446,8413.819,17.56993,0,0,0,0,100,0), +(@PATH,4,-7.419705,8405.802,17.59548,0,0,0,0,100,0), +(@PATH,5,-50.38683,8411.523,17.47196,0,0,0,0,100,0), +(@PATH,6,-96.01302,8420.427,17.54388,0,0,0,0,100,0), +(@PATH,7,-141.6372,8435.925,17.49909,0,0,0,0,100,0), +(@PATH,8,-155.1646,8460.817,17.49909,0,0,0,0,100,0), +(@PATH,9,-128.9806,8498.716,17.4991,0,0,0,0,100,0), +(@PATH,10,-148.222,8536.911,17.4991,0,0,0,0,100,0), +(@PATH,11,-128.9806,8498.716,17.4991,0,0,0,0,100,0), +(@PATH,12,-155.1646,8460.817,17.49909,0,0,0,0,100,0), +(@PATH,13,-141.6372,8435.925,17.49909,0,0,0,0,100,0), +(@PATH,14,-96.01302,8420.427,17.54388,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64833; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=87.91873,`position_y`=8158.213,`position_z`=17.85594 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,87.91873,8158.213,17.85594,0,0,0,0,100,0), +(@PATH,2,119.1228,8142.663,17.80609,0,0,0,0,100,0), +(@PATH,3,149.2628,8139.451,17.49908,0,0,0,0,100,0), +(@PATH,4,183.1385,8135.855,17.49909,0,0,0,0,100,0), +(@PATH,5,215.0218,8123.902,17.49909,0,0,0,0,100,0), +(@PATH,6,227.7337,8086.152,17.52486,0,0,0,0,100,0), +(@PATH,7,253.659,8054.662,17.49908,0,0,0,0,100,0), +(@PATH,8,282.684,8039.052,17.49798,0,0,0,0,100,0), +(@PATH,9,313.2512,8034.264,17.49908,0,0,0,0,100,0), +(@PATH,10,340.0236,8034.506,17.49909,0,0,0,0,100,0), +(@PATH,11,313.2512,8034.264,17.49908,0,0,0,0,100,0), +(@PATH,12,282.684,8039.052,17.49798,0,0,0,0,100,0), +(@PATH,13,253.659,8054.662,17.49908,0,0,0,0,100,0), +(@PATH,14,227.7337,8086.152,17.52486,0,0,0,0,100,0), +(@PATH,15,215.0218,8123.902,17.49909,0,0,0,0,100,0), +(@PATH,16,183.1385,8135.855,17.49909,0,0,0,0,100,0), +(@PATH,17,149.2628,8139.451,17.49908,0,0,0,0,100,0), +(@PATH,18,119.1228,8142.663,17.80609,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64840; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-347.4796,`position_y`=8533.388,`position_z`=17.49909 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-347.4796,8533.388,17.49909,0,0,0,0,100,0), +(@PATH,2,-329.523,8553.835,17.49909,0,0,0,0,100,0), +(@PATH,3,-296.6537,8564.734,17.43943,0,0,0,0,100,0), +(@PATH,4,-261.5942,8595.95,17.49909,0,0,0,0,100,0), +(@PATH,5,-296.6537,8564.734,17.43943,0,0,0,0,100,0), +(@PATH,6,-329.523,8553.835,17.49909,0,0,0,0,100,0), +(@PATH,7,-347.4796,8533.388,17.49909,0,0,0,0,100,0), +(@PATH,8,-368.0536,8508.598,17.49909,0,0,0,0,100,0), +(@PATH,9,-388.4557,8480.802,17.499,0,0,0,0,100,0), +(@PATH,10,-368.0536,8508.598,17.49909,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64838; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=184.0078,`position_y`=8977,`position_z`=17.39463 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,184.0078,8977,17.39463,0,0,0,0,100,0), +(@PATH,2,211.13,8973.212,17.81977,0,0,0,0,100,0), +(@PATH,3,216.3611,8937.859,18.64739,0,0,0,0,100,0), +(@PATH,4,200.0475,8911.421,17.49908,0,0,0,0,100,0), +(@PATH,5,210.271,8891.9,17.46042,0,0,0,0,100,0), +(@PATH,6,200.0475,8911.421,17.49908,0,0,0,0,100,0), +(@PATH,7,216.3611,8937.859,18.64739,0,0,0,0,100,0), +(@PATH,8,211.13,8973.212,17.81977,0,0,0,0,100,0), +(@PATH,9,184.0078,8977,17.39463,0,0,0,0,100,0), +(@PATH,10,148.9398,8971.519,19.89098,0,0,0,0,100,0), +(@PATH,11,121.7532,8954.647,17.59854,0,0,0,0,100,0), +(@PATH,12,98.23904,8918.107,18.67969,0,0,0,0,100,0), +(@PATH,13,121.7532,8954.647,17.59854,0,0,0,0,100,0), +(@PATH,14,148.9398,8971.519,19.89098,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64832; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=785.5858,`position_y`=8579.806,`position_z`=17.56527 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,785.5858,8579.806,17.56527,0,0,0,0,100,0), +(@PATH,2,755.4162,8584.002,17.4991,0,0,0,0,100,0), +(@PATH,3,735.4412,8602.093,17.4991,0,0,0,0,100,0), +(@PATH,4,715.2771,8583.415,17.4991,0,0,0,0,100,0), +(@PATH,5,710.8354,8545.135,17.8741,0,0,0,0,100,0), +(@PATH,6,716.3047,8522.668,20.39779,0,0,0,0,100,0), +(@PATH,7,710.8354,8545.135,17.8741,0,0,0,0,100,0), +(@PATH,8,715.2771,8583.415,17.4991,0,0,0,0,100,0), +(@PATH,9,735.4412,8602.093,17.4991,0,0,0,0,100,0), +(@PATH,10,755.4162,8584.002,17.4991,0,0,0,0,100,0), +(@PATH,11,785.5858,8579.806,17.56527,0,0,0,0,100,0), +(@PATH,12,825.7322,8589.715,17.49902,0,0,0,0,100,0), +(@PATH,13,849.3665,8614.612,17.69501,0,0,0,0,100,0), +(@PATH,14,867.0609,8633.648,18.25114,0,0,0,0,100,0), +(@PATH,15,849.3665,8614.612,17.69501,0,0,0,0,100,0), +(@PATH,16,825.7322,8589.715,17.49902,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64822; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=291.873,`position_y`=7703.415,`position_z`=17.88411 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,291.873,7703.415,17.88411,0,0,0,0,100,0), +(@PATH,2,314.779,7703.312,17.58478,0,0,0,0,100,0), +(@PATH,3,342.3629,7700.679,17.4991,0,0,0,0,100,0), +(@PATH,4,368.9921,7677.205,18.26697,0,0,0,0,100,0), +(@PATH,5,404.9698,7692.616,17.5832,0,0,0,0,100,0), +(@PATH,6,438.4161,7710.469,17.49909,0,0,0,0,100,0), +(@PATH,7,473.649,7704.022,17.41897,0,0,0,0,100,0), +(@PATH,8,505.8389,7679.953,17.49909,0,0,0,0,100,0), +(@PATH,9,514.8956,7650.235,17.49901,0,0,0,0,100,0), +(@PATH,10,497.9654,7624.322,17.80044,0,0,0,0,100,0), +(@PATH,11,514.8956,7650.235,17.49901,0,0,0,0,100,0), +(@PATH,12,505.8389,7679.953,17.49909,0,0,0,0,100,0), +(@PATH,13,473.649,7704.022,17.41897,0,0,0,0,100,0), +(@PATH,14,438.4161,7710.469,17.49909,0,0,0,0,100,0), +(@PATH,15,404.9698,7692.616,17.5832,0,0,0,0,100,0), +(@PATH,16,368.9921,7677.205,18.26697,0,0,0,0,100,0), +(@PATH,17,342.3629,7700.679,17.4991,0,0,0,0,100,0), +(@PATH,18,314.779,7703.312,17.58478,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64832; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=716.7272,`position_y`=8601.276,`position_z`=17.4991 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,716.7272,8601.276,17.4991,0,0,0,0,100,0), +(@PATH,2,752.174,8584.586,17.4991,0,0,0,0,100,0), +(@PATH,3,795.9551,8585.222,17.49673,0,0,0,0,100,0), +(@PATH,4,827.15,8586.998,17.49902,0,0,0,0,100,0), +(@PATH,5,856.6465,8574.583,17.49829,0,0,0,0,100,0), +(@PATH,6,886.3231,8559.085,17.39889,0,0,0,0,100,0), +(@PATH,7,912.6191,8540.341,17.49909,0,0,0,0,100,0), +(@PATH,8,939.4836,8513.34,17.45282,0,0,0,0,100,0), +(@PATH,9,954.2996,8474.65,17.49907,0,0,0,0,100,0), +(@PATH,10,984.855,8453.599,17.39467,0,0,0,0,100,0), +(@PATH,11,954.2996,8474.65,17.49907,0,0,0,0,100,0), +(@PATH,12,939.4836,8513.34,17.45282,0,0,0,0,100,0), +(@PATH,13,912.6191,8540.341,17.49909,0,0,0,0,100,0), +(@PATH,14,886.3231,8559.085,17.39889,0,0,0,0,100,0), +(@PATH,15,856.6465,8574.583,17.49829,0,0,0,0,100,0), +(@PATH,16,827.15,8586.998,17.49902,0,0,0,0,100,0), +(@PATH,17,795.9551,8585.222,17.49673,0,0,0,0,100,0), +(@PATH,18,752.174,8584.586,17.4991,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64828; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=924.0667,`position_y`=8305.966,`position_z`=17.67109 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,924.0667,8305.966,17.67109,0,0,0,0,100,0), +(@PATH,2,902.5826,8273.492,18.56687,0,0,0,0,100,0), +(@PATH,3,924.0667,8305.966,17.67109,0,0,0,0,100,0), +(@PATH,4,947.1714,8327.824,17.4991,0,0,0,0,100,0), +(@PATH,5,986.4986,8340.583,17.49908,0,0,0,0,100,0), +(@PATH,6,948.4996,8346.964,17.4991,0,0,0,0,100,0), +(@PATH,7,947.7733,8389.242,17.68296,0,0,0,0,100,0), +(@PATH,8,952.5717,8412.851,17.49909,0,0,0,0,100,0), +(@PATH,9,957.0486,8448.102,17.46062,0,0,0,0,100,0), +(@PATH,10,952.5717,8412.851,17.49909,0,0,0,0,100,0), +(@PATH,11,947.7733,8389.242,17.68296,0,0,0,0,100,0), +(@PATH,12,948.4996,8346.964,17.4991,0,0,0,0,100,0), +(@PATH,13,986.4986,8340.583,17.49908,0,0,0,0,100,0), +(@PATH,14,947.1714,8327.824,17.4991,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64819; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-390.1439,`position_y`=8253.518,`position_z`=16.09562 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-390.1439,8253.518,16.09562,0,0,0,0,100,0), +(@PATH,2,-357.2793,8281.346,17.36786,0,0,0,0,100,0), +(@PATH,3,-350.4625,8312.578,17.4991,0,0,0,0,100,0), +(@PATH,4,-349.5631,8344.943,17.49913,0,0,0,0,100,0), +(@PATH,5,-379.0918,8372.424,17.49909,0,0,0,0,100,0), +(@PATH,6,-414.88,8355.182,17.44271,0,0,0,0,100,0), +(@PATH,7,-446.0282,8319.295,15.24428,0,0,0,0,100,0), +(@PATH,8,-445.7359,8287.406,17.17921,0,0,0,0,100,0), +(@PATH,9,-461.3513,8246.95,17.877,0,0,0,0,100,0), +(@PATH,10,-445.7359,8287.406,17.17921,0,0,0,0,100,0), +(@PATH,11,-446.0282,8319.295,15.24428,0,0,0,0,100,0), +(@PATH,12,-414.88,8355.182,17.44271,0,0,0,0,100,0), +(@PATH,13,-379.0918,8372.424,17.49909,0,0,0,0,100,0), +(@PATH,14,-349.5631,8344.943,17.49913,0,0,0,0,100,0), +(@PATH,15,-350.4625,8312.578,17.4991,0,0,0,0,100,0), +(@PATH,16,-357.2793,8281.346,17.36786,0,0,0,0,100,0), +(@PATH,17,-390.1172,8253.547,16.111,0,0,0,0,100,0), +(@PATH,18,-424.5453,8234.055,17.90831,0,0,0,0,100,0), +(@PATH,19,-442.472,8206.46,16.09482,0,0,0,0,100,0), +(@PATH,20,-424.5453,8234.055,17.90831,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64831; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=883.9965,`position_y`=8521.639,`position_z`=17.83781 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,883.9965,8521.639,17.83781,0,0,0,0,100,0), +(@PATH,2,914.638,8546.687,17.49909,0,0,0,0,100,0), +(@PATH,3,947.3973,8548.576,17.42227,0,0,0,0,100,0), +(@PATH,4,973.8578,8584.088,16.96828,0,0,0,0,100,0), +(@PATH,5,947.3973,8548.576,17.42227,0,0,0,0,100,0), +(@PATH,6,914.638,8546.687,17.49909,0,0,0,0,100,0), +(@PATH,7,883.9965,8521.639,17.83781,0,0,0,0,100,0), +(@PATH,8,858.9237,8483.394,17.51669,0,0,0,0,100,0), +(@PATH,9,839.9093,8454.622,17.62974,0,0,0,0,100,0), +(@PATH,10,818.9688,8447.583,17.50474,0,0,0,0,100,0), +(@PATH,11,788.2785,8449.614,18.37276,0,0,0,0,100,0), +(@PATH,12,818.9688,8447.583,17.50474,0,0,0,0,100,0), +(@PATH,13,839.9093,8454.622,17.62974,0,0,0,0,100,0), +(@PATH,14,858.9237,8483.394,17.51669,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64826; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=974.1456,`position_y`=8151.406,`position_z`=17.49909 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,974.1456,8151.406,17.49909,0,0,0,0,100,0), +(@PATH,2,936.1339,8152.216,17.41899,0,0,0,0,100,0), +(@PATH,3,918.0892,8178.414,17.52471,0,0,0,0,100,0), +(@PATH,4,913.4008,8213.664,17.40324,0,0,0,0,100,0), +(@PATH,5,918.0892,8178.414,17.52471,0,0,0,0,100,0), +(@PATH,6,936.1339,8152.216,17.41899,0,0,0,0,100,0), +(@PATH,7,974.1456,8151.406,17.49909,0,0,0,0,100,0), +(@PATH,8,1005.321,8156.346,17.49909,0,0,0,0,100,0), +(@PATH,9,1032.515,8133.889,17.49909,0,0,0,0,100,0), +(@PATH,10,1060.987,8106.548,17.49909,0,0,0,0,100,0), +(@PATH,11,1047.958,8075.616,17.77516,0,0,0,0,100,0), +(@PATH,12,1011.745,8049.339,18.16889,0,0,0,0,100,0), +(@PATH,13,1047.958,8075.616,17.77516,0,0,0,0,100,0), +(@PATH,14,1060.987,8106.548,17.49909,0,0,0,0,100,0), +(@PATH,15,1032.515,8133.889,17.49909,0,0,0,0,100,0), +(@PATH,16,1005.321,8156.346,17.49909,0,0,0,0,100,0); + +-- Pathing for Marsh Walker Entry: 18135 +SET @NPC := 64837; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=82.27843,`position_y`=8509.213,`position_z`=17.49909 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,82.27843,8509.213,17.49909,0,0,0,0,100,0), +(@PATH,2,94.213,8544.274,17.99909,0,0,0,0,100,0), +(@PATH,3,69.33735,8574.196,17.68814,0,0,0,0,100,0), +(@PATH,4,83.5051,8551.99,17.49909,0,0,0,0,100,0), +(@PATH,5,117.2316,8551.036,17.96043,0,0,0,0,100,0), +(@PATH,6,150.0363,8554.89,17.68345,0,0,0,0,100,0), +(@PATH,7,163.1173,8588.505,18.63587,0,0,0,0,100,0), +(@PATH,8,156.6575,8612.926,17.53897,0,0,0,0,100,0), +(@PATH,9,163.1173,8588.505,18.63587,0,0,0,0,100,0), +(@PATH,10,150.0363,8554.89,17.68345,0,0,0,0,100,0), +(@PATH,11,117.2316,8551.036,17.96043,0,0,0,0,100,0), +(@PATH,12,83.5051,8551.99,17.49909,0,0,0,0,100,0), +(@PATH,13,69.33735,8574.196,17.68814,0,0,0,0,100,0), +(@PATH,14,94.213,8544.274,17.99909,0,0,0,0,100,0), +(@PATH,15,82.27843,8509.213,17.49909,0,0,0,0,100,0), +(@PATH,16,92.01487,8483.376,17.49909,0,0,0,0,100,0), +(@PATH,17,77.338,8501.032,17.49909,0,0,0,0,100,0), +(@PATH,18,47.22873,8506.513,17.49909,0,0,0,0,100,0), +(@PATH,19,25.15582,8520.438,17.49283,0,0,0,0,100,0), +(@PATH,20,47.22873,8506.513,17.49909,0,0,0,0,100,0); + +-- Pathing for Ango'rosh Shaman Entry: 18118 +SET @NPC := 64200; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=644.8542,`position_y`=7864.837,`position_z`=22.3112 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,644.8542,7864.837,22.3112,0,0,0,0,100,0), +(@PATH,2,658.7136,7850.472,21.90904,0,0,0,0,100,0), +(@PATH,3,673.5045,7838.813,22.60974,0,0,0,0,100,0), +(@PATH,4,679.8118,7823.88,22.23306,0,0,0,0,100,0), +(@PATH,5,684.8212,7799.125,21.99128,0,0,0,0,100,0), +(@PATH,6,693.1428,7791.885,22.23091,0,0,0,0,100,0), +(@PATH,7,693.1428,7791.885,22.23091,0,0,0,0,100,0), +(@PATH,8,684.8212,7799.125,21.99128,0,0,0,0,100,0), +(@PATH,9,679.8118,7823.88,22.23306,0,0,0,0,100,0), +(@PATH,10,673.5045,7838.813,22.60974,0,0,0,0,100,0), +(@PATH,11,658.7136,7850.472,21.90904,0,0,0,0,100,0), +(@PATH,12,644.7537,7864.248,22.31084,0,0,0,0,100,0), +(@PATH,13,637.0594,7876.642,21.9847,0,0,0,0,100,0), +(@PATH,14,622.5043,7883.878,22.07429,0,0,0,0,100,0), +(@PATH,15,597.0054,7883.503,21.96379,0,0,0,0,100,0), +(@PATH,16,584.8994,7878.884,22.13079,0,0,0,0,100,0), +(@PATH,17,578.9732,7863.721,22.09724,0,0,0,0,100,0), +(@PATH,18,572.3759,7854.287,21.59724,0,0,0,0,100,0), +(@PATH,19,557.7398,7852.659,21.62408,0,0,0,0,100,0), +(@PATH,20,572.3759,7854.287,21.59724,0,0,0,0,100,0), +(@PATH,21,578.9732,7863.721,22.09724,0,0,0,0,100,0), +(@PATH,22,584.8994,7878.884,22.13079,0,0,0,0,100,0), +(@PATH,23,597.0054,7883.503,21.96379,0,0,0,0,100,0), +(@PATH,24,622.5043,7883.878,22.07429,0,0,0,0,100,0), +(@PATH,25,637.0594,7876.642,21.9847,0,0,0,0,100,0); + +-- Pathing for Ango'rosh Shaman Entry: 18118 +SET @NPC := 64199; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=770.1323,`position_y`=7774.846,`position_z`=22.67318 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,770.1323,7774.846,22.67318,0,0,0,0,100,0), +(@PATH,2,777.4385,7767.182,21.9991,0,0,0,0,100,0), +(@PATH,3,785.0085,7758.705,21.86028,0,0,0,0,100,0), +(@PATH,4,794.3231,7747.627,21.98528,0,0,0,0,100,0), +(@PATH,5,804.1041,7737.199,21.84237,0,0,0,0,100,0), +(@PATH,6,810.9216,7725.344,21.92386,0,0,0,0,100,0), +(@PATH,7,814.6373,7706.108,21.62845,0,0,0,0,100,0), +(@PATH,8,810.9216,7725.344,21.92386,0,0,0,0,100,0), +(@PATH,9,804.1041,7737.199,21.84237,0,0,0,0,100,0), +(@PATH,10,794.3231,7747.627,21.98528,0,0,0,0,100,0), +(@PATH,11,785.0085,7758.705,21.86028,0,0,0,0,100,0), +(@PATH,12,777.4385,7767.182,21.9991,0,0,0,0,100,0), +(@PATH,13,770.3223,7774.25,22.63703,0,0,0,0,100,0), +(@PATH,14,765.7609,7779.539,22.77408,0,0,0,0,100,0), +(@PATH,15,761.437,7784.407,22.66974,0,0,0,0,100,0), +(@PATH,16,755.484,7787.25,22.49196,0,0,0,0,100,0), +(@PATH,17,748.4116,7788.092,22.13786,0,0,0,0,100,0), +(@PATH,18,742.2909,7786.957,22.00575,0,0,0,0,100,0), +(@PATH,19,734.4057,7787.279,22.0069,0,0,0,0,100,0), +(@PATH,20,727.2755,7788.375,21.81407,0,0,0,0,100,0), +(@PATH,21,717.0435,7789.009,22.1188,0,0,0,0,100,0), +(@PATH,22,710.8192,7789.798,22.10098,0,0,0,0,100,0), +(@PATH,23,702.6148,7790.601,22.37459,0,0,0,0,100,0), +(@PATH,24,690.6102,7791.114,22.24128,0,0,0,0,100,0), +(@PATH,25,679.7465,7787.897,22.47639,0,0,0,0,100,0), +(@PATH,26,675.0551,7778.473,21.07356,0,0,0,0,100,0), +(@PATH,27,678.0349,7766.003,21.06932,0,0,0,0,100,0), +(@PATH,28,684.7713,7752.402,22.23509,0,0,0,0,100,0), +(@PATH,29,678.0349,7766.003,21.06932,0,0,0,0,100,0), +(@PATH,30,675.0551,7778.473,21.07356,0,0,0,0,100,0), +(@PATH,31,679.7465,7787.897,22.47639,0,0,0,0,100,0), +(@PATH,32,690.6102,7791.114,22.24128,0,0,0,0,100,0), +(@PATH,33,702.6148,7790.601,22.37459,0,0,0,0,100,0), +(@PATH,34,710.5023,7789.834,22.10141,0,0,0,0,100,0), +(@PATH,35,717.0435,7789.009,22.1188,0,0,0,0,100,0), +(@PATH,36,727.2755,7788.375,21.81407,0,0,0,0,100,0), +(@PATH,37,734.4057,7787.279,22.0069,0,0,0,0,100,0), +(@PATH,38,742.2909,7786.957,22.00575,0,0,0,0,100,0), +(@PATH,39,748.4116,7788.092,22.13786,0,0,0,0,100,0), +(@PATH,40,755.484,7787.25,22.49196,0,0,0,0,100,0), +(@PATH,41,761.437,7784.407,22.66974,0,0,0,0,100,0), +(@PATH,42,765.7609,7779.539,22.77408,0,0,0,0,100,0); + +UPDATE `creature` SET `id`=18118 WHERE `guid`=64195; +UPDATE `creature` SET `spawndist`=5,`MovementType`=1 WHERE `guid` IN (64191,64195,64159,64196,64186,64170,64163,64158); +DELETE FROM `creature_addon` WHERE `guid` IN (64191,64195,64159,64196,64186,64170,64163,64158); +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`emote`,`auras`) VALUES +(64159,0,1,0, ''),(64196,0,1,0, ''),(64191,0,1,0, ''),(64186,0,1,0, ''),(64170,0,1,0, ''),(64163,0,1,0, ''),(64158,0,1,0, ''); + +-- Pathing for Ango'rosh Sentry Entry: 20443 +SET @NPC := 72411; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1280.438,`position_y`=8627.676,`position_z`=20.92095 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,1280.438,8627.676,20.92095,0,0,0,0,100,0), +(@PATH,2,1260.006,8639.502,22.83721,0,0,0,0,100,0), +(@PATH,3,1245.05,8641.163,24.4113,0,0,0,0,100,0), +(@PATH,4,1216.487,8650.236,20.57172,0,0,0,0,100,0), +(@PATH,5,1245.05,8641.163,24.4113,0,0,0,0,100,0), +(@PATH,6,1260.006,8639.502,22.83721,0,0,0,0,100,0), +(@PATH,7,1280.438,8627.676,20.92095,0,0,0,0,100,0), +(@PATH,8,1281.377,8600.357,18.18194,0,0,0,0,100,0); + +-- Pathing for Ango'rosh Sentry Entry: 20443 +SET @NPC := 72420; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=970.3631,`position_y`=8553.178,`position_z`=21.38559 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,970.3631,8553.178,21.38559,0,0,0,0,100,0), +(@PATH,2,985.7488,8583.917,19.42825,0,0,0,0,100,0), +(@PATH,3,999.244,8606.11,24.68743,0,0,0,0,100,0), +(@PATH,4,1025.91,8617.661,19.0017,0,0,0,0,100,0), +(@PATH,5,999.2891,8606.135,24.75078,0,0,0,0,100,0), +(@PATH,6,985.7488,8583.917,19.42825,0,0,0,0,100,0), +(@PATH,7,970.3631,8553.178,21.38559,0,0,0,0,100,0), +(@PATH,8,969.0519,8528.513,20.06933,0,0,0,0,100,0), +(@PATH,9,988.2411,8512.356,18.72606,0,0,0,0,100,0), +(@PATH,10,969.0519,8528.513,20.06933,0,0,0,0,100,0); + +-- Pathing for Ango'rosh Sentry Entry: 20443 +SET @NPC := 72413; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1173.638,`position_y`=8413.106,`position_z`=47.84419 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,1173.638,8413.106,47.84419,0,0,0,0,100,0), +(@PATH,2,1163.449,8415.349,42.86897,0,0,0,0,100,0), +(@PATH,3,1152.371,8420.931,36.45106,0,0,0,0,100,0), +(@PATH,4,1149.642,8423.404,35.62211,0,0,0,0,100,0), +(@PATH,5,1161.088,8437.671,27.15933,0,0,0,0,100,0), +(@PATH,6,1167.009,8444.979,22.7928,0,0,0,0,100,0), +(@PATH,7,1161.088,8437.671,27.15933,0,0,0,0,100,0), +(@PATH,8,1149.642,8423.404,35.62211,0,0,0,0,100,0), +(@PATH,9,1152.371,8420.931,36.45106,0,0,0,0,100,0), +(@PATH,10,1163.449,8415.349,42.86897,0,0,0,0,100,0), +(@PATH,11,1173.638,8413.106,47.84419,0,0,0,0,100,0), +(@PATH,12,1178.014,8414.137,50.07702,0,0,0,0,100,0), +(@PATH,13,1184.483,8417.801,53.34129,0,0,0,0,100,0), +(@PATH,14,1190.194,8420.89,56.02716,0,0,0,0,100,0), +(@PATH,15,1187.88,8427.463,57.16458,0,0,0,0,100,0), +(@PATH,16,1183.713,8437.44,58.30647,0,0,0,0,100,0), +(@PATH,17,1187.88,8427.463,57.16458,0,0,0,0,100,0), +(@PATH,18,1190.194,8420.89,56.02716,0,0,0,0,100,0), +(@PATH,19,1184.483,8417.801,53.34129,0,0,0,0,100,0), +(@PATH,20,1178.014,8414.137,50.07702,0,0,0,0,100,0); + +-- Pathing for Ango'rosh Sentry Entry: 20443 +SET @NPC := 72421; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1072.604,`position_y`=8637.91,`position_z`=22.98809 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,1072.604,8637.91,22.98809,0,0,0,0,100,0), +(@PATH,2,1052.562,8618.747,17.68465,0,0,0,0,100,0), +(@PATH,3,1072.604,8637.91,22.98809,0,0,0,0,100,0), +(@PATH,4,1094.035,8644.675,23.35613,0,0,0,0,100,0); + +-- Pathing for Ango'rosh Sentry Entry: 20443 +SET @NPC := 72410; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1257.143,`position_y`=8512.616,`position_z`=22.73383 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,1257.143,8512.616,22.73383,0,0,0,0,100,0), +(@PATH,2,1267.241,8500.584,24.4882,0,0,0,0,100,0), +(@PATH,3,1275.148,8489.038,23.69006,0,0,0,0,100,0), +(@PATH,4,1267.47,8461.444,22.73318,0,0,0,0,100,0), +(@PATH,5,1251.861,8441.785,20.1918,0,0,0,0,100,0), +(@PATH,6,1237.605,8424.362,17.89481,0,0,0,0,100,0), +(@PATH,7,1229.287,8411.072,18.9991,0,0,0,0,100,0), +(@PATH,8,1210.862,8406.452,17.7491,0,0,0,0,100,0), +(@PATH,9,1229.287,8411.072,18.9991,0,0,0,0,100,0), +(@PATH,10,1237.605,8424.362,17.89481,0,0,0,0,100,0), +(@PATH,11,1251.861,8441.785,20.1918,0,0,0,0,100,0), +(@PATH,12,1267.47,8461.444,22.73318,0,0,0,0,100,0), +(@PATH,13,1275.148,8489.038,23.69006,0,0,0,0,100,0), +(@PATH,14,1267.241,8500.584,24.4882,0,0,0,0,100,0), +(@PATH,15,1257.143,8512.616,22.73383,0,0,0,0,100,0), +(@PATH,16,1264.564,8540.619,18.63026,0,0,0,0,100,0), +(@PATH,17,1281.139,8567.028,20.92814,0,0,0,0,100,0), +(@PATH,18,1285.464,8603.98,18.06524,0,0,0,0,100,0), +(@PATH,19,1281.139,8567.028,20.92814,0,0,0,0,100,0), +(@PATH,20,1264.564,8540.619,18.63026,0,0,0,0,100,0); + +-- Pathing for Ango'rosh Sentry Entry: 20443 +SET @NPC := 72418; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1050.08,`position_y`=8471.225,`position_z`=55.79852 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,1050.08,8471.225,55.79852,0,0,0,0,100,0), +(@PATH,2,1045.566,8467.722,53.36241,0,0,0,0,100,0), +(@PATH,3,1039.81,8464.549,50.48059,0,0,0,0,100,0), +(@PATH,4,1034.04,8462.964,47.46804,0,0,0,0,100,0), +(@PATH,5,1023.59,8466.265,41.93713,0,0,0,0,100,0), +(@PATH,6,1015.494,8469.264,37.75529,0,0,0,0,100,0), +(@PATH,7,1010.956,8473.249,35.49992,0,0,0,0,100,0), +(@PATH,8,1018.681,8483.053,29.74021,0,0,0,0,100,0), +(@PATH,9,1027.361,8493.991,23.25309,0,0,0,0,100,0), +(@PATH,10,1018.681,8483.053,29.74021,0,0,0,0,100,0), +(@PATH,11,1010.956,8473.249,35.49992,0,0,0,0,100,0), +(@PATH,12,1015.494,8469.264,37.75529,0,0,0,0,100,0), +(@PATH,13,1023.397,8466.325,41.84349,0,0,0,0,100,0), +(@PATH,14,1034.04,8462.964,47.46804,0,0,0,0,100,0), +(@PATH,15,1039.81,8464.549,50.48059,0,0,0,0,100,0), +(@PATH,16,1045.566,8467.722,53.36241,0,0,0,0,100,0), +(@PATH,17,1050.08,8471.225,55.79852,0,0,0,0,100,0), +(@PATH,18,1049.307,8476.159,57.09945,0,0,0,0,100,0), +(@PATH,19,1044.823,8485.451,58.18297,0,0,0,0,100,0), +(@PATH,20,1049.307,8476.159,57.09945,0,0,0,0,100,0); From c5394842bb17e30535e0b65eb9f429a2529c6c94 Mon Sep 17 00:00:00 2001 From: Dr-J Date: Wed, 30 Jul 2014 13:43:18 +0100 Subject: [PATCH 22/33] DB/Creature: Apprentice Mirveda Rescript Apprentice Mirveda in SAI to resolve some issues with this NPC Closes #8026 Closes #11240 --- sql/updates/world/2014_07_30_01_world_sai.sql | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 sql/updates/world/2014_07_30_01_world_sai.sql diff --git a/sql/updates/world/2014_07_30_01_world_sai.sql b/sql/updates/world/2014_07_30_01_world_sai.sql new file mode 100644 index 00000000000..e8991ebe772 --- /dev/null +++ b/sql/updates/world/2014_07_30_01_world_sai.sql @@ -0,0 +1,52 @@ +UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`='' WHERE `entry` IN(15402,15958); + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(15402, 15958) and `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(1540200,1540201,1540202) AND `source_type`=9; + +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 +(15402, 0, 0, 0, 20, 0, 100, 0, 8487, 0, 0, 0, 80, 1540200, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - On Quest Rewarded (Corrupted Soil) - Run Script'), +(15402, 0, 1, 2, 19, 0, 100, 0, 8488, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - On Quest Accept (Unexpected Results) - Store Targetlist'), +(15402, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 80, 1540201, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - On Quest Accept (Unexpected Results) - Run Script'), +(15402, 0, 3, 0, 0, 0, 100, 0, 1000, 1000, 5000, 8000, 11, 20811, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - IC - Cast Fireball'), +(15402, 0, 4, 0, 6, 1, 100, 0, 0, 0, 0, 0, 6, 8488, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - On Death (Phase 1) - Fail Quest Unexpected Results'), +(15402, 0, 5, 6, 7, 1, 100, 0, 0, 0, 0, 0, 15, 8488, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - OOC (Phase 4) - Complete Quest Unexpected Results (Phase 3)'), +(15402, 0, 6, 0, 61, 8, 100, 0, 0, 0, 0, 0, 80, 1540202, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - Linked with Previous Event - Run Script (Phase 3)'), +(15402, 0, 7, 0, 11, 0, 100, 0, 0, 0, 0, 0, 18, 512, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - On Spawn - Set Immune to NPC'), +(15958, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Gharsul the Remorseless - On Just Summoned - Set Phase 2'), +(15958, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 53, 1, 15958, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 'Gharsul the Remorseless - On Just Summoned - Start WP'), +(15958, 0, 2, 3, 40, 0, 100, 0, 1, 15958, 0, 0, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Gharsul the Remorseless - On Reached WP1 - Set Home position'), +(15958, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Gharsul the Remorseless - On Reached WP1 - Set react state agressive'), +(15958, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 19, 15402, 0, 0, 0, 0, 0, 0, 'Gharsul the Remorseless - On Reached WP1 - Attack Apprentice Mirveda'), + +-- Script does not need to cast 29535 Quest - Apprentice Mirveda - Test Soil as this spell is cast as rewardspellcast from quest_Template and having it in script just makes the npc cast it twice instead of once +(1540200, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - Script 1 - Set NPC Flags'), +(1540200, 9, 1, 0, 0, 0, 100, 0, 10000, 10000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - Script 1 - Say Line 1'), +(1540200, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 81, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - Script 1 - Set NPC Flags'), +(1540201, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - Script 2 - Set NPC Flags'), +(1540201, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 2, 232, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - Script 2 - Set Faction'), +(1540201, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 19, 512, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - Script 2 - Remove Unit Flags Immune to NPC'), +(1540201, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - Script 2 - Set Phase 1'), +(1540201, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - Script 2 - Summon Summon Group 0'), +(1540202, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 81, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - Script 3 - Set NPC Flags'), +(1540202, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 2, 1604, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - Script 3 - Set Faction'), +(1540202, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 18, 512, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - Script 3 - Add Unit Flags Immune to NPC'), +(1540202, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Apprentice Mirveda - Script 3 - Set Phase 0'); + +DELETE FROM `smart_scripts` WHERE `entryorguid`=15656 AND `source_type`=0 AND `id`>1; +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 +(15656, 0, 2, 3, 54, 0, 100, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Angershade - On Just Summoned - Set Phase 2'), +(15656, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 53, 1, 15656, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 'Angershade - On Just Summoned - Start WP'), +(15656, 0, 4, 5, 40, 0, 100, 0, 1, 15656, 0, 0, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Angershade - On Reached WP1 - Set Home position'), +(15656, 0, 5, 6, 61, 0, 100, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Angershade - On Reached WP1 - Set react state agressive'), +(15656, 0, 6, 0, 61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 19, 15402, 0, 0, 0, 0, 0, 0, 'Angershade - On Reached WP1 - Attack Apprentice Mirveda'); + +DELETE FROM `creature_summon_groups` WHERE `summonerId`=15402; +INSERT INTO `creature_summon_groups` (`summonerId`, `summonerType`, `groupId`, `entry`, `position_x`, `position_y`, `position_z`, `orientation`, `summonType`, `summonTime`) VALUES +(15402, 0, 0, 15958, 8749.505, -7132.595, 35.31983, 3.816502, 1, 180000), -- Gharsul the Remorseless +(15402, 0, 0, 15656, 8755.38, -7131.521, 35.30957, 3.816502, 1, 180000), -- Angershade +(15402, 0, 0, 15656, 8753.199, -7125.975, 35.31986, 3.816502, 1, 180000); -- Angershade + +DELETE FROM `waypoints` WHERE `entry` IN(15958,15656); +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(15958, 1, 8706.201172, -7157.467773, 44.203865, 'Gharsul the Remorseless'), +(15656, 1, 8705.161133, -7155.801270, 44.329075, 'Angershade'); From 3199f2ba90952f1de36a2d4675dc3ea6ddf5b71e Mon Sep 17 00:00:00 2001 From: Dr-J Date: Wed, 30 Jul 2014 13:45:42 +0100 Subject: [PATCH 23/33] Remove Script from zone_eversong_woods.cpp Remove Apprentice Mirvedas script from eversong woods cpp scripts as is not longer required. --- .../EasternKingdoms/zone_eversong_woods.cpp | 150 +----------------- 1 file changed, 1 insertion(+), 149 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp index 82212972f45..9e20f6c5cb1 100644 --- a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp +++ b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp @@ -19,12 +19,11 @@ /* ScriptData SDName: Eversong_Woods SD%Complete: 95 -SDComment: Quest support: 8487, 8488, 8490 +SDComment: Quest support: 8490 SDCategory: Eversong Woods EndScriptData */ /* ContentData -npc_apprentice_mirveda npc_infused_crystal EndContentData */ @@ -34,152 +33,6 @@ EndContentData */ #include "ScriptedEscortAI.h" #include "Player.h" -enum UnexpectedResults -{ - // Quest - QUEST_CORRUPTED_SOIL = 8487, - QUEST_UNEXPECTED_RESULT = 8488, - - // Creatures - NPC_GHARZUL = 15958, // Quest 8488 - NPC_ANGERSHADE = 15656, // Quest 8488 - - // Factions - FACTION_NORMAL = 1604, // Quest 8488 - FACTION_COMBAT = 232, // Quest 8488 - - // Spells - SPELL_TEST_SOIL = 29535, // Quest 8487 - SPELL_FIREBALL = 20811, // Quest 8488 - - // Text - SAY_TEST_SOIL = 0, // Quest 8487 - - // Events - EVENT_TALK = 1, // Quest 8487 - EVENT_ADD_QUEST_GIVER_FLAG = 2, // Quest 8487 - EVENT_SUMMON = 3, // Quest 8488 - EVENT_FIREBALL = 4 // Quest 8488 -}; - -class npc_apprentice_mirveda : public CreatureScript -{ -public: - npc_apprentice_mirveda() : CreatureScript("npc_apprentice_mirveda") { } - - struct npc_apprentice_mirvedaAI : public ScriptedAI - { - npc_apprentice_mirvedaAI(Creature* creature) : ScriptedAI(creature), Summons(me) { } - - uint32 KillCount; - uint64 PlayerGUID; - SummonList Summons; - EventMap events; - - void Reset() override - { - SetCombatMovement(false); - KillCount = 0; - PlayerGUID = 0; - Summons.DespawnAll(); - } - - void sQuestReward(Player* /*player*/, Quest const* quest, uint32 /*opt*/) override - { - if (quest->GetQuestId() == QUEST_CORRUPTED_SOIL) - { - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - events.ScheduleEvent(EVENT_TALK, 2000); - } - } - - void sQuestAccept(Player* player, Quest const* quest) override - { - if (quest->GetQuestId() == QUEST_UNEXPECTED_RESULT) - { - me->setFaction(FACTION_COMBAT); - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - events.ScheduleEvent(EVENT_SUMMON, 1000); - PlayerGUID = player->GetGUID(); - } - } - - void EnterCombat(Unit* /*who*/) override - { - events.ScheduleEvent(EVENT_FIREBALL, 1000); - } - - void JustSummoned(Creature* summoned) override - { - // This is the best I can do because AttackStart does nothing - summoned->GetMotionMaster()->MovePoint(1, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()); - // summoned->AI()->AttackStart(me); - Summons.Summon(summoned); - } - - void SummonedCreatureDies(Creature* summoned, Unit* /*who*/) override - { - Summons.Despawn(summoned); - ++KillCount; - } - - void JustDied(Unit* /*killer*/) override - { - me->setFaction(FACTION_NORMAL); - - if (PlayerGUID) - if (Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID)) - player->FailQuest(QUEST_UNEXPECTED_RESULT); - } - - void UpdateAI(uint32 diff) override - { - if (KillCount >= 3 && PlayerGUID) - if (Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID)) - if (player->GetQuestStatus(QUEST_UNEXPECTED_RESULT) == QUEST_STATUS_INCOMPLETE) - { - player->CompleteQuest(QUEST_UNEXPECTED_RESULT); - me->setFaction(FACTION_NORMAL); - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - } - - events.Update(diff); - - while (uint32 eventId = events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_TALK: - Talk(SAY_TEST_SOIL); - events.ScheduleEvent(EVENT_ADD_QUEST_GIVER_FLAG, 7000); - break; - case EVENT_ADD_QUEST_GIVER_FLAG: - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - break; - case EVENT_SUMMON: - me->SummonCreature(NPC_GHARZUL, 8749.505f, -7132.595f, 35.31983f, 3.816502f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 180000); - me->SummonCreature(NPC_ANGERSHADE, 8755.38f, -7131.521f, 35.30957f, 3.816502f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 180000); - me->SummonCreature(NPC_ANGERSHADE, 8753.199f, -7125.975f, 35.31986f, 3.816502f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 180000); - break; - case EVENT_FIREBALL: - if (!UpdateVictim()) - continue; - DoCastVictim(SPELL_FIREBALL, true); // Not casting in combat - events.ScheduleEvent(EVENT_FIREBALL, 3000); - break; - default: - break; - } - } - DoMeleeAttackIfReady(); - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_apprentice_mirvedaAI(creature); - } -}; /*###### ## npc_infused_crystal @@ -299,6 +152,5 @@ public: void AddSC_eversong_woods() { - new npc_apprentice_mirveda(); new npc_infused_crystal(); } From f499edd5395405c226dd42b5abbbb89b2127d48c Mon Sep 17 00:00:00 2001 From: Dr-J Date: Wed, 30 Jul 2014 13:53:44 +0100 Subject: [PATCH 24/33] DB/SAI: Apprentice Mirveda Noticed this after commit, bad phase mask a remnant from how I originally intended to script this, event phase 4 now never gets set. --- sql/updates/world/2014_07_30_02_world_sai.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 sql/updates/world/2014_07_30_02_world_sai.sql diff --git a/sql/updates/world/2014_07_30_02_world_sai.sql b/sql/updates/world/2014_07_30_02_world_sai.sql new file mode 100644 index 00000000000..ef12a4236c5 --- /dev/null +++ b/sql/updates/world/2014_07_30_02_world_sai.sql @@ -0,0 +1 @@ +UPDATE `smart_scripts` SET `event_phase_mask`=1 WHERE `entryorguid`=15402 AND `source_type`=0 AND `id`=6 From a97e477e31bc3f28f4826f469bf08e10579e17cd Mon Sep 17 00:00:00 2001 From: joschiwald Date: Wed, 30 Jul 2014 14:58:36 +0200 Subject: [PATCH 25/33] Fixed build --- src/server/game/OutdoorPvP/OutdoorPvP.cpp | 10 ++++++++++ src/server/game/OutdoorPvP/OutdoorPvP.h | 9 +-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/server/game/OutdoorPvP/OutdoorPvP.cpp b/src/server/game/OutdoorPvP/OutdoorPvP.cpp index 976b5d3c0d7..92a83f9d6f0 100644 --- a/src/server/game/OutdoorPvP/OutdoorPvP.cpp +++ b/src/server/game/OutdoorPvP/OutdoorPvP.cpp @@ -642,3 +642,13 @@ void OutdoorPvP::SendDefenseMessage(uint32 zoneId, uint32 id) Trinity::LocalizedPacketDo localizer(builder); BroadcastWorker(localizer, zoneId); } + +template +void OutdoorPvP::BroadcastWorker(Worker& _worker, uint32 zoneId) +{ + for (uint32 i = 0; i < BG_TEAMS_COUNT; ++i) + for (PlayerSet::iterator itr = m_players[i].begin(); itr != m_players[i].end(); ++itr) + if (Player* player = ObjectAccessor::FindPlayer(*itr)) + if (player->GetZoneId() == zoneId) + _worker(player); +} diff --git a/src/server/game/OutdoorPvP/OutdoorPvP.h b/src/server/game/OutdoorPvP/OutdoorPvP.h index ba2d7ae9d1b..9b1cfa71f96 100644 --- a/src/server/game/OutdoorPvP/OutdoorPvP.h +++ b/src/server/game/OutdoorPvP/OutdoorPvP.h @@ -304,14 +304,7 @@ class OutdoorPvP : public ZoneScript void TeamCastSpell(TeamId team, int32 spellId); template - void BroadcastWorker(Worker& _worker, uint32 zoneId) - { - for (uint32 i = 0; i < BG_TEAMS_COUNT; ++i) - for (PlayerSet::iterator itr = m_players[i].begin(); itr != m_players[i].end(); ++itr) - if (Player* player = ObjectAccessor::FindPlayer(*itr)) - if (player->GetZoneId() == zoneId) - _worker(player); - } + void BroadcastWorker(Worker& _worker, uint32 zoneId); }; #endif /*OUTDOOR_PVP_H_*/ From 202255d935969b7e5e5702b986504192f1ba3f5d Mon Sep 17 00:00:00 2001 From: DDuarte Date: Wed, 30 Jul 2014 14:20:17 +0100 Subject: [PATCH 26/33] Build/CMake: Mute a CMake Warning (dev) in mysqllite project --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7150c9664bb..1c54da4d080 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,7 @@ project(TrinityCore) # CMake policies (can not be handled elsewhere) cmake_minimum_required(VERSION 2.8.9) cmake_policy(SET CMP0005 OLD) +cmake_policy(SET CMP0043 OLD) # Disable 'Ignore COMPILE_DEFINITIONS_ properties' # add this options before PROJECT keyword set(CMAKE_DISABLE_SOURCE_CHANGES ON) From de3aed580e3d25481be297e898ad9b58dcbae78a Mon Sep 17 00:00:00 2001 From: DDuarte Date: Wed, 30 Jul 2014 15:52:05 +0100 Subject: [PATCH 27/33] Build/CMake: Fix build on older cmakes that don't support the recently added policy --- CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1c54da4d080..2341cb7b96d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,9 @@ project(TrinityCore) # CMake policies (can not be handled elsewhere) cmake_minimum_required(VERSION 2.8.9) cmake_policy(SET CMP0005 OLD) -cmake_policy(SET CMP0043 OLD) # Disable 'Ignore COMPILE_DEFINITIONS_ properties' +if(POLICY CMP0043) + cmake_policy(SET CMP0043 OLD) # Disable 'Ignore COMPILE_DEFINITIONS_ properties' +endif(POLICY CMP0043) # add this options before PROJECT keyword set(CMAKE_DISABLE_SOURCE_CHANGES ON) From c81c889ade10b56961becc549081ec40f4426208 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Wed, 30 Jul 2014 13:17:17 -0230 Subject: [PATCH 28/33] DB/Misc: Fixup Ango'rosh Stronghold in Zangarmarsh. Fix spawns, SAI, auras, and pathing --- .../world/2014_07_30_03_world_misc.sql | 203 ++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 sql/updates/world/2014_07_30_03_world_misc.sql diff --git a/sql/updates/world/2014_07_30_03_world_misc.sql b/sql/updates/world/2014_07_30_03_world_misc.sql new file mode 100644 index 00000000000..3b6866ad935 --- /dev/null +++ b/sql/updates/world/2014_07_30_03_world_misc.sql @@ -0,0 +1,203 @@ +-- Fix and remove some Ango'rosh Souleater & Mauler spawns +DELETE FROM `creature_addon` WHERE `guid` IN (SELECT guid FROM creature WHERE id=18121); +UPDATE `creature_template_addon` SET `auras`= '35194' WHERE `entry`=18121; +DELETE FROM creature WHERE guid IN (64230,64242,64259,64229,64240); +UPDATE `creature` SET `spawndist`=5,`MovementType`=1,`position_x`=1819.455,`position_y`=8405.807,`position_z`=-8.42151 WHERE `guid`=64261; + +-- Ango'rosh Shadowmage SAI +SET @ENTRY := 20444; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,9613,64,0,0,0,0,2,0,0,0,0,0,0,0,"Ango'rosh Shadowmage - In Combat CMC - Cast 'Shadow Bolt'"), +(@ENTRY,0,1,0,0,0,100,0,3000,5000,15000,19000,11,9657,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ango'rosh Shadowmage - In Combat - Cast 'Shadow Shell'"); + +-- Pathing for Ango'rosh Souleater Entry: 18121 +SET @NPC := 64246; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1483.504,`position_y`=8615.958,`position_z`=-23.3291 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '35194'); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,1483.504,8615.958,-23.3291,0,0,0,0,100,0), +(@PATH,2,1502.414,8615.582,-27.77901,0,0,0,0,100,0), +(@PATH,3,1549.829,8613.372,-33.61022,0,0,0,0,100,0), +(@PATH,4,1595.268,8608.182,-32.85706,0,0,0,0,100,0), +(@PATH,5,1549.829,8613.372,-33.61022,0,0,0,0,100,0), +(@PATH,6,1502.414,8615.582,-27.77901,0,0,0,0,100,0); + +-- Pathing for Ango'rosh Mauler Entry: 18120 +SET @NPC := 64228; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1764.775,`position_y`=8621.494,`position_z`=3.295652 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,1764.775,8621.494,3.295652,0,0,0,0,100,0), +(@PATH,2,1755.779,8625.817,4.385007,0,0,0,0,100,0), +(@PATH,3,1744.3,8627.528,6.188718,0,0,0,0,100,0), +(@PATH,4,1729.123,8630.341,6.311835,0,0,0,0,100,0), +(@PATH,5,1717.921,8632.591,8.065008,0,0,0,0,100,0), +(@PATH,6,1699.805,8628.589,12.01016,0,0,0,0,100,0), +(@PATH,7,1689.124,8621.329,12.50693,0,0,0,0,100,0), +(@PATH,8,1681.696,8611.765,12.6384,0,0,0,0,100,0), +(@PATH,9,1675.004,8605.295,12.36166,0,0,0,0,100,0), +(@PATH,10,1664.974,8601.517,10.78405,0,0,0,0,100,0), +(@PATH,11,1655.826,8594.225,8.950456,0,0,0,0,100,0), +(@PATH,12,1649.307,8586.103,8.346086,0,0,0,0,100,0), +(@PATH,13,1655.826,8594.225,8.950456,0,0,0,0,100,0), +(@PATH,14,1664.974,8601.517,10.78405,0,0,0,0,100,0), +(@PATH,15,1675.004,8605.295,12.36166,0,0,0,0,100,0), +(@PATH,16,1681.696,8611.765,12.6384,0,0,0,0,100,0), +(@PATH,17,1689.124,8621.329,12.50693,0,0,0,0,100,0), +(@PATH,18,1699.805,8628.589,12.01016,0,0,0,0,100,0), +(@PATH,19,1717.921,8632.591,8.065008,0,0,0,0,100,0), +(@PATH,20,1729.123,8630.341,6.311835,0,0,0,0,100,0), +(@PATH,21,1744.3,8627.528,6.188718,0,0,0,0,100,0), +(@PATH,22,1755.779,8625.817,4.385007,0,0,0,0,100,0), +(@PATH,23,1764.717,8621.615,3.358396,0,0,0,0,100,0), +(@PATH,24,1770.793,8609.967,0.8600597,0,0,0,0,100,0), +(@PATH,25,1778.085,8581.91,-7.021969,0,0,0,0,100,0), +(@PATH,26,1781.569,8556.616,-9.007608,0,0,0,0,100,0), +(@PATH,27,1791.778,8532.473,-16.78218,0,0,0,0,100,0), +(@PATH,28,1806.07,8517.046,-16.52869,0,0,0,0,100,0), +(@PATH,29,1812.219,8498.097,-19.58127,0,0,0,0,100,0), +(@PATH,30,1805.245,8477.743,-19.69052,0,0,0,0,100,0), +(@PATH,31,1809.99,8468.151,-16.3652,0,0,0,0,100,0), +(@PATH,32,1822.48,8447.891,-16.88681,0,0,0,0,100,0), +(@PATH,33,1809.99,8468.151,-16.3652,0,0,0,0,100,0), +(@PATH,34,1805.245,8477.743,-19.69052,0,0,0,0,100,0), +(@PATH,35,1812.219,8498.097,-19.58127,0,0,0,0,100,0), +(@PATH,36,1806.07,8517.046,-16.52869,0,0,0,0,100,0), +(@PATH,37,1791.797,8532.447,-16.83393,0,0,0,0,100,0), +(@PATH,38,1781.569,8556.616,-9.007608,0,0,0,0,100,0), +(@PATH,39,1778.085,8581.91,-7.021969,0,0,0,0,100,0), +(@PATH,40,1770.793,8609.967,0.8600597,0,0,0,0,100,0); + +-- Pathing for Ango'rosh Mauler Entry: 18120 +SET @NPC := 64223; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1394.517,`position_y`=8623.379,`position_z`=9.483105 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,1394.517,8623.379,9.483105,0,0,0,0,100,0), +(@PATH,2,1367.01,8619.995,14.69728,0,0,0,0,100,0), +(@PATH,3,1348.54,8608.503,18.98279,0,0,0,0,100,0), +(@PATH,4,1330.298,8594.458,20.70809,0,0,0,0,100,0), +(@PATH,5,1312.62,8590.247,19.89278,0,0,0,0,100,0), +(@PATH,6,1271.029,8590.587,19.02531,0,0,0,0,100,0), +(@PATH,7,1312.62,8590.247,19.89278,0,0,0,0,100,0), +(@PATH,8,1330.298,8594.458,20.70809,0,0,0,0,100,0), +(@PATH,9,1348.514,8608.496,18.99512,0,0,0,0,100,0), +(@PATH,10,1367.01,8619.995,14.69728,0,0,0,0,100,0), +(@PATH,11,1394.517,8623.379,9.483105,0,0,0,0,100,0), +(@PATH,12,1409.568,8618.852,5.867712,0,0,0,0,100,0), +(@PATH,13,1424.441,8607.313,3.257421,0,0,0,0,100,0), +(@PATH,14,1441.44,8607.563,-2.581793,0,0,0,0,100,0), +(@PATH,15,1461.23,8614.597,-12.20679,0,0,0,0,100,0), +(@PATH,16,1484.593,8616.813,-23.64642,0,0,0,0,100,0), +(@PATH,17,1461.683,8614.68,-12.70679,0,0,0,0,100,0), +(@PATH,18,1441.522,8607.562,-2.717291,0,0,0,0,100,0), +(@PATH,19,1424.441,8607.313,3.257421,0,0,0,0,100,0), +(@PATH,20,1409.568,8618.852,5.867712,0,0,0,0,100,0); + +-- Pathing for Ango'rosh Mauler Entry: 18120 +SET @NPC := 64232; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1608.688,`position_y`=8551.909,`position_z`=-15.61611 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,1608.688,8551.909,-15.61611,0,0,0,0,100,0), +(@PATH,2,1606.189,8568.754,-21.79966,0,0,0,0,100,0), +(@PATH,3,1608.48,8584.462,-29.34727,0,0,0,0,100,0), +(@PATH,4,1606.189,8568.754,-21.79966,0,0,0,0,100,0), +(@PATH,5,1608.679,8551.937,-15.42959,0,0,0,0,100,0), +(@PATH,6,1611.307,8535.476,-8.693747,0,0,0,0,100,0), +(@PATH,7,1615.581,8524.725,-6.334841,0,0,0,0,100,0), +(@PATH,8,1622.581,8518.366,-5.849367,0,0,0,0,100,0), +(@PATH,9,1631.158,8510.858,-6.801638,0,0,0,0,100,0), +(@PATH,10,1644.64,8504.219,-7.020604,0,0,0,0,100,0), +(@PATH,11,1654.69,8501.367,-6.633519,0,0,0,0,100,0), +(@PATH,12,1665.907,8502.825,-6.924901,0,0,0,0,100,0), +(@PATH,13,1672.206,8501.249,-7.81,0,0,0,0,100,0), +(@PATH,14,1677.826,8494.035,-8.564032,0,0,0,0,100,0), +(@PATH,15,1689.134,8484.7,-7.435247,0,0,0,0,100,0), +(@PATH,16,1700.158,8477,-6.369071,0,0,0,0,100,0), +(@PATH,17,1689.134,8484.7,-7.435247,0,0,0,0,100,0), +(@PATH,18,1677.826,8494.035,-8.564032,0,0,0,0,100,0), +(@PATH,19,1672.206,8501.249,-7.81,0,0,0,0,100,0), +(@PATH,20,1665.907,8502.825,-6.924901,0,0,0,0,100,0), +(@PATH,21,1654.69,8501.367,-6.633519,0,0,0,0,100,0), +(@PATH,22,1644.64,8504.219,-7.020604,0,0,0,0,100,0), +(@PATH,23,1631.158,8510.858,-6.801638,0,0,0,0,100,0), +(@PATH,24,1622.581,8518.366,-5.849367,0,0,0,0,100,0), +(@PATH,25,1615.581,8524.725,-6.334841,0,0,0,0,100,0), +(@PATH,26,1611.307,8535.476,-8.693747,0,0,0,0,100,0); + +-- Pathing for Ango'rosh Mauler Entry: 18120 +SET @NPC := 64239; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1643.826,`position_y`=8612.983,`position_z`=-31.12585 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,1643.826,8612.983,-31.12585,0,0,0,0,100,0), +(@PATH,2,1636.367,8611.652,-28.45675,0,0,0,0,100,0), +(@PATH,3,1631.083,8610.185,-27.16004,0,0,0,0,100,0), +(@PATH,4,1624.009,8607.951,-25.66858,0,0,0,0,100,0), +(@PATH,5,1630.667,8610.061,-27.07753,0,0,0,0,100,0), +(@PATH,6,1636.367,8611.652,-28.45675,0,0,0,0,100,0), +(@PATH,7,1643.823,8612.983,-31.1251,0,0,0,0,100,0), +(@PATH,8,1653.174,8612.425,-33.30415,0,0,0,0,100,0), +(@PATH,9,1659.041,8606.214,-35.02015,0,0,0,0,100,0), +(@PATH,10,1663.339,8595.787,-39.44561,0,0,0,0,100,0), +(@PATH,11,1668.673,8580.869,-43.56666,0,0,0,0,100,0), +(@PATH,12,1672.773,8571.901,-45.45698,0,0,0,0,100,0), +(@PATH,13,1683.156,8565.985,-47.18433,0,0,0,0,100,0), +(@PATH,14,1706.897,8560.648,-45.62059,0,0,0,0,100,0), +(@PATH,15,1683.156,8565.985,-47.18433,0,0,0,0,100,0), +(@PATH,16,1672.773,8571.901,-45.45698,0,0,0,0,100,0), +(@PATH,17,1668.673,8580.869,-43.56666,0,0,0,0,100,0), +(@PATH,18,1663.339,8595.787,-39.44561,0,0,0,0,100,0), +(@PATH,19,1659.041,8606.214,-35.02015,0,0,0,0,100,0), +(@PATH,20,1653.174,8612.425,-33.30415,0,0,0,0,100,0); + +-- Pathing for Ango'rosh Mauler Entry: 18120 +SET @NPC := 64241; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1654.654,`position_y`=8521.531,`position_z`=-53.58351 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,1654.654,8521.531,-53.58351,0,0,0,0,100,0), +(@PATH,2,1649.625,8510.094,-54.21131,0,0,0,0,100,0), +(@PATH,3,1648.938,8498.171,-53.83168,0,0,0,0,100,0), +(@PATH,4,1656.672,8485.056,-55.70977,0,0,0,0,100,0), +(@PATH,5,1668.375,8473.033,-58.77278,0,0,0,0,100,0), +(@PATH,6,1682.668,8469.868,-61.03103,0,0,0,0,100,0), +(@PATH,7,1693.718,8469.74,-60.3237,0,0,0,0,100,0), +(@PATH,8,1702.251,8470.647,-59.50084,0,0,0,0,100,0), +(@PATH,9,1715.028,8473.496,-57.46725,0,0,0,0,100,0), +(@PATH,10,1702.251,8470.647,-59.50084,0,0,0,0,100,0), +(@PATH,11,1693.747,8469.74,-60.23508,0,0,0,0,100,0), +(@PATH,12,1682.668,8469.868,-61.03103,0,0,0,0,100,0), +(@PATH,13,1668.375,8473.033,-58.77278,0,0,0,0,100,0), +(@PATH,14,1656.672,8485.056,-55.70977,0,0,0,0,100,0), +(@PATH,15,1648.938,8498.171,-53.83168,0,0,0,0,100,0), +(@PATH,16,1649.625,8510.094,-54.21131,0,0,0,0,100,0), +(@PATH,17,1654.654,8521.531,-53.58351,0,0,0,0,100,0), +(@PATH,18,1664.266,8535.215,-51.28564,0,0,0,0,100,0), +(@PATH,19,1673.347,8538.975,-49.83964,0,0,0,0,100,0), +(@PATH,20,1687.687,8539.301,-49.18303,0,0,0,0,100,0), +(@PATH,21,1698.444,8539.608,-48.25351,0,0,0,0,100,0), +(@PATH,22,1687.687,8539.301,-49.18303,0,0,0,0,100,0), +(@PATH,23,1673.364,8538.981,-49.88883,0,0,0,0,100,0), +(@PATH,24,1664.266,8535.215,-51.28564,0,0,0,0,100,0); From 74d11ca0ef3eefb57121350cdf7614a7a46294f4 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Wed, 30 Jul 2014 14:17:32 -0230 Subject: [PATCH 29/33] DB/SAI: Fix some more SAI in Outlands to use CMC and allow random movement. --- sql/updates/world/2014_07_30_04_world_sai.sql | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 sql/updates/world/2014_07_30_04_world_sai.sql diff --git a/sql/updates/world/2014_07_30_04_world_sai.sql b/sql/updates/world/2014_07_30_04_world_sai.sql new file mode 100644 index 00000000000..0022886ca5a --- /dev/null +++ b/sql/updates/world/2014_07_30_04_world_sai.sql @@ -0,0 +1,86 @@ +-- Warmaul Warlock SAI +SET @ENTRY := 18037; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,50,1,1000,1000,0,0,11,11939,1,0,0,0,0,1,0,0,0,0,0,0,0,"Warmaul Warlock - Out of Combat - Cast 'Summon Imp' (No Repeat)"), +(@ENTRY,0,1,0,0,0,100,0,0,0,2400,3800,11,9613,64,0,0,0,0,2,0,0,0,0,0,0,0,"Warmaul Warlock - In Combat CMC - Cast 'Shadow Bolt'"); + +-- Rajis Fyashe SAI +SET @ENTRY := 18044; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,15043,64,0,0,0,0,2,0,0,0,0,0,0,0,"Rajis Fyashe - In Combat CMC - Cast 'Frostbolt'"), +(@ENTRY,0,1,0,0,0,100,1,6000,9000,0,0,11,35594,1,0,0,0,0,1,0,0,0,0,0,0,0,"Rajis Fyashe - In Combat - Cast 'Mass Elementals' (No Repeat)"), +(@ENTRY,0,2,0,0,0,100,0,8000,9000,8000,12000,11,35499,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rajis Fyashe - In Combat - Cast 'Water Spout'"), +(@ENTRY,0,3,0,0,0,100,0,18000,24000,18000,24000,11,34787,1,0,0,0,0,2,0,0,0,0,0,0,0,"Rajis Fyashe - In Combat - Cast 'Freezing Circle'"), +(@ENTRY,0,4,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rajis Fyashe - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Enraged Crusher SAI +SET @ENTRY := 18062; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,65,0,30000,30000,8000,8000,11,32015,0,0,0,0,0,2,0,0,0,0,0,0,0,"Enraged Crusher - In Combat - Cast 'Knockdown'"), +(@ENTRY,0,1,2,2,0,100,1,0,30,0,0,11,3019,0,0,0,0,0,1,0,0,0,0,0,0,0,"Enraged Crusher - Between 0-30% Health - Cast 'Frenzy' (No Repeat)"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Enraged Crusher - Between 0-30% Health - Say Line 0 (No Repeat)"); + +-- Warmaul Shaman SAI +SET @ENTRY := 18064; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,60,0,2000,2000,4000,4000,11,15038,0,0,0,0,0,2,0,0,0,0,0,0,0,"Warmaul Shaman - In Combat - Cast 'Scorching Totem'"), +(@ENTRY,0,1,0,2,0,100,1,0,49,22000,22000,11,11986,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warmaul Shaman - Between 0-49% Health - Cast 'Healing Wave'"); + +-- Umbrafen Oracle SAI +SET @ENTRY := 18077; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,11,12550,0,0,0,0,0,1,0,0,0,0,0,0,0,"Umbrafen Oracle - On Aggro - Cast 'Lightning Shield'"), +(@ENTRY,0,1,0,2,0,100,1,0,49,22000,22000,11,11986,0,0,0,0,0,1,0,0,0,0,0,0,0,"Umbrafen Oracle - Between 0-49% Health - Cast 'Healing Wave'"); + +-- Darkcrest Siren SAI +SET @ENTRY := 18087; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,9672,64,0,0,0,0,2,0,0,0,0,0,0,0,"Darkcrest Siren - In Combat CMC - Cast 'Frostbolt'"), +(@ENTRY,0,1,0,0,0,100,0,7000,10000,14000,18000,11,11831,1,0,0,0,0,1,0,0,0,0,0,0,0,"Darkcrest Siren - In Combat - Cast 'Frost Nova'"), +(@ENTRY,0,2,0,0,0,100,0,5000,7000,12000,17000,11,6726,1,0,0,0,0,5,0,0,0,0,0,0,0,"Darkcrest Siren - In Combat - Cast 'Silence'"), +(@ENTRY,0,3,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkcrest Siren - Between 0-15% Health - Flee For Assist (No Repeat)"); + +-- Bloodscale Enchantress SAI +SET @ENTRY := 18088; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,0,0,100,0,0,0,2400,3800,11,34447,64,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodscale Enchantress - In Combat CMC - Cast 'Arcane Missiles'"), +(@ENTRY,0,1,0,0,0,100,0,6000,8000,16000,22000,11,34787,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscale Enchantress - In Combat - Cast 'Freezing Circle'"); + +-- Bloodscale Slavedriver SAI +SET @ENTRY := 18089; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,11,32064,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscale Slavedriver - On Aggro - Cast 'Battle Shout' (No Repeat)"); + +-- Bloodscale Wavecaller SAI +SET @ENTRY := 20089; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,100,0,1000,1000,600000,600000,11,34827,33,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscale Wavecaller - Out of Combat - Cast 'Water Shield' (No Repeat)"), +(@ENTRY,0,1,0,0,0,100,0,0,0,2400,3800,11,32011,64,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodscale Wavecaller - In Combat CMC - Cast 'Water Bolt'"); + +-- Darkcrest Sorceress SAI +SET @ENTRY := 19947; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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 +(@ENTRY,0,0,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,33,0,0,0,0,1,0,0,0,0,0,0,0,"Darkcrest Sorceress - Out of Combat - Cast 'Frost Armor' (No Repeat)"), +(@ENTRY,0,1,0,0,0,100,0,0,0,2400,3800,11,13901,64,0,0,0,0,2,0,0,0,0,0,0,0,"Darkcrest Sorceress - In Combat CMC - Cast 'Arcane Bolt'"), +(@ENTRY,0,2,0,0,0,100,0,10000,15000,20000,25000,11,34787,1,0,0,0,0,2,0,0,0,0,0,0,0,"Darkcrest Sorceress - In Combat - Cast 'Freezing Circle'"), +(@ENTRY,0,3,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkcrest Sorceress - Between 0-15% Health - Flee For Assist (No Repeat)"); From 4190d84c5b4a9eb7d3d70f8872bba16b89bd1c09 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Wed, 30 Jul 2014 20:22:32 +0200 Subject: [PATCH 30/33] Tools/MMaps: Fix static analysis issues Fix static analysis issue spotted by Coverity "Structurally dead code found" --- src/tools/mmaps_generator/MapBuilder.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/tools/mmaps_generator/MapBuilder.cpp b/src/tools/mmaps_generator/MapBuilder.cpp index 3437355c0a9..b119b6cdbde 100644 --- a/src/tools/mmaps_generator/MapBuilder.cpp +++ b/src/tools/mmaps_generator/MapBuilder.cpp @@ -782,12 +782,12 @@ namespace MMAP if (params.nvp > DT_VERTS_PER_POLYGON) { printf("%s Invalid verts-per-polygon value! \n", tileString); - continue; + break; } if (params.vertCount >= 0xffff) { printf("%s Too many vertices! \n", tileString); - continue; + break; } if (!params.vertCount || !params.verts) { @@ -796,7 +796,7 @@ namespace MMAP // message is an annoyance //printf("%sNo vertices to build tile! \n", tileString); - continue; + break; } if (!params.polyCount || !params.polys || TILES_PER_MAP*TILES_PER_MAP == params.polyCount) @@ -805,19 +805,19 @@ namespace MMAP // keep in mind that we do output those into debug info // drop tiles with only exact count - some tiles may have geometry while having less tiles printf("%s No polygons to build on tile! \n", tileString); - continue; + break; } if (!params.detailMeshes || !params.detailVerts || !params.detailTris) { printf("%s No detail mesh to build tile! \n", tileString); - continue; + break; } printf("%s Building navmesh tile...\n", tileString); if (!dtCreateNavMeshData(¶ms, &navData, &navDataSize)) { printf("%s Failed building navmesh tile! \n", tileString); - continue; + break; } dtTileRef tileRef = 0; @@ -828,7 +828,7 @@ namespace MMAP if (!tileRef || dtResult != DT_SUCCESS) { printf("%s Failed adding tile to navmesh! \n", tileString); - continue; + break; } // file output @@ -841,7 +841,7 @@ namespace MMAP sprintf(message, "[Map %03i] Failed to open %s for writing!\n", mapID, fileName); perror(message); navMesh->removeTile(tileRef, NULL, NULL); - continue; + break; } printf("%s Writing to file...\n", tileString); From d07377aa8df1a634ce7590e2b946a552d6668ff6 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Wed, 30 Jul 2014 15:59:10 -0230 Subject: [PATCH 31/33] DB/Waypoints: Pathing for Darkcrest Sentries, Zangarmarsh. Thanks to Kittnz :) --- .../world/2014_07_30_04_world_waypoints.sql5 | 235 ++++++++++++++++++ 1 file changed, 235 insertions(+) create mode 100644 sql/updates/world/2014_07_30_04_world_waypoints.sql5 diff --git a/sql/updates/world/2014_07_30_04_world_waypoints.sql5 b/sql/updates/world/2014_07_30_04_world_waypoints.sql5 new file mode 100644 index 00000000000..96a2ac74603 --- /dev/null +++ b/sql/updates/world/2014_07_30_04_world_waypoints.sql5 @@ -0,0 +1,235 @@ +-- Pathing for Darkcrest Sentry Entry: 20079 +SET @NPC := 71525; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-811.9146,`position_y`=5769.104,`position_z`=17.18619 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-811.9146,5769.104,17.18619,0,0,0,0,100,0), +(@PATH,2,-823.9103,5769.617,18.49771,0,0,0,0,100,0), +(@PATH,3,-837.1352,5761.915,13.98373,0,0,0,0,100,0), +(@PATH,4,-845.346,5746.582,15.9177,0,0,0,0,100,0), +(@PATH,5,-856.5806,5737.951,17.44125,0,0,0,0,100,0), +(@PATH,6,-870.8132,5739.455,18.25524,0,0,0,0,100,0), +(@PATH,7,-876.6976,5766.97,17.9558,0,0,0,0,100,0), +(@PATH,8,-879.2238,5786.183,17.97192,0,0,0,0,100,0), +(@PATH,9,-877.8231,5799.473,18.22192,0,0,0,0,100,0), +(@PATH,10,-875.8525,5816.587,18.1166,0,0,0,0,100,0), +(@PATH,11,-870.438,5833.134,17.8666,0,0,0,0,100,0), +(@PATH,12,-875.8525,5816.587,18.1166,0,0,0,0,100,0), +(@PATH,13,-877.8231,5799.473,18.22192,0,0,0,0,100,0), +(@PATH,14,-879.2238,5786.183,17.97192,0,0,0,0,100,0), +(@PATH,15,-876.6976,5766.97,17.9558,0,0,0,0,100,0), +(@PATH,16,-870.8132,5739.455,18.25524,0,0,0,0,100,0), +(@PATH,17,-856.5806,5737.951,17.44125,0,0,0,0,100,0), +(@PATH,18,-845.346,5746.582,15.9177,0,0,0,0,100,0), +(@PATH,19,-837.1352,5761.915,13.98373,0,0,0,0,100,0), +(@PATH,20,-823.9103,5769.617,18.49771,0,0,0,0,100,0), +(@PATH,21,-811.9146,5769.104,17.18619,0,0,0,0,100,0), +(@PATH,22,-803.7941,5777.138,19.5491,0,0,0,0,100,0), +(@PATH,23,-805.7983,5789.479,19.2897,0,0,0,0,100,0), +(@PATH,24,-813.3177,5798.603,18.38748,0,0,0,0,100,0), +(@PATH,25,-825.4734,5800.777,17.13269,0,0,0,0,100,0), +(@PATH,26,-841.5132,5803.947,14.80724,0,0,0,0,100,0), +(@PATH,27,-853.8585,5824.338,14.71092,0,0,0,0,100,0), +(@PATH,28,-864.2906,5832.222,17.76622,0,0,0,0,100,0), +(@PATH,29,-853.9316,5824.39,14.72874,0,0,0,0,100,0), +(@PATH,30,-841.5132,5803.947,14.80724,0,0,0,0,100,0), +(@PATH,31,-825.4734,5800.777,17.13269,0,0,0,0,100,0), +(@PATH,32,-813.3177,5798.603,18.38748,0,0,0,0,100,0), +(@PATH,33,-805.7983,5789.479,19.2897,0,0,0,0,100,0), +(@PATH,34,-803.7941,5777.138,19.5491,0,0,0,0,100,0); + +-- Pathing for Darkcrest Sentry Entry: 20079 +SET @NPC := 71526; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-410.8705,`position_y`=6309.836,`position_z`=17.62405 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-410.8705,6309.836,17.62405,0,0,0,0,100,0), +(@PATH,2,-397.7162,6294.659,17.62408,0,0,0,0,100,0), +(@PATH,3,-386.2312,6282.547,17.49908,0,0,0,0,100,0), +(@PATH,4,-397.7162,6294.659,17.62408,0,0,0,0,100,0), +(@PATH,5,-410.8705,6309.836,17.62405,0,0,0,0,100,0), +(@PATH,6,-412.0008,6326.139,17.70071,0,0,0,0,100,0), +(@PATH,7,-427.5412,6351.002,17.63304,0,0,0,0,100,0), +(@PATH,8,-442.1701,6376.702,17.97111,0,0,0,0,100,0), +(@PATH,9,-440.1516,6410.867,17.4473,0,0,0,0,100,0), +(@PATH,10,-436.8709,6453.745,17.55275,0,0,0,0,100,0), +(@PATH,11,-406.3064,6458.811,17.25673,0,0,0,0,100,0), +(@PATH,12,-390.183,6444.14,17.39387,0,0,0,0,100,0), +(@PATH,13,-406.3064,6458.811,17.25673,0,0,0,0,100,0), +(@PATH,14,-436.8709,6453.745,17.55275,0,0,0,0,100,0), +(@PATH,15,-440.1516,6410.867,17.4473,0,0,0,0,100,0), +(@PATH,16,-442.1701,6376.702,17.97111,0,0,0,0,100,0), +(@PATH,17,-427.5412,6351.002,17.63304,0,0,0,0,100,0), +(@PATH,18,-412.0008,6326.139,17.70071,0,0,0,0,100,0); + +-- Pathing for Darkcrest Sentry Entry: 20079 +SET @NPC := 71527; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-355.7398,`position_y`=6439.344,`position_z`=17.67068 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-355.7398,6439.344,17.67068,0,0,0,0,100,0), +(@PATH,2,-337.6484,6458.52,16.78129,0,0,0,0,100,0), +(@PATH,3,-355.7398,6439.344,17.67068,0,0,0,0,100,0), +(@PATH,4,-375.4502,6416.951,17.63828,0,0,0,0,100,0), +(@PATH,5,-352.3055,6382.163,17.44267,0,0,0,0,100,0), +(@PATH,6,-339.4132,6371.913,18.95378,0,0,0,0,100,0), +(@PATH,7,-320.4037,6349.353,17.49905,0,0,0,0,100,0), +(@PATH,8,-339.4132,6371.913,18.95378,0,0,0,0,100,0), +(@PATH,9,-352.3055,6382.163,17.44267,0,0,0,0,100,0), +(@PATH,10,-375.4502,6416.951,17.63828,0,0,0,0,100,0); + +-- Pathing for Darkcrest Sentry Entry: 20079 +SET @NPC := 71528; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-320.0476,`position_y`=6163.984,`position_z`=17.62409 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-320.0476,6163.984,17.62409,0,0,0,0,100,0), +(@PATH,2,-331.2123,6150.911,17.87409,0,0,0,0,100,0), +(@PATH,3,-345.0256,6140.545,18.02436,0,0,0,0,100,0), +(@PATH,4,-360.5103,6137.307,17.89936,0,0,0,0,100,0), +(@PATH,5,-381.054,6139.517,18.19844,0,0,0,0,100,0), +(@PATH,6,-360.5103,6137.307,17.89936,0,0,0,0,100,0), +(@PATH,7,-345.0256,6140.545,18.02436,0,0,0,0,100,0), +(@PATH,8,-331.2123,6150.911,17.87409,0,0,0,0,100,0), +(@PATH,9,-320.0476,6163.984,17.62409,0,0,0,0,100,0), +(@PATH,10,-314.4604,6181.93,17.56598,0,0,0,0,100,0), +(@PATH,11,-319.6298,6200.069,17.49909,0,0,0,0,100,0), +(@PATH,12,-316.2941,6219.737,17.49909,0,0,0,0,100,0), +(@PATH,13,-316.1273,6237.474,17.49908,0,0,0,0,100,0), +(@PATH,14,-316.2941,6219.737,17.49909,0,0,0,0,100,0), +(@PATH,15,-319.6298,6200.069,17.49909,0,0,0,0,100,0), +(@PATH,16,-314.4604,6181.93,17.56598,0,0,0,0,100,0); + +-- Pathing for Darkcrest Sentry Entry: 20079 +SET @NPC := 71529; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-410.5085,`position_y`=6255.543,`position_z`=17.44794 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-410.5085,6255.543,17.44794,0,0,0,0,100,0), +(@PATH,2,-386.918,6282.233,17.49908,0,0,0,0,100,0), +(@PATH,3,-410.5085,6255.543,17.44794,0,0,0,0,100,0), +(@PATH,4,-421.0254,6231.694,17.49909,0,0,0,0,100,0), +(@PATH,5,-453.1329,6217.985,17.48819,0,0,0,0,100,0), +(@PATH,6,-473.6789,6245.981,17.65528,0,0,0,0,100,0), +(@PATH,7,-481.439,6255.942,17.70008,0,0,0,0,100,0), +(@PATH,8,-482.8473,6271.657,17.61994,0,0,0,0,100,0), +(@PATH,9,-471.7555,6293.839,17.87409,0,0,0,0,100,0), +(@PATH,10,-456.8588,6315.148,17.00413,0,0,0,0,100,0), +(@PATH,11,-445.0121,6331.941,17.53489,0,0,0,0,100,0), +(@PATH,12,-456.8588,6315.148,17.00413,0,0,0,0,100,0), +(@PATH,13,-471.7555,6293.839,17.87409,0,0,0,0,100,0), +(@PATH,14,-482.8473,6271.657,17.61994,0,0,0,0,100,0), +(@PATH,15,-481.439,6255.942,17.70008,0,0,0,0,100,0), +(@PATH,16,-473.6789,6245.981,17.65528,0,0,0,0,100,0), +(@PATH,17,-453.1329,6217.985,17.48819,0,0,0,0,100,0), +(@PATH,18,-421.0254,6231.694,17.49909,0,0,0,0,100,0); + +-- Pathing for Darkcrest Sentry Entry: 20079 +SET @NPC := 71530; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-523.4554,`position_y`=5876.645,`position_z`=17.92353 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-523.4554,5876.645,17.92353,0,0,0,0,100,0), +(@PATH,2,-540.7239,5876.821,17.94059,0,0,0,0,100,0), +(@PATH,3,-546.246,5885.771,17.86613,0,0,0,0,100,0), +(@PATH,4,-558.3109,5907.695,17.4421,0,0,0,0,100,0), +(@PATH,5,-570.5005,5919.63,17.4075,0,0,0,0,100,0), +(@PATH,6,-583.1713,5918.977,17.5325,0,0,0,0,100,0), +(@PATH,7,-596.1543,5918.109,17.6575,0,0,0,0,100,0), +(@PATH,8,-583.1713,5918.977,17.5325,0,0,0,0,100,0), +(@PATH,9,-570.5005,5919.63,17.4075,0,0,0,0,100,0), +(@PATH,10,-558.3109,5907.695,17.4421,0,0,0,0,100,0), +(@PATH,11,-546.246,5885.771,17.86613,0,0,0,0,100,0), +(@PATH,12,-540.7239,5876.821,17.94059,0,0,0,0,100,0); + +-- Pathing for Darkcrest Sentry Entry: 20079 +SET @NPC := 71531; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-685.4247,`position_y`=5744.201,`position_z`=14.45076 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-685.4247,5744.201,14.45076,0,0,0,0,100,0), +(@PATH,2,-689.3704,5733.29,15.48919,0,0,0,0,100,0), +(@PATH,3,-694.3406,5721.417,15.68475,0,0,0,0,100,0), +(@PATH,4,-693.628,5710.063,17.0241,0,0,0,0,100,0), +(@PATH,5,-685.0911,5693.25,17.02255,0,0,0,0,100,0), +(@PATH,6,-664.6328,5678.895,16.09896,0,0,0,0,100,0), +(@PATH,7,-634.0374,5672.613,14.96591,0,0,0,0,100,0), +(@PATH,8,-620.5831,5687.272,16.39875,0,0,0,0,100,0), +(@PATH,9,-613.4608,5698.938,17.93769,0,0,0,0,100,0), +(@PATH,10,-616.0839,5713.076,16.13629,0,0,0,0,100,0), +(@PATH,11,-618.7032,5726.208,14.38177,0,0,0,0,100,0), +(@PATH,12,-634.3477,5740.746,9.167722,0,0,0,0,100,0), +(@PATH,13,-644.801,5754.851,13.55782,0,0,0,0,100,0), +(@PATH,14,-664.2159,5766.098,11.48791,0,0,0,0,100,0), +(@PATH,15,-676.3831,5758.203,15.53962,0,0,0,0,100,0); + +-- Pathing for Darkcrest Sentry Entry: 20079 +SET @NPC := 71532; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-636.8377,`position_y`=5918.188,`position_z`=17.91747 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-636.8377,5918.188,17.91747,0,0,0,0,100,0), +(@PATH,2,-650.0894,5912.31,17.40759,0,0,0,0,100,0), +(@PATH,3,-649.3865,5895.695,18.2393,0,0,0,0,100,0), +(@PATH,4,-649.5691,5884.616,15.62773,0,0,0,0,100,0), +(@PATH,5,-649.3865,5895.695,18.2393,0,0,0,0,100,0), +(@PATH,6,-650.0894,5912.31,17.40759,0,0,0,0,100,0), +(@PATH,7,-636.8377,5918.188,17.91747,0,0,0,0,100,0), +(@PATH,8,-619.8817,5917.089,17.98915,0,0,0,0,100,0), +(@PATH,9,-605.9981,5915.45,17.85243,0,0,0,0,100,0), +(@PATH,10,-592.5848,5917.771,17.47745,0,0,0,0,100,0), +(@PATH,11,-605.9981,5915.45,17.85243,0,0,0,0,100,0), +(@PATH,12,-619.8817,5917.089,17.98915,0,0,0,0,100,0); + +-- Pathing for Darkcrest Sentry Entry: 20079 +SET @NPC := 71533; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-745.6512,`position_y`=5946.403,`position_z`=17.49909 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-745.6512,5946.403,17.49909,0,0,0,0,100,0), +(@PATH,2,-733.8559,5949.237,17.62409,0,0,0,0,100,0), +(@PATH,3,-715.53,5953.377,17.4991,0,0,0,0,100,0), +(@PATH,4,-694.0532,5951.034,17.4991,0,0,0,0,100,0), +(@PATH,5,-684.2486,5942.766,17.77119,0,0,0,0,100,0), +(@PATH,6,-674.2134,5928.139,17.84693,0,0,0,0,100,0), +(@PATH,7,-684.2486,5942.766,17.77119,0,0,0,0,100,0), +(@PATH,8,-694.0532,5951.034,17.4991,0,0,0,0,100,0), +(@PATH,9,-715.53,5953.377,17.4991,0,0,0,0,100,0), +(@PATH,10,-733.8559,5949.237,17.62409,0,0,0,0,100,0), +(@PATH,11,-745.6512,5946.403,17.49909,0,0,0,0,100,0), +(@PATH,12,-763.0795,5961.114,18.29157,0,0,0,0,100,0), +(@PATH,13,-790.5579,5959.934,17.61956,0,0,0,0,100,0), +(@PATH,14,-816.7445,5948.383,17.49907,0,0,0,0,100,0), +(@PATH,15,-839.172,5933.668,17.74907,0,0,0,0,100,0), +(@PATH,16,-846.7526,5922.306,17.63042,0,0,0,0,100,0), +(@PATH,17,-839.172,5933.668,17.74907,0,0,0,0,100,0), +(@PATH,18,-816.7445,5948.383,17.49907,0,0,0,0,100,0), +(@PATH,19,-790.5579,5959.934,17.61956,0,0,0,0,100,0), +(@PATH,20,-763.0795,5961.114,18.29157,0,0,0,0,100,0); From 5c7867f3298c39e37b843fbe9d5e0f3d580740fd Mon Sep 17 00:00:00 2001 From: Malcrom Date: Wed, 30 Jul 2014 16:31:31 -0230 Subject: [PATCH 32/33] DB/Waypoints: Pathing for Bloodscale Sentries. Thanks to kittnz :) --- .../world/2014_07_30_05_world_waypoints.sql | 281 ++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100644 sql/updates/world/2014_07_30_05_world_waypoints.sql diff --git a/sql/updates/world/2014_07_30_05_world_waypoints.sql b/sql/updates/world/2014_07_30_05_world_waypoints.sql new file mode 100644 index 00000000000..bf6b238de11 --- /dev/null +++ b/sql/updates/world/2014_07_30_05_world_waypoints.sql @@ -0,0 +1,281 @@ +-- Pathing for Bloodscale Sentry Entry: 20090 +SET @NPC := 71581; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=759.4943,`position_y`=6306.357,`position_z`=17.4089 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,759.4943,6306.357,17.4089,0,0,0,0,100,0), +(@PATH,2,743.9999,6305.703,17.4089,0,0,0,0,100,0), +(@PATH,3,759.4943,6306.357,17.4089,0,0,0,0,100,0), +(@PATH,4,777.3499,6314.912,17.43856,0,0,0,0,100,0), +(@PATH,5,794.5563,6329.634,17.56356,0,0,0,0,100,0), +(@PATH,6,808.5778,6354.748,17.60061,0,0,0,0,100,0), +(@PATH,7,810.1545,6398.271,17.51148,0,0,0,0,100,0), +(@PATH,8,809.5649,6422.784,17.63817,0,0,0,0,100,0), +(@PATH,9,808.3696,6436.6,17.43865,0,0,0,0,100,0), +(@PATH,10,792.6043,6452.208,17.50587,0,0,0,0,100,0), +(@PATH,11,795.5001,6464.677,17.50587,0,0,0,0,100,0), +(@PATH,12,802.4607,6493.509,17.52557,0,0,0,0,100,0), +(@PATH,13,791.0586,6509.359,17.21747,0,0,0,0,100,0), +(@PATH,14,779.1663,6519.042,17.46943,0,0,0,0,100,0), +(@PATH,15,778.7495,6533.446,17.41533,0,0,0,0,100,0), +(@PATH,16,779.1663,6519.042,17.46943,0,0,0,0,100,0), +(@PATH,17,791.0586,6509.359,17.21747,0,0,0,0,100,0), +(@PATH,18,802.4607,6493.509,17.52557,0,0,0,0,100,0), +(@PATH,19,795.5001,6464.677,17.50587,0,0,0,0,100,0), +(@PATH,20,792.6043,6452.208,17.50587,0,0,0,0,100,0), +(@PATH,21,808.3696,6436.6,17.43865,0,0,0,0,100,0), +(@PATH,22,809.5649,6422.784,17.63817,0,0,0,0,100,0), +(@PATH,23,810.1545,6398.271,17.51148,0,0,0,0,100,0), +(@PATH,24,808.5778,6354.748,17.60061,0,0,0,0,100,0), +(@PATH,25,794.5563,6329.634,17.56356,0,0,0,0,100,0), +(@PATH,26,777.3499,6314.912,17.43856,0,0,0,0,100,0); + +-- Pathing for Bloodscale Sentry Entry: 20090 +SET @NPC := 71582; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=598.7636,`position_y`=8083.793,`position_z`=17.6241 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,598.7636,8083.793,17.6241,0,0,0,0,100,0), +(@PATH,2,599.6365,8065.933,17.75457,0,0,0,0,100,0), +(@PATH,3,596.1388,8050.151,18.00457,0,0,0,0,100,0), +(@PATH,4,596.8356,8025.449,17.44117,0,0,0,0,100,0), +(@PATH,5,621.4521,8017.487,17.50146,0,0,0,0,100,0), +(@PATH,6,644.4905,8017.622,17.50067,0,0,0,0,100,0), +(@PATH,7,662.3524,8008.327,17.5639,0,0,0,0,100,0), +(@PATH,8,693.9063,7983.882,17.44135,0,0,0,0,100,0), +(@PATH,9,714.2939,7989.167,17.52692,0,0,0,0,100,0), +(@PATH,10,693.9063,7983.882,17.44135,0,0,0,0,100,0), +(@PATH,11,662.3524,8008.327,17.5639,0,0,0,0,100,0), +(@PATH,12,644.4905,8017.622,17.50067,0,0,0,0,100,0), +(@PATH,13,621.4521,8017.487,17.50146,0,0,0,0,100,0), +(@PATH,14,596.8356,8025.449,17.44117,0,0,0,0,100,0), +(@PATH,15,596.1388,8050.151,18.00457,0,0,0,0,100,0), +(@PATH,16,599.6365,8065.933,17.75457,0,0,0,0,100,0), +(@PATH,17,598.7636,8083.793,17.6241,0,0,0,0,100,0), +(@PATH,18,588.2853,8104.152,17.4111,0,0,0,0,100,0), +(@PATH,19,568.5647,8114.293,17.2861,0,0,0,0,100,0), +(@PATH,20,596.414,8115.547,17.4111,0,0,0,0,100,0), +(@PATH,21,600.2018,8135.068,17.58697,0,0,0,0,100,0), +(@PATH,22,597.5128,8154.914,18.0076,0,0,0,0,100,0), +(@PATH,23,596.1393,8167.66,15.3831,0,0,0,0,100,0), +(@PATH,24,597.5128,8154.914,18.0076,0,0,0,0,100,0), +(@PATH,25,600.2018,8135.068,17.58697,0,0,0,0,100,0), +(@PATH,26,596.414,8115.547,17.4111,0,0,0,0,100,0), +(@PATH,27,568.5647,8114.293,17.2861,0,0,0,0,100,0), +(@PATH,28,588.2853,8104.152,17.4111,0,0,0,0,100,0); + +-- Pathing for Bloodscale Sentry Entry: 20090 +SET @NPC := 71583; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=583.2789,`position_y`=6151.631,`position_z`=17.56806 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,583.2789,6151.631,17.56806,0,0,0,0,100,0), +(@PATH,2,588.7063,6121.675,17.49909,0,0,0,0,100,0), +(@PATH,3,604.5994,6116.76,17.4991,0,0,0,0,100,0), +(@PATH,4,627.8912,6116.608,17.4991,0,0,0,0,100,0), +(@PATH,5,642.8787,6127.678,17.49909,0,0,0,0,100,0), +(@PATH,6,664.4583,6155.981,17.4254,0,0,0,0,100,0), +(@PATH,7,647.6324,6179.767,17.45327,0,0,0,0,100,0), +(@PATH,8,640.0746,6202.314,17.48018,0,0,0,0,100,0), +(@PATH,9,621.8489,6238.127,17.64701,0,0,0,0,100,0), +(@PATH,10,600.6134,6251.576,17.77201,0,0,0,0,100,0), +(@PATH,11,621.8489,6238.127,17.64701,0,0,0,0,100,0), +(@PATH,12,640.0746,6202.314,17.48018,0,0,0,0,100,0), +(@PATH,13,647.6324,6179.767,17.45327,0,0,0,0,100,0), +(@PATH,14,664.4583,6155.981,17.4254,0,0,0,0,100,0), +(@PATH,15,642.8787,6127.678,17.49909,0,0,0,0,100,0), +(@PATH,16,627.8912,6116.608,17.4991,0,0,0,0,100,0), +(@PATH,17,604.5994,6116.76,17.4991,0,0,0,0,100,0), +(@PATH,18,588.7063,6121.675,17.49909,0,0,0,0,100,0); + +-- Pathing for Bloodscale Sentry Entry: 20090 +SET @NPC := 71584; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=484.8557,`position_y`=6147.238,`position_z`=17.39692 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,484.8557,6147.238,17.39692,0,0,0,0,100,0), +(@PATH,2,497.8846,6127.964,17.62593,0,0,0,0,100,0), +(@PATH,3,508.6398,6118.515,17.57525,0,0,0,0,100,0), +(@PATH,4,529.306,6106.489,17.57525,0,0,0,0,100,0), +(@PATH,5,543.109,6101.563,17.53619,0,0,0,0,100,0), +(@PATH,6,562.1443,6106.827,17.66119,0,0,0,0,100,0), +(@PATH,7,543.109,6101.563,17.53619,0,0,0,0,100,0), +(@PATH,8,529.306,6106.489,17.57525,0,0,0,0,100,0), +(@PATH,9,508.6398,6118.515,17.57525,0,0,0,0,100,0), +(@PATH,10,497.8846,6127.964,17.62593,0,0,0,0,100,0), +(@PATH,11,484.8557,6147.238,17.39692,0,0,0,0,100,0), +(@PATH,12,479.6094,6168.237,17.3991,0,0,0,0,100,0), +(@PATH,13,497.7457,6180.41,17.3991,0,0,0,0,100,0), +(@PATH,14,520.0167,6193.519,17.50527,0,0,0,0,100,0), +(@PATH,15,497.7457,6180.41,17.3991,0,0,0,0,100,0), +(@PATH,16,479.6094,6168.237,17.3991,0,0,0,0,100,0); + +-- Pathing for Bloodscale Sentry Entry: 20090 +SET @NPC := 71585; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=714.0928,`position_y`=6330.395,`position_z`=17.28641 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,714.0928,6330.395,17.28641,0,0,0,0,100,0), +(@PATH,2,711.8986,6368.565,17.3039,0,0,0,0,100,0), +(@PATH,3,714.0928,6330.395,17.28641,0,0,0,0,100,0), +(@PATH,4,707.5536,6305.207,17.44607,0,0,0,0,100,0), +(@PATH,5,688.4388,6290.488,17.43558,0,0,0,0,100,0), +(@PATH,6,686.5964,6275.249,17.68558,0,0,0,0,100,0), +(@PATH,7,675.7322,6259.213,17.66298,0,0,0,0,100,0), +(@PATH,8,660.7868,6235.378,17.60566,0,0,0,0,100,0), +(@PATH,9,637.1617,6227.35,17.69966,0,0,0,0,100,0), +(@PATH,10,615.4294,6239.798,17.64701,0,0,0,0,100,0), +(@PATH,11,601.6331,6250.868,17.77201,0,0,0,0,100,0), +(@PATH,12,615.4294,6239.798,17.64701,0,0,0,0,100,0), +(@PATH,13,637.1617,6227.35,17.69966,0,0,0,0,100,0), +(@PATH,14,660.7868,6235.378,17.60566,0,0,0,0,100,0), +(@PATH,15,675.7322,6259.213,17.66298,0,0,0,0,100,0), +(@PATH,16,686.5964,6275.249,17.68558,0,0,0,0,100,0), +(@PATH,17,688.4388,6290.488,17.43558,0,0,0,0,100,0), +(@PATH,18,707.5536,6305.207,17.44607,0,0,0,0,100,0); + +-- Pathing for Bloodscale Sentry Entry: 20090 +SET @NPC := 71586; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=456.8788,`position_y`=6370.086,`position_z`=17.94312 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,456.8788,6370.086,17.94312,0,0,0,0,100,0), +(@PATH,2,452.2714,6389.746,17.81812,0,0,0,0,100,0), +(@PATH,3,467.8412,6407.655,17.79832,0,0,0,0,100,0), +(@PATH,4,491.2019,6411.824,15.48412,0,0,0,0,100,0), +(@PATH,5,467.8412,6407.655,17.79832,0,0,0,0,100,0), +(@PATH,6,452.2714,6389.746,17.81812,0,0,0,0,100,0), +(@PATH,7,456.8788,6370.086,17.94312,0,0,0,0,100,0), +(@PATH,8,454.0548,6347.622,17.85618,0,0,0,0,100,0), +(@PATH,9,446.207,6326.609,17.93723,0,0,0,0,100,0), +(@PATH,10,441.623,6303.469,17.93723,0,0,0,0,100,0), +(@PATH,11,446.207,6326.609,17.93723,0,0,0,0,100,0), +(@PATH,12,454.0548,6347.622,17.85618,0,0,0,0,100,0); + +-- Pathing for Bloodscale Sentry Entry: 20090 +SET @NPC := 71587; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=473.7206,`position_y`=8024.335,`position_z`=17.56001 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,473.7206,8024.335,17.56001,0,0,0,0,100,0), +(@PATH,2,496.147,8008.202,17.40107,0,0,0,0,100,0), +(@PATH,3,517.5805,8011.069,17.49237,0,0,0,0,100,0), +(@PATH,4,538.4409,8009.085,17.53157,0,0,0,0,100,0), +(@PATH,5,560.729,8010.077,17.4316,0,0,0,0,100,0), +(@PATH,6,589.2994,8011.602,17.44117,0,0,0,0,100,0), +(@PATH,7,560.729,8010.077,17.4316,0,0,0,0,100,0), +(@PATH,8,538.4409,8009.085,17.53157,0,0,0,0,100,0), +(@PATH,9,517.5805,8011.069,17.49237,0,0,0,0,100,0), +(@PATH,10,496.147,8008.202,17.40107,0,0,0,0,100,0), +(@PATH,11,473.7206,8024.335,17.56001,0,0,0,0,100,0), +(@PATH,12,458.5915,8058.235,17.49908,0,0,0,0,100,0), +(@PATH,13,454.0531,8072.585,17.49909,0,0,0,0,100,0), +(@PATH,14,440.1596,8088.723,17.49909,0,0,0,0,100,0), +(@PATH,15,433.4708,8105.307,17.77139,0,0,0,0,100,0), +(@PATH,16,440.1596,8088.723,17.49909,0,0,0,0,100,0), +(@PATH,17,454.0531,8072.585,17.49909,0,0,0,0,100,0), +(@PATH,18,458.5915,8058.235,17.49908,0,0,0,0,100,0); + +-- Pathing for Bloodscale Sentry Entry: 20090 +SET @NPC := 71588; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=763.2474,`position_y`=8077.369,`position_z`=17.49908 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,763.2474,8077.369,17.49908,0,0,0,0,100,0), +(@PATH,2,764.3576,8096.227,17.49908,0,0,0,0,100,0), +(@PATH,3,763.1123,8113.93,17.49908,0,0,0,0,100,0), +(@PATH,4,754.1951,8129.958,17.565,0,0,0,0,100,0), +(@PATH,5,746.9005,8144.393,16.9609,0,0,0,0,100,0), +(@PATH,6,754.1951,8129.958,17.565,0,0,0,0,100,0), +(@PATH,7,763.1123,8113.93,17.49908,0,0,0,0,100,0), +(@PATH,8,764.3576,8096.227,17.49908,0,0,0,0,100,0), +(@PATH,9,763.2474,8077.369,17.49908,0,0,0,0,100,0), +(@PATH,10,753.71,8050.239,17.49907,0,0,0,0,100,0), +(@PATH,11,736.1158,8032.819,17.50464,0,0,0,0,100,0), +(@PATH,12,727.4476,8005.954,17.80172,0,0,0,0,100,0), +(@PATH,13,736.1158,8032.819,17.50464,0,0,0,0,100,0), +(@PATH,14,753.71,8050.239,17.49907,0,0,0,0,100,0); + +-- Pathing for Bloodscale Sentry Entry: 20090 +SET @NPC := 71589; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=590.5538,`position_y`=6385.54,`position_z`=19.41796 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,590.5538,6385.54,19.41796,0,0,0,0,100,0), +(@PATH,2,576.1758,6381.048,19.19262,0,0,0,0,100,0), +(@PATH,3,549.4913,6380.258,16.99608,0,0,0,0,100,0), +(@PATH,4,536.714,6381.334,19.3341,0,0,0,0,100,0), +(@PATH,5,512.5249,6386.269,20.09841,0,0,0,0,100,0), +(@PATH,6,536.714,6381.334,19.3341,0,0,0,0,100,0), +(@PATH,7,549.4913,6380.258,16.99608,0,0,0,0,100,0), +(@PATH,8,576.1758,6381.048,19.19262,0,0,0,0,100,0), +(@PATH,9,590.502,6385.516,19.35204,0,0,0,0,100,0), +(@PATH,10,603.5302,6383.618,19.05107,0,0,0,0,100,0), +(@PATH,11,618.3229,6384.962,19.48649,0,0,0,0,100,0), +(@PATH,12,629.5106,6391.457,18.35343,0,0,0,0,100,0), +(@PATH,13,618.3229,6384.962,19.48649,0,0,0,0,100,0), +(@PATH,14,603.5302,6383.618,19.05107,0,0,0,0,100,0); + +-- Pathing for Bloodscale Sentry Entry: 20090 +SET @NPC := 71590; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=384.1659,`position_y`=8112.826,`position_z`=17.53038 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,384.1659,8112.826,17.53038,0,0,0,0,100,0), +(@PATH,2,403.2718,8119.023,17.60357,0,0,0,0,100,0), +(@PATH,3,421.5509,8121.888,17.61883,0,0,0,0,100,0), +(@PATH,4,422.268,8135.977,17.62646,0,0,0,0,100,0), +(@PATH,5,421.0201,8147.833,17.5863,0,0,0,0,100,0), +(@PATH,6,410.0742,8161.833,17.12646,0,0,0,0,100,0), +(@PATH,7,405.593,8175.743,17.44895,0,0,0,0,100,0), +(@PATH,8,404.0476,8192.669,17.69895,0,0,0,0,100,0), +(@PATH,9,405.593,8175.743,17.44895,0,0,0,0,100,0), +(@PATH,10,410.0742,8161.833,17.12646,0,0,0,0,100,0), +(@PATH,11,421.0201,8147.833,17.5863,0,0,0,0,100,0), +(@PATH,12,422.268,8135.977,17.62646,0,0,0,0,100,0), +(@PATH,13,421.5509,8121.888,17.61883,0,0,0,0,100,0), +(@PATH,14,403.2718,8119.023,17.60357,0,0,0,0,100,0), +(@PATH,15,384.1659,8112.826,17.53038,0,0,0,0,100,0), +(@PATH,16,366.2072,8100.374,17.74176,0,0,0,0,100,0), +(@PATH,17,338.3154,8112.941,17.49909,0,0,0,0,100,0), +(@PATH,18,330.1254,8143.837,17.49909,0,0,0,0,100,0), +(@PATH,19,324.209,8171.819,17.64763,0,0,0,0,100,0), +(@PATH,20,312.2263,8170.651,17.40044,0,0,0,0,100,0), +(@PATH,21,292.32,8159.853,17.61897,0,0,0,0,100,0), +(@PATH,22,277.5932,8158.432,17.57466,0,0,0,0,100,0), +(@PATH,23,292.32,8159.853,17.61897,0,0,0,0,100,0), +(@PATH,24,312.2263,8170.651,17.40044,0,0,0,0,100,0), +(@PATH,25,324.209,8171.819,17.64763,0,0,0,0,100,0), +(@PATH,26,330.1254,8143.837,17.49909,0,0,0,0,100,0), +(@PATH,27,338.3154,8112.941,17.49909,0,0,0,0,100,0), +(@PATH,28,366.2072,8100.374,17.74176,0,0,0,0,100,0); From 01b733eb69691ccd1ac8e9884ff2a4cb4643a7cf Mon Sep 17 00:00:00 2001 From: Malcrom Date: Wed, 30 Jul 2014 17:18:09 -0230 Subject: [PATCH 33/33] DB/Waypoints: Add missing Swamprat Guard Pathing. Thanks to kittnz :) --- .../world/2014_07_30_06_world_waypoints.sql | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 sql/updates/world/2014_07_30_06_world_waypoints.sql diff --git a/sql/updates/world/2014_07_30_06_world_waypoints.sql b/sql/updates/world/2014_07_30_06_world_waypoints.sql new file mode 100644 index 00000000000..c0a8a2ee413 --- /dev/null +++ b/sql/updates/world/2014_07_30_06_world_waypoints.sql @@ -0,0 +1,68 @@ +-- Pathing for Swamprat Guard Entry: 18910 +SET @NPC := 67906; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=75.29373,`position_y`=5261.419,`position_z`=23.08392 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,257,0, '5301'); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,75.29373,5261.419,23.08392,0,0,0,0,100,0), +(@PATH,2,75.29796,5274.807,23.04233,0,0,0,0,100,0), +(@PATH,3,82.62872,5302.216,22.98195,0,0,0,0,100,0), +(@PATH,4,83.02105,5314.273,22.13724,0,0,0,0,100,0), +(@PATH,5,82.34508,5302.751,22.97913,0,0,0,0,100,0), +(@PATH,6,75.29796,5274.807,23.04233,0,0,0,0,100,0), +(@PATH,7,75.29373,5261.419,23.08392,0,0,0,0,100,0), +(@PATH,8,75.86388,5247.502,23.12924,0,0,0,0,100,0), +(@PATH,9,79.21181,5240.832,23.16174,0,0,0,0,100,0), +(@PATH,10,87.85194,5229.543,22.38807,0,0,0,0,100,0), +(@PATH,11,79.21181,5240.832,23.16174,0,0,0,0,100,0), +(@PATH,12,75.86388,5247.502,23.12924,0,0,0,0,100,0); + +-- Pathing for Swamprat Guard Entry: 18910 +SET @NPC := 67907; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=75.29373,`position_y`=5261.419,`position_z`=23.08392 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,257,0, '5301'); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,75.29373,5261.419,23.08392,0,0,0,0,100,0), +(@PATH,2,75.29796,5274.807,23.04233,0,0,0,0,100,0), +(@PATH,3,82.62872,5302.216,22.98195,0,0,0,0,100,0), +(@PATH,4,83.02105,5314.273,22.13724,0,0,0,0,100,0), +(@PATH,5,82.34508,5302.751,22.97913,0,0,0,0,100,0), +(@PATH,6,75.29796,5274.807,23.04233,0,0,0,0,100,0), +(@PATH,7,75.29373,5261.419,23.08392,0,0,0,0,100,0), +(@PATH,8,75.86388,5247.502,23.12924,0,0,0,0,100,0), +(@PATH,9,79.21181,5240.832,23.16174,0,0,0,0,100,0), +(@PATH,10,87.85194,5229.543,22.38807,0,0,0,0,100,0), +(@PATH,11,79.21181,5240.832,23.16174,0,0,0,0,100,0), +(@PATH,12,75.86388,5247.502,23.12924,0,0,0,0,100,0); + +-- Add Swamprat Guard formation +DELETE FROM `creature_formations` WHERE `leaderGUID`=67907; +INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`groupAI`)VALUES +(67907,67907,0,0,2),(67907,67906,3,0,2); + +-- Pathing for Swamprat Guard Entry: 18910 +SET @NPC := 67910; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=104.3016,`position_y`=5221.673,`position_z`=22.33099 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,257,0, '5301'); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,104.3016,5221.673,22.33099,0,0,0,0,100,0), +(@PATH,2,98.48994,5217.889,22.21583,0,0,0,0,100,0), +(@PATH,3,97.17163,5209.297,21.69117,0,0,0,0,100,0), +(@PATH,4,82.73155,5204.081,22.44019,0,0,0,0,100,0), +(@PATH,5,80.67603,5193.767,21.65778,0,0,0,0,100,0), +(@PATH,6,90.1913,5186.492,21.33686,0,0,0,0,100,0), +(@PATH,7,92.36255,5170.327,22.81916,0,0,0,0,100,0), +(@PATH,8,104.2373,5163.936,22.91181,0,0,0,0,100,0), +(@PATH,9,108.7816,5178.44,22.09893,0,0,0,0,100,0), +(@PATH,10,121.7926,5183.15,24.04241,0,0,0,0,100,0), +(@PATH,11,117.1341,5191.477,23.33294,0,0,0,0,100,0), +(@PATH,12,118.593,5209.887,22.58294,0,0,0,0,100,0), +(@PATH,13,114.1548,5216.103,23.23504,0,0,0,0,100,0);