702033080 发表于 2009-9-20 14:24:14

请Rulzy版主再次帮助.

本帖最后由 702033080 于 2009-9-20 14:34 编辑

http://i3.6.cn/cvbnm/3d/5d/9c/03526c29084b9dad76d1093ad0939397.jpg 上面也写着1/2 证明还有第二页的..但是为什么按9却翻不了页..到底是什么问题呢?

702033080 发表于 2009-9-20 14:26:00

以下是源码..请各位帮忙

#include <amxmodx>
#include <amxmisc>
#define MENU_SIZE    512
#define MENU_PLAYERS 8
new g_nMenuPosition
new g_nMenuPlayers
new g_votekick={0,0,...}
public plugin_init()
{
register_plugin( "Vote Menu", "1.0", "skywalker" )
register_dictionary("common.txt")
register_dictionary("menufront.txt")
register_clcmd( "amx_votekickmenu", "ShowVKMenu", ADMIN_VOTE, "Shows Vote Kick Player Menu" )
register_clcmd( "amx_votebanmenu", "ShowVKMenu", ADMIN_VOTE, "Shows Vote Ban Player Menu" )
register_menucmd( register_menuid("Vote Kick"), 1023, "MenuAction" )
register_menucmd( register_menuid("Vote Ban"), 1023, "MenuAction" )
}
stock get_nosxei_players(players)
{
      new num = 0;
      new maxplayers = get_maxplayers();
      new name
      for(new i=1;i<=maxplayers;i++)
      {
                if(!is_user_connected(i)&&!is_user_connecting(i)) continue;
                get_user_name(i, name, 31);
                if(equal(name, "", 10))
                        players = i;
      }
      return num;
}
public ShowVKMenu( id, lvl, cid )
{
if( cmd_access( id, lvl, cid, 1 ) )
{
new cmd
read_argv(0,cmd,31)
g_votekick = equali(cmd,"amx_votekickmenu")
ShowPlayerMenu( id, g_nMenuPosition = 0 )
}
return PLUGIN_HANDLED
}
public MenuAction( id, key )
{
switch( key )
{
case 8: ShowPlayerMenu( id, ++g_nMenuPosition )
case 9: ShowPlayerMenu( id, --g_nMenuPosition )
default:
{
   new vID = g_nMenuPlayers * MENU_PLAYERS + key]
   new userid = get_user_userid( vID )
   client_cmd(id,g_votekick?"amx_votekick #%d":"amx_voteban #%d", userid )
}
}
return PLUGIN_HANDLED
}
public ShowPlayerMenu( id, pos )
{
if( pos < 0 ) return
new i, j
new szMenuBody
new nCurrKey = 0
new szUserName
new nStart = pos * MENU_PLAYERS
new nNum
get_players( g_nMenuPlayers, nNum, "f", "")
if( nNum = get_nosxei_players( g_nMenuPlayers ) )
nStart = pos = g_nMenuPosition = 0

new nLen = format( szMenuBody, MENU_SIZE-1, g_votekick ? "\y%L\R%d/%d^n\w^n" : "\y%L\R%d/%d^n\w^n", id, (g_votekick?"VOTE_KICK":"VOTE_BAN"), pos+1, (nNum / MENU_PLAYERS + ((nNum % MENU_PLAYERS) ? 1 : 0 )) )
   
new nEnd = nStart + MENU_PLAYERS
new nKeys = MENU_KEY_0
if( nEnd > nNum )
nEnd = nNum
for( i = nStart; i < nEnd; i++ )
{
j = g_nMenuPlayers
get_user_name( j, szUserName, 31 )

if( get_user_flags(j) & ADMIN_IMMUNITY )
{
   nCurrKey++
   nLen += format( szMenuBody, (MENU_SIZE-1-nLen), "\d%d. %s (%L)^n\w", nCurrKey, szUserName, id, "IMMU" )
}else{
   nKeys |= (1<<nCurrKey++)
   if(is_user_admin(j))
    nLen += format( szMenuBody, (MENU_SIZE-1-nLen), "%d. %s \r*\w^n", nCurrKey, szUserName )
   else
    nLen += format( szMenuBody, (MENU_SIZE-1-nLen), "%d. %s^n", nCurrKey, szUserName )
}
}
if( nEnd != nNum )
{
format( szMenuBody, (MENU_SIZE-1-nLen), "^n9. %L...^n0. %L", id , "MORE", id, (pos ? "BACK" : "EXIT" ))
nKeys |= MENU_KEY_9
}
else
format( szMenuBody, (MENU_SIZE-1-nLen), "^n0. %L", id, (pos ? "BACK" : "EXIT" ))
show_menu( id, nKeys, szMenuBody, -1 , g_votekick? "Vote Kick":"Vote Ban")
return
}


