I don't get it.
I solved the problem by switching to old style menu, but still i want to know how to solve this problem.
Code:
public show_BonusMenu( id )
{
new iMenu = menu_create( "Sta zelis da razvijas kod ratnika?", "handle_BonusMenu" );
new cb = menu_makecallback( "callback_BonusMenu" );
new szOption[ 64 ];
for( new i = 0; i < sizeof g_szBonusNames; i++ )
{
if( CheckMaxPoint( id, i ) )
formatex( szOption, charsmax( szOption ), "%s ( Razvio si do max )", g_szBonusNames[ i ] );
else
formatex( szOption, charsmax( szOption ), "%s ( Razvijas do %d poena )", g_szBonusNames[ i ], g_iMaxSkill[ i ] );
menu_additem( iMenu, szOption, _, _, cb );
}
menu_setprop( iMenu, MPROP_EXIT, MEXIT_NEVER );
menu_display( id, iMenu, 0 );
}
public callback_BonusMenu( id, menu, item )
{
if( item == ( CheckSkill( id ) - 1 ) || CheckMaxPoint( id, item ) )
return ITEM_DISABLED;
return ITEM_ENABLED;
}
public handle_BonusMenu( id, menu, item )
{
menu_destroy( menu );
g_bOpenedMenu[ id ] = false;
g_iSkill[ id ] = 0;
switch( item )
{
case 0: g_iSkill[ id ] |= ENERGY;
case 1: g_iSkill[ id ] |= GRAVITY;
case 2: g_iSkill[ id ] |= SPEED;
case 3: g_iSkill[ id ] |= ATTACK;
case 4: g_iSkill[ id ] |= DEFENCE;
}
ColorChat( id, RED, "[ MnE ] ^4Izabrao si %s za razvijanje.", g_szBonusNames[ item ] )
}
CheckMaxPoint( id, Skill )
{
switch( Skill )
{
case 0: return g_iUserEnergy[ id ] >= g_iMaxSkill[ Skill ] ? true : false
case 1: return g_iUserGravity[ id ] >= g_iMaxSkill[ Skill ] ? true : false
case 2: return g_iUserSpeed[ id ] >= g_iMaxSkill[ Skill ] ? true : false
case 3: return g_iUserAttack[ id ] >= g_iMaxSkill[ Skill ] ? true : false
case 4: return g_iUserDefence[ id ] >= g_iMaxSkill[ Skill ] ? true : false
}
return true
}
CheckSkill( id )
{
return g_iSkill[ id ] & ENERGY ? 1 : g_iSkill[ id ] & GRAVITY ? 2 : g_iSkill[ id ] & SPEED ? 3 : g_iSkill[ id ] & ATTACK ? 4 : g_iSkill[ id ] & DEFENCE ? 5 : 0
}