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

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

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

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

Урок Система активного поиска для полицейских

Negatived

Начинающий
Пользователь
Регистрация
19 Дек 2018
Сообщения
42
Лучшие ответы
0
Репутация
7
Здравствуйте, пользователи Pawno-Info!
Сегодня хотел бы продемонстрировать систему, написанную за ~15 минут.
Для кого-то она может быть полезна, от критики не откажусь.

Перейдем же к самой системе.

Система представляет из себя команду и функцию. Когда полицейский прописывает команду /afind [id игрока] ему показывается метка на карте, где находится преступник, и она активно обновляется.


Ко всем new
PHP:
new find[MAX_PLAYERS];
Ко всем forward'ам
PHP:
forward afind(pl, fin);
Ко всем пабликам
PHP:
public afind(pl, fin)
{
	if(!IsPlayerConnected(fin)) return SendClientMessage(pl, 0xFF0000FF, "Игрок вышел с сервера!"), KillTimer(find[pl]);
	if(GetPlayerInterior(fin) > 0) return SendClientMessage(pl, 0x00BB00FF, "Игрок находится в интерьере!");
	DisablePlayerRaceCheckpoint(pl);
	new Float:x, Float:y, Float:z;
	GetPlayerPos(fin, x, y, z);
	SetPlayerRaceCheckpoint(pl, 0, x, y, z, x, y, z, 1.7); 
	return 1;
}
Ко всем командам
PHP:
CMD:afind(playerid, params[])
{
	if(/*Ваша проверка на то что игрок не полицейский */) return 1;
	if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, 0x00BB00FF, "Используйте: /afind [id]");
	if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, 0xFF0000FF, "Игрок не найден на сервере!");
    if(/*Ваша проверка на то что params[0] не в розыске*/) return SendClientMessage(playerid, 0xFF0000FF, "Данный игрок не находится в розыске!");
	find[playerid] = SetTimerEx("afind", 1000,1,"dd",playerid, params[0]);
	return 1;
}
 
Сверху Снизу