存档拷贝后地图在人物不在的存档修复

简介: 存档拷贝后地图在人物不在的存档修复教学

## 现象

用户使用存档上传功能在导入完整的Saved文件夹后,仍然只有地图信息,没有人物信息,需要恢复以前的用户存档。

这种情况可能在这些场景中出现:


- 腾讯云的存档转阿里云

- 已有ECS转计算巢,地图在人物角色丢失


## 具体解决方案

### 前提


1. 执行该修复方案的前提是必须已经有可用的存档备份。

2. 所有人退出游戏。


### Linux

#### 备份、获取steamappid信息


1. 远程登录服务器

  1. 进去计算巢的服务实例页面:[https://computenest.console.aliyun.com/service/instance/cn-hangzhou](https://computenest.console.aliyun.com/service/instance/cn-hangzhou),然后点击具体的服务实例。

![image.png](https://yuque.antfin.com/images/lark/0/2024/png/18856553/1706780769720-4a1e2a22-d6ae-4e95-bccf-e1848f0c1f3a.png#clientId=u544330f1-7a26-4&from=paste&height=806&id=XMXLn&originHeight=806&originWidth=2276&originalType=binary&ratio=1&rotation=0&showTitle=false&size=864262&status=done&style=none&taskId=ua3bbf864-f39b-4355-ad14-79bd11437c1&title=&width=2276)

  2. 点击资源,然后再点击远程连接,弹出页面点击免密登录

![image.png](https://yuque.antfin.com/images/lark/0/2024/png/18856553/1706780956838-1a29c9d6-4d3e-4e4d-81a9-4df4fe8705f2.png#clientId=u9849c735-be7d-4&from=paste&height=1078&id=u07d48e10&originHeight=1078&originWidth=3496&originalType=binary&ratio=1&rotation=0&showTitle=false&size=1697852&status=done&style=none&taskId=u7a259caf-e2b3-400b-ba46-38e457e3ebd&title=&width=3496)

![image.png](https://yuque.antfin.com/images/lark/0/2024/png/18856553/1706780983982-64e97677-fde1-4161-aae9-7afddf3324d0.png#clientId=u9849c735-be7d-4&from=paste&height=984&id=ud459ff39&originHeight=984&originWidth=2554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=1098664&status=done&style=none&taskId=u0dbf7bb1-0679-444b-b074-d565394d0fb&title=&width=2554)

  3. 选择会话管理后点击确定

![image.png](https://yuque.antfin.com/images/lark/0/2024/png/18856553/1706781018434-5d216274-82ad-4c8c-947d-114f5e40c9b5.png#clientId=u8c04d9c5-1ebc-4&from=paste&height=556&id=u1b8ffc45&originHeight=556&originWidth=1780&originalType=binary&ratio=1&rotation=0&showTitle=false&size=392762&status=done&style=none&taskId=u3b778456-b02e-48c4-998b-4940f368d65&title=&width=1780)

2. 先关闭幻兽帕鲁服务端服务

```

# 关闭服务

sudo systemctl stop pal-server

```


3. 备份游戏存档,执行下面命令后将会在/home/ecs-assist-user/.steam/SteamApps/common/PalServer/Pal/Saved_Backup文件夹中创建一个备份的存档文件,如下所示。

![image.png](https://yuque.antfin.com/images/lark/0/2024/png/18856553/1706782080768-0033f2fe-8dd2-4c80-9144-6e7c8c7212dd.png#clientId=u3dfa515d-8cd6-4&from=paste&height=94&id=uf73a6d62&originHeight=94&originWidth=1742&originalType=binary&ratio=1&rotation=0&showTitle=false&size=133832&status=done&style=none&taskId=u8d789833-b22a-41d8-91bb-47c2964964d&title=&width=1742)

```

sudo apt install zip unzip

# 定义存档路径和备份路径

destinationDir="/home/ecs-assist-user/.steam/SteamApps/common/PalServer/Pal/Saved"

desParentDir="/home/ecs-assist-user/.steam/SteamApps/common/PalServer/Pal"

backupDir="/home/ecs-assist-user/.steam/SteamApps/common/PalServer/Pal/Saved_Backup"


# 生成备份文件的名称,包含日期以便于区分不同的备份

timestamp=$(date +"%Y%m%d%H%M%S")

backupFileName="Saved_Backup_${timestamp}.zip"


# 创建备份目录,如果不存在的话

mkdir -p "$backupDir"


# 打包指定目录到ZIP文件

zip -r "$backupDir/$backupFileName" "$destinationDir"

```


4. 查看steam appId。计算巢部署的Linux路径下可查看此文件Steam appid

```

cat /home/ecs-assist-user/.steam/SteamApps/common/PalServer/Pal/Binaries/Linux/steam_appid.txt

```


5. 如果显示的是0,则执行下面命令。

![image.png](https://yuque.antfin.com/images/lark/0/2024/png/18856553/1706781464278-fe1dcf3e-e73e-4478-bbd7-170fdb29a91c.png#clientId=u14d715ae-7685-4&from=paste&height=66&id=u324e72fc&originHeight=66&originWidth=2086&originalType=binary&ratio=1&rotation=0&showTitle=false&size=85175&status=done&style=none&taskId=uc04c8ebd-9528-41eb-8269-6e1e68c8557&title=&width=2086)

```

sudo cp /home/ecs-assist-user/.steam/SteamApps/common/PalServer/Pal/Binaries/Linux/steam_appid.txt /home/ecs-assist-user/.steam/SteamApps/common/PalServer/Pal/Binaries/Linux/steam_appid.txt.bak

sudo echo 2394010 | sudo tee /home/ecs-assist-user/.steam/SteamApps/common/PalServer/Pal/Binaries/Linux/steam_appid.txt

sudo chattr +i /home/ecs-assist-user/.steam/SteamApps/common/PalServer/Pal/Binaries/Linux/steam_appid.txt

```


6. 如果显示的是2394010,则执行下面命令。

![image.png](https://yuque.antfin.com/images/lark/0/2024/png/18856553/1706781428129-85f3924c-02a4-4866-9017-5ed73704beb4.png#clientId=u14d715ae-7685-4&from=paste&height=68&id=u7570abbf&originHeight=68&originWidth=2168&originalType=binary&ratio=1&rotation=0&showTitle=false&size=92260&status=done&style=none&taskId=ue4e9506d-f76c-46b6-a28e-1b50a2298c1&title=&width=2168)

```

sudo cp /home/ecs-assist-user/.steam/SteamApps/common/PalServer/Pal/Binaries/Linux/steam_appid.txt /home/ecs-assist-user/.steam/SteamApps/common/PalServer/Pal/Binaries/Linux/steam_appid.txt.bak

sudo echo 0 | sudo tee /home/ecs-assist-user/.steam/SteamApps/common/PalServer/Pal/Binaries/Linux/steam_appid.txt

sudo chattr +i /home/ecs-assist-user/.steam/SteamApps/common/PalServer/Pal/Binaries/Linux/steam_appid.txt

```


7. 将备份的.zip压缩包解压后替换当前Saved文件。


如果你的计算巢帕鲁服务版本支持 **游戏运维-上传存档,则直接上传你本地的存档即可完成替换。**

如果你的计算巢版本不支持上传存档自动替换,则参考存档[手动替换教程实现存档替换](https://developer.aliyun.com/article/1428619),替换后重启


8. 执行重启命令。

```

sudo systemctl start pal-server

```

### Windows

#### 登录到ECS并备份当前存档


1. 在[计算巢](https://computenest.console.aliyun.com)找到你的服务实例,点击资源类型【实例】的云资源进入ECS控制台


![image.png](https://yuque.antfin.com/images/lark/0/2024/png/63156287/1706781256993-2ba5214e-9ca7-4cfd-8cb3-47b53fe0b91e.png#clientId=u2f6a58a1-73cb-4&from=paste&height=739&id=u2bb30d8a&originHeight=1478&originWidth=3358&originalType=binary&ratio=2&rotation=0&showTitle=false&size=887147&status=done&style=none&taskId=ua2a03fc3-4e72-41a5-abc6-97f484ee507&title=&width=1679)


2. 在ECS控制台详情页右上角点击远程连接,选择workbench登录


![image.png](https://yuque.antfin.com/images/lark/0/2024/png/63156287/1706781367546-9f96ae14-71e5-4cb3-ada6-794ec8e3eee5.png#clientId=u2f6a58a1-73cb-4&from=paste&height=754&id=u6b23b48f&originHeight=1508&originWidth=3218&originalType=binary&ratio=2&rotation=0&showTitle=false&size=1005922&status=done&style=none&taskId=u3431c4c3-55f8-44e7-b7c3-b022b5c0e76&title=&width=1609)

![image.png](https://yuque.antfin.com/images/lark/0/2024/png/63156287/1706781386615-840cd041-5181-4871-9776-85cfc74fbfa8.png#clientId=u2f6a58a1-73cb-4&from=paste&height=653&id=u80689c47&originHeight=1306&originWidth=1976&originalType=binary&ratio=2&rotation=0&showTitle=false&size=625885&status=done&style=none&taskId=u7020eb7f-d29d-4550-8957-c2a20e54556&title=&width=988)


3. 输入密码即可进入


![image.png](https://yuque.antfin.com/images/lark/0/2024/png/63156287/1706781414193-9e6bca11-006c-4e6f-82c8-10fb49305611.png#clientId=u2f6a58a1-73cb-4&from=paste&height=518&id=u2ad966e5&originHeight=1036&originWidth=1770&originalType=binary&ratio=2&rotation=0&showTitle=false&size=434084&status=done&style=none&taskId=u4aae5594-e58e-4c7f-81f5-80a067ae603&title=&width=885)


4. 打开powershell。输入该命令完成备份


![image.png](https://yuque.antfin.com/images/lark/0/2024/png/63156287/1706778560609-d3ffb0d8-077f-4ff5-be31-28bc3e2b7d00.png#clientId=u709f01d8-b038-4&from=paste&height=786&id=GUKI0&originHeight=1572&originWidth=1700&originalType=binary&ratio=2&rotation=0&showTitle=false&size=534761&status=done&style=none&taskId=u75d2c28f-9f20-4ef9-a53b-3be616770f0&title=&width=850)

```

# 定义存档路径和备份路径

$destinationDir = "C:\Program Files\PalServer\steam\steamapps\common\PalServer\Pal\Saved"

$savedParentDir = "C:\Program Files\PalServer\steam\steamapps\common\PalServer\Pal"

# 定义备份目录,确保它不在源目录的子目录中

$backupDir = "C:\Program Files\PalServer\steam\steamapps\common\PalServer\Pal\Saved_Backup"


# 生成备份文件的名称,包含日期以便于区分不同的备份

$timestamp = Get-Date -Format "yyyyMMddHHmmss"

$backupFileName = "Saved_Backup_$timestamp.zip"


# 创建备份目录,如果不存在的话

if (-not (Test-Path -Path $backupDir)) {

   New-Item -ItemType Directory -Path $backupDir

}


# 打包指定目录到ZIP文件

Compress-Archive -Path $destinationDir -DestinationPath "$backupDir\$backupFileName"


# 输出备份完成的信息

Write-Host "Backup completed: $backupDir\$backupFileName"


# 停止 pal-server 服务以准备更新存档

$ProcessName = "PalServer-Win64-Test-Cmd"


if (Get-Process -Name $ProcessName -ErrorAction SilentlyContinue) {

   Stop-Process -Name $ProcessName -Force

   Start-Sleep -Seconds 1

}

```

#### 获取当前的steamappid

计算巢部署的Windows路径下可查看此文件获取Steam appid.windows下可直接搜搜steam_appid.txt该文件,如不存在代表steamappid=0.

```

C:\Program Files\PalServer\steam\steamapps\common\PalServer\Pal\Binaries\Win64\steam_appid.txt

```

#### 根据steamappid的值决定操作

如果当前steam appid=2394010或1623730,下面的执行采用默认情况即可。


1. 路径切换到

```

C:\Program Files\PalServer\steam\steamapps\common\PalServer\Pal\Binaries\Win64

```


2. 打开steam_appid.txt文件,输入0并保存。(steam appid=2394010或1623730)


如果steam appid=0或文件不存在,则新建steam_appid.txt文件,输入2394010并保存

![image.png](https://yuque.antfin.com/images/lark/0/2024/png/63156287/1706778127223-71199cb5-85ed-472b-82d0-982f496ef014.png#clientId=u709f01d8-b038-4&from=paste&height=741&id=u62c6858e&originHeight=1482&originWidth=3518&originalType=binary&ratio=2&rotation=0&showTitle=false&size=1426047&status=done&style=none&taskId=uf9abbc45-fa79-4bf6-af08-b145ec15f22&title=&width=1759)


3. 右键打开该文件属性,设置为只读。


![image.png](https://yuque.antfin.com/images/lark/0/2024/png/63156287/1706778228633-68e1a9b0-332b-4e7b-98a5-bb430ca6ec21.png#clientId=u709f01d8-b038-4&from=paste&height=792&id=u3238cb71&originHeight=1584&originWidth=3544&originalType=binary&ratio=2&rotation=0&showTitle=false&size=1789396&status=done&style=none&taskId=ufa8ce6fe-1cc1-41d7-a4cb-2ea81da25bb&title=&width=1772)


4. 打开Powershell,输入该指令


![image.png](https://yuque.antfin.com/images/lark/0/2024/png/63156287/1706778560609-d3ffb0d8-077f-4ff5-be31-28bc3e2b7d00.png#clientId=u709f01d8-b038-4&from=paste&height=786&id=udb5712d0&originHeight=1572&originWidth=1700&originalType=binary&ratio=2&rotation=0&showTitle=false&size=534761&status=done&style=none&taskId=u75d2c28f-9f20-4ef9-a53b-3be616770f0&title=&width=850)

```

$TaskName = "PalServerAutoStart"

Start-ScheduledTask -TaskName $TaskName

```

#### 将之前备份的存档覆盖当前存档

如果你的计算巢版本支持 **游戏运维-上传存档,则直接上传你本地的存档即可完成替换。**

如果你的计算巢版本不支持上传存档自动替换,则参考存档[手动替换教程实现存档替换](https://developer.aliyun.com/article/1428619),替换后重启


相关实践学习
2048小游戏
基于计算巢&ECS云服务器快速部署,带您畅玩2048小游戏。
相关文章
|
数据库
60.【贪吃的球球存档操作】
60.【贪吃的球球存档操作】
52 0
|
3月前
|
存储 人工智能 运维
函数计算产品使用问题之怎么识别并清理文件中转站中的无用文件
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
监控 安全 C#
使用C#如何监控选定文件夹中文件的变动情况?
使用C#如何监控选定文件夹中文件的变动情况?
117 19
|
4月前
|
存储 Windows
删除的视频怎样才能恢复?详尽指南
误删视频别慌,本文概览实用恢复技巧。首要行动:停用涉事存储以防数据覆盖。探索回收站,检索近期删除。备份是宝藏,搜寻云或外置硬盘。软件救星谨慎付费,试用验证。极端情况,专家服务可开盘恢复,代价高昂需权衡。
删除的视频怎样才能恢复?详尽指南
|
6月前
|
弹性计算 运维 Linux
地图在人物不在的存档修复
地图在人物不在的存档修复
|
人工智能 网络安全 Python
修复旧照片,找到新感动
共赴亚运盛会
306 1
|
6月前
|
SQL 数据可视化 数据库
聊天记录年度报告一览无余:轻松多格式导出永久保存,深度智能分析
聊天记录年度报告一览无余:轻松多格式导出永久保存,深度智能分析
聊天记录年度报告一览无余:轻松多格式导出永久保存,深度智能分析
|
安全 Windows
电脑上女朋友照片删除了怎么办?EasyRcovery易恢复轻松帮您恢复照片
相信有不少男性电脑玩家都会将女朋友的照片存放在电脑硬盘之内,作为珍贵的收藏和回忆。但是在某些时候,如果我们错误地删除了这些照片,或者由于系统问题导致其中的照片丢失,那么我们怎么找回女朋友的照片?这个问题就足以困扰许多朋友了。今天我们所要介绍的,就是关于如何找回被误删除的照片。
179 0
电脑上女朋友照片删除了怎么办?EasyRcovery易恢复轻松帮您恢复照片
|
Shell 开发工具
如何快速定位到报错日志中的关键信息,一招学会,赶快GET吧
如何快速定位到报错日志中的关键信息,一招学会,赶快GET吧
如何快速定位到报错日志中的关键信息,一招学会,赶快GET吧