• Welcome to Rotar E@rth!
  • Feel free to look around and comment~
  • Tin - for a better fantasy life!
  • TinTimer - for an even better fantasy life!

MabiUITmp2Xml | 洛奇UI配置Tmp转XML工具

Game Rotar 4个月前 (07-02) 838次浏览 0个评论

背景 Background

近期R348的更新突然更换了UI配置文件的格式,从以往的C:\Users\用户名\Documents\洛奇\cache\角色名@服务器_sc.tmp变成了X:\客户端\路径\ui.##############.xml。两者的本质其实是一样的,但是格式和编码略有不同。官方不知为何没有实现自动过渡的功能,米莱西安们不得已只能自行转换。

本工具的目的便是以最少的操作完成文件的转换。

原理 Principle

  1. 角色名@服务器.tmp中提取角色ID(8个字节)。提取的偏移量取决于文件的第一个字节,如果是0x10或0x12,则偏移量为29。如果是0x13,则偏移量为37。
  2. 角色名@服务器_sc.tmp(UTF-8)中提取整个<ui>节点(第30个字节到文件尾-1),然后写入到X:\客户端\路径\ui.角色ID.xml(UTF-16LE)中。

截图 Screenshot

使用说明 Instructions

  1. 请先不要运行客户端。否则角色名@服务器_sc.tmp文件会被新的默认文件覆盖。(你也可以先备份好再运行。)
  2. 下载MabiUITmp2Xml_v0.0.0.1.zip并解压到客户端目录
  3. 直接运行MabiUITmp2Xml.exe。此方式会试图转换所有C:\Users\用户名\Documents\洛奇\cache\角色名@服务器_sc.tmp文件。
  4. 或者可以将备份的角色名@服务器_sc.tmp文件(们)拖动到MabiUITmp2Xml.exe上。此方式只会转换拖动的文件。

注意1:缺少文件或文件内容不正常时,会提示[WARNING]或者[ERROR]信息,可以自行根据信息查错。
注意2:如果你经历过合服并且没有改名,你的cache目录下可能会存在角色ID相同的角色名@旧服务器.tmp角色名@新服务器.tmp。这种情况下使用本工具生成的ui.角色ID.xml会来自二者之中最后被处理的文件。


VirusTotal扫描报告

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。

祝各位米莱西安武运昌隆 _(:з」∠)_


本网站采用BY-NC-SA协议进行授权 , 转载请注明原文链接:MabiUITmp2Xml | 洛奇UI配置Tmp转XML工具
喜欢 (105)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址