Sign in to follow this  
Followers 0

1 post in this topic

enum AIRDROP_INFO
{
    AirDropStatus,
    AirDropContent[7],
    AirDropObject[2],
    AirDropTimer,
    Text3D:AirDropText,
    Float:AirDropBoxPos[6],
    Float:AirDropParachutePos[6]
};

new AirDropInfo[][AIRDROP_INFO] = {
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {-1286.600342694.2558650.517200.000000.000000.00000}, {-1286.624762694.3742750.929900.000000.000000.00000}},
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {-221.156692603.2656363.159400.000000.000000.00000}, {-221.183402603.2824763.586400.000000.000000.00000}},
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {382.619602539.4711916.997800.000000.000000.00000}, {382.588012539.5319817.407500.000000.000000.00000}},
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {587.976381669.636237.440900.000000.000000.00000}, {587.970281669.661877.847200.000000.000000.00000}},
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {340.20050875.7172220.853300.000000.000000.00000}, {340.18100875.7415221.259700.000000.000000.00000}},
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {-236.644261216.3377720.191200.000000.000000.00000}, {-236.665501216.3150620.598900.000000.000000.00000}},
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {53.728941167.4448219.112800.000000.000000.00000}, {53.710301167.4323719.521900.000000.000000.00000}},
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {-1206.219481824.3504642.174300.000000.000000.00000}, {-1206.222051824.4086942.582900.000000.000000.00000}},
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {-1929.696662383.6884849.946800.000000.000000.00000}, {-1929.714842383.7468350.356100.000000.000000.00000}},
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {-523.890202593.0205153.843800.000000.000000.00000}, {-523.907592593.1184154.251000.000000.000000.00000}},
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {-923.226012021.7266861.367100.000000.000000.00000}, {-923.214602021.7976161.774500.000000.000000.00000}},
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {-754.601011639.8321527.619900.000000.000000.00000}, {-754.633421639.9160228.028800.000000.000000.00000}},
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {681.550421836.428715.688200.000000.000000.00000}, {681.495121836.470836.097100.000000.000000.00000}},
    {0, {0000000}, {INVALID_OBJECT_ID, INVALID_OBJECT_ID}, 0, Text3D:INVALID_3DTEXT_ID,  {6.547121526.4023413.193100.000000.000000.00000}, {6.534601526.4210213.601000.000000.000000.00000}}
};

new
    AirDropIDx = -1,
    AirDropZone = -1,
    STRING_GLOBAL[256];

#define RandomFIX(%1,%2)        (random(%2-%1)+%1)

