mirror of
https://github.com/ZhengPeiRu21/mod-individual-progression
synced 2025-11-29 23:44:51 +08:00
More Naxx40 progress, Vanilla world level adjustments
This commit is contained in:
@@ -2,6 +2,6 @@ UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_tbc' WHERE `entry` IN (16
|
||||
|
||||
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_aq' WHERE `entry` IN (15293,15270,15306,15191,15181,15182,15306,15599,15282,15183,15194,15176,15270,16091,15701,15612,15613,15609,15540,15704,15693,15431,15903,15610,15180, 15499);
|
||||
|
||||
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_wotlk' WHERE `entry` IN (29611);
|
||||
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_wotlk' WHERE `entry` IN (29611, 27616, 27618, 27619, 27620, 27624, 34084);
|
||||
|
||||
UPDATE `gameobject_template` SET `ScriptName` = 'gobject_ipp_tbc' WHERE `entry` IN (195141);
|
||||
File diff suppressed because it is too large
Load Diff
3795
sql/world/base/naxx40_creatures.sql
Normal file
3795
sql/world/base/naxx40_creatures.sql
Normal file
File diff suppressed because it is too large
Load Diff
52
sql/world/base/vanilla_world_level_adjustments.sql
Normal file
52
sql/world/base/vanilla_world_level_adjustments.sql
Normal file
@@ -0,0 +1,52 @@
|
||||
/* To make NPCs added later to the original world maps better fit the Vanilla world, this adjusts their levels to fit Vanilla range */
|
||||
|
||||
/* Reduce the level of BG Emissaries to be the same as Vanilla BG emissaries */
|
||||
UPDATE `creature_template` SET `minlevel` = 55, `maxlevel` = 55 WHERE `entry` IN (30566, 34948, 34950, 34951, 30567, 34949);
|
||||
|
||||
/* Stormwind Harbor guards should be the same level as other guards */
|
||||
UPDATE `creature_template` SET `minlevel` = 45, `maxlevel` = 46 WHERE `entry` IN (29019);
|
||||
UPDATE `creature_template` SET `minlevel` = 45, `maxlevel` = 45 WHERE `entry` IN (29088, 29152);
|
||||
UPDATE `creature_template` SET `minlevel` = 55, `maxlevel` = 55 WHERE `entry` IN (29712, 29016, 29154, 28050, 28051);
|
||||
UPDATE `creature_template` SET `minlevel` = 60, `maxlevel` = 60 WHERE `entry` IN (28048, 29144);
|
||||
UPDATE `creature_template` SET `minlevel` = 58, `maxlevel` = 58 WHERE `entry` IN (28049);
|
||||
|
||||
/* Undercity NPCs */
|
||||
UPDATE `creature_template` SET `minlevel` = 60, `maxlevel` = 60 WHERE `entry` IN (36224, 36225, 36226);
|
||||
|
||||
/* Locksmiths */
|
||||
UPDATE `creature_template` SET `minlevel` = 55, `maxlevel` = 55 WHERE `entry` IN (29725, 29728);
|
||||
|
||||
/* Event vendors */
|
||||
UPDATE `creature_template` SET `minlevel` = 35, `maxlevel` = 35 WHERE `entry` IN (34382, 34383, 34653, 38065, 32798, 32799, 26124,
|
||||
23486, 23710, 26221, 25909, 25925, 25941, 27215,
|
||||
25944, 34382, 34383, 34653, 34654, 38065, );
|
||||
|
||||
UPDATE `creature_template` SET `minlevel` = 37, `maxlevel` = 37 WHERE `entry` IN (25915, 25920);
|
||||
UPDATE `creature_template` SET `minlevel` = 30, `maxlevel` = 37 WHERE `entry` IN (26123, 26124);
|
||||
UPDATE `creature_template` SET `minlevel` = 32, `maxlevel` = 37 WHERE `entry` IN (25975, 25920);
|
||||
|
||||
/* Karazhan Quest NPCs */
|
||||
UPDATE `creature_template` SET `minlevel` = 60, `maxlevel` = 60 WHERE `entry` IN (17613);
|
||||
UPDATE `creature_template` SET `minlevel` = 59, `maxlevel` = 59 WHERE `entry` IN (18253);
|
||||
UPDATE `creature_template` SET `minlevel` = 58, `maxlevel` = 58 WHERE `entry` IN (18255);
|
||||
|
||||
/* Arena NPCs */
|
||||
UPDATE `creature_template` SET `minlevel` = 60, `maxlevel` = 60, `ScriptName`='npc_ipp_tbc' WHERE `entry` IN
|
||||
(19915, 19909, 19911, 26012, 26007, 26075, 26307, 26309, 26760);
|
||||
|
||||
/* PvP Vendors */
|
||||
UPDATE `creature_template` SET `minlevel` = 55, `maxlevel` = 55 WHERE `entry` IN (32834, 34075, 34078, 34081);
|
||||
|
||||
/* Wintergrasp NPCs */
|
||||
UPDATE `creature_template` SET `minlevel` = 60, `maxlevel` = 60, `ScriptName`='npc_ipp_wotlk' WHERE `entry` IN (35611, 35598, 35600);
|
||||
|
||||
/* Battlemasters */
|
||||
UPDATE `creature_template` SET `minlevel` = 60, `maxlevel` = 60 WHERE `entry` IN (34997, 34998, 35007, 34991, 30578, 30579, 30583, 35021, 35024, 35025, 35598, 35600, 35611);
|
||||
UPDATE `creature_template` SET `minlevel` = 59, `maxlevel` = 59 WHERE `entry` IN (19848);
|
||||
UPDATE `creature_template` SET `minlevel` = 51, `maxlevel` = 51 WHERE `entry` IN (20374, 20381, 20386);
|
||||
|
||||
/* New flightmasters */
|
||||
UPDATE `creature_template` SET `minlevel` = 55, `maxlevel` = 55 WHERE `entry` IN (24366, 37888, 29480, 37915);
|
||||
|
||||
/* Alicia */
|
||||
UPDATE `creature_template` SET `minlevel` = 5, `maxlevel` = 5 WHERE `entry` IN (24729);
|
||||
@@ -1,3 +1,44 @@
|
||||
-- Summon Felsteed (Warlock)
|
||||
DELETE FROM `creature_queststarter` WHERE `id`=4563 AND `quest`=4489;
|
||||
INSERT INTO `creature_queststarter` (`id`, `quest`) VALUES (4563, 4489);
|
||||
|
||||
/* Replace orc guards with pre-wrathgate abomination guards */
|
||||
UPDATE `creature` SET `id1`=5624 WHERE `id1`=36213;
|
||||
|
||||
DELETE FROM `gossip_menu_option` WHERE (`MenuID`) IN (2847, 2848, 2849);
|
||||
INSERT INTO `gossip_menu_option` (`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `VerifiedBuild`) VALUES
|
||||
(2847, 0, 0, 'Alchemy', 3460, 1, 1, 2834, 336, 0, 0, NULL, 0, 0),
|
||||
(2847, 1, 0, 'Blacksmithing', 3461, 1, 1, 2835, 337, 0, 0, NULL, 0, 0),
|
||||
(2847, 2, 0, 'Cooking', 3462, 1, 1, 2836, 338, 0, 0, NULL, 0, 0),
|
||||
(2847, 3, 0, 'Enchanting', 3463, 1, 1, 2837, 339, 0, 0, NULL, 0, 0),
|
||||
(2847, 4, 0, 'Engineering', 4976, 1, 1, 2838, 340, 0, 0, NULL, 0, 0),
|
||||
(2847, 5, 0, 'First Aid', 3464, 1, 1, 2839, 341, 0, 0, NULL, 0, 0),
|
||||
(2847, 6, 0, 'Fishing', 3465, 1, 1, 2840, 342, 0, 0, NULL, 0, 0),
|
||||
(2847, 7, 0, 'Herbalism', 3466, 1, 1, 2841, 343, 0, 0, NULL, 0, 0),
|
||||
(2847, 9, 0, 'Leatherworking', 3467, 1, 1, 2842, 345, 0, 0, NULL, 0, 0),
|
||||
(2847, 10, 0, 'Mining', 3468, 1, 1, 2843, 347, 0, 0, NULL, 0, 0),
|
||||
(2847, 11, 0, 'Skinning', 3471, 1, 1, 2844, 346, 0, 0, NULL, 0, 0),
|
||||
(2847, 12, 0, 'Tailoring', 3469, 1, 1, 2845, 348, 0, 0, NULL, 0, 0),
|
||||
(2848, 0, 0, 'Mage', 3448, 1, 1, 2821, 331, 0, 0, NULL, 0, 0),
|
||||
(2848, 2, 0, 'Priest', 3449, 1, 1, 2829, 332, 0, 0, NULL, 0, 0),
|
||||
(2848, 3, 0, 'Rogue', 4885, 1, 1, 2830, 333, 0, 0, NULL, 0, 0),
|
||||
(2848, 4, 0, 'Warlock', 4886, 1, 1, 2832, 334, 0, 0, NULL, 0, 0),
|
||||
(2848, 5, 0, 'Warrior', 2910, 1, 1, 2833, 335, 0, 0, NULL, 0, 0),
|
||||
(2849, 0, 0, 'The bank', 4888, 1, 1, 2822, 319, 0, 0, NULL, 0, 0),
|
||||
(2849, 1, 0, 'The bat handler', 6790, 1, 1, 2823, 321, 0, 0, NULL, 0, 0),
|
||||
(2849, 2, 0, 'The guild master', 3428, 1, 1, 2824, 323, 0, 0, NULL, 0, 0),
|
||||
(2849, 3, 0, 'The inn', 5090, 1, 1, 2825, 324, 0, 0, NULL, 0, 0),
|
||||
(2849, 4, 0, 'The mailbox', 5514, 1, 1, 2826, 326, 0, 0, NULL, 0, 0),
|
||||
(2849, 5, 0, 'The auction house', 5515, 1, 1, 2827, 318, 0, 0, NULL, 0, 0),
|
||||
(2849, 6, 0, 'The zeppelin master', 5518, 1, 1, 2828, 451, 0, 0, NULL, 0, 0),
|
||||
(2849, 7, 0, 'The weapon master', 7253, 1, 1, 3726, 328, 0, 0, NULL, 0, 0),
|
||||
(2849, 8, 0, 'The stable master', 8508, 1, 1, 4906, 327, 0, 0, NULL, 0, 0),
|
||||
(2849, 9, 0, 'The battlemaster', 10359, 1, 1, 6334, 322, 0, 0, NULL, 0, 0),
|
||||
(2849, 10, 0, 'A class trainer', 5338, 1, 1, 2848, 0, 0, 0, NULL, 0, 0),
|
||||
(2849, 11, 0, 'A profession trainer', 6635, 1, 1, 2847, 0, 0, 0, NULL, 0, 0);
|
||||
|
||||
/* Restore Varimathras */
|
||||
UPDATE `creature` SET `id1`=2425 WHERE `id1`=36273;
|
||||
|
||||
/* Wrathgate NPCs - just deleting for now, but maybe can implement a post-Wrathgate world state later */
|
||||
DELETE FROM `creature` WHERE `guid` IN (43466, 79263);
|
||||
|
||||
@@ -137,6 +137,67 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class npc_naxx40_area_trigger : public CreatureScript
|
||||
{
|
||||
private:
|
||||
static bool isAttuned(Player* player)
|
||||
{
|
||||
if (player->GetQuestStatus(NAXX40_ATTUNEMENT_1) == QUEST_STATUS_REWARDED)
|
||||
return true;
|
||||
if (player->GetQuestStatus(NAXX40_ATTUNEMENT_2) == QUEST_STATUS_REWARDED)
|
||||
return true;
|
||||
if (player->GetQuestStatus(NAXX40_ATTUNEMENT_3) == QUEST_STATUS_REWARDED)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public:
|
||||
npc_naxx40_area_trigger() : CreatureScript("npc_naxx40_area_trigger") {}
|
||||
|
||||
struct npc_naxx40_area_triggerAI: public ScriptedAI
|
||||
{
|
||||
npc_naxx40_area_triggerAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
me->SetDisplayId(11686); // Invisible
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
if (who && me->GetDistance2d(who) < 5.0f)
|
||||
{
|
||||
if (Player* player = who->ToPlayer())
|
||||
{
|
||||
if (isAttuned(player))
|
||||
{
|
||||
player->SetRaidDifficulty(RAID_DIFFICULTY_10MAN_HEROIC);
|
||||
player->TeleportTo(533, 3005.68f, -3447.77f, 293.93f, 4.65f);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else if (who && me->GetDistance2d(who) < 20.0f)
|
||||
{
|
||||
if (Player* player = who->ToPlayer())
|
||||
{
|
||||
if (isAttuned(player))
|
||||
{
|
||||
GameObject* door = me->FindNearestGameObject(NAXX_STRATH_GATE, 100.0f);
|
||||
if (door)
|
||||
{
|
||||
door->SetGoState(GO_STATE_ACTIVE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_naxx40_area_triggerAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
class IndividualPlayerProgression_WorldScript : public WorldScript
|
||||
{
|
||||
private:
|
||||
@@ -653,6 +714,7 @@ void AddSC_mod_individual_progression()
|
||||
new npc_ipp_aq();
|
||||
new npc_ipp_tbc();
|
||||
new npc_ipp_wotlk();
|
||||
new npc_naxx40_area_trigger();
|
||||
new gobject_ipp_tbc();
|
||||
new gobject_ipp_wotlk();
|
||||
}
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
#include "Group.h"
|
||||
#include "Pet.h"
|
||||
#include "DBCEnums.h"
|
||||
#include "QuestDef.h"
|
||||
#include "GameObject.h"
|
||||
|
||||
typedef std::unordered_map<uint32, uint32> questXpMapType;
|
||||
questXpMapType questXpMap;
|
||||
@@ -46,7 +48,10 @@ enum BuffSpells
|
||||
|
||||
enum ProgressionQuestIDs
|
||||
{
|
||||
MIGHT_OF_KALIMDOR = 8742
|
||||
MIGHT_OF_KALIMDOR = 8742,
|
||||
NAXX40_ATTUNEMENT_1 = 9121,
|
||||
NAXX40_ATTUNEMENT_2 = 9122,
|
||||
NAXX40_ATTUNEMENT_3 = 9123,
|
||||
};
|
||||
|
||||
enum NaxxGraveyards
|
||||
@@ -108,4 +113,9 @@ enum ProgressionState : uint8
|
||||
PROGRESSION_WOTLK_TIER_5 = 16 // Ruby Sanctum
|
||||
};
|
||||
|
||||
enum ProgressionObjects
|
||||
{
|
||||
NAXX_STRATH_GATE = 176424
|
||||
};
|
||||
|
||||
#endif //AZEROTHCORE_INDIVIDUALPROGRESSION_H
|
||||
|
||||
Reference in New Issue
Block a user