Raised This Month: $ Target: $400
 0% 

Amx_vote with more options


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
Dav3
Senior Member
Join Date: Apr 2006
Location: Dust2
Old 03-17-2007 , 10:45   Amx_vote with more options
Reply With Quote #1

Hello,
Can somebody do the votes up to more options?
eg: amx_vote "Question" "Answer1" "Answer2" "Answer3"
4 or if its possible 8 options?
Here is the code from AMXX 1.75a (what I'm using)

Code:
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 = 0         if (!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) : 1     new iResult = g_voteCount[best]     new players[32], pnum, i         get_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)             else                 client_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]) + 1         if (g_execResult)     {         g_execResult = false                 if (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^n\w" : "%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)         }         else             set_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)         else             client_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_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 = 5         g_validMaps = 0     g_optionName[0][0] = 0     g_optionName[1][0] = 0     g_optionName[2][0] = 0     g_optionName[3][0] = 0         for (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 = 0     new keys = 0         if (g_validMaps > 1)     {         keys = MENU_KEY_0         len = 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_2         g_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])     else         log_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], pnum                 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_MAP_2", lTag, name)                 case 1: client_print(players[i], print_chat, "%L", players[i], "ADMIN_VOTE_MAP_1", lTag)             }         }     }     g_execResult = true     new Float:vote_time = get_cvar_float("amx_vote_time") + 2.0         set_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 = id     console_print(id, "%L", id, "VOTING_STARTED")     g_voteCount = {0, 0, 0, 0}         return PLUGIN_HANDLED } public cmdVote(id, level, cid) {     if (!cmd_access(id, level, cid, 4))         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 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_2         format(menu_msg, 255, g_coloredMenus ? "\y%s: %s\w^n^n1.  %s^n2.  %s" : "%s: %s^n^n1.  %s^n2.  %s", lVote, quest, g_optionName[0], g_optionName[1])     g_execResult = false         new Float:vote_time = get_cvar_float("amx_vote_time") + 2.0         set_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 = id     console_print(id, "%L", id, "VOTING_STARTED")     g_voteCount = {0, 0, 0, 0}     g_yesNoVote = 0         return PLUGIN_HANDLED }

THX!
Dav3 is offline
Send a message via MSN to Dav3 Send a message via Skype™ to Dav3
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 10:52.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode