Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Фейерверк

plakapenka

Специалист
Наткнулся на свою старую тему, а там ничего не работает, да и тема в архиве.

Сделал небольшой реворк.
Поехали!

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!

​
В начало мода:
C++:
new
      firework_obj[2],
      firework_time_one,
      firework_time_global,
      Float:firework_x,
      Float:firework_y,
      Float:firework_z;

#define FIREWORKS_COUNT_ONE_WAVE         23 // количество фейверков на 1 волну
#define FIREWORKS_COUNT_WAVE        20 // количество волн
В public OnObjectMoved
C++:
new
      Float:x, Float:y, Float:z;

    if(objectid >= firework_obj[0] && objectid <= firework_obj[1])
    {
     
         GetObjectPos(objectid, x,y,z);
         DestroyObject(objectid);
         CreateExplosion(x, y , z, 11, 0.5);
         firework_time_one ++;
    }
    if(firework_time_one == FIREWORKS_COUNT_ONE_WAVE+1)
    {
        firework_time_one = 0;

        if(firework_time_global >= FIREWORKS_COUNT_WAVE)
            firework_time_global = -1;

        else
            FireworksTick();
    }
В public OnGameModeInit
C++:
firework_time_global = -1;
В любое место:
C++:
stock FireworksTick()
{

    for(new i=0; i <= FIREWORKS_COUNT_ONE_WAVE; i++)
    {
        if(i == 0)
        {
            firework_obj[0] = CreateObject(19121+random(6),firework_x, firework_y, firework_z,0.0,0.0,0.0);
            continue;
        }
        if(i == FIREWORKS_COUNT_ONE_WAVE)
        {
          
            firework_obj[1] = CreateObject(19121+random(6),firework_x, firework_y, firework_z,0.0,0.0,0.0);
            continue;
        }

        CreateObject(19121+random(6),firework_x, firework_y, firework_z, 0.0, 0.0, 0.0);
    }

  
    for(new i = firework_obj[0]; i <= firework_obj[1]; i++)
        MoveObject(i, firework_x+(-30+(random(60))), firework_y+(-30+(random(60))), firework_z+(30+(random(20))), 35+random(15));

    firework_time_global ++;
    return true;
}

CMD:blow(playerid, params[])
{
    if(firework_time_global != -1)
        return SendClientMessage(playerid, -1, "{DDA0DD} >> Попробуйте позже");

    GetPlayerPos(playerid, firework_x,firework_y,firework_z);
    firework_z += 2.0;
    ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 6.1, 0, 0, 0, 0, 0,1);
    FireworksTick();
    return 1;
}



Если хотите вот в виде отдельного модуля ( через Y_hook ):
C++:
#include <YSI_Coding\y_hooks>

new
      firework_obj[2],
      firework_time_one,
      firework_time_global,
      Float:firework_x,
      Float:firework_y,
      Float:firework_z;

#define FIREWORKS_COUNT_ONE_WAVE         23 // количество фейверков на 1 волну
#define FIREWORKS_COUNT_WAVE        20 // количество волн

hook OnObjectMoved(objectid)
{
    new
      Float:x, Float:y, Float:z;

    if(objectid >= firework_obj[0] && objectid <= firework_obj[1])
    {
      
         GetObjectPos(objectid, x,y,z);
         DestroyObject(objectid);
         CreateExplosion(x, y , z, 11, 0.5);
         firework_time_one ++;
    }
    if(firework_time_one == FIREWORKS_COUNT_ONE_WAVE+1)
    {
        firework_time_one = 0;

        if(firework_time_global >= FIREWORKS_COUNT_WAVE)
            firework_time_global = -1;

        else
            FireworksTick();
    }
}

hook OnGameModeInit()
{
    firework_time_global = -1;
}

stock FireworksTick()
{

    for(new i=0; i <= FIREWORKS_COUNT_ONE_WAVE; i++)
    {
        if(i == 0)
        {
            firework_obj[0] = CreateObject(19121+random(6),firework_x,firework_y,firework_z,0.0,0.0,0.0);
            continue;
        }
        if(i == FIREWORKS_COUNT_ONE_WAVE)
        {
          
            firework_obj[1] = CreateObject(19121+random(6),firework_x,firework_y,firework_z,0.0,0.0,0.0);
            continue;
        }

        CreateObject(19121+random(6),firework_x,firework_y,firework_z,0.0,0.0,0.0);
    }

  
    for(new i = firework_obj[0]; i <= firework_obj[1]; i++)
        MoveObject(i, firework_x+(-30+(random(60))), firework_y+(-30+(random(60))), firework_z+(30+(random(20))), 35+random(15));

    firework_time_global ++;
    return true;
}

CMD:blow(playerid, params[])
{
    if(firework_time_global != -1)
        return SendClientMessage(playerid, -1, "{DDA0DD} >> Попробуйте позже");

    GetPlayerPos(playerid, firework_x,firework_y,firework_z);
    firework_z += 2.0;
    ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 6.1, 0, 0, 0, 0, 0,1);
    FireworksTick();
    return 1;
}

Вот и все. Вводите /blow и фейерверк начался
glhf :devilish:
 
Последнее редактирование:
Сверху Снизу