Everything works perfect, except for the thing where if I go to the second page of the menu, then it goes back to the first page whenever the thing resets.
I tried saving their current page whenever the menu exits, whenever they press "Next" or whenever they press "Back", and displaying that page whenever the menu opens, but it just keeps going back to the first page.
Here's my code:
PHP Code:
public StartDayVote() // This function starts the whole process.
{
gTimeLeft = gVoteTime;
ShowDayMenu();
set_task( 1.0, "MainDayCountdown", .flags="a", .repeat=10 );
}
public MainDayCountdown()
{
gTimeLeft--;
if( gTimeLeft > 0 )
{
ShowDayMenu();
}
else
{
DayVoteEnded();
}
}
public ShowDayMenu()
{
if( gMainMenu )
menu_destroy( gMainMenu );
if( !( gTimeLeft > 0) )
return;
new szBuffer[32];
formatex( szBuffer, charsmax( szBuffer ), "Choose A Day: [%i]", gTimeLeft );
gMainMenu = menu_create( szBuffer, "menuHandler" );
// Build Menu
new szNum[3];
for( new i = 0; i < gTotalOptions; i++ )
{
num_to_str( i, szNum, charsmax( szNum ) );
format( szBuffer, charsmax( szBuffer ), "%s [Votes: %i]", gDaymenuOptions[i], gMainDayVotes[i] );
menu_additem( gMainMenu, szBuffer, szNum);
}
// Show Menu
new players[32], num, player;
get_players( players, num );
for( new i = 0; i < num; i++ )
{
player = players[i];
menu_display( player, gMainMenu, gCurrentPage[player] );
}
}
public menuHandler( id, menu, item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
else if( item == MENU_MORE )
{
gCurrentPage[id] = 1;
menu_destroy( menu );
return PLUGIN_HANDLED;
}
else if( item == MENU_BACK )
{
gCurrentPage[id] = 0;
menu_destroy( menu );
return PLUGIN_HANDLED;
}
else if( gHasVoted[id] )
{
client_print( id, print_chat, "[Jailbreak] You have already voted." );
return PLUGIN_HANDLED;
}
else if( cs_get_user_team( id ) != CS_TEAM_CT )
{
ColorChat( id, NORMAL, "[Jailbreak] You must be a ^03Counter-Terrorist ^01to vote." );
return PLUGIN_HANDLED;
}
new _access, callback;
new data[6];
menu_item_getinfo( menu, item, _access, data, 5, "", 0, callback );
gMainDayVotes[str_to_num( data )]++;
gHasVoted[id] = true;
return PLUGIN_HANDLED;
}
public DayVoteEnded()
{
if( gMainMenu )
menu_destroy( gMainMenu );
show_menu( 0, 0, "^n", 1 );
TallyDayVotes();
}
__________________