1 post in this topic

Администратор запускает гонку /startrace и через 2 минуты начинается гонка. В конце гонки пишет, кто каким пришел. Игрок пришедший первым - получает 30.000р, второй - 20.000р, третий - 10.000р. Сумму можете изменить в дефайнах. Если вы хотите выдавать приз за места, то в #define PRIZE значение поставьте на 1, если нет оставьте по умолчанию (0). Также, администратор может в любой момент остановить гонку - /stoprace

Ко всем #define / в начало мода:

#define RolikiMesto_1   30000
#define RolikiMesto_2   20000
#define RolikiMesto_3   10000 
#define PRIZE 0

Ко всем new (можно после #define):

new RolikiPos = 0;
new RolikiGonkaIdet = 0;
new RolikCheckpoint[MAX_PLAYERS];
new TimeBeforeRolikStart = -1;
new Float:GonkaNaRolikax[10][3] = {
{1707.0135,-760.7014,52.4240},
{1698.2628,-486.6554,50.5412},
{1499.1722,-424.8036,34.0544},
{1273.3207,-605.4467,101.9943},
{929.7842,-674.3187,118.4844},
{1037.2098,-782.0674,104.0520},
{1370.2609,-934.4410,34.1875},
{1343.0232,-1143.7323,23.6696},
{798.5080,-1149.0479,23.9775},
{664.5610,-1313.6588,13.4609}};

В OnPlayerConnect:

RolikCheckpoint[playerid] = -1;

В OnPlayerCommandText:
 

if(!strcmp(cmd, "/startrace", true))
{
    if(PlayerInfo[playerid][pAdmin] <= 6) return 1;
    RolikiPos = 1;
    RolikiGonkaIdet = 1;
    for(new id = 0; id < MAX_PLAYERS; id ++)
    {
        SetPlayerCheckpoint(id,GonkaNaRolikax[0][0],GonkaNaRolikax[0][1],GonkaNaRolikax[0][2],3);
        RolikCheckpoint[id] = 0;
    }
    SendClientMessageToAll(COLOR_WHITE,"Администратор начинает гонку на роликах!");
    return 1;
}
if(!strcmp(cmd, "/stoprace", true))
{
    if(PlayerInfo[playerid][pAdmin] <= 6) return 1;
    RolikiPos = 0;
    RolikiGonkaIdet = 0;
    for(new id = 0; id < MAX_PLAYERS; id ++)
    {
        if(RolikCheckpoint[id] != -1)
        {
            RolikCheckpoint[id] = -1;
            DisablePlayerCheckpoint(id);
        }
    }
    SendClientMessageToAll(COLOR_WHITE,"Администратор заканчивает гонку на роликах!");
    return 1;
}

В OnPlayerEnterCheckpoint:

if(RolikCheckpoint[playerid] != -1)
{
    if(GetPlayerSkin(playerid) != 92 && GetPlayerSkin(playerid) != 99) return SendClientMessage(playerid,COLOR_GREY,"На тебе нет роликов!");
    else if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_GREY,"Жульничать нехорошо! Вылазь из транспортного средства!");
    else if(RolikiGonkaIdet == 0)
    {
        RolikCheckpoint[playerid] = -1;
        DisablePlayerCheckpoint(playerid);
    }
    else if(RolikCheckpoint[playerid] < 9 && TimeBeforeRolikStart < 1)
    {
        if(RolikCheckpoint[playerid] == 0 && TimeBeforeRolikStart == -1)
        {
            SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 2 минуты");
            TimeBeforeRolikStart = 120;
            return 1;
        }
        RolikCheckpoint[playerid] ++;
        SetPlayerCheckpoint(playerid,GonkaNaRolikax[RolikCheckpoint[playerid]][0],GonkaNaRolikax[RolikCheckpoint[playerid]][1],GonkaNaRolikax[RolikCheckpoint[playerid]][2],3);
    }
    else if(RolikCheckpoint[playerid] == 9)
    {
        #if PRIZE == 1
        if(RolikiPos == 1) GivePlayerMoney(playerid,RolikiMesto_1);
        else if(RolikiPos == 2) GivePlayerMoney(playerid,RolikiMesto_2);
        else if(RolikiPos == 3) GivePlayerMoney(playerid,RolikiMesto_3);
        #else
        SendClientMessage(playerid, -1, "Выдача денег отключена в настройках!");
        #endif
        DisablePlayerCheckpoint(playerid);
        format(string,sizeof(string),"%s пришел %d в гонке на роликах",name,RolikiPos);
        SendClientMessageToAll(COLOR_YELLOW,string);
        RolikiPos ++;
        RolikCheckpoint[playerid] = -1;
    }
} 

В секундный таймер:

if(TimeBeforeRolikStart > 0)
{
    TimeBeforeRolikStart --;
    switch(TimeBeforeRolikStart)
    {
        case 110: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 1:50");
        case 100: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 1:40");
        case 90: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 1:30");
        case 80: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 1:20");
        case 70: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 1:10");
        case 60: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 1:00");
        case 50: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 0:50");
        case 40: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 0:40");
        case 30: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 0:30");
        case 20: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 0:20");
        case 10: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 0:10");
        case 0:
        {
            TimeBeforeRolikStart = -1;
            SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах началась!");
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
                if(RolikCheckpoint[i] != -1)
                {
                    if(IsPlayerInRangeOfPoint(i,8.0,GonkaNaRolikax[0][0],GonkaNaRolikax[0][1],GonkaNaRolikax[0][2]))
                    {
                        SetPlayerCheckpoint(i,GonkaNaRolikax[1][0],GonkaNaRolikax[1][1],GonkaNaRolikax[1][2],3);
                        RolikCheckpoint[i] = 1;
                    }
                    else
                    {
                        RolikCheckpoint[i] = -1;
                        DisablePlayerCheckpoint(i);
                    }
                }
            }
        }
    }
}

