quakesounds.sma: Kód: #include <amxmodx> #include <amxmisc>
#define VERSION "2.0"
new g_kills[33] = {0,...} new g_deaths[33] = {0,...} new g_levels[13] = {3, 5, 7, 9, 11, 13, 16, 19, 22, 25, 28, 31, 35}
new g_roundKills[33], g_top new g_firstBlood
new bool:g_died[33]
new streakSounds[13][] = { "qs/rampage.wav", "qs/killingspree.wav", "qs/dominating.wav", "qs/unstoppable.wav", "qs/ultrakill.wav", "qs/eagleeye.wav", "qs/ownage.wav", "qs/ludicrouskill.wav", "qs/headhunter.wav", "qs/whickedsick.wav", "qs/monsterkill.wav", "qs/holyshit.wav", "qs/godlike.wav" }
new streakMsgs[13][] = { "RAMPAGE", "KILLING_SPREE", "DOMINATING", "UNSTOPPABLE", "ULTRA_KILL", "EAGLE_EYE", "OWNAGE", "LUDICROUS_KILL", "HEAD_HUNTER", "WHICKED_SICK", "MONSTER_KILL", "HOLY_SHIT", "GODLIKE" }
new qs_enable, qs_streak, qs_firstblood, qs_headshot, qs_humiliatingdefeat, qs_hattrick, qs_flawlessvictory
new g_msgHudSync
public plugin_init() { register_plugin("Quake Sounds", VERSION, "hleV") register_cvar("qs_version", VERSION, FCVAR_SPONLY|FCVAR_SERVER)
register_dictionary("quakesounds.txt") register_dictionary("common.txt")
register_concmd("amx_quakesounds", "cmdQuakeSounds", ADMIN_RCON, "<1|0> - enables/disables Quake Sounds") register_clcmd("say qs_version", "cmdSayVersion")
qs_enable = register_cvar("qs_enable", "1") qs_streak = register_cvar("qs_streak", "1") qs_firstblood = register_cvar("qs_firstblood", "1") qs_headshot = register_cvar("qs_headshot", "1") qs_humiliatingdefeat = register_cvar("qs_humiliatingdefeat", "1") qs_hattrick = register_cvar("qs_hattrick", "4") qs_flawlessvictory = register_cvar("qs_flawlessvictory", "6")
register_event("DeathMsg", "death", "a", "1>0") register_event("DeathMsg", "deathHS", "a", "3=1") register_event("DeathMsg", "deathHD", "a", "4&kni") register_event("SendAudio", "roundEnd", "a", "2=%!MRAD_terwin", "2=%!MRAD_ctwin", "2=%!MRAD_rounddraw") register_event("SendAudio", "soundCTWin", "a", "2=%!MRAD_ctwin") register_event("SendAudio", "soundTWin", "a", "2=%!MRAD_terwin")
register_logevent("gameStart", 2, "1=Game_Commencing") register_logevent("roundStart", 2, "1=Round_Start")
g_msgHudSync = CreateHudSyncObj() }
public cmdQuakeSounds(id, level) { if (!(get_user_flags(id) & level)) { console_print(id, "%L", LANG_SERVER, "NO_ACC_COM")
return PLUGIN_HANDLED }
new arg[2] read_argv(1, arg, 1)
if (equali(arg, "1")) { if (get_pcvar_num(qs_enable)) console_print(id, "%L", LANG_SERVER, "ALREADY_ENABLED") else { set_pcvar_num(qs_enable, 1) console_print(id, "%L", LANG_SERVER, "ENABLED") } } else if (equali(arg, "0")) { if (get_pcvar_num(qs_enable)) { set_pcvar_num(qs_enable, 0) console_print(id, "%L", LANG_SERVER, "DISABLED") } else console_print(id, "%L", LANG_SERVER, "ALREADY_DISABLED") } else console_print(id, "%L: amx_quakesounds <1|0>", LANG_SERVER, "USAGE")
return PLUGIN_HANDLED }
public cmdSayVersion(id) client_print(id, print_chat, "Quake Sounds %s by hleV | Download @ www.amxmodx.org", VERSION)
public client_connect(id) { g_kills[id] = 0 g_deaths[id] = 0 g_roundKills[id] = 0 g_top = 0 }
public death() { if (!get_pcvar_num(qs_enable)) return PLUGIN_HANDLED
new killer = read_data(1) new victim = read_data(2)
g_kills[victim] = 0 g_deaths[victim] += 1 g_died[victim] = true
if (get_pcvar_num(qs_streak) && killer != victim) { g_kills[killer] += 1 g_kills[victim] = 0
for (new i = 0; i < 13; i++) if (g_kills[killer] == g_levels[i]) streakAnnounce(killer, i) }
if (get_pcvar_num(qs_firstblood) && g_firstBlood && killer != victim) { new name[32] get_user_name(killer, name, 31) set_hudmessage(200, 200, 200, -1.0, 0.27, 0, 6.0, 5.0) ShowSyncHudMsg(0, g_msgHudSync, "%L", LANG_SERVER, "FIRST_BLOOD", name) client_cmd(0, "spk qs/firstBlood")
g_firstBlood = 0 }
if (get_pcvar_num(qs_hattrick) && killer != victim) { g_roundKills[killer] = g_roundKills[killer] + 1
topPlayer() }
return PLUGIN_CONTINUE }
streakAnnounce(killer, level) { new name[32] get_user_name(killer, name, 32)
set_hudmessage(200, 200, 200, -1.0, 0.27, 0, 6.0, 5.0) ShowSyncHudMsg(0, g_msgHudSync, "%L", LANG_SERVER, streakMsgs[level], name) client_cmd(0, "spk %s", streakSounds[level]) }
public topPlayer() { new players[32], score, playerNum get_players(players, playerNum)
for (new i = 0; i < playerNum; i++) { if (g_roundKills[players[i]] > score) { score = g_roundKills[players[i]] g_top = players[i] } else if (g_roundKills[players[i]] == score) g_top = 0 } }
public gameStart() g_firstBlood = 1
public roundStart() { if (get_pcvar_num(qs_firstblood) >= 2) g_firstBlood = 1
for (new i = 1; i <= get_maxplayers(); i++) g_died[i] = false }
public deathHS() { if (!get_pcvar_num(qs_enable) || !get_pcvar_num(qs_headshot)) return PLUGIN_HANDLED
if (get_pcvar_num(qs_headshot) == 1) client_cmd(read_data(1), "spk qs/headshot") else if (get_pcvar_num(qs_headshot) >= 2) client_cmd(0, "spk qs/headshot")
return PLUGIN_CONTINUE }
public deathHD() { if (!get_pcvar_num(qs_enable) || !get_pcvar_num(qs_humiliatingdefeat)) return PLUGIN_HANDLED
if (get_pcvar_num(qs_humiliatingdefeat) == 1) client_cmd(read_data(1), "spk qs/humiliatingdefeat") else if (get_pcvar_num(qs_humiliatingdefeat) >= 2) client_cmd(0, "spk qs/humiliatingdefeat")
return PLUGIN_CONTINUE }
public roundEnd() { if (!get_pcvar_num(qs_enable) || !get_pcvar_num(qs_hattrick)) return PLUGIN_HANDLED
new players[32], playerNum get_players(players, playerNum)
if (g_top != 0 && g_roundKills[g_top] >= get_pcvar_num(qs_hattrick)) set_task(3.0, "setHattrick", g_top)
for (new i = 0; i < playerNum; i++) { g_roundKills[players[i]] = 0 g_top = 0 }
return PLUGIN_CONTINUE }
public setHattrick(g_top) { new name[32] get_user_name(g_top, name, 32)
set_hudmessage(200, 200, 200, -1.0, 0.27, 0, 6.0, 5.0) ShowSyncHudMsg(0, g_msgHudSync, "%L", LANG_SERVER, "HATTRICK", name) client_cmd(0, "spk qs/hattrick") }
public soundCTWin() checkAlive("CT") public soundTWin() checkAlive("TERRORIST")
checkAlive(const team[]) { if (!get_pcvar_num(qs_enable) || !get_pcvar_num(qs_flawlessvictory)) return PLUGIN_HANDLED
new players[32], playerNum, bool:g_flawlessVictory = true get_players(players, playerNum, "e", team) for (new i = 0; i < playerNum; i++) { if (!is_user_alive(players[i]) && g_died[players[i]]) { g_flawlessVictory = false
break } }
for (new i = get_pcvar_num(qs_flawlessvictory); i <= get_maxplayers(); i++) if (g_flawlessVictory && is_user_connected(i)) set_task(1.5, "setFlawlessVictory", team[0]) return 1 }
public setFlawlessVictory(team) { if (team == 'C') { set_hudmessage(200, 200, 200, 0.64, 0.85, 0, 6.0, 10.0) show_hudmessage(0, "%L", LANG_SERVER, "FLAWLESS_VICTORY_CT") client_cmd(0, "speak qs/flawlessvictory") } else if (team == 'T') { set_hudmessage(200, 200, 200, 0.64, 0.85, 0, 6.0, 10.0) show_hudmessage(0, "%L", LANG_SERVER, "FLAWLESS_VICTORY_T") client_cmd(0, "speak qs/flawlessvictory") } }
public plugin_precache() { new i
for (i = 0; i < 13; i++) precache_sound(streakSounds[i])
precache_sound("qs/firstblood.wav") precache_sound("qs/headshot.wav") precache_sound("qs/humiliatingdefeat.wav") precache_sound("qs/hattrick.wav") precache_sound("qs/flawlessvictory.wav") }
quakesounds.txt: Kód: [hu] ENABLED = Quake Sounds enabled! DISABLED = Quake Sounds disabled! ALREADY_ENABLED = Quake Sounds are already enabled! ALREADY_DISABLED = Quake Sounds are already disabled! RAMPAGE = %s is on rampage! KILLING_SPREE = %s is on a killing spree! DOMINATING = %s is dominating! UNSTOPPABLE = %s is unstoppable! ULTRA_KILL = %s made an ultra kill! EAGLE_EYE = %s has an eagle eye! OWNAGE = %s owns! LUDICROUS_KILL = %s made a ludicrous kill! HEAD_HUNTER = %s is a head hunter! WHICKED_SICK = %s is whicked sick! MONSTER_KILL = %s made a monster kill! HOLY_SHIT = Holy shit! %s got another one! GODLIKE = %s is godlike!!! FIRST_BLOOD = %s made the first blood! HATTRICK = %s was unreal this round! FLAWLESS_VICTORY_CT = ElsÜprÜ GyÜzelmet artak a Counter-Terroristák! FLAWLESS_VICTORY_T = ElsÜprÜ GyÜzelmet artak a Terroristák!
Tessék nem tudom mi a hiba!
|