den4is
Ученик
Здравствуйте пользователи форума. Решил выложить основу для команды /gps(для игроков) и /gotogps(для администрации).
О командах:
/gps - вызывает диалог с выбором места назначения
/gotogps - администратор может телепортироваться по метке gps
Приступим
Ко всем define
Ко всем new
К командам
В паблик OnPlayerEnterCheckpoint
В паблик OnDialogResponse
Как добавить новый маркер в gps?
В команде GPS в диалоге:
В case DIALOG_GPS:
О командах:
/gps - вызывает диалог с выбором места назначения
/gotogps - администратор может телепортироваться по метке gps
Приступим
Ко всем define
PHP:
#define DIALOG_GPS 1// ид диалога меняйте на свой
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;
}
PHP:
if(GPS[playerid] == 1) {
GPS[playerid] = 0;
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, 0xFFFFFFFF, " - (GPS): Вы прибыли к месту назначения!");
}
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 в диалоге:
PHP:
"[1] - Завод\n [2] - Новая точка"
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 для телепортации");
}
} и тд
Последнее редактирование:
