Raised This Month: $12 Target: $400
 3% 

Structure HUD [HELP]


Post New Thread Reply   
 
Thread Tools Display Modes
Bugsy
AMX Mod X Moderator
Join Date: Feb 2005
Location: NJ, USA
Old 11-11-2011 , 15:22   Re: Structure HUD [HELP]
Reply With Quote #81

Untested. Added cvar vm_novoteextend which when set to 1 will keep current map if no votes are made, if set to 0 then a random map is picked.
PHP Code:
#include <amxmodx>
#include <amxmisc>

const VoteMaps 10;        //Number of maps in each vote
const VoteTime 30;        //Number of seconds to allow people to vote
const TaskMapHUD 1092;    //Task-ID for map vote HUD

enum _:MapInfo
{
    
MapIndex,
    
MapVotes
}

new 
g_iVoteMenu;
new 
g_iVoteMapCount;
new 
g_iMapVotesVoteMaps ][ MapInfo ];
new 
g_szVoteMapsVoteMaps ][ 33 ];
new 
g_iNumPlayers;
new 
g_iVoteCount;
new 
g_iSyncHUDObj];
new 
g_pNoVoteExtend;

public 
plugin_init() 
{
    
register_plugin"Vote Map" "0.2" "bugsy" );
    
    
g_iSyncHUDObj] = CreateHudSyncObj();
    
g_iSyncHUDObj] = CreateHudSyncObj();
    
    
register_concmd"say votemap" "VoteMap" );

    
g_pNoVoteExtend register_cvar"vm_novoteextend" "1" );
}

public 
VoteMapid )
{
    if ( 
task_existsTaskMapHUD ) )
    {
        
client_printid print_chat "* There is already a vote taking place so cannot start vote." );
        return 
PLUGIN_HANDLED;
    }
    
    new 
szFile64 ] , iPlayers32 ];
    
    
get_playersiPlayers g_iNumPlayers );
    
    if ( !
g_iNumPlayers )
        return 
PLUGIN_HANDLED;
        
    
g_iVoteCount 0;

    
g_iVoteMenu menu_create"Vote for Map" "VoteHandler" );
    
    
copyszFileget_configsdirszFile charsmaxszFile ) ) ] , charsmaxszFile ) , "/maps.ini" );
    
    if( 
file_existsszFile ) ) 
        
LoadMapFileszFile );
        
    if ( !
g_iVoteMapCount )
    {
        
copyszFile charsmaxszFile ) , "mapcycle.txt" ); 
        
LoadMapFileszFile );
    }
    
    
menu_setpropg_iVoteMenu MPROP_EXIT MEXIT_ALL );
    
    for ( new 
g_iNumPlayers i++ )
        
menu_displayiPlayers] , g_iVoteMenu );
    
    
UpdateHUD();
    
set_task1.0 "UpdateHUD" TaskMapHUD "a" VoteTime );
    
    return 
PLUGIN_HANDLED;
}

LoadMapFile( const szFile[] )
{
    new 
szText256 ] , iFile;
    
    
iFile fopenszFile "rt" );
    
    
g_iVoteMapCount 0;
    
    while( ( 
g_iVoteMapCount VoteMaps ) && !feofiFile ) && fgetsiFile szText charsmaxszText ) ) )
    {
        
trimszText );
        
        if( ( ( 
szText] == '^0' ) || ( szText] == '/' ) || ( szText] == ';' ) ) || !is_map_validszText ) ) 
            continue;

        
copyg_szVoteMapsg_iVoteMapCount ] , charsmaxg_szVoteMaps[] ) , szText );

        
g_iMapVotesg_iVoteMapCount ][ MapIndex ] = g_iVoteMapCount++;

        
menu_additemg_iVoteMenu szText )
    }
    
    
fcloseiFile );
}

public 
VoteHandlerid menu item )
{
    if ( 
item == MENU_EXIT )
        return 
PLUGIN_HANDLED;
    
    static 
szName33 ];
    
    
get_user_nameid szName charsmaxszName ) );
    
    
g_iMapVotesitem ][ MapVotes ]++;
    
g_iVoteCount++;
    
    
client_printprint_chat "* %s voted for %s" szName g_szVoteMapsitem ] );
    
    return 
PLUGIN_HANDLED;
}

public 
UpdateHUD()
{    
    static 
iDisplayCount = -1;
    
    if ( ++
iDisplayCount == VoteTime )
    {
        
SelectMap();
    }
    else
    {
        static 
szHUDVoteMaps 40 ] , iPos iPos2;
        static 
g_iMapVotesTempVoteMaps ][ MapInfo ];
        
        
iPos copyszHUD charsmaxszHUD ) , "Map Votes:" );
        
        
szHUDiPos++ ] = EOS;
        
iPos2 iPos;
        
        if ( 
g_iVoteCount )
        {
            
g_iMapVotesTemp g_iMapVotes;
            
SortCustom2Dg_iMapVotesTemp VoteMaps "SortMaps" );
        
            for ( new 
g_iVoteMapCount i++ )
                if ( 
g_iMapVotesTemp][ MapVotes ] )
                    
iPos += formatexszHUDiPos ] , charsmaxszHUD ) - iPos "%s - %d vote%s^n" g_szVoteMapsg_iMapVotesTemp][ MapIndex ] ] ,  g_iMapVotesTemp][ MapVotes ] , ( g_iMapVotesTemp][ MapVotes ] != ) ? "s" "" );
        }
        else
        {
            
iPos += copyszHUDiPos ] , charsmaxszHUD ) - iPos "<No Votes>^n" );
        }
        
        
iPos += formatexszHUDiPos ] , charsmaxszHUD ) - iPos "^n%d second%s remaining" VoteTime iDisplayCount , ( VoteTime iDisplayCount ) != "s" "" );
        
        
set_hudmessage255 0.58 0.12 6.0 1.1 );
        
ShowSyncHudMsgg_iSyncHUDObj] , szHUD );
        
        
set_hudmessage255 255 255 0.58 0.20 6.0 1.1 );
        
ShowSyncHudMsgg_iSyncHUDObj] , szHUDiPos2 ] );
    }
}

SelectMap()
{
    new 
iMostVotes iWinner = -1;

    
menu_destroyg_iVoteMenu );
    
    for ( new 
g_iVoteMapCount i++ )
    {
        if ( 
g_iMapVotes][ MapVotes ] > iMostVotes )
        {
            
iMostVotes g_iMapVotes][ MapVotes ];
            
iWinner i;
        }
    }
    
    if ( 
iWinner == -)
    {
        if ( 
get_pcvar_numg_pNoVoteExtend ) )
        {
            
client_printprint_chat "* No votes were made so the current map will be extended." );
            return;
        }
        else
        {
            
iWinner randomg_iVoteMapCount );
            
client_printprint_chat "* No votes were made so %s was selected randomly as next map." g_szVoteMapsiWinner ] );
        }
    }
    else
    {
        
client_printprint_chat "* %s has received %d vote%s and will be the next map!" g_szVoteMapsiWinner ] , iMostVotes , ( iMostVotes != ) ? "s" "" );
    }

    
message_beginMSG_ALL SVC_INTERMISSION );
    
message_end();

    
set_task3.0 "ChangeMap" iWinner );
}

public 
ChangeMapiMapIndex )
{
    
server_cmd"changelevel %s" g_szVoteMapsiMapIndex ] );
}
    
public 
SortMapselem1[] , elem2[] )
{
    if( 
elem1] > elem2] ) 
        return -
1;
    else if( 
elem1] < elem2] )
        return 
1;
    
    return 
0;

__________________

Last edited by Bugsy; 11-11-2011 at 16:21.
Bugsy is offline
jar_09
Senior Member
Join Date: Feb 2011
Old 11-11-2011 , 16:33   Re: Structure HUD [HELP]
Reply With Quote #82

Quote:
Originally Posted by Bugsy View Post
Untested. Added cvar vm_novoteextend which when set to 1 will keep current map if no votes are made, if set to 0 then a random map is picked.
PHP Code:
#include <amxmodx>
#include <amxmisc>

const VoteMaps 10;        //Number of maps in each vote
const VoteTime 30;        //Number of seconds to allow people to vote
const TaskMapHUD 1092;    //Task-ID for map vote HUD

