加载中...

「RO 笔记」SDE 基础使用指引


0x00 SDE 是什么

SDE(Server Database Editor)和 GRF Editor 是同一个作者。

SDE 最初主要是为了作为 RO 客户端的数据库(物品、任务、成就)编辑器而开发的,因此 SDE 使用了 GRF Editor 的开发引擎。

后来经过作者优化,SDE 得以兼容更多服务端的数据库格式(txt、yml、sql),并可以和客户端素材进行关联,使得它现在已经可以轻松管理服务端和客户端的多种数据库。

SDE 是围绕 rAthena 的生态开发的,如果用在其他模拟器框架可能会存在兼容性问题,导致加载数据库文件时可能会发生异常

先来看看最终配置完的效果:

0x10 设置服务端数据库文件

首先确保最左边的的导航菜单选中了「软件设置」。

找到「服务端 DB 文件夹」,点击后面的「浏览…」按钮,在 RO 服务端根目录下找到:

  • 复兴前数据库位置: db/pre-re
  • 复兴后数据库位置: db/re

按服务端实际部署的是复兴前或复兴后,选择一个即可。

0x20 设置客户端数据库文件

0x21 设置 GRF 资源文件

找到「资源文件或文件夹」,在下方框中的空白处点击鼠标右键,在弹出的菜单中点击「Add…」按钮:

然后需要根据 RO 客户端根目录的 data.ini 文件所设置的 GRF 加载顺序,逐一添加 GRF 到 SDE :

例如我这里有 5 个 GRF,需要把包含素材图档的 GRF 加载进来,否则后面在 SDE 查看道具时会出现图档缺失:

[Data]
1=data.grf              // 主 GRF,必须加载
2=data_illust.grf       // 立绘 GRF,可以不加载
3=data_jro_201608.grf   // 头饰 GRF,新道具的素材图档,需要加载
4=data_clothes_2022.grf // 服装 GRF,新道具的素材图档,需要加载
5=data_maps.grf         // 地图 GRF,可以不加载

如果你只有 data.grf,加载这个即可。但是注意所有 GRF 都不能加密,否则 SDE 读取不了

当加载 GRF 后,下方「Text 文件」和「Lua 文件」中与 data 目录相关的文件会自动加载:

0x22 设置 System 资源文件

不难注意到右下角的「成就」和「物品说明」没有自动载入。

对应点击后面的「浏览…」,在 RO 客户端的 System 目录下可以找到这两个文件:

  • 成就: achievement_list.lub
  • 物品说明: itemInfo.lua

注意这两个文件是 lua 或 lub 都无所谓, SDE 会自动反编译。但是 itemInfo 需要根据实际情况选择你 DIFF 时设置的文件,它有可能是 itemInfo.lua、 itemInfo_Sak.lub、 itemInfo_true.lub 等


也不难注意到左下角还有一个「成就」没有自动载入,但是「浏览…」不能点击。

其实去掉「是否使用 lua 文件」前面的勾就能点击「浏览…」进行配置了:

至于是否勾选「是否使用 lua 文件」,可以自己体验一下区别,我个人感觉最明显的区别是:

  • 当勾选时,由于 itemInfo 生效,在物品库中是合并且关联了客户端和服务端的道具
  • 当不勾选时,由于 itemInfo 失效,在物品库中只有服务端的道具

0x30 设置编码

最后为了避免在加载数据后出现乱码,需要设置编码:

  • 客户端编码: 固定选择 Chinese Simplified (936 - GB2312)
  • 服务端编码: 根据 db/pre-redb/re 下的文件编码选择,一般是 Chinese Simplified (936 - GB2312)UTF-8 (65001 - Unicode)

0x40 保存工程

由于每次都这样配置太过于麻烦,所以 SDE 提供了保存当前配置的功能:

点击左上角的「文件」->「保存」即可存储当前工程的配置:

下次运行 SDE 时,只需要在「文件」->「打开」选择这个配置文件即可恢复当前工程。

0x50 加载数据

加载数据有两种方式:

第一种方式是点击左侧导航菜单中除了「软件设置」和「控制台报错」之外的任意一个菜单即可,加载进度可以看右上角进度条:

