Описание: Данный 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 - ид причины или оружия.
|