enum _:MapInfo
{
    
MapIndex,
    
MapVotes
}

new 
g_iVoteMenu;
new 
g_iVoteMapCount;
new 
g_iMapVotesVoteMaps ][ MapInfo ];
new 
g_szVoteMapsVoteMaps ][ 33 ];
new 
g_iNumPlayers;
new 
g_iVoteCount;
new 
g_iSyncHUDObj];
new 
g_pNoVoteExtend;

public 
plugin_init() 
{
    
register_plugin"Vote Map" "0.2" "bugsy" );
    
    
g_iSyncHUDObj] = CreateHudSyncObj();
    
g_iSyncHUDObj] = CreateHudSyncObj();
    
    
register_concmd"say votemap" "VoteMap" );

    
g_pNoVoteExtend register_cvar"vm_novoteextend" "1" );
}

public 
VoteMapid )
{
    if ( 
task_existsTaskMapHUD ) )
    {
        
client_printid print_chat "* There is already a vote taking place so cannot start vote." );
        return 
PLUGIN_HANDLED;
    }
    
    new 
szFile64 ] , iPlayers32 ];
    
    
get_playersiPlayers g_iNumPlayers );
    
    if ( !
g_iNumPlayers )
        return 
PLUGIN_HANDLED;
        
    
g_iVoteCount 0;

    
g_iVoteMenu menu_create"Vote for Map" "VoteHandler" );
    
    
copyszFileget_configsdirszFile charsmaxszFile ) ) ] , charsmaxszFile ) , "/maps.ini" );
    
    if( 
file_existsszFile ) ) 
        
LoadMapFileszFile );
        
    if ( !
g_iVoteMapCount )
    {
        
copyszFile charsmaxszFile ) , "mapcycle.txt" ); 
        
LoadMapFileszFile );
    }
    
    
menu_setpropg_iVoteMenu MPROP_EXIT MEXIT_ALL );
    
    for ( new 
g_iNumPlayers i++ )
        
menu_displayiPlayers] , g_iVoteMenu );
    
    
UpdateHUD();
    
set_task1.0 "UpdateHUD" TaskMapHUD "a" VoteTime );
    
    return 
PLUGIN_HANDLED;
}

LoadMapFile( const szFile[] )
{
    new 
szText256 ] , iFile;
    
    
iFile fopenszFile "rt" );
    
    
g_iVoteMapCount 0;
    
    while( ( 
g_iVoteMapCount VoteMaps ) && !feofiFile ) && fgetsiFile szText charsmaxszText ) ) )
    {
        
trimszText );
        
        if( ( ( 
szText] == '^0' ) || ( szText] == '/' ) || ( szText] == ';' ) ) || !is_map_validszText ) ) 
            continue;

        
copyg_szVoteMapsg_iVoteMapCount ] , charsmaxg_szVoteMaps[] ) , szText );

        
g_iMapVotesg_iVoteMapCount ][ MapIndex ] = g_iVoteMapCount++;

        
menu_additemg_iVoteMenu szText )
    }
    
    
fcloseiFile );
}

public 
VoteHandlerid menu item )
{
    if ( 
item == MENU_EXIT )
        return 
PLUGIN_HANDLED;
    
    static 
szName33 ];
    
    
get_user_nameid szName charsmaxszName ) );
    
    
g_iMapVotesitem ][ MapVotes ]++;
    
g_iVoteCount++;
    
    
client_printprint_chat "* %s voted for %s" szName g_szVoteMapsitem ] );
    
    return 
PLUGIN_HANDLED;
}

public 
UpdateHUD()
{    
    static 
iDisplayCount = -1;
    
    if ( ++
iDisplayCount == VoteTime )
    {
        
SelectMap();
    }
    else
    {
        static 
szHUDVoteMaps 40 ] , iPos iPos2;
        static 
g_iMapVotesTempVoteMaps ][ MapInfo ];
        
        
iPos copyszHUD charsmaxszHUD ) , "Map Votes:" );
        
        
szHUDiPos++ ] = EOS;
        
iPos2 iPos;
        
        if ( 
g_iVoteCount )
        {
            
g_iMapVotesTemp g_iMapVotes;
            
SortCustom2Dg_iMapVotesTemp VoteMaps "SortMaps" );
        
            for ( new 
g_iVoteMapCount i++ )
                if ( 
g_iMapVotesTemp][ MapVotes ] )
                    
iPos += formatexszHUDiPos ] , charsmaxszHUD ) - iPos "%s - %d vote%s^n" g_szVoteMapsg_iMapVotesTemp][ MapIndex ] ] ,  g_iMapVotesTemp][ MapVotes ] , ( g_iMapVotesTemp][ MapVotes ] != ) ? "s" "" );
        }
        else
        {
            
iPos += copyszHUDiPos ] , charsmaxszHUD ) - iPos "<No Votes>^n" );
        }
        
        
iPos += formatexszHUDiPos ] , charsmaxszHUD ) - iPos "^n%d second%s remaining" VoteTime iDisplayCount , ( VoteTime iDisplayCount ) != "s" "" );
        
        
set_hudmessage255 0.58 0.12 6.0 1.1 );
        
ShowSyncHudMsgg_iSyncHUDObj] , szHUD );
        
        
set_hudmessage255 255 255 0.58 0.20 6.0 1.1 );
        
ShowSyncHudMsgg_iSyncHUDObj] , szHUDiPos2 ] );
    }
}

SelectMap()
{
    new 
iMostVotes iWinner = -1;

    
menu_destroyg_iVoteMenu );
    
    for ( new 
g_iVoteMapCount i++ )
    {
        if ( 
g_iMapVotes][ MapVotes ] > iMostVotes )
        {
            
iMostVotes g_iMapVotes][ MapVotes ];
            
iWinner i;
        }
    }
    
    if ( 
iWinner == -)
    {
        if ( 
get_pcvar_numg_pNoVoteExtend ) )
        {
            
client_printprint_chat "* No votes were made so the current map will be extended." );
            return;
        }
        else
        {
            
iWinner randomg_iVoteMapCount );
            
client_printprint_chat "* No votes were made so %s was selected randomly as next map." g_szVoteMapsiWinner ] );
        }
    }
    else
    {
        
client_printprint_chat "* %s has received %d vote%s and will be the next map!" g_szVoteMapsiWinner ] , iMostVotes , ( iMostVotes != ) ? "s" "" );
    }

    
message_beginMSG_ALL SVC_INTERMISSION );
    
message_end();

    
set_task3.0 "ChangeMap" iWinner );
}

public 
ChangeMapiMapIndex )
{
    
server_cmd"changelevel %s" g_szVoteMapsiMapIndex ] );
}
    
public 
SortMapselem1[] , elem2[] )
{
    if( 
elem1] > elem2] ) 
        return -
1;
    else if( 
elem1] < elem2] )
        return 
1;
    
    return 
0;

Thank you bugsy I me work well, but for that when nobody votes and goes out this message " " * you do not vote were made so the current map will be extended. * " that the menu of the maps does not take from itself ... if already I gain the this option it has to destroy the menu of the maps..


(My English is not very good)

Last edited by jar_09; 11-11-2011 at 16:58.
jar_09 is offline
joshknifer
Veteran Member
Join Date: Jun 2011
Location: Denver, CO
Old 11-11-2011 , 16:35   Re: Structure HUD [HELP]
Reply With Quote #83

Quote:
Originally Posted by jar_09 View Post
What I want is map does not select at random if there is no vote of maps, if that of votes of any map not to be to support the same one or to extend 15 minutes to the map.

(My English is not very good)
Looks like that is what Bugsy did for you in that script. Test it.
__________________
joshknifer is offline
Send a message via Skype™ to joshknifer
Bugsy
AMX Mod X Moderator
Join Date: Feb 2005
Location: NJ, USA
Old 11-11-2011 , 16:36   Re: Structure HUD [HELP]
Reply With Quote #84

Did you try what I posted?
__________________
Bugsy is offline
jar_09
Senior Member
Join Date: Feb 2011
Old 11-11-2011 , 17:02   Re: Structure HUD [HELP]
Reply With Quote #85

Quote:
Originally Posted by Bugsy View Post
Did you try what I posted?
Sorry did not see your publication, if already it tries it, .. Thanks Bugsy I work well.

