Починка авто на пикапе

Описание: Уроки по скриптингу
Модератор: SJplayer

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 25 апреля 2013, 16:23

Починка авто на пикапе

Скриншоты
Координаты ТП к автосервису

Код: Выделить всё

SetPlayerPos(playerid, 2253.3174,-2107.0789,13.6468);


и авто, для теста:

Код: Выделить всё

AddStaticVehicle( 411, 2250.0408,-2102.0171,13.6154, 136.6149, 0, 1 );

авторемонт.jpg
авторемонт.jpg (84.14 КБ) 1500 просмотров
авторемонт3.jpg
авторемонт3.jpg (67.97 КБ) 1500 просмотров
авторемонт2.jpg
авторемонт2.jpg (79.58 КБ) 1500 просмотров

Сегодня сделаем автомастерскую на основе этой карты. Суть такова - при въезде на пикап сначала проверяется нужен ли ремонт автомобилю, если не нужен то пишем в чат *Ремонт не требуется!*. Далее идёт проверка на наличие нужной суммы для ремонта, если её нет то в чат *У Вас не достаточно денег для ремонта.*, а если есть то ремонтируем авто и забираем у игрока 100$. Ну что же приступим. Для начала создадим переменную для пикапа:

Код: Выделить всё

new automas


Далее сделаем сам пикап и 3D текст. В public OnGameModeInit()

Код: Выделить всё

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) делаем вывод диалога:

Код: Выделить всё

    if(pickupid == automas)//если это пикап автомастерской
    {  //то выводим диалог починки
        ShowPlayerDialog(playerid,100,DIALOG_STYLE_MSGBOX,"{ffff00} Починка авто.","{FFFFFF}Вы хотите починить\nавтомобиль за {00ff00}100$?","Да", "Нет");
        return true;
    


Ну и в заключение действия для диалога. В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

Код: Выделить всё

    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;
[center]i love you [s]mxIni[/s] Mysql[/center]


Вернуться в «Уроки»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 3 гостя
Боты: MailRu [Bot]