Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Снижение урона от бронежилета

Статус
В этой теме нельзя размещать новые ответы.

memecheme

Новичок
Добрый вечер, пользователи P-I.

Ни для кого не секрет, что стандартная система брони в 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)
Бронежилет каждого уровня - это разные объекты, это так, для справки
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу