Raised This Month: $ Target: $400
 0% 

How to fix adminvote


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 10-24-2013 , 17:48   Re: How to fix adminvote
Reply With Quote #1

amxmisc.inc is ok.

Problem comes from the plugin calling the stock.
__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
Debesėlis
Senior Member
Join Date: Aug 2008
Location: Lithuania
Old 10-24-2013 , 17:54   Re: How to fix adminvote
Reply With Quote #2

Quote:
Originally Posted by ConnorMcLeod View Post
amxmisc.inc is ok.

Problem comes from the plugin calling the stock.
bugs :
PHP Code:
amx_vote 22 2 2
Unknown command
amx_vote 
PHP Code:
[AMXX]  whatdoesthefoxsay: = start vote custom
PHP Code:
L 10/24/2013 21:49:51: [AMXXDisplaying debug trace (plugin "admin_vote.amxx"version "1.8.2")
L 10/24/2013 21:49:51: [AMXXRun time error 25parameter error 
L 10
/24/2013 21:49:51: [AMXX]    [0amxmisc.inc::show_activity_id (line 367)
L 10/24/2013 21:49:51: [AMXX]    [1admin_vote.sma::cmdVote (line 370)
L 10/24/2013 21:50:17String formatted incorrectly parameter 8 (total 7
Same with 1.8.3 version!
PHP Code:
version "1.8.2" 
PHP Code:
#include < amxmodx >
#include < amxmisc >

new g_Answer[128]
new 
g_optionName[4][64]
new 
g_voteCount[4]
new 
g_validMaps
new g_yesNoVote
new g_coloredMenus
new g_voteCaller
new g_Execute[256]
new 
g_execLen

new bool:g_execResult
new Float:g_voteRatio

new g_ban_player;
new 
g_ban_reason[128];

public 
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|MENU_KEY_3|MENU_KEY_4"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")
    
register_clcmd("amx_votebanreason""CmdBanReason"ADMIN_BAN"<reason>");
    
    
g_coloredMenus colored_menus()
}

public 
cmdCancelVote(idlevelcid)
{
    if (!
cmd_access(idlevelcid0))
        return 
PLUGIN_HANDLED

    
if (task_exists(998899881))
    {
        new 
authid[32], name[32]
        
        
get_user_authid(idauthid31)
        
get_user_name(idname31)
        
log_amx("Vote: ^"%s<%d><%s><>^" cancel vote session"nameget_user_userid(id), authid)
        
        new 
maxpl=get_maxplayers();
        new 
msg[256];
        for (new 
1<= maxpli++)
        {
            if (
is_user_connected(i) && !is_user_bot(i))
            {
                
// HACK: ADMIN_CANC_VOTE_{1,2} keys were designed very poorly.  Remove all : and %s in it.
                
LookupLangKey(msgcharsmax(msg), "ADMIN_CANC_VOTE_1"i);
                
replace_all(msgcharsmax(msg), "%s""");
                
replace_all(msgcharsmax(msg), ":""");
                
trim(msg);
                
show_activity_id(iidnamemsg);
            }
        }
        
        
console_print(id"%L"id"VOTING_CANC")
        
client_print(0,print_chat,"%L",LANG_PLAYER,"VOTING_CANC")
        
remove_task(998899881)
        
set_cvar_float("amx_last_voting"get_gametime())
    }
    else
        
console_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(0print_chat"%L"LANG_PLAYER"RES_REF")
}

public 
actionResult(idkey)
{
    
remove_task(4545454)
    
    switch (
key)
    {
        case 
0:
        {
            
set_task(2.0"delayedExec"0g_Executeg_execLen)
            
log_amx("Vote: %L""en""RES_ACCEPTED")
            
client_print(0print_chat"%L"LANG_PLAYER"RES_ACCEPTED")
        }
        case 
1autoRefuse()
    }
    
    return 
PLUGIN_HANDLED
}

public 
checkVotes()
{
    new 
best 0
    
    
if (!g_yesNoVote)
    {
        for (new 
04; ++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], pnumi
    
    get_players
(playerspnum"c")
    
    if (
iResult iRatio)
    {
        new 
lVotingFailed[64]
        
        for (
0pnumi++)
        {
            
format(lVotingFailed63"%L"players[i], "VOTING_FAILED")
            if (
g_yesNoVote)
                
client_print(players[i], print_chat"%L"players[i], "VOTING_RES_1"lVotingFailedg_voteCount[0], g_voteCount[1], iRatio)
            else
                
client_print(players[i], print_chat"%L"players[i], "VOTING_RES_2"lVotingFailediResultiRatio)
        }
        
        
format(lVotingFailed63"%L""en""VOTING_FAILED")
        
log_amx("Vote: %s (got ^"%d^") (needed ^"%d^")"lVotingFailediResultiRatio)
        
        return 
PLUGIN_CONTINUE
    
}

    
g_execLen format(g_Execute255g_Answerg_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(lTheResult31"%L"g_voteCaller"THE_RESULT")
            
format(lYes15"%L"g_voteCaller"YES")
            
format(lNo15"%L"g_voteCaller"NO")
            
            new 
len format(menuBody511g_coloredMenus "\y%s: \w%s^n^n" "%s: %s^n^n"lTheResultg_Execute)
            
            
len += format(menuBody[len], 511 leng_coloredMenus "\y%L^n\w" "%L^n"g_voteCaller"WANT_CONTINUE")
            
format(menuBody[len], 511 len"^n1. %s^n2. %s"lYeslNo)
            
show_menu(g_voteCaller0x03menuBody10"The result: ")
            
set_task(10.0"autoRefuse"4545454)
        }
        else
            
set_task(2.0"delayedExec"0g_Executeg_execLen)
    }
    
    new 
lVotingSuccess[32]
    
    for (
0pnumi++)
    {
        
format(lVotingSuccess31"%L"players[i], "VOTING_SUCCESS")
        
client_print(players[i], print_chat"%L"players[i], "VOTING_RES_3"lVotingSuccessiResultiRatiog_Execute)
    }
    
    
format(lVotingSuccess31"%L""en""VOTING_SUCCESS")
    
log_amx("Vote: %s (got ^"%d^") (needed ^"%d^") (result ^"%s^")"lVotingSuccessiResultiRatiog_Execute)
    
    
g_ban_reason[0] = 0;
    
    return 
PLUGIN_CONTINUE
}

public 
voteCount(idkey)
{
    if (
get_cvar_num("amx_vote_answers"))
    {
        new 
name[32]
        
get_user_name(idname31)
        
        if (
g_yesNoVote)
            
client_print(0print_chat"%L"LANG_PLAYERkey "VOTED_AGAINST" "VOTED_FOR"name)
        else
            
client_print(0print_chat"%L"LANG_PLAYER"VOTED_FOR_OPT"namekey 1)
    }
    ++
g_voteCount[key]
    
    return 
PLUGIN_HANDLED
}

public 
cmdVoteMap(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        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 5argc 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 1argc; ++i)
    {
        
read_argv(ig_optionName[g_validMaps], 31)
        
        if (
is_map_valid(g_optionName[g_validMaps]))
            
g_validMaps++
    }
    
    if (
g_validMaps == 0)
    {
        new 
lMaps[16]
        
        
format(lMaps15"%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_msg255g_coloredMenus "\y%L: \w^n^n" "%L: ^n^n"LANG_SERVER"CHOOSE_MAP")
        new 
temp[128]
        
        for (new 
0g_validMaps; ++a)
        {
            
format(temp127"%d.  %s^n"a+1g_optionName[a])
            
len += copy(menu_msg[len], 255-lentemp)
            
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(lChangeMap31"%L"LANG_SERVER"CHANGE_MAP_TO")
        
format(lYes15"%L"LANG_SERVER"YES")
        
format(lNo15"%L"LANG_SERVER"NO")
        
format(menu_msg255g_coloredMenus "\y%s %s?\w^n^n1.  %s^n2.  %s" "%s %s?^n^n1.  %s^n2.  %s"lChangeMapg_optionName[0], lYeslNo)
        
keys MENU_KEY_1|MENU_KEY_2
        g_yesNoVote 
1
    
}
    
    new 
authid[32], name[32]
    
    
get_user_authid(idauthid31)
    
get_user_name(idname31)
    
    if (
argc == 2)
        
log_amx("Vote: ^"%s<%d><%s><>^" vote map (map ^"%s^")"nameget_user_userid(id), authidg_optionName[0])
    else
        
log_amx("Vote: ^"%s<%d><%s><>^" vote maps (map#1 ^"%s^") (map#2 ^"%s^") (map#3 ^"%s^") (map#4 ^"%s^")"nameget_user_userid(id), authidg_optionName[0], g_optionName[1], g_optionName[2], g_optionName[3])

    new 
maxpl=get_maxplayers();
    new 
msg[256];
    for (new 
1<= maxpli++)
    {
        if (
is_user_connected(i) && !is_user_bot(i))
        {
            
// HACK: ADMIN_VOTE_MAP_{1,2} keys were designed very poorly.  Remove all : and %s in it.
            
LookupLangKey(msgcharsmax(msg), "ADMIN_VOTE_MAP_1"i);
            
replace_all(msgcharsmax(msg), "%s""");
            
replace_all(msgcharsmax(msg), ":""");
            
trim(msg);
            
show_activity_id(iidnamemsg);
        }
    }

    
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(0keysmenu_msgfloatround(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 = {0000}
    
    return 
PLUGIN_HANDLED
}

public 
cmdVote(idlevelcid)
{
    if (!
cmd_access(idlevelcid4))
        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(1quest47)
    
    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
    
}
    
    new 
count=read_argc();

    for (new 
i=0;i<&& (i+2)<count;i++)
    {
        
read_argv(i+2g_optionName[i], sizeof(g_optionName[])-1);
    }

    new 
authid[32], name[32]
    
    
get_user_authid(idauthid31)
    
get_user_name(idname31)
    
log_amx("Vote: ^"%s<%d><%s><>^" vote custom (question ^"%s^") (option#1 ^"%s^") (option#2 ^"%s^")"nameget_user_userid(id), authidquestg_optionName[0], g_optionName[1])

    new 
maxpl=get_maxplayers();
    new 
msg[256];
    for (new 
1<= maxpli++)
    {
        if (
is_user_connected(i) && !is_user_bot(i))
        {
            
// HACK: ADMIN_VOTE_CUS_{1,2} keys were designed very poorly.  Remove all : and %s in it.
            
LookupLangKey(msgcharsmax(msg), "ADMIN_VOTE_CUS_1"i);
            
replace_all(msgcharsmax(msg), "%s""");
            
replace_all(msgcharsmax(msg), ":""");
            
trim(msg);
            
show_activity_id(iidnamemsg);
        }
    }

    new 
menu_msg[512], lVote[16]
    
    
format(lVote15"%L"LANG_SERVER"VOTE")
    
    
count-=2;
    if (
count>4)
    {
        
count=4;
    }
    
// count now shows how many options were listed
    
new keys=0;
    for (new 
i=0;i<count;i++)
    {
        
keys |= (1<<i);
    }
    
    new 
len=formatex(menu_msgsizeof(menu_msg)-1g_coloredMenus "\y%s: %s\w^n^n" "%s: %s^n^n"lVotequest);
    
    for (new 
i=0;i<count;i++)
    {
        
len+=formatex(menu_msg[len], sizeof(menu_msg) - len ,"%d.  %s^n",i+1,g_optionName[i]);
    }
    
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")
    
replace_all(quest,sizeof(quest)-1,"%","");
    
format(g_Answer127"%s - %%s"quest)
    
show_menu(0keysmenu_msgfloatround(vote_time), "Vote: ")
    
set_task(vote_time"checkVotes"99889988)
    
g_voteCaller id
    console_print
(id"%L"id"VOTING_STARTED")
    
g_voteCount = {0000}
    
g_yesNoVote 0
    
    
return PLUGIN_HANDLED
}

public 
CmdBanReason(idlevelcid)
{
    
read_args(g_ban_reasonsizeof(g_ban_reason) - 1);
    
    
client_cmd(id"amx_voteban #%i"get_user_userid(g_ban_player));
    
    return 
PLUGIN_HANDLED;
}

public 
cmdVoteKickBan(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        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 
cmd[32]
    
    
read_argv(0cmd31)
    
    new 
voteban equal(cmd"amx_voteban")
    new 
arg[32]
    
read_argv(1arg31)
    
    new 
player cmd_target(idargCMDTARGET_OBEY_IMMUNITY CMDTARGET_ALLOW_SELF)
    
    if (!
player)
        return 
PLUGIN_HANDLED
    
    
if (voteban && is_user_bot(player))
    {
        new 
imname[32]
        
        
get_user_name(playerimname31)
        
console_print(id"%L"id"ACTION_PERFORMED"imname)
        return 
PLUGIN_HANDLED
    
}
    
    if( 
voteban && !g_ban_reason[0] )
    {
        
g_ban_player player;
        
        
client_cmd(id"messagemode amx_votebanreason");
        
client_print(idprint_chat"[AMXX] Type in the reason for the vote ban.");
        
        return 
PLUGIN_HANDLED;
    }

    new 
keys MENU_KEY_1|MENU_KEY_2
    
new menu_msg[256], lYes[16], lNo[16], lKickBan[16]
    
    
format(lYes15"%L"LANG_SERVER"YES")
    
format(lNo15"%L"LANG_SERVER"NO")
    
format(lKickBan15"%L"LANG_SERVERvoteban "BAN" "KICK")
    
ucfirst(lKickBan)
    
get_user_name(playerarg31)
    
format(menu_msg255g_coloredMenus "\y%s %s?\w^n^n1.  %s^n2.  %s" "%s %s?^n^n1.  %s^n2.  %s"lKickBanarglYeslNo)
    
g_yesNoVote 1
    
    
new bool:ipban=false;
    
    if (
voteban)
    {
        
get_user_authid(playerg_optionName[0], sizeof(g_optionName[])-1);
        
        
// Do the same check that's in plmenu to determine if this should be an IP ban instead
        
if (equal("4294967295"g_optionName[0])
            || 
equal("HLTV"g_optionName[0])
            || 
equal("STEAM_ID_LAN"g_optionName[0])
            || 
equali("VALVE_ID_LAN"g_optionName[0]))
        {
            
get_user_ip(playerg_optionName[0], sizeof(g_optionName[])-11);
            
            
ipban=true;
        }

    }
    else
    {
        
num_to_str(get_user_userid(player), g_optionName[0], 31)
    }
    
    new 
authid[32], name[32]
    
    
get_user_authid(idauthid31)
    
get_user_name(idname31)
    
log_amx("Vote: ^"%s<%d><%s><>^" vote %s (target ^"%s^")"nameget_user_userid(id), authidvoteban "ban" "kick"arg)

    new 
maxpl=get_maxplayers();
    new 
msg[256];
    new 
right[256];
    new 
dummy[1];
    for (new 
1<= maxpli++)
    {
        if (
is_user_connected(i) && !is_user_bot(i))
        {
            
formatex(lKickBancharsmax(lKickBan), "%L"ivoteban "BAN" "KICK");
            
            
// HACK: ADMIN_VOTE_FOR{1,2} keys are really weird.  Tokenize and ignore the text before the :
            
LookupLangKey(msgcharsmax(msg), "ADMIN_VOTE_FOR_1"i);
            
strtok(msgdummy0rightcharsmax(right), ':');
            
trim(right);
            
show_activity_id(iidnamerightlKickBanarg);
        }
    }

    
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(voteban "amx_voteban_ratio" "amx_votekick_ratio")

    if (
voteban)
    {
        if (
ipban==true)
        {
            
g_Answer "amx_banip %s 30 ";
        }
        else
        {
            
g_Answer "amx_ban %s 30 ";
        }
        
        
add(g_Answersizeof(g_Answer) - 1g_ban_reason);
    }
    else
    {
        
g_Answer "kick #%s";
    }
    
show_menu(0keysmenu_msgfloatround(vote_time), voteban "Ban " "Kick ")
    
set_task(vote_time"checkVotes"99889988)
    
g_voteCaller id
    console_print
(id"%L"id"VOTING_STARTED")
    
g_voteCount = {0000}
    
    return 
PLUGIN_HANDLED

Debesėlis is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 10-25-2013 , 04:35   Re: How to fix adminvote
Reply With Quote #3

This is why i say it is weird.

It is working fine for me :

Code:
] amx_vote 22 2 2
L 10/25/2013 - 10:35:05: [adminvote.amxx] Vote: "Half-Life dedicated server<0><><>" vote custom (question "22") (option#1 "2") (option#2 "2")
Voting has started...
Menu is displayed on my screen, vote is ok, all is fine, and no errorlog.
__________________
- tired and retired -

- my plugins -

Last edited by ConnorMcLeod; 10-25-2013 at 04:38.
ConnorMcLeod is offline
Reply



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 23:17.


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