/* Ultimtate KillStreak Advanced BETA */
#include <amxmodx>
#include <amxmisc>
#include <csx>
#define PLUGIN "Ultimate KillStreak Advanced BETA"
#define VERSION "0.7beta"
#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, /*cvardouble,*/ rnstartcvar, killstreaktype;
new firstblood;
new hsmessages[][] =
{
"%s removed %s head !!",
"%s had a superb aim with %s !",
"%s Made a superb headshot to %s!",
"%s down %s with a superb headshot !"
};
new hslist[][] =
{
"ultimate_sounds/headshot1_ultimate",
"ultimate_sounds/headshot2_ultimate"
};
new knmessages[][] =
{
"%s sliced and diced %s",
"%s pulled out knife and gutted %s",
"%s knifed %s"
};
new knlist[][] =
{
"ultimate_sounds/knife1_ultimate",
"ultimate_sounds/knife2_ultimate"
};
new fbmessages[][] =
{
"%s : First Blood !",
"%s Drew First Blood !!!",
"%s First Shot on tha Mark !"
};
new fblist[][] =
{
"ultimate_sounds/firstblood1_ultimate",
"ultimate_sounds/firstblood2_ultimate"
};
new nademessages[][] =
{
"%s got a big explosion for %s",
"%s made a precision throw to %s",
"%s is good grenadier ! i think he back from the war ..."
};
new suicidemess[][] =
{
"%s knows how the kill command works!",
"%s prefer to kill himself...rather than die on battle land"
};
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[13] = {3, 4, 6, 8,9,10,11,12,14,15,16,18,19};
new sounds[13][] =
{
"ultimate_sounds/triplekill",
"ultimate_sounds/multikill",
"ultimate_sounds/ultrakill",
"ultimate_sounds/killingspree",
"ultimate_sounds/megakill",
"ultimate_sounds/holyshit",
"ultimate_sounds/ludicrouskill",
"ultimate_sounds/rampage",
"ultimate_sounds/unstoppable",
"ultimate_sounds/monsterkill",
"ultimate_sounds/wickedsick",
"ultimate_sounds/godlike",
"ultimate_sounds/sweatility"
};
new messages[13][] =
{
"%s: Triple Kill !",
"%s: Multi Kill !",
"%s: Ultra Kill !",
"%s: Killing Spree !",
"%s: Mega Kill !",
"%s: Holy Shit !",
"%s: Ludicrous Kill !",
"%s: Rampage !",
"%s: Unstoppable !",
"%s: Monster Kill ! ! !",
"%s: Wickedsick ! ! !",
"%s: G O D L I K E ! !",
"%s: S W E E T I L I T Y ! ! !"
};
new preplist[][] =
{
"ultimate_sounds/prepare1_ultimate",
"ultimate_sounds/prepare2_ultimate",
"ultimate_sounds/prepare3_ultimate"
};
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("ResetHUD", "reset_hud", "b");
register_event("HLTV","rnstart","a", "1=0", "2=0");
killstreaktype = register_cvar("ut_killstreak_advanced", "3");
hsenable = register_cvar("ut_killstreak_hs","1");
knifeenable = register_cvar("ut_killstreak_knife","1");
firstbloodenable = register_cvar("ut_firstblood","0");
nadecvar = register_cvar("ut_nade_events","1");
suicidecvar = register_cvar("ut_suicide_events","0");
/*cvardouble = register_cvar("ut_doublekill_events","0");*/
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) ==0)
{
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) ==0)
{
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) == 0)
{
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);
}*/
kills[killer] += 1;
kills[victim] = 0;
deaths[killer] = 0;
deaths[victim] += 1;
for (new i = 0; i < LEVELS; i++)
{
if (kills[killer] == levels)
{
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, "* You are on a killstreak with %d kills.", kills[id]);
else if (deaths[id] > 1)
client_print(id, print_chat, "* Take care, you are on a deathstreak with %d deaths in a row.", deaths[id]);
}
public rnstart(id)
{
if(get_pcvar_num(rnstartcvar) == 0)
{
firstblood = 0;
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.wav");
precache_sound("ultimate_sounds/multikill.wav");
precache_sound("ultimate_sounds/ultrakill.wav");
precache_sound("ultimate_sounds/killingspree.wav");
precache_sound("ultimate_sounds/megakill.wav");
precache_sound("ultimate_sounds/holyshit.wav");
precache_sound("ultimate_sounds/ludicrouskill.wav");
precache_sound("ultimate_sounds/rampage.wav");
precache_sound("ultimate_sounds/unstoppable.wav");
precache_sound("ultimate_sounds/monsterkill.wav");
precache_sound("ultimate_sounds/wickedsick.wav");
precache_sound("ultimate_sounds/godlike.wav");
precache_sound("ultimate_sounds/sweatility.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");
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/