普特莫斯维基 (Purtmars Wikipedia 📖)

“Chemdah 开发者文档:自定义限制器”的版本间的差异

来自Purtmars Wikipedia —— 普特莫斯维基
(建立内容为“{{:Chemdah 开发者文档目录}} = 自定义限制器 = 任务限制器是一种特殊的元数据类型,任务管理器会在玩家接受任务之前调用…”的新页面)
 
第2行: 第2行:
 
= 自定义限制器 =
 
= 自定义限制器 =
 
任务限制器是一种特殊的元数据类型,任务管理器会在玩家接受任务之前调用来判断玩家是否能够接受该任务。<br>
 
任务限制器是一种特殊的元数据类型,任务管理器会在玩家接受任务之前调用来判断玩家是否能够接受该任务。<br>
目前为止 [[Chemdah]] 提供了四种限制器类型分别是:
+
目前为止 Chemdah 提供了四种限制器类型分别是:
* Agent(脚本代理)
+
* 脚本代理(agent)
* Cooldown(冷却)
+
* 冷却(cooldown)
* Coexist(最大共存)
+
* 共存(coexist)
* Repeat(重复)
+
* 重复(repeat)
 +
 
 +
通过继承 '''ink.ptms.chemdah.core.quest.meta.MetaControl$Control''' 类来实现自定义限制器。
 +
 
 +
<syntaxhighlight lang="kotlin" line="line">
 +
abstract class Control {
 +
 
 +
    /**
 +
    * 是否支持该触发器判断依据(返回空则不支持)
 +
    * 如 cooldown 可以判断是以任务的接受还是完成为依据,而 coexist 则不需要
 +
    */
 +
    abstract val trigger: Trigger?
 +
 
 +
    /**
 +
    * 玩家是否可以接受该任务
 +
    */
 +
    abstract fun check(profile: PlayerProfile, template: Template): CompletableFuture<Result>
 +
 
 +
    /**
 +
    * 创建签名
 +
    */
 +
    abstract fun signature(profile: PlayerProfile, template: Template)
 +
}
 +
</syntaxhighlight>
 +
 
 +
别忘记注册哦。
 +
 
 +
<syntaxhighlight lang="kotlin" line="line">
 +
override fun onEnable() {
 +
    ChemdahAPI.addQuestAddon("foo", AddonFoo::class.java)
 +
}
 +
</syntaxhighlight>

2021年5月7日 (五) 08:35的版本

目录

自定义限制器

任务限制器是一种特殊的元数据类型,任务管理器会在玩家接受任务之前调用来判断玩家是否能够接受该任务。
目前为止 Chemdah 提供了四种限制器类型分别是:

  • 脚本代理(agent)
  • 冷却(cooldown)
  • 共存(coexist)
  • 重复(repeat)

通过继承 ink.ptms.chemdah.core.quest.meta.MetaControl$Control 类来实现自定义限制器。

 1 abstract class Control {
 2 
 3     /**
 4      * 是否支持该触发器判断依据(返回空则不支持)
 5      * 如 cooldown 可以判断是以任务的接受还是完成为依据,而 coexist 则不需要
 6      */
 7     abstract val trigger: Trigger?
 8 
 9     /**
10      * 玩家是否可以接受该任务
11      */
12     abstract fun check(profile: PlayerProfile, template: Template): CompletableFuture<Result>
13 
14     /**
15      * 创建签名
16      */
17     abstract fun signature(profile: PlayerProfile, template: Template)
18 }

别忘记注册哦。

1 override fun onEnable() {
2     ChemdahAPI.addQuestAddon("foo", AddonFoo::class.java)
3 }