Активный
- Тема Автор
- #1
Контекст
фиксирует координаты лагеря и контролирует присутствие держит ночные смены в курсе каждой секунды поддерживает оперативные группы армии.
Функциональность
Внедрение
Код
Тест-кейсы
Эксплуатация
фиксирует координаты лагеря и контролирует присутствие держит ночные смены в курсе каждой секунды поддерживает оперативные группы армии.
Функциональность
- отслеживает радиус зоны для временного штаба ночного контура и наносит данные на ночную сетку Watcher
- управляет маяки Compass через панель Vector без задержек
- прогнозирует потеря людей за периметром и заранее предупреждает дежурных офицеров
Внедрение
- прописать ключ координат и ночные ключи доступа перед вводом
- сверить настройку радиуса с марки Chronos
- назначить ответственных за резервную точку и ночной резерв каналов
- загрузить сценарии шаблон развёртывания и ночные регламенты
Код
Код:
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#define MODULE_TAG "ARM_HQ_COMPASS_NIGHT"
new Float:ARM_HQPos[3] = {1500.0, -1700.0, 13.0};
new Float:ARM_HQRadius = 35.0;
stock bool:ARM_IsInside(playerid)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
return floatsqroot(floatpower(x - ARM_HQPos[0], 2.0) + floatpower(y - ARM_HQPos[1], 2.0)) <= ARM_HQRadius;
}
CMD:hqcompassnigstatarmy(playerid, const params[])
{
new msg[128];
format(msg, sizeof msg, "[%s] HQ: %.2f %.2f %.2f | Радиус %.1fм", MODULE_TAG, ARM_HQPos[0], ARM_HQPos[1], ARM_HQPos[2], ARM_HQRadius);
SendClientMessage(playerid, 0x20B2AAFF, msg);
format(msg, sizeof msg, "[%s] Вы %s внутри периметра.", MODULE_TAG, ARM_IsInside(playerid) ? "уже" : "не");
SendClientMessage(playerid, 0x20B2AAFF, msg);
return 1;
}
CMD:hqcompassnigctlarmy(playerid, const params[])
{
new Float:x, Float:y, Float:z, Float:r;
if(sscanf(params, "ffff", x, y, z, r)) return SendClientMessage(playerid, -1, "Используй: /hqcompassnigctlarmy [x] [y] [z] [радиус]");
ARM_HQPos[0] = x;
ARM_HQPos[1] = y;
ARM_HQPos[2] = z;
ARM_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;
}
Тест-кейсы
- провести испытание: перенести штаб в плотной застройке — ожидать корректного сигнала
- смоделировать отказ: проверить попадание игрока за периметр — убедиться что резерв подхватил
- сравнить отчёт с журнал точек и подтвердить отсутствие расхождений
Эксплуатация
- сохранять координаты после ротации
- сводить посещаемость по сменам
- проводить ночные аудиты вместе с дежурных офицеров
- держать план реагирования на потеря людей за периметром актуальным
- отчёты автоматически попадают в армия