#include <amxmodx>
#include <amxmisc>
#include <cstrike>
new g_iTerrScore = 0
new g_iCTScore = 0
new g_iRoundCount = 1
new bool:g_bHalfTimeAnnounced = false
new bool:g_bTeamsSwitched = false
new bool:g_bScoreTrackingEnabled = false
new bool:g_bScoreStartedOnce = false // amx_skorbaslat sinirlama
new const szTeamName_Terr[2][] = { "Terrorist", "Counter-Terrorist" }
new const szTeamName_CT[2][] = { "Counter-Terrorist", "Terrorist" }
#define GetTeamNameT() (g_bTeamsSwitched ? szTeamName_CT[0] : szTeamName_Terr[0])
#define GetTeamNameCT() (g_bTeamsSwitched ? szTeamName_CT[1] : szTeamName_Terr[1])
public plugin_init() {
register_plugin("EOSM", "1.1", "ALBERT BROOKS & fernpasha")
register_clcmd("amx_skor", "Command_Score", 0, "Skorları gösterir")
register_concmd("amx_skorbaslat", "Command_StartScoring", ADMIN_BAN, "Skor saymayı başlatır")
register_concmd("amx_skorsifirla", "Command_ResetScoring", ADMIN_BAN, "Skoru sıfırlar")
register_event("HLTV", "Event_RoundStart", "a", "1=0", "2=0")
register_event("SendAudio", "Event_RoundEnd_Terr", "a", "2=%!MRAD_terwin")
register_event("SendAudio", "Event_RoundEnd_CT", "a", "2=%!MRAD_ctwin")
register_event("TextMsg", "Event_GameRestart", "a", "2&#Game_will_restart_in")
}
public Command_Score(id, level, cid){
if (g_iRoundCount == 15) {
g_bTeamsSwitched = true
}
g_iRoundCount = g_iCTScore + g_iTerrScore + 1
if (g_bScoreTrackingEnabled){
chat_color(0, "!g[EOSM] !t%s: !g%d !t%s: !g%d !y------------> !g%d. !yEl oynaniyor!", GetTeamNameT(), g_iTerrScore, GetTeamNameCT(), g_iCTScore, g_iRoundCount)
} else {
chat_color(0, "!g[EOSM] !ySkor sayma sistemi baslatilmadi. Yetkili tarafindan !g/skorbaslat !ykomutu ile baslatilmalidir.")
}
return PLUGIN_HANDLED
}
public Command_StartScoring(id, level, cid) {
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
if (g_bScoreStartedOnce) {
chat_color(id, "!g[EOSM] !yBu haritada skor sayma sistemi zaten !g1 kez !ybaslatildi.")
return PLUGIN_HANDLED
}
g_bScoreStartedOnce = true
g_bScoreTrackingEnabled = true
g_iTerrScore = 0
g_iCTScore = 0
g_iRoundCount = 1
g_bHalfTimeAnnounced = false
g_bTeamsSwitched = false
new admin_name[32]
get_user_name(id, admin_name, 31)
chat_color(0, "!g[EOSM] !t%s!y: Skor sayma sistemini !taktiflestirdi!y.", admin_name)
return PLUGIN_HANDLED
}
public Command_ResetScoring(id, level, cid) {
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
g_iTerrScore = 0
g_iCTScore = 0
g_iRoundCount = 1
g_bHalfTimeAnnounced = false
g_bTeamsSwitched = false
new admin_name[32]
get_user_name(id, admin_name, 31)
chat_color(0, "!g[EOSM] !t%s !yskoru !gsifirladi!y.", admin_name)
return PLUGIN_HANDLED
}
public Event_RoundStart() {
if (!g_bScoreTrackingEnabled)
return
g_iRoundCount = g_iCTScore + g_iTerrScore + 1
if (g_iRoundCount == 16 && !g_bHalfTimeAnnounced) {
g_bHalfTimeAnnounced = true
chat_color(0, "!g[EOSM] !yIlk devre !tbitti! !yToplam Skor: !t%s: !g%d !t%s: !g%d", GetTeamNameT(), g_iTerrScore, GetTeamNameCT(), g_iCTScore)
}
// Her el başında otomatik skor gösterimi
chat_color(0, "!g[EOSM] !t%s: !g%d !t%s: !g%d !y------------> !g%d. !yEl oynaniyor!", GetTeamNameT(), g_iTerrScore, GetTeamNameCT(), g_iCTScore, g_iRoundCount)
}
public Event_RoundEnd_Terr() {
if (!g_bScoreTrackingEnabled)
return
if (g_bTeamsSwitched)
g_iCTScore++
else
g_iTerrScore++
CheckGameEnd()
}
public Event_RoundEnd_CT() {
if (!g_bScoreTrackingEnabled)
return
if (g_bTeamsSwitched)
g_iTerrScore++
else
g_iCTScore++
CheckGameEnd()
}
public CheckGameEnd() {
if (g_iRoundCount == 15) {
g_bTeamsSwitched = true
}
if (g_iTerrScore == 15 && g_iCTScore == 15) {
chat_color(0, "!g[EOSM] !yMac !tberabere !ybitti! Toplam skor: !g%d !y-- !g%d", g_iCTScore, g_iTerrScore)
g_bScoreTrackingEnabled = false
set_cvar_num("sv_restart", 5)
}
else if (g_iTerrScore == 16) {
chat_color(0, "!g[EOSM] !t%s !ytakimi maci !tkazandi!y! Toplam skor: !g%d !y-- !g%d", GetTeamNameT(), g_iTerrScore, g_iCTScore)
g_bScoreTrackingEnabled = false
set_cvar_num("sv_restart", 5)
}
else if (g_iCTScore == 16) {
chat_color(0, "!g[EOSM] !t%s !ytakimi maci !tkazandi!y! Toplam skor: !g%d !y-- !g%d", GetTeamNameCT(), g_iCTScore, g_iTerrScore)
g_bScoreTrackingEnabled = false
set_cvar_num("sv_restart", 5)
}
}
public Event_GameRestart() {
// Restart olduğunda skor değişmeyecek
}
stock chat_color(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")
replace_all(msg, 190, "!team2", "^0")
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()
}
}
}