Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
По поводу эффектов
zhekazadrot Дата: Четверг, 20.11.2014, 21:08:24 | Сообщение # 1
Сообщений: 22
Репутация: 0 [ +/- ]
Подскажите как сделать в Basic effect что бы при убийстве игрока в него ударяла молния,попрошу сразу кинуть готовый скрипт(Просто я тупой не знаю что куда вставлять):D

ВОТ МОЙ СКРИПТ

#include sourcemod

public OnPluginStart()
{
HookEvent("player_hurt", Hurt);
}

public Action:Hurt(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid")); //Получаем айди раненого
new Float:pos[3];
GetClientAbsOrigin(client, pos); //И его позицию

pos[2] = pos[2] + 30.0; //Добавляем к позиции ног 30 по высоте, чтобы молния била в тело

new randomx = GetRandomInt(-500, 500); //Делаем молнию. Объяснять не буду, т.к. написано в самом плагине.
new randomy = GetRandomInt(-500, 500);

new Float:startpos[3];
startpos[0] = pos[0] + randomx;
startpos[1] = pos[1] + randomy;
startpos[2] = pos[2] + 800;


new color[4] = {0, 0, 255, 255};

new Float:dir[3] = {0.0, 0.0, 0.0};

TE_SetupBeamPoints(startpos, pos, g_LightningSprite, 0, 0, 0, 0.2, 20.0, 10.0, 0, 2.0, color, 3);
TE_SendToAll();

TE_SetupBeamPoints(startpos, pos, g_LightningSprite, 0, 0, 0, 0.2, 10.0, 5.0, 0, 1.0, {255, 255, 255, 255}, 3);
TE_SendToAll();

TE_SetupSparks(pos, dir, 5000, 1000);
TE_SendToAll();

TE_SetupEnergySplash(pos, dir, false);
TE_SendToAll();

TE_SetupSmoke(pos, g_SteamSprite, 5.0, 10);
TE_SendToAll();
}

ПРАВИЛЬНО???


Сообщение отредактировал zhekazadrot - Четверг, 20.11.2014, 21:48:57
 
dron216 Дата: Четверг, 20.11.2014, 23:28:43 | Сообщение # 2
Сообщений: 151
Репутация: 18 [ +/- ]
Цитата
ПРАВИЛЬНО???

Нет =D
Тебе нужно событие player_death, а не player_hurt


Сообщение отредактировал dron216 - Четверг, 20.11.2014, 23:30:05
 
KiKiEEKi Дата: Пятница, 21.11.2014, 07:18:32 | Сообщение # 3
Сообщений: 21
Репутация: -1 [ +/- ]
Вот уже готовый, использовал на своем сервере, прекрасно работает.
Код
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>   

new g_LightningSprite;   
new g_SteamSprite;   

public OnPluginStart()   
{   
     HookEvent("player_death", Event_PlayerDeath, EventHookMode_Post);   
}   

public OnMapStart()   
{   
     g_SteamSprite = PrecacheModel("sprites/steam1.vmt");    
     g_LightningSprite = PrecacheModel("sprites/lgtning.vmt");   
}   

public Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)   
{  
     //3) Делаем направление искр (к началу координат карты)  
     //4) Делаем цвет молнии (у нас синий)  
     new Float:pos[3], Float:startpos[3], Float:dir[3] = {0.0, 0.0, 0.0}, color[4] = {0, 0, 255, 255};   
       
     GetClientAbsOrigin(GetClientOfUserId(GetEventInt(event, "userid")), pos);   

     // Получаем верхнюю точку молнии + случайные позиции Х и У и выше нижней позиции на 800, чтобы молния била сверху вниз   
     startpos[0] = pos[0] + GetRandomInt(-500, 500);    
     startpos[1] = pos[1] + GetRandomInt(-500, 500);    
     startpos[2] = pos[2] + 800;    

     TE_SetupBeamPoints(startpos, pos, g_LightningSprite, 0, 0, 0, 0.2, 20.0, 10.0, 0, 2.0, color, 3); //Делаем лазер с амплитудой в 2 единицы   
     TE_SendToAll(); // Применяем   

     TE_SetupBeamPoints(startpos, pos, g_LightningSprite, 0, 0, 0, 0.2, 10.0, 5.0, 0, 1.0, {255, 255, 255, 255}, 3); //Делаем второй лазер (белый) с амплитудой в 1 единицу   
     TE_SendToAll(); // Применяем //И в 2 раза уже, чтобы молния смотрелась органично   

     TE_SetupSparks(pos, dir, 5000, 1000); //Делаем искры   
     TE_SendToAll(); // Применяем   

     TE_SetupEnergySplash(pos, dir, false); //Делаем всплеск энергии   
     TE_SendToAll(); // Применяем   

     TE_SetupSmoke(pos, g_SteamSprite, 5.0, 10); //Делаем дым   
     TE_SendToAll(); // Применяем   

     // TE_SetupBeamRingPoint(pos, 10.0, 70.0, g_BeamSprite, g_HaloSprite, 0, 15, 15.0, 2.0, 0.0, {255, 255, 0, 255}, 10, 0); //Можно добавить маяк, если хотите.    
     // TE_SendToAll();   
     if (!dontBroadcast)  
         SetEventBroadcast(event, true);   
}  
 
