Вот что-то вроде этого:
Код
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Changes Maps"
#define VERSION "1.0"
#define AUTHOR "Yes I Do Not"
enum _players
{
p_admin
}
new player[33][_players]
new s_admins
new map[32]
new round, Num_Player, Admin_Check, Round_Check, Change_Vote
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event( "HLTV", "NewRoundA", "a", "1=0", "2=0" )
register_event("TextMsg","Event_RoundRestart","a","2&#Game_w")
register_cvar("amx_changes_map", "de_dust2_2x2") // Заданая Карта
Num_Player = register_cvar("amx_max_player", "6") // Максимальное кол-во игроков когда будет доступна смена карты
Admin_Check = register_cvar("amx_admin_check", "1") // Проверить есть ли админ на сервере 0 - выкл функцию, 1 - если админ на сервере смена карты происходить не будет
Round_Check = register_cvar("amx_round_check", "5") // После какого раунда будет происходить проверка
Change_Vote = register_cvar("amx_change_vote", "1") // 0 - Смень карту, 1 - Создать голосование за смену карты
}
public Cmd_Changes_Map_s()
{
round=0
new Cmd_Changes_Map[32]
new num_players
num_players = get_playersnum()
get_cvar_string("amx_changes_map",Cmd_Changes_Map,31)
if(get_pcvar_num(Change_Vote) == 1 && num_players > 1)
{
server_cmd("amx_votemap %s", Cmd_Changes_Map)
}
else
{
server_cmd("changelevel %s", Cmd_Changes_Map)
}
}
public NewRoundA()
{
round++;
new Cmd_Changes_Map[32]
new num_players
num_players = get_playersnum()
get_mapname(map, 31);
get_cvar_string("amx_changes_map",Cmd_Changes_Map,31)
if(round >= get_pcvar_num(Round_Check))
{
if(!equal(map, Cmd_Changes_Map) && num_players <= get_pcvar_num(Num_Player) && get_pcvar_num(Admin_Check) ==0)
{
set_task( 3.0, "Cmd_Changes_Map_s" )
}
else if(!equal(map, Cmd_Changes_Map) && num_players <= get_pcvar_num(Num_Player) && get_pcvar_num(Admin_Check) ==1 && s_admins == 0)
{
set_task( 3.0, "Cmd_Changes_Map_s" )
}
}
return PLUGIN_HANDLED
}
public Event_RoundRestart(id)
{
round=0;
}
public client_putinserver(id)
{
if(get_user_flags(id) & ADMIN_KICK)
{
s_admins++
player[id][p_admin] = 1
}
}
public client_disconnect(id)
{
if(player[id][p_admin])
{
s_admins--
player[id][p_admin] = 0
}
}
Отредактировал: Yes I Do Not, - 1.1.2012, 15:33