Доступ к архиву

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

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

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

/gps и /gotogps

Статус
В этой теме нельзя размещать новые ответы.

den4is

Ученик
Здравствуйте пользователи форума. Решил выложить основу для команды /gps(для игроков) и /gotogps(для администрации).
О командах:
/gps - вызывает диалог с выбором места назначения
/gotogps - администратор может телепортироваться по метке gps

Приступим

Ко всем define
PHP:
#define DIALOG_GPS      1// ид диалога меняйте на свой
Ко всем new
PHP:
new GPS[MAX_PLAYERS];
К командам
PHP:
CMD:gps(playerid) 
{
	if(GPS[playerid] == 0) {
		ShowPlayerDialog(playerid, DIALOG_GPS, DIALOG_STYLE_LIST, "{FF000F}GPS",
		"[1] - Завод",
		"Далее", "Отмена");
	}
	else {
		GPS[playerid] = 0;
		DisablePlayerCheckpoint(playerid);
		SendClientMessage(playerid, 0xFFFFFFFF, " - (GPS): Навигатор выключен!");
	}
	return true;
}
CMD:gotogps(playerid) 
{
	if(Pi[playerid][pAdmin] < 1)
	    return SendClientMessage(playerid, -1, "[Ошибка]: Вы не администратор!");
	if(GPS[playerid] != 1)
	    return SendClientMessage(playerid, -1, "[Ошибка]: Выберите место для телепортации!");
	SetPlayerPos(playerid, GetPVarFloat(playerid, "POS_X"),
	                      GetPVarFloat(playerid, "POS_Y"),
	                      GetPVarFloat(playerid, "POS_Z"));
    DeletePVar(playerid, "POS_X"), DeletePVar(playerid, "POS_Y"), DeletePVar(playerid, "POS_Z");
	return true;
}
В паблик OnPlayerEnterCheckpoint
PHP:
if(GPS[playerid] == 1) {
	GPS[playerid] = 0;
	DisablePlayerCheckpoint(playerid);
	SendClientMessage(playerid, 0xFFFFFFFF, " - (GPS): Вы прибыли к месту назначения!");
}
В паблик OnDialogResponse
PHP:
case DIALOG_GPS: {
	switch(listitem) {
		case 0: {
			GPS[playerid] = 1;
			SetPlayerCheckpoint(playerid, -86.2500, -299.3654, 2.7646, 10.0);
			if(Pi[playerid][pAdmin] > 0) {
				SetPVarFloat(playerid, "POS_X", -86.2500),
				SetPVarFloat(playerid, "POS_Y", -299.3654),
				SetPVarFloat(playerid, "POS_Z", 2.7646);
				SendClientMessage(playerid, -1, "Введите команду /gotogps для телепортации");
			}
		}
	}
}
Как добавить новый маркер в gps?
В команде GPS в диалоге:
PHP:
"[1] - Завод\n [2] - Новая точка"
В case DIALOG_GPS:
PHP:
case 1 {
    GPS[playerid] = 1;
    SetPlayerCheckpoint(playerid, 0.0, 0.0, 0.0, 10.0); // Новые координаты
    if(Pi[playerid][pAdmin] > 0) {
        SetPVarFloat(playerid, "POS_X", 0.0),// новая координата по X
	SetPVarFloat(playerid, "POS_Y", 0.0),// новая координата по Y
	SetPVarFloat(playerid, "POS_Z", 0.0);// новая координата по Z
	SendClientMessage(playerid, -1, "Введите команду /gotogps для телепортации");
    }
} и тд
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу