Мобильный штаб на колесах для нацгвардии

Активный
Статус
Сообщения
516
Лайки
32

8

месяц на сайте

Контекст
Решение фиксирует текущие координаты штаба, проверяет присутствие и упрощает перенос лагеря. Решение используется оперативным штабом нацгвардии.

Функциональность
  • хранит актуальную зону развёрнутого штаба
  • вычисляет кто находится внутри рабочей окружности
  • позволяет перемещать лагерь одной командой

Внедрение
  • выберите ответственных за перенос лагеря
  • пропишите базовую зону по умолчанию
  • согласуйте радиус охвата для контроля присутствия
  • добавьте проверку посещаемости в систему допуска

Код
Код:
#include <a_samp>
#include <zcmd>
#include <sscanf2>

#define MODULE_TAG "NG_MOBILE_HQ"

new Float:NG_HQPos[3] = {1500.0, -1700.0, 13.0};
new Float:NG_HQRadius = 35.0;

stock bool:NG_IsInside(playerid)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    return floatsqroot(floatpower(x - NG_HQPos[0], 2.0) + floatpower(y - NG_HQPos[1], 2.0)) <= NG_HQRadius;
}

CMD:hqstatusng(playerid, const params[])
{
    new msg[128];
    format(msg, sizeof msg, "[%s] HQ: %.2f %.2f %.2f | Радиус %.1fм", MODULE_TAG, NG_HQPos[0], NG_HQPos[1], NG_HQPos[2], NG_HQRadius);
    SendClientMessage(playerid, 0x20B2AAFF, msg);
    format(msg, sizeof msg, "[%s] Вы %s внутри периметра.", MODULE_TAG, NG_IsInside(playerid) ? "уже" : "не");
    SendClientMessage(playerid, 0x20B2AAFF, msg);
    return 1;
}

CMD:hqmoveng(playerid, const params[])
{
    new Float:x, Float:y, Float:z, Float:r;
    if(sscanf(params, "ffff", x, y, z, r)) return SendClientMessage(playerid, -1, "Используй: /hqmoveng [x] [y] [z] [радиус]");
    NG_HQPos[0] = x;
    NG_HQPos[1] = y;
    NG_HQPos[2] = z;
    NG_HQRadius = r;
    new msg[144];
    format(msg, sizeof msg, "[%s] HQ перенесен в %.1f %.1f %.1f | R=%.1f", MODULE_TAG, x, y, z, r);
    SendClientMessageToAll(0xF0E68CFF, msg);
    return 1;
}

Тест-кейсы
  • переместите штаб и сравните координаты на карте
  • проверьте, что игрок вне радиуса не учитывается
  • вызовите перенос в движущемся транспорте для проверки защиты

Эксплуатация
  • фотографируйте зону при каждом переносе для отчета
  • проверяйте привязку ко времени комендантского часа
  • ежедневно синхронизируйте координаты с порталом
  • отчеты автоматически попадают в нацгвардия
 

1 человек читают эту тему (Всего: 1, Пользователей: 0, Гостей: 1)

Сверху