PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <zombieplague>
#define XPOS -1.0
#define YPOS -1.0
new mindistance[33]
new dist[33]
new is_radio_on[33] = 0
new sound_noise[4][] =
{
"zombie_plague/shradio/18000.wav",
"zombie_plague/shradio/18001.wav",
"zombie_plague/shradio/18002.wav",
"zombie_plague/shradio/18003.wav"
}
public plugin_precache()
{
for (new i = 0; i < 4; i++)
precache_sound(sound_noise[i])
}
public plugin_init()
{
register_plugin("[EXODUS] Silent hill radio (not extra-item)", "1.1", "HoRRoR")
register_clcmd("say /radio","radio_button")
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
}
public radio_button(id)
{
if (is_radio_on[id] != 1)
{
if (is_user_alive(id) && !zp_get_user_zombie(id) && !zp_get_user_nemesis(id))
{
MsgChat(id,MSG_ONE,"^x04[EXODUS]^x01 Radio switched ^x03ON")
set_task(5.0,"check_radio",id,_,_,"b")
is_radio_on[id] = 1
}
}
else if (is_radio_on[id] == 1)
{
MsgChat(id,MSG_ONE,"^x04[EXODUS]^x01 Radio switched ^x03OFF")
remove_task(id)
remove_task(id+100)
is_radio_on[id] = 0
}
return PLUGIN_HANDLED;
}
public check_radio(id)
{
mindistance[id] = 8192
dist[id] = 8190
for (new i = 1; i <= get_maxplayers(); i++)
{
if (zp_get_user_zombie(i) && is_valid_ent(i))
dist[id] = get_entity_distance(id, i)
if (dist[id] < mindistance[id])
{
mindistance[id] = dist[id]
}
}
// client_print(id,print_chat,"[DEBUG] Distance is: %d", mindistance[id])
if (mindistance[id] < 300)
emit_sound(id, CHAN_AUTO, sound_noise[3], 1.0, ATTN_NORM, 0, PITCH_NORM)
else if (mindistance[id] >= 300 && mindistance[id] < 450)
emit_sound(id, CHAN_AUTO, sound_noise[2], 1.0, ATTN_NORM, 0, PITCH_NORM)
else if (mindistance[id] >= 450 && mindistance[id] < 600)
emit_sound(id, CHAN_AUTO, sound_noise[1], 1.0, ATTN_NORM, 0, PITCH_NORM)
else if (mindistance[id] >= 600)
emit_sound(id, CHAN_AUTO, sound_noise[0], 1.0, ATTN_NORM, 0, PITCH_NORM)
set_task(0.15,"hud_radio_wave1",id+100)
set_task(0.30,"hud_radio_wave2",id+100)
set_task(0.45,"hud_radio_wave3",id+100)
}
public hud_radio_wave1(taskid)
{
new id
id = taskid - 100;
set_hudmessage(200, 200, 200, XPOS, YPOS, 0, 0.5, 0.0, 0.0, 0.5, -1)
show_hudmessage(id, "( )")
}
public hud_radio_wave2(taskid)
{
new id
id = taskid - 100;
set_hudmessage(200, 200, 200, XPOS, YPOS, 0, 0.5, 0.0, 0.0, 0.5, -1)
show_hudmessage(id, "( )")
}
public hud_radio_wave3(taskid)
{
new id
id = taskid - 100;
set_hudmessage(200, 200, 200, XPOS, YPOS, 0, 0.5, 0.0, 0.0, 0.5, -1)
show_hudmessage(id, "( )")
}
public zp_user_infected_post(id)
{
if (is_radio_on[id] == 1)
{
MsgChat(id,MSG_ONE,"^x04[EXODUS]^x01 Radio switched ^x03OFF")
remove_task(id)
remove_task(id+100)
is_radio_on[id] = 0
}
}
public fw_PlayerKilled(id)
{
if (is_radio_on[id] == 1)
{
MsgChat(id,MSG_ONE,"^x04[EXODUS]^x01 Radio switched ^x03OFF")
remove_task(id)
remove_task(id+100)
is_radio_on[id] = 0
}
}
stock MsgChat(id, msgtype, text[], any:...)
{
message_begin(msgtype,get_user_msgid("SayText"),{0,0,0},id)
write_byte(id)
write_string(text)
message_end()
}