GetFreeAirDropID()
{
    new airdrop_checked = -1;
    for(new i = sizeof(AirDropInfo)-1; i != -1; i--)
    {
        airdrop_checked = random(sizeof(AirDropInfo)-1);
        if(AirDropInfo[airdrop_checked][AirDropStatus] == 0return airdrop_checked;
    }
    return airdrop_checked;
}

CreateAirDrop()
{
    if(AirDropIDx != -1return 1;
    new idx = GetFreeAirDropID();

    STRING_GLOBAL[0] = EOS;
    foreach(new i: Player)
    {
        if(!IsAGang(i) && !IsAMafia(i)) continue;
        if(idx == -1) SendClientMessage(i, 0x33CC66FF"[F] [AirDrop Info]: Приземление AirDrop занимает две с половиной минуты.");
        else
        {
            format(STRING_GLOBAL, sizeof(STRING_GLOBAL), "[F] [AirDrop Info]: AirDrop номер %d отправляется на землю.", idx);
            SendClientMessage(i, 0x33CC66FF, STRING_GLOBAL);
            SendClientMessage(i, 0x33CC66FF"[F] [AirDrop Info]: Приземление AirDrop занимает две с половиной минуты.");
            SendClientMessage(i, 0x33CC66FF"[F] [AirDrop Info]: Примерное местоположение AirDrop отмечено на карте.");
        }
    }


    if(idx == -1return 1;

    AirDropInfo[idx][AirDropStatus] = 0;

    AirDropInfo[idx][AirDropContent][0] = RandomFIX(5002500);
    AirDropInfo[idx][AirDropContent][1] = RandomFIX(5002500);
    AirDropInfo[idx][AirDropContent][2] = RandomFIX(2502500);
    AirDropInfo[idx][AirDropContent][3] = RandomFIX(510);
    AirDropInfo[idx][AirDropContent][4] = RandomFIX(510);
    AirDropInfo[idx][AirDropContent][5] = RandomFIX(510);
    AirDropInfo[idx][AirDropContent][6] = RandomFIX(510);

    if(AirDropInfo[idx][AirDropObject][0] != INVALID_OBJECT_ID) DestroyDynamicObject(AirDropInfo[idx][AirDropObject][0]);
    AirDropInfo[idx][AirDropObject][0] = CreateDynamicObject(2935, AirDropInfo[idx][AirDropBoxPos][0], AirDropInfo[idx][AirDropBoxPos][1], AirDropInfo[idx][AirDropBoxPos][2]+250.000000, AirDropInfo[idx][AirDropBoxPos][3], AirDropInfo[idx][AirDropBoxPos][4], AirDropInfo[idx][AirDropBoxPos][5], -1, -1, -1120.0120.0);

    if(AirDropInfo[idx][AirDropObject][1] != INVALID_OBJECT_ID) DestroyDynamicObject(AirDropInfo[idx][AirDropObject][1]);
    AirDropInfo[idx][AirDropObject][1] = CreateDynamicObject(19335, AirDropInfo[idx][AirDropParachutePos][0], AirDropInfo[idx][AirDropParachutePos][1], AirDropInfo[idx][AirDropParachutePos][2]+250.000000, AirDropInfo[idx][AirDropParachutePos][3], AirDropInfo[idx][AirDropParachutePos][4], AirDropInfo[idx][AirDropParachutePos][5], -1, -1, -1120.0120.0);

    AirDropInfo[idx][AirDropTimer] = 1049;

    AirDropIDx = idx;
    AirDropZone = GangZoneCreate(AirDropInfo[idx][AirDropBoxPos][0]-95, AirDropInfo[idx][AirDropBoxPos][1]-80, AirDropInfo[idx][AirDropBoxPos][0]+70, AirDropInfo[idx][AirDropBoxPos][1]+85);

    foreach(new i: Player)
    {
        if(!IsAGang(i) && !IsAMafia(i)) continue;
        GangZoneShowForPlayer(i, AirDropZone, 0xFFFFFF65);
        GangZoneFlashForPlayer(i, AirDropZone, COLOR_RED);
    }

    new Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz;

    GetDynamicObjectPos(AirDropInfo[idx][AirDropObject][0], x, y, z);
    GetDynamicObjectRot(AirDropInfo[idx][AirDropObject][0], rx, ry, rz);
    MoveDynamicObject(AirDropInfo[idx][AirDropObject][0], x, y, z-2501.69, rx, ry, rz);

    GetDynamicObjectPos(AirDropInfo[idx][AirDropObject][1], x, y, z);
    GetDynamicObjectRot(AirDropInfo[idx][AirDropObject][1], rx, ry, rz);
    MoveDynamicObject(AirDropInfo[idx][AirDropObject][1], x, y, z-2501.69, rx, ry, rz);
    return 1;
}

CheckAirDrop()
{
    if(AirDropIDx == -1return 1;

    new idx = AirDropIDx;

    AirDropInfo[idx][AirDropTimer]--;

    if(AirDropInfo[idx][AirDropTimer] == 900)
    {
        foreach(new i: Player)
        {
            if(!IsAGang(i) && !IsAMafia(i)) continue;
            STRING_GLOBAL[0] = EOS;
            format(STRING_GLOBAL, sizeof(STRING_GLOBAL), "[F] [AirDrop Info]: AirDrop номер %d приземлился на землю.", idx);
            SendClientMessage(i, 0x33CC66FF, STRING_GLOBAL);
            SendClientMessage(i, 0x33CC66FF"[F] [AirDrop Info]: Примерное местоположение AirDrop отмечено на карте.");
        }
        
        if(AirDropInfo[idx][AirDropObject][1] != INVALID_OBJECT_ID)
        {
            DestroyDynamicObject(AirDropInfo[idx][AirDropObject][1]);
            AirDropInfo[idx][AirDropObject][1] = INVALID_OBJECT_ID;
        }
        STRING_GLOBAL[0] = EOS;
        format(STRING_GLOBAL, sizeof(STRING_GLOBAL), "[ AirDrop ]\n\nОставшееся время: {FFFFFF}%s", ConvertTime(AirDropInfo[idx][AirDropTimer]));
        AirDropInfo[idx][AirDropText] = CreateDynamic3DTextLabel(STRING_GLOBAL, COLOR_MAIN, AirDropInfo[idx][AirDropBoxPos][0], AirDropInfo[idx][AirDropBoxPos][1], AirDropInfo[idx][AirDropBoxPos][2], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, streamer_TESTLOL);
    }
    else if(AirDropInfo[idx][AirDropTimer] == 0)
    {
        STRING_GLOBAL[0] = EOS;
        foreach(new i: Player)
        {
            if(!IsAGang(i) && !IsAMafia(i)) continue;
            format(STRING_GLOBAL, sizeof(STRING_GLOBAL), "[F] [AirDrop Info]: AirDrop номер %d ликвидирован.", idx);
            SendClientMessage(i, 0x33CC66FF, STRING_GLOBAL);
        }

        AirDropInfo[idx][AirDropStatus] = 0;
        for(new i = 0; i < 7; i++) AirDropInfo[idx][AirDropContent][i] = 0;
        if(AirDropInfo[idx][AirDropObject][0] != INVALID_OBJECT_ID)
        {
            DestroyDynamicObject(AirDropInfo[idx][AirDropObject][0]);
            AirDropInfo[idx][AirDropObject][0] = INVALID_OBJECT_ID;
        }
        if(AirDropInfo[idx][AirDropObject][1] != INVALID_OBJECT_ID)
        {
            DestroyDynamicObject(AirDropInfo[idx][AirDropObject][1]);
            AirDropInfo[idx][AirDropObject][1] = INVALID_OBJECT_ID;
        }
        for(new i = 0; i < 2; i++) AirDropInfo[idx][AirDropObject][i] = -1;
        AirDropInfo[idx][AirDropTimer] = 0;
        if(AirDropInfo[idx][AirDropText] != INVALID_3DTEXT_ID)
        {
            DestroyDynamic3DTextLabel(AirDropInfo[idx][AirDropText]);
            AirDropInfo[idx][AirDropText] = INVALID_3DTEXT_ID;
        }
        AirDropIDx = -1;
        GangZoneStopFlashForAll(AirDropZone);
        GangZoneHideForAll(AirDropZone);
        GangZoneDestroy(AirDropZone);
        AirDropZone = -1;
        return 1;
    }
    else
    {
        STRING_GLOBAL[0] = EOS;
        format(STRING_GLOBAL, sizeof(STRING_GLOBAL), "[ AirDrop ]\n\nОставшееся время: {FFFFFF}%s", ConvertTime(AirDropInfo[idx][AirDropTimer]));
        UpdateDynamic3DTextLabelText(AirDropInfo[idx][AirDropText], COLOR_MAIN, STRING_GLOBAL);
    }
    return 1;
}

CMD:airdrop_create(playerid) return CreateAirDrop();

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys == KEY_WALK)
    {
        for(new idx; idx < sizeof(AirDropInfo); idx++)
        {
            if(IsPlayerInRangeOfPoint(playerid, 5.0, AirDropInfo[idx][AirDropBoxPos][0], AirDropInfo[idx][AirDropBoxPos][1], AirDropInfo[idx][AirDropBoxPos][2]))
            {
                if(AirDropInfo[idx][AirDropTimer] > 900 || AirDropInfo[idx][AirDropTimer] < 1return 1;
                SCM(playerid, -1"вставь свои призы");
            }
        }
    }
}    

на последок вставляем CheckAirDrop(); в секундный таймер

примечания по системе:
нужно вставить свои призы, сделать аирдроп по часам

Заметка от keyl , создано

3.2. Код необходимо брать в тег "Код", а код более 10 строк – еще и в "Спойлер". Как это сделать рассказано в разделе "FAQ".

Устное предупреждение.

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


      Скачать файл 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  
    • 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
    • nnnumber1
      By nnnumber1
      Доброго времени суток, совсем недавно начал свой путь разработчика в САМП/КРМП, ищу интересный проект для взаимовыгодного сотрудничества.
      Хочется "набивать руку" и повышать свой уровень в реальных условиях!

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