Vadim0890 Дата: Четверг, 15.04.2021, 18:28:57 | Сообщение # 4
Сообщений: 29
Репутация: 0 [ +/- ]
Цитата KiKiEEKi ()
#pragma semicolon 1
 
 #include <sourcemod>
 #include <sdktools>   
 
 new g_LightningSprite;   
 new g_SteamSprite;   
 
 public OnPluginStart()   
 {   
     HookEvent("player_death", Event_PlayerDeath, EventHookMode_Post);   
 }   
 
 public OnMapStart()   
 {   
     g_SteamSprite = PrecacheModel("sprites/steam1.vmt");    
     g_LightningSprite = PrecacheModel("sprites/lgtning.vmt");   
 }   
 
 public Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)   
 {  
     //3) Делаем направление искр (к началу координат карты)  
     //4) Делаем цвет молнии (у нас синий)  
     new Float:pos[3], Float:startpos[3], Float:dir[3] = {0.0, 0.0, 0.0}, color[4] = {0, 0, 255, 255};   
        
     GetClientAbsOrigin(GetClientOfUserId(GetEventInt(event, "userid")), pos);   
 
     // Получаем верхнюю точку молнии + случайные позиции Х и У и выше нижней позиции на 800, чтобы молния била сверху вниз   
     startpos[0] = pos[0] + GetRandomInt(-500, 500);    
     startpos[1] = pos[1] + GetRandomInt(-500, 500);    
     startpos[2] = pos[2] + 800;    
 
     TE_SetupBeamPoints(startpos, pos, g_LightningSprite, 0, 0, 0, 0.2, 20.0, 10.0, 0, 2.0, color, 3); //Делаем лазер с амплитудой в 2 единицы   
     TE_SendToAll(); // Применяем   
 
     TE_SetupBeamPoints(startpos, pos, g_LightningSprite, 0, 0, 0, 0.2, 10.0, 5.0, 0, 1.0, {255, 255, 255, 255}, 3); //Делаем второй лазер (белый) с амплитудой в 1 единицу   
     TE_SendToAll(); // Применяем //И в 2 раза уже, чтобы молния смотрелась органично   
 
     TE_SetupSparks(pos, dir, 5000, 1000); //Делаем искры   
     TE_SendToAll(); // Применяем   
 
     TE_SetupEnergySplash(pos, dir, false); //Делаем всплеск энергии   
     TE_SendToAll(); // Применяем   
 
     TE_SetupSmoke(pos, g_SteamSprite, 5.0, 10); //Делаем дым   
     TE_SendToAll(); // Применяем   
 
     // TE_SetupBeamRingPoint(pos, 10.0, 70.0, g_BeamSprite, g_HaloSprite, 0, 15, 15.0, 2.0, 0.0, {255, 255, 0, 255}, 10, 0); //Можно добавить маяк, если хотите.    
     // TE_SendToAll();   
     if (!dontBroadcast)  
         SetEventBroadcast(event, true);   
 }

Может кто переделать код немного, чтобы эффект был только при убийстве в голову и сделать админский флаг z ? Буду очень благодарен.
 
  • Страница 1 из 1
  • 1
Поиск: