Raised This Month: $ Target: $400
 0% 

Solved Data storage


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 07-25-2018 , 14:03   Re: Data storage
Reply With Quote #8

PHP Code:
#define MAX_ENTS 3

enum _:ItemType
{
    
ITEM_POULET,
    
ITEM_SNACK
}

enum _:ItemInfo
{
    
Item_Name32 ],
    
Item_Id,
}

new Array:
g_aItems33 ];

public 
plugin_init( )
{
    
register_clcmd"say /backpack""OnBackPack" );
    
    
RegisterHamHam_Touch"info_target""@HamTouch" );
}

public 
plugin_precache( )
{    
    for( new 
i33i++ )
    
g_aItems] = ArrayCreateItemInfo );
}

public @
HamTouchiEntid )
{
    if( ! 
pev_validiEnt ) )
    return 
HAM_IGNORED;
    
    if( 
peviEntpev_effects ) & EF_NODRAW )
    return 
HAM_SUPERCEDE;
    
    new 
szClassName32 ], eDataItemType ][ MAX_ENTS ][ ItemInfo ];
    
peviEntpev_classnameszClassNamecharsmaxszClassName ) );
    
    if( 
equalszClassName"item_poulet" ) )
    {        
        for( new 
iMAX_ENTSi++ )
        {
            if( ! 
eDataITEM_POULET ][ ][ Item_Id ] )
            {
                
eDataITEM_POULET ][ ][ Item_Id ] = iEnt;
                
eDataITEM_POULET ][ ][ Item_Name ] = iEnt;
                
                
ArrayPushArrayg_aItemsid ], eData );
                
                break;
            }
        }
        
        
set_peviEntpev_effectspeviEntpev_effects ) | EF_NODRAW );
        
set_peviEntpev_solidSOLID_NOT );
    }
    
    else if( 
equalszClassName"item_snack" ) )
    {        
        for( new 
iMAX_ENTSi++ )
        {
            if( ! 
eDataITEM_POULET ][ ][ Item_Id ] )
            {
                
eDataITEM_SNACK ][ ][ Item_Id ] = iEnt;
                
eDataITEM_SNACK ][ ][ Item_Name ] = iEnt;
                
                
ArrayPushArrayg_aItemsid ], eData );
                
                break;
            }
        }
        
        
set_peviEntpev_effectspeviEntpev_effects ) | EF_NODRAW );
        
set_peviEntpev_solidSOLID_NOT );
    }
    
    return 
HAM_IGNORED;
}

public 
OnBackPackid )
{
    if( ! 
is_user_aliveid ) )
    return 
PLUGIN_HANDLED;

    new 
iMenu menu_create"Your BackPack""OnBackPack_Handler" );
    
    new 
szEntId], eDataItemType ][ MAX_ENTS ][ ItemInfo ];
    
    for( new 
iArraySizeg_aItemsid ] ) - 1i++ )
    {
        
ArrayGetArrayg_aItemsid ], ieData );
        
        for( new 
iType=ITEM_POULETiType <= ITEM_SNACKiType++ )
        {
            for( new 
iNumiNum MAX_ENTSiNum++ )
            {
                if( 
eDataiType ][ iNum ][ Item_Id ] > )
                {
                    
num_to_striNumszEntIdcharsmaxszEntId ) );
                    
menu_additemiMenueDataiType ][ iNum ][ Item_Name ], szEntId );
                }
            }
        }
    }
    
    
menu_setpropiMenuMPROP_EXITMEXIT_ALL );
    
menu_displayidiMenu);
    
    return 
PLUGIN_CONTINUE;
}

public 
OnBackPack_HandleridiMenuiItem )
{
    new 
iAccessszCount], iCallbackiCount;
    
menu_item_getinfoiMenuiItemiAccessszCountcharsmaxszCount ), __iCallback );
    
menu_destroyiMenu );
    
    
iCount str_to_numszCount );
    
    new 
szClassName32 ];
    
pevidpev_classnameszClassNamecharsmaxszClassName ) );
    
    new 
eDataItemType ][ MAX_ENTS ][ ItemInfo ];
    
    if( 
equalszClassName"item_poulet" ) )
    {
        if( 
pevidpev_health ) >= 100.0 )
        {
            
client_printidprint_chat"You can only eat a Poulet when your HP is below 100" );
            return 
PLUGIN_HANDLED;
        }
        
        else
        {
            
set_pevidpev_health100.0 );
            
            
eDataITEM_POULET ][ iCount ][ Item_Id ] = 0;
            
eDataITEM_POULET ][ iCount ][ Item_Name ][ ] = EOS;
            
            
ArraySetArrayg_aItemsid ], eData );    
        }
    }
    
    else if( 
equalszClassName"item_snack" ) )
    {
        if( 
pevidpev_health ) > 75.0 )
        {
            
client_printidprint_chat"You can only eat a Snack when your HP is below 75" );
            return 
PLUGIN_HANDLED;
        }
        
        else
        {
            
set_pevidpev_healthpevidpev_health ) + 25.0 );
            
            
eDataITEM_POULET ][ iCount ][ Item_Id ] = 0;
            
eDataITEM_POULET ][ iCount ][ Item_Name ][ ] = EOS;
            
            
ArraySetArrayg_aItemsid ], 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:
ArrayPushArrayg_aItemsid ], eData ); 
Line 132
PHP Code:
ArrayPushArrayg_aItemsid ], eData ); 
Line 158
PHP Code:
ArrayGetArrayg_aItemsid ], ieData ); 
Line 207
PHP Code:
ArraySetArrayg_aItemsid ], eData ); 
Line 226
PHP Code:
ArraySetArrayg_aItemsid ], eData ); 
__________________
edon1337 is offline
 



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 12:23.


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