|
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
|

07-25-2018
, 14:03
Re: Data storage
|
#8
|
PHP Code:
#define MAX_ENTS 3
enum _:ItemType { ITEM_POULET, ITEM_SNACK }
enum _:ItemInfo { Item_Name[ 32 ], Item_Id, }
new Array:g_aItems[ 33 ];
public plugin_init( ) { register_clcmd( "say /backpack", "OnBackPack" ); RegisterHam( Ham_Touch, "info_target", "@HamTouch" ); }
public plugin_precache( ) { for( new i; i < 33; i++ ) g_aItems[ i ] = ArrayCreate( ItemInfo ); }
public @HamTouch( iEnt, id ) { if( ! pev_valid( iEnt ) ) return HAM_IGNORED; if( pev( iEnt, pev_effects ) & EF_NODRAW ) return HAM_SUPERCEDE; new szClassName[ 32 ], eData[ ItemType ][ MAX_ENTS ][ ItemInfo ]; pev( iEnt, pev_classname, szClassName, charsmax( szClassName ) ); if( equal( szClassName, "item_poulet" ) ) { for( new i; i < MAX_ENTS; i++ ) { if( ! eData[ ITEM_POULET ][ i ][ Item_Id ] ) { eData[ ITEM_POULET ][ i ][ Item_Id ] = iEnt; eData[ ITEM_POULET ][ i ][ Item_Name ] = iEnt; ArrayPushArray( g_aItems[ id ], eData ); break; } } set_pev( iEnt, pev_effects, pev( iEnt, pev_effects ) | EF_NODRAW ); set_pev( iEnt, pev_solid, SOLID_NOT ); } else if( equal( szClassName, "item_snack" ) ) { for( new i; i < MAX_ENTS; i++ ) { if( ! eData[ ITEM_POULET ][ i ][ Item_Id ] ) { eData[ ITEM_SNACK ][ i ][ Item_Id ] = iEnt; eData[ ITEM_SNACK ][ i ][ Item_Name ] = iEnt; ArrayPushArray( g_aItems[ id ], eData ); break; } } set_pev( iEnt, pev_effects, pev( iEnt, pev_effects ) | EF_NODRAW ); set_pev( iEnt, pev_solid, SOLID_NOT ); } return HAM_IGNORED; }
public OnBackPack( id ) { if( ! is_user_alive( id ) ) return PLUGIN_HANDLED;
new iMenu = menu_create( "Your BackPack", "OnBackPack_Handler" ); new szEntId[ 2 ], eData[ ItemType ][ MAX_ENTS ][ ItemInfo ]; for( new i; i < ArraySize( g_aItems[ id ] ) - 1; i++ ) { ArrayGetArray( g_aItems[ id ], i, eData ); for( new iType=ITEM_POULET; iType <= ITEM_SNACK; iType++ ) { for( new iNum; iNum < MAX_ENTS; iNum++ ) { if( eData[ iType ][ iNum ][ Item_Id ] > 0 ) { num_to_str( iNum, szEntId, charsmax( szEntId ) ); menu_additem( iMenu, eData[ iType ][ iNum ][ Item_Name ], szEntId ); } } } } menu_setprop( iMenu, MPROP_EXIT, MEXIT_ALL ); menu_display( id, iMenu, 0 ); return PLUGIN_CONTINUE; }
public OnBackPack_Handler( id, iMenu, iItem ) { new iAccess, szCount[ 2 ], iCallback, iCount; menu_item_getinfo( iMenu, iItem, iAccess, szCount, charsmax( szCount ), _, _, iCallback ); menu_destroy( iMenu ); iCount = str_to_num( szCount ); new szClassName[ 32 ]; pev( id, pev_classname, szClassName, charsmax( szClassName ) ); new eData[ ItemType ][ MAX_ENTS ][ ItemInfo ]; if( equal( szClassName, "item_poulet" ) ) { if( pev( id, pev_health ) >= 100.0 ) { client_print( id, print_chat, "You can only eat a Poulet when your HP is below 100" ); return PLUGIN_HANDLED; } else { set_pev( id, pev_health, 100.0 ); eData[ ITEM_POULET ][ iCount ][ Item_Id ] = 0; eData[ ITEM_POULET ][ iCount ][ Item_Name ][ 0 ] = EOS; ArraySetArray( g_aItems[ id ], eData ); } } else if( equal( szClassName, "item_snack" ) ) { if( pev( id, pev_health ) > 75.0 ) { client_print( id, print_chat, "You can only eat a Snack when your HP is below 75" ); return PLUGIN_HANDLED; } else { set_pev( id, pev_health, pev( id, pev_health ) + 25.0 ); eData[ ITEM_POULET ][ iCount ][ Item_Id ] = 0; eData[ ITEM_POULET ][ iCount ][ Item_Name ][ 0 ] = EOS; ArraySetArray( g_aItems[ id ], eData ); } } return PLUGIN_CONTINUE; }
Errors:
Code:
(115) : error 048: array dimensions do not match
(134) : error 048: array dimensions do not match
(158) : error 048: array dimensions do not match
(207) : error 035: argument type mismatch (argument 2)
(226) : error 035: argument type mismatch (argument 2)
Line 115
PHP Code:
ArrayPushArray( g_aItems[ id ], eData );
Line 132
PHP Code:
ArrayPushArray( g_aItems[ id ], eData );
Line 158
PHP Code:
ArrayGetArray( g_aItems[ id ], i, eData );
Line 207
PHP Code:
ArraySetArray( g_aItems[ id ], eData );
Line 226
PHP Code:
ArraySetArray( g_aItems[ id ], eData );
__________________
|
|