敌人惠普不会在批量RPG游戏中失败

时间:2018-03-06 18:36:58

标签: batch-file

我正在尝试从零开始制作批量RPG游戏,但我遇到了一个非常大的问题。每当我攻击敌人的狼时,我的HP就会瘫痪,但是HP没有狼。

:fight1
set wolfhp=45
set wolfdmg=3
cls
echo You are fighting a wolf.
echo.
echo Your health: %playerhp%
echo.
echo Your attack: %playerdmg%
echo.
echo.
echo Enemy health: %wolfhp%
echo.
echo Enemy attack: %wolfdmg%
echo.
echo What is your next move?
echo.
echo 1. Attack
echo 2. Spells
echo 3. Flee
echo.
set /p input=C:\
if "%input%" == "1" goto fight1attack
if "%input%" == "2" goto spells
if "%input%" == "3" goto game
goto fight1

:fight1attack
set /a playerhp-=%wolfdmg%
set /a wolfhp-=%playerdmg%
if %wolfhp% lss 1 goto victory1
if %playerhp% lss 1 goto defeat
goto fight1

以上是问题持续存在的地方(最有可能)。我根本没有看到代码有什么问题。我的伤害和健康变量都设置在其他地方,但这不是问题,因为它仍会显示我的统计数据。

echo Your health: %playerhp%
echo.
echo Your attack: %playerdmg%

1 个答案:

答案 0 :(得分:0)

您的set wolfhpset wolfdmp命令在 :fight1标签后出现,您会在每个回合后跳回到该标签。通过重新运行set命令,每次转弯后,这会将两个变量重置为初始值。

您应该在使用:fight1声明变量后移动set标签,这样每回合都不会重置:

set wolfhp=45
set wolfdmg=3
:fight1
cls
...