#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define PLUGIN "C4 felrobbanto"
#define VERSION "0.2"
#define AUTHOR "Alka & regalis & Geri094 forditotta"
new Float:g_C4Origin[3];
new g_C4Entity;
new shake;
new bool:is_planted;
new bomb_sprite;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_cvar(PLUGIN, VERSION, FCVAR_SERVER);
register_concmd("amx_boom","make_fake", ADMIN_BAN,"<A C4 robban!! BOooOM!>");
register_logevent("bombisplanted", 3, "2=Planted_The_Bomb");
register_forward(FM_SetModel, "SetModel");
shake = get_user_msgid("ScreenShake");
bomb_sprite = get_user_msgid("StatusIcon");
}
public SetModel(entity, const model[])
{
if(equal(model, "models/w_c4.mdl"))
{
g_C4Entity = entity;
return FMRES_IGNORED;
}
return FMRES_IGNORED;
}
public bombisplanted()
{
is_planted = true;
new player[80], pname[32];
read_logargv(0, player, 79);
parse_loguser(player, pname, 31);
new id = get_user_index(pname);
pev(id, pev_origin, g_C4Origin);
}
public make_fake(id,level,cid)
{
if(!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED;
new name[32], ctime[64];
get_user_name(id,name,31);
get_time("%m/%d/%Y - %H:%M:%S", ctime, 63);
log_amx("Command : 'amx_forceboom' frissitve %s a'ltal. - [%s]",name,ctime);
if(pev_valid(g_C4Entity) && is_planted)
{
show_sprite();
set_pdata_float(g_C4Entity, 100, 0.0);
player_shake(g_C4Origin, 1<<14 , 1000.0);
is_planted = false;
}
return PLUGIN_HANDLED;
}
player_shake(Float:origin[3], shpower, Float:range)
{
new Float:pOrigin[3];
new Float:dist;
new players[32], player, num;
get_players(players, num, "ach");
for(new i; i < num; i++)
{
player = players[i];
pev(player,pev_origin,pOrigin);
dist = get_distance_f(origin,pOrigin);
if(dist <= range)
{
message_begin(MSG_ONE,shake,{0,0,0},player);
write_short(shpower);
write_short(shpower);
write_short(shpower);
message_end();
}
}
}
show_sprite()
{
new players[32], player, num;
get_players(players, num, "ach");
for(new i; i < num; i++)
{
player = players[i];
message_begin(MSG_ONE,bomb_sprite,{0,0,0},player);
write_byte(2);
write_string("bombticking");
write_byte(0);
write_byte(0);
write_byte(255);
message_end();
}
}