plakapenka
Специалист
Наткнулся на свою старую тему, а там ничего не работает, да и тема в архиве.
Сделал небольшой реворк.
Поехали!
В начало мода:
В public OnObjectMoved
В public OnGameModeInit
В любое место:
Если хотите вот в виде отдельного модуля ( через Y_hook ):
Вот и все. Вводите /blow и фейерверк начался
glhf
Сделал небольшой реворк.
Поехали!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
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 // количество волн
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();
}
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
Последнее редактирование:
