加载中...

「RO 笔记」设置自定义任务到 UI


0x00 前言

你是否有遇到类似的问题?

有时在右上角突然出现 Miss QuestID: ##### :

或者出现 Unknown Quest, ID = ##### :

打开【任务目录】(Alt + U)的可以看到它们,但却不知因何而来、也不知如何修改。

那么应该如何正确配置一个任务到 UI 呢?

0x10 任务配置

0x11 服务端配置

如果一个 NPC 的任务脚本需要做 CD(冷却时间)控制,大部份情况下需要绑定一个任务 ID,然后通过 checkquest 检查 CD 是否结束:

*checkquest({,PLAYTIME|HUNTING{,}})

If no additional argument supplied, return the state of the quest:
    -1 = Quest not started (not in quest log)
    0  = Quest has been given, but the state is "inactive"
    1  = Quest has been given, and the state is "active"
    2  = Quest completed

If parameter "PLAYTIME" is supplied:
    -1 = Quest not started (not in quest log)
    0  = the time limit has not yet been reached
    1  = the time limit has not been reached but the quest is marked as complete
    2  = the time limit has been reached

If parameter "HUNTING" is supplied:
    -1 = Quest not started (not in quest log)
    0  = you haven't killed all of the target monsters and the time limit has not been reached.
    1  = you haven't killed all of the target monsters but the time limit has been reached.
    2  = you've killed all of the target monsters

例如 “星座之塔” 副本,在开启前会检查 CD 时间:

.@cd = checkquest(30059, PLAYTIME);
if (.@cd == 0 || .@cd == 1) {
    mes "副本冷却等待 24 小时";
    close;

} else {
    mes "可以再次进入星座之塔";
    erasequest 30059;   // 从玩家的任务日志中删除该任务缓存记录
    ... ...
    setquest 30059;     // 激活任务
    ... ...
    close;
}

其中 30059 就是绑定的任务 ID,它在 db/quest_db.yml 中定义为:

  # 星座之塔副本 Constellation of Tower
  - Id: 30059
    Title: 星座之塔
    TimeLimit: +24h

0x12 客户端配置

然后修改 System/OngoingQuestInfoList.lub 配置,在其中添加一个节点:

[30059] = { 
    Title = "星座之塔", 
    Description = { 
        "看来有人推翻了 “无尽之塔” ... ", 
        "以星座之名,直面挑战这个新主人吧 !"
    }, 
    Summary = "EP 18.1, Lv 240+, CD: 24h" 
},

注意客户端任务 ID 要和服务端任务 ID 的保持一致

System/OngoingQuestInfoList.lub 作用是进行中的任务,它对应的就是【任务目录】中的 In Progress 标签页的任务。

配置完成后、重新进入游戏,当玩家触发 NPC 任务后,任务因为处于 “进行中” 的状态,就会自动显示在 In Progress 面板和右上角中:

顺便一提,System/RecommendedQuestInfoList.lub 对应的是【任务目录】中的 News 标签页的情报,这个标签的内容是相对固定的,不会因为玩家的行为而改变:

0x20 客户端修改了,不起作用?

如果你发现修改了这两个配置文件:

  • System/OngoingQuestInfoList.lub
  • System/RecommendedQuestInfoList.lub

但是任务 UI 面板却没有显示你新增的任务/情报、甚至于报错,很可能是你在 DIFF 的时候没有指定正确路径导致的:

你可能有疑问,明明 DIFF 指定的文件名是对的,为什么不生效?

这是因为,这两个文件在 System 目录下也是特殊的存在

一般而言,我们在 DIFF 指定文件路径的时候都是要带上文件后缀的,例如 System/Iteminfo.lubSystem/Iteminfo.lua 等,

唯独 OngoingQuestInfoListRecommendedQuestInfoList 不需要带上后缀!

一旦在 DIFF 中配置成 System/OngoingQuestInfoList.lub,实际上客户端搜索的路径就变成 System/OngoingQuestInfoList.lub.lub,但因为文件不存在,从而导致报错:

对于 System 目录下的文件、DIFF 时哪些需要或不需要文件后缀,这里特别归纳了一下:

文件名 DIFF 是否需要加上后缀
Iteminfo 需要
MapInfo 需要
Towninfo 需要
Tipbox 需要
PetEvolutionCln 需要
PrivateAirplane 需要
MonsterSizeEffect 需要
CheckAttendance 需要
AchievementList 需要
OngoingQuestInfo 不需要
RecommendedQuestInfo 不需要

因此,OngoingQuestInfoListRecommendedQuestInfoList 正确的配置方法应该是:

这里的 Nemo 其实也误导了我们:Nemo 提供的默认配置是带后缀的,一但不注意就会配错

0x30 参考资料


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
3DS 翻新改造笔记 3DS 翻新改造笔记
最近把 8 年前吃灰的 3DS 翻出来了,打算改造为 3DS + NDS + GBA + FC 四合一掌机,因为改造过程有点心酸,特此记录下来 ...
2024-05-12
下一篇 
「BrowEdit3 入门教程 01」 安装、配置、界面介绍 「BrowEdit3 入门教程 01」 安装、配置、界面介绍
BrowEdit3 是一款强大的地图编辑工具,专为 Ragnarok Online 地图设计而开发,对象、障碍、纹理、光影等元素皆可编辑。本系列教程将帮助大家认识 BrowEdit3 最基础的使用方法 ...
2024-04-02
  目录