bugsy as I can get to the menu on the maps that go like this:

1.- random
2.- de_dust2
3.- de_nuke
4.- de_inferno
5.- de_train
6.- de_tuscan
7.- de_lite

try putting this but does nothing, it will be you can help me

PHP Code:
else if( equali(g_szVoteMapsiWinner ], "random") ) 
    { 
        
iWinner randomg_iVoteMapCount ); 
        
client_printprint_chat "* %s has received %d vote%s so %s will be the next map!" g_szVoteMapsiWinner ] , iMostVotes , ( iMostVotes != ) ? "s" ""g_szVoteMapsiWinner ] ); 
    } 

Last edited by jar_09; 11-11-2011 at 17:48.
jar_09 is offline
Bugsy
AMX Mod X Moderator
Join Date: Feb 2005
Location: NJ, USA
Old 11-11-2011 , 19:42   Re: Structure HUD [HELP]
Reply With Quote #86

Added "random" as a vote option. Also, everything can be controlled via cvar now.

vm_votetime, default 30, number of seconds in each vote
vm_nummaps, default 10, number of maps in each vote
vm_novoteextend, default 1, if no votes current map remains

PHP Code:

#include <amxmodx>
#include <amxmisc>

new const Version[] = "0.4";

const 
TaskMapHUD 1092;    
const 
MAX_VOTEMAPS 50;    

enum _:MapInfo
{
    
MapIndex,
    
MapVotes
}

new 
g_iVoteMenu g_iSyncHUDObj] , g_iVoteMapCount g_iVoteTime g_iVoteMaps;
new 
g_iMapVotesMAX_VOTEMAPS ][ MapInfo ] , g_szVoteMapsMAX_VOTEMAPS ][ 33 ];
new 
g_iNumPlayers g_iVoteCount g_iDisplayCount;
new 
g_pVoteTime g_pVoteMaps g_pNoVoteExtend;

public 
plugin_init() 
{
    
register_plugin"Vote Map" Version "bugsy" );
    
    
g_iSyncHUDObj] = CreateHudSyncObj();
    
g_iSyncHUDObj] = CreateHudSyncObj();
    
    
register_concmd"say votemap" "VoteMap" );
    
register_concmd"say_team votemap" "VoteMap" );
    
    
g_pVoteTime register_cvar"vm_votetime" "30" );
    
g_pVoteMaps register_cvar"vm_nummaps" "10" );
    
g_pNoVoteExtend register_cvar"vm_novoteextend" "1" );
}

public 
VoteMapid )
{
    if ( 
task_existsTaskMapHUD ) )
    {
        
client_printid print_chat "* There is already a vote taking place so cannot start vote." );
        return 
PLUGIN_HANDLED;
    }
    
    new 
szFile64 ] , iPlayers32 ];
    
    
get_playersiPlayers g_iNumPlayers );
    
    if ( !
g_iNumPlayers )
        return 
PLUGIN_HANDLED;
        
    
g_iVoteCount 0;
    
g_iVoteMenu menu_create"Vote for Map" "VoteHandler" );
    
    
copyszFileget_configsdirszFile charsmaxszFile ) ) ] , charsmaxszFile ) , "/maps.ini" );
    
    if( 
file_existsszFile ) ) 
        
LoadMapFileszFile );
        
    if ( !
g_iVoteMapCount )
    {
        
copyszFile charsmaxszFile ) , "mapcycle.txt" ); 
        
LoadMapFileszFile );
    }
    
    
menu_setpropg_iVoteMenu MPROP_EXIT MEXIT_ALL );
    
menu_setpropg_iVoteMenu MPROP_NUMBER_COLOR "\w" );

    for ( new 
g_iNumPlayers i++ )
        
menu_displayiPlayers] , g_iVoteMenu );
    
    
g_iDisplayCount = -1;
    
    
set_task1.0 "UpdateHUD" TaskMapHUD "a" , ( g_iVoteTime get_pcvar_numg_pVoteTime ) ) );
    
UpdateHUD();
    
    return 
PLUGIN_HANDLED;
}

LoadMapFile( const szFile[] )
{
    new 
szText256 ] , iFile;
    
    
iFile fopenszFile "rt" );
    
    
g_iVoteMapCount 0;
    
    
copyg_szVoteMapsg_iVoteMapCount++ ] , charsmaxg_szVoteMaps[] ) , "random" );
    
menu_additemg_iVoteMenu "random" )
    
    while( ( 
g_iVoteMapCount < ( g_iVoteMaps get_pcvar_numg_pVoteMaps ) ) ) && !feofiFile ) && fgetsiFile szText charsmaxszText ) ) )
    {
        
trimszText );
        
        if( ( ( 
szText] == '^0' ) || ( szText] == '/' ) || ( szText] == ';' ) ) || !is_map_validszText ) ) 
            continue;

        
copyg_szVoteMapsg_iVoteMapCount ] , charsmaxg_szVoteMaps[] ) , szText );

        
g_iMapVotesg_iVoteMapCount ][ MapIndex ] = g_iVoteMapCount++;

        
menu_additemg_iVoteMenu szText )
    }
    
    
fcloseiFile );
}

public 
VoteHandlerid menu item )
{
    if ( 
item == MENU_EXIT )
        return 
PLUGIN_HANDLED;
    
    static 
szName33 ];
    
    
get_user_nameid szName charsmaxszName ) );
    
    
g_iMapVotesitem ][ MapVotes ]++;
    
g_iVoteCount++;
    
    
client_printprint_chat "* %s voted for %s" szName g_szVoteMapsitem ] );
    
    return 
PLUGIN_HANDLED;
}

public 
UpdateHUD()
{    
    if ( ++
g_iDisplayCount == g_iVoteTime )
    {
        
SelectMap();
    }
    else
    {
        static 
szHUDMAX_VOTEMAPS 40 ] , iPos iPos2;
        static 
g_iMapVotesTempMAX_VOTEMAPS ][ MapInfo ];
        
        
iPos copyszHUD charsmaxszHUD ) , "Map Votes:" );
        
szHUDiPos++ ] = EOS;
        
iPos2 iPos;
        
        if ( 
g_iVoteCount )
        {
            
g_iMapVotesTemp g_iMapVotes;
            
SortCustom2Dg_iMapVotesTemp g_iVoteMaps "SortMaps" );
        
            for ( new 
g_iVoteMapCount i++ )
                if ( 
g_iMapVotesTemp][ MapVotes ] )
                    
iPos += formatexszHUDiPos ] , charsmaxszHUD ) - iPos "%s - %d vote%s^n" g_szVoteMapsg_iMapVotesTemp][ MapIndex ] ] ,  g_iMapVotesTemp][ MapVotes ] , ( g_iMapVotesTemp][ MapVotes ] != ) ? "s" "" );
        }
        else
        {
            
iPos += copyszHUDiPos ] , charsmaxszHUD ) - iPos "<No Votes>^n" );
        }
        
        
iPos += formatexszHUDiPos ] , charsmaxszHUD ) - iPos "^n%d second%s remaining" g_iVoteTime g_iDisplayCount , ( g_iVoteTime g_iDisplayCount ) != "s" "" );
        
        
set_hudmessage255 0.58 0.12 6.0 1.1 );
        
ShowSyncHudMsgg_iSyncHUDObj] , szHUD );
        
        
set_hudmessage255 255 255 0.58 0.20 6.0 1.1 );
        
ShowSyncHudMsgg_iSyncHUDObj] , szHUDiPos2 ] );
    }
}

SelectMap()
{
    new 
iMostVotes iActualWinner iWinner = -1;

    
menu_destroyg_iVoteMenu );
    
    for ( new 
g_iVoteMapCount i++ )
    {
        if ( 
g_iMapVotes][ MapVotes ] > iMostVotes )
        {
            
iMostVotes g_iMapVotes][ MapVotes ];
            
iWinner i;
        }
    }
    
    if ( 
iWinner <= )
    {
        new 
iNoVoteExtend get_pcvar_numg_pNoVoteExtend );
        if ( ( 
iWinner == -) && iNoVoteExtend )
        {
            
client_printprint_chat "* No votes were made so the current map will be extended." );
            
            return;
        }
        
        
iActualWinner iWinner;
        
iWinner randomg_iVoteMapCount );
        
