* 【use of terms】
* ・允许修改此插件,但禁止转载。
* ・如果出现错误,原因是其他插件引起的,我将不会修复此插件。
* ・如果问题来自于此插件本身,我会修复错误,但不承担责任。
* ・可以在非商业或商业游戏中自由使用,包括成人游戏。
*
* ・【使用此插件时,请按以下要求进行操作】
* ・请在您的游戏自述文件中写入我的姓名、网站名称和网址。
*
* Name: ayatam
* Website name: Another Young Animations 公式サイト
* URL: [url]https://ayatam.wixsite.com/index[/url]
*
* =============================================================================
* 【How to use】
* ・首先设置游戏的“全局设置”和“自定义设置”,然后开始创建
* “任务数据库”,然后您就可以开始使用了。
* 至少需要一个任务才能开始。
* 如果您在设置任务时出错,
* 此插件将弹出一个控制台并显示您遗漏的内容。
* ・使用以下脚本命令,在您的游戏中注册任务系统。
* ・没有插件命令,只有脚本命令。
*
* 【规格】
* ・此插件不适用于智能手机游戏。
* ・我已经在地图场景中去掉了窗口遮罩,
* 如果您需要窗口遮罩,我不建议您使用此插件。
*
* 【任务系统的图片文件路径】
* img/quests/
* 请创建此文件夹以便在任务系统中使用图片。
* -----------------------------------------------------------------------------
* 【如何备份任务系统】
* ・首先打开“任务数据库”,您将找到已创建的任务列表。
* ・在该窗口中打开文本选项卡,将显示的代码复制并粘贴到安全的地方。
* 这样,您就完成了对“任务数据库”的备份。
* 【如何重新打开您的备份】
* ・获取您刚刚复制和粘贴的代码,并将其粘贴回原来复制的位置。如果是
* “任务数据库”列表的备份,请将其粘贴到任务列表文本选项卡中。然
* 后,您就可以重新打开您的备份了。
* ・您也可以使用相同的方法备份“全局设置”和“自定义设置”。
*
* -----------------------------------------------------------------------------
* 【这是一个帮助您设置颜色代码的网站】*日语网站。
* ・RPGツクールMVのシステムカラーのカラーコード表
* [url]https://www.ssaits.jp/blog/system/game/tkool/font-color.html[/url]
* ・颜色代码生成网站
* [url]https://www.peko-step.com/tool/tfcolor.html[/url]
* =============================================================================
*
* =============================================================================
*
* Script Command - Scene`s -
*
* =============================================================================
*
* ●打开任务主菜单
* Ayatam.QUEST.openQuestMenu()
* *您需要至少一个赋予同意的任务才能打开菜单。
*
* *如果您想直接打开任务菜单。
* SceneManager.push(Scene_QuestMenu)
* 如果您需要至少一个赋予同意的任务才能打开任务菜单,
* 使用以下代码来获取true或false。
* $gameQuest.canOpenQuestMenu()
*
* -----------------------------------------------------------------------------
*
* ●打开任务板
* 任务板只会显示可以接受的任务。
* 可接受的任务包括“未接受”、“未报告”的任务,
* 并且不是“失败”的(在失败模式下)和“仅限NPC”的任务。
*
* -----------------------------------------------------------------------------
*
* Ayatam.QUEST.openQuestBoard(id,name,list,mode)
* id : 任务板ID
* 将id设置为0以显示所有可接受的任务。
* name : 任务板名称
* 使用''(单引号)并填写任务板的名称。如果要使用
* “全局设置”中的任务板名称,则输入null。
* list : 条目 id.
* 0:根据您在“全局设置”>“任务需求设置”>“选择需求”
* 中设置的条件显示可接受的任务。
* 1:使用队伍领导角色的等级来显示列表。ID 1用于向玩家展
* 示其他推荐的任务,以便接受任务。
* 队伍领导角色的等级可在任务自身中设置。
* 2:显示所有非“仅限NPC”的任务。类似于ID 1,但不使用
* 队伍领导角色的等级来显示。
* 如果任务未设置任何要求,则在列表中显示该任务。
* mode: 设置为true/false。
* 玩家选择任务后的响应方式。
* true:显示需求窗口并询问玩家是否同意接受任务。
* false:忽略需求窗口并直接询问玩家是否同意接受任务。
*
* 【示例:1】使用列表模式1显示任务板,不更名, 忽略
* 需求并直接询问玩家是否同意接受任务。
* Ayatam.QUEST.openQuestBoard(0,null,1,false)
*
* 【示例:2】显示所有包含任务板ID为1的任务,
* 将任务板名称更改为“测试任务板”,并
* 显示需求窗口并询问玩家是否同意接受任务。
* Ayatam.QUEST.openQuestBoard(1,'test board',0,true)
*
* =============================================================================
*
* =============================================================================
*
* 脚本命令 - 接受任务-
*
* =============================================================================
*
* ●显示需求窗口,然后显示任务信息的脚本命令如下:
* Ayatam.QUEST.showCheckQuest(id,mode)
* id : id : 任务ID。
* 使用''(单引号)并填写任务ID。
* *任务ID将是“任务数据库”中的列表编号。
* mode : 如果任务需求满足,则响应方式如下...
* true: 询问玩家是否同意接受任务
* false: 让事件接管
* *如果省略,则默认设置为false。
*
* 【示例:1】如果您想获得的任务在“任务数据库”列表编号1中,
* 并显示要接受任务的需求,
* 如果满足条件,则询问玩家是否接受任务1。
* Ayatam.QUEST.showCheckQuest('quest1',true)
*
* 【示例:2】如果您想获得的任务在“任务数据库”列表编号2中,
* 即使满足接受任务的需求,
* 也让事件接管。
* Ayatam.Quest.showCheckQuest('quest2')
*
* -----------------------------------------------------------------------------
*
* ●获取玩家按下的键,以执行“显示需求窗口然后显示任务信息”的操作。
* *用于辅助执行“显示需求窗口然后显示任务信息”的命令。
* Ayatam.QUEST.showCheckChoice()
*
* 【示例】此命令仅在
* Ayatam.QUEST.showCheckQuest(id, mode) 的
* mode 设置为 false 时起作用。
*
* 玩家按键响应的时机是在打开
* 需求窗口时获取玩家按下的确认/取消键。
*
* 当按下确认键时,并且满足条件时执行操作。
* 当按下取消键时,或者条件不满足时执行操作。
*
* *这个命令用于事件指令中的「流程控制」-「条件分支」的脚本命令。
* *this command is use for event command 'Flow control'
* 「Conditional branch」`s script command.
*
* -----------------------------------------------------------------------------
*
* 向玩家询问是否接受任务。
* Ayatam.QUEST.showQuest(id)
* id : quest id.
* 使用''(单引号)并填写任务ID。
* *任务ID将是“任务数据库”中的列表编号。
*
* 【示例】如果您想获得的任务在“任务数据库”列表编号1中,
* 则显示任务1的信息,不要询问需求,
* 并询问玩家是否接受。
* Ayatam.QUEST.showQuest('quest1')
*
* -----------------------------------------------------------------------------
*
* ●强制接受任务
* Ayatam.QUEST.forceAssent(id)
* id : quest id.
* 使用''(单引号)并填写任务ID。
* *任务ID将是“任务数据库”中的列表编号。
*
* 【示例】如果您想获得的任务在“任务数据库”列表编号1中,
* 则显示任务1的信息,不要询问需求,
* 并询问玩家是否接受。
* Ayatam.QUEST.forceAssent('quest1')
*
* -----------------------------------------------------------------------------
*
* ●汇报任务进度
* Ayatam.QUEST.reportQuest(id)
* id : quest id.
* 使用''(单引号)并填写任务ID。
* *任务ID将是“任务数据库”中的列表编号。
*
* 【示例】如果您想获得的任务在“任务数据库”列表编号1中,
* 并且任务1的所有目标都可以汇报,
* 则询问玩家是否要进行汇报。
* Ayatam.QUEST.reportQuest('quest1')
*
* -----------------------------------------------------------------------------
*
* ●强制汇报任务进度
* Ayatam.QUEST.forceReportQuest(id)
* id : quest id.
* 使用''(单引号)并填写任务ID。
* *任务ID将是“任务数据库”中的列表编号。
*
* 【示例】如果您想获得的任务在“任务数据库”列表编号1中,
* 并且所有目标都可以汇报,
* 则不做任何询问,直接进行汇报。
* Ayatam.QUEST.forceReportQuest('quest1')
*
* -----------------------------------------------------------------------------
*
* ●设置当前任务为失败状态
* Ayatam.QUEST.failQuest(id)
* id : quest id.
* 使用''(单引号)并填写任务ID。
* *任务ID将是“任务数据库”中的列表编号。
*
* 【示例】如果您想获得的任务在“任务数据库”列表编号1中,
* 则只需将任务设置为失败状态。
* Ayatam.QUEST.failQuest('quest1')
*
* *仅当任务系统为“失败模式”时才有效。
*
* -----------------------------------------------------------------------------
*
* ●重置已接受的任务
* Ayatam.QUEST.resetQuest(id)
* id : quest id.
* 使用''(单引号)并填写任务ID。
* *任务ID将是“任务数据库”中的列表编号。
*
* 【示例】如果您想获得的任务在“任务数据库”列表编号1中,
* 并且任务1已经被接受,
* 则会重置该任务。
* Ayatam.QUEST.resetQuest('quest1')
*
* *当重置任务时,也会使用每个任务中的“删除信息”
* 设置进行重置。
*
* -----------------------------------------------------------------------------
*
* 用于调试,获取所有在任务列表中的任务
* Ayatam.QUEST.getAllQuest()
*
* -----------------------------------------------------------------------------
*
* ●重置所有已接受的任务
* Ayatam.QUEST.resetAllQuest()
*
* =============================================================================
*
* =============================================================================
*
* 脚本命令 - 任务导航器
*
* =============================================================================
*
* ●显示任务导航器:
* *仅当任务设置为导航时才起作用。
* Ayatam.QUEST.showQuestNavi()
*
* -----------------------------------------------------------------------------
*
* ●隐藏任务导航器:
* *仅当任务设置为导航时才起作用。
* Ayatam.QUEST.hideQuestNavi()
*
* *!!!注意!!!
* 当您在导航器已设置为导航任务的情况下从事件中隐藏导航器时,
* 在事件结束后必须使用 'show navigator' 命令来再次显示导航器。
* 如果您在 'hide navigator' 命令中不包括 'show navigator',
* 则在事件结束后导航器将显示不正常。
* 因此,请使用 'show navigator' 和 'hide navigator' 一起使用。
* 请注意,在隐藏导航器后,在事件完成后使用 'show navigator'
* 命令以重新显示导航器,以保持导航器的正确显示。
*
* -----------------------------------------------------------------------------
*
* ●获取是否有任何任务被设置为导航「条件分支」
* $gameQuest.questInNavi()
* 如果有任何任务被设置为导航,则返回 true。
* 如果没有任何任务被设置为导航,则返回 false。
* *此命令用于事件指令中的「流程控制」-「条件分支」的脚本命令。
*
* =============================================================================
*
* =============================================================================
*
* 脚本命令 - 任务条件 - 「条件分支」
* *以下的这些命令用于事件指令中的「流程控制」
* -「条件分支」的脚本命令。
*
* =============================================================================
*
* 是否能够接受任务?
* $gameQuest.canAssent(id)
* id : quest id.
* 使用''(单引号)并填写任务ID。
* *任务ID将是“任务数据库”中的列表编号。
*
* 如果任务可以接受,则返回true。
* 如果任务无法接受,则返回false。
*
* 【示例】如果您要检查是否可以接受的任务在
* “任务数据库”列表编号3中,
* $gameQuest.canAssent('quest3')
*
* -----------------------------------------------------------------------------
*
* ●任务是否可以报告?
* $gameQuest.canReport(id)
* id : quest id.
* 使用''(单引号)并填写任务ID。
* *任务ID将是“任务数据库”中的列表编号。
*
* 如果任务可以进行报告,则返回true。
* 如果任务尚不能进行报告,则返回false。
*
* 【示例】如果您要检查的任务在“任务数据库”中
* 的列表编号为3。
* $gameQuest.canReport('quest3')
*
* -----------------------------------------------------------------------------
*
* ●任务是否接受?
* $gameQuest.isAssented(id)
* id : quest id.
* use ''(Single quote) and write quest id.
* *quest id will be the list number in 'Quest Database'.
*
* 如果任务已接受,则返回true。
* 如果任务尚未接受,则返回false。
*
* 【示例】如果您想要检查“任务数据库”中列表编号为3
* 的任务是否已接受。
* $gameQuest.isAssented('quest3')
*
* -----------------------------------------------------------------------------
*
* ●任务是否已报告?
* $gameQuest.isReported(id)
* id : quest id.
* use ''(Single quote) and write quest id.
* *quest id will be the list number in 'Quest Database'.
*
* 如果任务已报告,则返回true。
* 如果任务尚未报告,则返回false。
*
* 【示例】如果您想要检查“任务数据库”中列表编号为3
* 的任务是否已报告。
* $gameQuest.isReported('quest3')
*
* =============================================================================
*
* =============================================================================
*
* 脚本命令「quest_obj」- 任务目标 -
*
* =============================================================================
*
* 将数量插入到任务目标的当前进度中
* Ayatam.QUEST.insObj(id,setId,amount)
* id : 任务编号。
* 使用''(单引号)并填写任务编号。
* *任务编号将是在“任务数据库”中的列表编号。
* setId : 目标集合编号。
* 使用''(单引号)并填写目标集合编号。
* *目标集合编号将是在任务的“目标列表”中的列表编号。
* amount : 要插入的数量。
*
* 【示例】如果您想要将20插入到任务2的目标集合1中。
* Ayatam.QUEST.insObj('quest2','set1',20)
*
* -----------------------------------------------------------------------------
*
* ●向目标当前进度添加数量
* Ayatam.QUEST.addObj(id,setId,amount)
* id : quest id.
* 使用''(单引号)并写入任务id。
* *任务id将是“任务数据库”中的列表编号。
* setId : objective set id.
* 使用''(单引号)并写入目标集合id
* *目标集id将是任务“目标列表”中的列表编号。
* amount:要添加的数量。
*
* 【示例】如果您想将5添加到任务3的目标集4中。
* Ayatam.QUEST.addObj('quest3','set4',5)
*
* -----------------------------------------------------------------------------
*
* ●从目标当前进度中减去一定数量的值
* Ayatam.QUEST.subObj(id,setId,amount)
* id : 任务id。.
* 使用''(单引号)并填写任务id
* *任务id将是'任务数据库'中的列表编号。
* setId : 目标集合id。
* 使用''(单引号)并填写目标集合id
* *目标集合id将是任务'目标列表'中的列表编号。
* amount : 要减去的数量。
*
* 【例子】如果你想从任务1的目标集合2中减去40。
* Ayatam.QUEST.subObj('quest1','set2',40)
*
* -----------------------------------------------------------------------------
*
* ●获取目标进度
* Ayatam.QUEST.questObj(id,setId)
* id : 任务id。
* use ''(Single quote) and write quest id.
* *quest id will be the list number in 'Quest Database'.
* setId : 目标集合id。
* use ''(Single quote) and write quest id.
* *objective set id will be the list number in quest 'objective list'.
*
* 【例子】如果你想查找任务1的目标集合2的进度。
* Ayatam.QUEST.questObj('quest1','set2')
*
* 【使用示例1】
* Ayatam.QUEST.questObj('quest1','set2') >= 4
* 这意味着任务1的集合2的进度是否大于4?
* 它将返回true/false
*
* *此命令用于事件命令“流程控制”的「条件分支」的脚本命令。
*
*
* 【使用示例2】
* $gameVariables.setValue(1,Ayatam.QUEST.questObj('quest1','set2'))
* 这意味着将任务1的集合2的进度数值插入到变量ID 1 中。
*
*
* *此命令用于事件命令“高级脚本命令”。
*
* -----------------------------------------------------------------------------
*
* ●更改目标完成进度的数量
* Ayatam.QUEST.objChangeClearAmount(id,setId,amount)
* id : id : 任务id。
* use ''(Single quote) and write quest id.
* *quest id will be the list number in 'Quest Database'.
* setId : 目标集合id。
* use ''(Single quote) and write quest id.
* *objective set id will be the list number in quest 'objective list'.
* amount : 要插入的新完成进度数量。
*
* 【例子】如果你想将任务3的目标集合2的完成进度数量更改为10。
*
* Ayatam.QUEST.objChangeClearAmount('quest3','set2',10)
*
* =============================================================================
*
* =============================================================================
*
* 脚本命令 - 任务地图图标 -
*
* =============================================================================
*
* ●在事件上显示任务图标「注释」
* 「在事件页的第一行实现此功能」
* <quest: id, x, y>
* id : 任务id。
* 使用''(单引号)并填写任务id。
* *任务id将是'任务数据库'中的列表编号。
* x : X坐标的调整值。
* y : Y坐标的调整值。
*
* *如果当前任务可接受,这将显示你在'任务数据库'中设置的'任务图标'。
* 当任务被接受后,图标会消失。
* 当任务可以进行报告时,图标会变为你在'全局设置'中设置的'任务报告图标'。
* *每个事件页只能设置一个任务图标。
* 如果切换了事件页,则可以实现不同的任务。
*
* 【example of use:1】<quest: quest1, 0, 0>
* 这意味着当任务1可接受时,它将显示任务1的'任务图标'。
* 并且没有对X和Y坐标进行调整。
*
*
* 【example of use:2】<quest: quest1, -10, -10>
* 这意味着当任务1可接受时,它将显示任务1的'任务图标'。
* 并且将X坐标调整为-10,Y坐标调整为-10。
*
*
* -----------------------------------------------------------------------------
*
* ●在事件上显示任务图标「注释」
* 「在事件页的第一行实现此功能」
* <questStay: id, x, y>
* id : 任务id。
* 使用''(单引号)并填写任务id。
* *任务id将是'任务数据库'中的列表编号。
* x : adjust value of x coordinate.
* y : adjust value of y coordinate.
*
* *如果当前任务可接受且正在进行中,这将显示你在'任务数据库'中设置的'任务图标'。
* 当任务被接受后,图标将保持出现。
* 当任务可以进行报告时,图标会变为你在'全局设置'中设置的'任务报告图标'。
* *每个事件页只能设置一个任务图标。
* 如果切换了事件页,则可以实现不同的任务。
*
* 【example of use:1】<questStay: quest1, 0, 0>
* 这意味着当任务1可接受且正在进行时,
* 它将显示任务1的'任务图标'。
* 并且没有对X和Y坐标进行调整。
*
* 【example of use:2】<questStay: quest1, -10, -10>
* this mean`s it will show 'quest icon' of quest 1
* when the quest 1 is available to assent and in progress.
* and adjustment coordinate to x -10 and y -10.
*
* -----------------------------------------------------------------------------
*
* ●在事件上显示目标激活图标「注释」
* 「在事件页的第一行实现此功能」
* <questObj: id, setId, x, y>
* id : quest id.
* use ''(Single quote) and write quest id.
* *任务id将是'任务数据库'中的列表编号。
* setId : objective set id.
* use ''(Single quote) and write quest id.
* *目标集合id将是任务'目标列表'中的列表编号。
* x : adjust value of x coordinate.
* y : adjust value of y coordinate.
*
* *当玩家接受了当前任务并且设置的目标已经激活时,
* 这将显示你在'全局设置'中设置的'目标激活图标'。
* *每个事件页只能设置一个目标激活图标。
* 如果切换了事件页,则可以实现不同的任务。
*
* 【example of use:1】<questObj: quest1, set1, 0, 0>
* 这意味着当任务1的目标集合1被激活时,
* 它将显示'目标激活图标'。
* 并且没有对X和Y坐标进行调整。
*
* 【example of use:2】<questObj: quest1, set1, +10, -20>
* this mean`s it will show 'Objective Active Icon' of quest 1`s
* objective set 1 is activated.
* and adjustment coordinate to x +10 and y -20.
*
* *当当前任务设置为'根任务'时,目标将逐个被激活。
*
*
* =============================================================================