我正在制作一个处理四种不同攻击的游戏,这是我的口袋妖怪的口袋妖怪,但是当我第一次玩并使用其中一种攻击时,敌人的健康状况并没有改变。它只发生在一次名为" stab"。
的攻击中set /p attack= I will...
if '%Attack%'=='firebolt' set /a mana=%mana%-40-%exp% & set /a monsterhealth=%monsterhealth%-60-%exp% & echo You set ablaze the %monster%! & goto cam
if '%Attack%'=='block' goto ctblockm & echo You stand ready to block!
if '%Attack%'=='regeneratemana' set /a mana=%mana%+40 & echo You have regenerated 40 points of Mana by using your special ability! & goto cam
if '%Attack%'=='stab' goto stabm
if not '%Attack%'==[['firebolt']]-o[['stab']]-o[['block']]-o[['regeneratemana']] echo check spelling
if '%mana%' lss 1 goto nomanam
pause
goto cm
:stabm
set max1=4
set min1=1
Set /A dmg=%random% %% (max1 - min1 + 1)+ min1 & echo you ready your blade for a lethal strike!
if '%dmg%'=='1' set stabdmg=30 & set /a monsterhealth=%monsterhealth%-%stabdmg%-%exp% & echo You strike!
if '%dmg%'=='2' set stabdmg=30 & set /a monsterhealth=%monsterhealth%-%stabdmg%-%exp% & echo You strike!
if '%dmg%'=='3' set stabdmg=30 & set /a monsterhealth=%monsterhealth%-%stabdmg%-%exp% & echo You strike!
if '%dmg%'=='4' set stabdmg=50 & set /a monsterhealth=%monsterhealth%-%stabdmg%-%exp% & echo critical hit!
goto cam
如果您希望我对其进行编辑以获取更多详细信息,请在评论中询问我。谢谢!
答案 0 :(得分:0)
你的问题在哪里显而易见,你没有在:stabm
之后的第3行的“max1”和“min1”周围添加百分号。请在发布问题之前先检查拼写错误。
答案 1 :(得分:0)
问题:一次解析一行,因此变量将其值保留在该行之前:
if '%dmg%'=='1' set stabdmg=30 & set /a monsterhealth=%monsterhealth%-%stabdmg%-%exp% & echo You strike!
您设置了stabdmg
,但%stabdmg%
仍然是之前的值。您需要delayed expansion或与第3行相同的语法(不带百分号):
if '%dmg%'=='1' set stabdmg=30 & set /a monsterhealth=monsterhealth-stabdmg-exp & echo You strike!
(接下来的三行课程相同)