client_printprint_chat "* %s %s was selected randomly as next map." , ( iActualWinner == -) ? "No votes were made so" "Random map had the most votes and" g_szVoteMapsiWinner ] );
    }
    else
    {
        
client_printprint_chat "* %s has received %d vote%s and will be the next map!" g_szVoteMapsiWinner ] , iMostVotes , ( iMostVotes != ) ? "s" "" );
    }

    
message_beginMSG_ALL SVC_INTERMISSION );
    
message_end();

    
set_task3.0 "ChangeMap" iWinner );
}

public 
ChangeMapiMapIndex )
{
    
server_cmd"changelevel %s" g_szVoteMapsiMapIndex ] );
}
    
public 
SortMapselem1[] , elem2[] )
{
    if( 
elem1] > elem2] ) 
        return -
1;
    else if( 
elem1] < elem2] )
        return 
1;
    
    return 
0;

__________________

Last edited by Bugsy; 11-11-2011 at 21:38.
Bugsy is offline
jar_09
Senior Member
Join Date: Feb 2011
Old 11-11-2011 , 21:18   Re: Structure HUD [HELP]
Reply With Quote #87

Quote:
Originally Posted by Bugsy View Post
Added "random" as a vote option. Also, everything can be controlled via cvar now.

vm_votetime, default 30, number of seconds in each vote
vm_nummaps, default 10, number of maps in each vote
vm_novoteextend, default 1, if no votes current map remains

PHP Code:

#include <amxmodx>
#include <amxmisc>

new const Version[] = "0.4";

const 
TaskMapHUD 1092;    
const 
MAX_VOTEMAPS 50;    

enum _:MapInfo
{
    
MapIndex,
    
MapVotes
}

new 
g_iVoteMenu g_iSyncHUDObj] , g_iVoteMapCount g_iVoteTime g_iVoteMaps;
new 
g_iMapVotesMAX_VOTEMAPS ][ MapInfo ] , g_szVoteMapsMAX_VOTEMAPS ][ 33 ];
new 
g_iNumPlayers g_iVoteCount g_iDisplayCount;
new 
g_pVoteTime g_pVoteMaps g_pNoVoteExtend;

public 
plugin_init() 
{
    
register_plugin"Vote Map" Version "bugsy" );
    
    
g_iSyncHUDObj] = CreateHudSyncObj();
    
g_iSyncHUDObj] = CreateHudSyncObj();
    
    
register_concmd"say votemap" "VoteMap" );
    
register_concmd"say_team votemap" "VoteMap" );
    
    
g_pVoteTime register_cvar"vm_votetime" "30" );
    
g_pVoteMaps register_cvar"vm_nummaps" "10" );
    
g_pNoVoteExtend register_cvar"vm_novoteextend" "1" );
}

public 
VoteMapid )
{
    if ( 
task_existsTaskMapHUD ) )
    {
        
client_printid print_chat "* There is already a vote taking place so cannot start vote." );
        return 
PLUGIN_HANDLED;
    }
    
    new 
szFile64 ] , iPlayers32 ];
    
    
get_playersiPlayers g_iNumPlayers );
    
    if ( !
g_iNumPlayers )
        return 
PLUGIN_HANDLED;
        
    
g_iVoteCount 0;
    
g_iVoteMenu menu_create"Vote for Map" "VoteHandler" );
    
    
copyszFileget_configsdirszFile charsmaxszFile ) ) ] , charsmaxszFile ) , "/maps.ini" );
    
    if( 
file_existsszFile ) ) 
        
LoadMapFileszFile );
        
    if ( !
g_iVoteMapCount )
    {
        
copyszFile charsmaxszFile ) , "mapcycle.txt" ); 
        
LoadMapFileszFile );
    }
    
    
menu_setpropg_iVoteMenu MPROP_EXIT MEXIT_ALL );
    
    for ( new 
g_iNumPlayers i++ )
        
menu_displayiPlayers] , g_iVoteMenu );
    
    
g_iDisplayCount = -1;
    
    
set_task1.0 "UpdateHUD" TaskMapHUD "a" , ( g_iVoteTime get_pcvar_numg_pVoteTime ) ) );
    
UpdateHUD();
    
    return 
PLUGIN_HANDLED;
}

LoadMapFile( const szFile[] )
{
    new 
szText256 ] , iFile;
    
    
iFile fopenszFile "rt" );
    
    
g_iVoteMapCount 0;
    
    
copyg_szVoteMapsg_iVoteMapCount++ ] , charsmaxg_szVoteMaps[] ) , "random" );
    
menu_additemg_iVoteMenu "random" )
    
    while( ( 
g_iVoteMapCount < ( g_iVoteMaps get_pcvar_numg_pVoteMaps ) ) ) && !feofiFile ) && fgetsiFile szText charsmaxszText ) ) )
    {
        
trimszText );
        
        if( ( ( 
szText] == '^0' ) || ( szText] == '/' ) || ( szText] == ';' ) ) || !is_map_validszText ) ) 
            continue;

        
copyg_szVoteMapsg_iVoteMapCount ] , charsmaxg_szVoteMaps[] ) , szText );

        
g_iMapVotesg_iVoteMapCount ][ MapIndex ] = g_iVoteMapCount++;

        
menu_additemg_iVoteMenu szText )
    }
    
    
fcloseiFile );
}

public 
VoteHandlerid menu item )
{
    if ( 
item == MENU_EXIT )
        return 
PLUGIN_HANDLED;
    
    static 
szName33 ];
    
    
get_user_nameid szName charsmaxszName ) );
    
    
g_iMapVotesitem ][ MapVotes ]++;
    
g_iVoteCount++;
    
    
client_printprint_chat "* %s voted for %s" szName g_szVoteMapsitem ] );
    
    return 
PLUGIN_HANDLED;
}

public 
UpdateHUD()
{    
    if ( ++
g_iDisplayCount == g_iVoteTime )
    {
        
SelectMap();
    }
    else
    {
        static 
szHUDMAX_VOTEMAPS 40 ] , iPos iPos2;
        static 
g_iMapVotesTempMAX_VOTEMAPS ][ MapInfo ];
        
        
iPos copyszHUD charsmaxszHUD ) , "Map Votes:" );
        
szHUDiPos++ ] = EOS;
        
iPos2 iPos;
        
        if ( 
g_iVoteCount )
        {
            
g_iMapVotesTemp g_iMapVotes;
            
SortCustom2Dg_iMapVotesTemp g_iVoteMaps "SortMaps" );
        
            for ( new 
g_iVoteMapCount i++ )
                if ( 
g_iMapVotesTemp][ MapVotes ] )
                    
iPos += formatexszHUDiPos ] , charsmaxszHUD ) - iPos "%s - %d vote%s^n" g_szVoteMapsg_iMapVotesTemp][ MapIndex ] ] ,  g_iMapVotesTemp][ MapVotes ] , ( g_iMapVotesTemp][ MapVotes ] != ) ? "s" "" );
        }
        else
        {
            
iPos += copyszHUDiPos ] , charsmaxszHUD ) - iPos "<No Votes>^n" );
        }
        
        
iPos += formatexszHUDiPos ] , charsmaxszHUD ) - iPos "^n%d second%s remaining" g_iVoteTime g_iDisplayCount , ( g_iVoteTime g_iDisplayCount ) != "s" "" );
        
        
set_hudmessage255 0.58 0.12 6.0 1.1 );
        
ShowSyncHudMsgg_iSyncHUDObj] , szHUD );
        
        
set_hudmessage255 255 255 0.58 0.20 6.0 1.1 );
        
ShowSyncHudMsgg_iSyncHUDObj] , szHUDiPos2 ] );
    }
}

SelectMap()
{
    new 
iMostVotes iActualWinner iWinner = -1;

    
menu_destroyg_iVoteMenu );
    
    for ( new 
g_iVoteMapCount i++ )
    {
        if ( 
g_iMapVotes][ MapVotes ] > iMostVotes )
        {
            
iMostVotes g_iMapVotes][ MapVotes ];
            
iWinner i;
        }
    }
    
    if ( 
iWinner <= )
    {
        new 
iNoVoteExtend get_pcvar_numg_pNoVoteExtend );
        if ( ( 
iWinner == -) && iNoVoteExtend )
        {
            
client_printprint_chat "* No votes were made so the current map will be extended." );
            
            return;
        }
        
        
