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:
Vincent_Michael
2013-02-28 22:14:48 +01:00
30 changed files with 2656 additions and 874 deletions
@@ -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
+14
View File
@@ -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;
}
+12
View File
@@ -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
+73
View File
@@ -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;
+8 -3
View File
@@ -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
+3
View File
@@ -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>
+2
View File
@@ -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
+4
View File
@@ -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.
+4
View File
@@ -35,6 +35,10 @@
# define _stat stat
#endif
#ifdef __CYGWIN__
#define stat64 stat
#endif
namespace G3D {
static FileSystem* common = NULL;
+4
View File
@@ -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];
};
+1 -1
View File
@@ -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
+5 -7
View File
@@ -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 <<--
+1 -1
View File
@@ -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
+5
View File
@@ -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;
/*********************************************************/
+2 -2
View File
@@ -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())
+1 -1
View File
@@ -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*/)
{
+2 -2
View File
@@ -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
+24 -7
View File
@@ -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;
};
+1 -1
View File
@@ -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