Skip to content

azerothcore/mod-progression-system

Repository files navigation

This is progression system module for AzerothCore!

It allows to load scripts and sql files automatically dependent on level brackets. It means that once you defined in config which level brackets should be present, all c++ scripts from these brackets are loaded and replaced with "normal" scripts in AzerothCore.



CONFIG

Here you can set which level brackets should be loaded. It's a bool configuration where 0 is deactivated and 1 is activated. You can add custom files to Bracket_Custom, they will be executed at the very last, meaning it will load all the previous brackets before loading the custom one. The naming convention for this sql file should be progression_custom_%%%% or it won't respect the apply order.



SQL FILES
SQL files can be loaded to your databse once you have enabled auto DB updater in your worldserver config. All sql files should be put in proper folder in order to be loaded within specific level bracket. E.g. sqls related to bracket 40-49 should be put into https://github.com/UltraNix/mod_progression-system/tree/master/src/Bracket_40_49/sql/world
WARNING: SQL files once executed cannot be "unloaded". E.g. if you set in config 30-39 level bracket, then all sql files related to it will be loaded. But if you change your mind and set that config to 20-29 bracket, then the sql files from bracket 30-39 are still in your database and works. If you want to undo the changes done in these sql files, just make a new one sql file and restore the previous state.


C++ SCRIPTS
C++ scripts can also be automatically loaded dependent on bracket level. All you need to do, is to copy and paste C++ script you want to modify to proper folder, change whatever you want within and just create a new script loader function. You don't need to change your script's name in database nor your C++ script's name (only script object name). [Here](https://github.com/UltraNix/mod_progression-system/commit/aad916bbe068f28ce769d028f138f434ba4655a8) is the example how to do it.

2 notes:
1. Your custom script must renamed to something slightly different, otherwise core will still load old script. Preferable: xxx_yy, where xxx is the name of old script and yy is the name of bracket, e.g. boss_drakkisath renamed to boss_drakkisath_50_59_b. Also, scripts loader function (AddSC_xxx) must be renamed accordingly, e.g. AddSC_boss_drakkisath renamed to AddSC_boss_drakkisath_50_59_b.
2. Don't forget to include that scripts loader function (AddSC_xxx) in bracket loader. E.g. AddSC_boss_drakkisath_50_59_b holds scripts related to bracket 50-59, it should be declared and defined in Bracket_50_59_B_loader.cpp (https://github.com/azerothcore/mod-progression-system/blob/NewModule/src/Bracket_50_59_B/Bracket_50_59_B_loader.cpp)

WARNING: If you are applying some changes to main script (in AzerothCore) and they are independent from the level bracket, you should apply these changes to your progressive script as well.

DISCLAIMER This module is used by Chromiecraft and the progression order here presented will oftentimes reflect Chromiecraft's progression. If you would like a different progression you are free to change the order of the files (file locations) and scripts as you would like.