RU
RU
UA
EN
PL
ГЛАВНАЯ
УСЛУГИ
ПЛАГИНЫ
КАРТЫ
REBUY
SCANMON
CASSA
SALE
ФОРУМ
МОНИТОР
HELP
КОНТАКТ
Главная
/
Plugins
/
RaundMix
Плагин не прошел проверку:
ни описания ни картинки
Создайте новую запись с устранением ошибок
RaundMix
Теги:
Скачать плагины cs
Серверные
RaundMix RaundMix
Компилятор: 1.8.2
225
Команды:
Кваров и команд нет
.sma / .sp
#include
#include
#define task_respawn 3245 #define task_equip 2345 #define task_status 6342 #define task_score 1354 #define warmup 0 #define fihalf 1 #define change 2 #define sehalf 3 #define nready false #define ready true #define ct 2 #define tt 1 #define pl 2 new bool:player_status[33] new bool:player_stop[33] new player_name[33][32] new player_id[33] new player_team[33] new score[3] new game_status new ready_players new stop_players public plugin_init() { register_plugin("Auto Mix MiniSystem", "1.1", "proff_q") register_clcmd("say", "hook_say") register_clcmd("say_team", "hook_say") register_clcmd("chooseteam", "block_team") register_clcmd("jointeam", "block_team") register_message(get_user_msgid("VGUIMenu"), "message_vguimenu") register_message(get_user_msgid("ShowMenu"), "message_showmenu") register_event("SendAudio", "get_score_tt", "a", "2&%!MRAD_terwin") register_event("SendAudio", "get_score_ct", "a", "2&%!MRAD_ctwin") RegisterHam(Ham_Killed, "player", "event_death", 1) set_task(30.0, "player_score", task_score, _, _, "b") } public plugin_cfg() { start_warmup(1) score[ct] = score[tt] = 0 } public client_putinserver(id) { if(is_user_hltv(id)) return PLUGIN_HANDLED set_task(1.0, "check_player", id) set_task(2.0, "check_status", task_status) return PLUGIN_CONTINUE } public client_disconnect(id) { if(is_user_hltv(id)) return PLUGIN_HANDLED switch(game_status) { case fihalf, sehalf, change: { client_print(0, print_chat, "** Игрок %s отключился.", player_name[id]) } case warmup: { format(player_name[id], 31, "") player_id[id] = 0 } } if(player_status[id]) ready_players-- if(player_stop[id]) stop_players-- set_task(2.0, "check_status", task_status) return PLUGIN_CONTINUE } /*==================================================================================================== [Checks] Check Match status Player status ====================================================================================================*/ public check_status() { static name[32], message[191], len new players[32], players_num get_players(players, players_num, "h") switch(game_status) { case warmup, change: { if(players_num == pl && ready_players == pl) start_match() else if(players_num == pl && ready_players != pl) { len = format(message[len], charsmax(message), "** Ожидаем готовности игроков:") for(new id = 0; id <= players_num; id++) { if(is_user_connected(players[id])) { if(!player_status[players[id]]) { get_user_name(players[id], name, charsmax(name)) len += format(message[len], charsmax(message), " %s", name) } } } client_print(0, print_chat, message) } else if(players_num < pl) { client_print(0, print_chat, "** Для старта матча не хватает игроков.") } } } } public check_player(id) { static name[32], a[32] new checks, players[32], players_num get_players(players, players_num, "h") get_user_name(id, name, charsmax(name)) if(players_num > pl) { server_cmd("kick #%d ^"Сервер полон, зрителем нельзя.^"", get_user_userid(id)) return PLUGIN_HANDLED } switch(game_status) { case fihalf, sehalf, change: { for(new i = 1; i <= pl; i++) { if(equal(player_name[i], name) && player_id[i] == id) { break } else if(equal(player_name[i], name) && player_id[i] != id) { format(a, charsmax(a), player_name[id]) format(player_name[id], charsmax(name), name) format(player_name[i], charsmax(a), a) break } else checks++ } if(checks >= pl) { server_cmd("kick #%d ^"Вы не участвуете в этом матче.^"", get_user_userid(id)) return PLUGIN_HANDLED } player_status[id] = ready ready_players++ client_print(0, print_chat, "** Игрок %s вернулся в игру.", player_name[id]) } case warmup: { player_status[id] = nready player_stop[id] = nready format(player_name[id], 31, name) player_id[id] = id client_print(id, print_chat, "** Пропиши !r для готовности и матч начнется.") } } return PLUGIN_CONTINUE } /*==================================================================================================== [Hooks] Hook and Block team choice Hook say Hook team score ====================================================================================================*/ public block_team(id) { switch(game_status) { case fihalf, sehalf, change: return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public hook_say(id) { if(is_user_hltv(id)) return new message[191] read_args(message, 191) remove_quotes(message) trim(message) if(message[0] == '!') { switch(message[1]) { case 'r': player_ready(id) case 'n': player_nready(id) case 's': player_score() case 'v': stop_match(id) } } } public get_score_tt() { switch(game_status) { case fihalf, sehalf: { score[tt]++ check_score() } } } public get_score_ct() { switch(game_status) { case fihalf, sehalf: { score[ct]++ check_score() } } } public check_score() { if(score[ct] + score[tt] == 15) { swap_score() swap_team() start_warmup(0) ready_players = 0 } else if(score[ct] == 16) end_match(ct) else if(score[tt] == 16) end_match(tt) else if(score[tt] == 15 && score[ct] == 15) end_match(0) } public swap_score() { new a = score[tt] score[tt] = score[ct] score[ct] = a } public swap_team() { for(new id = 1; id <= pl; id++) { if(is_user_connected(id) && !is_user_hltv(id)) { set_task(0.1, "auto_join", id) } } } /*==================================================================================================== [Score] Task Score ====================================================================================================*/ public player_score() { static message[191] switch(game_status) { case warmup: format(message, charsmax(message), "** Статус игры: Разминка.") case change: format(message, charsmax(message), "** Статус игры: Смена команд. Спецназ %d - %d Террористы.", score[ct], score[tt]) case fihalf: format(message, charsmax(message), "** Статус игры: Первая половина. Спецназ %d - %d Террористы.", score[ct], score[tt]) case sehalf: format(message, charsmax(message), "** Статус игры: Вторая половина. Спецназ %d - %d Террористы.", score[ct], score[tt]) } return client_print(0, print_chat, message) } /*==================================================================================================== [Warmup] Publics for Warmup only ====================================================================================================*/ public event_death(id) { if(!is_user_hltv(id) && !is_user_alive(id)) set_task(3.0, "respawn", id + task_respawn) } public respawn(task) { new id = task - task_respawn switch(game_status) { case warmup, change: { if(!is_user_alive(id) && !is_user_alive(id)) { switch(get_user_team(id)) { case tt, ct: ExecuteHam(Ham_CS_RoundRespawn, id) default: set_task(3.0, "respawn", id + task_respawn) } } } } } /*==================================================================================================== [Auto Join] When match is started ====================================================================================================*/ public message_showmenu(msgid, dest, id) { switch(game_status) { case fihalf, sehalf, change: { static message[32] get_msg_arg_string(4, message, charsmax(message)) if(equal(message, "#Team_Select") || equal(message, "#Team_Select_Spect")) { set_task(0.1, "auto_join", id) return PLUGIN_HANDLED } } case warmup: return PLUGIN_CONTINUE } return PLUGIN_CONTINUE } public message_vguimenu(msgid, dest, id) { switch(game_status) { case fihalf, sehalf, change: { if(get_msg_arg_int(1) != 2) return PLUGIN_CONTINUE set_task(0.1, "auto_join", id) } case warmup: return PLUGIN_CONTINUE } return PLUGIN_HANDLED } public auto_join(id) { if(is_user_connected(id) && !is_user_hltv(id)) { new msg1 = get_msg_block(114) new msg2 = get_msg_block(96) set_msg_block(114, BLOCK_SET) set_msg_block(96, BLOCK_SET) switch(player_team[id]) { case 1: { switch(game_status) { case fihalf, sehalf: { engclient_cmd(id, "jointeam", "1") engclient_cmd(id, "joinclass", "1") } case change: { engclient_cmd(id, "jointeam", "2") engclient_cmd(id, "joinclass", "2") player_team[id] = 2 } } } case 2: { switch(game_status) { case fihalf, sehalf: { engclient_cmd(id, "jointeam", "2") engclient_cmd(id, "joinclass", "2") } case change: { engclient_cmd(id, "jointeam", "1") engclient_cmd(id, "joinclass", "1") player_team[id] = 1 } } } } player_status[id] = nready set_msg_block(114, msg1) set_msg_block(96, msg2) } } /*==================================================================================================== [Stocks] Ready/Unready Start Match/Warmup ====================================================================================================*/ stock stop_match(id) { static name[32] get_user_name(id, name, charsmax(name)) if(!player_stop[id]) { player_stop[id] = ready stop_players++ client_print(0, print_chat, "** Игрок %s проголосовал за остановку матча.", name) } if(stop_players >= pl) { start_warmup(1) stop_players = 0 for(new i = 1; i <= pl; i++) { if(is_user_connected(i)) player_stop[i] = nready } client_print(0, print_chat, "** Игра остановлена через голосование.") } } stock player_ready(id) { static name[32] get_user_name(id, name, charsmax(name)) if(!player_status[id]) { ready_players++ player_status[id] = ready } set_task(2.0, "check_status", task_status) return client_print(0, print_chat, "** Игрок %s готов к игре.", name) } stock player_nready(id) { static name[32] switch(game_status) { case warmup, change: { get_user_name(id, name, charsmax(name)) if(player_status[id]) { ready_players-- player_status[id] = nready } set_task(2.0, "check_status", task_status) return client_print(0, print_chat, "** Игрок %s не готов к игре.", name) } } return PLUGIN_CONTINUE } stock start_warmup(num) { switch(num) { case 1: game_status = warmup default: { switch(game_status) { case fihalf: game_status = change default: game_status = warmup } } } set_cvar_float("mp_startmoney", 16000.0) set_cvar_float("mp_freezetime", 0.0) set_cvar_float("mp_buytime", 1.75) set_cvar_float("mp_friendlyfire", 0.0) set_cvar_float("mp_roundtime", 10.0) set_cvar_float("mp_forcecamera", 2.0) set_cvar_float("mp_forcechasecam", 2.0) set_cvar_float("sv_restart", 3.0) client_print(0, print_chat, "** Разминка после рестарта!") client_print(0, print_chat, "** Игра еще не началась! Разминка!") } stock start_match() { switch(game_status) { case warmup: { game_status = fihalf for(new id = 1; id <= pl; id++) if(is_user_connected(id)) player_team[id] = get_user_team(id) } case change: game_status = sehalf } set_cvar_float("mp_startmoney", 800.0) set_cvar_float("mp_c4timer", 35.0) set_cvar_float("mp_freezetime", 13.0) set_cvar_float("mp_buytime", 0.25) set_cvar_float("mp_friendlyfire", 1.0) set_cvar_float("mp_roundtime", 1.75) set_cvar_float("mp_forcecamera", 2.0) set_cvar_float("mp_forcechasecam", 2.0) set_cvar_float("sv_restart", 3.0) client_print(0, print_chat, "** Начало игры после рестарта!") client_print(0, print_chat, "** Игра началась! Желаем удачи и хорошего настроения!") } stock end_match(team) { switch(team) { case tt: { client_print(0, print_chat, "** Победа террористов!"); client_print(0, print_chat, "** Победа террористов!"); client_print(0, print_chat, "** Победа террористов!"); } case ct: { client_print(0, print_chat, "** Победа спецназа!"); client_print(0, print_chat, "** Победа спецназа!"); client_print(0, print_chat, "** Победа спецназа!"); } case 0: { client_print(0, print_chat, "** Ничья!"); client_print(0, print_chat, "** Ничья!"); client_print(0, print_chat, "** Ничья!"); } } for(new id = 1; id <= pl; id++) player_status[id] = nready ready_players = 0 start_warmup(1) }
Отправить
Загрузил
Dimitryus
2023-05-27 11:44:24
0
22
Установить на сервер
Скачать
Нет оплаченых серверов
Купить сервер CS 1.6
Купить сервер CS:GO
Купить сервер CSS v34
Подключить свой VDS к панели
Данная иконка означает, что плагин был проверен администрацией хостинга на тестовом сервере, и проблем с ним не было выявлено. Рекомендуем ставить исключительно проверенные плагины.
Плагин загружен на сервер, но проверка еще не была проведена.
CSHOST.COM.UA 2012-2024 Хостинг игровых серверов