iActualWinner iWinner;
        
iWinner randomg_iVoteMapCount );
        
client_printprint_chat "* %s %s was selected randomly as next map." , ( iActualWinner == -) ? "No votes were made so" "Random map had the most votes and" g_szVoteMapsiWinner ] );
    }
    else
    {
        
client_printprint_chat "* %s has received %d vote%s and will be the next map!" g_szVoteMapsiWinner ] , iMostVotes , ( iMostVotes != ) ? "s" "" );
    }

    
message_beginMSG_ALL SVC_INTERMISSION );
    
message_end();

    
set_task3.0 "ChangeMap" iWinner );
}

public 
ChangeMapiMapIndex )
{
    
server_cmd"changelevel %s" g_szVoteMapsiMapIndex ] );
}
    
public 
SortMapselem1[] , elem2[] )
{
    if( 
elem1] > elem2] ) 
        return -
1;
    else if( 
elem1] < elem2] )
        return 
1;
    
    return 
0;

Thank you bugsy, bugsy you can help me in this if it is not great to ask, in putting the numbers of white color I leave an image in order that you see..
Attached Thumbnails
Click image for larger version

Name:	Dibujocs13212.JPG
Views:	115
Size:	38.9 KB
ID:	95112  
jar_09 is offline
Bugsy
AMX Mod X Moderator
Join Date: Feb 2005
Location: NJ, USA
Old 11-11-2011 , 21:39   Re: Structure HUD [HELP]
Reply With Quote #88

Done, code edited.
__________________
Bugsy is offline
jar_09
Senior Member
Join Date: Feb 2011
Old 11-11-2011 , 21:53   Re: Structure HUD [HELP]
Reply With Quote #89

Quote:
Originally Posted by Bugsy View Post
Done, code edited.
thank you very much bugsy ++k
jar_09 is offline
jg_20
Senior Member
Join Date: Oct 2011
Old 11-12-2011 , 15:34   Re: Structure HUD [HELP]
Reply With Quote #90

Quote:
Originally Posted by Bugsy View Post
Added "random" as a vote option. Also, everything can be controlled via cvar now.

vm_votetime, default 30, number of seconds in each vote
vm_nummaps, default 10, number of maps in each vote
vm_novoteextend, default 1, if no votes current map remains

PHP Code:

#include <amxmodx>
#include <amxmisc>

new const Version[] = "0.4";

const 
TaskMapHUD 1092;    
const 
MAX_VOTEMAPS 50;    

enum _:MapInfo
{
    
MapIndex,
    
MapVotes
}

new 
g_iVoteMenu g_iSyncHUDObj] , g_iVoteMapCount g_iVoteTime g_iVoteMaps;
new 
g_iMapVotesMAX_VOTEMAPS ][ MapInfo ] , g_szVoteMapsMAX_VOTEMAPS ][ 33 ];
new 
g_iNumPlayers g_iVoteCount g_iDisplayCount;
new 
g_pVoteTime g_pVoteMaps g_pNoVoteExtend;

public 
plugin_init() 
{
    
register_plugin"Vote Map" Version "bugsy" );
    
    
g_iSyncHUDObj] = CreateHudSyncObj();
    
g_iSyncHUDObj] = CreateHudSyncObj();
    
    
register_concmd"say votemap" "VoteMap" );
    
register_concmd"say_team votemap" "VoteMap" );
    
    
g_pVoteTime register_cvar"vm_votetime" "30" );
    
g_pVoteMaps register_cvar"vm_nummaps" "10" );
    
g_pNoVoteExtend register_cvar"vm_novoteextend" "1" );
}

public 
VoteMapid )
{
    if ( 
task_existsTaskMapHUD ) )
    {
        
client_printid print_chat "* There is already a vote taking place so cannot start vote." );
        return 
PLUGIN_HANDLED;
    }
    
    new 
szFile64 ] , iPlayers32 ];
    
    
get_playersiPlayers g_iNumPlayers );
    
    if ( !
g_iNumPlayers )
        return 
PLUGIN_HANDLED;
        
    
g_iVoteCount 0;
    
g_iVoteMenu menu_create"Vote for Map" "VoteHandler" );
    
    
copyszFileget_configsdirszFile charsmaxszFile ) ) ] , charsmaxszFile ) , "/maps.ini" );
    
    if( 
file_existsszFile ) ) 
        
LoadMapFileszFile );
        
    if ( !
g_iVoteMapCount )
    {
        
copyszFile charsmaxszFile ) , "mapcycle.txt" ); 
        
LoadMapFileszFile );
    }
    
    
menu_setpropg_iVoteMenu MPROP_EXIT MEXIT_ALL );
    
menu_setpropg_iVoteMenu MPROP_NUMBER_COLOR "\w" );

    for ( new 
g_iNumPlayers i++ )
        
menu_displayiPlayers] , g_iVoteMenu );
    
    
g_iDisplayCount = -1;
    
    
set_task1.0 "UpdateHUD" TaskMapHUD "a" , ( g_iVoteTime get_pcvar_numg_pVoteTime ) ) );
    
UpdateHUD();
    
    return 
PLUGIN_HANDLED;
}

LoadMapFile( const szFile[] )
{
    new 
szText256 ] , iFile;
    
    
iFile fopenszFile "rt" );
    
    
g_iVoteMapCount 0;
    
    
copyg_szVoteMapsg_iVoteMapCount++ ] , charsmaxg_szVoteMaps[] ) , "random" );
    
menu_additemg_iVoteMenu "random" )
    
    while( ( 
g_iVoteMapCount < ( g_iVoteMaps get_pcvar_numg_pVoteMaps ) ) ) && !feofiFile ) && fgetsiFile szText charsmaxszText ) ) )
    {
        
trimszText );
        
        if( ( ( 
szText] == '^0' ) || ( szText] == '/' ) || ( szText] == ';' ) ) || !is_map_validszText ) ) 
            continue;

        
copyg_szVoteMapsg_iVoteMapCount ] , charsmaxg_szVoteMaps[] ) , szText );

        
g_iMapVotesg_iVoteMapCount ][ MapIndex ] = g_iVoteMapCount++;

        
menu_additemg_iVoteMenu szText )
    }
    
    
fcloseiFile );
}

public 
VoteHandlerid menu item )
{
    if ( 
item == MENU_EXIT )
        return 
PLUGIN_HANDLED;
    
    static 
szName33 ];
    
    
get_user_nameid szName charsmaxszName ) );
    
    
g_iMapVotesitem ][ MapVotes ]++;
    
g_iVoteCount++;
    
    
client_printprint_chat "* %s voted for %s" szName g_szVoteMapsitem ] );
    
    return 
PLUGIN_HANDLED;
}

public 
UpdateHUD()
{    
    if ( ++
g_iDisplayCount == g_iVoteTime )
    {
        
SelectMap();
    }
    else
    {
        static 
szHUDMAX_VOTEMAPS 40 ] , iPos iPos2;
        static 
g_iMapVotesTempMAX_VOTEMAPS ][ MapInfo ];
        
        
iPos copyszHUD charsmaxszHUD ) , "Map Votes:" );
        
szHUDiPos++ ] = EOS;
        
iPos2 iPos;
        
        if ( 
g_iVoteCount )
        {
            
g_iMapVotesTemp g_iMapVotes;
            
SortCustom2Dg_iMapVotesTemp g_iVoteMaps "SortMaps" );
        
            for ( new 
g_iVoteMapCount i++ )
                if ( 
g_iMapVotesTemp][ MapVotes ] )
                    
iPos += formatexszHUDiPos ] , charsmaxszHUD ) - iPos "%s - %d vote%s^n" g_szVoteMapsg_iMapVotesTemp][ MapIndex ] ] ,  g_iMapVotesTemp][ MapVotes ] , ( g_iMapVotesTemp][ MapVotes ] != ) ? "s" "" );
        }
        else
        {
            
iPos += copyszHUDiPos ] , charsmaxszHUD ) - iPos "<No Votes>^n" );
        }
        
        
