mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-18 14:10:18 -04:00
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/game/Entities/Creature/Creature.h src/server/game/Entities/Player/Player.h src/server/game/Spells/SpellMgr.cpp
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
diff -urN g3d-beta4/include/G3D/debugAssert.h g3d-mangos/include/G3D/debugAssert.h
|
||||
--- g3d-beta4/include/G3D/debugAssert.h 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ g3d-mangos/include/G3D/debugAssert.h 2010-08-26 21:36:32.000000000 +0200
|
||||
diff -urN a/dep/g3dlite/include/G3D/debugAssert.h b/dep/g3dlite/include/G3D/debugAssert.h
|
||||
--- a/dep/g3dlite/include/G3D/debugAssert.h 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ b/dep/g3dlite/include/G3D/debugAssert.h 2010-08-26 21:36:32.000000000 +0200
|
||||
@@ -39,10 +39,12 @@
|
||||
#ifdef G3D_LINUX
|
||||
// Needed so we can define a global display
|
||||
@@ -30,9 +30,9 @@ diff -urN g3d-beta4/include/G3D/debugAssert.h g3d-mangos/include/G3D/debugAssert
|
||||
|
||||
/**
|
||||
Pops up an assertion dialog or prints an assertion
|
||||
diff -urN g3d-beta4/include/G3D/g3dmath.h g3d-mangos/include/G3D/g3dmath.h
|
||||
--- g3d-beta4/include/G3D/g3dmath.h 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ g3d-mangos/include/G3D/g3dmath.h 2010-08-26 21:36:32.000000000 +0200
|
||||
diff -urN a/dep/g3dlite/include/G3D/g3dmath.h b/dep/g3dlite/include/G3D/g3dmath.h
|
||||
--- a/dep/g3dlite/include/G3D/g3dmath.h 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ b/dep/g3dlite/include/G3D/g3dmath.h 2010-08-26 21:36:32.000000000 +0200
|
||||
@@ -65,6 +65,8 @@
|
||||
return ::rand() / double(RAND_MAX);
|
||||
}
|
||||
@@ -62,9 +62,9 @@ diff -urN g3d-beta4/include/G3D/g3dmath.h g3d-mangos/include/G3D/g3dmath.h
|
||||
#endif
|
||||
|
||||
|
||||
diff -urN g3d-beta4/include/G3D/platform.h g3d-mangos/include/G3D/platform.h
|
||||
--- g3d-beta4/include/G3D/platform.h 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ g3d-mangos/include/G3D/platform.h 2010-08-26 21:36:32.000000000 +0200
|
||||
diff -urN a/dep/g3dlite/include/G3D/platform.h b/dep/g3dlite/include/G3D/platform.h
|
||||
--- a/dep/g3dlite/include/G3D/platform.h 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ b/dep/g3dlite/include/G3D/platform.h 2010-08-26 21:36:32.000000000 +0200
|
||||
@@ -56,12 +57,15 @@
|
||||
// pi as a constant, which creates a conflict with G3D
|
||||
#define __FP__
|
||||
@@ -97,9 +97,9 @@ diff -urN g3d-beta4/include/G3D/platform.h g3d-mangos/include/G3D/platform.h
|
||||
|
||||
/** @def G3D_CHECK_PRINTF_METHOD_ARGS()
|
||||
Enables printf parameter validation on gcc. */
|
||||
diff -urN g3d-beta4/include/G3D/System.h g3d-mangos/include/G3D/System.h
|
||||
--- g3d-beta4/include/G3D/System.h 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ g3d-mangos/include/G3D/System.h 2010-08-26 21:36:32.000000000 +0200
|
||||
diff -urN a/dep/g3dlite/include/G3D/System.h b/dep/g3dlite/include/G3D/System.h
|
||||
--- a/dep/g3dlite/include/G3D/System.h 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ b/dep/g3dlite/include/G3D/System.h 2010-08-26 21:36:32.000000000 +0200
|
||||
@@ -375,10 +375,10 @@
|
||||
// count now contains the cycle count for the intervening operation.
|
||||
</PRE>
|
||||
@@ -141,9 +141,9 @@ diff -urN g3d-beta4/include/G3D/System.h g3d-mangos/include/G3D/System.h
|
||||
|
||||
} // namespace
|
||||
|
||||
diff -urN g3d-beta4/source/BinaryInput.cpp g3d-mangos/source/BinaryInput.cpp
|
||||
--- g3d-beta4/source/BinaryInput.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ g3d-mangos/source/BinaryInput.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
diff -urN a/dep/g3dlite/source/BinaryInput.cpp b/dep/g3dlite/source/BinaryInput.cpp
|
||||
--- a/dep/g3dlite/source/BinaryInput.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ b/dep/g3dlite/source/BinaryInput.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
@@ -39,7 +39,9 @@
|
||||
#include "G3D/Log.h"
|
||||
#include "G3D/FileSystem.h"
|
||||
@@ -171,9 +171,9 @@ diff -urN g3d-beta4/source/BinaryInput.cpp g3d-mangos/source/BinaryInput.cpp
|
||||
|
||||
// Figure out how big the file is and verify that it exists.
|
||||
m_length = FileSystem::size(m_filename);
|
||||
diff -urN g3d-beta4/source/debugAssert.cpp g3d-mangos/source/debugAssert.cpp
|
||||
--- g3d-beta4/source/debugAssert.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ g3d-mangos/source/debugAssert.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
diff -urN a/dep/g3dlite/source/debugAssert.cpp b/dep/g3dlite/source/debugAssert.cpp
|
||||
--- a/dep/g3dlite/source/debugAssert.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ b/dep/g3dlite/source/debugAssert.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
@@ -37,9 +37,11 @@
|
||||
AssertionHook _failureHook = _handleErrorCheck_;
|
||||
|
||||
@@ -202,9 +202,9 @@ diff -urN g3d-beta4/source/debugAssert.cpp g3d-mangos/source/debugAssert.cpp
|
||||
#elif defined(G3D_OSX)
|
||||
// TODO: OS X
|
||||
#endif
|
||||
diff -urN g3d-beta4/source/FileSystem.cpp g3d-mangos/source/FileSystem.cpp
|
||||
--- g3d-beta4/source/FileSystem.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ g3d-mangos/source/FileSystem.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
diff -urN a/dep/g3dlite/source/FileSystem.cpp b/dep/g3dlite/source/FileSystem.cpp
|
||||
--- a/dep/g3dlite/source/FileSystem.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ b/dep/g3dlite/source/FileSystem.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
@@ -12,7 +12,9 @@
|
||||
#include "G3D/fileutils.h"
|
||||
#include <sys/stat.h>
|
||||
@@ -252,9 +252,9 @@ diff -urN g3d-beta4/source/FileSystem.cpp g3d-mangos/source/FileSystem.cpp
|
||||
}
|
||||
|
||||
return st.st_size;
|
||||
diff -urN g3d-beta4/source/fileutils.cpp g3d-mangos/source/fileutils.cpp
|
||||
--- g3d-beta4/source/fileutils.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ g3d-mangos/source/fileutils.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
diff -urN a/dep/g3dlite/source/fileutils.cpp b/dep/g3dlite/source/fileutils.cpp
|
||||
--- a/dep/g3dlite/source/fileutils.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ b/dep/g3dlite/source/fileutils.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
@@ -20,7 +20,9 @@
|
||||
|
||||
#include <sys/stat.h>
|
||||
@@ -368,9 +368,9 @@ diff -urN g3d-beta4/source/fileutils.cpp g3d-mangos/source/fileutils.cpp
|
||||
}
|
||||
|
||||
|
||||
diff -urN g3d-beta4/source/prompt.cpp g3d-mangos/source/prompt.cpp
|
||||
--- g3d-beta4/source/prompt.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ g3d-mangos/source/prompt.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
diff -urN a/dep/g3dlite/source/prompt.cpp b/dep/g3dlite/source/prompt.cpp
|
||||
--- a/dep/g3dlite/source/prompt.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ b/dep/g3dlite/source/prompt.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
@@ -21,6 +21,7 @@
|
||||
# define _getch getchar
|
||||
#endif
|
||||
@@ -433,9 +433,9 @@ diff -urN g3d-beta4/source/prompt.cpp g3d-mangos/source/prompt.cpp
|
||||
return textPrompt(windowTitle, prompt, choice, numChoices);
|
||||
}
|
||||
|
||||
diff -urN g3d-beta4/source/RegistryUtil.cpp g3d-mangos/source/RegistryUtil.cpp
|
||||
--- g3d-beta4/source/RegistryUtil.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ g3d-mangos/source/RegistryUtil.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
diff -urN a/dep/g3dlite/source/RegistryUtil.cpp b/dep/g3dlite/source/RegistryUtil.cpp
|
||||
--- a/dep/g3dlite/source/RegistryUtil.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ b/dep/g3dlite/source/RegistryUtil.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
@@ -257,7 +257,7 @@
|
||||
|
||||
|
||||
@@ -445,9 +445,9 @@ diff -urN g3d-beta4/source/RegistryUtil.cpp g3d-mangos/source/RegistryUtil.cpp
|
||||
debugAssert(str);
|
||||
|
||||
if (str) {
|
||||
diff -urN g3d-beta4/source/System.cpp g3d-mangos/source/System.cpp
|
||||
--- g3d-beta4/source/System.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ g3d-mangos/source/System.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
diff -urN a/dep/g3dlite/source/System.cpp b/dep/g3dlite/source/System.cpp
|
||||
--- a/dep/g3dlite/source/System.cpp 2010-02-07 23:39:20.000000000 +0100
|
||||
+++ b/dep/g3dlite/source/System.cpp 2010-08-15 11:37:26.000000000 +0200
|
||||
@@ -80,8 +80,9 @@
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
diff --git a/dep/g3dlite/source/g3dmath.cpp b/dep/g3dlite/source/g3dmath.cpp
|
||||
index e846f8c..84e8345 100644
|
||||
--- a/dep/g3dlite/source/g3dmath.cpp
|
||||
+++ b/dep/g3dlite/source/g3dmath.cpp
|
||||
@@ -41,7 +41,7 @@ double inf() {
|
||||
}
|
||||
|
||||
bool isNaN(float x) {
|
||||
- static const float n = nan();
|
||||
+ static const float n = fnan();
|
||||
return memcmp(&x, &n, sizeof(float)) == 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff --git a/dep/g3dlite/include/G3D/GMutex.h b/dep/g3dlite/include/G3D/GMutex.h
|
||||
index 3469b81..9fe098d 100644
|
||||
--- a/dep/g3dlite/include/G3D/GMutex.h
|
||||
+++ b/dep/g3dlite/include/G3D/GMutex.h
|
||||
@@ -16,6 +16,7 @@
|
||||
#ifndef G3D_WIN32
|
||||
# include <pthread.h>
|
||||
# include <signal.h>
|
||||
+# include <unistd.h>
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,15 +1,3 @@
|
||||
diff --git a/dep/g3dlite/include/G3D/GMutex.h b/dep/g3dlite/include/G3D/GMutex.h
|
||||
index 3469b81..9fe098d 100644
|
||||
--- a/dep/g3dlite/include/G3D/GMutex.h
|
||||
+++ b/dep/g3dlite/include/G3D/GMutex.h
|
||||
@@ -16,6 +16,7 @@
|
||||
#ifndef G3D_WIN32
|
||||
# include <pthread.h>
|
||||
# include <signal.h>
|
||||
+# include <unistd.h>
|
||||
#endif
|
||||
|
||||
|
||||
diff --git a/dep/g3dlite/include/G3D/platform.h b/dep/g3dlite/include/G3D/platform.h
|
||||
index c8d2f0b..11093f4 100644
|
||||
--- a/dep/g3dlite/include/G3D/platform.h
|
||||
@@ -0,0 +1,73 @@
|
||||
diff --git a/dep/g3dlite/include/G3D/System.h b/dep/g3dlite/include/G3D/System.h
|
||||
index 1c0cf99..f160774 100644
|
||||
--- a/dep/g3dlite/include/G3D/System.h
|
||||
+++ b/dep/g3dlite/include/G3D/System.h
|
||||
@@ -19,6 +19,9 @@
|
||||
#include "G3D/G3DGameUnits.h"
|
||||
#include "G3D/BinaryFormat.h"
|
||||
#include <string>
|
||||
+#ifdef G3D_LINUX
|
||||
+# include <sys/socket.h>
|
||||
+#endif
|
||||
|
||||
#ifdef G3D_OSX
|
||||
# include <CoreServices/CoreServices.h>
|
||||
diff --git a/dep/g3dlite/include/G3D/platform.h b/dep/g3dlite/include/G3D/platform.h
|
||||
index 11093f4..614c0ed 100644
|
||||
--- a/dep/g3dlite/include/G3D/platform.h
|
||||
+++ b/dep/g3dlite/include/G3D/platform.h
|
||||
@@ -56,6 +56,8 @@
|
||||
#define G3D_LINUX
|
||||
#elif defined(__linux__)
|
||||
#define G3D_LINUX
|
||||
+#elif defined(__CYGWIN__)
|
||||
+ #define G3D_LINUX
|
||||
#elif defined(__APPLE__)
|
||||
#define G3D_LINUX
|
||||
|
||||
diff --git a/dep/g3dlite/source/BinaryOutput.cpp b/dep/g3dlite/source/BinaryOutput.cpp
|
||||
index 054211d..81fa982 100644
|
||||
--- a/dep/g3dlite/source/BinaryOutput.cpp
|
||||
+++ b/dep/g3dlite/source/BinaryOutput.cpp
|
||||
@@ -22,6 +22,10 @@
|
||||
# include <errno.h>
|
||||
#endif
|
||||
|
||||
+#ifdef __CYGWIN__
|
||||
+# include <errno.h>
|
||||
+#endif
|
||||
+
|
||||
// Largest memory buffer that the system will use for writing to
|
||||
// disk. After this (or if the system runs out of memory)
|
||||
// chunks of the file will be dumped to disk.
|
||||
diff --git a/dep/g3dlite/source/FileSystem.cpp b/dep/g3dlite/source/FileSystem.cpp
|
||||
index 2cf890a..76a3611 100644
|
||||
--- a/dep/g3dlite/source/FileSystem.cpp
|
||||
+++ b/dep/g3dlite/source/FileSystem.cpp
|
||||
@@ -35,6 +35,10 @@
|
||||
# define _stat stat
|
||||
#endif
|
||||
|
||||
+#ifdef __CYGWIN__
|
||||
+#define stat64 stat
|
||||
+#endif
|
||||
+
|
||||
namespace G3D {
|
||||
|
||||
static FileSystem* common = NULL;
|
||||
diff --git a/dep/g3dlite/source/System.cpp b/dep/g3dlite/source/System.cpp
|
||||
index 809f05c..f6b0e03 100644
|
||||
--- a/dep/g3dlite/source/System.cpp
|
||||
+++ b/dep/g3dlite/source/System.cpp
|
||||
@@ -888,7 +888,11 @@ void System::initTime() {
|
||||
|
||||
if (localTimeVals) {
|
||||
// tm_gmtoff is already corrected for daylight savings.
|
||||
+ #ifdef __CYGWIN__
|
||||
+ local = local + _timezone;
|
||||
+ #else
|
||||
local = local + localTimeVals->tm_gmtoff;
|
||||
+ #endif
|
||||
}
|
||||
|
||||
m_realWorldGetTickTime0 = local;
|
||||
@@ -1,3 +1,8 @@
|
||||
Due to issues with G3D (normally requiring X11 and the ZIP-library), the
|
||||
sourcetree version contains a modified version. The applied patch is
|
||||
commited to the repository for future reference.
|
||||
Due to issues with G3D normally requiring X11 and the ZIP-library, the library version in this sourcetree contains a modified version.
|
||||
The applied patches are added as .diff-files to the repository for future reference (knowing what was changed is quite handy).
|
||||
|
||||
G3D-v8.0_hotfix1.diff - 2010-08-27 - remove dependency on zip/z11 libraries, add support for 64-bit arch
|
||||
G3D-v8.0_hotfix2.diff - 2012-01-14 - fix typo in isNaN(float x)
|
||||
G3D-v8.0_hotfix3.diff - 2012-08-26 - fix compilation on Fedora Linux
|
||||
G3D-v8.0_hotfix4.diff - 2012-11-09 - fix compilation on OSX
|
||||
G3D-v8.0_hotfix5.diff - 2013-02-27 - fix compilation in cygwin environments
|
||||
|
||||
@@ -19,6 +19,9 @@
|
||||
#include "G3D/G3DGameUnits.h"
|
||||
#include "G3D/BinaryFormat.h"
|
||||
#include <string>
|
||||
#ifdef G3D_LINUX
|
||||
# include <sys/socket.h>
|
||||
#endif
|
||||
|
||||
#ifdef G3D_OSX
|
||||
# include <CoreServices/CoreServices.h>
|
||||
|
||||
@@ -56,6 +56,8 @@
|
||||
#define G3D_LINUX
|
||||
#elif defined(__linux__)
|
||||
#define G3D_LINUX
|
||||
#elif defined(__CYGWIN__)
|
||||
#define G3D_LINUX
|
||||
#elif defined(__APPLE__)
|
||||
#define G3D_LINUX
|
||||
|
||||
|
||||
@@ -22,6 +22,10 @@
|
||||
# include <errno.h>
|
||||
#endif
|
||||
|
||||
#ifdef __CYGWIN__
|
||||
# include <errno.h>
|
||||
#endif
|
||||
|
||||
// Largest memory buffer that the system will use for writing to
|
||||
// disk. After this (or if the system runs out of memory)
|
||||
// chunks of the file will be dumped to disk.
|
||||
|
||||
@@ -35,6 +35,10 @@
|
||||
# define _stat stat
|
||||
#endif
|
||||
|
||||
#ifdef __CYGWIN__
|
||||
#define stat64 stat
|
||||
#endif
|
||||
|
||||
namespace G3D {
|
||||
|
||||
static FileSystem* common = NULL;
|
||||
|
||||
@@ -888,7 +888,11 @@ void System::initTime() {
|
||||
|
||||
if (localTimeVals) {
|
||||
// tm_gmtoff is already corrected for daylight savings.
|
||||
#ifdef __CYGWIN__
|
||||
local = local + _timezone;
|
||||
#else
|
||||
local = local + localTimeVals->tm_gmtoff;
|
||||
#endif
|
||||
}
|
||||
|
||||
m_realWorldGetTickTime0 = local;
|
||||
|
||||
@@ -0,0 +1,200 @@
|
||||
-- Add spell script names
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id` IN (56046,56047,61693,61694,57459,56438,61210,56397,58842,59084,59099,56070,56072,60936,60939,61028,61023);
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
(56046, 'spell_malygos_portal_beam'),
|
||||
(56047, 'spell_malygos_random_portal'),
|
||||
(61693, 'spell_malygos_arcane_storm'), -- Phase I /10/
|
||||
(61694, 'spell_malygos_arcane_storm'), -- Phase I /25/
|
||||
(57459, 'spell_malygos_arcane_storm'), -- Phase III
|
||||
(56438, 'spell_arcane_overload'),
|
||||
(61210, 'spell_nexus_lord_align_disk_aggro'),
|
||||
(56397, 'spell_scion_of_eternity_arcane_barrage'),
|
||||
(58842, 'spell_malygos_destroy_platform_channel'),
|
||||
(59084, 'spell_alexstrasza_bunny_destroy_platform_boom_visual'),
|
||||
(59099, 'spell_alexstrasza_bunny_destroy_platform_event'),
|
||||
(56070, 'spell_wyrmrest_skytalon_summon_red_dragon_buddy'),
|
||||
(56072, 'spell_wyrmrest_skytalon_ride_red_dragon_buddy_trigger'),
|
||||
(60936, 'spell_malygos_surge_of_power_25'),
|
||||
(60939, 'spell_malygos_surge_of_power_warning_selector_25'),
|
||||
(61028, 'spell_alexstrasza_gift_beam'),
|
||||
(61023, 'spell_alexstrasza_gift_beam_visual');
|
||||
|
||||
-- Add spell difficulties
|
||||
DELETE FROM `spelldifficulty_dbc` WHERE `id` IN (61693,56272,57058);
|
||||
INSERT INTO `spelldifficulty_dbc` (`id`,`spellid0`,`spellid1`,`spellid2`,`spellid3`) VALUES
|
||||
(61693,61693,61694,0,0), -- Arcane Storm - Phase I
|
||||
(56272,56272,60072,0,0), -- Arcane Breath
|
||||
(57058,57058,60073,0,0); -- Arcane Shock (Nexus Lord)
|
||||
|
||||
-- Insert missing creature template addon
|
||||
DELETE FROM `creature_template_addon` WHERE `entry` IN (28859,30234,30248,32295,30592,31748,31749);
|
||||
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
|
||||
(28859,0,0,0x1000000|0x2000000,0x1,0, ''), -- Malygos
|
||||
(30234,0,0,0x1000000|0x2000000,0x1,0, '43775'), -- Hover Disk (Nexus Lord), add aura "Flight"
|
||||
(30248,0,0,0x1000000|0x2000000,0x1,0, '43775'), -- Hover Disk (Scion of Eternity), add aura "Flight"
|
||||
(31748,0,0,0x1000000|0x2000000,0x1,0, '43775'), -- Hover Disk Difficulty (Nexus Lord), add aura "Flight"
|
||||
(31749,0,0,0x1000000|0x2000000,0x1,0, '43775'), -- Hover Disk Difficulty (Scion of Eternity), add aura "Flight"
|
||||
(32295,0,0,0x1000000|0x2000000,0x1,0, ''), -- Alexstrasza
|
||||
(30592,0,0,0x1000000|0x2000000,0x1,0, '57428'); -- Static Field bunny
|
||||
|
||||
-- Add, restructure and update missing texts and sounds
|
||||
DELETE FROM `creature_text` WHERE `entry` IN (28859,32295);
|
||||
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
|
||||
(28859,0,0, 'Lesser beings, intruding here! A shame that your excess courage does not compensate for your stupidity!',14,0,100,0,10000,14512,'Malygos - Intro'),
|
||||
(28859,0,1, 'None but the blue dragonflight are welcome here. Perhaps this is the work of Alexstrasza? Well, then, she has sent you to your deaths!',14,0,100,0,11000,14513,'Malygos - Intro'),
|
||||
(28859,0,2, 'What could you hope to accomplish? To storm brazenly into my domain... to employ magic... against ME?',14,0,100,0,13000,14514,'Malygos - Intro'),
|
||||
(28859,0,3, 'I am without limits here. The rules of your cherished reality do not apply. In this realm, I am in control!',14,0,100,0,10000,14515,'Malygos - Intro'),
|
||||
(28859,0,4, 'I give you one chance. Pledge fealty to me, and perhaps I will not slaughter you for your insolence.',14,0,100,0,7000,14516,'Malygos - Intro'),
|
||||
(28859,1,0, 'My patience has reached its limit, I will be rid of you!',14,0,100,0,4000,14517,'Malygos - Start phase 1'),
|
||||
(28859,2,0, 'You will not succeed while I draw breath!',14,0,100,0,3000,14518,'Malygos - Begin to cast Deep Breath'),
|
||||
(28859,3,0, 'Your stupidity has finally caught up to you!',14,0,100,0,3250,14519,'Malygos - Killed Player (Phase 1)'),
|
||||
(28859,3,1, 'More artifacts to confiscate...',14,0,100,0,2800,14520,'Malygos - Killed Player (Phase 1)'),
|
||||
(28859,3,2, 'How very naive.',14,0,100,0,4800,14521,'Malygos - Killed Player (Phase 1)'),
|
||||
(28859,4,0, 'I had hoped to end your lives quickly, but you have proven more... resilient than I anticipated. Nonetheless, your efforts are in vain. It is you reckless, careless mortals who are to blame for this war. I do what I must, and if it means your extinction.... then SO BE IT!!',14,0,100,0,22900,14522,'Malygos - End Phase One'),
|
||||
(28859,5,0, 'Few have experienced the pain I will now inflict upon you!',14,0,100,0,5500,14523,'Malygos - Start phase 2'), -- Unused by Blizzard for some reason
|
||||
(28859,6,0, 'I will teach you IGNORANT children just how little you know of magic...',14,0,100,0,7000,14524,'Malygos - Anti-Magic Shell'),
|
||||
(28859,7,0, 'Watch helplessly as your hopes are swept away...',14,0,100,0,4000,14525,'Malygos - Magic Blast'),
|
||||
(28859,8,0, 'Your energy will be put to good use!',14,0,100,0,2000,14526,'Malygos - Killed Player (Phase 2)'),
|
||||
(28859,8,1, 'I am the spell-weaver! My power is infinite!',14,0,100,0,5200,14527,'Malygos - Killed Player (Phase 2)'),
|
||||
(28859,8,2, 'Your spirit will linger here forever!',14,0,100,0,3800,14528,'Malygos - Killed Player (Phase 2)'),
|
||||
(28859,9,0, 'ENOUGH! If you intend to reclaim Azeroth''s magic, then you shall have it...',14,0,100,0,7000,14529,'Malygos - End Phase 2'),
|
||||
(28859,10,0, 'Now your benefactors make their appearance... But they are too late. The powers contained here are sufficient to destroy the world ten times over! What do you think they will do to you?',14,0,100,0,13000,14530,'Intro Phase 3'),
|
||||
(28859,11,0, 'SUBMIT!',14,0,100,0,1000,14531,'Malygos - Start phase 3'), -- Unused by Blizzard for some reason
|
||||
(28859,12,0, 'Malygos takes a deep breath.',41,0,100,0,10000,0,'Malygos - Surge of Power warning (Phase 2)'),
|
||||
(28859,13,0, 'The powers at work here exceed anything you could possibly imagine!',14,0,100,0,5000,14532,'Malygos - Surge of Power'),
|
||||
(28859,14,0, 'I AM UNSTOPPABLE!',14,0,100,0,2000,14533,'Malygos - Buffed by a spark'),
|
||||
(28859,15,0, 'Alexstrasza! Another of your brood falls!',14,0,100,0,3600,14534,'Malygos - Killed Player (Phase 3)'),
|
||||
(28859,15,1, 'Little more then gnats!',14,0,100,0,2650,14535,'Malygos - Killed Player (Phase 3)'),
|
||||
(28859,15,2, 'Your red allies will share your fate...',14,0,100,0,3000,14536,'Malygos - Killed Player (Phase 3)'),
|
||||
(28859,16,0, 'Still standing? Not for long...',14,0,100,0,3600,14537,'Malygos - Spell Casting 1(Phase 3)'),
|
||||
(28859,16,1, 'Your cause is lost!',14,0,100,0,2000,14538,'Malygos - Spell Casting 2 (Phase 3)'),
|
||||
(28859,16,2, 'Your fragile mind will be shattered!',14,0,100,0,4000,14539,'Malygos - Spell Casting 3 (Phase 3)'),
|
||||
(28859,17,0, 'Unthinkable! The mortals will destroy... everything! My sister, what have you...',14,0,100,0,8500,14540,'Malygos - Death'),
|
||||
(28859,18,0, '%s fixes his eyes on you!',42,0,100,0,3000,0,'Malygos - Surge of Power warning (Phase 3)'),
|
||||
(28859,19,0, '%s goes into a berserker rage!',41,0,100,0,10000,0,'Malygos - Hit berserk timer (Any phase)'),
|
||||
(32295,0,0, 'I did what I had to, brother. You gave me no alternative.',14,0,100,0,4000,14406,'Alexstrasza - Yell text 1'),
|
||||
(32295,1,0, 'And so ends the Nexus War.',14,0,100,0,4000,14407,'Alexstrasza - Yell text 2'),
|
||||
(32295,2,0, 'This resolution pains me deeply, but the destruction, the monumental loss of life had to end. Regardless of Malygos''s recent transgressions, I will mourn his loss. He was once a guardian, a protector. This day, one of the world''s mightiest has fallen.',14,0,100,0,24000,14408,'Alexstrasza - Yell text 3'),
|
||||
(32295,3,0, 'The red dragonflight will take on the burden of mending the devastation wrought on Azeroth. Return home to your people and rest. Tomorrow will bring you new challenges, and you must be ready to face them. Life... goes on.',14,0,100,0,22000,14409,'Alexstrasza - Yell text 4');
|
||||
-- Update wrong sound and add duration for Power Sparks warning
|
||||
UPDATE `creature_text` SET `duration`=10000,`sound`=0 WHERE `entry`=30084 AND `groupid`=0 AND`id`=0;
|
||||
|
||||
-- Add conditions
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (56047,58846,61028,56429,56505,59099,61714,61715,57432,57429,61210,56548,56431,56438);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
|
||||
(13,1,56047,0,0,31,0,3,30118,0,0,0,0,'', 'Random Portal can implicitly hit only Portal (Malygos)'),
|
||||
(13,1,56047,0,0,29,0,28859,30,0,1,0,0,'', 'Random Portal can implicitly hit only target that is not in 30 yards near Malygos'),
|
||||
(13,1,58846,0,0,32,0,0x0010,0,0,0,0,0,'', 'Summon Red Dragon Buddy force cast can implicitly hit only players'),
|
||||
(13,1,61028,0,0,31,0,3,32448,0,0,0,0,'', 'Alexstrasza''s Gift Beam can hit only Alexstrasza''s Gift'),
|
||||
(13,1,56429,0,0,31,0,3,31253,0,0,0,0,'', 'Summon Arcane Bomb can hit only Alexstrasza the Life-Binder (bunny)'),
|
||||
(13,1,56505,0,0,31,0,3,30334,0,0,0,0,'', 'Surge of Power (phase II) can hit only Surge of Power'),
|
||||
(13,1,56548,0,0,31,0,3,30234,0,1,0,0,'', 'Surge of Power triggered damage spell (phase II) can''t hit melee Hover Disk'),
|
||||
(13,3,56431,0,0,31,0,3,30234,0,1,0,0,'', 'Arcane Overload damage and knockback spell can''t hit melee Hover Disk'),
|
||||
(13,1,56438,0,0,1,0,1,56438,0,1,0,0,'', 'Arcane Overload damage reduce aura can''t apply to target that already is affected by such'),
|
||||
(13,6,59099,0,0,32,0,0x0010,0,0,0,0,0,'', 'Destroy Platform Event effect 1 and 2 can hit only players'),
|
||||
(13,7,61714,0,0,31,0,3,30245,0,0,0,0,'', 'Berserk (spell 2) can hit Nexus Lord'),
|
||||
(13,7,61714,0,1,31,0,3,30249,0,0,0,0,'', 'Berserk (spell 2) can hit Scion of Eternity'),
|
||||
(13,7,61715,0,0,31,0,3,30592,0,0,0,0,'', 'Berserk (spell 3) can hit Static Field bunny'),
|
||||
(13,1,57432,0,0,31,0,3,30161,0,0,0,0,'', 'Arcane Pulse can hit only drakes'),
|
||||
(13,3,57429,0,0,31,0,3,30161,0,0,0,0,'', 'Static Field can hit only drakes'),
|
||||
(13,1,61210,0,0,33,1,0,4,0,0,0,0,'', 'Align Disk Aggro can only hit the vehicle of the passenger caster');
|
||||
|
||||
-- Add missing equipment
|
||||
DELETE FROM `creature_equip_template` WHERE `entry` IN (30245,31750,30249,31751);
|
||||
INSERT INTO `creature_equip_template` (`entry`,`id`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
|
||||
(30245,1,30714,0,0), -- Nexus Lord
|
||||
(31750,1,30714,0,0), -- Nexus Lord (Difficulty)
|
||||
(30249,1,29107,0,0), -- Scion of Eternity
|
||||
(31751,1,29107,0,0); -- Scion of Eternity (Difficulty)
|
||||
|
||||
-- Update accessories of hover disks to die with the vehicle and have lower despawn time. They should fall from hover disks,
|
||||
-- and despawn after 5 sec, but for some reason they keep staying standing while dead. This needs to be fixed coreside.
|
||||
UPDATE `vehicle_template_accessory` SET `minion`=1,`summontype`=6,`summontimer`=1000 WHERE `entry`=30234 AND `seat_id`=0;
|
||||
UPDATE `vehicle_template_accessory` SET `minion`=1,`summontype`=6,`summontimer`=1000 WHERE `entry`=30248 AND `seat_id`=0;
|
||||
|
||||
-- Add flag GO not selectable for both and extra condition for Heart of Magic
|
||||
UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=193967; -- Alexstrasza Gift
|
||||
UPDATE `gameobject_template` SET `flags`=20 WHERE `entry`=194159; -- Heart of Magic
|
||||
|
||||
-- Add some gameobject data update
|
||||
UPDATE `gameobject` SET `animprogress`=255,`spawntimesecs`=300 WHERE `guid` IN (151791,193960); -- that spawn time has no influence, but having different values doesn't look correct
|
||||
|
||||
-- Delete static GO spawns of Alexstrasza's Gift Boxes, they are dynamic (10/25)
|
||||
DELETE FROM `gameobject` WHERE `guid` IN (151792,151793);
|
||||
|
||||
-- Add map difficulty checks for achievement "Denyin the Scion"
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (7573,7574) AND `type`=12;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`) VALUES
|
||||
(7573,12,0), -- 10 mode
|
||||
(7574,12,1); -- 25 mode
|
||||
|
||||
-- Delete Nexus Lords SAI script, because of incapacity to handle the combat spell mechanic of Arcane Shock correctly
|
||||
-- Delete Scions of Eternity SAI script, because of incapacity to handle non reactive AI when being attacked in a way it won't bug other encounter mechanics.
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (30245,30249) AND `source_type`=0;
|
||||
|
||||
-- Add SAI support for Alexstrasza since is only short timed event after boss mechanic ends
|
||||
SET @NPC_ALEXSTRASZA := 32295;
|
||||
SET @ACTIONLIST := @NPC_ALEXSTRASZA * 100;
|
||||
SET @SPELL_GIFT_BEAM := 61028;
|
||||
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`='' WHERE `entry`=@NPC_ALEXSTRASZA;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@NPC_ALEXSTRASZA AND `source_type`=0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ACTIONLIST 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
|
||||
(@NPC_ALEXSTRASZA,0,0,0,54,0,100,0,0,0,0,0,69,1,0,0,0,0,0,8,0,0,0,788.07,1276.09,246.9,0,'Alexstrasza - On just summoned - Move to pos'),
|
||||
(@NPC_ALEXSTRASZA,0,1,0,34,0,100,0,8,1,0,0,80,@ACTIONLIST,2,0,0,0,0,1,0,0,0,0,0,0,0,'Alexstrasza - On point 1 reached - Start actionlist'),
|
||||
(@ACTIONLIST,9,0,0,0,0,100,0,0,0,0,0,11,@SPELL_GIFT_BEAM,0,0,0,0,0,1,0,0,0,0,0,0,0,'Alexstrasza - Action 0 - Cast Gift Beam'),
|
||||
(@ACTIONLIST,9,1,0,0,0,100,0,4000,4000,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Alexstrasza - Action 1 - Yell 0'),
|
||||
(@ACTIONLIST,9,2,0,0,0,100,0,6000,6000,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Alexstrasza - Action 2 - Yell 1'),
|
||||
(@ACTIONLIST,9,3,0,0,0,100,0,5000,5000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Alexstrasza - Action 3 - Yell 2'),
|
||||
(@ACTIONLIST,9,4,0,0,0,100,0,24000,24000,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Alexstrasza - Action 4 - Yell 3');
|
||||
|
||||
-- Add areatrigger script for the improvised platform that is killing/rooting falling players
|
||||
DELETE FROM `areatrigger_scripts` WHERE `entry`=5342;
|
||||
INSERT INTO `areatrigger_scripts` (`entry`,`ScriptName`) VALUES
|
||||
(5342, 'at_eye_of_eternity_improvised_floor');
|
||||
|
||||
-- /////////////// Various misc in creature, creature template and creature addon ///////////////
|
||||
-- Update some guids spawn positions
|
||||
UPDATE `creature` SET `position_x`=754.362,`position_y`=1301.61,`position_z`=266.171,`orientation`=4.24115 WHERE `guid`=132302; -- Alexstrasza the Life-Binder (Bunny)
|
||||
UPDATE `creature` SET `position_x`=747.61,`position_y`=1393.43,`position_z`=295.9722,`orientation`=3.03832 WHERE `guid`=132313; -- Malygos
|
||||
|
||||
-- Update some creature guids to be have static MovementType and spawn dist to 0 accordingly
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=0 WHERE `guid` IN
|
||||
(132313, -- Malygos
|
||||
132314, -- Alexstrasza''s Gift Bunny
|
||||
132302); -- Alexstrasza the Life-Binder (Bunny)
|
||||
|
||||
-- Update template to InhabitType "Air" for various creatures
|
||||
UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry` IN (28859,31734,30245,31750,30249,31751,32295,32448);
|
||||
|
||||
-- Clear scripts names for Alexstrasza the Life-Binder (Bunny)
|
||||
UPDATE `creature_template` SET `AIName`='',`ScriptName`='' WHERE `entry`=31253;
|
||||
|
||||
-- Update Portal (Malygos) initial flags before the encounter starts
|
||||
UPDATE `creature_template` SET `unit_flags`=`unit_flags`|0x00000100|0x02000000,`flags_extra`=128 WHERE `entry`=30118; -- Immunity to Players + Not selectable
|
||||
|
||||
-- Update flags extra to trigger & civilian for Static Field and add script name
|
||||
UPDATE `creature_template` SET `AIName`='',`ScriptName`='npc_static_field',`flags_extra`=130 WHERE `entry`=30592;
|
||||
|
||||
-- Update flags extra to extra trigger & extra civilian for Alexstrasza Bunny
|
||||
UPDATE `creature_template` SET `flags_extra`=130, `ScriptName`='' WHERE `entry`=31253;
|
||||
|
||||
-- Remove uneeded creature_addon data
|
||||
DELETE FROM `creature_addon` WHERE `guid` IN
|
||||
(30592, -- The spawn for Static Field is dynamique, so not fixed guid.
|
||||
132313); -- Malygos is boss so is unique and needs only the template addon.
|
||||
|
||||
-- Update templates for both types of hover disks
|
||||
UPDATE `creature_template` SET `faction_A`=14,`faction_H`=14,`VehicleId`=223,`InhabitType`=4 WHERE `entry` IN (30248,31749); -- Hover disk for Scions
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_caster_hover_disk' WHERE `entry`=30248;
|
||||
UPDATE `creature_template` SET `faction_A`=14,`faction_H`=14,`InhabitType`=4 WHERE `entry` IN (30234,31748); -- Hover disk for Nexus Lords
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_melee_hover_disk' WHERE `entry`=30234;
|
||||
UPDATE `creature_template` SET `AIName`='',`ScriptName`='npc_nexus_lord' WHERE `entry`=30245; -- Nexus Lord
|
||||
UPDATE `creature_template` SET `AIName`='',`ScriptName`='npc_scion_of_eternity' WHERE `entry`=30249; -- Scion of Eternity
|
||||
|
||||
-- Fix model display for Vortex Triggers (in creature handling).
|
||||
-- Remove extra trigger flag because for some reason it was bugging model displaying as always visible,
|
||||
-- since it has the invisible one for triggers first and other as second, this is the only nonhacky way (don't try to change it unless core side != c++ hack in instance script)
|
||||
UPDATE `creature_template` SET `flags_extra`=flags_extra &~ 0x00000080 WHERE `entry`=30090;
|
||||
UPDATE `creature` SET `modelid`=11686 WHERE `guid` BETWEEN 132304 AND 132308;
|
||||
@@ -0,0 +1,11 @@
|
||||
-- Add missing generic spell for opening chests for most of Blood Elf's classes
|
||||
-- (was preventing them to loot Eye of Eternity Alexstrasza's Gift Box, Heart of Magic and maybe more.)
|
||||
DELETE FROM `playercreateinfo_spell` WHERE `race`=10 AND `Spell`=61437;
|
||||
INSERT INTO `playercreateinfo_spell` (`race`,`class`,`Spell`,`Note`) VALUES
|
||||
(10,2,61437, 'Opening'),
|
||||
(10,3,61437, 'Opening'),
|
||||
(10,4,61437, 'Opening'),
|
||||
(10,5,61437, 'Opening'),
|
||||
(10,6,61437, 'Opening'),
|
||||
(10,8,61437, 'Opening'),
|
||||
(10,9,61437, 'Opening');
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
#if defined __APPLE__
|
||||
#define isnan std::isnan
|
||||
#elif defined __CYGWIN__
|
||||
#define isnan std::isnan
|
||||
#elif defined _MSC_VER
|
||||
#define isnan _isnan
|
||||
#endif
|
||||
|
||||
@@ -102,21 +102,21 @@ enum WintergraspData
|
||||
enum WintergraspAchievements
|
||||
{
|
||||
ACHIEVEMENTS_WIN_WG = 1717,
|
||||
ACHIEVEMENTS_WIN_WG_100 = 1718, // todo
|
||||
ACHIEVEMENTS_WG_GNOMESLAUGHTER = 1723, // todo
|
||||
ACHIEVEMENTS_WIN_WG_100 = 1718, /// @todo: Has to be implemented
|
||||
ACHIEVEMENTS_WG_GNOMESLAUGHTER = 1723, /// @todo: Has to be implemented
|
||||
ACHIEVEMENTS_WG_TOWER_DESTROY = 1727,
|
||||
ACHIEVEMENTS_DESTRUCTION_DERBY_A = 1737, // todo
|
||||
ACHIEVEMENTS_WG_TOWER_CANNON_KILL = 1751, // todo
|
||||
ACHIEVEMENTS_WG_MASTER_A = 1752, // todo
|
||||
ACHIEVEMENTS_DESTRUCTION_DERBY_A = 1737, /// @todo: Has to be implemented
|
||||
ACHIEVEMENTS_WG_TOWER_CANNON_KILL = 1751, /// @todo: Has to be implemented
|
||||
ACHIEVEMENTS_WG_MASTER_A = 1752, /// @todo: Has to be implemented
|
||||
ACHIEVEMENTS_WIN_WG_TIMER_10 = 1755,
|
||||
ACHIEVEMENTS_STONE_KEEPER_50 = 2085, // todo
|
||||
ACHIEVEMENTS_STONE_KEEPER_100 = 2086, // todo
|
||||
ACHIEVEMENTS_STONE_KEEPER_250 = 2087, // todo
|
||||
ACHIEVEMENTS_STONE_KEEPER_500 = 2088, // todo
|
||||
ACHIEVEMENTS_STONE_KEEPER_1000 = 2089, // todo
|
||||
ACHIEVEMENTS_WG_RANGER = 2199, // todo
|
||||
ACHIEVEMENTS_DESTRUCTION_DERBY_H = 2476, // todo
|
||||
ACHIEVEMENTS_WG_MASTER_H = 2776 // todo
|
||||
ACHIEVEMENTS_STONE_KEEPER_50 = 2085, /// @todo: Has to be implemented
|
||||
ACHIEVEMENTS_STONE_KEEPER_100 = 2086, /// @todo: Has to be implemented
|
||||
ACHIEVEMENTS_STONE_KEEPER_250 = 2087, /// @todo: Has to be implemented
|
||||
ACHIEVEMENTS_STONE_KEEPER_500 = 2088, /// @todo: Has to be implemented
|
||||
ACHIEVEMENTS_STONE_KEEPER_1000 = 2089, /// @todo: Has to be implemented
|
||||
ACHIEVEMENTS_WG_RANGER = 2199, /// @todo: Has to be implemented
|
||||
ACHIEVEMENTS_DESTRUCTION_DERBY_H = 2476, /// @todo: Has to be implemented
|
||||
ACHIEVEMENTS_WG_MASTER_H = 2776 /// @todo: Has to be implemented
|
||||
};
|
||||
|
||||
enum WintergraspWorldStates
|
||||
@@ -499,7 +499,7 @@ enum WintergraspTeamControl
|
||||
BATTLEFIELD_WG_TEAM_NEUTRAL
|
||||
};
|
||||
|
||||
// TODO: Handle this with creature_text ?
|
||||
/// @todo: Can this be handled with creature_text or SmartAI ?
|
||||
enum WintergraspText
|
||||
{
|
||||
BATTLEFIELD_WG_TEXT_WORKSHOP_NAME_NE = 12055,
|
||||
@@ -562,7 +562,7 @@ struct WintergraspObjectPositionData
|
||||
};
|
||||
|
||||
// *****************************************************
|
||||
// ************ Destructible (Wall, Tower..) ************
|
||||
// ************ Destructible (Wall, Tower..) ***********
|
||||
// *****************************************************
|
||||
|
||||
struct WintergraspBuildingSpawnData
|
||||
@@ -755,7 +755,7 @@ const WintergraspTeleporterData WGPortalDefenderData[WG_MAX_TELEPORTER] =
|
||||
};
|
||||
|
||||
// *********************************************************
|
||||
// **********Tower Element(GameObject, Creature)*************
|
||||
// **********Tower Element(GameObject, Creature)************
|
||||
// *********************************************************
|
||||
|
||||
struct WintergraspTowerData
|
||||
@@ -764,7 +764,7 @@ struct WintergraspTowerData
|
||||
uint8 nbObject; // Number of gameobjects spawned on this point
|
||||
WintergraspObjectPositionData GameObject[6]; // Gameobject position and entry (Horde/Alliance)
|
||||
|
||||
// Creature : Turrets and Guard, TODO: check if killed on tower destruction? tower damage?
|
||||
// Creature: Turrets and Guard /// @todo: Killed on Tower destruction ? Tower damage ? Requires confirming
|
||||
uint8 nbCreatureBottom;
|
||||
WintergraspObjectPositionData CreatureBottom[9];
|
||||
uint8 nbCreatureTop;
|
||||
@@ -1055,7 +1055,7 @@ const WGWorkshopData WorkshopsData[WG_MAX_WORKSHOP] =
|
||||
};
|
||||
|
||||
// ********************************************************************
|
||||
// * Structs using for Building, Graveyard, Workshop *
|
||||
// * Structs using for Building, Graveyard, Workshop *
|
||||
// ********************************************************************
|
||||
// Structure for different buildings that can be destroyed during battle
|
||||
struct BfWGGameObjectBuilding
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
#define AV_EVENT_START_BATTLE 9166 // Achievement: The Alterac Blitz
|
||||
|
||||
enum BG_AV_Sounds
|
||||
{ //TODO: get out if there comes a sound when neutral team captures mine
|
||||
{ /// @todo: get out if there comes a sound when neutral team captures mine
|
||||
|
||||
/*
|
||||
8212:
|
||||
@@ -86,7 +86,7 @@ horde:
|
||||
horde wins
|
||||
*/
|
||||
|
||||
AV_SOUND_NEAR_VICTORY = 8456, //not confirmed yet
|
||||
AV_SOUND_NEAR_VICTORY = 8456, /// @todo: Not confirmed yet
|
||||
|
||||
AV_SOUND_ALLIANCE_ASSAULTS = 8212, //tower, grave + enemy boss if someone tries to attack him
|
||||
AV_SOUND_HORDE_ASSAULTS = 8174,
|
||||
@@ -104,7 +104,7 @@ enum BG_AV_OTHER_VALUES
|
||||
AV_NORTH_MINE = 0,
|
||||
AV_SOUTH_MINE = 1,
|
||||
AV_MINE_TICK_TIMER = 45000,
|
||||
AV_MINE_RECLAIM_TIMER = 1200000, //TODO: get the right value.. this is currently 20 minutes
|
||||
AV_MINE_RECLAIM_TIMER = 1200000, /// @todo: get the right value.. this is currently 20 minutes
|
||||
AV_NEUTRAL_TEAM = 0 //this is the neutral owner of snowfall
|
||||
};
|
||||
enum BG_AV_ObjectIds
|
||||
@@ -547,7 +547,7 @@ enum BG_AV_CreaturePlace
|
||||
AV_CPLACE_SPIRIT_FROST_HUT = 6,
|
||||
AV_CPLACE_SPIRIT_MAIN_ALLIANCE = 7,
|
||||
AV_CPLACE_SPIRIT_MAIN_HORDE = 8,
|
||||
//i don't will add for all 4 positions a variable.. i think one is enough to compute the rest
|
||||
//I don't add a variable for all 4 positions... I think one is enough to compute the rest
|
||||
AV_CPLACE_DEFENSE_STORM_AID = 9,
|
||||
AV_CPLACE_DEFEMSE_STORM_GRAVE = 13,
|
||||
AV_CPLACE_DEFENSE_STONE_GRAVE = 17,
|
||||
@@ -680,7 +680,7 @@ const float BG_AV_CreaturePos[AV_CPLACE_MAX][4] =
|
||||
{575.411f, -83.597f, 52.3626f, 6.26573f},
|
||||
{571.352f, -75.6582f, 52.479f, 0.523599f},
|
||||
//dun north - OK
|
||||
{668.60f, -122.53f, 64.12f, 2.34f}, //not 100% ok
|
||||
{668.60f, -122.53f, 64.12f, 2.34f}, /// @todo: To be confirm - Not completely okay
|
||||
{662.253f, -129.105f, 64.1794f, 2.77507f},
|
||||
{661.209f, -138.877f, 64.2251f, 3.38594f},
|
||||
{665.481f, -146.857f, 64.1271f, 3.75246f},
|
||||
@@ -720,7 +720,7 @@ const float BG_AV_CreaturePos[AV_CPLACE_MAX][4] =
|
||||
{723.058f, -14.1548f, 50.7046f, 3.40339f}, // north
|
||||
{715.691f, -4.72233f, 50.2187f, 3.47321f}, // icewing
|
||||
{720.046f, -19.9413f, 50.2187f, 3.36849f}, // stone
|
||||
//horde (coords not 100% ok)
|
||||
/// horde @todo: Confirm positions
|
||||
{-1363.99f, -221.99f, 98.4053f, 4.93012f},
|
||||
{-1370.96f, -223.532f, 98.4266f, 4.93012f},
|
||||
{-1378.37f, -228.614f, 99.3546f, 5.38565f},
|
||||
@@ -1039,14 +1039,14 @@ enum BG_AV_CreatureIds
|
||||
};
|
||||
|
||||
//entry, team, minlevel, maxlevel
|
||||
//TODO this array should be removed, the only needed things are the entrys (for spawning(?) and handlekillunit)
|
||||
/// @todo: this array should be removed, the only needed things are the entrys (for spawning(?) and handlekillunit)
|
||||
const uint32 BG_AV_CreatureInfo[AV_NPC_INFO_MAX][4] =
|
||||
{
|
||||
{ 12050, 1216, 58, 58 }, //Stormpike Defender
|
||||
{ 13326, 1216, 59, 59 }, //Seasoned Defender
|
||||
{ 13331, 1216, 60, 60 }, //Veteran Defender
|
||||
{ 13422, 1216, 61, 61 }, //Champion Defender
|
||||
{ 13358, 1216, 59, 60 }, //Stormpike Bowman //i think its 60, 61 and 69, 70.. but this is until now not possible TODO look if this is ok
|
||||
{ 13358, 1216, 59, 60 }, //Stormpike Bowman /// @todo: Confirm if this is correct. Author assumpted 60,61 & 69,70, but wouldn't work here
|
||||
{ 11949, 469, 0, 0}, //not spawned with this data, but used for handlekillunit
|
||||
{ 11948, 469, 0, 0}, //not spawned with this data, but used for handlekillunit
|
||||
{ 12053, 1214, 58, 58 }, //Frostwolf Guardian
|
||||
@@ -1071,7 +1071,7 @@ const uint32 BG_AV_CreatureInfo[AV_NPC_INFO_MAX][4] =
|
||||
{ 11602, 59, 54, 55 }, //Irondeep Skullthumper
|
||||
{ 11657, 59, 58, 58 }, //Morloch
|
||||
|
||||
{13396, 469, 52, 53}, //irondeep alliance TODO: get the right ids
|
||||
{13396, 469, 52, 53}, // irondeep alliance /// @todo: Correct and give correct ids
|
||||
{13080, 469, 53, 54},
|
||||
{13098, 469, 54, 55},
|
||||
{13078, 469, 58, 58},
|
||||
@@ -1246,7 +1246,7 @@ const uint32 BG_AV_StaticCreatureInfo[51][4] =
|
||||
{ 11675, 514, 53, 53 }, //Snowblind Windcaller
|
||||
{ 11678, 14, 52, 53 }, //Snowblind Ambusher
|
||||
{ 11839, 39, 56, 56 }, //Wildpaw Brute
|
||||
{ 11947, 1214, 61, 61 }, //Captain Galvangar --TODO: doubled
|
||||
{ 11947, 1214, 61, 61 }, // Captain Galvangar /// @todo: Duplicate ? Check and confirm
|
||||
{ 11948, 1216, 63, 63 }, //Vanndar Stormpike
|
||||
{ 11949, 1216, 61, 61 }, //Captain Balinda Stonehearth
|
||||
{ 11997, 1334, 60, 60 }, //Stormpike Herald
|
||||
@@ -1277,7 +1277,7 @@ const uint32 BG_AV_StaticCreatureInfo[51][4] =
|
||||
{ 14282, 1214, 53, 54 }, //Frostwolf Bloodhound
|
||||
{ 14283, 1216, 53, 54 }, //Stormpike Owl
|
||||
{ 14284, 1216, 61, 61 }, //Stormpike Battleguard
|
||||
{ 11946, 1214, 63, 63 }, //Drek'Thar //TODO: make the levels right (boss=0 maybe)
|
||||
{ 11946, 1214, 63, 63 }, //Drek'Thar /// @todo: Correct the level (Level 80 for boss ?)
|
||||
{ 11948, 1216, 63, 63 }, //Vanndar Stormpike
|
||||
{ 11947, 1214, 61, 61 }, //Captain Galvangar
|
||||
{ 11949, 1216, 61, 61 } //Captain Balinda Stonehearth
|
||||
@@ -1310,7 +1310,7 @@ const uint32 BG_AV_GraveyardIds[9]=
|
||||
};
|
||||
|
||||
enum BG_AV_BUFF
|
||||
{ //TODO add all other buffs here
|
||||
{ /// @todo: Add all other buffs here
|
||||
AV_BUFF_ARMOR = 21163,
|
||||
AV_BUFF_A_CAPTAIN = 23693, //the buff which the alliance captain does
|
||||
AV_BUFF_H_CAPTAIN = 22751 //the buff which the horde captain does
|
||||
@@ -1607,7 +1607,7 @@ class BattlegroundAV : public Battleground
|
||||
|
||||
/*general */
|
||||
Creature* AddAVCreature(uint16 cinfoid, uint16 type);
|
||||
uint16 GetBonusHonor(uint8 kills); //TODO remove this when the core handles this right
|
||||
uint16 GetBonusHonor(uint8 kills); /// @todo: Remove this when the core handles this properly
|
||||
|
||||
/*variables */
|
||||
int32 m_Team_Scores[2];
|
||||
@@ -1622,7 +1622,7 @@ class BattlegroundAV : public Battleground
|
||||
uint32 m_CaptainBuffTimer[2];
|
||||
bool m_CaptainAlive[2];
|
||||
|
||||
uint8 m_MaxLevel; //TODO remove this when battleground-getmaxlevel() returns something usefull
|
||||
uint8 m_MaxLevel; /// @todo: Remove this once battleground->getmaxlevel() returns something usefull/is reworked (?)
|
||||
bool m_IsInformedNearVictory[2];
|
||||
};
|
||||
|
||||
|
||||
@@ -1708,7 +1708,7 @@ struct SpellEffectEntry
|
||||
// SpellAuraOptions.dbc
|
||||
struct SpellAuraOptionsEntry
|
||||
{
|
||||
uint32 Id; // 0 m_ID
|
||||
uint32 Id; // 0 m_ID
|
||||
uint32 StackAmount; // 1 m_cumulativeAura
|
||||
uint32 procChance; // 2 m_procChance
|
||||
uint32 procCharges; // 3 m_procCharges
|
||||
|
||||
@@ -483,15 +483,13 @@ class Creature : public Unit, public GridObject<Creature>, public MapCreature
|
||||
SetReactState(REACT_DEFENSIVE);*/;
|
||||
}
|
||||
|
||||
///// TODO RENAME THIS!!!!!
|
||||
/// @todo Rename these properly
|
||||
bool isCanTrainingOf(Player* player, bool msg) const;
|
||||
bool isCanInteractWithBattleMaster(Player* player, bool msg) const;
|
||||
bool isCanTrainingAndResetTalentsOf(Player* player) const;
|
||||
bool canCreatureAttack(Unit const* victim, bool force = true) const;
|
||||
bool IsImmunedToSpell(SpellInfo const* spellInfo);
|
||||
// redefine Unit::IsImmunedToSpell
|
||||
bool IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index) const;
|
||||
// redefine Unit::IsImmunedToSpellEffect
|
||||
bool IsImmunedToSpell(SpellInfo const* spellInfo); //override Unit::IsImmunedToSpell
|
||||
bool IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index) const; //override Unit::IsImmunedToSpellEffect
|
||||
bool isElite() const
|
||||
{
|
||||
if (isPet())
|
||||
@@ -766,10 +764,10 @@ class Creature : public Unit, public GridObject<Creature>, public MapCreature
|
||||
|
||||
bool DisableReputationGain;
|
||||
|
||||
CreatureTemplate const* m_creatureInfo; // in difficulty mode > 0 can different from sObjectMgr->GetCreatureTemplate(GetEntry())
|
||||
CreatureTemplate const* m_creatureInfo; // Can differ from sObjectMgr->GetCreatureTemplate(GetEntry()) in difficulty mode > 0
|
||||
CreatureData const* m_creatureData;
|
||||
|
||||
uint16 m_LootMode; // bitmask, default LOOT_MODE_DEFAULT, determines what loot will be lootable
|
||||
uint16 m_LootMode; // Bitmask (default: LOOT_MODE_DEFAULT) that determines what loot will be lootable
|
||||
uint32 guid_transport;
|
||||
|
||||
bool IsInvisibleDueToDespawn() const;
|
||||
|
||||
@@ -107,10 +107,8 @@ enum ItemBondingType
|
||||
|
||||
#define MAX_BIND_TYPE 6
|
||||
|
||||
/* TODO
|
||||
// need to know cases when using item is not allowed in shapeshift
|
||||
ITEM_PROTO_FLAG_USABLE_WHEN_SHAPESHIFTED = 0x00800000, // Item can be used in shapeshift forms
|
||||
*/
|
||||
/* /// @todo: Requiring actual cases in which using (an) item isn't allowed while shapeshifted. Else, this flag would need an implementation.
|
||||
ITEM_PROTO_FLAG_USABLE_WHEN_SHAPESHIFTED = 0x00800000, // Item can be used in shapeshift forms */
|
||||
|
||||
enum ItemProtoFlags
|
||||
{
|
||||
@@ -148,9 +146,6 @@ enum ItemProtoFlags
|
||||
ITEM_PROTO_FLAG_BOP_TRADEABLE = 0x80000000 // bound item that can be traded
|
||||
};
|
||||
|
||||
/* TODO
|
||||
*/
|
||||
|
||||
enum ItemFieldFlags
|
||||
{
|
||||
ITEM_FLAG_SOULBOUND = 0x00000001, // Item is soulbound and cannot be traded <<--
|
||||
|
||||
@@ -21886,7 +21886,7 @@ void Player::AddSpellAndCategoryCooldowns(SpellInfo const* spellInfo, uint32 ite
|
||||
if (rec > 0)
|
||||
ApplySpellMod(spellInfo->Id, SPELLMOD_COOLDOWN, rec, spell);
|
||||
|
||||
if (catrec > 0)
|
||||
if (catrec > 0 && !(spellInfo->AttributesEx6 & SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS))
|
||||
ApplySpellMod(spellInfo->Id, SPELLMOD_COOLDOWN, catrec, spell);
|
||||
|
||||
// replace negative cooldowns by 0
|
||||
|
||||
@@ -1336,11 +1336,16 @@ class Player : public Unit, public GridObject<Player>
|
||||
|
||||
PhaseMgr& GetPhaseMgr() { return phaseMgr; }
|
||||
|
||||
/// Handles said message in regular chat based on declared language and in config pre-defined Range.
|
||||
void Say(std::string const& text, const uint32 language);
|
||||
/// Handles yelled message in regular chat based on declared language and in config pre-defined Range.
|
||||
void Yell(std::string const& text, const uint32 language);
|
||||
/// Outputs an universal text which is supposed to be an action.
|
||||
void TextEmote(std::string const& text);
|
||||
/// Handles whispers from Addons and players based on sender, receiver's guid and language.
|
||||
void Whisper(std::string const& text, const uint32 language, uint64 receiver);
|
||||
void WhisperAddon(std::string const& text, std::string const& prefix, Player* receiver);
|
||||
/// Constructs the player Chat data for the specific functions to use
|
||||
void BuildPlayerChat(WorldPacket* data, uint8 msgtype, std::string const& text, uint32 language, const char* addonPrefix = NULL) const;
|
||||
|
||||
/*********************************************************/
|
||||
|
||||
@@ -10652,7 +10652,7 @@ bool Unit::_IsValidAssistTarget(Unit const* target, SpellInfo const* bySpell) co
|
||||
&& target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
return false;
|
||||
|
||||
if (!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_UNK3))
|
||||
if (!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG))
|
||||
{
|
||||
if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE))
|
||||
{
|
||||
@@ -10699,7 +10699,7 @@ bool Unit::_IsValidAssistTarget(Unit const* target, SpellInfo const* bySpell) co
|
||||
// PvC case - player can assist creature only if has specific type flags
|
||||
// !target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE) &&
|
||||
else if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE)
|
||||
&& (!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_UNK3))
|
||||
&& (!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG))
|
||||
&& !((target->GetByteValue(UNIT_FIELD_BYTES_2, 1) & UNIT_BYTE2_FLAG_PVP)))
|
||||
{
|
||||
if (Creature const* creatureTarget = target->ToCreature())
|
||||
|
||||
@@ -90,7 +90,7 @@ class ObjectAccessor
|
||||
ObjectAccessor& operator=(const ObjectAccessor&);
|
||||
|
||||
public:
|
||||
// TODO: override these template functions for each holder type and add assertions
|
||||
/// @todo: Override these template functions for each holder type and add assertions
|
||||
|
||||
template<class T> static T* GetObjectInOrOutOfWorld(uint64 guid, T* /*typeSpecifier*/)
|
||||
{
|
||||
|
||||
@@ -101,8 +101,8 @@ class InstanceSave
|
||||
private:
|
||||
bool UnloadIfEmpty();
|
||||
/* the only reason the instSave-object links are kept is because
|
||||
the object-instSave links need to be broken at reset time
|
||||
TODO: maybe it's enough to just store the number of players/groups */
|
||||
the object-instSave links need to be broken at reset time */
|
||||
/// @todo: Check if maybe it's enough to just store the number of players/groups
|
||||
PlayerListType m_playerList;
|
||||
GroupListType m_groupList;
|
||||
time_t m_resetTime;
|
||||
|
||||
@@ -484,8 +484,8 @@ enum SpellAttr5
|
||||
SPELL_ATTR5_UNK24 = 0x01000000, // 24
|
||||
SPELL_ATTR5_UNK25 = 0x02000000, // 25
|
||||
SPELL_ATTR5_UNK26 = 0x04000000, // 26 aoe related - Boulder, Cannon, Corpse Explosion, Fire Nova, Flames, Frost Bomb, Living Bomb, Seed of Corruption, Starfall, Thunder Clap, Volley
|
||||
SPELL_ATTR5_UNK27 = 0x08000000, // 27
|
||||
SPELL_ATTR5_UNK28 = 0x10000000, // 28
|
||||
SPELL_ATTR5_DONT_SHOW_AURA_IF_SELF_CAST = 0x08000000, // 27 Auras with this attribute are not visible on units that are the caster
|
||||
SPELL_ATTR5_DONT_SHOW_AURA_IF_NOT_SELF_CAST = 0x10000000, // 28 Auras with this attribute are not visible on units that are not the caster
|
||||
SPELL_ATTR5_UNK29 = 0x20000000, // 29
|
||||
SPELL_ATTR5_UNK30 = 0x40000000, // 30
|
||||
SPELL_ATTR5_UNK31 = 0x80000000 // 31 Forces all nearby enemies to focus attacks caster
|
||||
@@ -496,10 +496,10 @@ enum SpellAttr6
|
||||
SPELL_ATTR6_DONT_DISPLAY_COOLDOWN = 0x00000001, // 0 client doesn't display cooldown in tooltip for these spells
|
||||
SPELL_ATTR6_ONLY_IN_ARENA = 0x00000002, // 1 only usable in arena
|
||||
SPELL_ATTR6_IGNORE_CASTER_AURAS = 0x00000004, // 2
|
||||
SPELL_ATTR6_UNK3 = 0x00000008, // 3
|
||||
SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG = 0x00000008, // 3 skips checking UNIT_FLAG_IMMUNE_TO_PC and UNIT_FLAG_IMMUNE_TO_NPC flags on assist
|
||||
SPELL_ATTR6_UNK4 = 0x00000010, // 4
|
||||
SPELL_ATTR6_UNK5 = 0x00000020, // 5
|
||||
SPELL_ATTR6_PRINT_SPELLNAME = 0x00000040, // 6 when activated, spell name is shown at the center of the screen: <Spell name> (client-side attribute)
|
||||
SPELL_ATTR6_USE_SPELL_CAST_EVENT = 0x00000040, // 6 Auras with this attribute trigger SPELL_CAST combat log event instead of SPELL_AURA_START (clientside attribute)
|
||||
SPELL_ATTR6_UNK7 = 0x00000080, // 7
|
||||
SPELL_ATTR6_CANT_TARGET_CROWD_CONTROLLED = 0x00000100, // 8
|
||||
SPELL_ATTR6_UNK9 = 0x00000200, // 9
|
||||
@@ -513,7 +513,7 @@ enum SpellAttr6
|
||||
SPELL_ATTR6_UNK17 = 0x00020000, // 17 Mount spell
|
||||
SPELL_ATTR6_CAST_BY_CHARMER = 0x00040000, // 18 client won't allow to cast these spells when unit is not possessed && charmer of caster will be original caster
|
||||
SPELL_ATTR6_UNK19 = 0x00080000, // 19 only 47488, 50782
|
||||
SPELL_ATTR6_UNK20 = 0x00100000, // 20 only 58371, 62218
|
||||
SPELL_ATTR6_ONLY_VISIBLE_TO_CASTER = 0x00100000, // 20 Auras with this attribute are only visible to their caster (or pet's owner)
|
||||
SPELL_ATTR6_CLIENT_UI_TARGET_EFFECTS = 0x00200000, // 21 it's only client-side attribute
|
||||
SPELL_ATTR6_UNK22 = 0x00400000, // 22 only 72054
|
||||
SPELL_ATTR6_UNK23 = 0x00800000, // 23
|
||||
@@ -524,7 +524,7 @@ enum SpellAttr6
|
||||
SPELL_ATTR6_UNK28 = 0x10000000, // 28 Death Grip
|
||||
SPELL_ATTR6_NO_DONE_PCT_DAMAGE_MODS = 0x20000000, // 29 ignores done percent damage mods?
|
||||
SPELL_ATTR6_UNK30 = 0x40000000, // 30
|
||||
SPELL_ATTR6_UNK31 = 0x80000000 // 31 some special cooldown calc? only 2894
|
||||
SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS = 0x80000000 // 31 Spells with this attribute skip applying modifiers to category cooldowns
|
||||
};
|
||||
|
||||
enum SpellAttr7
|
||||
@@ -557,7 +557,7 @@ enum SpellAttr7
|
||||
SPELL_ATTR7_UNK25 = 0x02000000, // 25
|
||||
SPELL_ATTR7_UNK26 = 0x04000000, // 26
|
||||
SPELL_ATTR7_UNK27 = 0x08000000, // 27 Not set
|
||||
SPELL_ATTR7_BENEFIT_FROM_SPELLMOD = 0x10000000, // 28 Non-permanent, non-passive buffs that may benefit from spellmods
|
||||
SPELL_ATTR7_CONSOLIDATED_RAID_BUFF = 0x10000000, // 28 May be collapsed in raid buff frame (clientside attribute)
|
||||
SPELL_ATTR7_UNK29 = 0x20000000, // 29 only 69028, 71237
|
||||
SPELL_ATTR7_UNK30 = 0x40000000, // 30 Burning Determination, Divine Sacrifice, Earth Shield, Prayer of Mending
|
||||
SPELL_ATTR7_CLIENT_INDICATOR = 0x80000000
|
||||
|
||||
@@ -3592,6 +3592,30 @@ void SpellMgr::LoadSpellInfoCorrections()
|
||||
break;
|
||||
// ENDOF RUBY SANCTUM SPELLS
|
||||
//
|
||||
// EYE OF ETERNITY SPELLS
|
||||
// All spells below work even without these changes. The LOS attribute is due to problem
|
||||
// from collision between maps & gos with active destroyed state.
|
||||
case 57473: // Arcane Storm bonus explicit visual spell
|
||||
case 57430: // Summon Static Field
|
||||
case 56091: // Flame Spike (Wyrmrest Skytalon)
|
||||
case 56092: // Engulf in Flames (Wyrmrest Skytalon)
|
||||
case 57090: // Revivify (Wyrmrest Skytalon)
|
||||
case 57143: // Life Burst (Wyrmrest Skytalon)
|
||||
spellInfo->AttributesEx2 |= SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS;
|
||||
break;
|
||||
// ENDOF EYE OF ETERNITY SPELLS
|
||||
//
|
||||
// OCULUS SPELLS
|
||||
// The spells below are here because their effect 1 is giving warning due to
|
||||
// triggered spell not found in any dbc and is missing from encounter source* of data.
|
||||
// Even judged as clientside these spells can't be guessed for* now.
|
||||
case 49462: // Call Ruby Drake
|
||||
case 49461: // Call Amber Drake
|
||||
case 49345: // Call Emerald Drake
|
||||
spellInfo->Effects[EFFECT_1].Effect = 0;
|
||||
break;
|
||||
// ENDOF OCULUS SPELLS
|
||||
//
|
||||
case 40055: // Introspection
|
||||
case 40165: // Introspection
|
||||
case 40166: // Introspection
|
||||
@@ -3602,13 +3626,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
||||
spellInfo->ManaCost = 0;
|
||||
spellInfo->ManaPerSecond = 0;
|
||||
break;
|
||||
// OCULUS SPELLS
|
||||
// The spells below are here, because their effect 1 is giving warning, because the triggered spell is not found in dbc and is missing from encounter sniff.
|
||||
case 49462: // Call Ruby Drake
|
||||
case 49461: // Call Amber Drake
|
||||
case 49345: // Call Emerald Drake
|
||||
spellInfo->Effects[EFFECT_1].Effect = 0;
|
||||
break;
|
||||
// Halls Of Origination spells
|
||||
// Temple Guardian Anhuur
|
||||
case 76606: // Disable Beacon Beams L
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -24,14 +24,19 @@ enum InstanceData
|
||||
MAX_ENCOUNTER,
|
||||
|
||||
DATA_VORTEX_HANDLING,
|
||||
DATA_POWER_SPARKS_HANDLING
|
||||
DATA_POWER_SPARKS_HANDLING,
|
||||
DATA_RESPAWN_IRIS
|
||||
};
|
||||
|
||||
enum InstanceData64
|
||||
{
|
||||
DATA_TRIGGER,
|
||||
DATA_MALYGOS,
|
||||
DATA_PLATFORM
|
||||
DATA_PLATFORM,
|
||||
DATA_ALEXSTRASZA_BUNNY_GUID,
|
||||
DATA_HEART_OF_MAGIC_GUID,
|
||||
DATA_FOCUSING_IRIS_GUID,
|
||||
DATA_GIFT_BOX_BUNNY_GUID
|
||||
};
|
||||
|
||||
enum InstanceNpcs
|
||||
@@ -44,16 +49,22 @@ enum InstanceNpcs
|
||||
NPC_HOVER_DISK_CASTER = 30248,
|
||||
NPC_ARCANE_OVERLOAD = 30282,
|
||||
NPC_WYRMREST_SKYTALON = 30161,
|
||||
NPC_ALEXSTRASZA = 32295
|
||||
NPC_ALEXSTRASZA = 32295,
|
||||
NPC_ALEXSTRASZA_BUNNY = 31253,
|
||||
NPC_ALEXSTRASZAS_GIFT = 32448,
|
||||
NPC_SURGE_OF_POWER = 30334
|
||||
};
|
||||
|
||||
enum InstanceGameObjects
|
||||
{
|
||||
GO_NEXUS_RAID_PLATFORM = 193070,
|
||||
GO_EXIT_PORTAL = 193908,
|
||||
GO_FOCUSING_IRIS = 193958,
|
||||
GO_ALEXSTRASZA_S_GIFT = 193905,
|
||||
GO_ALEXSTRASZA_S_GIFT_2 = 193967
|
||||
GO_FOCUSING_IRIS_10 = 193958,
|
||||
GO_FOCUSING_IRIS_25 = 193960,
|
||||
GO_ALEXSTRASZA_S_GIFT_10 = 193905,
|
||||
GO_ALEXSTRASZA_S_GIFT_25 = 193967,
|
||||
GO_HEART_OF_MAGIC_10 = 194158,
|
||||
GO_HEART_OF_MAGIC_25 = 194159
|
||||
};
|
||||
|
||||
enum InstanceEvents
|
||||
@@ -63,10 +74,11 @@ enum InstanceEvents
|
||||
|
||||
enum InstanceSpells
|
||||
{
|
||||
SPELL_VORTEX_4 = 55853, // damage | used to enter to the vehicle
|
||||
SPELL_VORTEX_5 = 56263, // damage | used to enter to the vehicle
|
||||
SPELL_PORTAL_OPENED = 61236,
|
||||
SPELL_RIDE_RED_DRAGON = 56071,
|
||||
SPELL_VORTEX_4 = 55853, // damage | used to enter to the vehicle
|
||||
SPELL_VORTEX_5 = 56263, // damage | used to enter to the vehicle
|
||||
SPELL_PORTAL_OPENED = 61236,
|
||||
SPELL_RIDE_RED_DRAGON_TRIGGERED = 56072,
|
||||
SPELL_IRIS_OPENED = 61012 // visual when starting encounter
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
class instance_eye_of_eternity : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
instance_eye_of_eternity() : InstanceMapScript("instance_eye_of_eternity", 616) {}
|
||||
instance_eye_of_eternity() : InstanceMapScript("instance_eye_of_eternity", 616) { }
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const
|
||||
{
|
||||
@@ -41,9 +41,11 @@ public:
|
||||
portalTriggers.clear();
|
||||
|
||||
malygosGUID = 0;
|
||||
irisGUID = 0;
|
||||
lastPortalGUID = 0;
|
||||
platformGUID = 0;
|
||||
exitPortalGUID = 0;
|
||||
alexstraszaBunnyGUID = 0;
|
||||
};
|
||||
|
||||
bool SetBossState(uint32 type, EncounterState state)
|
||||
@@ -65,31 +67,18 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
SpawnGameObject(GO_FOCUSING_IRIS, focusingIrisPosition);
|
||||
SpawnGameObject(GO_EXIT_PORTAL, exitPortalPosition);
|
||||
|
||||
if (GameObject* platform = instance->GetGameObject(platformGUID))
|
||||
platform->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED);
|
||||
}
|
||||
else if (state == DONE)
|
||||
{
|
||||
if (Creature* malygos = instance->GetCreature(malygosGUID))
|
||||
malygos->SummonCreature(NPC_ALEXSTRASZA, 829.0679f, 1244.77f, 279.7453f, 2.32f);
|
||||
|
||||
SpawnGameObject(GO_EXIT_PORTAL, exitPortalPosition);
|
||||
|
||||
// we make the platform appear again because at the moment we don't support looting using a vehicle
|
||||
if (GameObject* platform = instance->GetGameObject(platformGUID))
|
||||
platform->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED);
|
||||
|
||||
if (GameObject* chest = instance->GetGameObject(chestGUID))
|
||||
chest->SetRespawnTime(7*DAY);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//TODO: this should be handled in map, maybe add a summon function in map
|
||||
// TO DO: this should be handled in map, maybe add a summon function in map
|
||||
// There is no other way afaik...
|
||||
void SpawnGameObject(uint32 entry, Position& pos)
|
||||
{
|
||||
@@ -112,16 +101,31 @@ public:
|
||||
case GO_NEXUS_RAID_PLATFORM:
|
||||
platformGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_FOCUSING_IRIS:
|
||||
go->GetPosition(&focusingIrisPosition);
|
||||
case GO_FOCUSING_IRIS_10:
|
||||
if (instance->GetDifficulty() == RAID_DIFFICULTY_10MAN_NORMAL)
|
||||
{
|
||||
irisGUID = go->GetGUID();
|
||||
go->GetPosition(&focusingIrisPosition);
|
||||
}
|
||||
break;
|
||||
case GO_FOCUSING_IRIS_25:
|
||||
if (instance->GetDifficulty() == RAID_DIFFICULTY_25MAN_NORMAL)
|
||||
{
|
||||
irisGUID = go->GetGUID();
|
||||
go->GetPosition(&focusingIrisPosition);
|
||||
}
|
||||
break;
|
||||
case GO_EXIT_PORTAL:
|
||||
exitPortalGUID = go->GetGUID();
|
||||
go->GetPosition(&exitPortalPosition);
|
||||
break;
|
||||
case GO_ALEXSTRASZA_S_GIFT:
|
||||
case GO_ALEXSTRASZA_S_GIFT_2:
|
||||
chestGUID = go->GetGUID();
|
||||
case GO_HEART_OF_MAGIC_10:
|
||||
if (instance->GetDifficulty() == RAID_DIFFICULTY_10MAN_NORMAL)
|
||||
heartOfMagicGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_HEART_OF_MAGIC_25:
|
||||
if (instance->GetDifficulty() == RAID_DIFFICULTY_25MAN_NORMAL)
|
||||
heartOfMagicGUID = go->GetGUID();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -139,18 +143,27 @@ public:
|
||||
case NPC_PORTAL_TRIGGER:
|
||||
portalTriggers.push_back(creature->GetGUID());
|
||||
break;
|
||||
case NPC_ALEXSTRASZA_BUNNY:
|
||||
alexstraszaBunnyGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_ALEXSTRASZAS_GIFT:
|
||||
giftBoxBunnyGUID = creature->GetGUID();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ProcessEvent(WorldObject* obj, uint32 eventId)
|
||||
void ProcessEvent(WorldObject* /*obj*/, uint32 eventId)
|
||||
{
|
||||
if (eventId == EVENT_FOCUSING_IRIS)
|
||||
{
|
||||
if (GameObject* go = obj->ToGameObject())
|
||||
go->Delete(); // this is not the best way.
|
||||
if (Creature* alexstraszaBunny = instance->GetCreature(alexstraszaBunnyGUID))
|
||||
{
|
||||
alexstraszaBunny->CastSpell(alexstraszaBunny, SPELL_IRIS_OPENED);
|
||||
instance->GetGameObject(irisGUID)->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
}
|
||||
|
||||
if (Creature* malygos = instance->GetCreature(malygosGUID))
|
||||
malygos->GetMotionMaster()->MovePoint(4, 770.10f, 1275.33f, 267.23f); // MOVE_INIT_PHASE_ONE
|
||||
malygos->AI()->DoAction(0); // ACTION_LAND_ENCOUNTER_START
|
||||
|
||||
if (GameObject* exitPortal = instance->GetGameObject(exitPortalGUID))
|
||||
exitPortal->Delete();
|
||||
@@ -194,7 +207,7 @@ public:
|
||||
|
||||
void PowerSparksHandling()
|
||||
{
|
||||
bool next = (lastPortalGUID == portalTriggers.back() || !lastPortalGUID ? true : false);
|
||||
bool next = (lastPortalGUID == portalTriggers.back() || !lastPortalGUID ? true : false);
|
||||
|
||||
for (std::list<uint64>::const_iterator itr_trigger = portalTriggers.begin(); itr_trigger != portalTriggers.end(); ++itr_trigger)
|
||||
{
|
||||
@@ -223,6 +236,9 @@ public:
|
||||
case DATA_POWER_SPARKS_HANDLING:
|
||||
PowerSparksHandling();
|
||||
break;
|
||||
case DATA_RESPAWN_IRIS:
|
||||
SpawnGameObject(instance->GetDifficulty() == RAID_DIFFICULTY_10MAN_NORMAL ? GO_FOCUSING_IRIS_10 : GO_FOCUSING_IRIS_25, focusingIrisPosition);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -236,6 +252,14 @@ public:
|
||||
return malygosGUID;
|
||||
case DATA_PLATFORM:
|
||||
return platformGUID;
|
||||
case DATA_ALEXSTRASZA_BUNNY_GUID:
|
||||
return alexstraszaBunnyGUID;
|
||||
case DATA_HEART_OF_MAGIC_GUID:
|
||||
return heartOfMagicGUID;
|
||||
case DATA_FOCUSING_IRIS_GUID:
|
||||
return irisGUID;
|
||||
case DATA_GIFT_BOX_BUNNY_GUID:
|
||||
return giftBoxBunnyGUID;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -287,10 +311,13 @@ public:
|
||||
std::list<uint64> vortexTriggers;
|
||||
std::list<uint64> portalTriggers;
|
||||
uint64 malygosGUID;
|
||||
uint64 irisGUID;
|
||||
uint64 lastPortalGUID;
|
||||
uint64 platformGUID;
|
||||
uint64 exitPortalGUID;
|
||||
uint64 chestGUID;
|
||||
uint64 heartOfMagicGUID;
|
||||
uint64 alexstraszaBunnyGUID;
|
||||
uint64 giftBoxBunnyGUID;
|
||||
Position focusingIrisPosition;
|
||||
Position exitPortalPosition;
|
||||
};
|
||||
|
||||
@@ -170,7 +170,7 @@ enum LocaleConstant
|
||||
};
|
||||
|
||||
const uint8 TOTAL_LOCALES = 9;
|
||||
const LocaleConstant DEFAULT_LOCALE = LOCALE_enUS;
|
||||
#define DEFAULT_LOCALE LOCALE_enUS
|
||||
|
||||
#define MAX_LOCALES 8
|
||||
#define MAX_ACCOUNT_TUTORIAL_VALUES 8
|
||||
|
||||
Reference in New Issue
Block a user