我正在尝试制作一个简单的if语句,以查看玩家是否靠近火场。如果他靠近火炉而没有按下键,则会受到指示的损坏。这很完美。但是,如果按下该键,则玩家仍会受到伤害。
损坏布尔值在类上方定义为static bool damage = false;
if (Vector3.DistanceSquared(Game.LocalPlayer.Character.Position, locationData.GoToPosition) < 10f )
{
if (Game.IsKeyDown(Settings.SCBA))
{
damage = false;
}
else
{
damage = true;
Game.LocalPlayer.Character.Health -= 1;
}
damage = !damage;
}
我们在这里没什么要继续的,但是我认为您在这里混淆了您的逻辑。
[按键确保仅将Game.LocalPlayer.Character.IsFireProof = true
用于此操作,并且可能超出您到目前为止提供给我们的代码。
然后您的代码将是:
if (Vector3.DistanceSquared(Game.LocalPlayer.Character.Position, locationData.GoToPosition) < 10f )
{
if( Game.LocalPlayer.Character.IsFireProof != true)
{
Game.LocalPlayer.Character.Health -= 1;
}
}