2016-03-01 30 views
0

我正在尝试使用批量进行一个简单的RPG游戏,以及带走敌方健康和“SP”的“攻击”。这是我目前的代码。如何使IF语句更改2个变量?

@echo off  
set /a HP=10  
set /a SP=10  
echo hp = %HP%  
echo SP = %SP%  
pause nul  
set /p DC= 10 max  
set /a NHP=%HP% - %DC%  
set /a HP=%NHP%  
echo %HP%  
pause nul  
set /a DCE=10  
echo you have %HP% hp  
Echo You can 1. Hit (-1 hp to enemy) 2. Kick (-1 hp to enemy) 3 special hit (-2 hp to enemy and -5 SP to you) 

注意,HP =健康点和SP =您使用的特殊攻击

而且还特别点或点,刚开始的代码只是为了测试一个系统带走点,所以如果你有一个更好的系统。这将是有益

+0

也许阅读文档...'选择/' – leppie

+1

?找不到你的'if'... – Stephan

+0

你的问题是什么? –

回答

0
set /a EHP = 10 
    set /a BaseDamage = 1 
    set /a SpecialDamage = 2 
    set /a SpecialCost = 5 
    set /p input = . 
    if %input% == 1 or %input% == hit (
    echo you hit the enemy 
    set /a EHP = %EHP% - %BaseDamage% 
    ) 
    if %input% == 2 or %input% == kick (
    echo you kick the enemy 
    set /a EHP = %EHP% - %BaseDamage% 
    ) 
    if %input% == 3 or %input% == special hit (
    echo [insert dialoge here] 
    set /a EHP = %EHP% - %SpecialDamage% 
    set /a SP = %SP% - %SpecialCost% 
    ) 
    goto a 

由你也许应该补充的方式:一个回声之前,您可以1.Hit 2.Kick 3,特种打

+0

这段代码至少有四个问题:'if'在'cmd'中没有'或'。 '特殊命中'会导致语法错误。 '%input%'没有被定义(所以每个if都会给你一个语法错误)。你需要延迟扩展。 – Stephan