#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <cstrike>
#include <engine>
new const PLUGIN [] = "MVP"
new const VERSION [] = "1.0"
new const AUTHOR [] = "Toretto"
new const C_Prefix[] = "[BadboYs]"; //Chat Prefix
//Kör cuccai
const max_rounds = 30;
const min_win = 16;
const Float:streak_time = 10.0;
new rounds, ct_wins, t_wins, bool:map_end = false;
new kills[33], kill_streak[33], kill_streak_max[33], bool:in_ks[33], hs[33], points[33], planter, defuser;
new most_hs, most_kills, most_points, most_ks;
new mvp[33];
new rounds_played[33], rounds_won[33], maps_won[33], maps_played[33], plants[33], defuses[33];
new g_mvpMentett_zene[33]
enum _:Adatstrukturak {
zene_nev[64],
zene_eleres[64]
}
new const mvp_zenek[][Adatstrukturak] =
{
{ "Clean Bandit - Rockabye","mvp_zenek/mvpzene2.mp3" },
{ "Galantis - Hunter","mvp_zenek/mvpzene3.mp3" },
{ "David Guetta - Flames (ft. Sia)","mvp_zenek/mvpzene4.mp3" },
{ "Childish Gambino - This Is America","mvp_zenek/mvpzene5.mp3" },
{ "Calvin Harris - One Kiss","mvp_zenek/mvpzene6.mp3" },
{ "BUNT. - For You My Love","mvp_zenek/mvpzene7.mp3" },
{ "Armin van Buuren vs Vini Vici - Great Spirit","mvp_zenek/mvpzene8.mp3" },
{ "Sam Feldt & Alex Schulz - By My Lover","mvp_zenek/mvpzene9.mp3" },
{ "R3H4B x Skytech - What You Do","mvp_zenek/mvpzene10.mp3" },
{ "Kaskade, BROHUG & Mr. Tape - Fun (ft. Madge)","mvp_zenek/mvpzene11.mp3" },
{ "Laidback Luke & Peking Duk - Mufasa","mvp_zenek/mvpzene12.mp3" },
{ "Virtual Self - Ghost Voices","mvp_zenek/mvpzene13.mp3" }
};
public plugin_precache()
{
for(new i;i < sizeof(mvp_zenek);i++)
{
precache_sound(mvp_zenek[i][zene_eleres]);
}
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//Kör cuccok
register_impulse(201, "raktaralapp");
register_event("SendAudio", "CT_Win", "a", "2&%!MRAD_ctwin") ;
register_event("SendAudio", "T_Win", "a", "2&%!MRAD_terwin");
register_logevent("Round_End", 2, "1=Round_End");
register_logevent("Round_Reset", 2, "1&Restart_Round_", "1=Game_Commencing");
register_logevent("Round_Start", 2, "1=Round_Start");
}
public raktaralap(id)
{
new String[121];
format(String, charsmax(String), "[BadboYs]");
new menu = menu_create(String, "raktaralap_hhh");
menu_additem(menu, "\w»\r{\yZenekészletek\r}", "2", 0);
menu_display(id, menu, 0);
}
public raktaralap_hhh(id, menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 2: mvpmenu(id);
}
}
public mvpmenu(id)
{
new cim[121]
formatex(cim, charsmax(cim), "[BadboYs] \r- \wMVP MenĂĽ")
new menu = menu_create(cim, "mvpmenu_handler")
for(new i;i < sizeof(mvp_zenek); i++)
{
new Sor[6]; num_to_str(i, Sor, 5);
formatex(cim, charsmax(cim), "\yZenekészlet:\w %s", mvp_zenek[i][zene_nev]);
menu_additem(menu, cim, Sor);
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
menu_setprop(menu, MPROP_BACKNAME, "Vissza")
menu_setprop(menu, MPROP_NEXTNAME, "Tovább")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
public mvpmenu_handler(id, menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
g_mvpMentett_zene[id] = key;
ColorChat(id,BLUE,"%s ^3Zenekészlet:^4 %s ^3lett kiválasztva!",C_Prefix,mvp_zenek[key][zene_nev]);
}
public CT_Win()
{
set_task(0.5, "CT_Delayed", 6696);
}
public CT_Delayed()
{
new players[32], pnum, id;
get_players(players, pnum);
for(new i; i<pnum; i++)
{
id=players[i]
if(get_user_team(id) == 2)
{
rounds_won[id]++;
//Save_Rounds_Won(id);
}
}
new name[64];
Count_Points(CS_TEAM_CT);
ct_wins++;
Highest_Points(CS_TEAM_CT);
Highest_HS(CS_TEAM_CT);
Highest_Kills(CS_TEAM_CT);
Highest_KillStreak(CS_TEAM_CT);
if(defuser != -1)
{
get_user_name(defuser, name, charsmax(name));
client_print(0, print_chat, "^4%s ^3%s ^1a hatástalanĂtotta a bombát!", C_Prefix, name);
mvp[defuser]++;
//Save_MVP(defuser);
for( new i; i < pnum; i++ )
{
id = players[i];
client_cmd( id, "mp3 play ^"sound/%s^"", mvp_zenek[g_mvpMentett_zene[defuser]][zene_eleres] );
}
}
else if(most_hs == most_points)
{
get_user_name(most_hs, name, charsmax(name));
client_print(0, print_chat, "^4%s ^3%s ^4%d ^1fejest lőtt ebben a körben!", C_Prefix, name, hs[most_hs]);
mvp[most_hs]++;
//Save_MVP(most_hs);
for( new i; i < pnum; i++ )
{
id = players[i];
client_cmd( id, "mp3 play ^"sound/%s^"", mvp_zenek[g_mvpMentett_zene[most_hs]][zene_eleres] );
}
}
else if(most_ks == most_points)
{
get_user_name(most_ks, name, charsmax(name));
client_print(0, print_chat, "^4%s ^3%s ^4%d^1-t ölt egyhuzamban!", C_Prefix, name, kill_streak[most_ks]);
mvp[most_ks]++;
//Save_MVP(most_ks);
for( new i; i < pnum; i++ )
{
id = players[i];
client_cmd( id, "mp3 play ^"sound/%s^"", mvp_zenek[g_mvpMentett_zene[most_ks]][zene_eleres] );
}
}
else if(most_kills == most_points)
{
get_user_name(most_kills, name, charsmax(name));
client_print(0, print_chat, "^4%s ^3%s ^4%d^1-t ölt a körben!", C_Prefix, name, kills[most_kills]);
mvp[most_kills]++;
//Save_MVP(most_kills);
for( new i; i < pnum; i++ )
{
id = players[i];
client_cmd( id, "mp3 play ^"sound/%s^"", mvp_zenek[g_mvpMentett_zene[most_kills]][zene_eleres] );
}
}
else
{
get_user_name(most_points, name, charsmax(name));
client_print(0, print_chat, "^4%s ^3%s ^1lett az MVP!", C_Prefix, name);
mvp[most_points]++;
//Save_MVP(most_points);
for( new i; i < pnum; i++ )
{
id = players[i];
client_cmd( id, "mp3 play ^"sound/%s^"", mvp_zenek[g_mvpMentett_zene[most_points]][zene_eleres] );
}
}
}
public T_Win()
{
set_task(0.5, "T_Delayed", 9969);
}
public T_Delayed()
{
new players[32], pnum, id;
get_players(players, pnum);
for(new i; i<pnum; i++)
{
id=players[i]
if(get_user_team(id) == 1)
{
rounds_won[id]++;
//Save_Rounds_Won(id);
}
}
new name[64];
Count_Points(CS_TEAM_T);
t_wins++;
Highest_Points(CS_TEAM_T);
Highest_HS(CS_TEAM_T);
Highest_Kills(CS_TEAM_T);
Highest_KillStreak(CS_TEAM_T);
if(planter != -1)
{
get_user_name(planter, name, charsmax(name));
client_print(0, print_chat, "^4%s ^3%s ^1a Ă©lesĂtette a bombát!", C_Prefix, name);
mvp[planter]++;
//Save_MVP(planter);
for( new i; i < pnum; i++ )
{
id = players[i];
client_cmd( id, "mp3 play ^"sound/%s^"", mvp_zenek[g_mvpMentett_zene[planter]][zene_eleres] );
}
}
else if(most_hs == most_points)
{
get_user_name(most_hs, name, charsmax(name));
client_print(0, print_chat, "^4%s ^3%s ^4%d ^1fejest lőtt ebben a körben!", C_Prefix, name, hs[most_hs]);
mvp[most_hs]++;
//Save_MVP(most_hs);
for( new i; i < pnum; i++ )
{
id = players[i];
client_cmd( id, "mp3 play ^"sound/%s^"", mvp_zenek[g_mvpMentett_zene[most_hs]][zene_eleres] );
}
}
else if(most_ks == most_points)
{
get_user_name(most_ks, name, charsmax(name));
client_print(0, print_chat, "^4%s ^3%s ^4%d^1-t ölt egyhuzamban!", C_Prefix, name, kill_streak[most_ks]);
mvp[most_ks]++;
//Save_MVP(most_ks);
for( new i; i < pnum; i++ )
{
id = players[i];
client_cmd( id, "mp3 play ^"sound/%s^"", mvp_zenek[g_mvpMentett_zene[most_ks]][zene_eleres] );
}
}
else if(most_kills == most_points)
{
get_user_name(most_kills, name, charsmax(name));
client_print(0, print_chat, "^4%s ^3%s ^4%d^1-t ölt ebben a körben!", C_Prefix, name, kills[most_kills]);
mvp[most_kills]++;
//Save_MVP(most_kills);
for( new i; i < pnum; i++ )
{
id = players[i];
client_cmd( id, "mp3 play ^"sound/%s^"", mvp_zenek[g_mvpMentett_zene[most_kills]][zene_eleres] );
}
}
else
{
get_user_name(most_points, name, charsmax(name));
client_print(0, print_chat, "^4%s ^3%s ^1lett az MVP!", C_Prefix, name);
mvp[most_points]++;
//Save_MVP(most_points);
for( new i; i < pnum; i++ )
{
id = players[i];
client_cmd( id, "mp3 play ^"sound/%s^"", mvp_zenek[g_mvpMentett_zene[most_points]][zene_eleres] );
}
}
}
public Round_Reset()
{
t_wins = 0;
ct_wins = 0;
rounds = 0;
planter = -1;
defuser = -1;
most_hs = -1;
most_kills = -1;
most_points = -1;
most_ks = -1;
}
public Round_End()
{
rounds++;
new players[32], pnum, id;
get_players(players, pnum);
for(new i; i<pnum; i++)
{
id=players[i]
rounds_played[id]++;
//set_task(0.1, "Count_Elo", id+1111);
}
if(rounds == max_rounds)
{
map_end = true;
Map_End(0);
}
else if(t_wins == min_win)
{
map_end = true;
Map_End(1);
for(new i; i<pnum; i++)
{
id=players[i]
if(cs_get_user_team(id) == CS_TEAM_T)
{
maps_won[id]++;
//Save_Maps_Won(id);
}
}
}
else if(ct_wins == min_win)
{
map_end = true;
Map_End(2);
for(new i; i<pnum; i++)
{
id=players[i]
if(cs_get_user_team(id) == CS_TEAM_CT)
{
maps_won[id]++;
//Save_Maps_Won(id);
}
}
}
}
public Round_Start()
{
planter = -1;
defuser = -1;
most_hs = -1;
most_kills = -1;
most_points = -1;
most_ks = -1;
new players[32], pnum, id;
get_players(players, pnum);
for(new i; i < pnum; i++)
{
id=players[i]
kills[id] = 0;
kill_streak[id] = 0;
hs[id] = 0;
points[id] = 0;
}
if(map_end)
server_cmd("changelevel ^"de_dust2^"");
}
public bomb_planted(id)
{
planter = id;
plants[id]++;
//Save_Plants(id);
}
public bomb_defused(id)
{
defuser = id;
//client_print(0, print_chat, "Defuse lefut, a mentett id: %d", defuser);
defuses[id]++;
//Save_Defuses(id);
}
public Map_End(Who_Won)
{
switch(Who_Won)
{
case 0:{
client_print(0, print_center, "A meccs döntetlen lett!");
}
case 1:{
client_print(0, print_center, "A Terroristák megnyerték a meccset!");
}
case 2:{
client_print(0, print_center, "Az Anti-Terroristák megnyerték a meccset!");
}
}
new players[32], pnum, id;
get_players(players, pnum);
for(new i; i<pnum; i++)
{
id=players[i]
maps_played[id]++;
}
}
/*=====================MVP cuccok================================*/
public Streak_End(TaskId)
{
new id = TaskId-6969;
if(in_ks[id])
{
in_ks[id] = false;
if(kill_streak[id] >= kill_streak_max[id])
kill_streak_max[id] = kill_streak[id];
kill_streak[id] =0;
}
}
public Count_Points(CsTeams:Team)
{
new players[32], pnum, id;
get_players(players, pnum);
new pts;
for(new i; i<pnum; i++)
{
id = players[i]
if(cs_get_user_team(id) != Team)
continue;
pts += kill_streak_max[id]*5;
pts += hs[id]*4
pts += (kills[id]+hs[id])*3
points[id] = pts;
rounds_won[id]++;
}
}
public Highest_Points(CsTeams:Team)
{
new players[32], pnum, id;
get_players(players, pnum);
new x;
for(new i; i<pnum; i++)
{
id = players[i]
if(cs_get_user_team(id) != Team)
continue;
if(points[id] > points[x])
x = id;
else if(points[id] == points[x])
{
if(kill_streak_max[id] > kill_streak_max[x])
x = id;
else if(hs[id] > hs[x])
x = id;
else if((kills[id]+hs[x]) > (kills[x]+hs[x]))
x = id;
}
}
most_points = x;
}
public Highest_HS(CsTeams:Team)
{
new players[32], pnum;
get_players(players, pnum);
new id, x;
for(new i; i<pnum; i++)
{
id = players[i]
if(cs_get_user_team(id) != Team)
continue;
if(hs[id] > hs[x])
x = id;
}
most_hs = x;
}
public Highest_Kills(CsTeams:Team)
{
new players[32], pnum;
get_players(players, pnum);
new id, x;
for(new i; i<pnum; i++)
{
id = players[i]
if(cs_get_user_team(id) != Team)
continue;
if(kills[id] > kills[x])
x = id;
}
most_kills = x;
}
public Highest_KillStreak(CsTeams:Team)
{
new players[32], pnum;
get_players(players, pnum);
new id, x;
for(new i; i<pnum; i++)
{
id = players[i]
if(cs_get_user_team(id) != Team)
continue;
if(kill_streak_max[id] > kill_streak_max[x])
x = id;
}
most_ks = x;
}