mirror of
https://github.com/ZhengPeiRu21/mod-individual-progression
synced 2025-11-29 23:44:51 +08:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c6e4560c4b | ||
|
|
e7a8b533b5 | ||
|
|
0bc5148e1c | ||
|
|
137e0660ab | ||
|
|
410d3cd8e8 | ||
|
|
8fc0986dc9 | ||
|
|
c184767562 | ||
|
|
b0d7a07926 | ||
|
|
9197f007f9 | ||
|
|
4ff8d369b3 | ||
|
|
b61a921c7b | ||
|
|
1fd631baab | ||
|
|
c90613d4be | ||
|
|
63add43ec2 | ||
|
|
1cf462d6ee |
10
README.md
10
README.md
@@ -4,13 +4,13 @@
|
||||
|
||||
This module is meant to simulate "progress through expansions and expansion tiers" for individual players. Players must complete each tier in order to access content for the next tier.
|
||||
|
||||
Each tier is designed to simulate experience of being within that tier and expansion, within reasonable of the WotLK client. This means Vanilla content is like Vanilla WoW, and so on.
|
||||
Each tier is designed to simulate the experience of being within that tier and expansion, within the limitations of the WotLK client. This means Vanilla content is like Vanilla WoW, and so on.
|
||||
|
||||
The goal of the module is to focus on journey of the player. All catch-up mechanisms have been removed. There is no goal of defeat end-game or find "fresh" server, because each new character is a fresh server.
|
||||
The goal of the module is to focus on journey of the player. All catch-up mechanisms have been removed. There is no goal to rush to end-game or find a "fresh" server, because each new character is a fresh experience.
|
||||
|
||||
Note that this module either requires many players working together on a server for each tier, or adjustments for smaller raid size to allow individual groups to progress. Please see companion modules auto-balance and Small Server Tweaks for some adjustments that improve this process on a less popular server.
|
||||
Note that this module either requires many players working together on a server for each tier, or adjustments for smaller raid size to allow individual groups to progress. Please see the auto-balance module and some of the built-in config options for some adjustments that improve this process on a less popular server.
|
||||
|
||||
For content that is added in later expansion that is provided for use in lower-level content and is not "catch-up" content, I have decided to remain. This includes Draenei and Blood Elf starting zone, Inscription and Jewelcrafting skills, new quests and hubs added to Vanilla world in TBC, and so on. I feel this content does not negative impact the player journey like "catch-up" content.
|
||||
Lower-level content added in later expansions that is not "catch-up" content is not removed. This includes Draenei and Blood Elf starting zones, Inscription and Jewelcrafting skills, new quests and hubs added to the Vanilla world in TBC, and so on. I feel this content does not negatively impact the player journey like "catch-up" content.
|
||||
|
||||
## Some Included Features
|
||||
* Power level adjustment and health in Vanilla and TBC content to simulate Vanilla world difficulty
|
||||
@@ -25,7 +25,7 @@ Options are provided to allow changes to experience based on preference. Please
|
||||
Please see [How to Install](https://github.com/ZhengPeiRu21/mod-individual-progression/wiki/How-to-Install)
|
||||
|
||||
## Please Note!
|
||||
This module uses Player Settings to save individual character progress. Please ensure that EnablePlayerSettings is set to 1 in worldserver.conf or progress will not be saved!
|
||||
This module uses Player Settings to save individual character progress. *Please ensure that EnablePlayerSettings is set to 1 in worldserver.conf or progress will not be saved!* Also, for item changes to take effect, please ensure *DBC.EnforceItemAttributes is set to 0*! This will allow the module to override item stats with their correct Vanilla stats.
|
||||
|
||||
### Optional Data Files
|
||||
Some changes for Vanilla and TBC content require DBC modification. The .mpq file for the client and .dbc files for server can be found in the "optional" directory. These changes include Vanilla reagents such as Flint and Steel for campfires, Level 60 enchanting using Vanilla and not TBC ingredient, professional leveling adjustments, etc. These is all optional and the module will work without the patch, but these recipes will remain WotLK version.
|
||||
|
||||
@@ -1,63 +1,66 @@
|
||||
/* The stats for low level creatures were reduced to simplify the low level experience. This reverts them to original Vanilla stats */
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 0.3523, `attackpower` = 24 WHERE `level` = 1 AND `class` = 1;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 0.6826, `attackpower` = 26 WHERE `level` = 2 AND `class` = 1;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 1.195, `attackpower` = 28 WHERE `level` = 3 AND `class` = 1;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 1.887, `attackpower` = 30 WHERE `level` = 4 AND `class` = 1;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 2.437, `attackpower` = 32 WHERE `level` = 5 AND `class` = 1;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 3.512, `attackpower` = 34 WHERE `level` = 6 AND `class` = 1;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 4.15, `attackpower` = 36 WHERE `level` = 7 AND `class` = 1;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 4.342, `attackpower` = 38 WHERE `level` = 8 AND `class` = 1;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 4.779, `attackpower` = 40 WHERE `level` = 9 AND `class` = 1;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 5.075, `attackpower` = 42 WHERE `level` = 10 AND `class` = 1;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 5.442, `attackpower` = 44 WHERE `level` = 11 AND `class` = 1;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 5.98, `attackpower` = 46 WHERE `level` = 12 AND `class` = 1;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 6.194, `attackpower` = 48 WHERE `level` = 13 AND `class` = 1;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 0.582, `attackpower` = 22 WHERE `level` = 1 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 0.6805, `attackpower` = 24 WHERE `level` = 2 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 1.407, `attackpower` = 26 WHERE `level` = 3 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 2.038, `attackpower` = 28 WHERE `level` = 4 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 2.913, `attackpower` = 28 WHERE `level` = 5 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 3.925, `attackpower` = 30 WHERE `level` = 6 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 4.364, `attackpower` = 32 WHERE `level` = 7 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 4.402, `attackpower` = 34 WHERE `level` = 8 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 4.793, `attackpower` = 36 WHERE `level` = 9 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 5.017, `attackpower` = 38 WHERE `level` = 10 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 5.241, `attackpower` = 40 WHERE `level` = 11 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 5.685, `attackpower` = 42 WHERE `level` = 12 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 5.833, `attackpower` = 44 WHERE `level` = 13 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 9.932, `attackpower` = 72 WHERE `level` = 22 AND `class` = 2;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 0.2226, `attackpower` = 10 WHERE `level` = 1 AND `class` = 8;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 0.3556, `attackpower` = 11 WHERE `level` = 2 AND `class` = 8;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 0.7131, `attackpower` = 13 WHERE `level` = 5 AND `class` = 8;
|
||||
|
||||
UPDATE `creature_classlevelstats` SET `damage_base` = 1.119, `attackpower` = 14 WHERE `level` = 6 AND `class` = 8;
|
||||
|
||||
/* The stats for low level creatures are inconsistent with Vmangos, but damage values do actually appear correct.
|
||||
The changes for this file will change creature stats to Vmangos values, resulting in stronger creatures at lower levels
|
||||
than originally intended. It is disabled by default, but feel free to use it if you would like additional challenge.
|
||||
*/
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 0.3523, `attackpower` = 24 WHERE `level` = 1 AND `class` = 1;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 0.6826, `attackpower` = 26 WHERE `level` = 2 AND `class` = 1;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 1.195, `attackpower` = 28 WHERE `level` = 3 AND `class` = 1;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 1.887, `attackpower` = 30 WHERE `level` = 4 AND `class` = 1;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 2.437, `attackpower` = 32 WHERE `level` = 5 AND `class` = 1;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 3.512, `attackpower` = 34 WHERE `level` = 6 AND `class` = 1;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 4.15, `attackpower` = 36 WHERE `level` = 7 AND `class` = 1;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 4.342, `attackpower` = 38 WHERE `level` = 8 AND `class` = 1;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 4.779, `attackpower` = 40 WHERE `level` = 9 AND `class` = 1;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 5.075, `attackpower` = 42 WHERE `level` = 10 AND `class` = 1;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 5.442, `attackpower` = 44 WHERE `level` = 11 AND `class` = 1;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 5.98, `attackpower` = 46 WHERE `level` = 12 AND `class` = 1;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 6.194, `attackpower` = 48 WHERE `level` = 13 AND `class` = 1;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 0.582, `attackpower` = 22 WHERE `level` = 1 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 0.6805, `attackpower` = 24 WHERE `level` = 2 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 1.407, `attackpower` = 26 WHERE `level` = 3 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 2.038, `attackpower` = 28 WHERE `level` = 4 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 2.913, `attackpower` = 28 WHERE `level` = 5 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 3.925, `attackpower` = 30 WHERE `level` = 6 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 4.364, `attackpower` = 32 WHERE `level` = 7 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 4.402, `attackpower` = 34 WHERE `level` = 8 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 4.793, `attackpower` = 36 WHERE `level` = 9 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 5.017, `attackpower` = 38 WHERE `level` = 10 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 5.241, `attackpower` = 40 WHERE `level` = 11 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 5.685, `attackpower` = 42 WHERE `level` = 12 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 5.833, `attackpower` = 44 WHERE `level` = 13 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 9.932, `attackpower` = 72 WHERE `level` = 22 AND `class` = 2;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 0.2226, `attackpower` = 10 WHERE `level` = 1 AND `class` = 8;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 0.3556, `attackpower` = 11 WHERE `level` = 2 AND `class` = 8;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 0.7131, `attackpower` = 13 WHERE `level` = 5 AND `class` = 8;
|
||||
#
|
||||
# UPDATE `creature_classlevelstats` SET `damage_base` = 1.119, `attackpower` = 14 WHERE `level` = 6 AND `class` = 8;
|
||||
#
|
||||
|
||||
@@ -16,6 +16,9 @@ DELETE FROM `creature_questender` WHERE `id`=22421 AND `quest`=13431;
|
||||
DELETE FROM `creature_questender` WHERE `id`=22421 AND `quest`=10901;
|
||||
INSERT INTO `creature_questender` (`id`, `quest`) VALUES (22421, 10901);
|
||||
|
||||
-- Adds The Mark of Vashj spell to The Cudgel of Kar'desh (cosmetic)
|
||||
UPDATE `quest_template` SET `RewardSpell` = 39145 WHERE (`ID` = 10901);
|
||||
|
||||
DELETE FROM `creature_queststarter` WHERE `id`=22421 AND `quest`=13431;
|
||||
DELETE FROM `creature_queststarter` WHERE `id`=22421 AND `quest`=10901;
|
||||
INSERT INTO `creature_queststarter` (`id`, `quest`) VALUES (22421, 10901);
|
||||
|
||||
2
sql/world/base/dungeon_karazhan.sql
Normal file
2
sql/world/base/dungeon_karazhan.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
# Restore Enchanting formula drops to their pre-3.1 rates
|
||||
UPDATE `creature_loot_template` SET `Chance` = 5 WHERE `Item` IN (22559, 22561, 22545, 22560);
|
||||
File diff suppressed because one or more lines are too long
@@ -5855,3 +5855,95 @@ UPDATE item_template SET RequiredLevel = 40 WHERE entry=39476;
|
||||
|
||||
/* Fresh Dwarven Brewfest Hops */
|
||||
UPDATE item_template SET RequiredLevel = 40 WHERE entry=39477;
|
||||
|
||||
-- Set World Boss loot to BoP (changed to BoE in patch 2.4)
|
||||
UPDATE `item_template` SET `bonding`=1 WHERE `entry` IN (
|
||||
30732, -- Exodar Life-Staff
|
||||
30733, -- Hope Ender
|
||||
30734, -- Leggings of the Seventh Circle
|
||||
30735, -- Ancient Spellcloak of the Highborne
|
||||
30736, -- Ring of Flowing Light
|
||||
30737, -- Gold-Leaf Wildboots
|
||||
30738, -- Ring of Reciprocity
|
||||
30739, -- Scaled Greaves of the Marksman
|
||||
30740, -- Ripfiend Shoulderplates
|
||||
30741, -- Topaz-Studded Battlegrips
|
||||
|
||||
30722, -- Ethereum Nexus-Reaver
|
||||
30723, -- Talon of the Tempest
|
||||
30724, -- Barrel-Blade Longrifle
|
||||
30725, -- Anger-Spark Gloves
|
||||
30726, -- Archaic Charm of Presence
|
||||
30727, -- Gilded Trousers of Benediction
|
||||
30728, -- Fathom-Helm of the Deeps
|
||||
30729, -- Black-Iron Battlecloak
|
||||
30730, -- Terrorweave Tunic
|
||||
30731 -- Faceguard of the Endless Watch
|
||||
);
|
||||
|
||||
-- Set TBC gems to Unique-Equipped and BoP (changed in 2.4)
|
||||
UPDATE `item_template` SET `Flags`=`Flags`|524288, `bonding`=1 WHERE `entry` IN (
|
||||
-- Honor Gems
|
||||
28118, -- Runed Ornate Ruby
|
||||
28119, -- Smooth Ornate Dawnstone
|
||||
28120, -- Gleaming Ornate Dawnstone
|
||||
28123, -- Potent Ornate Topaz
|
||||
28362, -- Bold Ornate Ruby
|
||||
28363, -- Inscribed Ornate Topaz
|
||||
|
||||
-- Arena Gems
|
||||
38545, -- Bold Ornate Ruby
|
||||
38546, -- Gleaming Ornate Dawnstone
|
||||
38547, -- Inscribed Ornate Topaz
|
||||
38548, -- Potent Ornate Topaz
|
||||
38549, -- Runed Ornate Ruby
|
||||
38550, -- Smooth Ornate Dawnstone
|
||||
|
||||
-- Heroic Dungeon Epic Gems
|
||||
30587, -- Champion's Fire Opal
|
||||
30582, -- Deadly Fire Opal
|
||||
30584, -- Inscribed Fire Opal
|
||||
30591, -- Lucent Fire Opal
|
||||
30585, -- Polished Fire Opal
|
||||
30588, -- Potent Fire Opal (1)
|
||||
30593, -- Potent Fire Opal (2)
|
||||
30547, -- Reckless Fire Opal (1)
|
||||
30551, -- Reckless Fire Opal (2)
|
||||
30604, -- Resplendent Fire Opal
|
||||
30607, -- Splendid Fire Opal
|
||||
30554, -- Stalwart Fire Opal (1)
|
||||
30558, -- Stalwart Fire Opal (2)
|
||||
30581, -- Willful Fire Opal
|
||||
|
||||
30548, -- Jagged Chrysoprase (1)
|
||||
30565, -- Jagged Chrysoprase (2)
|
||||
30602, -- Jagged Chrysoprase (3)
|
||||
30606, -- Lightning Chrysoprase
|
||||
30550, -- Misty Chrysoprase (1)
|
||||
30560, -- Misty Chrysoprase (2)
|
||||
30575, -- Nimble Chrysoprase (1)
|
||||
30605, -- Nimble Chrysoprase (2)
|
||||
30608, -- Radiant Chrysoprase
|
||||
30563, -- Regal Chrysoprase (1)
|
||||
30590, -- Regal Chrysoprase (2)
|
||||
30594, -- Regal Chrysoprase (3)
|
||||
30592, -- Steady Chrysoprase (1)
|
||||
30601, -- Steady Chrysoprase (2)
|
||||
|
||||
30566, -- Defender's Tanzanite
|
||||
30559, -- Etched Tanzanite
|
||||
30553, -- Glinting Tanzanite (1)
|
||||
30556, -- Glinting Tanzanite (2)
|
||||
30573, -- Mysterious Tanzanite
|
||||
30572, -- Purified Tanzanite (1)
|
||||
30586, -- Purified Tanzanite (2)
|
||||
30589, -- Purified Tanzanite (3)
|
||||
30600, -- Purified Tanzanite (4)
|
||||
30603, -- Purified Tanzanite (5)
|
||||
30549, -- Shifting Tanzanite
|
||||
30546, -- Sovereign Tanzanite
|
||||
30552, -- Timeless Tanzanite (1)
|
||||
30555, -- Timeless Tanzanite (2)
|
||||
30583, -- Timeless Tanzanite (3)
|
||||
30564 -- Veiled Tanzanite
|
||||
);
|
||||
@@ -2344,9 +2344,6 @@ UPDATE `creature_template` SET `speed_walk` = 1.0, `detection_range` = 18.0 WHER
|
||||
/* Moorah Stormhoof */
|
||||
UPDATE `creature_template` SET `speed_walk` = 1.0, `detection_range` = 18.0 WHERE `entry`=1409;
|
||||
|
||||
/* Firewing Bloodwarder */
|
||||
UPDATE `creature_template` SET `subname` = 'Priest Trainer', `modelid1` = 4718, `minlevel` = 1, `maxlevel` = 1, `detection_range` = 18.0, `HealthModifier` = 1.25, `unit_class` = 1 WHERE `entry`=1410;
|
||||
|
||||
/* Ian Strom */
|
||||
UPDATE `creature_template` SET `DamageModifier` = 0.95, `ArmorModifier` = 0.8 WHERE `entry`=1411;
|
||||
|
||||
@@ -9862,9 +9859,6 @@ UPDATE `creature_template` SET `modelid1` = 4494, `DamageModifier` = 0.95 WHERE
|
||||
/* Gnarl Leafbrother */
|
||||
UPDATE `creature_template` SET `DamageModifier` = 3.25, `RangeAttackTime` = 1411 WHERE `entry`=5354;
|
||||
|
||||
/* Firewing Defender */
|
||||
UPDATE `creature_template` SET `modelid1` = 8471, `minlevel` = 1, `maxlevel` = 1, `detection_range` = 18.0, `HealthModifier` = 1.3 WHERE `entry`=5355;
|
||||
|
||||
/* Land Walker */
|
||||
UPDATE `creature_template` SET `speed_walk` = 0.777776, `DamageModifier` = 3.25 WHERE `entry`=5357;
|
||||
|
||||
|
||||
@@ -1015,8 +1015,8 @@ UPDATE `quest_template` SET `LogDescription` = "Recover 20 Plagued Flesh Samples
|
||||
|
||||
|
||||
/* Clam Bait */
|
||||
UPDATE `quest_template` SET `LogDescription` = "Find 110 pieces of Soft-shelled Clam Meat and bring it back to Mai'Lahii at Shadowprey Village." WHERE `ID` = 6142;
|
||||
UPDATE `quest_template` SET `QuestDescription` = "You have the look of a fisherman, $c! I love to fish - been fishing all my life. The best bait to use is soft-shelled clam meat; the fish just can't resist, you know what I mean?$B$BUp north you will find a wrecked ship off the coast. Soft-shelled clams are littered throughout the area. If you bring me back 110 pieces of soft-shelled clam meat, I will give you something in return." WHERE `ID` = 6142;
|
||||
UPDATE `quest_template` SET `LogDescription` = "Find 10 pieces of Soft-shelled Clam Meat and bring it back to Mai'Lahii at Shadowprey Village." WHERE `ID` = 6142;
|
||||
UPDATE `quest_template` SET `QuestDescription` = "You have the look of a fisherman, $c! I love to fish - been fishing all my life. The best bait to use is soft-shelled clam meat; the fish just can't resist, you know what I mean?$B$BUp north you will find a wrecked ship off the coast. Soft-shelled clams are littered throughout the area. If you bring me back 10 pieces of soft-shelled clam meat, I will give you something in return." WHERE `ID` = 6142;
|
||||
|
||||
|
||||
/* Twisted Evils */
|
||||
|
||||
@@ -5,3 +5,5 @@ INSERT INTO `creature_questender` (`id`, `quest`) VALUES (15283, 8344);
|
||||
-- Windows to the Source (Warlock)
|
||||
DELETE FROM `creature_queststarter` WHERE `id`=15283 AND `quest`=8344;
|
||||
INSERT INTO `creature_queststarter` (`id`, `quest`) VALUES (15283, 8344);
|
||||
INSERT INTO creature_loot_template (Entry, Item, Reference, Chance, QuestRequired, LootMode, GroupId, MinCount, MaxCount, Comment) VALUES
|
||||
(15298, 20935, 0, 80, 1, 1, 0, 1, 1, 'Tainted Arcane Wraith - Tainted Wraith Essence');
|
||||
|
||||
42
sql/world/base/zone_silvermoon.sql
Normal file
42
sql/world/base/zone_silvermoon.sql
Normal file
@@ -0,0 +1,42 @@
|
||||
/* Restore Blood Knight quests to pre-2.4 state */
|
||||
SET @MURU_GUID := 352043;
|
||||
DELETE FROM `creature` WHERE `guid` = @MURU_GUID;
|
||||
INSERT INTO `creature` (`guid`, `id1`, `map`, `position_x`, `position_y`, `position_z`, `orientation`) VALUES
|
||||
(@MURU_GUID, 17544, 530, 9850.99, -7522.666, -9.157837, 1.537163);
|
||||
|
||||
UPDATE `creature_template` SET `rank` = 3, `type_flags` = 4 WHERE `entry` = 17544;
|
||||
|
||||
UPDATE `quest_template` SET `LogDescription` = "Use the Shimmering Vessel on M'uru to fill it and return to Knight-Lord Bloodvalor in Silvermoon City.", `QuestDescription` = "Take this vessel, $N. Invoking its magic will allow you to take this creature's power and claim it for yourself. With it, you will be able to restore your fallen comrade to life.$B$BThere are those who would say what we're doing is wrong, but much of what has befallen us is also wrong. Would they have us throw away such a gift?$B$BThey do not complain when our power is used to prevent the further destruction of Silvermoon. No, they object when they are safe from harm and indulging their magic addictions." WHERE `ID` = 9684;
|
||||
|
||||
/* TODO: Spell tooltip for Shimmering Vessel needs to be updated, but this requires a client-side edit */
|
||||
UPDATE `quest_template` SET `QuestDescription` = "Do not think me unduly harsh, $N. Stillblade knew well what he was being sent to do. He understood and accepted his duty and is an example for all aspiring Blood Knights.$B$BMy words are no eulogy, $N. Stillblade's service to us is far from over and you will be the instrument of his resurrection.$B$BYour education in the use of the Light has focused on mere charms and parlor tricks thus far. The time has come for you to learn of the nature and breadth of our power. Seek out Magister Astalor Bloodsworn." WHERE `ID` = 9681;
|
||||
|
||||
UPDATE `creature_addon` SET `bytes1` = 0, `bytes2` = 0, `emote` = 0 WHERE `guid` IN (96978, 96979, 96980, 96981, 96982);
|
||||
|
||||
UPDATE `creature` SET `position_x` = 9866.592, `position_y` = -7522.429688, `position_z` = -0.490965, `orientation` = 3.187847 WHERE `guid` = 96982;
|
||||
UPDATE `creature` SET `position_x` = 9860.192383, `position_y` = -7504.206055, `position_z` = -4.002384, `orientation` = 4.269403 WHERE `guid` = 96980;
|
||||
UPDATE `creature` SET `position_x` = 9850.7529, `position_y` = -7537.9208, `position_z` = -0.49, `orientation` = 1.548791 WHERE `guid` = 96981;
|
||||
UPDATE `creature` SET `position_x` = 9835.078, `position_y` = -7522.6352, `position_z` = -0.49134, `orientation` = 0.001539 WHERE `guid` = 96979;
|
||||
UPDATE `creature` SET `position_x` = 9841.158, `position_y` = -7504.5, `position_z` = -4.007, `orientation` = 5.3532 WHERE `guid` = 96978;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-96982, -96980, -96981, -96979,-96978) AND `source_type`=0 AND `id`=0 AND `link`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(-96982, 0, 0, 0, 1, 0, 100, 1, 500, 500, 500, 500, 0, 11, 31324, 0, 0, 0, 0, 0, 10, 352043, 17544, 0, 0, 0, 0, 0, 0, 'Blood Elf Magister - Out of Combat - Cast \'Drain Naaru Channel\' (No Repeat)'),
|
||||
(-96980, 0, 0, 0, 1, 0, 100, 1, 500, 500, 500, 500, 0, 11, 31324, 0, 0, 0, 0, 0, 10, 352043, 17544, 0, 0, 0, 0, 0, 0, 'Blood Elf Magister - Out of Combat - Cast \'Drain Naaru Channel\' (No Repeat)'),
|
||||
(-96981, 0, 0, 0, 1, 0, 100, 1, 500, 500, 500, 500, 0, 11, 31324, 0, 0, 0, 0, 0, 10, 352043, 17544, 0, 0, 0, 0, 0, 0, 'Blood Elf Magister - Out of Combat - Cast \'Drain Naaru Channel\' (No Repeat)'),
|
||||
(-96979, 0, 0, 0, 1, 0, 100, 1, 500, 500, 500, 500, 0, 11, 31324, 0, 0, 0, 0, 0, 10, 352043, 17544, 0, 0, 0, 0, 0, 0, 'Blood Elf Magister - Out of Combat - Cast \'Drain Naaru Channel\' (No Repeat)'),
|
||||
(-96978, 0, 0, 0, 1, 0, 100, 1, 500, 500, 500, 500, 0, 11, 31324, 0, 0, 0, 0, 0, 10, 352043, 17544, 0, 0, 0, 0, 0, 0, 'Blood Elf Magister - Out of Combat - Cast \'Drain Naaru Channel\' (No Repeat)');
|
||||
|
||||
DELETE FROM `broadcast_text` WHERE `ID`=14807;
|
||||
INSERT INTO `broadcast_text` (`ID`, `LanguageID`, `MaleText`, `FemaleText`, `EmoteID1`, `EmoteID2`, `EmoteID3`, `EmoteDelay1`, `EmoteDelay2`, `EmoteDelay3`, `SoundEntriesId`, `EmotesID`, `Flags`, `VerifiedBuild`) VALUES
|
||||
(14807, 1, 'Glory to the Sun King!', 'Glory to the Sun King!', 0, 0, 0, 0, 0, 0, 0, 0, 1, 18019);
|
||||
|
||||
DELETE FROM `creature_text` WHERE `CreatureID`=16222 AND `GroupID`=0 AND `ID`=0;
|
||||
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
|
||||
(16222, 0, 0, 'Glory to the Sun King!', 12, 1, 100, 0, 0, 0, 14807, 0, 'Silvermoon City Guardian');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=31324;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
|
||||
(13,1,31324,0,0,31,0,3,17544,0,0,0,0,"","Naaru Drain Effect Condition");
|
||||
|
||||
UPDATE `conditions` SET `ConditionValue2` = 17544 WHERE `SourceTypeOrReferenceId` = 13 AND `SourceEntry` = 45351;
|
||||
@@ -143,6 +143,12 @@ void IndividualProgression::AdjustStats(Player* player, float computedAdjustment
|
||||
player->CastCustomSpell(player, ABSORB_SPELL, &bp1, nullptr, nullptr, false);
|
||||
}
|
||||
|
||||
float IndividualProgression::ComputeVanillaAdjustment(Player *player, float configAdjustmentValue)
|
||||
{
|
||||
float adjustmentApplyPercent = (player->getLevel() - 10.0f) / 50.0f;
|
||||
return player->getLevel() > 10 ? 1.0f - ((1.0f - configAdjustmentValue) * adjustmentApplyPercent) : 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the highest progression level achieved by an account
|
||||
* Note that this method makes a direct, non-sync DB call and should be used sparingly
|
||||
|
||||
@@ -44,6 +44,7 @@ enum BuffSpells
|
||||
ABSORB_SPELL = 89505,
|
||||
RANGED_HASTE_SPELL = 89507,
|
||||
SPELL_RUNE_TAP = 48982,
|
||||
SPELL_LIFE_STEAL = 20004,
|
||||
IPP_PHASE = 89509
|
||||
};
|
||||
|
||||
@@ -161,6 +162,7 @@ public:
|
||||
void checkKillProgression(Player* player, Creature* killed);
|
||||
static void LoadCustomProgressionEntries(const std::string& customProgressionString);
|
||||
static void AdjustStats(Player* player, float computedAdjustment, float computedHealingAdjustment);
|
||||
static float ComputeVanillaAdjustment(Player* player, float configAdjustmentValue);
|
||||
static uint8 GetAccountProgression(uint32 accountId);
|
||||
};
|
||||
|
||||
|
||||
@@ -130,7 +130,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void OnGiveXP(Player* player, uint32& amount, Unit* /*victim*/) override
|
||||
void OnGiveXP(Player* player, uint32& amount, Unit* /*victim*/, uint8 xpSource) override
|
||||
{
|
||||
if (!sIndividualProgression->enabled)
|
||||
{
|
||||
@@ -139,11 +139,19 @@ public:
|
||||
// Player is still in Vanilla content - do not give XP past level 60
|
||||
if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_NAXX40) && player->getLevel() >= 60)
|
||||
{
|
||||
// Still award XP to pets - they won't be able to pass the player's level
|
||||
Pet* pet = player->GetPet();
|
||||
if (pet && xpSource == XPSOURCE_KILL)
|
||||
pet->GivePetXP(player->GetGroup() ? amount / 2 : amount);
|
||||
amount = 0;
|
||||
}
|
||||
// Player is in TBC content - do not give XP past level 70
|
||||
else if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5) && player->getLevel() >= 70)
|
||||
{
|
||||
// Still award XP to pets - they won't be able to pass the player's level
|
||||
Pet* pet = player->GetPet();
|
||||
if (pet && xpSource == XPSOURCE_KILL)
|
||||
pet->GivePetXP(player->GetGroup() ? amount / 2 : amount);
|
||||
amount = 0;
|
||||
}
|
||||
}
|
||||
@@ -475,7 +483,13 @@ public:
|
||||
void ModifyHealReceived(Unit* /*target*/, Unit *healer, uint32 &heal, SpellInfo const *spellInfo) override
|
||||
{
|
||||
// Skip potions, bandages, percentage based heals like Rune Tap, etc.
|
||||
if (!sIndividualProgression->enabled || spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) || spellInfo->Mechanic == MECHANIC_BANDAGE || spellInfo->Id == SPELL_RUNE_TAP)
|
||||
if (!sIndividualProgression->enabled || spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) || spellInfo->Mechanic == MECHANIC_BANDAGE)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Skip percentage based heals or spells already nerfed by damage reduction
|
||||
if (spellInfo->Id == SPELL_RUNE_TAP || spellInfo->Id == SPELL_LIFE_STEAL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -493,7 +507,7 @@ public:
|
||||
float gearAdjustment = computeTotalGearTuning(player);
|
||||
if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_NAXX40))
|
||||
{
|
||||
heal *= (sIndividualProgression->vanillaHealingAdjustment - gearAdjustment);
|
||||
heal *= (sIndividualProgression->ComputeVanillaAdjustment(player, sIndividualProgression->vanillaHealingAdjustment) - gearAdjustment);
|
||||
}
|
||||
else if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5))
|
||||
{
|
||||
@@ -519,7 +533,7 @@ public:
|
||||
float gearAdjustment = computeTotalGearTuning(player);
|
||||
if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_NAXX40))
|
||||
{
|
||||
damage *= (sIndividualProgression->vanillaPowerAdjustment - gearAdjustment);
|
||||
damage *= (sIndividualProgression->ComputeVanillaAdjustment(player, sIndividualProgression->vanillaPowerAdjustment) - gearAdjustment);
|
||||
}
|
||||
else if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5))
|
||||
{
|
||||
@@ -545,7 +559,7 @@ public:
|
||||
float gearAdjustment = computeTotalGearTuning(player);
|
||||
if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_NAXX40))
|
||||
{
|
||||
damage *= (sIndividualProgression->vanillaPowerAdjustment - gearAdjustment);
|
||||
damage *= (sIndividualProgression->ComputeVanillaAdjustment(player, sIndividualProgression->vanillaPowerAdjustment) - gearAdjustment);
|
||||
}
|
||||
else if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user