Rpg批量级系统错​​误?

时间:2014-11-14 01:27:33

标签: batch-file

所以我似乎很难将'if'语句放在另一个'if'语句中。我有正确设置的标签,当代码进入levelstats

时会发生错误

一旦玩家达到max exp,代码就意味着进入下一个级别。 lvlguage检查是否满足exp要求。这很好。它转到levelstats然后提示关闭。

:LvlGuage
If %CharExp% GEQ %CharMaxExp% (
Goto LevelStats
)
Goto MENU

:LevelStats
::the error starts here
If %CharLevel%==1 (
Goto Level2
)
Goto MENU

If %CharLevel%==2 (
Goto Level3
)
Goto MENU

:: This goes on till level 10

:Level2
If %CharExp% GEQ 100 (
Set /a CharExp=%CharExp% -100
Set CharMaxExp=280
Set CharLevel=2
Set /a CharAttack=(%CharAttack% * 1.5) + 1
Goto LEVELUP
)
Goto MENU

:Level3
If %CharExp% GEQ 280 (
Set /a CharExp=%CharExp% -280
Set CharMaxExp=784
Set CharLevel=3
Set /a CharAttack=(%CharAttack% * 1.5) + 1
Goto LEVELUP
)
Goto MENU

:LEVELUP
Cls
Echo You Have Leveled Up.
Timeout 2 >nul
Goto MENU

1 个答案:

答案 0 :(得分:0)

您的变量只在脚本启动时计算一次。看看这个:http://www.ss64.com/nt/delayedexpansion.html

您需要在脚本的开头添加Setlocal EnableDelayedExpansion,并在想要获取更改后的值时使用!varname!代替%varname%添加到您的变种。这将始终为您提供变量的最后设定值,而不是第一个指定的值。