iPos += formatexszHUDiPos ] , charsmaxszHUD ) - iPos "^n%d second%s remaining" g_iVoteTime g_iDisplayCount , ( g_iVoteTime g_iDisplayCount ) != "s" "" );
        
        
set_hudmessage255 0.58 0.12 6.0 1.1 );
        
ShowSyncHudMsgg_iSyncHUDObj] , szHUD );
        
        
set_hudmessage255 255 255 0.58 0.20 6.0 1.1 );
        
ShowSyncHudMsgg_iSyncHUDObj] , szHUDiPos2 ] );
    }
}

SelectMap()
{
    new 
iMostVotes iActualWinner iWinner = -1;

    
menu_destroyg_iVoteMenu );
    
    for ( new 
g_iVoteMapCount i++ )
    {
        if ( 
g_iMapVotes][ MapVotes ] > iMostVotes )
        {
            
iMostVotes g_iMapVotes][ MapVotes ];
            
iWinner i;
        }
    }
    
    if ( 
iWinner <= )
    {
        new 
iNoVoteExtend get_pcvar_numg_pNoVoteExtend );
        if ( ( 
iWinner == -) && iNoVoteExtend )
        {
            
client_printprint_chat "* No votes were made so the current map will be extended." );
            
            return;
        }
        
        
iActualWinner iWinner;
        
iWinner randomg_iVoteMapCount );
        
client_printprint_chat "* %s %s was selected randomly as next map." , ( iActualWinner == -) ? "No votes were made so" "Random map had the most votes and" g_szVoteMapsiWinner ] );
    }
    else
    {
        
client_printprint_chat "* %s has received %d vote%s and will be the next map!" g_szVoteMapsiWinner ] , iMostVotes , ( iMostVotes != ) ? "s" "" );
    }

    
message_beginMSG_ALL SVC_INTERMISSION );
    
message_end();

    
set_task3.0 "ChangeMap" iWinner );
}

public 
ChangeMapiMapIndex )
{
    
server_cmd"changelevel %s" g_szVoteMapsiMapIndex ] );
}
    
public 
SortMapselem1[] , elem2[] )
{
    if( 
elem1] > elem2] ) 
        return -
1;
    else if( 
elem1] < elem2] )
        return 
1;
    
    return 
0;

Hello bugsy. Your code is perfect: D Podiras help put your code to yap_menu? : (
This is the code of yap_menu

PHP Code:
#include <amxmodx>
#include <amxmisc>

#include <yap_menu>
#include <yap_const>
#include <yap_stocks>
#include <yap_natives>
#include <yap_forwards>
#include <yap_modspecific>

new const plugin_author[] = "Twilight Suzuka"
new const plugin_name[] = "YAP-MENU"
new const plugin_version[] = "0.0.1"

public pug_votemap_menu;
public 
pug_voteteam_menu;
public 
pug_voteplayers_menu
public pug_voterestart_menu
public pug_votekick_menu

public pug_cvar_vote_time;
public 
pug_cvar_vote_perc;

public 
pug_cvar_votemap
public pug_cvar_votemap_e

public pug_cvar_votekick_perc;

new 
votemap_noswitch

public pug_voting 0;

public 
plugin_init()
{
    
register_plugin(plugin_name,plugin_version,plugin_author);
    
register_dictionary("yap.txt")
    
register_dictionary("yap_vote.txt")

    
pug_cvar_vote_time register_cvar("pug_vote_delay","20")
    
pug_cvar_vote_perc register_cvar("pug_vote_percentage","0.4")

    
pug_cvar_votemap register_cvar("pug_votemap","1")
    
pug_cvar_votemap_e register_cvar("pug_votemap_enabled","1")

    
pug_cvar_votekick_perc register_cvar("pug_votekick_percent","0.7")

    
//register_pug_admincmd("votemap","cmd_votemap",PUG_CMD_LVL,"Starts a vote on map")
    //register_pug_admincmd("voteteams","cmd_voteteams",PUG_CMD_LVL,"Starts a vote on team mode")
    
register_pug_admincmd("voteplayers","cmd_voteplayers",PUG_CMD_LVL,"Starts a vote on game mode")
    
register_pug_admincmd("voterestart","cmd_voterestart",PUG_CMD_LVL,"Starts a vote on whether to restart")
    
register_pug_admincmd("votestop","cmd_voterestart",PUG_CMD_LVL,"Starts a vote on whether to restart")
    
register_pug_admincmd("votecancel","cmd_voterestart",PUG_CMD_LVL,"Starts a vote on whether to restart")
    
register_pug_admincmd("votekick","cmd_votekick",_,"<name or #userid> <reason> Starts a votekick")

    
//parse_header("BOE-E",pug_header,5)
    
    
pug_votemap_menu menu_create("VoteMap:","votemap_handle");
    
pug_voteteam_menu menu_create("TeamType:","voteteam_handle");
    
pug_voterestart_menu menu_create("VoteRestart:","voterestart_handle");
    
pug_votekick_menu menu_create("VoteKick:","votekick_handle");

    
menu_setprop(pug_votemap_menu,MPROP_EXIT,MEXIT_NEVER)

    
menu_additem(pug_voteteam_menu,"Not sorted","1")
    
menu_additem(pug_voteteam_menu,"Skill Sorted","2")
    
menu_additem(pug_voteteam_menu,"Captain Sorted","3")
    
menu_additem(pug_voteteam_menu,"Random","4")
    
menu_setprop(pug_voteteam_menu,MPROP_EXIT,MEXIT_NEVER)

    
menu_additem(pug_voterestart_menu,"Yes","1")
    
menu_additem(pug_voterestart_menu,"No","2")
    
menu_setprop(pug_voterestart_menu,MPROP_EXIT,MEXIT_NEVER)

    
menu_additem(pug_votekick_menu,"Yes","1")
    
menu_additem(pug_votekick_menu,"No","2")
    
menu_setprop(pug_votekick_menu,MPROP_EXIT,MEXIT_NEVER)
}

public 
plugin_cfg() try_load_votemap_menu()

CREATE_GEN_FORW_ID(firsthalf_forward)

public 
pug_firsthalf(GEN_FORW_ID(forward_id))
{
    
firsthalf_forward forward_id

    
if( get_pcvar_num(pug_cvar_votemap_e) && get_pcvar_num(pug_cvar_votemap) ) votemap_start();
    else 
voteteam_start();

    return 
PLUGIN_HANDLED;
}

public 
pug_finished()
{
    if(!
votemap_noswitchset_pcvar_num(pug_cvar_votemap_e,1)
}


#define MAX_MAPS 20

new pug_votemap_votes[MAX_MAPS]
new 
pug_votemap_name[MAX_MAPS][32]
new 
pug_votemap_count;

public 
try_load_votemap_menu()
{
    
// Rukia: Get our maps.ini
    
static filename[64]
    
get_configsdirfilename63 )
    
formatfilename63"%s/maps.ini"filename )

    
// Rukia: Otherwise, just use mapcycle
    
if(file_exists(filename)) 
    {
        
load_votemap_menu(filename)
        if(
pug_votemap_count != 0) return;
    }

    
copy(filename,63,"mapcycle.txt")
    
load_votemap_menu(filename)
}

public 
load_votemap_menu(filename[])
{
    new 
file fopen(filename,"rb")

    static 
text[256], szDesc[48], num[10]
    while( (
pug_votemap_count MAX_MAPS) && !feof(file) && fgets(file,text,255) )
    {
        
// Rukia: Take out common comment conventions
        
if(text[0]==';') continue
        if( (
text[0]=='/') && (text[1]=='/') ) continue

        
// Rukia: Remove the newline character
        
text[strlen(text)] = '^0'

        
// Rukia: Get the map name and description out of what we read
        
strbreak(text,pug_votemap_name[pug_votemap_count],31,szDesc,47)
        
// Rukia: If the map is invalid, skip it
        
if( !is_map_validpug_votemap_name[pug_votemap_count] ) ) continue;

        
// Rukia: If there is no description (such as if we use mapcycle) then just use the first part of the map name
        
if(szDesc[0] == '^0'strtok(pug_votemap_name[pug_votemap_count],szDesc,47,"",0,'.',1)
    
        
// Rukia: The map number will be our index
        
formatex(num,9,"%i",pug_votemap_count)

        
// Rukia: Add the item into the menu and move on
        
menu_additem(pug_votemap_menupug_votemap_name[pug_votemap_count],num )

        
pug_votemap_count++;
    }

    
fclose(file)
}

