| 
				
				По поводу эффектов
				 |   |  
| 
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 ? Буду очень благодарен. 
 | 
 
|   | 
 |    |     
		
		
 
 |