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-re
或db/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.lub
和data/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 转换为对应的道具名称(如果存在)