ddon-server/Arrowgene.Ddon.Scripts/scripts/addendums
Paul Campbell 060de5cb1c feat: Implement the EXM "Recurrence of Darkness"
- Partial implemention of the EXM "Recurrence of Darkness" (q50204000) using the
  scripted quest system.
- Moved all scripts to a seperate Arrowgene.Ddon.Scripts project to
  support out of project comde completion in csx scripts.
- Updated the README.md in the scripting project with details on how to
  enable csx autocompletion in Visual Studio Code.
- Enabled scripted quests to have some dyanmic state for the instance of
  the quest.
- Continued to build out QuestBlockUtil and QuestResultCommnandUtil to
  make it more convient to write scripted quests.
- Updated the script callback function to pass a new object
  QuestCallbackParam and updated the function to support passing
  anonymous functions as an argument.
- Moved index calculations for JSON quests to the asset deserializer.
- Adjusted some "discovered quests" to not show the marker on the map
  until after the quest is engaged.
- Renamed the script_dll directory to script_assemblies which is used
  for csx debug support.
- Updated the README.md for the scripts directory.
2025-02-26 10:28:00 -05:00
..
README.md feat: Implement the EXM "Recurrence of Darkness" 2025-02-26 10:28:00 -05:00

Addendum Module

The addendum module is a way for a server administrator to provide fine grained edits to server script files while still consuming the updates of the original server files. In the server repository, only the addendum directory and the README file will be tracked. After all other modules are loaded, the addendum module will then any amendments required to the script files required by the server admin. The general intention of this module is to mainly override quest parameters although it may find other uses. Amendments are limited to the type of objects that LibDdon can access. If you require a more invasive modification, you should use the custom module functionality instead.

Example overrding quest rewards

In the <script_root>/addendums directory create a new file called q50300004.csx. Suppose we wanted to overwrite the rewards of the quest such that:

  • A value of 42 experience points are rewarded.
  • A value of 1337 gold is rewarded.
  • A single Healing Poition is reward.
public class Addendum : IAddendum
{
    public override void Amend()
    {
        var quest = QuestManager.GetQuestByQuestId((QuestId) 50300004);
        quest.ClearAllRewards();
        quest.AddPointReward(PointType.ExperiencePoints, 42);
        quest.AddWalletReward(WalletType.Gold, 1337);
        quest.AddItemReward(QuestFixedRewardItem.Create(ItemId.HealingPotion, 1));
    }
}

return new Addendum();