Здесь не так много для нас go, но я думаю, что вы путаете вашу логику c здесь.
Нажатие клавиши гарантирует, что 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;
}
}
** edit **
Ладно. В дополнение к вашим комментариям.
Я не уверен, вернет ли Game.IsKeyDown(...)
значение true, если клавиша нажата или нет.
Поскольку не очень хорошая практика помещать вызовы функций в операторах logi c, так как их трудно отладить, попробуйте:
if (Vector3.DistanceSquared(Game.LocalPlayer.Character.Position, locationData.GoToPosition) < 10f )
{
bool damage != Game.IsKeyDown(Settings.SCBA);
if( damage == true)
{
Game.LocalPlayer.Character.Health -= 1;
}
}
Если нажатие или отпускание клавиши не имеет никакого эффекта, то Game.IsKeyDown
не делает то, что вы ожидаете.