第二种方式是点击上方「编辑」->「重新加载数据」:

0x60 异常处理

当加载数据完成后,会自动切换到「控制台报错」菜单,告诉你哪些数据加载失败了:

但是如果你没修改过这些文件,基本都不用管,因为现在的 SDE 版本没有随 rAthena 更新,出现不兼容的情况很正常,这部分数据不能依赖 SDE 编辑,只能人工到配置文件中修改。

例如最新的四转服中,有一个新职业「魂灵师」(杜兰族的上位职业),其职业代码是 Spirit_Handler

因为 SDE 中没有收录这个职业,在加载这个职业相关的数据时会不断报错:

由于每一条数据都会报错一次,所以想全部跳过的话,只能在跳出报错框时「长按回车键」跳过。

0x70 常用功能概览

至此 SDE 的基础使用就介绍完了,更多进阶的使用、后面会配合实际场景再出一份指引。

这里先大概看一下 SDE 的各个菜单能力:

0x71 物品(服务端视角)

此数据关联了 db/re/item_db*.yml 多个文件

0x72 客户端物品

此数据关联了 System/itemInfo.lua 文件

0x73 任务(服务端视角)

此数据关联了 db/re/quest_db.yml 文件

0x74 客户端任务

此数据关联了 data/questid2display.txt 文件

0x75 成就(服务端视角)

此数据关联了 db/re/achievement_db.yml 文件

0x76 客户端成就

此数据关联了 Syetem/achievement_list.lub 文件

0x77 物品套装

由于最新版的 rAthena 把套装数据库文件更名为 item_combos.yml,但是 SDE 最新版依然还在读取旧的文件名 item_combo_db,因此这个菜单是没有数据的:

0x78 技能(玩家)

此数据关联了 db/re/skill_db.yml 文件

0x79 魔物

此数据关联了 db/re/mob_db.yml 文件

0x7A 魔物技能

此数据关联了 db/re/mob_skill_db.txt 文件

0x7B 生命体

由于最新版的 rAthena 的人工生命体数据文件 homunculus_db.yml 的格式已变更,但是 SDE 最新版还在按旧格式读取,因此这个菜单是没有数据的:

0x7C 宠物

此数据关联了 db/re/pet_db.yml 文件

0x7D 城堡

此数据关联了 db/re/castle_db.yml 文件

0x7E 未实现菜单

不难注意到,在「技能消耗」和「常量」的菜单后面都没有标注 imp,说明还没实现这个菜单,因此是无数据的。

0x80 更多常用功能

在顶部菜单的「数据」和「工具」中有更多常用的功能:

0x81 编辑时装索引表

「数据」->「编辑 accessory」:

用于辅助修正 data/luafiles514/lua files/datainfo/accessoryid.lubdata/luafiles514/lua files/datainfo/accname.lub 的时装头饰图档索引

0x82 编辑 Mapcache

「工具」->「Mapcache 编辑器」:

用于编辑 db/re/map_cache.dat 地图缓存文件

0x83 魔物素质修改

「工具」->「魔物素质修改」:

用于快速修改 db/re/mob_db.yml 的魔物素质倍率

0x84 商店编辑器

「工具」->「商店编辑器」:

只需要把任意商店的 NPC 脚本拷贝过来,即可根据其中的道具价格等信息组装成商店列表

0x85 物品 ID 转名称

「工具」->「转换文本中的物品 ID」:

用于实时把任意文本中的 ID 转换为对应的道具名称(如果存在)


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
「Gym 课程笔记 03」经典控制 - Cart Pole 倒立摆 「Gym 课程笔记 03」经典控制 - Cart Pole 倒立摆
Cart Pole 是一个倒立摆问题,目标是控制一个小车来平衡一个竖直安装在其上的杆子,坚持越久则智能体训练得越好。
2023-12-24
下一篇 
「RO 笔记」GRF 加密指引 「RO 笔记」GRF 加密指引
当你辛苦做了一堆特色素材,但是担心一发布被别人扒走到他的服务器上,有什么办法保护自己的劳动成果呢 ?
2023-12-21
  目录