• Просьба не публиковать сообщения с предложениями продажи модов или сборок!

    Мы против использования и перепродажи слитых модов и переделок на их основе. Остальное также сложно верифицировать, поэтому в целом пока что запрещаем эту тему на сайте.

[1.1] Модуль урона и дружественного огня

SlowSuicide

Middle Developer
Скриптер
Сообщения
64
Хотел поинтересоваться касаемо идеи реализации изменения стандартного урона GTA на собственный список (на текущий момент есть пара мыслей но в них не уверен). Существует ивент на получение урона OnPlayerDamage (на серверной стороне), в данном случае не удастся узнать какой игрок нанёс урон, из какого оружия для переопределения урона. В качестве аргументов у данного ивента выступает сам игрок получивший дамаг, потерянное здоровье и броня.

На клиенте же существуют ивенты: OutgoingDamage (описание вики: Срабатывает при повреждении, которое объект собирается нанести другому объекту) и IncomingDamage (Срабатывает при нанесении урона игроку). Вероятно резоннее использовать OutgoingDamage, однако тогда стоит другой вопрос: как отменить/запретить/привести значения урона к нулю игроку, находящийся в твоей команде при условии, если фракция прикреплена к игроку на серверной части.
И как всё же корректно попытаться использовать ивент нанесения дамага?
 
Решение
В результате подведения итогов текущих задач:
- В рамках данной темы была решена проблема настройки урона для оружия (протестировано, работает);
- Функции addRelationshipGroup, addRelationshipGroup работают только на НПС (PEDS), на игроков эти функции не распространяются и НЕ РАБОТАЮТ. Пришлось придумывать костыль и реализовывать данный модуль с нуля самостоятельно. В результате удалось решить проблему. Здесь я не стану описывать весь свой код, однако опишу главные моменты от которых можно отталкиваться:

Работал я исключительно с классом entity, для entity и для localplayer я добавил новую переменную team (entity.team=numteam, localplayer.team=numteam)

Присваивание команды сущности (entity) происходит в момент когда сущность входит в...
У меня корректно работают эти группы если я получаю хеш, как результат addRelationshipGroup

JavaScript:
const humanHash = mp.game.ped.addRelationshipGroup('human', 1);
const zombieHash = mp.game.ped.addRelationshipGroup('zombie', 2);
где 1 и 2 по сути рандомные числа которые не влияют ни на что.

И кстате mp.players.local.setCanBeDamagedByRelationshipGroup(false, 0); работает отлично. По крайней мере с ботами :)
20210209091236_1.jpg
Если ставлю всех в одну команду, то урон не проходит.​
 
Надеюсь когда-нибудь будет более простой способ выключать friendly fire :)
 
Назад
Верх