Thread: ZP VIP System
View Single Post
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 11-09-2019 , 06:26   Re: ZP VIP System
Reply With Quote #6

Quote:
Originally Posted by riste.kgb View Post
I'm not copy/pasting the codes. I'll look at this problem with precaching.
Yes, I'm blind, you're right.

Ur plugin:
PHP Code:
enum _:PlayerData
{
    
Player_IDMAX_NAME_LENGTH ],
    
Player_PasswordMAX_PASSWORD_LENGTH ],
    
Player_AccessFlagsMAX_FLAGS_LENGTH ],
    
Player_ExpireDateMAX_DATE_LENGTH ],
    
Player_ModelCTMAX_NAME_LENGTH ],
    
Player_ModelTMAX_NAME_LENGTH ],
    
bool:Player_Expired,
    
bool:Player_Suspended

EAS:
PHP Code:
enum _:PlayerData
{
    
Player_IDMAX_NAME_LENGTH ],
    
Player_PasswordMAX_PASSWORD_LENGTH ],
    
Player_AccessFlagsMAX_FLAGS_LENGTH ],
    
Player_Prefix32 ],
    
Player_Model_T64 ],
    
Player_Model_CT64 ],
    
Player_Expire_DateMAX_DATE_LENGTH ],
    
Player_FlagsExpireMAX_FLAGS_LENGTH ],
    
Player_Immunity,
    
bool:Player_Suspended,
    
bool:Player_Expired,
    
bool:Player_KeepPrivileges

ur plugin:
PHP Code:
public plugin_precache(){

    
g_playerData ArrayCreate(PlayerData);
    
    
ReloadFile();
    
    new 
iPlayer[PlayerData];
    for(new 
iArraySize(g_playerData); i++
    {
        
ArrayGetArray(g_playerData,i,iPlayer)
        new 
szModel[64]
        if(
iPlayer[Player_ModelCT][0]
                {
                    
formatex(szModel,charsmax(szModel),"models/player/%s/%s.mdl",iPlayer[Player_ModelCT],iPlayer[Player_ModelCT])
                    
precache_model(szModel)
                }
                if(
iPlayer[Player_ModelT][0])
        {
            
formatex(szModel,charsmax(szModel),"models/player/%s/%s.mdl",iPlayer[Player_ModelT],iPlayer[Player_ModelT])
            
precache_model(szModel)
        }
        break;
    }

EAS (older version):
PHP Code:
public plugin_precache( )
{    
    
g_aDatabase ArrayCreatePlayerData );
    
g_aCommands ArrayCreateCommands );

    
ReloadFile( );

    new 
eDataPlayerData ], szModel64 ];
    for( new 
iArraySizeg_aDatabase ); i++ )
    {
        
ArrayGetArrayg_aDatabaseieData );
        
        if( 
eDataPlayer_Model_T ][ ] )
        {
            
formatexszModelcharsmaxszModel ), "models/player/%s/%s.mdl"eDataPlayer_Model_T ], eDataPlayer_Model_T ] );
            
precache_modelszModel );
        }
        
        if( 
eDataPlayer_Model_CT ][ ] )
        {
            
formatexszModelcharsmaxszModel ), "models/player/%s/%s.mdl"eDataPlayer_Model_CT ], eDataPlayer_Model_CT ] );
            
precache_modelszModel );
        }
    }

ur plugin:
PHP Code:
ReloadFile()
{
    
ArrayClear(g_playerData)
    new 
szFile[64],szPlayersData[512],eData[PlayerData];
    
formatex(szFile,charsmax(szFile),"%s/vips.ini",g_szConfig)
    new 
iFile fopen(szFile,"rt")
    
    if(!
iFile)
    {
        
log_amx("File not found: %s"szFile);
    }
    
    if(
iFile)
    {
        while(
fgets(iFile,szPlayersData,charsmax(szPlayersData)))
        {
            
trim(szPlayersData)
            switch(
szPlayersData[0])
            {
            case 
EOS,'#','/','\':
                {
                    continue;
                }

                default:
                {
                    parse(szPlayersData,eData[Player_ID],charsmax(eData[Player_ID]),eData[Player_Password],charsmax(eData[Player_Password]),eData[Player_AccessFlags],charsmax(eData[Player_AccessFlags]),eData[Player_ExpireDate],charsmax(eData[Player_ExpireDate]),eData[Player_ModelCT],charsmax(eData[Player_ModelCT]),eData[Player_ModelT],charsmax(eData[Player_ModelT]))
            
                    if(szPlayersData[0] == '
;')
                    {
                        eData[Player_Suspended] = true;
                        replace(eData[Player_ID],charsmax(eData[Player_ID]),";","");
                    }
            
                    if(eData[Player_ExpireDate][0])
                    {
                        if(HasVipExpired(eData[Player_ExpireDate]))
                        {
                            eData[Player_Expired] = true;
                        }
                    }
                    ArrayPushArray(g_playerData,eData)
                    arrayset(eData,0,sizeof(eData))
                }
            }
        }
        fclose(iFile);
    }

EAS:
PHP Code:
ReloadFile( )
{
    
ArrayClearg_aDatabase );

    new 
szFormat64 ], szPlayerData512 ], eDataPlayerData ];
    
formatexszFormatcharsmaxszFormat ), "%s/%s"g_szConfigsDirg_iConfigUSERS_FILE ] );
    
    new 
iFile fopenszFormat"rt" );
    
    if( 
iFile )
    {
        while( 
fgetsiFileszPlayerDatacharsmaxszPlayerData ) ) )
        {
            
trimszPlayerData );
            
            switch( 
szPlayerData] )
            {
            case 
EOS'#''/''\':
                {
                    continue;
                }
                
            default:
                {
                    new szImmunity[ 8 ], szKeepPrivileges[ 3 ];
                    if( parse( szPlayerData, eData[ Player_ID ], charsmax( eData[ Player_ID ] ), eData[ Player_Password ], charsmax( eData[ Player_Password ] ), eData[ Player_AccessFlags ], charsmax( eData[ Player_AccessFlags ] ),
                                eData[ Player_Prefix ], charsmax( eData[ Player_Prefix ] ), eData[ Player_Model_T ], charsmax( eData[ Player_Model_T ] ), eData[ Player_Model_CT ], charsmax( eData[ Player_Model_CT ] ), szImmunity, charsmax( szImmunity ),
                                eData[ Player_Expire_Date ], charsmax( eData[ Player_Expire_Date ] ), eData[ Player_FlagsExpire ], charsmax( eData[ Player_FlagsExpire ] ), szKeepPrivileges, charsmax( szKeepPrivileges ) ) < 10 )
                    {
                        continue;
                    }
                    
                    if( szPlayerData[ 0 ] == '
;' )
                    {
                        eData[ Player_Suspended ] = true;
                        replace( eData[ Player_ID ], charsmax( eData[ Player_ID ] ), ";", "" );
                    }
                    
                    if( eData[ Player_Expire_Date ][ 0 ] )
                    {
                        if( HasAdminExpired( eData[ Player_Expire_Date ] ) )
                        {
                            eData[ Player_Expired ] = true;
                        }
                    }
                    
                    // we don'
t want to use models that don't exist
                    if( eData[ Player_Model_T ][ 0 ] )
                    {
                        if( ! ModelExists( eData[ Player_Model_T ] ) )
                        {
                            eData[ Player_Model_T ][ 0 ] = EOS;
                        }
                    }
                    
                    if( eData[ Player_Model_CT ][ 0 ] )
                    {
                        if( ! ModelExists( eData[ Player_Model_CT ] ) )
                        {
                            eData[ Player_Model_CT ][ 0 ] = EOS;
                        }
                    }
                    
                    new iImmunity = str_to_num( szImmunity );
                    eData[ Player_Immunity ] = ( ! is_str_num( szImmunity ) || iImmunity < 0 ) ? 0 : iImmunity;
                    
                    new iKeepPrivileges = str_to_num( szKeepPrivileges );
                    eData[ Player_KeepPrivileges ] = bool:( ( ! is_str_num( szKeepPrivileges ) || !( 0 <= iKeepPrivileges <= 1 ) ) ? 0 : iKeepPrivileges );
                    
                    ArrayPushArray( g_aDatabase, eData );
                    arrayset( eData, 0, sizeof( eData ) );
                }
            }
        }
        fclose( iFile );
    }

You didn't even re-name the variables..
__________________

Last edited by edon1337; 11-09-2019 at 06:30.
edon1337 is offline