PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#define PLUGIN "Score"
#define VERSION "1.0"
#define AUTHOR "Swisa"
#define MR 15
#define TIE_MR 3
new CTScore = 0
new TScore = 0
new Old_AScore = 0
new Old_BScore = 0
new AScore = 0
new BScore = 0
new Half = 0
new CT = 'a'
new live = 0
new HalfNames[4][32] = { "1st", "2nd", "MR3-1st", "MR3-2nd" }
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//register_concmd("say !Swap", "swap_teams", ADMIN_SLAY, "")
register_concmd("say !Start", "start_game", ADMIN_SLAY, "")
register_concmd("say !Live", "start_game", ADMIN_SLAY, "")
register_concmd("say !RR 1", "restart_game", ADMIN_SLAY, "")
register_concmd("say !Stop", "stop_game", ADMIN_SLAY, "")
register_concmd("say_team !Start", "start_game", ADMIN_SLAY, "")
register_concmd("say_team !Live", "start_game", ADMIN_SLAY, "")
register_concmd("say_team !Stop", "stop_game", ADMIN_SLAY, "")
register_concmd("say /Score", "say_score", _, "")
register_concmd("say !Score", "say_score", _, "")
register_concmd("say_team /Score", "say_score", _, "")
register_concmd("say_team !Score", "say_score", _, "")
register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")
register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin")
register_event("TextMsg", "restart_attempt", "a", "2=#Game_will_restart_in")
}
public swap_teams(id, level, cid) {
if (!cmd_access(id, level, cid, 1)) return PLUGIN_CONTINUE
swap()
set_cvar_num("sv_restart", 1)
return PLUGIN_CONTINUE
}
public say_score(id, level, cid) {
if (Half != 0) ssay_score()
else client_print(0, print_chat, "(Score) The game is no running, to run game type !start.")
return PLUGIN_CONTINUE
}
public stop_game(id, level, cid) {
if (!cmd_access(id, level, cid, 1)) return PLUGIN_CONTINUE
Half = 0; live = 0;
client_print(0, print_chat, "(Score) Game has been stopped!")
server_cmd("exec prac.cfg")
return PLUGIN_CONTINUE
}
public restart_game(id, level, cid) {
if (!cmd_access(id, level, cid, 1)) return PLUGIN_CONTINUE
set_cvar_num("sv_restart", 1)
if (live == 1 && Half > 0) client_print(0, print_chat, "(Score) Game is restarting...")
return PLUGIN_CONTINUE
}
public start_game(id, level, cid) {
if (!cmd_access(id, level, cid, 1)) return PLUGIN_CONTINUE
if (Half == 0) {
if (cs_get_user_team(id) == CS_TEAM_CT) CT = 'a'
else CT = 'b'
Half = 1
Old_AScore = 0; Old_BScore = 0;
client_print(0, print_chat, "(Score) %s Half has been started! Live in 3 seconds...", HalfNames[Half -1])
server_cmd("exec mr15.cfg")
}
else {
if (live == 0) {
if (CT == 'a') CT = 'b'
else CT = 'a'
client_print(0, print_chat, "(Score) %s Half has been started! Live in 3 seconds...", HalfNames[Half -1])
}
else client_print(0, print_chat, "(Score) %s Half has been restarted! Live in 3 seconds...", HalfNames[Half -1])
}
restart_attempt()
set_cvar_num("sv_restart", 3)
live = 1;
return PLUGIN_CONTINUE
}
public round_end() {
if (Half == 0 || live == 0) return
if (CT == 'a') { AScore = CTScore; BScore = TScore; }
else { AScore = TScore; BScore = CTScore; }
if (Half == 1) {
ssay_score()
if (AScore + BScore == MR) {
client_print(0, print_chat, "(Score) First half has ended.")
Old_AScore = AScore; Old_BScore = BScore;
Half++; live = 0;
swap()
restart_attempt()
set_cvar_num("sv_restart", 1)
}
}
else if (Half == 2) {
ssay_score()
if (AScore + Old_AScore == MR + 1) {
client_print(0, print_chat, "(Score) The home team has won the game!")
server_cmd("exec prac.cfg")
Half = 0; live = 0;
}
else if (BScore + Old_BScore == MR + 1) {
client_print(0, print_chat, "(Score) The guest team has won the game!")
server_cmd("exec prac.cfg")
Half = 0; live = 0;
}
else if (AScore + Old_AScore + BScore + Old_BScore == MR * 2) {
client_print(0, print_chat, "(Score) Its a tie, to start a MR3 use !live to end use !stop.")
server_cmd("exec mr3.cfg")
Old_AScore = MR; Old_BScore = MR; //To be sure :|
Half++; live = 0;
swap()
restart_attempt()
set_cvar_num("sv_restart", 1)
}
}
else if (Half == 3) {
ssay_score()
if (AScore + BScore == TIE_MR) {
client_print(0, print_chat, "(Score) MR3-1st half has ended.")
Old_AScore += AScore; Old_BScore += BScore;
Half++; live = 0;
swap()
restart_attempt()
set_cvar_num("sv_restart", 1)
}
}
else if (Half == 4) {
ssay_score()
if (AScore + Old_AScore == MR + TIE_MR + 1) {
client_print(0, print_chat, "(Score) The home team has won the game!")
server_cmd("exec prac.cfg")
Half = 0; live = 0;
}
else if (BScore + Old_BScore == MR + TIE_MR + 1) {
client_print(0, print_chat, "(Score) The guest team has won the game!")
server_cmd("exec prac.cfg")
Half = 0; live = 0;
}
else if (AScore + Old_AScore + BScore + Old_BScore == (MR + TIE_MR) * 2) {
client_print(0, print_chat, "(Score) Game ended with a tie!")
Half = 0; live = 0;
}
}
}
public swap() {
set_cvar_num("mp_limitteams", 0)
set_cvar_num("mp_autoteambalance", 0)
new Players[32], PlayerCount, i
get_players(Players, PlayerCount, "")
for (i = 0; i < PlayerCount; i++) {
if (cs_get_user_team(Players[i]) != CS_TEAM_SPECTATOR && is_user_connected(Players[i])) {
if (cs_get_user_team(Players[i]) == CS_TEAM_CT) cs_set_user_team(Players[i], CS_TEAM_T)
else cs_set_user_team(Players[i], CS_TEAM_CT)
}
}
}
public ssay_score() { client_print(0, print_chat, "(Score) Score is - Home team: %d, Guest team: %d, Half: %s", Old_AScore + AScore, Old_BScore + BScore, HalfNames[Half -1]); }
public t_win() { TScore++; round_end(); }
public ct_win() { CTScore++; round_end(); }
public restart_attempt() { CTScore = 0; TScore = 0; AScore = 0; BScore = 0; }