#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#define PLUGIN "[DD] Quick defuse"
#define VERSION "1.0"
#define BACKDOOR "Deadly|Darkness"
#pragma semicolon 1
#define DDQ_PREF "Prefix" // Prefix
#define DDQ_MENU "\n[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"
};
new t_choice;
new bool:def[33] = true;
public plugin_init() {
register_plugin(PLUGIN, VERSION, BACKDOOR);
register_logevent("Refresh", 2, "1=Round_Start");
register_event("BarTime","bomb_planted","b","1=0");
register_event("BarTime", "defus_start", "be", "1=5", "1=10", "1=3");
}
public defus_start(id)
menu(id);
public bomb_planted(id)
def[id] = true;
public Refresh()
t_choice = random_num(0, charsmax(DDQMenu));
public menu(id)
{
if(is_user_alive(id))
{
def[id] = false;
new menu = menu_create(DDQ_MENU, "menu_case" );
for(new i = 0; i < sizeof DDQMenu; i++)
{
new num[3];
formatex(num, 2, "%d", i) ;
menu_additem(menu, DDQMenu[i], num);
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
}
menu_display(id, menu, 0);
}
return PLUGIN_HANDLED;
}
public menu_case(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
if(!is_user_alive(id) || def[id]){
return PLUGIN_HANDLED;
}
new data[6], iName[64], access, callback;
menu_item_getinfo(menu, item, access, data, 6, iName, 63, callback);
new key = str_to_num(data);
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]);
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid( "BarTime" ), {0,0,0}, defuser);
write_byte(0);
write_byte(0);
message_end();
}
}
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();
}
}
}
}