:teattack1
set /a health-=!monsterdmg! # It said missing operator here
pause
set /a monsterhealth-=!playerdmg! # And Here
pause
if "!monsterhealth!" == lss 0 goto tewin
pause
goto testencounter
pause
goto encountermenu
我一直在找失踪的操作员
我提供了如何修复它,但没有找到任何东西
答案 0 :(得分:1)
答案 1 :(得分:0)
打开命令提示符窗口,输入set /?
并仔细阅读所有输出帮助页面。
说明当使用 set 作为算术表达式,即set /A
时,可以直接指定变量名而不进行扩展。 Windows命令处理器自动将每个不是数字的字符串或操作符解释为变量的名称,并在评估算术表达式时访问当前变量值。
接下来在命令提示符窗口if /?
中运行,并仔细阅读所有输出帮助页面。
该行
if "!monsterhealth!" == lss 0 goto tewin
肯定无效,因为它包含运算符==
和运算符lss
,当然这不能正常工作。
这个改进的代码修复了所有编码错误。
:teattack1
set /a health-=monsterdmg
pause
set /a monsterhealth-=playerdmg
pause
if %monsterhealth% LEQ 0 goto tewin
pause
goto testencounter
pause
goto encountermenu
但是,环境变量health
,monsterdmg
,monsterhealth
和playerdmg
都应该存在且指定了整数值,否则Windows命令解释程序将使用值{{1对于每个变量,使代码不是真正有用。