Incearca asa:) #include <amxmodx>#include <amxmisc>new g_Answer[128]new g_optionName[4][32]new g_voteCount[4]new g_validMapsnew g_yesNoVotenew g_coloredMenusnew g_voteCallernew g_Execute[256]new g_execLennew bool:g_execResultnew Float:g_voteRatiopublic plugin_init(){register_plugin("Admin Votes", AMXX_VERSION_STR, "AMXX Dev Team")register_dictionary("adminvote.txt")register_dictionary("common.txt")register_dictionary("mapsmenu.txt")register_menucmd(register_menuid("Change map to "), MENU_KEY_1|MENU_KEY_2, "voteCount")register_menucmd(register_menuid("Choose map: "), MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4, "voteCount")register_menucmd(register_menuid("Kick "), MENU_KEY_1|MENU_KEY_2, "voteCount")register_menucmd(register_menuid("Ban "), MENU_KEY_1|MENU_KEY_2, "voteCount")register_menucmd(register_menuid("Vote: "), MENU_KEY_1|MENU_KEY_2, "voteCount")register_menucmd(register_menuid("The result: "), MENU_KEY_1|MENU_KEY_2, "actionResult")register_concmd("amx_votemap", "cmdVoteMap", ADMIN_VOTE, "<map> [map] [map] [map]")register_concmd("amx_votekick", "cmdVoteKickBan", ADMIN_VOTE, "<name or #userid>")register_concmd("amx_voteban", "cmdVoteKickBan", ADMIN_VOTE, "<name or #userid>")register_concmd("amx_vote", "cmdVote", ADMIN_VOTE, "<question> <answer#1> <answer#2>")register_concmd("amx_cancelvote", "cmdCancelVote", ADMIN_VOTE, "- cancels last vote")g_coloredMenus = colored_menus()}public cmdCancelVote(id, level, cid){if (!cmd_access(id, level, cid, 0))return PLUGIN_HANDLEDif (task_exists(99889988, 1)){new authid[32], name[32]get_user_authid(id, authid, 31)get_user_name(id, name, 31)log_amx("Vote: ^"%s<%d><%s><>^" cancel vote session", name, get_user_userid(id), authid)new players[32], pnum, lTag[16], activity = get_cvar_num("amx_show_activity")get_players(players, pnum, "c")for (new i = 0; i < pnum;i ++){format(lTag, 15, "%L", players[i], is_user_admin(id) ? "ADMIN" : "PLAYER")switch (activity){case 2: client_print(players[i], print_chat, "%L", LANG_PLAYER, "ADMIN_CANC_VOTE_2", lTag, name)case 1: client_print(players[i], print_chat, "%L", LANG_PLAYER, "ADMIN_CANC_VOTE_1", lTag)}}console_print(id, "%L", id, "VOTING_CANC")client_print(0,print_chat,"%L",LANG_PLAYER,"VOTING_CANC")remove_task(99889988, 1)set_cvar_float("amx_last_voting", get_gametime())}elseconsole_print(id, "%L", id, "NO_VOTE_CANC")return PLUGIN_HANDLED}public delayedExec(cmd[])server_cmd("%s", cmd)public autoRefuse(){log_amx("Vote: %L", "en", "RES_REF")client_print(0, print_chat, "%L", LANG_PLAYER, "RES_REF")}public actionResult(id, key){remove_task(4545454)switch (key){case 0:{set_task(2.0, "delayedExec", 0, g_Execute, g_execLen)log_amx("Vote: %L", "en", "RES_ACCEPTED")client_print(0, print_chat, "%L", LANG_PLAYER, "RES_ACCEPTED")}case 1: autoRefuse()}return PLUGIN_HANDLED}public checkVotes(){new best = 0if (!g_yesNoVote){for (new a = 0; a < 4; ++a)if (g_voteCount[a] > g_voteCount[best])best = a}new votesNum = g_voteCount[0] + g_voteCount[1] + g_voteCount[2] + g_voteCount[3]new iRatio = votesNum ? floatround(g_voteRatio * float(votesNum), floatround_ceil) : 1new iResult = g_voteCount[best]new players[32], pnum, iget_players(players, pnum, "c")if (iResult < iRatio){new lVotingFailed[64]for (i = 0; i < pnum; i++){format(lVotingFailed, 63, "%L", players[i], "VOTING_FAILED")if (g_yesNoVote)client_print(players[i], print_chat, "%L", players[i], "VOTING_RES_1", lVotingFailed, g_voteCount[0], g_voteCount[1], iRatio)elseclient_print(players[i], print_chat, "%L", players[i], "VOTING_RES_2", lVotingFailed, iResult, iRatio)}format(lVotingFailed, 63, "%L", "en", "VOTING_FAILED")log_amx("Vote: %s (got ^"%d^") (needed ^"%d^")", lVotingFailed, iResult, iRatio)return PLUGIN_CONTINUE}g_execLen = format(g_Execute, 255, g_Answer, g_optionName[best]) + 1if (g_execResult){g_execResult = falseif (is_user_connected(g_voteCaller)){new menuBody[512], lTheResult[32], lYes[16], lNo[16]format(lTheResult, 31, "%L", g_voteCaller, "THE_RESULT")format(lYes, 15, "%L", g_voteCaller, "YES")format(lNo, 15, "%L", g_voteCaller, "NO")new len = format(menuBody, 511, g_coloredMenus ? "y%s: w%s^n^n" : "%s: %s^n^n", lTheResult, g_Execute)len += format(menuBody[len], 511 - len, g_coloredMenus ? "y%L^nw" : "%L^n", g_voteCaller, "WANT_CONTINUE")format(menuBody[len], 511 - len, "^n1. %s^n2. %s", lYes, lNo)show_menu(g_voteCaller, 0x03, menuBody, 10, "The result: ")set_task(10.0, "autoRefuse", 4545454)}elseset_task(2.0, "delayedExec", 0, g_Execute, g_execLen)}new lVotingSuccess[32]for (i = 0; i < pnum; i++){format(lVotingSuccess, 31, "%L", players[i], "VOTING_SUCCESS")client_print(players[i], print_chat, "%L", players[i], "VOTING_RES_3", lVotingSuccess, iResult, iRatio, g_Execute)}format(lVotingSuccess, 31, "%L", "en", "VOTING_SUCCESS")log_amx("Vote: %s (got ^"%d^") (needed ^"%d^") (result ^"%s^")", lVotingSuccess, iResult, iRatio, g_Execute)return PLUGIN_CONTINUE}public voteCount(id, key){if (get_cvar_num("amx_vote_answers")){new name[32]get_user_name(id, name, 31)if (g_yesNoVote)client_print(0, print_chat, "%L", LANG_PLAYER, key ? "VOTED_AGAINST" : "VOTED_FOR", name)elseclient_print(0, print_chat, "%L", LANG_PLAYER, "VOTED_FOR_OPT", name, key + 1)}++g_voteCount[key]return PLUGIN_HANDLED}public cmdVoteMap(id, level, cid){if (!cmd_access(id, level, cid, 2))return PLUGIN_HANDLEDnew time_left = get_timeleft()if( (time_left <= 10) && (get_cvar_num("mp_timelimit") == 30 ) && !is_admin_cu_a(id) )return PLUGIN_HANDLED;new Float:voting = get_cvar_float("amx_last_voting")if (voting > get_gametime()){console_print(id, "%L", id, "ALREADY_VOTING")return PLUGIN_HANDLED}if (voting && voting + get_cvar_float("amx_vote_delay") > get_gametime()){console_print(id, "%L", id, "VOTING_NOT_ALLOW")return PLUGIN_HANDLED}new argc = read_argc()if (argc > 5) argc = 5g_validMaps = 0g_optionName[0][0] = 0g_optionName[1][0] = 0g_optionName[2][0] = 0g_optionName[3][0] = 0for (new i = 1; i < argc; ++i){read_argv(i, g_optionName[g_validMaps], 31)if (is_map_valid(g_optionName[g_validMaps]))g_validMaps++}if (g_validMaps == 0){new lMaps[16]format(lMaps, 15, "%L", id, (argc == 2) ? "MAP_IS" : "MAPS_ARE")console_print(id, "%L", id, "GIVEN_NOT_VALID", lMaps)return PLUGIN_HANDLED}new menu_msg[256], len = 0new keys = 0if (g_validMaps > 1){keys = MENU_KEY_0len = format(menu_msg, 255, g_coloredMenus ? "y%L: w^n^n" : "%L: ^n^n", LANG_SERVER, "CHOOSE_MAP")new temp[128]for (new a = 0; a < g_validMaps; ++a){format(temp, 127, "%d. %s^n", a+1, g_optionName[a])len += copy(menu_msg[len], 255-len, temp)keys |= (1<<a)}format(menu_msg[len], 255-len, "^n0. %L", LANG_SERVER, "NONE")g_yesNoVote = 0} else {new lChangeMap[32], lYes[16], lNo[16]format(lChangeMap, 31, "%L", LANG_SERVER, "CHANGE_MAP_TO")format(lYes, 15, "%L", LANG_SERVER, "YES")format(lNo, 15, "%L", LANG_SERVER, "NO")format(menu_msg, 255, g_coloredMenus ? "y%s %s?w^n^n1. %s^n2. %s" : "%s %s?^n^n1. %s^n2. %s", lChangeMap, g_optionName[0], lYes, lNo)keys = MENU_KEY_1|MENU_KEY_2g_yesNoVote = 1}new authid[32], name[32]get_user_authid(id, authid, 31)get_user_name(id, name, 31)if (argc == 2)log_amx("Vote: ^"%s<%d><%s><>^" vote map (map ^"%s^")", name, get_user_userid(id), authid, g_optionName[0])elselog_amx("Vote: ^"%s<%d><%s><>^" vote maps (map#1 ^"%s^") (map#2 ^"%s^") (map#3 ^"%s^") (map#4 ^"%s^")", name, get_user_userid(id), authid, g_optionName[0], g_optionName[1], g_optionName[2], g_optionName[3])new lTag[16], activity = get_cvar_num("amx_show_activity")if (activity > 0){new players[32], pnumget_players(players, pnum, "c")for (new i = 0; i < pnum; i++){format(lTag, 15, "%L", players[i], is_user_admin(id) ? "ADMIN" : "PLAYER")switch (activity){case 2: client_print(players[i], print_chat, "%L", players[i], "ADMIN_VOTE_MAP_2", lTag, name)case 1: client_print(players[i], print_chat, "%L", players[i], "ADMIN_VOTE_MAP_1", lTag)}}}g_execResult = truenew Float:vote_time = get_cvar_float("amx_vote_time") + 2.0set_cvar_float("amx_last_voting", get_gametime() + vote_time)g_voteRatio = get_cvar_float("amx_votemap_ratio")g_Answer = "changelevel %s"show_menu(0, keys, menu_msg, floatround(vote_time), (g_validMaps > 1) ? "Choose map: " : "Change map to ")set_task(vote_time, "checkVotes", 99889988)g_voteCaller = idconsole_print(id, "%L", id, "VOTING_STARTED")g_voteCount = {0, 0, 0, 0}return PLUGIN_HANDLED}public is_admin_cu_a(index){new flags = get_user_flags(index);if(flags & ADMIN_LEVEL_A)return 1;return 0;}public cmdVote(id, level, cid){if (!cmd_access(id, level, cid, 4))return PLUGIN_HANDLEDnew Float:voting = get_cvar_float("amx_last_voting")if (voting > get_gametime()){console_print(id, "%L", id, "ALREADY_VOTING")return PLUGIN_HANDLED}if (voting && voting + get_cvar_float("amx_vote_delay") > get_gametime()){console_print(id, "%L", id, "VOTING_NOT_ALLOW")return PLUGIN_HANDLED}new quest[48]read_argv(1, quest, 47)if ((contain(quest, "sv_password") != -1) || (contain(quest, "rcon_password") != -1) || (contain(quest, "kick") != -1) ||(contain(quest, "addip") != -1) || (contain(quest, "ban") != -1)){console_print(id, "%L", id, "VOTING_FORBIDDEN")return PLUGIN_HANDLED}read_argv(2, g_optionName[0], 31)read_argv(3, g_optionName[1], 31)new authid[32], name[32]get_user_authid(id, authid, 31)get_user_name(id, name, 31)log_amx("Vote: ^"%s<%d><%s><>^" vote custom (question ^"%s^") (option#1 ^"%s^") (option#2 ^"%s^")", name, get_user_userid(id), authid, quest, g_optionName[0], g_optionName[1])new activity = get_cvar_num("amx_show_activity")if (activity > 0){new players[32], pnum, lTag[16]get_players(players, pnum, "c")for (new i = 0; i < pnum; i++){format(lTag, 15, "%L", players[i], is_user_admin(id) ? "ADMIN" : "PLAYER")switch (activity){case 2: client_print(players[i], print_chat, "%L", players[i], "ADMIN_VOTE_CUS_2", lTag, name)case 1: client_print(players[i], print_chat, "%L", players[i], "ADMIN_VOTE_CUS_1", lTag)}}}new menu_msg[256], lVote[16]format(lVote, 15, "%L", LANG_SERVER, "VOTE")new keys = MENU_KEY_1|MENU_KEY_2format(menu_msg, 255, g_coloredMenus ? "y%s: %sw^n^n1. %s^n2. %s" : "%s: %s^n^n1. %s^n2. %s", lVote, quest, g_optionName[0], g_optionName[1])g_execResult = falsenew Float:vote_time = get_cvar_float("amx_vote_time") + 2.0set_cvar_float("amx_last_voting", get_gametime() + vote_time)g_voteRatio = get_cvar_float("amx_vote_ratio")format(g_Answer, 127, "%s - %%s", quest)show_menu(0, keys, menu_msg, floatround(vote_time), "Vote: ")set_task(vote_time, "checkVotes", 99889988)g_voteCaller = idconsole_print(id, "%L", id, "VOTING_STARTED")g_voteCount = {0, 0, 0, 0}g_yesNoVote = 0return PLUGIN_HANDLED}public cmdVoteKickBan(id, level, cid){if (!cmd_access(id, level, cid, 2))return PLUGIN_HANDLEDnew Float:voting = get_cvar_float("amx_last_voting")if (voting > get_gametime()){console_print(id, "%L", id, "ALREADY_VOTING")return PLUGIN_HANDLED}if (voting && voting + get_cvar_float("amx_vote_delay") > get_gametime()){console_print(id, "%L", id, "VOTING_NOT_ALLOW")return PLUGIN_HANDLED}new cmd[32]read_argv(0, cmd, 31)new voteban = equal(cmd, "amx_voteban")new arg[32]read_argv(1, arg, 31)new player = cmd_target(id, arg, 1)if (!player)return PLUGIN_HANDLEDif (voteban && is_user_bot(player)){new imname[32]get_user_name(player, imname, 31)console_print(id, "%L", id, "ACTION_PERFORMED", imname)return PLUGIN_HANDLED}new keys = MENU_KEY_1|MENU_KEY_2new menu_msg[256], lYes[16], lNo[16], lKickBan[16]format(lYes, 15, "%L", LANG_SERVER, "YES")format(lNo, 15, "%L", LANG_SERVER, "NO")format(lKickBan, 15, "%L", LANG_SERVER, voteban ? "BAN" : "KICK")ucfirst(lKickBan)get_user_name(player, arg, 31)format(menu_msg, 255, g_coloredMenus ? "y%s %s?w^n^n1. %s^n2. %s" : "%s %s?^n^n1. %s^n2. %s", lKickBan, arg, lYes, lNo)g_yesNoVote = 1if (voteban)get_user_authid(player, g_optionName[0], 31)elsenum_to_str(get_user_userid(player), g_optionName[0], 31)new authid[32], name[32]get_user_authid(id, authid, 31)get_user_name(id, name, 31)log_amx("Vote: ^"%s<%d><%s><>^" vote %s (target ^"%s^")", name, get_user_userid(id), authid, voteban ? "ban" : "kick", arg)new activity = get_cvar_num("amx_show_activity")if (activity > 0){new players[32], pnum, lTag[16]get_players(players, pnum, "c")for (new i = 0; i < pnum; i++){format(lTag, 15, "%L", players[i], is_user_admin(id) ? "ADMIN" : "USER")format(lKickBan, 15, "%L", players[i], voteban ? "BAN" : "KICK")switch (activity){case 2: client_print(players[i], print_chat, "%L", players[i], "ADMIN_VOTE_FOR_2", lTag, name, lKickBan, arg)case 1: client_print(players[i], print_chat, "%L", players[i], "ADMIN_VOTE_FOR_1", lTag, lKickBan, arg)}}}g_execResult = truenew Float:vote_time = get_cvar_float("amx_vote_time") + 2.0set_cvar_float("amx_last_voting", get_gametime() + vote_time)g_voteRatio = get_cvar_float(voteban ? "amx_voteban_ratio" : "amx_votekick_ratio")g_Answer = voteban ? "banid 30.0 %s kick" : "kick #%s"show_menu(0, keys, menu_msg, floatround(vote_time), voteban ? "Ban " : "Kick ")set_task(vote_time, "checkVotes", 99889988)g_voteCaller = idconsole_print(id, "%L", id, "VOTING_STARTED")g_voteCount = {0, 0, 0, 0}return PLUGIN_HANDLED}