游戏

合并大区角色数据处理

合并大区角色数据处理

:::tip 前情提要 《剑网3》2024.04.18维护过后,将原【电信一区】、【电信五区】、【电信八区】统一合并为【电信区】、将原【双线一区】、【双线二区】、【双线四区】统一合并为【双线区】! 大区合并后的相关说明 :::

提要

本次更新后大区合并,游戏目录本地用户数据因不可知原因使文件数据未能跟随更新同步调整数据层级 目前受影响的包括:

  • 用户界面设置及游戏
  • 茗伊插件-频道染色记录
  • 枫影插件

如何复原

官方指南

由于大区合并,服务器目录更变,会导致原本储存本地的配置信息失效,侠士可将 …JX3\bin\zhcn_hd\userdata\游戏账号\ 目录下, 原【电信一区】【电信五区】【电信八区】文件复制粘贴到【电信区】,原【双线一区】【双线二区】【双线四区】文件复制粘贴到【双线区】。

具体解释

剑网三游戏原数据层级关系如下:

Terminal window
--JX3
----bin
------zhcn_hd
--------userdata
----------[登录账户]
------------[游戏大区]
--------------[服务器]
----------------[角色]
------------------[具体的界面、游戏设置等本地配置文件]

本次大区合并后,主要影响在[游戏大区]层级,即游戏大区统一命名为电信区双线区。 因此只需要原游戏大区目录下的所有文件粘贴复制到新的电信区双线区目录下,即可恢复界面设置

茗伊插件频道染色

茗伊插件数据存储路径:~\SeasunGame\Game\JX3\bin\zhcn_hd\interface\my#data

原理与本地配置信息一致,将所有游戏大区全部替换为更新后的大区名

例如:#电信五区_剑胆琴心@zhcn_hd 修改为 #电信区_剑胆琴心@zhcn_hd

懒人工具

目前已有大佬提供多种懒人工具因此就不重复造轮子,链接如下


以上这些你都不放心?,那贴给你bat脚本吧!

更新userdata

Terminal window
# 指定 userdata 路径 (可以写绝对路径)
$userdataPath = "Game\JX3\bin\zhcn_hd\userdata"
$subfolders = Get-ChildItem -Path $userdataPath -Directory
foreach ($subfolder in $subfolders) {
$childSubfolders = Get-ChildItem -Path $subfolder.FullName -Directory
foreach ($childSubfolder in $childSubfolders) {
if ($childSubfolder.Name -match "双线[一二三四五六七八]区" -or $childSubfolder.Name -match "电信[一二三四五六七八]区") {
$targetFolderName = $childSubfolder.Name -replace "[一二三四五六七八]", ""
$targetFolderPath = Join-Path -Path $subfolder.FullName -ChildPath $targetFolderName
if (-not (Test-Path -Path $targetFolderPath -PathType Container)) {
Rename-Item -Path $childSubfolder.FullName -NewName $targetFolderName -Force
}
else {
$allSubfolders = Get-ChildItem -Path $childSubfolder.FullName -Directory -Recurse
foreach ($sub in $allSubfolders) {
$destinationFolderPath = $sub.FullName.Replace($childSubfolder.FullName, $targetFolderPath)
if (-not (Test-Path -Path $destinationFolderPath -PathType Container)) {
New-Item -ItemType Directory -Path $destinationFolderPath | Out-Null
}
Move-Item -Path $sub.FullName -Destination $destinationFolderPath -Force
}
Remove-Item -Path $childSubfolder.FullName -Force -Recurse
}
}
}
}

更新插件

Terminal window
# 文件夹路径(可以写绝对路径)
$folder1 = "Game\JX3\bin\zhcn_hd\interface\lm#data"
$folder2 = "Game\JX3\bin\zhcn_hd\interface\my#data"
# 要搜索的文件夹模式
$pattern1 = "#双线[一二三四五六七八]区_.*"
$pattern2 = "#电信[一二三四五六七八]区_.*"
# 重命名文件夹的函数
function Rename-Folder($folder, $pattern) {
$subFolders = Get-ChildItem -Path $folder -Directory -Recurse | Where-Object {$_.Name -match $pattern}
Write-Output "$subFolders"
foreach ($subFolder in $subFolders) {
$newName = $subFolder.Name -replace "[一二三四五六七八]区", "区"
Rename-Item -Path $subFolder.FullName -NewName $newName -Force
}
}
# 对每个文件夹调用重命名函数
Rename-Folder $folder1 $pattern1
Rename-Folder $folder1 $pattern2
Rename-Folder $folder2 $pattern1
Rename-Folder $folder2 $pattern2