0

我有一个相当简单的问题,我似乎无法理解。目前我正在尝试通过批处理编写游戏(我知道我应该使用其他更好的东西,但我不是)。我的问题是它没有按时更新,但似乎是一切都落后了。目前,这仅相当于在发出另一个命令之前无法正确读取 HP。

这是代码

`:damageAdjuster
cls
for /f "delims=" %%a in (test.txt) do (
    set line=%%a
    echo !line!
    set /a L=!L!+1
)

echo Testing Damage
echo.
echo 1) Deal Damage to HP
echo 2) Heal HP

set /a healthPoints=!line!
set /a hardHealth=17
set /a hostileDamage=%random%%%6 +1
set /a healthHeal=%healthPoints% +6
set /a healthDamage=%healthPoints%-%hostileDamage%

set input=
set /p input=Well...?:
if %input%==1 echo %healthDamage% >test.txt
if %input%==2 echo %healthHeal% >test.txt

if %healthPoints% gtr %hardHealth% (
echo %hardHealth% >test.txt
)

goto damageAdjuster`

指定 L 并启用延迟扩展。当然,我可能会以错误的方式解决这个问题,但这正是我在批量零经验的情况下提出的。任何帮助,将不胜感激。此外,如果类似的东西确实有效,它是否也适用于记住库存等?

4

1 回答 1

0

您的代码完全按照您的描述工作。我认为你限制健康的问题是你在最后一个回声中测试了错误的变量——你需要测试你写的内容,而不是当前的健康值。考虑修改您的代码,如下所示:

if %input%==1 echo %healthDamage% >test.txt
if %input%==2 (
  echo %healthHeal% >test.txt

  if %healthHeal% gtr %hardHealth% (
    echo %hardHealth% >test.txt
  )
)
于 2013-05-22T17:07:24.307 回答