有这个游戏,如果你找到并修改了保存文件,你可以改变你的起始武器。因为它是permadeath并且起始武器是硬编码的,所以保持更改的唯一方法是打开保存文件,每次关闭游戏时,更改保存文件中的相应行,保存,然后打开比赛又来了。这显然需要时间,超过每次游戏之间可容忍的时间。所以我制作了一个批处理文件,用一个具有相同数据的副本覆盖了保存文件,除了表明你的起始武器是什么的文本行,所以当我去世时我必须做的就是关闭游戏并打开批处理:
XCOPY /y C:\modifiedsave C:\originalsave
START /d "C:\Games\Nuclear Throne\Nuclear Throne Update 63" nuclearthrone.exe
这里的问题是它覆盖了保存文件中的所有内容,这使得我所取得的任何进展(成就,统计数据,敌人等等)都丢失了。解决这个问题的唯一方法是更改保存文件中的单个文本段,而不是覆盖它,但因为我对这整个事情都很陌生(noobish)我不知道该怎么做。这是我想要更改的保存文件中的部分(粗体):
DATA
1
1
0
7
1
1
0
7
1
1
0
7
1
1
0
7
1
1
0
7
39
1
0
7
1
1
0
7
1
1
0
7
46
1
0
7
1
1
0
7
1
1
0
7
81
1
0
7
56
1
1
0
0
0
0
0
0
-1
(粗体数字是起始武器的数据值。) ~~~ 那么我如何创建一个批处理文件(或任何简单的可执行文件),用我选择的数字替换粗体中的所有数字?
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
(
FOR /f "tokens=1*delims=:" %%a IN ('findstr /n /r "^" "q28773499.txt"') DO (
SET "replaced="
FOR /f "tokens=1*delims=:" %%r IN (q28773499a.txt) DO IF "%%r"=="%%a" SET "replaced=Y"&ECHO(%%s
IF NOT DEFINED replaced ECHO(%%b
)
)>newfile.txt
FC newfile.txt q28773499.txt
GOTO :EOF
我使用了一个名为q28773499.txt
的文件,其中包含我的测试数据。
制作newfile.txt
目前尚不清楚“DATA”行是标题还是实际上是文件的一部分。
您需要创建一个包含以下内容的文件q28773499a.txt
:
2:61
4:11
19:803
即 onthislinenumber 列表: putthisvalue
它的工作方式是使用findstr
读取您的数据文件(当然,更改名称以适应),以便在冒号之前应用数字;使用delims
工具来标记该行,并将数字分配给%%a
,将数据分配给%%b
。
对于每一行,清除replaced
标志,尝试使用相同的行号在变更文件q28773499a.txt
中找到一行。如果找到,则发送在修改文件中找到的数据并设置replaced
标志。
如果在读取replaced
文件后尚未设置alterations
标志,则在%%b
输出原始数据。