#include <amxmodx>
enum _: eItemInfos { sItemName[ 32 ], sWeapName[ 32 ], sModel[ 64 ] };
new Array: g_daMenuItems, g_iItem[ eItemInfos ];
new g_iArraySize;
new g_sFile[ 128 ];
public plugin_init( )
{
register_plugin( "", "1.0", "Demon" );
g_daMenuItems = ArrayCreate( eItemInfos );
new configsDir[ 64 ];
get_localinfo( "amxx_configsdir", configsDir, charsmax( configsDir ) );
formatex( g_sFile, charsmax( g_sFile ), "%s/blablabla.ini", configsDir );
LoadItems( );
register_clcmd( "say /menu", "ShowMenu" );
}
public ShowMenu( iId )
{
new sTxt[ 256 ], sItemId[ 4 ];
new iMenuId = menu_create( "Menu", "MainMenuH" );
for (new i; i < g_iArraySize; ++i)
{
ArrayGetArray( g_daMenuItems, i, g_iItem );
num_to_str( i, sItemId, charsmax( sItemId ) );
formatex( sTxt, charsmax( sTxt ), "%s", g_iItem[ sItemName ] );
menu_additem( iMenuId, sTxt, sItemId );
}
menu_display( iId, iMenuId, 0 );
}
public MainMenuH( iId, iMenuId, iItem )
{
if ( iItem == MENU_EXIT )
{
menu_destroy( iMenuId );
return PLUGIN_HANDLED;
}
new sMenuName[ 78 ], sInfo[ 32 ], iKey, iMenuNum;
menu_item_getinfo( iMenuId, iItem, iKey, sInfo, charsmax( sInfo ), sMenuName, charsmax( sMenuName ), iMenuNum );
iKey = str_to_num( sInfo );
ArrayGetArray( g_daMenuItems, iKey, g_iItem );
client_print( iId, print_chat, "Kivalasztottad: %s %s %s", g_iItem[ sItemName ], g_iItem[ sWeapName ], g_iItem[ sModel ]);
return PLUGIN_HANDLED;
}
public LoadItems( )
{
new pFile = fopen( g_sFile, "rt" );
if ( pFile )
{
new sLine[ 200 ];
new s[3][64];
while ( !feof( pFile ) )
{
fgets( pFile, sLine, 199 );
if ( sLine[ 0 ] == ';' || strlen( sLine ) < 5 )
continue;
parse( sLine, s[ 0 ], 63, s[ 1 ], 63, s[ 2 ], 63 );
copy( g_iItem[ sItemName ], charsmax( g_iItem[ sItemName ] ), s[ 0 ] );
copy( g_iItem[ sWeapName ], charsmax( g_iItem[ sWeapName ] ), s[ 1 ] );
copy( g_iItem[ sModel ], charsmax( g_iItem[ sModel ] ), s[ 2 ] );
ArrayPushArray( g_daMenuItems, g_iItem );
}
fclose( pFile );
}
g_iArraySize = ArraySize( g_daMenuItems );
}
public plugin_end( )
{
ArrayDestroy( g_daMenuItems );
}