public 
cmd_votemap(id,level,cid)
{
    if (!
cmd_access(idlevelcid1) ) return pug_msg_tmp_empty(id,"PUG_CMD_NOTALLOWED")
    
    
votemap_start()
    return 
PLUGIN_HANDLED;
}

public 
votemap_start()
{
    if(
pug_voting) { set_task(get_pcvar_float(pug_cvar_vote_time),"votemap_start",100 pug_votemap_menu); return; }

    
pug_voting 1;
    
arrayset(pug_voted,0,33)

    
arrayset(pug_votemap_votes,0,pug_votemap_count)
    
pug_display_menu_all(pug_votemap_menu)

    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_START""PUG map");
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_START""PUG map");
    
set_task(get_pcvar_float(pug_cvar_vote_time),"votemap_end",100 pug_votemap_menu)
}

public 
votemap_end()
{
    
pug_cancel_menu()

    
pug_voting 0;
    
remove_task 100 pug_votemap_menu )

    if(
votemap_count()) voteteam_start();
}

public 
votemap_handle(idmenuitem)
{
    if( 
item ) return PLUGIN_CONTINUE;
 
    static 
accesscallback
    
static cmd[3], name[32], cmdname[32]
 
    
menu_item_getinfo(menuitemaccesscmd,2,cmdname,31callback);
    
pug_votemap_votes[str_to_num(cmd)]++;

    
get_user_name(id,name,31)
        
    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTED_FOR"namecmdname);
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTED_FOR"namecmdname);

    
pug_voted[id] = 1;
    if(
pug_should_stopvote() ) votemap_end()
 
    return 
PLUGIN_HANDLED;
}

public 
votemap_count()
{
    new 
winnerwinner_votesvotes

    
for(new 0pug_votemap_count; ++i)
    {
        
votes pug_votemap_votes[i]
        if(
votes winner_votes) { winner iwinner_votes votes; }
        else if(
votes == winner_votes) if(random_num(0,1)) { winner iwinner_votes votes; }
    }

    if(
pug_votemap_votes[winner] == 0) return pug_msg_tmp_empty(0,"PUG_VOTE_FAILED_NOVOTES")

    new 
Floattmp float(pug_get_players()) * get_pcvar_float(pug_cvar_vote_perc
    if( 
pug_votemap_votes[winner] < floatround(tmp,floatround_floor) )
    {
        return 
pug_msg_tmp_empty(0,"PUG_VOTE_FAILED_INSUF_VOTES");
    }

    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_WON"pug_votemap_name[winner]);
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_WON"pug_votemap_name[winner]);

    
pug_voting 0;
    
votemap_noswitch 1;
    
set_pcvar_num(pug_cvar_votemap_e,0)

    
message_begin(MSG_ALLSVC_INTERMISSION)
    
message_end()

    
set_task(5.0,"pug_votemap_change",winner)
    return 
PLUGIN_CONTINUE
}

public 
pug_votemap_change(winner)
{
    
server_cmd("changelevel %s",pug_votemap_name[winner]);
}

new 
pug_voteteam_votes[5]

public 
cmd_voteteam(id,level,cid)
{
    if (!
cmd_access(idlevelcid1) ) return pug_msg_tmp_empty(id,"PUG_CMD_NOTALLOWED")

    
voteteam_start()
    return 
PLUGIN_HANDLED;
}

public 
voteteam_start()
{
    if(
pug_voting) { set_task(get_pcvar_float(pug_cvar_vote_time),"voteteam_start",100 pug_voteteam_menu); return; }

    
pug_voting 1;
    
arrayset(pug_voted,0,33)

    
arrayset(pug_voteteam_votes,0,5)
    
pug_display_menu_all(pug_voteteam_menu)

    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_START""team type");
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_START""team type");

    
set_task(get_pcvar_float(pug_cvar_vote_time),"voteteam_end",100 pug_voteteam_menu)
}

public 
voteteam_end()
{
    
pug_cancel_menu()
    
voteteam_count()

    
pug_voting 0;
    
remove_task 100 pug_voteteam_menu )

    
continue_gen_forward(firsthalf_forward)
}

public 
voteteam_handle(idmenuitem)
{
    if( 
item ) return PLUGIN_CONTINUE;

    static 
accesscallback
    
static cmd[3], name[32], cmdname[32]
 
    
menu_item_getinfo(menuitemaccesscmd,2,cmdname,31callback);
    
pug_voteteam_votes[str_to_num(cmd)]++;

    
get_user_name(id,name,31)
        
    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTED_FOR"namecmdname);
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTED_FOR"namecmdname);

    
pug_voted[id] = 1;
    if(
pug_should_stopvote() ) voteteam_end()
 
    return 
PLUGIN_HANDLED;
}

public 
voteteam_count()
{

    new 
winrar = (pug_voteteam_votes[1] > pug_voteteam_votes[2]) ? 2
    
new winrar2 = (pug_voteteam_votes[3] > pug_voteteam_votes[4]) ? 4
    
    
new allwinrar = (pug_voteteam_votes[winrar] > pug_voteteam_votes[winrar2]) ? winrar winrar2;
    
    switch(
allwinrar)
    {
        case 
1pug_msg_tmp_empty(0,"PUG_VOTETEAM_UNSORT");
        case 
2: { pug_teams_optimize(); pug_msg_tmp_empty(0,"PUG_VOTETEAM_SKILLSORT"); }
        case 
3: { pug_teams_captainsort(); pug_msg_tmp_empty(0,"PUG_VOTETEAM_CAPTAINSORT"); }
        case 
4: { pug_teams_randomize(); pug_msg_tmp_empty(0,"PUG_VOTETEAM_RANDOM"); }
    }
}

public 
pug_teams_captainsort()
{
    
pug_msg_tmp_empty(0,"Captain sort not yet implimented, using random sort");
    
pug_teams_randomize();
}

new 
pug_voteplayers_votes[33]
new 
pug_voteplayers_name[33][32]
new 
pug_voteplayers_count;

public 
assemble_voteplayers_menu()
{
    new 
team_num pug_num_teams()
    new 
upper_limit get_maxplayers() / team_num;

    static 
cmd_name[32], cmd_num[3]

    for(new 
1<= upper_limit; ++i)
    {
        
formatex(cmd_name,31,"%i vs. ",i)
        for(new 
2team_num; ++aformat(cmd_name,31,"%s%i vs ",cmd_name,i)
        
format(cmd_name,31,"%s%i",cmd_name,i)

        
formatex(pug_voteplayers_name[i],31,cmd_name)

        
formatex(cmd_num,2,"%i",i)
        
menu_additem(pug_voteplayers_menu,cmd_name,cmd_num)

        ++
pug_voteplayers_count
    
}
    
menu_setprop(pug_voteplayers_menu,MPROP_EXIT,MEXIT_NEVER)
}

public 
cmd_voteplayers(id,level,cid)
{
    if (!
cmd_access(idlevelcid1) ) return pug_msg_tmp_empty(id,"PUG_CMD_NOTALLOWED")

    
voteplayers_start()
    return 
PLUGIN_HANDLED;
}

public 
voteplayers_start()
{
    if(
pug_voting) { set_task(get_pcvar_float(pug_cvar_vote_time),"voteplayers_start",100 pug_voteplayers_menu); return; }

    
pug_voting 1;
    
arrayset(pug_voted,0,33)

    
pug_voteplayers_menu menu_create("Players:","voteplayers_handle");
    
assemble_voteplayers_menu()

    
arrayset(pug_voteplayers_votes,0,33)
    
pug_display_menu_all(pug_voteplayers_menu)

    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_START""game type");
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_START""game type");

    
set_task(get_pcvar_float(pug_cvar_vote_time) ,"voteplayers_end",100 pug_voteplayers_menu)
}

public 
voteplayers_end()
{
    
pug_cancel_menu()
    
menu_destroy pug_voteplayers_menu )

    
voteplayers_count()

    
pug_voting 0;
    
remove_task 100 pug_voteplayers_menu )
}

