Активный
- Тема Автор
- #1
Идея и назначение
Игрок может узнать расстояние до другого игрока по ID.
Полезно для тактики, полиции и тренеров.
Суть реализации
1. Команда /distance принимает ID цели.
2. Получаем позиции обоих игроков.
3. Считаем дистанцию по формуле и выводим её.
Реализация
Дополнительные идеи
1. Учитывать высоту по оси Z.
2. Показывать направление на игрока стрелкой или маркером.
3. Ограничить использование команды определёнными фракциями.
Игрок может узнать расстояние до другого игрока по ID.
Полезно для тактики, полиции и тренеров.
Суть реализации
1. Команда /distance принимает ID цели.
2. Получаем позиции обоих игроков.
3. Считаем дистанцию по формуле и выводим её.
Реализация
Код:
CMD:distance(playerid, params[])
{
new target;
if(sscanf(params, "u", target))
return SendClientMessage(playerid, -1, "Используй: /distance [id].");
if(!IsPlayerConnected(target))
return SendClientMessage(playerid, -1, "Игрок не найден.");
new Float:x1, Float:y1, Float:z1;
new Float:x2, Float:y2, Float:z2;
GetPlayerPos(playerid, x1, y1, z1);
GetPlayerPos(target, x2, y2, z2);
new Float:dx = x1 - x2;
new Float:dy = y1 - y2;
new Float:dist = floatsqroot(dx * dx + dy * dy);
new msg[64];
format(msg, sizeof msg, "Расстояние до игрока: %.2f метров.", dist);
SendClientMessage(playerid, -1, msg);
return 1;
}
Дополнительные идеи
1. Учитывать высоту по оси Z.
2. Показывать направление на игрока стрелкой или маркером.
3. Ограничить использование команды определёнными фракциями.