批处理文件战斗系统技能bug

时间:2015-03-12 18:53:37

标签: batch-file cmd

所以我最近在基于批处理文件文本的RPG上努力工作,遇到了一些问题并且解决了它们,所以我遇到了这个问题:

我有一种不断受到伤害的战斗技能,我希望它只在敌人等于或低于25%生命值时被激活,但我不能。

我试着写它但它没有用。比如,完全忽略命令,所以我想知道错误是什么以及如何解决它

代码:

:Wolf
cls
echo.
echo   Wolf     Hp: %WolfHp%\30
echo.
echo.
echo   %name%     Hp: %hp%\100
echo.
echo 1)Attack Wolf
echo 2)Swift Cut
echo.
set /p input=)
if %input%==1 goto HitWolf
if %input%==2 goto CutWolf
goto Wolf

::我直接跳到技能VVV

:CutWolf
set num=%random:~-2%
if %num% gtr %dmg% goto CutWolf
if %num% lss 01 goto CutWolf
if %num%== 00 goto WolfMiss
if %num%== 01 goto WolfMiss
if %num%== 02 set num=%cut%
if %num%== 03 set num=%cut%
if %num%== 04 set num=%cut%
if %num%== 05 set num=%cut%
if %num%== 06 set num=%cut%
if %num%== 07 set num=%cut%
if %num%== 08 set num=%cut%
if %num%== 09 set num=%cut%
if %WolfHp% gtr %WolfHp%*25/100 goto Wolf
cls
echo.
echo    Swift Cut Success
echo.
echo   You swiftly cut the wolf, damage dealt: %cut%
pause >nul
if %WolfHp% gtr %WolfHp%*25/100 goto Wolf
set /a WolfHp= %WolfHp%-%num%
goto WolfAttack

1 个答案:

答案 0 :(得分:0)

你不能在BAT中这样做:

if %WolfHp% gtr %WolfHp%*25/100 goto Wolf

但你可以这样做:

set /a tmp=%WolfHp%*25/100
if %WolfHp% gtr %tmp% goto Wolf

必须使用set /a完成/设置所有计算(算术)。必须在2个变量

之间进行IF测试