Доступ к готовым решениям

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

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

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

Include ЭМИ система для удаленного отключения транспорта

NewGreen

Ученик
Приветствую, наверное многие видели как в Need For Speed (в некоторых частях) полицейские могли обезвреживали машину гонщика при помощи ЭМИ.
Как нам известно ЭМИ - это Электромагнитный импульс, который блокирует работу двигателя автомобиля попутно выводя из строя всю электронную начинку.

Сегодня хочу представить вам подобную систему для SA:MP, но с некоторыми отличиями от той что была в NFS.
Основное отличие, в том что, в оригинальной NFS оборудование ЭМИ установлено в автомобиле, в нашей же системе, в качестве ЭМИ используется переностное оружие, вы можете настроить ЭМИ на любом огнестрельном оружии.

Приступим к описанию:

Основные функции:

SetEMPStatusToPlayer(playerid,status) - функция позволяющая включить/выключить возможность использовать ЭМИ для игрока.
Код:
параметры:
          [B]playerid[/B] - ID игрока
          [B]status[/B] - переключатель true, false
опции:
          [B]true[/B] - включить ЭМИ для игрока
          [B]false[/B] - выключить ЭМИ для игрока
IsVehicleUnderEMP(vehicleid) - функция проверяющая был ли транспорт, атакован при помощи ЭМИ.
Код:
параметры:
          [B]vehicleid[/B] - ID транспорта.
возвращает:
          [B]true[/B] - если машина не в рабочем состоянии, т.е. была под воздействием ЭМИ.
          [B]false[/B] - если машина в рабочем состоянии.
SetPlayerEMPWeapon(playerid,weaponid) - функция позволяющая установить для игрока статус ЭМИ для любого огнестрельного оружия.
Код:
параметры:
          [B]playerid[/B] - ID игрока
          [B]weaponid[/B] - ID огнестрельного оружия

Дополнительные настройки


#define EMP_SOUND_ID 6600 - определяет ID звука ЭМИ который слышен окружающим при воздействии ЭМИ на транспорт
#define EMP_WORK_DISTANCE 50 - определяет рабочую дистанцию ЭМИ.

Приступим к установке:

Первое что нужно сделать это - скачать и подключить файл empsystem.inc
PHP:
#include <a_samp>
#include <empsystem>
// ...
Важно подключить файл после файла a_samp.inc !

Некоторые нюансы/советы в работе системы ЭМИ:

1. Первый выстрел из оружия ЭМИ лишь повредит электронную часть транспорта, последующие выстрелы будут наносить прямой урон.
Это сделано для того чтобы игрок мог "отключить" транспорт в плохом физическом состоянии (дымящийся) не взорвав его.
2. На каждый транспорт вам дается один ЭМИ выстрел.
3. Функцию SetEMPStatusToPlayer можно использовать в таймере, чтобы ограничить время перезарядки ЭМИ.
Подобное решение позволит ограничить количество выстрелов ЭМИ, например можно сделать чтобы ЭМИ заряд был доступен раз в 10 сек

Upd:
Код:
v 1.1
- Проведена оптимизация функции GetDistanceFromPlayerToVehicle, за счет нативной функции VectorSize,
  скорость работы функции возросла в ~3,5 раза.
- Убраны расширенные настройки, с целью не создавать излишнюю функциональность.
- Проведены легкие "косметические" изменения.

Ссылки для скачивания:





Спасибо за внимание!

Автор: NewGreen
 
Последнее редактирование:
Сверху Снизу