Giter Site home page Giter Site logo

gultask / mod-zone-difficulty Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 55honey/mod-zone-difficulty

0.0 0.0 0.0 573 KB

Support module for mod-progression-system, handles nerfs and debuffs per zone.

License: GNU Affero General Public License v3.0

Shell 0.84% C++ 99.16%

mod-zone-difficulty's Introduction

Zone Difficulty Module

English | Español

What is the purpose of this module?

This module provides a way to nerf or debuff players in order to increase the difficulty of certain dungeons or balance battlegrounds/duels.

How to use this module?

This module reads data from the zone_difficulty_info and zone_difficulty_spelloverrides table. _info serves to apply nerfs/debuffs per map and per phase. For example, you can nerf healing by 90% and absorb-effects by 80% while increasing the melee damage players suffer by 50% and reducing the spell damage players suffer by 30%. That is only inside the Temple of Ahn'Qiraj dungeon (MapId 531) for all phases (0 = Skip PhaseMask check, 6 = phases 2 and 4) with the following query:

INSERT INTO `zone_difficulty_info` (`MapId`, `PhaseMask`, `HealingNerfValue`, `AbsorbNerfValue`, `MeleeDmgBuffValue`, `SpellDmgBuffValue`, `Enabled`, `Comment`) VALUES
(531, 0, '0.10', '0.20', '1.50', '0.70', 1, 'AQ40 Healing 50% / Absorb 50% Nerf / 50% physical & 30% spell damage buff');

The heal-output will be multiplied by the value you input in HealingNerfValue as it follows:

output = output * HealingNerfValue

Using MapId 2147483647 will be used for all targets in duels while they're in the zone hardcoded as DUEL_AREA (default 2402: Forbidding Sea, Wetlands). PhaseMask must be 0 for Duels.

You can also prevent certain spells from being affected at all. See zone_difficulty_spelloverrides.sql for examples.

Changing values

You can edit the zone_difficulty_info_content.sql file to apply changes. They will be applied by the autoupdater the next time you restart your server. Alternatively, you may edit the zone_difficulty_info table in your world database and use the reload config command to reload the values.

Hardmode

How does it work?

For the hardmode, there is an NPC (id 1128001) spawned at the beginning of raids and the daily heroic dungeon, determined by the quest given from Wind Trader Zhareem in Shattrath. (Addition of WotlK heroics outstanding). The leader of the party can chose to activate the hardmode by talking to the NPC inside the heroic dungeon / raid. Single players can not use the hardmode. In Heroic dungeons, the NPC will despawn after 60 seconds. The party needs to decide, if they want to play the hardmode before this happens. The last boss of the heroic dungeon will award one score to every player in the heroic dungeon.

In Raids, it will stay indefinitely. As soon as one raidboss is defeated, the leader can still turn the hardmode off, but no longer on once it is deactivated. Every defeated raidboss grants one score in the respective category.

Config

ModZoneDifficulty.Hardmode.HpModifier = 2.0 determines the default creature hp modifier for hardmode.

Tables

zone_difficulty_instance_saves creates the tables to store the hardmode status and the scores. No action required.

zone_difficulty_creatureoverrides contains overrides for creature hp values. This is used to vary certain creatures health from the default value in the conf file.

zone_difficulty_hardmode_creatures contains gossips and creature positions for the NPCs inside dungeons. Requires spawning additional NPCs, if more heroic dungeons / raids should be added.

In heroic dungeons, the default spawn mask should be 1024. The script will change the NPCs phasemask to 1, if the heroic dungeon is the current daily. In raids, the default spawn mask should be 1.

zone_difficulty_hardmode_loot_objects contains the encounter IDs which should give scores for the hardmode. The encounter IDs are taken from the creature_template table. OverrideGO is reserved for future use. InstanceType refers to the content level, see the top of the file for a list.

zone_difficulty_hardmode_rewards holds the items which can be chosen as a reward for the hardmode. Tho gossips for the reward npc (id 1128002) will automatically expand, depending on the kind and amount of rows in the table. ContentType refers to the content level, ItemType refers to the item category. See the top of the file for a list for both. By adding an enchant id and a slot to the item, a custom enchant can be applied.

Authors

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.