/* Ultimtate KillStreak Advanced */
#include <amxmodx>
#include <amxmisc>
#include <csx>
#define PLUGIN "Ultimate KillStreak Advanced"
#define VERSION "0.8"
#define AUTHOR "SAMURAI"
/*#define TASK_CLEAR_KILL 100*/
#define LEVELS 10
/*new kill[33][24];*/
new kills[33] = {0,...};
new deaths[33] = {0,...};
new hsenable, knifeenable, firstbloodenable, nadecvar, suicidecvar, rnstartcvar, killstreaktype;
new firstblood;
new hsmessages[][] =
{
"%s zalozyl sie o glowe z %s i wygral !!",
"Przez %s %s stracil glowe !",
"%s zrobil trzecie oko dla %s!",
"%s pozbyl sie %s i jego glowy!"
};
new hslist[][] =
{
"ultimate_sounds/headshot1_ultimate",
"ultimate_sounds/headshot2_ultimate"
};
new knmessages[][] =
{
"Psychol %s wbil noz dla %s prosto w serce!",
"%s dzgnol nozem %s",
"%s operowal %s niestety pacjent zmarl!"
};
new knlist[][] =
{
"ultimate_sounds/knife1_ultimate",
"ultimate_sounds/knife2_ultimate"
};
new fbmessages[][] =
{
"%s to ja będę pierwszy!!",
"%s moj pierwszy frag w tej rundzie!!",
"To %s spowodowal pierwszy krwotok w tej rundzie!"
};
new fblist[][] =
{
"ultimate_sounds/firstblood1_ultimate",
"ultimate_sounds/firstblood2_ultimate"
};
new nademessages[][] =
{
"%s rzucil co nieco dla %s !",
"%s zrobil wybuchowy prezent dla %s !",
"%s jest dobrym granadierem!"
};
new suicidemess[][] =
{
"%s sam sie zabil ahahahha!",
"%s jest idioto!"
};
new suicidelist[][] =
{
"ultimate_sounds/suicide1_ultimate",
"ultimate_sounds/suicide2_ultimate",
"ultimate_sounds/suicide3_ultimate",
"ultimate_sounds/suicide4_ultimate"
};
new doublelist[][] =
{
"ultimate_sounds/doublekill1_ultimate",
"ultimate_sounds/doublekill2_ultimate"
}
new levels[10] = {3, 4, 6, 8, 10, 12,14,15,16,18};
new sounds[10][] =
{
"ultimate_sounds/triplekill_ultimate",
"ultimate_sounds/multikill_ultimate",
"ultimate_sounds/ultrakill_ultimate",
"ultimate_sounds/killingspree_ultimate",
"ultimate_sounds/megakill_ultimate",
"ultimate_sounds/holyshit_ultimate",
"ultimate_sounds/ludicrouskill_ultimate",
"ultimate_sounds/rampage_ultimate",
"ultimate_sounds/unstoppable_ultimate",
"ultimate_sounds/monsterkill_ultimate"
};
new messages[10][] =
{
"%s: Duble kill!",
"%s: Multi Kill !",
"%s: Ultra Kill !",
"%s: Killing Spree !",
"%s: Mega Kill !",
"%s: Holy Shit !",
"%s: Ludicrous Kill !",
"%s: Rampage !",
"%s: Unstoppable !",
"%s: M o n s t e R K i L L ! ! !"
};
new preplist[][] =
{
"ultimate_sounds/prepare1_ultimate",
"ultimate_sounds/prepare2_ultimate",
"ultimate_sounds/prepare3_ultimate"
};
// remaked double kill
new Float:g_doubleKill;
new g_doubleKillId;
new gdbcvar;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("ResetHUD", "reset_hud", "b");
killstreaktype = register_cvar("ut_killstreak_advanced", "0");
hsenable = register_cvar("ut_killstreak_hs","1");
knifeenable = register_cvar("ut_killstreak_knife","0");
firstbloodenable = register_cvar("ut_firstblood","0");
nadecvar = register_cvar("ut_nade_events","1");
suicidecvar = register_cvar("ut_suicide_events","0");
gdbcvar = register_cvar("ut_doublekill_events","1");
rnstartcvar = register_cvar("ut_roundcout_sounds","0");
}
public client_death(killer,victim,weapon,hitplace,TK)
{
if(!killer || !victim)
return;
static kname[32], vname[32];
get_user_name(killer,kname,31);
get_user_name(victim,vname,31);
if(hitplace == HIT_HEAD && get_pcvar_num(hsenable) == 1 )
{
set_hudmessage(0, 0, 255, -1.0, 0.30, 0, 6.0, 6.0);
show_hudmessage(0, hsmessages[random(sizeof hsmessages)], kname, vname);
client_cmd(0,"spk %s",hslist[random(sizeof hslist)]);
}
if(weapon == CSW_KNIFE && get_pcvar_num(knifeenable) == 1 )
{
set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0);
show_hudmessage(0, knmessages[random(sizeof knmessages)], kname, vname);
client_cmd(0,"spk %s",knlist[random(sizeof knlist)]);
}
if(firstblood && killer != victim && get_pcvar_num(firstbloodenable) ==1)
{
set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0);
show_hudmessage(0, fbmessages[random(sizeof fbmessages)], kname);
client_cmd(0,"spk %s",fblist[random(sizeof fblist)]);
}
if(weapon == CSW_HEGRENADE && get_pcvar_num(nadecvar) == 1)
{
set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0);
show_hudmessage(0,nademessages[random(sizeof nademessages)],kname,vname);
client_cmd(0,"spk ultimate_sounds/nade_ultimate");
}
if(killer == victim && get_pcvar_num(suicidecvar) ==1)
{
set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0);
show_hudmessage(0,suicidemess[random(sizeof suicidemess)], vname);
client_cmd(0,"spk %s",suicidelist[random(sizeof suicidelist)]);
}
/*if(kill[killer][0] && equal(kill[killer],weapon) && killer != victim && get_pcvar_num(cvardouble) == 1)
{
set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0);
show_hudmessage(0,"Wow %s made a double kill", kname);
kill[killer][0] = 0;
client_cmd(0,"spk %s",doublelist[random(sizeof doublelist)]);
}
else
{
kill[killer] = weapon;
set_task(0.1,"clear_kill",TASK_CLEAR_KILL+killer);
}*/
// REMAKED DOUBLE KILL
if(killer != victim && killer && get_pcvar_num(gdbcvar) == 1)
{
new Float:nowtime = get_gametime();
if (g_doubleKill == nowtime && g_doubleKillId == killer)
{
set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0);
show_hudmessage(0,"Wow %s made a double kill", kname);
// play the funcking soundz
client_cmd(0,"spk %s",doublelist[random(sizeof doublelist)]);
}
g_doubleKill = nowtime;
g_doubleKillId = killer;
}
kills[killer] += 1;
kills[victim] = 0;
deaths[killer] = 0;
deaths[victim] += 1;
for (new i = 0; i < LEVELS; i++)
{
if (kills[killer] == levels[i])
{
announce(killer, i);
return;
}
}
}
announce(killer, level)
{
static name[33];
new r = random(256);
new g = random(256);
new b = random(256);
get_user_name(killer, name, 32);
set_hudmessage(r,g,b, 0.05, 0.65, 2, 0.02, 6.0, 0.01, 0.1, 2);
if( (get_pcvar_num(killstreaktype) <= 0 ) || get_pcvar_num(killstreaktype) > 3)
return 0;
switch(get_pcvar_num(killstreaktype))
{
case 1:
{
show_hudmessage(0, messages[level], name);
return 0;
}
case 2:
{
client_cmd(0, "spk %s", sounds[level]);
return 0;
}
case 3:
{
show_hudmessage(0, messages[level], name);
client_cmd(0, "spk %s", sounds[level]);
return 0;
}
}
return 0;
}
public reset_hud(id)
{
firstblood = 1;
if (is_mode_set(16))
if (kills[id] > levels[0])
client_print(id, print_chat, "* Zabiles %d bez smierci!", kills[id]);
else if (deaths[id] > 1)
client_print(id, print_chat, "* Uwazaj zgineles %d rundy pod rzad!", deaths[id]);
}
public rnstart(id)
{
if(get_pcvar_num(rnstartcvar) == 1)
{
firstblood = 1;
set_hudmessage(255, 0, 255, -1.0, 0.30, 0, 6.0, 6.0);
show_hudmessage(0, "Prepare To Fight!");
client_cmd(0,"spk %s",preplist[random(sizeof preplist)]);
}
}
public client_connect(id)
{
kills[id] = 0;
deaths[id] = 0;
}
/*public clear_kill(taskid)
{
new id = taskid-TASK_CLEAR_KILL;
kill[id][0] = 0;
}*/
is_mode_set(bits)
{
new mode[9];
get_cvar_string("ut_killstreak_advanced", mode, 8);
return read_flags(mode) & bits;
}
public plugin_precache()
{
precache_sound("ultimate_sounds/triplekill_ultimate.wav");
precache_sound("ultimate_sounds/multikill_ultimate.wav");
precache_sound("ultimate_sounds/ultrakill_ultimate.wav");
precache_sound("ultimate_sounds/killingspree_ultimate.wav");
precache_sound("ultimate_sounds/megakill_ultimate.wav");
precache_sound("ultimate_sounds/holyshit_ultimate.wav");
precache_sound("ultimate_sounds/ludicrouskill_ultimate.wav");
precache_sound("ultimate_sounds/rampage_ultimate.wav");
precache_sound("ultimate_sounds/unstoppable_ultimate.wav");
precache_sound("ultimate_sounds/monsterkill_ultimate.wav");
precache_sound("ultimate_sounds/headshot1_ultimate.wav");
precache_sound("ultimate_sounds/headshot2_ultimate.wav");
precache_sound("ultimate_sounds/knife1_ultimate.wav");
precache_sound("ultimate_sounds/knife2_ultimate.wav");
precache_sound("ultimate_sounds/firstblood1_ultimate.wav");
precache_sound("ultimate_sounds/firstblood2_ultimate.wav");
precache_sound("ultimate_sounds/prepare1_ultimate.wav");
precache_sound("ultimate_sounds/prepare2_ultimate.wav");
precache_sound("ultimate_sounds/prepare3_ultimate.wav");
precache_sound("ultimate_sounds/nade_ultimate.wav");
precache_sound("ultimate_sounds/suicide1_ultimate.wav");
precache_sound("ultimate_sounds/suicide2_ultimate.wav");
precache_sound("ultimate_sounds/suicide3_ultimate.wav");
precache_sound("ultimate_sounds/suicide4_ultimate.wav");
precache_sound("ultimate_sounds/doublekill1_ultimate.wav");
precache_sound("ultimate_sounds/doublekill2_ultimate.wav");
}