Автор: неизвестен.

Усовершенствовал: @vlad и Roman.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Kasper0
      By Kasper0
      Продажа мода KAIF CRMP// Готовый кроссплатформленный мод (можно играть одновременно с ПК и телефонов)
       
      Характеристики мода:
       
      Процессор: PAWN.CMD
      Кол-во строк в моде: 60+k
      Режим: RolePlay
      Автор и разработчик: Максим Зуев

      Посла оплаты обратитесь в ЛС,для предоставления игровой сборки и помощи в установке мода.

      Системы в моде:
       
      — Полная адаптация под телефоны;
      — Абсолютно новая система светофоров (Штрафы за проезд на красный);
      — Биржа обмена;
      — Красивые интерьеры;
      — Уникальня система репорта;
      — Система ТОП ДОНАТЕРОВ;
      — Подарки за пополнение счета (Донат);
      — Возможность создавать маппинг прямо из игры;
      — Система тюнинга (Обвесы и т.д);
      — Мероприятие "Мясорубка";
      — Система ГОНКИ;
      — Бойцовский клуб;
      — Баня для отдыха;
      — BATTLE ROYALE;
      — Дуэли;
      — Прыжки с парашютом;
      — Система Контейнеров;
      — Система Автоугонщиков;
      — Работа мусорщиком;
      — Валюта EURO;
      — Система VIP'ок (Ruby, Sapphire, Emerald, Diamond);
      — Система штрафстоянок;
      — Работа ХИТМАНОМ (Заказные убийства);
      — Система Гос.Волны (/editgov);
      — Система рефералок (/referals);
      — Система друзей (/friends);
      — Система Ивентов, итоги в конце недели (Лучший Гос.служащий,Лучший убийца, Лучший тащер, Лучший армеец);
      — Система аксессуаров;
       
      Видеообзоры (YT,VK):

      https://www.youtube.com/watch?v=Gzzl2UN2i48

      https://www.youtube.com/watch?v=lZv-TRRFa1U

      https://www.youtube.com/watch?v=od1KDSHitu8
    • Kasper0
      By Kasper0


      Скачать файл CRMP MOBILE | KAIF RP | PC+MOBILE
      Продажа мода KAIF CRMP// Готовый кроссплатформленный мод (можно играть одновременно с ПК и телефонов)
       
      Характеристики мода:
       
      Процессор: PAWN.CMD
      Кол-во строк в моде: 60+k
      Режим: RolePlay
      Автор и разработчик: Максим Зуев

      Посла оплаты обратитесь в ЛС,для предоставления игровой сборки и помощи в установке мода.

      Системы в моде:
       
      — Полная адаптация под телефоны;
      — Абсолютно новая система светофоров (Штрафы за проезд на красный);
      — Биржа обмена;
      — Красивые интерьеры;
      — Уникальня система репорта;
      — Система ТОП ДОНАТЕРОВ;
      — Подарки за пополнение счета (Донат);
      — Возможность создавать маппинг прямо из игры;
      — Система тюнинга (Обвесы и т.д);
      — Мероприятие "Мясорубка";
      — Система ГОНКИ;
      — Бойцовский клуб;
      — Баня для отдыха;
      — BATTLE ROYALE;
      — Дуэли;
      — Прыжки с парашютом;
      — Система Контейнеров;
      — Система Автоугонщиков;
      — Работа мусорщиком;
      — Валюта EURO;
      — Система VIP'ок (Ruby, Sapphire, Emerald, Diamond);
      — Система штрафстоянок;
      — Работа ХИТМАНОМ (Заказные убийства);
      — Система Гос.Волны (/editgov);
      — Система рефералок (/referals);
      — Система друзей (/friends);
      — Система Ивентов, итоги в конце недели (Лучший Гос.служащий,Лучший убийца, Лучший тащер, Лучший армеец);
      — Система аксессуаров;
       
      Видеообзоры (YT,VK):

      https://www.youtube.com/watch?v=Gzzl2UN2i48

      https://www.youtube.com/watch?v=lZv-TRRFa1U

      https://www.youtube.com/watch?v=od1KDSHitu8
      Добавил Kasper0 Добавлено 08.12.2023 Категория Моды Автор devJust  
    • nnnumber1
      By nnnumber1
      Доброго времени суток, совсем недавно начал свой путь разработчика в САМП/КРМП, ищу интересный проект для взаимовыгодного сотрудничества.
      Хочется "набивать руку" и повышать свой уровень в реальных условиях!

      Пишите в ЛС на форуме.
    • Makkos
      By Makkos
      Ищу человека которий может сделать лаунчер мобайл для самп проекта
      Оплата в - грн
      Жду предложений в телеграм - https://t.me/creator700