memecheme
Новичок
Добрый вечер, пользователи P-I.
Ни для кого не секрет, что стандартная система брони в GTA: SA - вторая полоска здоровья (шопопало). Я же хочу сделать так, чтобы бронежилет лишь снижал наносимый по игроку урон.
Например: дигл наносит 40 урона, однако если я одену бронежилет (как объект, а не системно), то дигл будет наносить уменьшенный урон.
То есть никакой серой стандартной полоски состояния бронежилета попросту нет, есть лишь обычная полоска ХП (здоровья), которая получает разный урон, в зависимости от того есть на игроке бронежилет (опять же в виде объекта, через SetPlayerAttachedObject, а не системно).
Думаю, что суть моего вопроса ясна, хотя чем больше я его разжёвываю, тем меньше мне в это вериться.
Так как я недавно начал интересоваться скриптингом, у меня есть лишь какие-то догадки, по-этому прошу вам помочь.
Вообще в плане сделать 3 уровня бронежилетов, у которых будет разная компенсация урона.
По-поводу догадок, как бы очевидно это не выглядело.
В public OnPlayerTakeDamage:
Не знаю, есть ли в этом смысл, может это стрёмный бред.
В ОБЩЕМ, если кратко, то: как сделать так, чтобы когда игрок одевал бронежилет n-ого уровня (1,2,3), у него переменная меняла значение на ту, какого уровня бронежилет (1,2,3)
Бронежилет каждого уровня - это разные объекты, это так, для справки
Ни для кого не секрет, что стандартная система брони в GTA: SA - вторая полоска здоровья (шопопало). Я же хочу сделать так, чтобы бронежилет лишь снижал наносимый по игроку урон.
Например: дигл наносит 40 урона, однако если я одену бронежилет (как объект, а не системно), то дигл будет наносить уменьшенный урон.
То есть никакой серой стандартной полоски состояния бронежилета попросту нет, есть лишь обычная полоска ХП (здоровья), которая получает разный урон, в зависимости от того есть на игроке бронежилет (опять же в виде объекта, через SetPlayerAttachedObject, а не системно).
Думаю, что суть моего вопроса ясна, хотя чем больше я его разжёвываю, тем меньше мне в это вериться.
Так как я недавно начал интересоваться скриптингом, у меня есть лишь какие-то догадки, по-этому прошу вам помочь.
Вообще в плане сделать 3 уровня бронежилетов, у которых будет разная компенсация урона.
По-поводу догадок, как бы очевидно это не выглядело.
В public OnPlayerTakeDamage:
Код:
new Float:HP, Float:BRONIK
if(BRONIK == 1) // если бронежилет 1 уровня
{
GetPlayerHealth(playerid, HP); // узнает здоровье игрока, и записывает его в перменную HP
if(weaponid == 24) SetPlayerHealth(playerid, HP-15.0); // если урон с дигла (ид 24), то игрок получит: свое здоровье до выстрела - урон от дигла (15.0) // бронежилет блокирует 25 урона (потому что у меня дигл наносит 40)
}
if(BRONIK == 2) // если бронежилет 2 уровня
{
GetPlayerHealth(playerid, HP); // узнает здоровье игрока, и записывает его в перменную HP
if(weaponid == 24) SetPlayerHealth(playerid, HP-10.0); // если урон с дигла (ид 24), то игрок получит: свое здоровье до выстрела - урон от дигла (10.0) // бронежилет блокирует 30 урона (потому что у меня дигл наносит 40)
}
if(BRONIK == 3) // если бронежилет 3 уровня
{
GetPlayerHealth(playerid, HP); // узнает здоровье игрока, и записывает его в перменную HP
if(weaponid == 24) SetPlayerHealth(playerid, HP-5.0); // если урон с дигла (ид 24), то игрок получит: свое здоровье до выстрела - урон от дигла (5.0) // бронежилет блокирует 35 урона (потому что у меня дигл наносит 40)
}
if(BRONIK == 0) // если бронежилета нету
{
GetPlayerHealth(playerid, HP); // узнает здоровье игрока, и записывает его в перменную HP
if(weaponid == 24) SetPlayerHealth(playerid, HP-40.0); // если урон с дигла (ид 24), то игрок получит: свое здоровье до выстрела - урон от дигла (40.0) // бронежилет не блокирует урон, потому что брони нет и дигл нанесет своих 40 урона
}
В ОБЩЕМ, если кратко, то: как сделать так, чтобы когда игрок одевал бронежилет n-ого уровня (1,2,3), у него переменная меняла значение на ту, какого уровня бронежилет (1,2,3)
Бронежилет каждого уровня - это разные объекты, это так, для справки
Последнее редактирование:
