《植物大战僵尸杂交版》闪退问题解决流程-闪退如何解决
时间:2024-11-09 14:33:41 来源:开心攻略网
遇到《植物大战僵尸杂交版》闪退问题,担心数据丢失?不用担心,这里有一份来自Long战魂的攻略,教你用bat脚本自动备份数据并恢复,无需额外下载工具,操作简单,让你轻松解决闪退问题。
版本杂交版v2.0.88(什么版本无关,如果问题一样就行)
问题游戏闪退,数据丢失,关卡白打
解决写bat脚本,自动定时备份数据即可,并且自动恢复数据,不用再下载其他工具
思路因为闪退的时候,会在PVZ的安装根目录在生成crash.txt文件,这是个关键点
可以在crash.txt文件存在时,才恢复数据,这样可以减少定时期间的数据差
PVZ的数据默认存储位置在:
C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata
可能不同电脑,前面的名称会不同,根据具体的路径,修改代码中的路径即可
每30秒,将yourdata目录中的所有文件复制备份到同目录的yourdata_bak目录中
根据个人需要,可以修改定时的时间,不建议修改的太少,30秒可以了
在启动的时候,如果发现PVZ的安装根目录有crash.txt文件,那么删除该文件,并且将yourdata_bak目录中的所有文件,复制到yourdata中覆盖,这样就实现了数据恢复
步骤1、新建一个txt文件,名为start,即start.txt
2、将以下代码复制到start.txt里面,然后保存
@echo off
setlocal enabledelayedexpansion
REM 设置UTF-8编码,防止下面的中文字符显示乱码
chcp 65001 >nul
REM 定义要修改的注册表路径和键值
set regPath=HKEY_CURRENT_USER\Software\PopCap\PlantsVsZombies
set regKey=ScreenMode
set regValue=0
REM 定义备份脚本的名称和路径
set backupScriptName=backup_pvz_data.bat
set backupScriptPath=%~dp0%backupScriptName%
REM 定义崩溃文件的名称和路径
set crashFileName=crash.txt
set crashFilePath=%~dp0%crashFileName%
REM 设置源目录和备份目录,这个路径可能会有不同,根据实际修改
set "sourceDir=C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata"
set "backupDir=C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata_bak"
REM 检查崩溃文件是否存在,如果存在则删除,并且将备份文件复制到源数据目录
if exist "%crashFilePath%" (
del "%crashFilePath%"
if exist "%backupDir%" (
xcopy /s /y "%backupDir%" "%sourceDir%" >nul 2>&1
)
)
REM 修改PVZ注册表
reg add "%regPath%" /v "%regKey%" /t REG_DWORD /d %regValue% /f
REM 如果上面的命令成功执行,则启动pvzHE-Launcher.exe
if %errorlevel% equ 0 (
REM 假设pvzHE-Launcher.exe与这个.bat文件在同一个目录下
start "" "%~dp0pvzHE-Launcher.exe"
wmic path win32_process where "name='cmd.exe'" get CommandLine | findstr /I /C:"%backupScriptPath%" >nul
if !errorlevel! neq 0 (
REM 如果没有找到备份进程,则启动新的 backup_pvz_data.bat 进程
start "backup_pvz_data" /min "%backupScriptPath%"
)
) else (
echo 修改PVZ注册表失败,错误代码:%errorlevel%
pause
)
endlocal
exit /b
3、然后修改后缀为bat,即得到start.bat
4、新建一个txt文件,名为backup_pvz_data,即backup_pvz_data.txt
5、将以下代码复制到backup_pvz_data.txt里面,然后保存
@echo off
setlocal
REM 设置源目录和备份目录,这个路径可能会有不同,根据实际修改
set "sourceDir=C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata"
set "backupDir=C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata_bak"
REM 设置UTF-8编码,防止下面的中文字符显示乱码
chcp 65001 >nul
echo 正在自动备份PVZ数据,默认每30秒备份一次,关闭本命令窗口后即停止备份(Backing up PVZ data)...
REM 等待5秒,确保游戏已经运行
timeout /t 5 >nul
REM loop backup
:loop
REM 检查 PlantsVsZombies.exe 是否已在运行,不运行则退出
tasklist /fi "imagename eq PlantsVsZombies.exe" | findstr /i "PlantsVsZombies.exe" >nul 2>&1
if %errorlevel% neq 0 (
exit
)
REM 确保备份目录存在,如果不存在则创建
if not exist "%backupDir%" mkdir "%backupDir%"
REM 执行备份,使用xcopy命令,并直接覆盖已存在的文件
xcopy /s /y "%sourceDir%" "%backupDir%" >nul 2>&1
if %errorlevel% neq 0 (
echo 备份失败,请检查源目录和备份目录是否存在,是否具有读写权限
pause
exit
)
timeout /t 30 /nobreak >nul
REM 返回循环继续备份
goto loop
6、然后修改后缀为bat,即得到backup_pvz_data.bat
7、将start.bat和backup_pvz_data.bat放到pvz的安装根目录中
8、修改桌面的pvz的快捷方式,将启动路径指向start.bat
9、修改桌面的pvz的快捷方式,将图标指向pvz的安装根目录的logo.ico
这样,游戏闪退之后,直接重新启动就自动恢复数据了。