背景 Background
近期R348的更新突然更换了UI配置文件的格式,从以往的C:\Users\用户名\Documents\洛奇\cache\角色名@服务器_sc.tmp变成了X:\客户端\路径\ui.##############.xml。两者的本质其实是一样的,但是格式和编码略有不同。官方不知为何没有实现自动过渡的功能,米莱西安们不得已只能自行转换。
本工具的目的便是以最少的操作完成文件的转换。
原理 Principle
- 从
角色名@服务器.tmp中提取角色ID(8个字节)。提取的偏移量取决于文件的第一个字节,如果是0x10或0x12,则偏移量为29。如果是0x13,则偏移量为37。 - 从
角色名@服务器_sc.tmp(UTF-8)中提取整个<ui>节点(第30个字节到文件尾-1),然后写入到X:\客户端\路径\ui.角色ID.xml(UTF-16LE)中。
截图 Screenshot
使用说明 Instructions
- 请先不要运行客户端。否则
角色名@服务器_sc.tmp文件会被新的默认文件覆盖。(你也可以先备份好再运行。) - 下载MabiUITmp2Xml_v0.0.0.1.zip并解压到客户端目录
- 直接运行
MabiUITmp2Xml.exe。此方式会试图转换所有C:\Users\用户名\Documents\洛奇\cache\角色名@服务器_sc.tmp文件。 - 或者可以将备份的
角色名@服务器_sc.tmp文件(们)拖动到MabiUITmp2Xml.exe上。此方式只会转换拖动的文件。
注意1:缺少文件或文件内容不正常时,会提示[WARNING]或者[ERROR]信息,可以自行根据信息查错。
注意2:如果你经历过合服并且没有改名,你的cache目录下可能会存在角色ID相同的角色名@旧服务器.tmp和角色名@新服务器.tmp。这种情况下使用本工具生成的ui.角色ID.xml会来自二者之中最后被处理的文件。
| Name | Value |
|---|---|
| SHA-256 | 0d3f819530902ef4b2a2e4a5413d4efa9e7f9afd7f018d85346ecae99ffef534 |
| File name | MabiUITmp2Xml.exe |
| Detection ratio | 5 / 72 |
| Analysis date | 2020-07-02 00:55:19 UTC |
由于会读取Documents下的文件并且生成新文件,所以容易被误判为木马,不放心的话请不要使用。
吐槽 Remarks
不得不说官方的这次文件改动…很乱。账号角色稍多一点的米莱西安的客户端目录很快就会惨不忍睹。
此外角色ID这个东西,原本俺以为是单服务器内唯一的,现在这个弄法莫非意味着其实是跨服务器唯一值?否则玩不同服的相同角色ID角色的米莱西安的UI配置就会冲突。(虽然这个事件出现的几率不高,但总还是有可能的。)
其实可能用Python之类的脚本语言实现会容易不少,不过借此机会再熟悉熟悉C++也是不错的。从发布的角度来看,Python需要捆绑一整个运行环境(可能会超过5MB),而C++则可以仅占用几百KB。
祝各位米莱西安武运昌隆 _(:з」∠)_

非常感谢!!我才看到我一直用的2012年的版本……刚刚更新了新的package tool,解包一切正常了!!!太感谢了(抱紧
我使用的MabinogiPackageTool,解包整个355pack,之后打开的位于data\material\_define\material\character下面的高光定义文件material_highgloss.xml 。我曾经在老版本包内更改过这个,当时还是正常的,但是某次更新之后解包出来的这个文件就无法解读了(大概是几年前的事情)……之后几乎所有的xml都无法正常用记事本、写字板或word打开。
MabinogiPackageTool曾经更新过一次,你使用的可能不是最新版。试了一下台服的360_full.pack可以解并且没有看到乱码问题。
rotar,您好,想问一下,这个能否用于一些解包出来的乱码的xml文件转换为正常可以显示使用的xml文件?最近苦恼于新的pack解包出来的文件无法像以往那样编辑来制作一些mod……
初步判断这个工具应该不适用于你所遇到的问题。
此外不确定你说的“解包出来的乱码的xml文件”是什么。测试了一下364的pack提取出的xml是正常的。如果你指的是features.xml.compiled,这个是根据xml文件额外处理过的文件,并不是文本文件。