Rulzy 发表于 2009-9-20 18:02:56

#include <amxmodx>
#include <amxmisc>

#define MENU_SIZE    512
#define MENU_PLAYERS 8

new g_nMenuPosition
new g_nMenuPlayers
new g_votekick={0,0,...}

public plugin_init()
{
        register_plugin( "Vote Menu", "1.0", "Rulzy" )
        register_dictionary("common.txt")
        register_dictionary("menufront.txt")
        register_clcmd( "amx_votekickmenu", "ShowVKMenu", ADMIN_VOTE, "Shows Vote Kick Player Menu" )
        register_clcmd( "amx_votebanmenu", "ShowVKMenu", ADMIN_VOTE, "Shows Vote Ban Player Menu" )
        register_menucmd( register_menuid("Vote Kick"), 1023, "MenuAction" )
        register_menucmd( register_menuid("Vote Ban"), 1023, "MenuAction" )
}

stock get_nosxei_players(players)
{
        new num = 0;
        new maxplayers = get_maxplayers();
        new name
        for(new i=1;i<=maxplayers;i++)
        {
                if(!is_user_connected(i)&&!is_user_connecting(i)) continue;
                get_user_name(i, name, 31);
                if(equal(name, "", 10))
                        players = i;
        }
        return num;
}

public ShowVKMenu( id, lvl, cid )
{
        if( cmd_access( id, lvl, cid, 1 ) )
        {
                new cmd
                read_argv(0,cmd,31)
                g_votekick = equali(cmd,"amx_votekickmenu")
                ShowPlayerMenu( id, g_nMenuPosition = 0 )
        }

        return PLUGIN_HANDLED
}

public MenuAction( id, key )
{
        switch( key )
        {
                case 8: ShowPlayerMenu( id, ++g_nMenuPosition )
                case 9: ShowPlayerMenu( id, --g_nMenuPosition )
                default:
                {
                        new vID = g_nMenuPlayers * MENU_PLAYERS + key]
                        new userid = get_user_userid( vID )
                        client_cmd(id,g_votekick?"amx_votekick #%d":"amx_voteban #%d", userid )
                }
        }
        return PLUGIN_HANDLED
}

public ShowPlayerMenu( id, pos )
{
        if( pos < 0 ) return

        new i, j
        new szMenuBody
        new nCurrKey = 0
        new szUserName
        new nStart = pos * MENU_PLAYERS

        new nNum = get_nosxei_players( g_nMenuPlayers )

        if( nStart >= nNum )
                nStart = pos = g_nMenuPosition = 0


        new nLen = format( szMenuBody, MENU_SIZE-1, "\y%L\R%d/%d^n\w^n", id, (g_votekick?"VOTE_KICK":"VOTE_BAN"), pos+1, (nNum / MENU_PLAYERS + ((nNum % MENU_PLAYERS) ? 1 : 0 )) )
   
        new nEnd = nStart + MENU_PLAYERS
        new nKeys = MENU_KEY_0

        if( nEnd > nNum )
                nEnd = nNum

        for( i = nStart; i < nEnd; i++ )
        {
                j = g_nMenuPlayers
                get_user_name( j, szUserName, 31 )

                if( get_user_flags(j) & ADMIN_IMMUNITY )
                {
                        nCurrKey++
                        nLen += format( szMenuBody, (MENU_SIZE-1-nLen), "\d%d. %s (%L)^n\w", nCurrKey, szUserName, id, "IMMU" )
                }else
                {
                        nKeys |= (1<<nCurrKey++)
                        if(is_user_admin(j))
                                nLen += format( szMenuBody, (MENU_SIZE-1-nLen), "%d. %s \r*\w^n", nCurrKey, szUserName )
                        else
                                nLen += format( szMenuBody, (MENU_SIZE-1-nLen), "%d. %s^n", nCurrKey, szUserName )
                }
        }

        if( nEnd != nNum )
        {
                format( szMenuBody, (MENU_SIZE-1-nLen), "^n9. %L...^n0. %L", id , "MORE", id, (pos ? "BACK" : "EXIT" ))
                nKeys |= MENU_KEY_9
        }
        else
                format( szMenuBody, (MENU_SIZE-1-nLen), "^n0. %L", id, (pos ? "BACK" : "EXIT" ))
        show_menu( id, nKeys, szMenuBody, -1 , g_votekick? "Vote Kick":"Vote Ban")

        return
}

99fps 发表于 2011-12-1 06:32:39

不错不错....
页: [1]
查看完整版本: 请Rulzy版主再次帮助.