Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Дым наносит урон.
aelrond
Дата: Четверг, 30.07.2015, 03:16 | Сообщение # 1
офлайн

  • Сообщения: 29
  • Награды: 0
  • Замечания:
 
Доброго всем времени суток!

Может кто помочь довести до ума плагин?
Как сделать что бы не наносило урон своей команде и самому себе?
Как сделать, что бы дым висел определенное время? секунд 20, например.Как сделать, что бы дым исчезал в новом раунде?


Код
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>   
new smoke   
public plugin_init()      
{         
RegisterHam(Ham_Killed, "player", "player_killed", 1)   
}

public plugin_precache()   
{         
smoke = precache_model("sprites/ballsmoke.spr")    
}
public player_killed(victim, attacker, shouldgib)    
{       
if(!attacker) return       
if(victim == attacker) return     
static Float:origin[3];
pev(victim, pev_origin, origin)         
set_task(0.0, "create_gas", 20, _:origin, 3, "a", 1)    
}
Public create_gas(Float:origin[3],times)
{       
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)     
write_byte(TE_SPRITE)        
engfunc(EngFunc_WriteCoord, origin[0])      
engfunc(EngFunc_WriteCoord, origin[1])     
engfunc(EngFunc_WriteCoord,origin[2])   
write_short(smoke)    
write_byte(50)     
write_byte(115)   
message_end()      
new target = -1      
while((target = engfunc(EngFunc_FindEntityInSphere,target,origin, 100.0)))     
  {               
if(!is_user_alive(target)) continue      
ExecuteHamB(Ham_TakeDamage, target, 0, 0, 10.0, DMG_NERVEGAS)   
}       
set_task(1.0, "create_gas", --times, _:origin, 3, "a", 1)     
}


Сообщение отредактировал aelrond - Четверг, 30.07.2015, 03:26
 
s13cs_user2
Дата: Вторник, 04.08.2015, 00:44 | Сообщение # 2
офлайн

  • Сообщения: 2
  • Награды: 0
  • Замечания:
 
Код
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define get_team(%0)     get_pdata_int(%0, 114, 5)

const POST       = 1;
const TASK_ID    = 100;

new smoke_sid;

public plugin_init()
{
  RegisterHam(Ham_Killed, "player", "player_Killed_Post", POST);
}  

public plugin_precache()    
{
  smoke_sid = precache_model("sprites/ballsmoke.spr");
}

public player_Killed_Post(victim, attacker, shouldgib)
{
  if (!attacker || victim == attacker) return;
   
  static Float:origin[3];
  pev(victim, pev_origin, origin);
  set_task(1.0, "create_gas", TASK_ID + victim, _:origin, sizeof origin, "a", 20);
}

public create_gas(Float: origin[3], owner)  
{
  owner -= TASK_ID;
   
  message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  write_byte(TE_SPRITE);
  engfunc(EngFunc_WriteCoord, origin[0]);
  engfunc(EngFunc_WriteCoord, origin[1]);
  engfunc(EngFunc_WriteCoord, origin[2]);
  write_short(smoke_sid);
  write_byte(50);
  write_byte(115);
  message_end();
   
  new target = -1;
  while((target = engfunc(EngFunc_FindEntityInSphere,target,origin, 100.0))) {
   if (!is_user_alive(target) || target == owner || get_team(target) == get_team(owner)) continue;
    
   ExecuteHamB(Ham_TakeDamage, target, 0, 0, 10.0, DMG_NERVEGAS);
  }
}
 
  • Страница 1 из 1
  • 1
Поиск: