批量游戏:攻击不起作用

时间:2015-10-13 00:03:43

标签: batch-file

我正在制作一个处理四种不同攻击的游戏,这是我的口袋妖怪的口袋妖怪,但是当我第一次玩并使用其中一种攻击时,敌人的健康状况并没有改变。它只发生在一次名为" 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 

如果您希望我对其进行编辑以获取更多详细信息,请在评论中询问我。谢谢!

2 个答案:

答案 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!

(接下来的三行课程相同)