#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <fakemeta_util>
#define PLUGIN "[DD] Quick defuse"
#define VERSION "1.1"
#define BACKDOOR "Deadly|Darkness"
#pragma semicolon 1
// Словарь
#define DDQ_PREF "Prefix" // Prefix
#define DDQ_MENU "\y[DD] Quick defuse^n\yVálassz vezetĂ©ket:" // MenĂĽ cĂm
#define DDQ_TCH "^1[^4%s^1] ^1Választott vezeték: ^3%s"
#define DDQ_СTCH "^1[^4%s^1] Játékos: ^4%s ^1elvágta a ^3%s-et. ^1Helyes: ^4%s!"
new const DDQMenu[][] =
{
"Kék vezeték",
"Piros vezeték",
"Lila vezeték",
"Zöld vezeték",
"Fehér vezeték"
};
const m_pActiveItem = 373;
const OFFSET_LINUX = 5;
new g_ddqmenu;
new t_choice;
new def;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, BACKDOOR);
register_logevent("Refresh", 2, "1=Round_Start");
g_ddqmenu = menu_create(DDQ_MENU,"menu_case");
build_menu();
register_event("BarTime","bomb_planted","b","1=0");
register_event("BarTime", "defus_start", "be", "1=3", "1=5", "1=10");
}
public defus_start(id)
{
menu_display(id, g_ddqmenu, 0);
def = id;
}
public bomb_planted(id)
{
if(id == def)
def = 0;
}
public Refresh()
t_choice = random_num(0, charsmax(DDQMenu));
build_menu()
{
for(new i = 0; i < sizeof DDQMenu; i++)
{
new num[3];
formatex(num, 2, "%d", i) ;
menu_additem(g_ddqmenu, DDQMenu[i], num);
menu_setprop(g_ddqmenu, MPROP_PERPAGE, 0);
}
}
public menu_case(id, menu, item)
{
if(!is_user_alive(id) || id != def)
return PLUGIN_HANDLED;
new cmd[2];
new access, callback;
menu_item_getinfo(menu, item, access, cmd,2,_,_, callback);
new key = str_to_num(cmd);
switch (key)
{
default:
{
if(get_user_team(id) == 1)
{
t_choice = key;
color_chat(id, DDQ_TCH, DDQ_PREF, DDQMenu[key]);
}
else Think_bomb(id, key);
}
}
return PLUGIN_HANDLED;
}
stock Think_bomb(defuser, ct_choice)
{
new bomb = fm_find_ent_by_model(-1, "grenade", "models/w_c4.mdl");
if(bomb)
{
new name[32]; get_user_name(defuser, name, charsmax(name));
new result;
if(ct_choice == t_choice)
result = 99;
else result = 100;
set_pdata_float(bomb, result, 0.0);
dllfunc(DLLFunc_Think, bomb);
color_chat(0, DDQ_СTCH, DDQ_PREF, name, DDQMenu[ct_choice], DDQMenu[t_choice]);
new ent = get_pdata_cbase(defuser , m_pActiveItem, OFFSET_LINUX);
ExecuteHamB(Ham_Item_Deploy, ent);
}
}
stock color_chat(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4");
replace_all(msg, 190, "!y", "^1");
replace_all(msg, 190, "!t", "^3");
if (id) players[0] = id; else get_players(players, count, "ch");
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}