- Скриншоты
- Координаты ТП к автосервису
Code: Select all
SetPlayerPos(playerid, 2253.3174,-2107.0789,13.6468);
и авто, для теста:Code: Select all
AddStaticVehicle( 411, 2250.0408,-2102.0171,13.6154, 136.6149, 0, 1 );
Сегодня сделаем автомастерскую на основе этой карты. Суть такова - при въезде на пикап сначала проверяется нужен ли ремонт автомобилю, если не нужен то пишем в чат *Ремонт не требуется!*. Далее идёт проверка на наличие нужной суммы для ремонта, если её нет то в чат *У Вас не достаточно денег для ремонта.*, а если есть то ремонтируем авто и забираем у игрока 100$. Ну что же приступим. Для начала создадим переменную для пикапа:
Code: Select all
new automas;
Далее сделаем сам пикап и 3D текст. В public OnGameModeInit()
Code: Select all
automas = CreateDynamicPickup(3096,14,2262.9727,-2124.5828,14.6100,-1);
Create3DTextLabel("{ffff00}А в т о с е р в и с\n\n{7fc7ff}Цена ремонта {00ff00}100$",0xFEFEFEFE,2262.9727,-2124.5828,14.6100,40.0,0,1);
Тип пикапа в данном случае - 14 (берётся только в авто), недостаток его в том что он берётся (исчезает). Для того что бы он появился опять, нужно отъехать от него на некоторое расстояние, подьехать вновь.
Потом в public OnPlayerPickUpPickup(playerid, pickupid) делаем вывод диалога:
Code: Select all
if(pickupid == automas)//если это пикап автомастерской
{ //то выводим диалог починки
ShowPlayerDialog(playerid,100,DIALOG_STYLE_MSGBOX,"{ffff00} Починка авто.","{FFFFFF}Вы хотите починить\nавтомобиль за {00ff00}100$?","Да", "Нет");
return true;
}
Ну и в заключение действия для диалога. В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
Code: Select all
if(dialogid == 100 && response)
{
new Float:health;
new veh;
veh = GetPlayerVehicleID(playerid);
GetVehicleHealth(veh, health);
if(health >=1000) return SendClientMessage(playerid,0xFF0000AA,"{f984e5}Ремонт не требуется!");//узнаём здоровье авто
if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, 0xFF0000AA,"{f984e5}У Вас не достаточно денег для ремонта.");//узнаём есть ли у игрока деньги
RepairVehicle(GetPlayerVehicleID(playerid));//ремонтируем авто
GivePlayerMoney(playerid, -100);//забираем деньги
SendClientMessage(playerid, 0xFF0000AA,"Автомобиль отремонтирован.");//пишем в чат
}
return 1;