ModifierAPI
API for plugin developers to modify certain values without conflicts.
模組介紹 作者原文
ModifierAPI
Adds an API for plugin developers to modify certain values without conflicting with other mods.
Currently supports:
- Movement Speed
- Melee Attack Speed
- Can specify Light, Charged, Push, or All
- Melee Range
API
Currently exposes 2 APIs:
- MovementSpeedAPI
- MeleeAttackSpeedAPI
- MeleeRangeAPI
To add a modifier, call an AddModifier function from an API, e.g.:
IStatModifier MoveSpeedAPI.AddModifier(float mod, StackLayer layer = StackLayer.Multiply, string groupName = "Default");
Where the parameters are:
- mod: The value of the modifier to apply.
- layer: Which layer the modifier is added to. Determines how it stacks with other modifiers.
- Options: Multiply, Add, Max, Min, Override
- groupName: Which group to put the modifier in. Layers only apply within each group; separate groups are multiplied.
All AddModifier functions return the created IStatModifier object. The modifier provides methods to update its value or remove itself:
public interface IStatModifier
{
// The value of the modifier. Updates when modified if active.
public float Mod { get; set; }
// The layer the modifier is on.
public StackLayer Layer { get; }
// Whether the modifier is active.
public bool Active { get; }
// Enables the modifier if it is inactive.
public void Enable();
// Sets Mod to the value and enables the modifier if it is inactive.
public void Enable(float mod);
// Disables/removes the modifier.
public void Disable();
}
Note: Speed modifiers are disabled on level cleanup. If you wish to use the same speed modifier across drops, make sure to Enable it.
Examples
Simple Timed Buff
public void AddSpeedBuff(float mod, float duration) {
CoroutineManager.StartCoroutine(RunSpeedBuff(mod, duration).WrapToIl2Cpp());
}
private IEnumerator RunSpeedBuff(float mod, float duration) {
var modifier = MoveSpeedAPI.AddModifier(mod);
yield new WaitForSeconds(duration);
modifier.Disable();
}
Simple Persistent Buff
IStatModifier? _activeModifier = null;
public void SetAttackSpeedBuff(float mod) {
if (_activeModifier == null)
{
_activeModifier = MeleeAttackSpeedAPI.AddModifier(mod);
}
else
{
_activeModifier.Enable(mod);
}
}
安裝與使用 安裝:按包內說明操作
- 解壓本站下載的壓縮包,先讀包內的 readme / 說明檔案。
- 多數模組依賴遊戲的模組載入器:常見做法是用社群模組管理器(如 r2modman)選中本遊戲安裝,由管理器自動處理載入器與依賴。
- 手動安裝時,把模組檔案放進遊戲目錄下對應的 Mod / plugins 資料夾。
- 啟動遊戲確認載入成功;帶「前置依賴」的模組需要把依賴一併安裝。
不同模組的安裝位置差異較大,包內說明是最可靠的依據。
下面這些內容需要先安裝,否則該模組不會生效: