• 欢迎来到Minecraft插件百科!
  • 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
  • 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289

GuillaumeVDN的插件文档/迁移:修订间差异

来自Minecraft插件百科
跳转到导航 跳转到搜索
无编辑摘要
无编辑摘要
 
(未显示同一用户的3个中间版本)
第3行: 第3行:
QuestCreator的v6版本需要v8版本的GCore作为前置。我彻底重制了这一版本的插件,新版本的插件可以实现之前所无法实现的功能。
QuestCreator的v6版本需要v8版本的GCore作为前置。我彻底重制了这一版本的插件,新版本的插件可以实现之前所无法实现的功能。


最重要的是,它可以让插件维护更加高效。而且让我不会在面对几年前写的破代码时痛不欲生。之前版本的代码质量虽然可读性强,但到了要修复bug或更新时,我几乎不知所措。这是因为这些代码是我在几年前刚学编程时写的。现在我的编程技术已炉火纯青,几个月前我就有了重制插件这一想法。正是因此你才会看到这份文档和我重制的插件。
最重要的是,重制可以让我更高效地维护插件。而且让我不会在面对几年前写的破代码时'''痛不欲生'''。之前版本的代码质量虽然可读性强,但到了要修复漏洞或更新时,我几乎不知所措。这是因为这些代码是我在几年前刚学编程时写的,而现在我的编程技术已炉火纯青。几个月前我就有了重制插件这一想法,正是如此你才会看到这份文档和重制的插件。


我很感谢所有在过去几个月里耐心等待修复漏洞和更新插件的人。虽然有些人只因为他们买了我的产品就似乎认为我属于他们,认为我就应该快点更新插件,但很多人都表示支持[和/或]耐心等待重制插件,即便在重制期间我很少更新插件和修复漏洞。虽然这听起来很傻,但Minecraft目前是我生活的重要组成部分,我非常感谢你们的支持。
我很感谢所有在过去几个月里耐心等待修复漏洞和更新插件的人。虽然有些人只因为他们买了我的产品就似乎认为我属于他们,认为我就应该快点更新插件,但很多人都表示支持并耐心等待重制插件,即便在重制期间我很少更新插件和修复漏洞。虽然这听起来很蠢,但Minecraft目前是我生活的重要组成部分,我非常感谢你们的支持。


=== 我的其它插件 ===
=== 我的其它插件 ===
第28行: 第28行:
除了备份之外, 我对于迁移没有更多的特殊说明了。备份并替换旧的.jar文件,插件会自动开始迁移。
除了备份之外, 我对于迁移没有更多的特殊说明了。备份并替换旧的.jar文件,插件会自动开始迁移。


=== 主要变更和新增内容 ===
== 主要变更和新增内容 ==
插件的大多数的结构仍然没有变化(任务、激活器等),但插件新增了一些特性、对配置进行了标准化,作出了一些微小的变更,还新增了这份全新的插件文档!
插件的大体结构仍然没有变化(任务、激活器等),但插件新增了一些特性、优化配置格式,还新增了这份全新的插件文档!


我必须承认我没有列出全部变更的内容,因为插件变更的内容实在是太多了。下面是我想到的重大变更内容列表。如果你对某些变化有任何疑问,我建议你查看这个文档的相关内容。我也只是建议你通读一遍,至少阅读通用和基础内容。
我得承认我没有列出全部变更的内容,因为插件变更的内容实在是太多了。下面是我想到的重大变更内容列表。如果你对某些变化有任何疑问,我建议你查看这个文档的相关内容。我也只是建议你通读一遍,至少阅读通用和基础内容。


==== 优化和数据 ====
==== 优化和数据 ====
关于这次更新首先映入我脑海的就是优化。这并不是你真正看得见的东西,但代码变得更清晰、精简、一致了。这可以让我更好的维护我的插件。我还对许多库进行了标准化,这意味着像“你修复的bug还是出现了,修了和没修一样”这样的事情将不再发生。
关于这次更新首先映入我脑海的就是优化。这并不是你真正看得见的东西,但代码变得更一目了然了。这可以让我更好的维护我的插件。我还对许多库进行了标准化,这意味着像“你修复的bug还是出现了,修了和没修一样”这样的事情将不再发生。


通过适当的异步/回调管理,现在插件对数据板的处理更加一致。我不会在这里阐述这些内容,总之这意味着数据保存更加一致,你有时可能会随机遇到的一些问题(任务重复,数据文件未删除等),不会再发生了。<br />
通过适当的异步/回调管理,现在插件对数据板的处理更加一致。我不会在这里阐述这些内容,总之这意味着数据保存更加一致,你有时可能会随机遇到的一些问题(任务重复,数据文件未删除等),不会再发生了。<br />
第40行: 第40行:
我重写了一个YAML解析器,不再使用默认的bukkit解析器。对我而言,最主要的改进是在重写文件时保留注释和配置组织。详见该页面。
我重写了一个YAML解析器,不再使用默认的bukkit解析器。对我而言,最主要的改进是在重写文件时保留注释和配置组织。详见该页面。


许多配置节在不同的地方不一致。我能想到的主要例子是物品:不同地方的设置并不总是相同的。有时你可以使用一些设置,但有时则无法使用;比如大多数情况下,在物品配置中的“exact''match”或“remove''after_action”等设置并不是所有地方都能用。现在,一切都是一致的:物品有自己的部分,特定设置位于其配置之外。此处记录了大多数通用配置部分。
许多配置节在不同的地方不一致。我能想到的主要例子是物品:不同地方的设置并不总是相同的。有时你可以使用一些设置,但有时则无法使用;比如大多数情况下,在物品配置中的“exact_match”或“remove_after_action”等设置并不是所有地方都能用。现在,一切都是一致的:物品有自己的部分,特定设置位于其配置之外。此处记录了大多数通用配置部分。


现在插件能更好地处理物品,并具有更一致的行为。您可以更清晰地配置大多数特定物品元数据,以及NBT标签(而不是不可读的base64编码文本)。
现在插件能更好地处理物品,并具有更一致的行为。您可以更清晰地配置大多数特定物品元数据,以及NBT标签(而不是不可读的base64编码文本)。
第54行: 第54行:
每次大型更新我都会优化我的指令库。我猜你们看到这个主要变更时会很高兴:不再需要<code>-参数:值</code>格式。
每次大型更新我都会优化我的指令库。我猜你们看到这个主要变更时会很高兴:不再需要<code>-参数:值</code>格式。


比如之前的指令你需要输入 <code>/qc start -q:farm''quest -p:player</code>,现在你只需输入 <code>/qc start farm''quest player</code>。
比如之前的指令你需要输入 <code>/qc start -q:farm_quest -p:player</code>,现在你只需输入 <code>/qc start farm_quest player</code>。


参数无需遵循特定顺序:<code>/qc start farm''quest GuillaumeVDN</code>和<code>/qc start GuillaumeVDN farm''quest</code>有相同的效果。
参数无需遵循特定顺序:<code>/qc start farm_quest GuillaumeVDN</code>和<code>/qc start GuillaumeVDN farm_quest</code>有相同的效果。


我优化了参数检测,现在你无需输入整个参数,你可以使用优化过的自动补全系统。如果插件停止给出参数建议,这就意味着插件找到了唯一匹配的结果。比如输入“Guillaume”你会得到“GuillaumeVDN”的结果,或者在没有其它名字是G开头的玩家在线时只输入“g”你也会得到该结果。
我优化了参数检测,现在你无需输入整个参数,你可以使用优化过的自动补全系统。如果插件停止给出参数建议,这就意味着插件找到了唯一匹配的结果。比如输入“Guillaume”你会得到“GuillaumeVDN”的结果,或者在没有其它名字是G开头的玩家在线时只输入“g”你也会得到该结果。
第71行: 第71行:
下面是对新的层次结构的总结。新的特性和变更将在下面进一步解释。
下面是对新的层次结构的总结。新的特性和变更将在下面进一步解释。


<ul>
*/plugins/QuestCreator/ :<br />
<li><p>/plugins/QuestCreator/ :<br />
** data_v6/:玩家/服务器数据文件(即使你使用MySQL,也会有本地文件)</p>(之前全部数据文件都集中存储在GCore里)<br />
** data_v6/:玩家/服务器数据文件(即使你使用MySQL,也会有本地文件)</p>
** quest_models/(一如既往)<br />
*(之前全部数据文件都集中存储在GCore里)<br />
** quest_models_functional/(新增)<br />
** quest''models/(一如既往)<br />
** quest_activators/(之前所有激活器都位于同一个配置文件内)<br />
** quest''models''functional/(新增)<br />
** quest_groups/(之前所有任务组都位于同一个配置文件内)<br />
** quest''activators/(之前所有激活器都位于同一个配置文件内)<br />
** quest_pools/(之前所有任务池都位于同一个配置文件内)<br />
** quest''groups/(之前所有任务组都位于同一个配置文件内)<br />
** quest_states/(新增)<br />
** quest''pools/(之前所有任务池都位于同一个配置文件内)<br />
** quest''states/(新增)<br />
** guis/(一如既往)<br />
** guis/(一如既往)<br />
** global''branches/(新增)<br />
** global_branches/(新增)<br />
** global''conditions/(之前所有全局条件都位于同一个配置文件内)<br />
** global_conditions/(之前所有全局条件都位于同一个配置文件内)<br />
** global''gui''items/(新增)<br />
** global_gui_items/(新增)<br />
** global''objects/(新增)<br />
** global_objects/(新增)<br />
** global''time''frames/(新增)<br />
** global_time_frames/(新增)<br />
** global''variables.yml <br />
** global_variables.yml <br />
** server''variables.yml(新增)<br />
** server_variables.yml(新增)<br />
** default''variables.yml(之前位于config.yml内)<br />
** default_variables.yml(之前位于config.yml内)<br />
** points''categories.yml(之前位于config.yml内)<br />
** points_categories.yml(之前位于config.yml内)<br />
** config.yml(一如既往)</p>
** config.yml(一如既往)</p>
<p>==== GUI ====
==== GUI ====
我也重制并优化了GUI处理。 现在的处理会尽可能地避免导致卡顿,尤其是加载大型多页GUI时或是加载很多玩家皮肤的排列GUI时。</p>
我也重制并优化了GUI处理。 现在的处理会尽可能地避免导致卡顿,尤其是加载大型多页GUI时或是加载很多玩家皮肤的排列GUI时。</p>
<p>如果你安装了ProtocolLib,则插件会使用客户端数据包。这可以在你安装了很多与GUI交互的插件时,避免Spigot处理额外的事件并优化性能。</p></li></ul>
<p>如果你安装了ProtocolLib,则插件会使用客户端数据包。这可以在你安装了很多与GUI交互的插件时,避免Spigot处理额外的事件并优化性能。</p></li></ul>


同时我也对一些配置进行了优化,让你们有很多的编辑空间,比如页面配置和点击覆盖。详见该页面。<br />
同时我也对一些配置进行了优化,让你们有很多的编辑空间,比如页面配置和点击覆盖。详见该页面。<br />
==== 激活器和注册 ====
==== 激活器和注册 ====
我删掉了一些没用的激活器,比如ENABLED和DISABLED。现在任务不再需要激活器。只要有权限,玩家也能通过GUI或指令开始无激活器的。一些类型的激活器也经过了调整或被删除。
我删掉了一些没用的激活器,比如ENABLED和DISABLED。现在任务不再需要激活器。只要有权限,玩家也能通过GUI或指令开始无激活器的。一些类型的激活器也经过了调整或被删除。
第102行: 第101行:
注册文件也不复存在了。你不再需要注册任务模型来开始任务。你可以直接在任务模型文件中配置激活器。任务组内的任务可以在其独立文件内进行配置。<br />
注册文件也不复存在了。你不再需要注册任务模型来开始任务。你可以直接在任务模型文件中配置激活器。任务组内的任务可以在其独立文件内进行配置。<br />
==== 任务目标和条件 ====
==== 任务目标和条件 ====
大多数任务目标和条件都有变化(对名称和设置进行术语标准化或被删除/替换)。我添加了一些有用的东西,比如特殊目标——CONDITIONS''SWITCH|条件切换、LOGIC''SWITCH|逻辑切换和DIVERGE_GUI|GUI分支。详见任务目标列表。<br />
大多数任务目标和条件都有变化(对名称和设置进行术语标准化或被删除/替换)。我添加了一些有用的东西,比如特殊目标——CONDITIONS_SWITCH|条件切换、LOGIC_SWITCH|逻辑切换和DIVERGE_GUI|GUI分支。详见任务目标列表。<br />
=====多目标任务目标(方块/实体/物品)=====
=====多目标任务目标(方块/实体/物品)=====
长久以来用户要求的一个特性就是在同一任务目标内有多个对象。现在大多数方块、实体和物品都可以作为玩家的任务对象。
长久以来用户要求的一个特性就是在同一任务目标内有多个对象。现在大多数方块、实体和物品都可以作为玩家的任务对象。
第121行: 第120行:
       types: [DIRT,GRASS_BLOCK]
       types: [DIRT,GRASS_BLOCK]
       goal: 50.0</source>
       goal: 50.0</source>
将该id设置为<code>a</code>'''很重要'''。如果你更改了这个id,则进行该任务目标的玩家任务进度会被清空。<br />
将该id设置为<code>a</code>_'很重要_'。如果你更改了这个id,则进行该任务目标的玩家任务进度会被清空。<br />
=====物品目标和关联条件=====
=====物品目标和关联条件=====
一些关联条件有其物品条件和目标,比如PLAYER''QUANTUMRPG''ITEM''PICKUP或MMOITEMS''ITEM。
一些关联条件有其物品条件和目标,比如PLAYER_QUANTUMRPG_ITEM_PICKUP或MMOITEMS_ITEM。


由于新的简易NBT配置,这些目标已被移除(除了少部分十分具体的条件)。维护这些条件对我而言太痛苦了。更加一致的条件和目标更利于我进行维护。
由于新的简易NBT配置,这些目标已被移除(除了少部分十分具体的条件)。维护这些条件对我而言太痛苦了。更加一致的条件和目标更利于我进行维护。


对于那些具体的条件和目标,你可能需要再次导入。你需要进行一些测试,如果你遇到了问题,请联系我。<br />
对于那些具体的条件和目标,你可能需要再次导入。你需要进行一些测试,如果你遇到了问题,请联系我。<br />
=====逻辑目标和条件=====
=====逻辑目标和条件=====
之前需要特定数字才能生效的大多数条件已被重构为逻辑字符串,比如“拥有X元”或“有一个变量的特定值”。这需要你拥有逻辑条件的基础知识,详见这里。
之前需要特定数字才能生效的大多数条件已被重构为逻辑字符串,比如“拥有X元”或“有一个变量的特定值”。这需要你拥有逻辑条件的基础知识,详见这里。
第198行: 第198行:
   goto: continue</source>
   goto: continue</source>
====更多设置====
====更多设置====
我添加了许多设置,并对一些元素进行了标准化。对于大多数任务目标,我添加了很酷的东西,比如“items''needed”和“position''stay”。我为任务池增加了更多的控制选项,添加了一个更清晰的actor限制管理系统,以及针对每个元素添加了很多设置,详细信息请查阅相关页面。<br />
我添加了许多设置,并对一些元素进行了标准化。对于大多数任务目标,我添加了很酷的东西,比如“items_needed”和“position_stay”。我为任务池增加了更多的控制选项,添加了一个更清晰的actor限制管理系统,以及针对每个元素添加了很多设置,详细信息请查阅相关页面。<br />
====全局元素====
====全局元素====
为了避免重复配置,我在之前的一堆更新里引入了 &quot;全局变量 &quot;和 &quot;全局条件&quot;的概念。我已经将这个原则扩展到任务目标、分支、GUI物品和时间范围。如果你花了很多时间把相同的配置部分从一个任务复制/粘贴到另一个任务中,那么这个功能很有用。更多信息请查看该页面。<br />
为了避免重复配置,我在之前的一堆更新里引入了 &quot;全局变量 &quot;和 &quot;全局条件&quot;的概念。我已经将这个原则扩展到任务目标、分支、GUI物品和时间范围。如果你花了很多时间把相同的配置部分从一个任务复制/粘贴到另一个任务中,那么这个功能很有用。更多信息请查看该页面。<br />
第206行: 第206行:
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/627 #627 Show diffrent text if condition is not met in DIVERGE] (提出者:zemoz)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/627 #627 Show diffrent text if condition is not met in DIVERGE] (提出者:zemoz)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/625 #625 Allow players to have multiple quests open via permissions] (提出者:viveleroi)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/625 #625 Allow players to have multiple quests open via permissions] (提出者:viveleroi)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/621 #621 建议:Multiple quests in the scoreboard] (提出者:Mr''Mint'')
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/621 #621 建议:Multiple quests in the scoreboard] (提出者:Mr_Mint_)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/226 #226 建议:coop quest] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/226 #226 建议:coop quest] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/252 #252 建议:Global Server Quest] (提出者:TheOnlyTermin)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/252 #252 建议:Global Server Quest] (提出者:TheOnlyTermin)
第219行: 第219行:
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/448 #448 提议:调整 actionbar/bossbar/计分板 优先度] (提出者:Ssomarrr)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/448 #448 提议:调整 actionbar/bossbar/计分板 优先度] (提出者:Ssomarrr)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/474 #474 New Condition Operation: “BETWEEN”] (提出者:NolanMC)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/474 #474 New Condition Operation: “BETWEEN”] (提出者:NolanMC)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/514 #514 支持option “remove''after''action” for PLAYER''CONTAINER''MANIPULATE] (提出者:kelvinjunilson)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/514 #514 支持option “remove_after_action” for PLAYER_CONTAINER_MANIPULATE] (提出者:kelvinjunilson)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/522 #522 兼容‘Items添加erV1’] (提出者:FlameCat)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/522 #522 兼容‘Items添加erV1’] (提出者:FlameCat)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/550 #550 建议 - OR Condition with multiple options] (提出者:AshenGaming)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/550 #550 建议 - OR Condition with multiple options] (提出者:AshenGaming)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/551 #551 建议 PLAYER''MOB''INTERACT] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/551 #551 建议 PLAYER_MOB_INTERACT] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/554 #554 Global variable] (提出者:pristatauminecraft84)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/554 #554 Global variable] (提出者:pristatauminecraft84)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/587 #587 建议:Breed Objective (Ex. breed 5 horses)] (提出者:MyTale)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/587 #587 建议:Breed Objective (Ex. breed 5 horses)] (提出者:MyTale)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/589 #589 建议:Tier name option for QuantumRPG objects.] (提出者:MyTale)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/589 #589 建议:Tier name option for QuantumRPG objects.] (提出者:MyTale)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/590 #590 建议:Brewing Objective] (提出者:MyTale)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/590 #590 建议:Brewing Objective] (提出者:MyTale)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/609 #609 A 建议:PLAYER''MMOITEMS''ITEM_PICKUP] (提出者:BastaMasta)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/609 #609 A 建议:PLAYER_MMOITEMS_ITEM_PICKUP] (提出者:BastaMasta)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/613 #613 建议:Server Variables] (提出者:Leopled)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/613 #613 建议:Server Variables] (提出者:Leopled)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/615 #615 建议:Variables to be given a primitive type modifier] (提出者:Leopled)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/615 #615 建议:Variables to be given a primitive type modifier] (提出者:Leopled)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/616 #616 建议:添加 - PLAYER''MOB''BREED] (提出者:nikita.sineiko)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/616 #616 建议:添加 - PLAYER_MOB_BREED] (提出者:nikita.sineiko)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/617 #617 建议:添加 - ELYTRA''FLIGHT''DISTANCE] (提出者:nikita.sineiko)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/617 #617 建议:添加 - ELYTRA_FLIGHT_DISTANCE] (提出者:nikita.sineiko)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/630 #630 GPS Spam when QC quest is active] (提出者:denisamania)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/630 #630 GPS Spam when QC quest is active] (提出者:denisamania)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/165 #165 GPS Feature] (提出者:phamductrungbmt)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/165 #165 GPS Feature] (提出者:phamductrungbmt)
第238行: 第238行:
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/239 #239 建议 condition slot] (提出者:Yuky-Mystic)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/239 #239 建议 condition slot] (提出者:Yuky-Mystic)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/241 #241 DIVERGE object GUI option] (提出者:junpark8903)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/241 #241 DIVERGE object GUI option] (提出者:junpark8903)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/249 #249 建议 - PLAYER''MOB''FEED object] (提出者:bccyv)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/249 #249 建议 - PLAYER_MOB_FEED object] (提出者:bccyv)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/272 #272 delay''repeat''message''goto''not_reached:] (提出者:Lordinouille)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/272 #272 delay_repeat_message_goto_not_reached:] (提出者:Lordinouille)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/361 #361 建议 pre quest dialog] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/361 #361 建议 pre quest dialog] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/351 #351 建议 missing Config Option to stop Quests from auto sorting] (提出者:quorn23)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/351 #351 建议 missing Config Option to stop Quests from auto sorting] (提出者:quorn23)
第245行: 第245行:
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/296 #296 Quest Differ with Permission in Same Menu] (提出者:MacTonight8)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/296 #296 Quest Differ with Permission in Same Menu] (提出者:MacTonight8)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/325 #325 建议 object diverge amount limit] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/325 #325 建议 object diverge amount limit] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/348 #348 建议 SERVER''ITEM''EDIT] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/348 #348 建议 SERVER_ITEM_EDIT] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/273 #273 create an hologram object above cinematics client side npc] (提出者:pigmen26gamesYT)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/273 #273 create an hologram object above cinematics client side npc] (提出者:pigmen26gamesYT)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/370 #370 建议 item particle] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/370 #370 建议 item particle] (提出者:timmy0707)
第254行: 第254行:
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/362 #362 SuperiorSkyblock integration] (提出者:Faceless0102)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/362 #362 SuperiorSkyblock integration] (提出者:Faceless0102)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/381 #381 Shopkeeper Plugin Support] (提出者:AkiraKokiri)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/381 #381 Shopkeeper Plugin Support] (提出者:AkiraKokiri)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/382 #382 Object PLAYER''CITIZENS''NPC''DELIVER''ITEMS] (提出者:Hellgato)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/382 #382 Object PLAYER_CITIZENS_NPC_DELIVER_ITEMS] (提出者:Hellgato)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/397 #397 [建议] - gvariables &amp; variables 设置] (提出者:Hellgato)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/397 #397 [建议] - gvariables &amp; variables 设置] (提出者:Hellgato)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/399 #399 建议 different progression text for delegates when completed] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/399 #399 建议 different progression text for delegates when completed] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/634 #634 DAY''OF''MONTH condition] (提出者:emohobo)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/634 #634 DAY_OF_MONTH condition] (提出者:emohobo)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/434 #434 [建议] Object area] (提出者:Lordinouille)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/434 #434 [建议] Object area] (提出者:Lordinouille)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/444 #444 [建议] 添加 name''contains, lore''contains etc] (提出者:Lordinouille)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/444 #444 [建议] 添加 name_contains, lore_contains etc] (提出者:Lordinouille)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/398 #398 关联MMOCore] (提出者:jajamic)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/398 #398 关联MMOCore] (提出者:jajamic)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/411 #411 MMOCore 支持建议] (提出者:ItsSniper)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/411 #411 MMOCore 支持建议] (提出者:ItsSniper)
第271行: 第271行:
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/453 #453 建议 ingame editor color code tolowercase] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/453 #453 建议 ingame editor color code tolowercase] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/464 #464 Reception data ( suggested feature)] (提出者:hammad_alhassan)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/464 #464 Reception data ( suggested feature)] (提出者:hammad_alhassan)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/467 #467 execution''chance and progress''chance fail goto’s] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/467 #467 execution_chance and progress_chance fail goto’s] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/469 #469 SuperiorSkyblock2 Hook for QuestCreator] (提出者:studiotadikl)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/469 #469 SuperiorSkyblock2 Hook for QuestCreator] (提出者:studiotadikl)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/476 #476 建议s for location] (提出者:HuJunwei23333)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/476 #476 建议s for location] (提出者:HuJunwei23333)
第280行: 第280行:
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/535 #535 建议 - hiding completed objectives from the scoreboard in a GROUP object] (提出者:Silvark)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/535 #535 建议 - hiding completed objectives from the scoreboard in a GROUP object] (提出者:Silvark)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/541 #541 Quantum rpg: level system integration] (提出者:koviazin.pro)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/541 #541 Quantum rpg: level system integration] (提出者:koviazin.pro)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/559 #559 New variable: running''concurrent''quest_count] (提出者:kelvinjunilson)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/559 #559 New variable: running_concurrent_quest_count] (提出者:kelvinjunilson)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/586 #586 建议:Option to remove vanilla lore on GUI items.] (提出者:MyTale)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/586 #586 建议:Option to remove vanilla lore on GUI items.] (提出者:MyTale)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/623 #623 Quetes entre membres d’ile] (提出者:WarnDangerous)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/623 #623 Quetes entre membres d’ile] (提出者:WarnDangerous)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/501 #501 SERVER''ACTION''LIST Argument 添加ition Request] (提出者:techdude404gaming)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/501 #501 SERVER_ACTION_LIST Argument 添加ition Request] (提出者:techdude404gaming)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/521 #521 Ajouter une commande pour ouvrir le journal directement] (提出者:titidelaff)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/521 #521 Ajouter une commande pour ouvrir le journal directement] (提出者:titidelaff)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/620 #620 [建议/BUGFIX] Please FIX quest MOVEMENT &amp; ORDER] (提出者:nikita.sineiko)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/620 #620 [建议/BUGFIX] Please FIX quest MOVEMENT &amp; ORDER] (提出者:nikita.sineiko)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/618 #618 建议:添加 - PLAYER''SWIM''DISTANCE] (提出者:nikita.sineiko)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/618 #618 建议:添加 - PLAYER_SWIM_DISTANCE] (提出者:nikita.sineiko)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/581 #581 支持执行Denizen脚本] (提出者:Renin)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/581 #581 支持执行Denizen脚本] (提出者:Renin)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/591 #591 DungeonXL条件:location] (提出者:koviazin.pro)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/591 #591 DungeonXL条件:location] (提出者:koviazin.pro)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/592 #592 建议:添加 option to detect mobs spawned by spawners] (提出者:deadfish12)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/592 #592 建议:添加 option to detect mobs spawned by spawners] (提出者:deadfish12)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/597 #597 Condition INVENTORY''FREE''FOR] (提出者:Lordinouille)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/597 #597 Condition INVENTORY_FREE_FOR] (提出者:Lordinouille)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/600 #600 建议:progress_sound] (提出者:juankaplay)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/600 #600 建议:progress_sound] (提出者:juankaplay)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/635 #635 Server stall on boot, appears related to player head web requests] (提出者:viveleroi)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/635 #635 Server stall on boot, appears related to player head web requests] (提出者:viveleroi)
第309行: 第309行:
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/359 #359 建议关联Boss] (提出者:jimmyyeung06)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/359 #359 建议关联Boss] (提出者:jimmyyeung06)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/438 #438 Quest Menu empty until /quest progress] (提出者:CM_lectric)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/438 #438 Quest Menu empty until /quest progress] (提出者:CM_lectric)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/315 #315 “PLAYER''CHAT''VARIABLE” Problem] (提出者:Mr''Mint'')
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/315 #315 “PLAYER_CHAT_VARIABLE” Problem] (提出者:Mr_Mint_)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/206 #206 items: amout: 1 problem and shitty way of being coded &lt;3] (提出者:Lordinouille)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/206 #206 items: amout: 1 problem and shitty way of being coded &lt;3] (提出者:Lordinouille)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/570 #570 BUG quest queue] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/570 #570 BUG quest queue] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/495 #495 cancel''event for object PLAYER''CHAT] (提出者:PizzaMC)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/495 #495 cancel_event for object PLAYER_CHAT] (提出者:PizzaMC)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/389 #389 BUG ScoreBoard] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/389 #389 BUG ScoreBoard] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/419 #419 [建议] Option to specify item/mob type in the object “forbidden” setting] (提出者:deadfish12)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/419 #419 [建议] Option to specify item/mob type in the object “forbidden” setting] (提出者:deadfish12)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/456 #456 Quest Progress Placeholders not formatted with Commas] (提出者:CM_lectric)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/456 #456 Quest Progress Placeholders not formatted with Commas] (提出者:CM_lectric)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/449 #449 BUG scoreboard text] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/449 #449 BUG scoreboard text] (提出者:timmy0707)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/483 #483 {objective''goal} value distorting at 10 billion] (提出者:CM''lectric)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/483 #483 {objective_goal} value distorting at 10 billion] (提出者:CM_lectric)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/485 #485 排序玩家导致极度卡顿] (提出者:Dusan7991)
* [https://www.gitlab.com/GuillaumeVDN/QuestCreator/issues/485 #485 排序玩家导致极度卡顿] (提出者:Dusan7991)

2021年8月5日 (四) 10:41的最新版本

GuillaumeVDN的插件文档
页面

GuillaumeVDN的插件文档 · 迁移

所有插件都有的常见内容

配置 · 杂项 · 关联

QuestCreator

基础内容 · 示例 · 详细特性 · 高级内容 · 关联


迁移至GCore v8和QuestCreator v6

QuestCreator的v6版本需要v8版本的GCore作为前置。我彻底重制了这一版本的插件,新版本的插件可以实现之前所无法实现的功能。

最重要的是,重制可以让我更高效地维护插件。而且让我不会在面对几年前写的破代码时痛不欲生。之前版本的代码质量虽然可读性强,但到了要修复漏洞或更新时,我几乎不知所措。这是因为这些代码是我在几年前刚学编程时写的,而现在我的编程技术已炉火纯青。几个月前我就有了重制插件这一想法,正是如此你才会看到这份文档和重制的插件。
我很感谢所有在过去几个月里耐心等待修复漏洞和更新插件的人。虽然有些人只因为他们买了我的产品就似乎认为我属于他们,认为我就应该快点更新插件,但很多人都表示支持并耐心等待重制插件,即便在重制期间我很少更新插件和修复漏洞。虽然这听起来很蠢,但Minecraft目前是我生活的重要组成部分,我非常感谢你们的支持。

我的其它插件

我专注于开发QuestCreator,因为我收到来自这款插件的询问最多。我计划重制我的全部插件,但这需要点时间。我计划在2020-2021年期间完成,只要我有时间,就会去做这件事。

目前只有QuestCreator v6兼容GCore v8。如果你同时使用QuestCreator和我的其它插件,那么你需要同时下载旧版的Gcore 。对此造成的不便我深感抱歉。

警告

这个版本的插件并不稳定,请在投入到正在运行的服务器之前进行充分测试。我会在Discord服务器上发布早期测试版来修复大多数重大漏洞。现在我所公开发布的版本是为了加速调试插件,也为 了不让你们等待太久。

请在Discord服务器汇报任何你遇到的重大问题,如果不是那么严重的问题,你可以在GitLab上汇报。

我会分批处理漏洞,频繁发布新的build,可能每3-4天发布一次。我也会在Discord上发布新的build,以避免无谓的等待时间(对已验证用户而言)。

备份你的服务器

为了避免必须手动调整所有的变更配置,GCore v8和QuestCreator v6内置了一个自动转换配置和数据文件的系统。我用一堆不同的文件测试过该系统。但是某些东西可能会出乎意料地被破坏。

我不管一些人怎样看待我的插件,但无论如何我是不会特意在我的插件中加入漏洞的 ^_^ 。我会尽我所能地修复它们,但我无法预料所有情况,这也是为何插件会存在漏洞。

因此为了避免数据丢失,我希望你在正常运行中的服务器上迁移之前,先做一个完整的备份。不仅仅是备份我的插件文件,还要备份整个服务器,包括地图、玩家数据状态以及其他插件的数据。虽然QuestCreator从不会直接改变这些数据,但你的任务中有可能存在指令/经济奖励、物品操作等,新的bug也可能会修改这些数据。

我不会对由于你没有备份而导致数据丢失负责。但不幸的是这样的事我听得太多了,所以请备份!

除了备份之外, 我对于迁移没有更多的特殊说明了。备份并替换旧的.jar文件,插件会自动开始迁移。

主要变更和新增内容

插件的大体结构仍然没有变化(任务、激活器等),但插件新增了一些特性、优化配置格式,还新增了这份全新的插件文档!

我得承认我没有列出全部变更的内容,因为插件变更的内容实在是太多了。下面是我想到的重大变更内容列表。如果你对某些变化有任何疑问,我建议你查看这个文档的相关内容。我也只是建议你通读一遍,至少阅读通用和基础内容。

优化和数据

关于这次更新首先映入我脑海的就是优化。这并不是你真正看得见的东西,但代码变得更一目了然了。这可以让我更好的维护我的插件。我还对许多库进行了标准化,这意味着像“你修复的bug还是出现了,修了和没修一样”这样的事情将不再发生。

通过适当的异步/回调管理,现在插件对数据板的处理更加一致。我不会在这里阐述这些内容,总之这意味着数据保存更加一致,你有时可能会随机遇到的一些问题(任务重复,数据文件未删除等),不会再发生了。

配置、物品和变体

我重写了一个YAML解析器,不再使用默认的bukkit解析器。对我而言,最主要的改进是在重写文件时保留注释和配置组织。详见该页面。

许多配置节在不同的地方不一致。我能想到的主要例子是物品:不同地方的设置并不总是相同的。有时你可以使用一些设置,但有时则无法使用;比如大多数情况下,在物品配置中的“exact_match”或“remove_after_action”等设置并不是所有地方都能用。现在,一切都是一致的:物品有自己的部分,特定设置位于其配置之外。此处记录了大多数通用配置部分。

现在插件能更好地处理物品,并具有更一致的行为。您可以更清晰地配置大多数特定物品元数据,以及NBT标签(而不是不可读的base64编码文本)。

请在此处阅读有关变体(材料/声音/粒子)的更多详细信息。这些内容没有太大的改变,因为我大部分时间使用相同的旧名称,因为这可以让我更自由和清晰地使用(主要是对我而言,但你也可以自由编辑它,你总是有一个最新的材料/声音/粒子列表)。

文本

对我而言,文本是这次更新的白璧微瑕,对此我必须道歉:我找不到一种方法来平滑地转换现有的语言文件。由于许多原因(我新增、删除或修改了很多文本,导致一些文本的含义改变,占位符不一致,等等)。

对文本进行自动转换只会得到一个混乱、不连贯、不美观的结果,而且也会花费大量时间(何况今年夏天我没有多少时间了)。所以译者必须用自己的语言重新翻译文本。对此我向所有的译者表示抱歉,我知道翻译文本可能真的很无聊,而且需要很长时间。

好的一面是,现在每个插件的文本都有自己的文件夹,而不是只有一个塞满了各种语言的texts.yml文件。这样翻译就不那么麻烦了。

指令

每次大型更新我都会优化我的指令库。我猜你们看到这个主要变更时会很高兴:不再需要-参数:值格式。

比如之前的指令你需要输入 /qc start -q:farm_quest -p:player,现在你只需输入 /qc start farm_quest player

参数无需遵循特定顺序:/qc start farm_quest GuillaumeVDN/qc start GuillaumeVDN farm_quest有相同的效果。

我优化了参数检测,现在你无需输入整个参数,你可以使用优化过的自动补全系统。如果插件停止给出参数建议,这就意味着插件找到了唯一匹配的结果。比如输入“Guillaume”你会得到“GuillaumeVDN”的结果,或者在没有其它名字是G开头的玩家在线时只输入“g”你也会得到该结果。

因此这些指令都会有相同的效果:/qc start GuillaumeVDN farm_quest/qc start Guillaume farm/qc start g farm/qc start g fa。这可以让输入指令不再那么繁琐,但如果输入的内容太短的话可能会得到无关结果。

如果没有指定目标玩家参数,则大多数带有目标玩家参数的指令将以发送者为目标。

值得一提的是,现在reload|重载指令会彻底重载全部配置和数据。

文件结构

Gcore的文件结构没有多大变化,但QuestCreator就恰恰相反。

下面是对新的层次结构的总结。新的特性和变更将在下面进一步解释。

  • /plugins/QuestCreator/ :
    • data_v6/:玩家/服务器数据文件(即使你使用MySQL,也会有本地文件)

      (之前全部数据文件都集中存储在GCore里)
    • quest_models/(一如既往)
    • quest_models_functional/(新增)
    • quest_activators/(之前所有激活器都位于同一个配置文件内)
    • quest_groups/(之前所有任务组都位于同一个配置文件内)
    • quest_pools/(之前所有任务池都位于同一个配置文件内)
    • quest_states/(新增)
    • guis/(一如既往)
    • global_branches/(新增)
    • global_conditions/(之前所有全局条件都位于同一个配置文件内)
    • global_gui_items/(新增)
    • global_objects/(新增)
    • global_time_frames/(新增)
    • global_variables.yml
    • server_variables.yml(新增)
    • default_variables.yml(之前位于config.yml内)
    • points_categories.yml(之前位于config.yml内)
    • config.yml(一如既往)

GUI

我也重制并优化了GUI处理。 现在的处理会尽可能地避免导致卡顿,尤其是加载大型多页GUI时或是加载很多玩家皮肤的排列GUI时。

如果你安装了ProtocolLib,则插件会使用客户端数据包。这可以在你安装了很多与GUI交互的插件时,避免Spigot处理额外的事件并优化性能。

同时我也对一些配置进行了优化,让你们有很多的编辑空间,比如页面配置和点击覆盖。详见该页面。

激活器和注册

我删掉了一些没用的激活器,比如ENABLED和DISABLED。现在任务不再需要激活器。只要有权限,玩家也能通过GUI或指令开始无激活器的。一些类型的激活器也经过了调整或被删除。

注册文件也不复存在了。你不再需要注册任务模型来开始任务。你可以直接在任务模型文件中配置激活器。任务组内的任务可以在其独立文件内进行配置。

任务目标和条件

大多数任务目标和条件都有变化(对名称和设置进行术语标准化或被删除/替换)。我添加了一些有用的东西,比如特殊目标——CONDITIONS_SWITCH|条件切换、LOGIC_SWITCH|逻辑切换和DIVERGE_GUI|GUI分支。详见任务目标列表。

多目标任务目标(方块/实体/物品)

长久以来用户要求的一个特性就是在同一任务目标内有多个对象。现在大多数方块、实体和物品都可以作为玩家的任务对象。

对于已存在的方块/物品/实体任务,目前只有一个可用的任务目标,插件会在多目标列表内创建一个子目标。该目标的id为a。比如:

# 旧版配置
my_object:
  type: PLAYER_BLOCK_BREAK
  block_type: [DIRT,GRASS_BLOCK]
  amount: 50

# 新版配置
my_object:
  type: PLAYER_BLOCKS_BREAK
  blocks:
    a:
      types: [DIRT,GRASS_BLOCK]
      goal: 50.0

将该id设置为a_'很重要_'。如果你更改了这个id,则进行该任务目标的玩家任务进度会被清空。

物品目标和关联条件

一些关联条件有其物品条件和目标,比如PLAYER_QUANTUMRPG_ITEM_PICKUP或MMOITEMS_ITEM。

由于新的简易NBT配置,这些目标已被移除(除了少部分十分具体的条件)。维护这些条件对我而言太痛苦了。更加一致的条件和目标更利于我进行维护。

对于那些具体的条件和目标,你可能需要再次导入。你需要进行一些测试,如果你遇到了问题,请联系我。

逻辑目标和条件

之前需要特定数字才能生效的大多数条件已被重构为逻辑字符串,比如“拥有X元”或“有一个变量的特定值”。这需要你拥有逻辑条件的基础知识,详见这里。

比如:

# 旧版配置
my_condition:
  type: HEROES_SKILL_LEVEL
  skill_name: my_skill
  operation: AT_LEAST
  value: 10
# 新版配置
my_condition:
  type: HEROES_SKILL_LEVEL
  skill: my_skill
  logic: '{skill_level} >= 10'

这同样作用于目标:之前影响特定值的目标也被重构为数学表达式字符串,比如“修改金钱”或“修改数值”。

比如:

# 旧版配置
my_object:
  type: SERVER_MONEY_CHANGE
  operation: 添加
  value: 100.0
# 新版配置
my_object:
  type: SERVER_LOGIC_MONEY
  value_formula: '{value} + 10'  # 货币+10
特例:CONDITIONS条件目标

CONDITIONS目标在新版中被移除了,现根据用法现已被分为了多个其它目标。

a) 如果拥有失败goto(用于连接两个目标):

