Ко всем forward-ам добавляем:
Code
forward IsADalnoboiCar(carid);
Потом вставляем этот паблик куда вам угодно:
Code
public IsADalnoboiCar(carid)
{
new model=GetVehicleModel(carid);
if(model == 515 || model == 514 || model == 403) //
{return 1;}
return 0;
}
Где 515,514,403 это ид грузовых машин.
В public OnPlayerStateChange(playerid, newstate, oldstate) вставляем:
Code
if(IsADalnoboiCar(newcar)) {
if(PlayerInfo[playerid][pJob] != 16 )
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_GREY, "Ты не Дальнобойщик.");
}
}
А сейчас переходим к созданию команды:
Code
if(strcmp(cmd, "/gruz", true) == 0) {
new carid = GetPlayerVehicleID(playerid);
if(PlayerInfo[playerid][pJob] != 16) {
format(string, sizeof(string), " Вы не работаете дальнобойщиком!");
SendClientMessage(playerid, COLOR_GRAD1, string); return 1;
}
if (!IsADalnoboiCar(carid)) {
SendClientMessage(playerid, COLOR_GRAD1, " Вы должны находится в фуре чтобы взять груз!"); return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
new listitems[] = "1\tОтвезти груз в ЛС\n2\tОтвезти груз в СФ\n3\tОтвезти груз в ЛВ";
ShowPlayerDialog(playerid,123,DIALOG_STYLE_LIST," Портативный Gps Навигатор:",listitems," Подтвердить"," Отмена");
return 1;
}
А это команда чтобы выбрать куда везти груз.
Code
if(strcmp(cmd, "/ungruz", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pJob] != 16)
{
SendClientMessage(playerid, COLOR_GREY, " Вы не дальнобойщик!");
return 1;
}
new carid = GetPlayerVehicleID(playerid);
new gTrailer = GetVehicleTrailer(carid);
if(!IsTrailerAttachedToVehicle(carid))
{
SendClientMessage(playerid, COLOR_GREY, "Вы приехали без груза!!!");
return 1;
}
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr))
{
SendClientMessage(playerid, COLOR_WHITE, "Используйте: /upgruz название взависимости от локации");
SendClientMessage(playerid, COLOR_WHITE, "Доступные Названия: ls, sf, lv.");
return 1;
}
if(strcmp(x_nr,"ls",true) == 0)
{
if(PlayerToPoint(3.0,playerid,2519.7297,-2440.3740,13.3399))
{
format(string, sizeof(string), "|____________________________|");
SendClientMessage(playerid, COLOR_RED1, string);
format(string, sizeof(string), "Вы доставили груз!");
SendClientMessage(playerid, COLOR_LG, string);
format(string, sizeof(string), "И получили премию в размере 7000$");
SendClientMessage(playerid, COLOR_LG, string);
format(string, sizeof(string), "|____________________________|");
SendClientMessage(playerid, COLOR_RED1, string);
GivePlayerMoney(playerid, 7000);
SetVehicleToRespawn(gTrailer);
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|");
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Вы не на складе.");
return 1;
}
}
else if(strcmp(x_nr,"sf",true) == 0)
{
if(PlayerToPoint(3.0,playerid,-2688.5688,234.7379,4.0589))
{
format(string, sizeof(string), "|____________________________|");
SendClientMessage(playerid, COLOR_RED1, string);
format(string, sizeof(string), "Вы доставили груз в Сан Фиеро!");
SendClientMessage(playerid, COLOR_LG, string);
format(string, sizeof(string), "И вы получили премию в размере 14000$");
SendClientMessage(playerid, COLOR_LG, string);
format(string, sizeof(string), "|____________________________|");
SendClientMessage(playerid, COLOR_RED1, string);
GivePlayerMoney(playerid, 14000);
SetVehicleToRespawn(gTrailer);
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|");
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Вы не на складе.");
return 1;
}
}
else if(strcmp(x_nr,"lv",true) == 0)
{
if(PlayerToPoint(3.0,playerid,-367.9283,1583.2257,75.9362))
{
format(string, sizeof(string), "|____________________________|");
SendClientMessage(playerid, COLOR_RED1, string);
format(string, sizeof(string), "Вы доставили груз!");
SendClientMessage(playerid, COLOR_LG, string);
format(string, sizeof(string), "И вы получили премию в размере 25000$");
SendClientMessage(playerid, COLOR_LG, string);
format(string, sizeof(string), "|____________________________|");
SendClientMessage(playerid, COLOR_RED1, string);
GivePlayerMoney(playerid, 25000);
SetVehicleToRespawn(gTrailer);
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|");
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Вы не на складе.");
return 1;
}
}
}
}
Это команда чтобы сдать груз когда будешь стоять на ЧП.
И последний штрих добавляем в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]):
Code
else if(dialogid == 123)
{
if(!response) return 0;
else
{
gPlayerCheckpointStatus[playerid] = CHECKPOINT_GPS;
switch (listitem)
{
case 0:
{
SetPlayerCheckpoint(playerid,2519.7297,-2440.3740,13.3399,5.0);
SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!");
}
case 1:
{
SetPlayerCheckpoint(playerid,-2688.5688,234.7379,4.0589,5.0);
SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!");
}
case 2:
{
SetPlayerCheckpoint(playerid,-367.9283,1583.2257,75.9362,5.0);
SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!");
}
case 6:
{
PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0);
DisablePlayerCheckpoint(playerid);
}
}
}
}
ну вот и все на этом наш урок заканчивается. Если вам поравилось от + не откажусь.