/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta_util>
#include <colorchat>
#define PLUGIN "FreeRun"
#define VERSION "0.1.0"
#define AUTHOR "PomanoB"
#define TASK_VOTE_RESULT 5486
new bool:g_free
new bool:g_vote_started
new bool:g_free_try
new g_free_count
new g_votes[3]
new g_cvar_percent, g_cvar_max_free, g_cvar_t_only
new passed
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
g_cvar_percent = register_cvar("dh_free_run_percent", "60")
g_cvar_max_free = register_cvar("dh_free_run_max", "3")
g_cvar_t_only = register_cvar("dh_free_run_t_only", "0")
register_clcmd("say free", "cmdFree")
set_task(20.0,"passing")
register_event("HLTV", "eventRoundStart", "a", "1=0", "2=0")
RegisterHam(Ham_Touch, "armoury_entity", "fwdTouch")
RegisterHam(Ham_Touch, "weaponbox", "fwdTouch")
RegisterHam(Ham_Use, "func_button", "fwdUse")
register_menucmd(register_menuid("Free?"), MENU_KEY_1|MENU_KEY_2, "free_run_menu")
}
public passing()
{
passed = 1
}
public eventRoundStart()
{
g_free = false
g_free_try = false
g_vote_started = false
arrayset(g_votes, 0, 3)
remove_task(TASK_VOTE_RESULT)
passed = 0
}
public free_run_menu(id, key)
{
new name[32]
get_user_name(id, name, 31)
if (get_user_team(id) == 1 && key)
{
ColorChat(0, RED, "[DeathRun]^x01 Ohh, sh~t, terrorist ^x04%s^x01 is not accept free!! <!-- s:( --><img src=\"{SMILIES_PATH}/icon_e_sad.gif\" alt=\":(\" title=\"szomorú\" /><!-- s:( -->", name)
remove_task(TASK_VOTE_RESULT)
g_vote_started = false
}
else
{
ColorChat(0, RED, "[DeathRun]^x01 ^x04%s^x01 voted free ^x04%s^x01", name, (key ? "no" : "yes"))
g_votes[key]++
}
}
public cmdFree(id)
{
if(passed)
{
client_print(id,print_chat,"20 sec. are passed, you cant do a freerun anymore")
return PLUGIN_HANDLED
}
if (get_pcvar_num(g_cvar_t_only) && get_user_team(id) != 1)
client_print(id, print_center, "Only T can Use it!")
else if (g_free)
client_print(id, print_center, "Already FreeRun!")
else if (g_vote_started)
client_print(id, print_center, "FreeRun vote started!")
else if (g_free_try)
client_print(id, print_center, "FreeRun vote already been!")
else if (g_free_count >= get_pcvar_num(g_cvar_max_free))
client_print(id, print_center, "FreeRun count max for this map!")
else if (!is_user_alive(id))
client_print(id, print_center, "Only alive can use it!")
else
{
new menu[256], len, players[32], plNum, i
len = format(menu, charsmax(menu), "\yFree?\w^n^n")
len += format(menu[len], charsmax(menu) - len, "1. Yes^n")
len += format(menu[len], charsmax(menu) - len, "2. No^n")
get_players(players, plNum, "ach")
for (i = 0; i < plNum; i++)
show_menu(players[i], MENU_KEY_1|MENU_KEY_2, menu, 15)
g_free_try = true
g_vote_started = true
set_task(15.2, "voteResult", TASK_VOTE_RESULT)
}
return PLUGIN_HANDLED
}
public voteResult()
{
if (!g_votes[1] || ( g_votes[0] * 100 / (g_votes[1] + g_votes[0])> get_pcvar_num(g_cvar_percent)))
{
g_free = true
g_free_count++
ColorChat(0, RED, "[DeathRun]^x01 Now play ^x04 FREERUN^x01 mode!! Ohh, gamers, if you failing, you really noobs <!-- s:( --><img src=\"{SMILIES_PATH}/icon_e_sad.gif\" alt=\":(\" title=\"szomorú\" /><!-- s:( -->")
new players[32], plNum, i
get_players(players, plNum, "ah")
for (i = 0; i < plNum; i++)
{
fm_strip_user_weapons(players[i])
fm_give_item(players[i], "weapon_knife")
}
}
else
ColorChat(0, RED, "[DeathRun]^x01 ^x04 FREERUN^x01 mode is not choisen. Play DeathRun and not Fail!")
g_vote_started = false
}
public fwdTouch(ent, id)
{
if (is_user_alive(id) && g_free)
return HAM_SUPERCEDE
return HAM_IGNORED
}
public fwdUse(ent, idcaller, idactivator, use_type, Float:value)
{
if (is_user_alive(idactivator) && g_free && get_user_team(idactivator) == 1)
{
client_print(idactivator, print_center, "You choose FreeRun!")
return HAM_SUPERCEDE
}
return HAM_IGNORED
}