所以我最近在基于批处理文件文本的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
答案 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
测试