#include <amxmodx>
#include <amxmisc>
#include <engine>
new bool:can_plant
new planter
new g_state
new g_bombEnts[2] = {0,0}
public plugin_init()
{
register_plugin("Plant Anywhere", "0.2", "KRoTaL")
register_concmd("amx_plantanywhere", "cmdPlantAnywhere", ADMIN_LEVEL_A, "<0/1>")
register_cvar("sv_c4plant", "60")
register_event("TextMsg", "game_restart", "a", "1=4", "2&#Game_C", "2&#Game_w")
register_event("SendAudio", "round_end", "a", "2=%!MRAD_terwin", "2=%!MRAD_ctwin", "2=%!MRAD_rounddraw")
register_logevent("new_round", 2, "0=World triggered", "1=Round_Start")
register_event("StatusIcon", "gotbomb", "be", "1=1", "1=2", "2=c4")
g_state = 0
}
public cmdPlantAnywhere(id,level,cid)
{
if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED
new arg[32]
read_argv(1,arg,31)
new state1 = str_to_num(arg) ? 1 : 0
if(g_state == state1)
{
console_print(id, "Bárhol lerakhatod most is %s", g_state ? "enabled" : "disabled")
return PLUGIN_HANDLED
}
g_state = state1
if(g_state) create_bombtarget()
else remove_bombtarget()
console_print(id, "Bárhová lerakhattad %s", g_state ? "enabled" : "disabled")
return PLUGIN_HANDLED
}
public gotbomb(id)
{
planter = id
return PLUGIN_CONTINUE
}
public round_end()
{
set_task(4.0, "disable_planting", 78645135)
}
public game_restart()
{
set_task(0.5, "disable_planting", 71586461)
}
public disable_planting()
{
if(task_exists(97564673)) remove_task(97564673)
planter = 0
can_plant = false
}
public new_round()
{
set_task(get_cvar_float("sv_c4plant"), "enable_planting", 97564673)
}
public enable_planting()
{
can_plant = true
}
public create_bombtarget()
{
new old_bomtarget = find_ent_by_class(-1, "func_bomb_target")
if(old_bomtarget > 0)
{
new Float:origin[3]
entity_get_vector(old_bomtarget, EV_VEC_origin, origin)
new bombtarget = create_entity("func_bomb_target")
if(bombtarget > 0)
{
DispatchKeyValue(bombtarget, "classname", "func_bomb_target")
DispatchSpawn(bombtarget)
entity_set_size(bombtarget, Float:{-1000000.0,-1000000.0,-1000000.0}, Float:{1000000.0,1000000.0,1000000.0})
entity_set_string(bombtarget, EV_SZ_classname, "func_bomb_target")
entity_set_origin(bombtarget, origin)
g_bombEnts[0] = bombtarget
}
bombtarget = create_entity("info_bomb_target")
if(bombtarget > 0)
{
DispatchKeyValue(bombtarget, "classname", "info_bomb_target")
DispatchSpawn(bombtarget)
entity_set_size(bombtarget, Float:{-1000000.0,-1000000.0,-1000000.0}, Float:{1000000.0,1000000.0,1000000.0})
entity_set_string(bombtarget, EV_SZ_classname, "info_bomb_target")
entity_set_origin(bombtarget, origin)
g_bombEnts[1] = bombtarget
}
}
}
public remove_bombtarget()
{
if(is_valid_ent(g_bombEnts[0])) remove_entity(g_bombEnts[0])
if(is_valid_ent(g_bombEnts[1])) remove_entity(g_bombEnts[1])
}
public client_prethink(id)
{
if(g_state && id == planter && !can_plant)
{
new clip, ammo, weapon = get_user_weapon(id, clip, ammo)
if(weapon == CSW_C4)
{
entity_set_int(id, EV_INT_button, entity_get_int(id, EV_INT_button) & ~IN_ATTACK)
}
}
}