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

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

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

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

mGates (Автоматические ворота, создаваемые одной функцией)

razor2211_

Умник
Благодаря этому инклюду теперь стало намного удобнее создавать ворота/шлакбаумы и т. д. Можно также сделать ворота только для определенной фракции, тем самым разрешить не всем игрокам их открывать.

PHP:
CreateAutomaticGate(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:x2, Float:y2, Float:z2, Float:rx2, Float:ry2, Float:rz2, Float:trigx, Float:trigy, Float:trigz, Float:trig_range, Float:movespeed, condition=0);
Параметры:

modelid - ID модели ворот
Float:x, Float:y, Float:z - Координаты закрытых ворот
Float:rx, Float:ry, Float:rz - Углы поворота закрытых ворот
Float:x2, Float:y2, Float:z2 - Координаты открытых ворот
Float:rx2, Float:ry2, Float:rz2 - Углы поворота открытых ворот, (Установите все значения на -1000, чтобы объект не вращался)
Float:trigx, Float:trigy, Float:trigz - Если какой-либо игрок в данных координатах, ворота открываются, если никого нет, ворота закрываются.
Float:trig_range - Радиус, в котором открываются ворота
Float:movespeed - скорость открытия ворот
condition - Если переменная 'condition' принимает значение 0, то данные ворота могут открываться всеми игроками, если 1 - вызывается функция OnPlayerRequestGate. Там можно указать проверку на фракцию/работу или даже на ник

Возвращает: ID только что созданных ворот, либо -1, если ворота не созданы (исчерпан лимит)

Пример использования функции:

PHP:
new BARRIER_LSPD;

public OnGameModeInit()
{
    BARRIER_LSPD = CreateAutomaticGate(968, 1544.692993, -1630.822509, 13.08, 0.000000, 90.000000, 90.000000, 1544.692993, -1630.822509, 13.08+0.01, 0.000000, 10.000000, 90.000000, 1544.6627, -1627.4036, 13.1099, 20.0, 0.003);
    return 1;
}
==================================================
FUNCTIONS
==================================================

PHP:
OpenGate(gateid);
Параметры:
    gateid - ИД ворот, которые нужно открыть (Возвращается функцией CreateAutomaticGate)

Возвращает:
    -1, если ворота не найдены
    0, если ворота уже открыты
    1, в случае успеха
PHP:
CloseGate(gateid);
Параметры:
    gateid - ИД ворот, которые нужно открыть (Возвращается функцией CreateAutomaticGate)

Возвращает:
    -1, если ворота не найдены
    0, если ворота уже закрыты
    1, в случае успеха
PHP:
GateStatus(gateid);
Параметры:
    gateid - ИД ворот, которые нужно открыть (Возвращается функцией CreateAutomaticGate)

Возвращает:
    -1, если ворота не найдены
    GATE_STATUS_CLOSED 0 - Ворота уже закрыты
    GATE_STATUS_OPENING 1 - Ворота открываются, но еще не открыты
    GATE_STATUS_OPEN 2 - Ворота уже открыты
    GATE_STATUS_CLOSING 3 - Ворота закрываются, но еще не закрыты
==================================================
CALLBACKS
==================================================

PHP:
public OnGateOpenClose(gateid, openclose, Float:gatex, Float:gatey, Float:gatez)
Этот паблик вызывается в случае открытия или закрытия ворот. В общем вызывается 4 раза: Когда ворота открываются, когда ворота открыты, когда ворота закрываются и когда ворота закрыты
gatex, gatey, gatez - это координаты ворот в настоящее время (будь то открытие или закрытие). Может использоваться, например, для воспроизведения звука для игроков.

PHP:
public OnPlayerRequestGate(playerid, gateid)
Ядро состояния системы.
Если эта функция вернет 1 то ворота игроку откроются, иначе не откроются

PHP:
public OnPlayerTriggerGate(playerid, gateid)
Вызывается, когда игрок запускает открытие ворот

Видео:

Автор: MP2 ( )
Ссылка на скачивание: (откроется текст, скопируйте его, откройте блокнот, вставьте скопированный код и сохраните (у файла должно быть расширение .inc)

---------- Post added at 22:14 ---------- Previous post was at 22:11 ----------

Ах да, забыл, для работы данного инклюда требуется наличие инклюдов foreach.inc и y_hook.inc (YSI)
 
Последнее редактирование модератором:
Сверху Снизу