Текущая версия SA-MP: 0.3.7


IP: 77.220.180.96:7777
[FS+INC] OnPlayerHitSystem
Описание:
Данный FS + INC добавляет событие OnPlayerHit, которые вызывается при нанесении игроку урона.
Например можно сделать мгновенную смерть с одного патрона в голову и т.д.
В отличии от других алгоритмов которые я видел, этот работает значительно быстрее, а значит и
при активной стрельбе в 100 человек значительных задержек (лагов) не будет.
Определение урона происходит не так точно как хотелось бы, но этого достаточно для серверов, где
охватывается прежде всего геймплей, а потом уже физика GTA SA.

Установка:
1. Скопируйте oph.amx в папку filterscripts.
2. Откройте Server.cfg и укажите в параметр "filterscripts", название скрипта т.е. "oph" без кавычек.
3. Скопируйте инклуд oph.inc, в папку где ваши инклуды. Обычно это "папка_сервера/pawno/include/".
4. Добавьте ваш мод\скрипт ниже "#include " строчку "#include " без кавычек.

Использование:

OnPlayerHit(playerid, hiterid, bodypart, weaponid, Float:distance); - Вызывается при нанесении урона игроку.
playerid - ид игрока в кому нанесен урон.
hiterid - ид игрока который нанес урон.
bodypart - (OPH_HEAD - Голова, OPH_BODY - Туловище, OPH_FOOT - Ноги).
weaponid - ид оружия с которого был нанесен урон.
distance - расстояние с которого был нанесен урон.

TogglePlayerOnHitted(playerid, toggle); - Включает\выключает вызов OnPlayerHit при нанесение урона игроку.
playerid - ид игрока
toggle - 1(вкл), 0(выкл).

ToggleWeaponBlockHit(weaponid, toggle); - Блокирует вызов OnPlayerHit с определённого оружия.
weaponid - ид оружия.
toggle - 1(блокировать), 0(разблокировать).

ToggleWeaponBlockHitForPlayer(playerid, weaponid, toggle); - Блокирует вызов OnPlayerHit с определённого оружия для конкретного игрока.
playerid - ид игрока
weaponid - ид оружия.
toggle - 1(блокировать), 0(разблокировать).

SetWeaponRangeHit(weaponid, Float:range); - Задёт радиус действия оружия для вызова OnPlayerHit.
weaponid - ид оружия.
range - радиус.
По умолчанию настройки радиусов можно узнать из файла default_weapon_radius.txt (в архиве)

SetPlayerDemagedHealth(playerid, Float:health, hiterid=-1, reason=-1); - Отнимает у игрока hp и вызывает OnPlayerDeath в случае смерти.
playerid - ид игрока.
health - сколько hp отнять.
hiterid - ид игрока который отнял hp (не обязательный параметр для OnPlayerDeath в случае смерти).
reason - ид причины или оружия (не обязательный параметр для OnPlayerDeath в случае смерти).

SetOnPlayerDeath(playerid, killerid, reason); - Вызывает OnPlayerDeath с заданными параметрами.
playerid - ид игрока.
killerid - ид игрока который убил playerid.
reason - ид причины или оружия.


Небольшой пример можно посмотреть в папке sample_code (в архиве).

Автор: AirKite
Версия: 0.1b

Просмотров: 573
24 Ноя 2024
Рейтинг: 0.0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]