我正在尝试从零开始制作批量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%
答案 0 :(得分:0)
您的set wolfhp
和set wolfdmp
命令在 :fight1
标签后出现,您会在每个回合后跳回到该标签。通过重新运行set
命令,每次转弯后,这会将两个变量重置为初始值。
您应该在使用:fight1
声明变量后移动set
标签,这样每回合都不会重置:
set wolfhp=45
set wolfdmg=3
:fight1
cls
...