public 
voteplayers_handle(idmenuitem)
{
    if( 
item ) return PLUGIN_CONTINUE;

    static 
accesscallback
    
static cmd[3], name[32], cmdname[32]
 
    
menu_item_getinfo(menuitemaccesscmd,2,cmdname,31callback);
    
pug_voteplayers_votes[str_to_num(cmd)]++;

    
get_user_name(id,name,31)
        
    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTED_FOR"namecmdname);
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTED_FOR"namecmdname);

    
pug_voted[id] = 1;
    if(
pug_should_stopvote() ) voteplayers_end()
 
    return 
PLUGIN_HANDLED;
}

public 
voteplayers_count()
{
    new 
winnerwinner_votesvotes

    
for(new 0pug_voteplayers_count; ++i)
    {
        
votes pug_voteplayers_votes[i]
        if(
votes winner_votes) { winner iwinner_votes votes; }
        else if(
votes == winner_votes) if(random_num(0,1)) { winner iwinner_votes votes; }
    }

    if(
pug_voteplayers_votes[winner] == 0) return pug_msg_tmp_empty(0,"PUG_VOTE_FAILED_NOVOTES")

    new 
Floattmp float(pug_get_players()) * get_pcvar_float(pug_cvar_vote_perc
    if( 
pug_voteplayers_votes[winner] < floatround(tmp,floatround_floor) )
    {
        return 
pug_msg_tmp_empty(0,"PUG_VOTE_FAILED_INSUF_VOTES");
    }

    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_WON"pug_voteplayers_name[winner]);
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_WON"pug_voteplayers_name[winner]);

    new 
total_amount pug_num_teams() * winner
    
new upper_limit = (GET_CVAR_MAXPLAYERS() - GET_CVAR_MINPLAYERS()) + total_amount

    SET_CVAR_MAXPLAYERS
(upper_limit)
    
SET_CVAR_MINPLAYERS(total_amount)

    
set_cvar_num("sv_visiblemaxplayers"upper_limit )
    return 
PLUGIN_CONTINUE
}

new 
pug_voterestart_votes[33]
new 
pug_voterestart_name[][] = {"","Yes","No"}
new 
pug_voterestart_count;

public 
cmd_voterestart(id,level,cid)
{
    if (!
cmd_access(idlevelcid1) ) return pug_msg_tmp_empty(id,"PUG_CMD_NOTALLOWED")
    else 
voterestart_start()

    return 
PLUGIN_HANDLED;
}

public 
voterestart_start()
{
    if(
pug_voting) { set_task(get_pcvar_float(pug_cvar_vote_time),"voterestart_start",100 pug_voterestart_menu); return; }

    
pug_voting 1;
    
arrayset(pug_voted,0,33)

    
arrayset(pug_voterestart_votes,0,33)
    
pug_display_menu_all(pug_voterestart_menu)

    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_START""pug restart");
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_START""pug restart");

    
set_task(get_pcvar_float(pug_cvar_vote_time) ,"voterestart_end",100 pug_voterestart_menu)
}

public 
voterestart_end()
{
    
pug_cancel_menu()

    
voterestart_count()

    
pug_voting 0;
    
remove_task 100 pug_voterestart_menu )
}

public 
voterestart_handle(idmenuitem)
{
    if( 
item ) return PLUGIN_CONTINUE;

    static 
accesscallback
    
static cmd[3], name[32], cmdname[32]
 
    
menu_item_getinfo(menuitemaccesscmd,2,cmdname,31callback);
    
pug_voterestart_votes[str_to_num(cmd)]++;

    
get_user_name(id,name,31)
        
    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTED_FOR"namecmdname);
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTED_FOR"namecmdname);

    
pug_voted[id] = 1;
    if(
pug_should_stopvote() ) voterestart_end()
 
    return 
PLUGIN_HANDLED;
}

public 
voterestart_count()
{
    new 
winnerwinner_votesvotes

    
for(new 0pug_voterestart_count; ++i)
    {
        
votes pug_voterestart_votes[i]
        if(
votes winner_votes) { winner iwinner_votes votes; }
        else if(
votes == winner_votes) if(random_num(0,1)) { winner iwinner_votes votes; }
    }

    if(
pug_voterestart_votes[winner] == 0) return pug_msg_tmp_empty(0,"PUG_VOTE_FAILED_NOVOTES")

    new 
Floattmp float(pug_get_players()) * get_pcvar_float(pug_cvar_vote_perc
    if( 
pug_voterestart_votes[winner] < floatround(tmp,floatround_floor) )
    {
        return 
pug_msg_tmp_empty(0,"PUG_VOTE_FAILED_INSUF_VOTES");
    }

    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_WON"pug_voterestart_name[winner]);
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_WON"pug_voterestart_name[winner]);

    if(
winner == 1pug_call_reset()

    return 
PLUGIN_CONTINUE
}


new 
pug_votekick_votes[3]
new 
pug_votekick_name[32]
new 
pug_votekick_reason[50]

public 
cmd_votekick(id,level,cid)
{
    if (!
cmd_access(idlevelcid2) ) return pug_msg_tmp_empty(id,"PUG_CMD_NOTALLOWED")

    
read_argv(1,pug_votekick_name,31)

    new 
target cmd_target(id,pug_votekick_name,1)
    if(!
target) return pug_msg_tmp_empty(id,"PUG_CMD_NOTARGET")
    else 
get_user_name(target,pug_votekick_name,31)
    
    if(
read_argc ( ) > 2read_argv(2,pug_votekick_reason,49)
    else 
formatex(pug_votekick_reason,49,"None")

    
votekick_start()
    return 
PLUGIN_HANDLED;
}

public 
votekick_start()
{
    if(
pug_voting) { set_task(get_pcvar_float(pug_cvar_vote_time),"votekick_start",100 pug_votekick_menu); return; }

    
pug_voting 1;
    
arrayset(pug_voted,0,33)
    
arrayset(pug_votekick_votes,0,3)

    static 
votename[100]
    
formatex(votename,99,"VoteKick: %s (Reason: %s)",pug_votekick_name,pug_votekick_reason)

    
menu_setprop(pug_votekick_menu,MPROP_TITLE,votename)
    
pug_display_menu_all(pug_votekick_menu)

    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_START""kick player");
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_START""kick player");

    
set_task(get_pcvar_float(pug_cvar_vote_time),"votekick_end",100 pug_votekick_menu)
}

public 
votekick_end()
{
    
pug_cancel_menu()
    
votekick_count()

    
pug_voting 0;
    
remove_task 100 pug_votekick_menu )
}

public 
votekick_handle(idmenuitem)
{
    if( 
item ) return PLUGIN_CONTINUE;

    static 
accesscallback
    
static cmd[3], name[32], cmdname[32]
 
    
menu_item_getinfo(menuitemaccesscmd,2,cmdname,31callback);
    
pug_votekick_votes[str_to_num(cmd)]++;

    
get_user_name(id,name,31)
        
    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTED_FOR"namecmdname);
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTED_FOR"namecmdname);

    
pug_voted[id] = 1;
    if(
pug_should_stopvote() ) votekick_end()
 
    return 
PLUGIN_HANDLED;
}

public 
votekick_count()
{
    new 
winner;
    if(
pug_votekick_votes[1] > pug_votekick_votes[2]) winner 1
    
else if(pug_votekick_votes[1] < pug_votekick_votes[2]) winner 2
    
else return pug_msg_tmp_empty(0,"PUG_VOTE_FAILED_TIE");

    if(
pug_votekick_votes[winner] == 0) return pug_msg_tmp_empty(0,"PUG_VOTE_FAILED_NOVOTES")

    new 
Floattmp float(pug_get_players()) * get_pcvar_float(pug_cvar_votekick_perc
    if( 
pug_votekick_votes[winner] < floatround(tmp,floatround_floor) )
    {
        return 
pug_msg_tmp_empty(0,"PUG_VOTE_FAILED_INSUF_VOTES");
    }

    
client_print(0,print_chat,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_WON"pug_voterestart_name[winner]);
    
console_print(0,"%s %L",pug_headerLANG_PLAYER"PUG_VOTE_WON"pug_voterestart_name[winner]);

    if(
winner == 1server_cmd("amx_kick %s %s",pug_votekick_name,pug_votekick_reason)
    
    return 
PLUGIN_HANDLED

jg_20 is offline
Send a message via Skype™ to jg_20
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 19:14.


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