# 旧版配置
my_object:
  type: CONDITIONS
  conditions:
    # ……此处省略条件设置
    goto_if_not_valid: QUEST_FAIL
  goto: OBJECT continue

# 新版配置
my_object:
  type: CONDITIONS_SWITCH
  cases:
    a:
      conditions:
        # ……此处省略条件设置
      goto: continue
    # 此处可有其它案例
  goto: QUEST_FAIL  # default goto

b) 如果没有失败goto(等待验证条件并继续):

# 旧版配置

my_object:
  type: CONDITIONS
  conditions:
    # ……此处省略条件设置
  goto: OBJECT continue


# 新版配置

my_object:
  type: NONE
  progress_conditions:
    # ……此处省略条件设置
  goto: continue

更多设置

我添加了许多设置,并对一些元素进行了标准化。对于大多数任务目标,我添加了很酷的东西,比如“items_needed”和“position_stay”。我为任务池增加了更多的控制选项,添加了一个更清晰的actor限制管理系统,以及针对每个元素添加了很多设置,详细信息请查阅相关页面。

全局元素

为了避免重复配置,我在之前的一堆更新里引入了 "全局变量 "和 "全局条件"的概念。我已经将这个原则扩展到任务目标、分支、GUI物品和时间范围。如果你花了很多时间把相同的配置部分从一个任务复制/粘贴到另一个任务中,那么这个功能很有用。更多信息请查看该页面。

还有更多内容!

我优化了很多配置,也新增了一些我未列出的新特性,这包括但不限于: