[Creez] Sisteme VIP

Anunturi legate de vanzari/cumparari.
*Nu suntem responsabili de tranzactiile efectuate intre membri. Utilizatorii sunt sfatuiti sa-si ia maximul de precautii inainte de finalizarea unei tranzactii pentru a preveni posibilitatea unei inselaciuni.

Moderators: Moderatori ajutatori, Moderatori

Post Reply
#Vali
Fost moderator
Fost moderator
Posts: 2611
Joined: 24 Jan 2012, 11:00
Detinator Steam: Da
SteamID: id/spryt3
Reputatie: Fost Moderator
Fost Scripter eXtreamCS.com
1.2 / 3
Location: root
Has thanked: 81 times
Been thanked: 144 times
Contact:

10 Jul 2014, 15:52

Ce ofer:
-> Posibilitatea de seta conturile vip dintr-un fisier .
-> Mesaj conectare/deconectare.
-> VIP SCOREBOARD
-> Creeare vip free intre anumite ore.
-> Suppor 30 de zile pentru eventualele bug-uri aparute

[*][/b][/color] Creez sisteme vip pentru toate modurile :)
[*][/color][/b] Pretul variaza in functie de cerintele clientului. Pret de start: 5 euro.
[*][/color][/b] Modalitati de plata:
- sms [peste 10 euro]
-bancar
-cod reincarcare
-paysafecard
[*] [/b][/color]Timp de lucru : 1-2 zile
[*][/color] Comenzi: prin pme[/b]
RoyalServer 2
User avatar
Carnacior
Membrul anului 2016
Membrul anului 2016
Posts: 1762
Joined: 23 Jun 2013, 14:08
Detinator Steam: Da
CS Status: I eat more pussy than cervical cancer
Detinator server CS: jb.b-zone.ro
SteamID: -
Reputatie: Fost Scripter eXtreamCS
Membrul anului 2016
Membru Club eXtreamCS (1 iul )
Location: Targu Mures
Has thanked: 5 times
Been thanked: 13 times
Contact:

10 Jul 2014, 17:41

te rog specifica limitatia VIPului din scoreboard
daca nu stii despre ce vorbesc, nu recomand

altfel, whatever, fie, nu e mare lucru ceea ce faci
Ai nevoie de o protectie pentru server? R4GE Server Guard
Cel mai avansat si folosit plugin de protectie romanesc public! Nu ma crezi? VERIFICA


http://www.facebook.com/xyz.aron
Follow me for random bullshit and possibly interesting updates
Skype @ xyz_aron


Image
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

10 Jul 2014, 18:04

Oricum, exista ceva asemanator (ceea ce oferi tu) cu ce am facut eu in Addons-ul meu de Biohazard v3.1. Si contine o gramada de beneficii, totul se seteaza prin cvar-uri :D !
bio_vip_system.sma | Afiseaza codul
[code=php]#include < amxmodx >
#include < amxmisc >
#include < hamsandwich >
#include < fakemeta >
#include < biohazard >

#define is_user_player(%1) ( 1 <= %1 <= g_iMaxPlayers )

new const 
    PLUGIN_AUTHOR[  ] = "YONTU",
    PLUGIN_NAME[  ] = "[Bio] Addon: VIP System";

// from fakemeta util
#if cellbits == 32
const OFFSET_CSMONEY = 115;
#else
const OFFSET_CSMONEY = 140;
#endif
const OFFSET_LINUX  = 5;

enum {

        SCOREATTRIB_ARG_PLAYERID = 1,
        SCOREATTRIB_ARG_FLAGS
};

enum ( <<= 1 ) {

        SCOREATTRIB_FLAG_NONE = 0,
        SCOREATTRIB_FLAG_DEAD = 1,
        SCOREATTRIB_FLAG_BOMB,
        SCOREATTRIB_FLAG_VIP
};

enum _:WhatUserHas {

    Speed,
    Jump
}
new bool:g_bUserHas[ 33 ][ WhatUserHas ];

new     g_cvar_speed_spawn,
    g_cvar_health_spawn,
    g_cvar_armor_spawn,
    g_cvar_multidmg,
    g_cvar_health_kill_reward,
    g_cvar_health_hs_reward,
    g_cvar_maxhealth,
    g_cvar_kill_money_reward,
    g_cvar_enable_show_dmg,
    g_cvar_ebable_vip_scoreboard,
    g_cvar_enable_vip_noflash,
    g_cvar_enable_vip_multijump;

new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;

new iJumpNum[ 33 ] = 0;
new g_iMultiJumps[ 33 ] = 0;
new g_iMaxJumps = 0;

new IsUserVip[ 33 ];

new szVipsList[ 128 ][ 32 ];
new szTotalLines;
new szNameVipList[  ] = "vips_list.ini";
new szFile2[ 128 ];    

new g_iMaxPlayers;
new SyncHudMessage;

public plugin_init(  ) {

    register_plugin( PLUGIN_NAME, BIOHAZARD_VERSION, PLUGIN_AUTHOR );
    is_biomod_active(  ) ? plugin_init2(  ) : pause( "ad" );
}

public plugin_init2(  ) {

    register_clcmd( "say /vip", "ShowAbilityForVip" );
    register_clcmd( "say_team /vip", "ShowAbilityForVip" );

    register_clcmd( "say /vips", "ShowVipsOnline" );
    register_clcmd( "say_team /vips", "ShowVipsOnline" );

    register_concmd( "amx_addvip", "ConCmdAddVip", ADMIN_RCON, " < nume > - adauga un vip" );
    register_concmd( "amx_vips", "ConCmdVipsList", ADMIN_RCON, "vezi lista vip-urilor" );

    register_event( "DeathMsg", "event_DeathMsg", "a" );
    register_event( "DeathMsg", "event_DeathMsg2", "ae" );
    register_event( "Damage", "event_Damage", "b", "2!0", "3=0", "4!0" );

    register_logevent( "logevent_RoundStart", 2 , "1=Round_Start" );
    register_logevent( "logevent_RoundEnd", 2, "1=Round_End" );

    register_forward( FM_PlayerPreThink, "forward_PlayerPreThink" );
    register_forward( FM_PlayerPostThink, "forward_PlayerPostThink" );

    RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", 1 );
    RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamagePre" );
    RegisterHam( Ham_Player_ResetMaxSpeed, "player", "Ham_ResetMaxSpeedPost", 1 );

        register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
    register_message( get_user_msgid( "ScreenFade" ), "MessageScreenFade" );

    g_cvar_speed_spawn = register_cvar( "vip_speed_spawn", "500.0" );        // viteza pe care o primeste vip-ul la spawn( sa fie cu zecimala.0 )
    g_cvar_health_spawn = register_cvar( "vip_health_spawn", "200" );        // viata pe care o primeste vip-ul la spawn
    g_cvar_armor_spawn = register_cvar( "vip_armor_spawn", "150" );        // armura pe care o primeste vip-ul la spawn
    g_cvar_multidmg = register_cvar( "vip_multi_dmg", "1.5" );        // vip-ul are dmg mai mare la toate armele
    g_cvar_health_kill_reward = register_cvar( "vip_hp_kill_reward", "25" );    // cata viata sa primeasca vip-ul cand face un kill
    g_cvar_health_hs_reward = register_cvar( "vip_hp_hs_reward", "50" );    // cata viata sa primeasca vip-ul cand face un headshot
    g_cvar_maxhealth = register_cvar( "vip_maxhealth", "300" );        // viata maxima a vip-ului
    g_cvar_kill_money_reward = register_cvar( "vip_kill_money", "1000" );    // Cati bani sa primeasca Vip-ul pe un frag
    g_cvar_enable_show_dmg = register_cvar( "vip_show_dmg", "1" );        // afiseaza vip-ului dmg-ul facut de victima si dmg-ul pe care i la facut victimei
    g_cvar_ebable_vip_scoreboard = register_cvar( "vip_on_scoreboard", "1" );    // 1 - vip-ii apar in scoreboard ca "VIP" | 0 - dezactivat
    g_cvar_enable_vip_noflash = register_cvar( "vip_imune_flashbang", "1" );    // 1 - Vip-ul este imun la flash-uri | 0 - Nu este
    g_cvar_enable_vip_multijump = register_cvar( "vip_enable_multijump", "0" );    // 1 - Vip-ul beneficiaza de multi jump | 0 - Nu beneficiaza

    new szFile[ 64 ]
    get_configsdir( szFile, 63 );
    format( szFile, 63, "%s/vip_system.cfg", szFile );

    if( file_exists( szFile ) )
        server_cmd( "exec %s", szFile );

    g_iMaxPlayers = get_maxplayers(  );
    SyncHudMessage = CreateHudSyncObj(  );
}

public plugin_cfg(  ) {

    new DirectorCfg[ 64 ];
    get_configsdir( DirectorCfg, charsmax( DirectorCfg ) );

    formatex( szFile2, charsmax( szFile2 ), "%s/%s", DirectorCfg, szNameVipList );

    if( !file_exists( szFile2 ) )
        write_file( szFile2, "; --- | Aici sunt adaugati membrii V.I.P | --- " );

    // thx husky for this 'while'
    new szBuffer[ 192 ], szLine, iLen;
    while( ( szLine = read_file( szFile2, szLine, szBuffer, charsmax( szBuffer ), iLen ) ) ) {

        if( !strlen( szBuffer ) || szBuffer[ 0 ] == ';' || ( szBuffer[ 0 ] == '/' && szBuffer[ 1 ] == '/' ) )
            continue;

        copy( szVipsList[ szTotalLines++ ], 32, szBuffer );
    }

    set_cvar_float( "sv_maxspeed", 1000.0 );
}

public plugin_natives(  )
        register_native( "is_user_vip", "native_get_vip", 1 );

public native_get_vip( id ) {

    if( !is_user_player( id ) )
        return false;

    if( !is_user_vip( id ) )
        return false;

    if( !is_user_vip( id ) )
        IsUserVip[ id ] = 0;
    else
        IsUserVip[ id ] = 1;

    return IsUserVip[ id ];
}

public client_putinserver( id ) {

    g_iMultiJumps[ id ] = 0;
    iJumpNum[ id ] = 0;
    g_bUserHas[ id ][ Jump ] = false;
    g_bUserHas[ id ][ Speed ] = false;
}

public client_disconnect( id ) {

    g_iMultiJumps[ id ] = 0;
    iJumpNum[ id ] = 0;
    g_bUserHas[ id ][ Jump ] = false;
    g_bUserHas[ id ][ Speed ] = false;
}

public event_infect( Victim, Attacker ) {

    if( is_user_zombie( Victim ) || is_user_zombie( Attacker ) ) {

        IsUserVip[ Victim ] = 0;
        return 1;
    }

    IsUserVip[ Victim ] = 0;
    g_iMultiJumps[ Victim ] = 0;
    iJumpNum[ Victim ] = 0;
    g_bUserHas[ Victim ][ Jump ] = false;
    g_bUserHas[ Victim ][ Speed ] = false;

    return 0;
}

public event_DeathMsg(  ) {

    new iAttacker = read_data( 1 );
    new iVictim = read_data( 2 );
    new iHeadshot = read_data( 3 );

    if( iAttacker == iVictim )
        return 0;

    if( is_user_zombie( iAttacker ) ) {

        IsUserVip[ iAttacker ] = 0;
        return 1;
    }

    if( !is_user_vip( iAttacker ) ) {

        IsUserVip[ iAttacker ] = 0;
        return 1;
    }

    if( is_user_vip( iAttacker ) && is_user_zombie( iVictim ) && iAttacker != iVictim ) {
        
        if( fm_get_user_health( iAttacker ) <= get_pcvar_num( g_cvar_maxhealth ) ) {

            if( iHeadshot ) {

                fm_set_user_health( iAttacker, fm_get_user_health( iAttacker ) + get_pcvar_num( g_cvar_health_hs_reward ) );
            } else {

                fm_set_user_health( iAttacker, fm_get_user_health( iAttacker ) + get_pcvar_num( g_cvar_health_kill_reward ) );
            }
        }

    }

    g_bUserHas[ iVictim ][ Jump ] = false;
    g_bUserHas[ iVictim ][ Speed ] = false;

    IsUserVip[ iAttacker ] = 1;

    return 0;
}

public event_DeathMsg2(  ) {

    new iAttacker = read_data( 1 ); 
    new iVictim = read_data( 2 );
    
    if( iAttacker == iVictim )
        return 0;

    if( !is_user_alive( iAttacker ) )
        return 1;

    if( is_user_zombie( iAttacker ) ) {

        IsUserVip[ iAttacker ] = 0;
        return 1;
    }

    if( !is_user_vip( iAttacker ) ) {

        IsUserVip[ iAttacker ] = 0;
        return 1;
    }

    if( is_user_vip( iAttacker ) && is_user_zombie( iVictim ) ) {

        if( fm_get_user_money( iAttacker ) < 16000 - get_pcvar_num( g_cvar_kill_money_reward ) - 300 ) {

            fm_set_user_money( iAttacker, fm_get_user_money( iAttacker ) + get_pcvar_num( g_cvar_kill_money_reward ) - 300 );
        }
    }

    IsUserVip[ iAttacker ] = 1;

    return 0;
}

// thx Sniffer. for this event
public event_Damage( id ) {

    if( get_pcvar_num( g_cvar_enable_show_dmg ) > 0 ) {

        static iAttacker;
        static fDamage;

        iAttacker = get_user_attacker( id );
        fDamage = read_data( 2 );

        if( is_user_vip( iAttacker ) ) {

            IsUserVip[ iAttacker ] = 1;
            
            if( is_user_alive( id ) && is_user_vip( id ) ) {
            
                set_hudmessage( 255, 0, 0, 0.45, 0.50, 2, 0.1, 1.0, 0.1, 0.1, -1 );
                ShowSyncHudMsg( id, SyncHudMessage, "%i^n", fDamage );
            }

            if( is_user_alive( iAttacker ) && is_user_vip( iAttacker ) ) {

                set_hudmessage( 0, 255, 15, -1.0, 0.55, 2, 0.1, 1.0, 0.02, 0.02, -1 );
                ShowSyncHudMsg( iAttacker, SyncHudMessage, "%i^n^n", fDamage );
            }
        }
        
        else {

            IsUserVip[ id ] = 1;
        }
    }

    return 0;
}

public logevent_RoundStart(  ) {
    
    new szPlayers[ 32 ], iNum;
    get_players( szPlayers, iNum, "ch" );
    
    for( new i = 0; i < iNum; i++ )  {

        g_bUserHas[ szPlayers[ i ] ][ Speed ] = false;
        g_bUserHas[ szPlayers[ i ] ][ Jump ] = false;
        g_iMultiJumps[ szPlayers[ i ] ] = 0;
        iJumpNum[ szPlayers[ i ] ] = 0;
    }
}

public logevent_RoundEnd(  ) {
    
    new szPlayers[ 32 ], iNum;
    get_players( szPlayers, iNum, "ch" );
    
    for( new i = 0; i < iNum; i++ )
        remove_task( szPlayers[ i ] );
}

// thx pharse.(zp50) for this 2 forwards
public forward_PlayerPreThink( id ) {

    if( !is_user_alive( id ) || !g_iMultiJumps[ id ] )
        return 0;

    if( ( pev( id, pev_button ) & IN_JUMP ) && !( pev( id, pev_flags ) & FL_ONGROUND ) && !( pev( id, pev_oldbuttons ) & IN_JUMP ) ) {

        if( iJumpNum[ id ] < g_iMultiJumps[ id ] ) {

            g_bUserHas[ id ][ Jump ] = true;
            iJumpNum[ id ]++;

            return 0;
        }
    }

    if( ( pev( id, pev_button ) & IN_JUMP ) && ( pev( id, pev_flags ) & FL_ONGROUND ) ) {

        iJumpNum[ id ] = 0;
        return 0;
    }

    return 0;
}

public forward_PlayerPostThink( id ) {

    if( !is_user_alive( id ) || !g_iMultiJumps[ id ] )
        return 0;

    if( g_bUserHas[ id ][ Jump ] ) {

        new Float:fVelocity[ 3 ];

        pev( id, pev_velocity, fVelocity );

        fVelocity[ 2 ] = random_float( 265.0, 285.0 );

        set_pev( id, pev_velocity, fVelocity );

        g_bUserHas[ id ][ Jump ] = false;
        return 0;
    }

    return 0;
}

public Ham_PlayerSpawnPost( id ) {
    
    if( !is_user_alive( id ) )
        return HAM_IGNORED;

    if( !is_user_vip( id ) ) {

        IsUserVip[ id ] = 0;
        return HAM_IGNORED;    
    }
    
    if( is_user_vip( id ) && !is_user_bot( id ) )
        set_task( 0.1, "task_GiveSkillsAllVips", id );

    IsUserVip[ id ] = 1;

    return HAM_IGNORED;
}

public task_GiveSkillsAllVips( id ) {

    g_bUserHas[ id ][ Speed ] = true;
    set_pev( id, pev_maxspeed, get_pcvar_float( g_cvar_speed_spawn ) );

    new szCommand[ 128 ];
    formatex( szCommand, sizeof( szCommand ) - 1, "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", get_pcvar_float( g_cvar_speed_spawn ), get_pcvar_float( g_cvar_speed_spawn ), get_pcvar_float( g_cvar_speed_spawn ) );
    client_cmd( id, szCommand );

    if( get_pcvar_num( g_cvar_enable_vip_multijump ) > 0 )
        if( g_iMultiJumps[ id ] < g_iMaxJumps || !g_iMaxJumps )
            g_iMultiJumps[ id ]++;

    fm_set_user_health( id, get_pcvar_num( g_cvar_health_spawn ) );
    fm_set_user_armor( id, get_pcvar_num( g_cvar_armor_spawn ) );

    fm_give_item( id, "weapon_hegrenade" );
    fm_give_item( id, "weapon_flashbang" );
    fm_give_item( id, "weapon_flashbang" );
    fm_give_item( id, "weapon_smokegrenade" );

    IsUserVip[ id ] = 1;
}

public ShowVipsOnline( user ) {

    new szVipNames[ 33 ][ 32 ];
    new szMessage[ 256 ];
    new iCount, iLen;

    for( new id = 1 ; id <= g_iMaxPlayers ; id++ ) {

        if( is_user_connected( id ) && is_user_vip( id ) ) {

            get_user_name( id, szVipNames[ iCount++ ], 31 );
            IsUserVip[ id ] = 1;
        }
    }

    iLen = format( szMessage, 255, "^x04[Bio.Lunetistii.Ro]^x01 VIP's Online: " );

    if( iCount > 0 ) {

        for( new i = 0 ; i < iCount ; i++ ) {

            iLen += format( szMessage[ iLen ], 255 - iLen, "^x03%s^x01, ", szVipNames[ i ] );

            if( iLen > 96 ) {

                ColorChat( user, szMessage );
            }
        }

        ColorChat( user, szMessage );
    } else {

        iLen += format( szMessage[ iLen ], 255 - iLen, "^x03Nu sunt VIP-i online." );
        ColorChat( user, szMessage );
    }
}

public Ham_ResetMaxSpeedPost( id ) {

    if( !is_user_vip( id ) ) {

        IsUserVip[ id ] = 0;
        return HAM_IGNORED;    
    }

    if( is_user_alive( id ) && is_user_vip( id ) && pev( id, pev_maxspeed ) != 1.0 ) {

          new Float:flMaxSpeed;

          if( g_bUserHas[ id ][ Speed ] )
               flMaxSpeed = float( get_pcvar_num( g_cvar_speed_spawn ) );

          if( flMaxSpeed > 0.0 )
               set_pev( id, pev_maxspeed, flMaxSpeed );
    }

    IsUserVip[ id ] = 1;

    return HAM_IGNORED;
}

public Ham_TakeDamagePre( iVictim, iInflictor, iAttacker, Float:fDamage ) {

    if( !is_user_vip( iAttacker ) ) {

        IsUserVip[ iAttacker ] = 0;
        return HAM_IGNORED;    
    }

    if( iVictim == iAttacker || !is_user_player( iAttacker ) || !is_user_alive( iAttacker ) || is_user_bot( iAttacker ) )
        return HAM_HANDLED;

    if( is_user_vip( iAttacker ) && is_user_zombie( iVictim ) )
        SetHamParamFloat( 4, fDamage * get_pcvar_float( g_cvar_multidmg ) );

    IsUserVip[ iAttacker ] = 1;

    return HAM_IGNORED;
}

// thx Exolent. for this public
public MessageScoreAttrib( iMsgId, iMsgDest, id ) {

    if( get_pcvar_num( g_cvar_ebable_vip_scoreboard ) > 0 ) {

        new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );

        if( !is_user_vip( iPlayer ) ) {

            IsUserVip[ iPlayer ] = 0;
            return;    
        }
        
        if( is_user_vip( iPlayer ) && !is_user_zombie( iPlayer ) )
            set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );

        IsUserVip[ iPlayer ] = 1;
    }
}

// thx cheep.suit for this public
public MessageScreenFade( iMsgId, iMsgDest, id ) {

    if( !is_user_vip( id ) ) {

        IsUserVip[ id ] = 0;
        return 1;
    }

    if( is_user_alive( id ) )
        return 1;

    if( is_user_vip( id ) && get_pcvar_num( g_cvar_enable_vip_noflash ) ) {

        static szData[ 4 ];

        szData[ 0 ] = get_msg_arg_int( 4 );
        szData[ 1 ] = get_msg_arg_int( 5 );
        szData[ 2 ] = get_msg_arg_int( 6 );
        szData[ 3 ] = get_msg_arg_int( 7 );
        
        if( szData[ 0 ] == 255 && szData[ 1 ] == 255 && szData[ 2 ] == 255 && szData[ 3] > 199 )
            return 1;
    }

    IsUserVip[ id ] = 1;

    return 0;
}

public ShowAbilityForVip( id ) {

    new iCfgDir[ 32 ], iFile[ 192 ];
        
    get_configsdir( iCfgDir, charsmax( iCfgDir ) );
    formatex( iFile, charsmax( iFile ), "%s/vip.html", iCfgDir );

    show_motd( id, iFile );
}

public ConCmdAddVip( id, level, cid ) {

    if( !cmd_access( id, level, cid, 2 ) )
        return 1;

    if( !is_user_connected( id ) || is_user_bot( id ) )
        return 1;

    new szVipName[ 33 ];
    new DataLog[ 128 ];
    
    get_user_name( id, szVipName, charsmax( szVipName ) );

    // thx CryWolf for this codes
    new File = fopen( szFile2, "a+" );
    formatex( DataLog, 127, "%s^n", szVipName );
    fputs( File, DataLog );
    fclose( File );

    new szTarget[ 32 ];
    read_argv( 1, szTarget, 31 );

    new iPlayer = cmd_target( id, szTarget, 8 );

    if( !iPlayer )
        return 1;

    new szAdminName[ 32 ], szPlayerName[ 32 ];

    get_user_name( id, szAdminName, 31 );
    get_user_name( iPlayer, szPlayerName, 31 );

    ColorChat( 0, "!3(!1ADMIN^x03)^x04 %s^x01: make VIP^x03 %s", szAdminName, szPlayerName );
    ColorChat( iPlayer, "^x04*^x01 Felicitari, ai fost adaugat ca^x03 membru VIP^x01! Daca nu stii beneficiile unui VIP, tasteaza^x03 /vip^x01!" );

    console_print( id, "* V.I.P-ul '%s'a fost adaugat in lista!", iPlayer );

    return 0;
}

public ConCmdVipsList( id, level, cid ) {

    if( !cmd_access( id, level, cid, 1 ) )
        return 1;

    new szName[ 32 ];
    get_user_name( id, szName, 31 );
    
    console_print( id, "--== | Lista membrilor VIP | ==--" );
    for( new i; i < szTotalLines; i++ ) {

        // thx KronoS # GG pentru explicatia acestei linii
        if( strcmp( szName, szVipsList[ i ] ) ) {

            console_print( id, " - %s", szVipsList[ i ] );
        }
    }
    console_print( id, "--== | Lista membrilor VIP | ==--" );

    return 0;
}

stock is_user_vip( id ) {

    new szName[ 32 ];
    get_user_name( id, szName, 31 );

    for( new i; i < szTotalLines; i++ ) {

        // thx KronoS # GG pentru explicatia acestei linii
        if( !strcmp( szName, szVipsList[ i ] ) ) {

            return 1;
        }
    }

    return 0;
}

// Fakemeta Util
stock fm_set_user_money( id, money, flash = 1 ) {

    set_pdata_int( id, OFFSET_CSMONEY, money, OFFSET_LINUX );

    message_begin( MSG_ONE, get_user_msgid( "Money" ), { 0, 0, 0 }, id );
    write_long( money );
    write_byte( flash );
    message_end(  );
}

stock fm_get_user_money( id )
    return get_pdata_int( id, OFFSET_CSMONEY, OFFSET_LINUX );

stock fm_set_user_health( id, health )
    ( health > 0 ) ? set_pev( id, pev_health, float( health ) ) : dllfunc( DLLFunc_ClientKill, id );

stock fm_get_user_health( index ) {

    new health;
    pev( index, pev_health, health );

    return health;
}

stock fm_set_user_armor( index, armor ) {

    set_pev( index, pev_armorvalue, float( armor ) );

    return 1;
}

stock fm_give_item( index, const item[  ] ) {

    if( !equal( item, "weapon_", 7 ) && !equal( item, "ammo_", 5 ) && !equal( item, "item_", 5 ) && !equal( item, "tf_weapon_", 10 ) )
        return 0;

    new ent = fm_create_entity( item );

    if( !pev_valid( ent ) )
        return 0;

    new Float:fOrigin[ 3 ];
    pev( index, pev_origin, fOrigin );

    set_pev( ent, pev_origin, fOrigin );
    set_pev( ent, pev_spawnflags, pev( ent, pev_spawnflags ) | SF_NORESPAWN );

    dllfunc( DLLFunc_Spawn, ent );

    new save = pev( ent, pev_solid );

    dllfunc( DLLFunc_Touch, ent, index );

    if( pev( ent, pev_solid ) != save )
        return ent;

    engfunc( EngFunc_RemoveEntity, ent );

    return -1;
}

stock fm_create_entity( const classname[  ] )
    return engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, classname ) );

stock ColorChat( const id, const input[  ], any:... ) {

    new iCount = 1, szPlayers[ 32 ];
    static szMsg[ 191 ];

    vformat( szMsg, 190, input, 3 );

    replace_all( szMsg, 190, "!4", "^4" );
    replace_all( szMsg, 190, "!1", "^1" );
    replace_all( szMsg, 190, "!3", "^3" );

    if( id )
        szPlayers[ 0 ] = id;
    else
        get_players( szPlayers, iCount, "ch" );

    for( new i = 0; i < iCount; i++ ) {

        if( is_user_connected( szPlayers[ i ] ) ) {

            message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, szPlayers[ i ] );
            write_byte( szPlayers[ i ] );
            write_string( szMsg );
            message_end(  );
        }
    }
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/[/code]
Cei care se pricep sa-l modifice, il pot folosi pe orice server :) !
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
User avatar
WISHEXEC
Membru, skill +4
Membru, skill +4
Posts: 1683
Joined: 12 Nov 2011, 19:37
Detinator Steam: Da
CS Status: AmxModX
Detinator server CS: DAEVA.RO
Reputatie: Fost Moderator ajutator
Nume anterior : ONEMDX
Location: România
Has thanked: 84 times
Been thanked: 85 times
Contact:

10 Jul 2014, 18:30

The YONTU wrote:Oricum, exista ceva asemanator (ceea ce oferi tu) cu ce am facut eu in Addons-ul meu de Biohazard v3.1. Si contine o gramada de beneficii, totul se seteaza prin cvar-uri :D !
bio_vip_system.sma | Afiseaza codul
[code=php]#include < amxmodx >
#include < amxmisc >
#include < hamsandwich >
#include < fakemeta >
#include < biohazard >

#define is_user_player(%1) ( 1 <= %1 <= g_iMaxPlayers )

new const 
    PLUGIN_AUTHOR[  ] = "YONTU",
    PLUGIN_NAME[  ] = "[Bio] Addon: VIP System";

// from fakemeta util
#if cellbits == 32
const OFFSET_CSMONEY = 115;
#else
const OFFSET_CSMONEY = 140;
#endif
const OFFSET_LINUX  = 5;

enum {

        SCOREATTRIB_ARG_PLAYERID = 1,
        SCOREATTRIB_ARG_FLAGS
};

enum ( <<= 1 ) {

        SCOREATTRIB_FLAG_NONE = 0,
        SCOREATTRIB_FLAG_DEAD = 1,
        SCOREATTRIB_FLAG_BOMB,
        SCOREATTRIB_FLAG_VIP
};

enum _:WhatUserHas {

    Speed,
    Jump
}
new bool:g_bUserHas[ 33 ][ WhatUserHas ];

new     g_cvar_speed_spawn,
    g_cvar_health_spawn,
    g_cvar_armor_spawn,
    g_cvar_multidmg,
    g_cvar_health_kill_reward,
    g_cvar_health_hs_reward,
    g_cvar_maxhealth,
    g_cvar_kill_money_reward,
    g_cvar_enable_show_dmg,
    g_cvar_ebable_vip_scoreboard,
    g_cvar_enable_vip_noflash,
    g_cvar_enable_vip_multijump;

new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;

new iJumpNum[ 33 ] = 0;
new g_iMultiJumps[ 33 ] = 0;
new g_iMaxJumps = 0;

new IsUserVip[ 33 ];

new szVipsList[ 128 ][ 32 ];
new szTotalLines;
new szNameVipList[  ] = "vips_list.ini";
new szFile2[ 128 ];    

new g_iMaxPlayers;
new SyncHudMessage;

public plugin_init(  ) {

    register_plugin( PLUGIN_NAME, BIOHAZARD_VERSION, PLUGIN_AUTHOR );
    is_biomod_active(  ) ? plugin_init2(  ) : pause( "ad" );
}

public plugin_init2(  ) {

    register_clcmd( "say /vip", "ShowAbilityForVip" );
    register_clcmd( "say_team /vip", "ShowAbilityForVip" );

    register_clcmd( "say /vips", "ShowVipsOnline" );
    register_clcmd( "say_team /vips", "ShowVipsOnline" );

    register_concmd( "amx_addvip", "ConCmdAddVip", ADMIN_RCON, " < nume > - adauga un vip" );
    register_concmd( "amx_vips", "ConCmdVipsList", ADMIN_RCON, "vezi lista vip-urilor" );

    register_event( "DeathMsg", "event_DeathMsg", "a" );
    register_event( "DeathMsg", "event_DeathMsg2", "ae" );
    register_event( "Damage", "event_Damage", "b", "2!0", "3=0", "4!0" );

    register_logevent( "logevent_RoundStart", 2 , "1=Round_Start" );
    register_logevent( "logevent_RoundEnd", 2, "1=Round_End" );

    register_forward( FM_PlayerPreThink, "forward_PlayerPreThink" );
    register_forward( FM_PlayerPostThink, "forward_PlayerPostThink" );

    RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", 1 );
    RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamagePre" );
    RegisterHam( Ham_Player_ResetMaxSpeed, "player", "Ham_ResetMaxSpeedPost", 1 );

        register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
    register_message( get_user_msgid( "ScreenFade" ), "MessageScreenFade" );

    g_cvar_speed_spawn = register_cvar( "vip_speed_spawn", "500.0" );        // viteza pe care o primeste vip-ul la spawn( sa fie cu zecimala.0 )
    g_cvar_health_spawn = register_cvar( "vip_health_spawn", "200" );        // viata pe care o primeste vip-ul la spawn
    g_cvar_armor_spawn = register_cvar( "vip_armor_spawn", "150" );        // armura pe care o primeste vip-ul la spawn
    g_cvar_multidmg = register_cvar( "vip_multi_dmg", "1.5" );        // vip-ul are dmg mai mare la toate armele
    g_cvar_health_kill_reward = register_cvar( "vip_hp_kill_reward", "25" );    // cata viata sa primeasca vip-ul cand face un kill
    g_cvar_health_hs_reward = register_cvar( "vip_hp_hs_reward", "50" );    // cata viata sa primeasca vip-ul cand face un headshot
    g_cvar_maxhealth = register_cvar( "vip_maxhealth", "300" );        // viata maxima a vip-ului
    g_cvar_kill_money_reward = register_cvar( "vip_kill_money", "1000" );    // Cati bani sa primeasca Vip-ul pe un frag
    g_cvar_enable_show_dmg = register_cvar( "vip_show_dmg", "1" );        // afiseaza vip-ului dmg-ul facut de victima si dmg-ul pe care i la facut victimei
    g_cvar_ebable_vip_scoreboard = register_cvar( "vip_on_scoreboard", "1" );    // 1 - vip-ii apar in scoreboard ca "VIP" | 0 - dezactivat
    g_cvar_enable_vip_noflash = register_cvar( "vip_imune_flashbang", "1" );    // 1 - Vip-ul este imun la flash-uri | 0 - Nu este
    g_cvar_enable_vip_multijump = register_cvar( "vip_enable_multijump", "0" );    // 1 - Vip-ul beneficiaza de multi jump | 0 - Nu beneficiaza

    new szFile[ 64 ]
    get_configsdir( szFile, 63 );
    format( szFile, 63, "%s/vip_system.cfg", szFile );

    if( file_exists( szFile ) )
        server_cmd( "exec %s", szFile );

    g_iMaxPlayers = get_maxplayers(  );
    SyncHudMessage = CreateHudSyncObj(  );
}

public plugin_cfg(  ) {

    new DirectorCfg[ 64 ];
    get_configsdir( DirectorCfg, charsmax( DirectorCfg ) );

    formatex( szFile2, charsmax( szFile2 ), "%s/%s", DirectorCfg, szNameVipList );

    if( !file_exists( szFile2 ) )
        write_file( szFile2, "; --- | Aici sunt adaugati membrii V.I.P | --- " );

    // thx husky for this 'while'
    new szBuffer[ 192 ], szLine, iLen;
    while( ( szLine = read_file( szFile2, szLine, szBuffer, charsmax( szBuffer ), iLen ) ) ) {

        if( !strlen( szBuffer ) || szBuffer[ 0 ] == ';' || ( szBuffer[ 0 ] == '/' && szBuffer[ 1 ] == '/' ) )
            continue;

        copy( szVipsList[ szTotalLines++ ], 32, szBuffer );
    }

    set_cvar_float( "sv_maxspeed", 1000.0 );
}

public plugin_natives(  )
        register_native( "is_user_vip", "native_get_vip", 1 );

public native_get_vip( id ) {

    if( !is_user_player( id ) )
        return false;

    if( !is_user_vip( id ) )
        return false;

    if( !is_user_vip( id ) )
        IsUserVip[ id ] = 0;
    else
        IsUserVip[ id ] = 1;

    return IsUserVip[ id ];
}

public client_putinserver( id ) {

    g_iMultiJumps[ id ] = 0;
    iJumpNum[ id ] = 0;
    g_bUserHas[ id ][ Jump ] = false;
    g_bUserHas[ id ][ Speed ] = false;
}

public client_disconnect( id ) {

    g_iMultiJumps[ id ] = 0;
    iJumpNum[ id ] = 0;
    g_bUserHas[ id ][ Jump ] = false;
    g_bUserHas[ id ][ Speed ] = false;
}

public event_infect( Victim, Attacker ) {

    if( is_user_zombie( Victim ) || is_user_zombie( Attacker ) ) {

        IsUserVip[ Victim ] = 0;
        return 1;
    }

    IsUserVip[ Victim ] = 0;
    g_iMultiJumps[ Victim ] = 0;
    iJumpNum[ Victim ] = 0;
    g_bUserHas[ Victim ][ Jump ] = false;
    g_bUserHas[ Victim ][ Speed ] = false;

    return 0;
}

public event_DeathMsg(  ) {

    new iAttacker = read_data( 1 );
    new iVictim = read_data( 2 );
    new iHeadshot = read_data( 3 );

    if( iAttacker == iVictim )
        return 0;

    if( is_user_zombie( iAttacker ) ) {

        IsUserVip[ iAttacker ] = 0;
        return 1;
    }

    if( !is_user_vip( iAttacker ) ) {

        IsUserVip[ iAttacker ] = 0;
        return 1;
    }

    if( is_user_vip( iAttacker ) && is_user_zombie( iVictim ) && iAttacker != iVictim ) {
        
        if( fm_get_user_health( iAttacker ) <= get_pcvar_num( g_cvar_maxhealth ) ) {

            if( iHeadshot ) {

                fm_set_user_health( iAttacker, fm_get_user_health( iAttacker ) + get_pcvar_num( g_cvar_health_hs_reward ) );
            } else {

                fm_set_user_health( iAttacker, fm_get_user_health( iAttacker ) + get_pcvar_num( g_cvar_health_kill_reward ) );
            }
        }

    }

    g_bUserHas[ iVictim ][ Jump ] = false;
    g_bUserHas[ iVictim ][ Speed ] = false;

    IsUserVip[ iAttacker ] = 1;

    return 0;
}

public event_DeathMsg2(  ) {

    new iAttacker = read_data( 1 ); 
    new iVictim = read_data( 2 );
    
    if( iAttacker == iVictim )
        return 0;

    if( !is_user_alive( iAttacker ) )
        return 1;

    if( is_user_zombie( iAttacker ) ) {

        IsUserVip[ iAttacker ] = 0;
        return 1;
    }

    if( !is_user_vip( iAttacker ) ) {

        IsUserVip[ iAttacker ] = 0;
        return 1;
    }

    if( is_user_vip( iAttacker ) && is_user_zombie( iVictim ) ) {

        if( fm_get_user_money( iAttacker ) < 16000 - get_pcvar_num( g_cvar_kill_money_reward ) - 300 ) {

            fm_set_user_money( iAttacker, fm_get_user_money( iAttacker ) + get_pcvar_num( g_cvar_kill_money_reward ) - 300 );
        }
    }

    IsUserVip[ iAttacker ] = 1;

    return 0;
}

// thx Sniffer. for this event
public event_Damage( id ) {

    if( get_pcvar_num( g_cvar_enable_show_dmg ) > 0 ) {

        static iAttacker;
        static fDamage;

        iAttacker = get_user_attacker( id );
        fDamage = read_data( 2 );

        if( is_user_vip( iAttacker ) ) {

            IsUserVip[ iAttacker ] = 1;
            
            if( is_user_alive( id ) && is_user_vip( id ) ) {
            
                set_hudmessage( 255, 0, 0, 0.45, 0.50, 2, 0.1, 1.0, 0.1, 0.1, -1 );
                ShowSyncHudMsg( id, SyncHudMessage, "%i^n", fDamage );
            }

            if( is_user_alive( iAttacker ) && is_user_vip( iAttacker ) ) {

                set_hudmessage( 0, 255, 15, -1.0, 0.55, 2, 0.1, 1.0, 0.02, 0.02, -1 );
                ShowSyncHudMsg( iAttacker, SyncHudMessage, "%i^n^n", fDamage );
            }
        }
        
        else {

            IsUserVip[ id ] = 1;
        }
    }

    return 0;
}

public logevent_RoundStart(  ) {
    
    new szPlayers[ 32 ], iNum;
    get_players( szPlayers, iNum, "ch" );
    
    for( new i = 0; i < iNum; i++ )  {

        g_bUserHas[ szPlayers[ i ] ][ Speed ] = false;
        g_bUserHas[ szPlayers[ i ] ][ Jump ] = false;
        g_iMultiJumps[ szPlayers[ i ] ] = 0;
        iJumpNum[ szPlayers[ i ] ] = 0;
    }
}

public logevent_RoundEnd(  ) {
    
    new szPlayers[ 32 ], iNum;
    get_players( szPlayers, iNum, "ch" );
    
    for( new i = 0; i < iNum; i++ )
        remove_task( szPlayers[ i ] );
}

// thx pharse.(zp50) for this 2 forwards
public forward_PlayerPreThink( id ) {

    if( !is_user_alive( id ) || !g_iMultiJumps[ id ] )
        return 0;

    if( ( pev( id, pev_button ) & IN_JUMP ) && !( pev( id, pev_flags ) & FL_ONGROUND ) && !( pev( id, pev_oldbuttons ) & IN_JUMP ) ) {

        if( iJumpNum[ id ] < g_iMultiJumps[ id ] ) {

            g_bUserHas[ id ][ Jump ] = true;
            iJumpNum[ id ]++;

            return 0;
        }
    }

    if( ( pev( id, pev_button ) & IN_JUMP ) && ( pev( id, pev_flags ) & FL_ONGROUND ) ) {

        iJumpNum[ id ] = 0;
        return 0;
    }

    return 0;
}

public forward_PlayerPostThink( id ) {

    if( !is_user_alive( id ) || !g_iMultiJumps[ id ] )
        return 0;

    if( g_bUserHas[ id ][ Jump ] ) {

        new Float:fVelocity[ 3 ];

        pev( id, pev_velocity, fVelocity );

        fVelocity[ 2 ] = random_float( 265.0, 285.0 );

        set_pev( id, pev_velocity, fVelocity );

        g_bUserHas[ id ][ Jump ] = false;
        return 0;
    }

    return 0;
}

public Ham_PlayerSpawnPost( id ) {
    
    if( !is_user_alive( id ) )
        return HAM_IGNORED;

    if( !is_user_vip( id ) ) {

        IsUserVip[ id ] = 0;
        return HAM_IGNORED;    
    }
    
    if( is_user_vip( id ) && !is_user_bot( id ) )
        set_task( 0.1, "task_GiveSkillsAllVips", id );

    IsUserVip[ id ] = 1;

    return HAM_IGNORED;
}

public task_GiveSkillsAllVips( id ) {

    g_bUserHas[ id ][ Speed ] = true;
    set_pev( id, pev_maxspeed, get_pcvar_float( g_cvar_speed_spawn ) );

    new szCommand[ 128 ];
    formatex( szCommand, sizeof( szCommand ) - 1, "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", get_pcvar_float( g_cvar_speed_spawn ), get_pcvar_float( g_cvar_speed_spawn ), get_pcvar_float( g_cvar_speed_spawn ) );
    client_cmd( id, szCommand );

    if( get_pcvar_num( g_cvar_enable_vip_multijump ) > 0 )
        if( g_iMultiJumps[ id ] < g_iMaxJumps || !g_iMaxJumps )
            g_iMultiJumps[ id ]++;

    fm_set_user_health( id, get_pcvar_num( g_cvar_health_spawn ) );
    fm_set_user_armor( id, get_pcvar_num( g_cvar_armor_spawn ) );

    fm_give_item( id, "weapon_hegrenade" );
    fm_give_item( id, "weapon_flashbang" );
    fm_give_item( id, "weapon_flashbang" );
    fm_give_item( id, "weapon_smokegrenade" );

    IsUserVip[ id ] = 1;
}

public ShowVipsOnline( user ) {

    new szVipNames[ 33 ][ 32 ];
    new szMessage[ 256 ];
    new iCount, iLen;

    for( new id = 1 ; id <= g_iMaxPlayers ; id++ ) {

        if( is_user_connected( id ) && is_user_vip( id ) ) {

            get_user_name( id, szVipNames[ iCount++ ], 31 );
            IsUserVip[ id ] = 1;
        }
    }

    iLen = format( szMessage, 255, "^x04[Bio.Lunetistii.Ro]^x01 VIP's Online: " );

    if( iCount > 0 ) {

        for( new i = 0 ; i < iCount ; i++ ) {

            iLen += format( szMessage[ iLen ], 255 - iLen, "^x03%s^x01, ", szVipNames[ i ] );

            if( iLen > 96 ) {

                ColorChat( user, szMessage );
            }
        }

        ColorChat( user, szMessage );
    } else {

        iLen += format( szMessage[ iLen ], 255 - iLen, "^x03Nu sunt VIP-i online." );
        ColorChat( user, szMessage );
    }
}

public Ham_ResetMaxSpeedPost( id ) {

    if( !is_user_vip( id ) ) {

        IsUserVip[ id ] = 0;
        return HAM_IGNORED;    
    }

    if( is_user_alive( id ) && is_user_vip( id ) && pev( id, pev_maxspeed ) != 1.0 ) {

          new Float:flMaxSpeed;

          if( g_bUserHas[ id ][ Speed ] )
               flMaxSpeed = float( get_pcvar_num( g_cvar_speed_spawn ) );

          if( flMaxSpeed > 0.0 )
               set_pev( id, pev_maxspeed, flMaxSpeed );
    }

    IsUserVip[ id ] = 1;

    return HAM_IGNORED;
}

public Ham_TakeDamagePre( iVictim, iInflictor, iAttacker, Float:fDamage ) {

    if( !is_user_vip( iAttacker ) ) {

        IsUserVip[ iAttacker ] = 0;
        return HAM_IGNORED;    
    }

    if( iVictim == iAttacker || !is_user_player( iAttacker ) || !is_user_alive( iAttacker ) || is_user_bot( iAttacker ) )
        return HAM_HANDLED;

    if( is_user_vip( iAttacker ) && is_user_zombie( iVictim ) )
        SetHamParamFloat( 4, fDamage * get_pcvar_float( g_cvar_multidmg ) );

    IsUserVip[ iAttacker ] = 1;

    return HAM_IGNORED;
}

// thx Exolent. for this public
public MessageScoreAttrib( iMsgId, iMsgDest, id ) {

    if( get_pcvar_num( g_cvar_ebable_vip_scoreboard ) > 0 ) {

        new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );

        if( !is_user_vip( iPlayer ) ) {

            IsUserVip[ iPlayer ] = 0;
            return;    
        }
        
        if( is_user_vip( iPlayer ) && !is_user_zombie( iPlayer ) )
            set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );

        IsUserVip[ iPlayer ] = 1;
    }
}

// thx cheep.suit for this public
public MessageScreenFade( iMsgId, iMsgDest, id ) {

    if( !is_user_vip( id ) ) {

        IsUserVip[ id ] = 0;
        return 1;
    }

    if( is_user_alive( id ) )
        return 1;

    if( is_user_vip( id ) && get_pcvar_num( g_cvar_enable_vip_noflash ) ) {

        static szData[ 4 ];

        szData[ 0 ] = get_msg_arg_int( 4 );
        szData[ 1 ] = get_msg_arg_int( 5 );
        szData[ 2 ] = get_msg_arg_int( 6 );
        szData[ 3 ] = get_msg_arg_int( 7 );
        
        if( szData[ 0 ] == 255 && szData[ 1 ] == 255 && szData[ 2 ] == 255 && szData[ 3] > 199 )
            return 1;
    }

    IsUserVip[ id ] = 1;

    return 0;
}

public ShowAbilityForVip( id ) {

    new iCfgDir[ 32 ], iFile[ 192 ];
        
    get_configsdir( iCfgDir, charsmax( iCfgDir ) );
    formatex( iFile, charsmax( iFile ), "%s/vip.html", iCfgDir );

    show_motd( id, iFile );
}

public ConCmdAddVip( id, level, cid ) {

    if( !cmd_access( id, level, cid, 2 ) )
        return 1;

    if( !is_user_connected( id ) || is_user_bot( id ) )
        return 1;

    new szVipName[ 33 ];
    new DataLog[ 128 ];
    
    get_user_name( id, szVipName, charsmax( szVipName ) );

    // thx CryWolf for this codes
    new File = fopen( szFile2, "a+" );
    formatex( DataLog, 127, "%s^n", szVipName );
    fputs( File, DataLog );
    fclose( File );

    new szTarget[ 32 ];
    read_argv( 1, szTarget, 31 );

    new iPlayer = cmd_target( id, szTarget, 8 );

    if( !iPlayer )
        return 1;

    new szAdminName[ 32 ], szPlayerName[ 32 ];

    get_user_name( id, szAdminName, 31 );
    get_user_name( iPlayer, szPlayerName, 31 );

    ColorChat( 0, "!3(!1ADMIN^x03)^x04 %s^x01: make VIP^x03 %s", szAdminName, szPlayerName );
    ColorChat( iPlayer, "^x04*^x01 Felicitari, ai fost adaugat ca^x03 membru VIP^x01! Daca nu stii beneficiile unui VIP, tasteaza^x03 /vip^x01!" );

    console_print( id, "* V.I.P-ul '%s'a fost adaugat in lista!", iPlayer );

    return 0;
}

public ConCmdVipsList( id, level, cid ) {

    if( !cmd_access( id, level, cid, 1 ) )
        return 1;

    new szName[ 32 ];
    get_user_name( id, szName, 31 );
    
    console_print( id, "--== | Lista membrilor VIP | ==--" );
    for( new i; i < szTotalLines; i++ ) {

        // thx KronoS # GG pentru explicatia acestei linii
        if( strcmp( szName, szVipsList[ i ] ) ) {

            console_print( id, " - %s", szVipsList[ i ] );
        }
    }
    console_print( id, "--== | Lista membrilor VIP | ==--" );

    return 0;
}

stock is_user_vip( id ) {

    new szName[ 32 ];
    get_user_name( id, szName, 31 );

    for( new i; i < szTotalLines; i++ ) {

        // thx KronoS # GG pentru explicatia acestei linii
        if( !strcmp( szName, szVipsList[ i ] ) ) {

            return 1;
        }
    }

    return 0;
}

// Fakemeta Util
stock fm_set_user_money( id, money, flash = 1 ) {

    set_pdata_int( id, OFFSET_CSMONEY, money, OFFSET_LINUX );

    message_begin( MSG_ONE, get_user_msgid( "Money" ), { 0, 0, 0 }, id );
    write_long( money );
    write_byte( flash );
    message_end(  );
}

stock fm_get_user_money( id )
    return get_pdata_int( id, OFFSET_CSMONEY, OFFSET_LINUX );

stock fm_set_user_health( id, health )
    ( health > 0 ) ? set_pev( id, pev_health, float( health ) ) : dllfunc( DLLFunc_ClientKill, id );

stock fm_get_user_health( index ) {

    new health;
    pev( index, pev_health, health );

    return health;
}

stock fm_set_user_armor( index, armor ) {

    set_pev( index, pev_armorvalue, float( armor ) );

    return 1;
}

stock fm_give_item( index, const item[  ] ) {

    if( !equal( item, "weapon_", 7 ) && !equal( item, "ammo_", 5 ) && !equal( item, "item_", 5 ) && !equal( item, "tf_weapon_", 10 ) )
        return 0;

    new ent = fm_create_entity( item );

    if( !pev_valid( ent ) )
        return 0;

    new Float:fOrigin[ 3 ];
    pev( index, pev_origin, fOrigin );

    set_pev( ent, pev_origin, fOrigin );
    set_pev( ent, pev_spawnflags, pev( ent, pev_spawnflags ) | SF_NORESPAWN );

    dllfunc( DLLFunc_Spawn, ent );

    new save = pev( ent, pev_solid );

    dllfunc( DLLFunc_Touch, ent, index );

    if( pev( ent, pev_solid ) != save )
        return ent;

    engfunc( EngFunc_RemoveEntity, ent );

    return -1;
}

stock fm_create_entity( const classname[  ] )
    return engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, classname ) );

stock ColorChat( const id, const input[  ], any:... ) {

    new iCount = 1, szPlayers[ 32 ];
    static szMsg[ 191 ];

    vformat( szMsg, 190, input, 3 );

    replace_all( szMsg, 190, "!4", "^4" );
    replace_all( szMsg, 190, "!1", "^1" );
    replace_all( szMsg, 190, "!3", "^3" );

    if( id )
        szPlayers[ 0 ] = id;
    else
        get_players( szPlayers, iCount, "ch" );

    for( new i = 0; i < iCount; i++ ) {

        if( is_user_connected( szPlayers[ i ] ) ) {

            message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, szPlayers[ i ] );
            write_byte( szPlayers[ i ] );
            write_string( szMsg );
            message_end(  );
        }
    }
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/ [/code]
Cei care se pricep sa-l modifice, il pot folosi pe orice server :) !
Si versiune pentru normal si restul modurilor
Sma | Afiseaza codul
#include < amxmodx >
#include < amxmisc >
#include < hamsandwich >
#include < fakemeta >


#define is_user_player(%1) ( 1 <= %1 <= g_iMaxPlayers )

new const 
    PLUGIN_AUTHOR[  ] = "YONTU",
    PLUGIN_NAME[  ] = "Addon: VIP System",
	PLUGIN_VER[  ] = "1.0";

// from fakemeta util
#if cellbits == 32
const OFFSET_CSMONEY = 115;
#else
const OFFSET_CSMONEY = 140;
#endif
const OFFSET_LINUX  = 5;

enum {

        SCOREATTRIB_ARG_PLAYERID = 1,
        SCOREATTRIB_ARG_FLAGS
};

enum ( <<= 1 ) {

        SCOREATTRIB_FLAG_NONE = 0,
        SCOREATTRIB_FLAG_DEAD = 1,
        SCOREATTRIB_FLAG_BOMB,
        SCOREATTRIB_FLAG_VIP
};

enum _:WhatUserHas {

    Speed,
    Jump
}
new bool:g_bUserHas[ 33 ][ WhatUserHas ];

new     g_cvar_speed_spawn,
    g_cvar_health_spawn,
    g_cvar_armor_spawn,
    g_cvar_multidmg,
    g_cvar_health_kill_reward,
    g_cvar_health_hs_reward,
    g_cvar_maxhealth,
    g_cvar_kill_money_reward,
    g_cvar_enable_show_dmg,
    g_cvar_ebable_vip_scoreboard,
    g_cvar_enable_vip_noflash,
    g_cvar_enable_vip_multijump;

new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;

new iJumpNum[ 33 ] = 0;
new g_iMultiJumps[ 33 ] = 0;
new g_iMaxJumps = 0;

new IsUserVip[ 33 ];

new szVipsList[ 128 ][ 32 ];
new szTotalLines;
new szNameVipList[  ] = "vips_list.ini";
new szFile2[ 128 ];    

new g_iMaxPlayers;
new SyncHudMessage;


public plugin_init(  ) {

	register_plugin( PLUGIN_NAME, PLUGIN_VER, PLUGIN_AUTHOR );
    register_clcmd( "say /vip", "ShowAbilityForVip" );
    register_clcmd( "say_team /vip", "ShowAbilityForVip" );

    register_clcmd( "say /vips", "ShowVipsOnline" );
    register_clcmd( "say_team /vips", "ShowVipsOnline" );

    register_concmd( "amx_addvip", "ConCmdAddVip", ADMIN_RCON, " < nume > - adauga un vip" );
    register_concmd( "amx_vips", "ConCmdVipsList", ADMIN_RCON, "vezi lista vip-urilor" );

    register_event( "DeathMsg", "event_DeathMsg", "a" );
    register_event( "DeathMsg", "event_DeathMsg2", "ae" );
    register_event( "Damage", "event_Damage", "b", "2!0", "3=0", "4!0" );

    register_logevent( "logevent_RoundStart", 2 , "1=Round_Start" );
    register_logevent( "logevent_RoundEnd", 2, "1=Round_End" );

    register_forward( FM_PlayerPreThink, "forward_PlayerPreThink" );
    register_forward( FM_PlayerPostThink, "forward_PlayerPostThink" );

    RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", 1 );
    RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamagePre" );
    RegisterHam( Ham_Player_ResetMaxSpeed, "player", "Ham_ResetMaxSpeedPost", 1 );

        register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
    register_message( get_user_msgid( "ScreenFade" ), "MessageScreenFade" );

    g_cvar_speed_spawn = register_cvar( "vip_speed_spawn", "500.0" );        // viteza pe care o primeste vip-ul la spawn( sa fie cu zecimala.0 )
    g_cvar_health_spawn = register_cvar( "vip_health_spawn", "200" );        // viata pe care o primeste vip-ul la spawn
    g_cvar_armor_spawn = register_cvar( "vip_armor_spawn", "150" );        // armura pe care o primeste vip-ul la spawn
    g_cvar_multidmg = register_cvar( "vip_multi_dmg", "1.5" );        // vip-ul are dmg mai mare la toate armele
    g_cvar_health_kill_reward = register_cvar( "vip_hp_kill_reward", "25" );    // cata viata sa primeasca vip-ul cand face un kill
    g_cvar_health_hs_reward = register_cvar( "vip_hp_hs_reward", "50" );    // cata viata sa primeasca vip-ul cand face un headshot
    g_cvar_maxhealth = register_cvar( "vip_maxhealth", "300" );        // viata maxima a vip-ului
    g_cvar_kill_money_reward = register_cvar( "vip_kill_money", "1000" );    // Cati bani sa primeasca Vip-ul pe un frag
    g_cvar_enable_show_dmg = register_cvar( "vip_show_dmg", "1" );        // afiseaza vip-ului dmg-ul facut de victima si dmg-ul pe care i la facut victimei
    g_cvar_ebable_vip_scoreboard = register_cvar( "vip_on_scoreboard", "1" );    // 1 - vip-ii apar in scoreboard ca "VIP" | 0 - dezactivat
    g_cvar_enable_vip_noflash = register_cvar( "vip_imune_flashbang", "1" );    // 1 - Vip-ul este imun la flash-uri | 0 - Nu este
    g_cvar_enable_vip_multijump = register_cvar( "vip_enable_multijump", "0" );    // 1 - Vip-ul beneficiaza de multi jump | 0 - Nu beneficiaza

    new szFile[ 64 ]
    get_configsdir( szFile, 63 );
    format( szFile, 63, "%s/vip_system.cfg", szFile );

    if( file_exists( szFile ) )
        server_cmd( "exec %s", szFile );

    g_iMaxPlayers = get_maxplayers(  );
    SyncHudMessage = CreateHudSyncObj(  );
}

public plugin_cfg(  ) {

    new DirectorCfg[ 64 ];
    get_configsdir( DirectorCfg, charsmax( DirectorCfg ) );

    formatex( szFile2, charsmax( szFile2 ), "%s/%s", DirectorCfg, szNameVipList );

    if( !file_exists( szFile2 ) )
        write_file( szFile2, "; --- | Aici sunt adaugati membrii V.I.P | --- " );

    // thx husky for this 'while'
    new szBuffer[ 192 ], szLine, iLen;
    while( ( szLine = read_file( szFile2, szLine, szBuffer, charsmax( szBuffer ), iLen ) ) ) {

        if( !strlen( szBuffer ) || szBuffer[ 0 ] == ';' || ( szBuffer[ 0 ] == '/' && szBuffer[ 1 ] == '/' ) )
            continue;

        copy( szVipsList[ szTotalLines++ ], 32, szBuffer );
    }

    set_cvar_float( "sv_maxspeed", 1000.0 );
}

public plugin_natives(  )
        register_native( "is_user_vip", "native_get_vip", 1 );

public native_get_vip( id ) {

    if( !is_user_player( id ) )
        return false;

    if( !is_user_vip( id ) )
        return false;

    if( !is_user_vip( id ) )
        IsUserVip[ id ] = 0;
    else
        IsUserVip[ id ] = 1;

    return IsUserVip[ id ];
}

public client_putinserver( id ) {

    g_iMultiJumps[ id ] = 0;
    iJumpNum[ id ] = 0;
    g_bUserHas[ id ][ Jump ] = false;
    g_bUserHas[ id ][ Speed ] = false;
}

public client_disconnect( id ) {

    g_iMultiJumps[ id ] = 0;
    iJumpNum[ id ] = 0;
    g_bUserHas[ id ][ Jump ] = false;
    g_bUserHas[ id ][ Speed ] = false;
}



public event_DeathMsg(  ) {

    new iAttacker = read_data( 1 );
    new iVictim = read_data( 2 );
    new iHeadshot = read_data( 3 );

    if( iAttacker == iVictim )
        return 0;

    if( !is_user_vip( iAttacker ) ) {

        IsUserVip[ iAttacker ] = 0;
        return 1;
    }

    if( is_user_vip( iAttacker ) && iAttacker != iVictim ) {
        
        if( fm_get_user_health( iAttacker ) <= get_pcvar_num( g_cvar_maxhealth ) ) {

            if( iHeadshot ) {

                fm_set_user_health( iAttacker, fm_get_user_health( iAttacker ) + get_pcvar_num( g_cvar_health_hs_reward ) );
            } else {

                fm_set_user_health( iAttacker, fm_get_user_health( iAttacker ) + get_pcvar_num( g_cvar_health_kill_reward ) );
            }
        }

    }

    g_bUserHas[ iVictim ][ Jump ] = false;
    g_bUserHas[ iVictim ][ Speed ] = false;

    IsUserVip[ iAttacker ] = 1;

    return 0;
}

public event_DeathMsg2(  ) {

    new iAttacker = read_data( 1 ); 
    new iVictim = read_data( 2 );
    
    if( iAttacker == iVictim )
        return 0;

    if( !is_user_alive( iAttacker ) )
        return 1;


    if( !is_user_vip( iAttacker ) ) {

        IsUserVip[ iAttacker ] = 0;
        return 1;
    }

    if( is_user_vip( iAttacker )) {

        if( fm_get_user_money( iAttacker ) < 16000 - get_pcvar_num( g_cvar_kill_money_reward ) - 300 ) {

            fm_set_user_money( iAttacker, fm_get_user_money( iAttacker ) + get_pcvar_num( g_cvar_kill_money_reward ) - 300 );
        }
    }

    IsUserVip[ iAttacker ] = 1;

    return 0;
}

// thx Sniffer. for this event
public event_Damage( id ) {

    if( get_pcvar_num( g_cvar_enable_show_dmg ) > 0 ) {

        static iAttacker;
        static fDamage;

        iAttacker = get_user_attacker( id );
        fDamage = read_data( 2 );

        if( is_user_vip( iAttacker ) ) {

            IsUserVip[ iAttacker ] = 1;
            
            if( is_user_alive( id ) && is_user_vip( id ) ) {
            
                set_hudmessage( 255, 0, 0, 0.45, 0.50, 2, 0.1, 1.0, 0.1, 0.1, -1 );
                ShowSyncHudMsg( id, SyncHudMessage, "%i^n", fDamage );
            }

            if( is_user_alive( iAttacker ) && is_user_vip( iAttacker ) ) {

                set_hudmessage( 0, 255, 15, -1.0, 0.55, 2, 0.1, 1.0, 0.02, 0.02, -1 );
                ShowSyncHudMsg( iAttacker, SyncHudMessage, "%i^n^n", fDamage );
            }
        }
        
        else {

            IsUserVip[ id ] = 1;
        }
    }

    return 0;
}

public logevent_RoundStart(  ) {
    
    new szPlayers[ 32 ], iNum;
    get_players( szPlayers, iNum, "ch" );
    
    for( new i = 0; i < iNum; i++ )  {

        g_bUserHas[ szPlayers[ i ] ][ Speed ] = false;
        g_bUserHas[ szPlayers[ i ] ][ Jump ] = false;
        g_iMultiJumps[ szPlayers[ i ] ] = 0;
        iJumpNum[ szPlayers[ i ] ] = 0;
    }
}

public logevent_RoundEnd(  ) {
    
    new szPlayers[ 32 ], iNum;
    get_players( szPlayers, iNum, "ch" );
    
    for( new i = 0; i < iNum; i++ )
        remove_task( szPlayers[ i ] );
}

// thx pharse.(zp50) for this 2 forwards
public forward_PlayerPreThink( id ) {

    if( !is_user_alive( id ) || !g_iMultiJumps[ id ] )
        return 0;

    if( ( pev( id, pev_button ) & IN_JUMP ) && !( pev( id, pev_flags ) & FL_ONGROUND ) && !( pev( id, pev_oldbuttons ) & IN_JUMP ) ) {

        if( iJumpNum[ id ] < g_iMultiJumps[ id ] ) {

            g_bUserHas[ id ][ Jump ] = true;
            iJumpNum[ id ]++;

            return 0;
        }
    }

    if( ( pev( id, pev_button ) & IN_JUMP ) && ( pev( id, pev_flags ) & FL_ONGROUND ) ) {

        iJumpNum[ id ] = 0;
        return 0;
    }

    return 0;
}

public forward_PlayerPostThink( id ) {

    if( !is_user_alive( id ) || !g_iMultiJumps[ id ] )
        return 0;

    if( g_bUserHas[ id ][ Jump ] ) {

        new Float:fVelocity[ 3 ];

        pev( id, pev_velocity, fVelocity );

        fVelocity[ 2 ] = random_float( 265.0, 285.0 );

        set_pev( id, pev_velocity, fVelocity );

        g_bUserHas[ id ][ Jump ] = false;
        return 0;
    }

    return 0;
}

public Ham_PlayerSpawnPost( id ) {
    
    if( !is_user_alive( id ) )
        return HAM_IGNORED;

    if( !is_user_vip( id ) ) {

        IsUserVip[ id ] = 0;
        return HAM_IGNORED;    
    }
    
    if( is_user_vip( id ) && !is_user_bot( id ) )
        set_task( 0.1, "task_GiveSkillsAllVips", id );

    IsUserVip[ id ] = 1;

    return HAM_IGNORED;
}

public task_GiveSkillsAllVips( id ) {

    g_bUserHas[ id ][ Speed ] = true;
    set_pev( id, pev_maxspeed, get_pcvar_float( g_cvar_speed_spawn ) );

    new szCommand[ 128 ];
    formatex( szCommand, sizeof( szCommand ) - 1, "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", get_pcvar_float( g_cvar_speed_spawn ), get_pcvar_float( g_cvar_speed_spawn ), get_pcvar_float( g_cvar_speed_spawn ) );
    client_cmd( id, szCommand );

    if( get_pcvar_num( g_cvar_enable_vip_multijump ) > 0 )
        if( g_iMultiJumps[ id ] < g_iMaxJumps || !g_iMaxJumps )
            g_iMultiJumps[ id ]++;

    fm_set_user_health( id, get_pcvar_num( g_cvar_health_spawn ) );
    fm_set_user_armor( id, get_pcvar_num( g_cvar_armor_spawn ) );

    fm_give_item( id, "weapon_hegrenade" );
    fm_give_item( id, "weapon_flashbang" );
    fm_give_item( id, "weapon_flashbang" );
    fm_give_item( id, "weapon_smokegrenade" );

    IsUserVip[ id ] = 1;
}

public ShowVipsOnline( user ) {

    new szVipNames[ 33 ][ 32 ];
    new szMessage[ 256 ];
    new iCount, iLen;

    for( new id = 1 ; id <= g_iMaxPlayers ; id++ ) {

        if( is_user_connected( id ) && is_user_vip( id ) ) {

            get_user_name( id, szVipNames[ iCount++ ], 31 );
            IsUserVip[ id ] = 1;
        }
    }

    iLen = format( szMessage, 255, "^x04[Bio.Lunetistii.Ro]^x01 VIP's Online: " );

    if( iCount > 0 ) {

        for( new i = 0 ; i < iCount ; i++ ) {

            iLen += format( szMessage[ iLen ], 255 - iLen, "^x03%s^x01, ", szVipNames[ i ] );

            if( iLen > 96 ) {

                ColorChat( user, szMessage );
            }
        }

        ColorChat( user, szMessage );
    } else {

        iLen += format( szMessage[ iLen ], 255 - iLen, "^x03Nu sunt VIP-i online." );
        ColorChat( user, szMessage );
    }
}

public Ham_ResetMaxSpeedPost( id ) {

    if( !is_user_vip( id ) ) {

        IsUserVip[ id ] = 0;
        return HAM_IGNORED;    
    }

    if( is_user_alive( id ) && is_user_vip( id ) && pev( id, pev_maxspeed ) != 1.0 ) {

          new Float:flMaxSpeed;

          if( g_bUserHas[ id ][ Speed ] )
               flMaxSpeed = float( get_pcvar_num( g_cvar_speed_spawn ) );

          if( flMaxSpeed > 0.0 )
               set_pev( id, pev_maxspeed, flMaxSpeed );
    }

    IsUserVip[ id ] = 1;

    return HAM_IGNORED;
}

public Ham_TakeDamagePre( iVictim, iInflictor, iAttacker, Float:fDamage ) {

    if( !is_user_vip( iAttacker ) ) {

        IsUserVip[ iAttacker ] = 0;
        return HAM_IGNORED;    
    }

    if( iVictim == iAttacker || !is_user_player( iAttacker ) || !is_user_alive( iAttacker ) || is_user_bot( iAttacker ) )
        return HAM_HANDLED;

    if( is_user_vip( iAttacker ) )
        SetHamParamFloat( 4, fDamage * get_pcvar_float( g_cvar_multidmg ) );

    IsUserVip[ iAttacker ] = 1;

    return HAM_IGNORED;
}

// thx Exolent. for this public
public MessageScoreAttrib( iMsgId, iMsgDest, id ) {

    if( get_pcvar_num( g_cvar_ebable_vip_scoreboard ) > 0 ) {

        new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );

        if( !is_user_vip( iPlayer ) ) {

            IsUserVip[ iPlayer ] = 0;
            return;    
        }
        
        if( is_user_vip( iPlayer ) )
            set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );

        IsUserVip[ iPlayer ] = 1;
    }
}

// thx cheep.suit for this public
public MessageScreenFade( iMsgId, iMsgDest, id ) {

    if( !is_user_vip( id ) ) {

        IsUserVip[ id ] = 0;
        return 1;
    }

    if( is_user_alive( id ) )
        return 1;

    if( is_user_vip( id ) && get_pcvar_num( g_cvar_enable_vip_noflash ) ) {

        static szData[ 4 ];

        szData[ 0 ] = get_msg_arg_int( 4 );
        szData[ 1 ] = get_msg_arg_int( 5 );
        szData[ 2 ] = get_msg_arg_int( 6 );
        szData[ 3 ] = get_msg_arg_int( 7 );
        
        if( szData[ 0 ] == 255 && szData[ 1 ] == 255 && szData[ 2 ] == 255 && szData[ 3] > 199 )
            return 1;
    }

    IsUserVip[ id ] = 1;

    return 0;
}

public ShowAbilityForVip( id ) {

    new iCfgDir[ 32 ], iFile[ 192 ];
        
    get_configsdir( iCfgDir, charsmax( iCfgDir ) );
    formatex( iFile, charsmax( iFile ), "%s/vip.html", iCfgDir );

    show_motd( id, iFile );
}

public ConCmdAddVip( id, level, cid ) {

    if( !cmd_access( id, level, cid, 2 ) )
        return 1;

    if( !is_user_connected( id ) || is_user_bot( id ) )
        return 1;

    new szVipName[ 33 ];
    new DataLog[ 128 ];
    
    get_user_name( id, szVipName, charsmax( szVipName ) );

    // thx CryWolf for this codes
    new File = fopen( szFile2, "a+" );
    formatex( DataLog, 127, "%s^n", szVipName );
    fputs( File, DataLog );
    fclose( File );

    new szTarget[ 32 ];
    read_argv( 1, szTarget, 31 );

    new iPlayer = cmd_target( id, szTarget, 8 );

    if( !iPlayer )
        return 1;

    new szAdminName[ 32 ], szPlayerName[ 32 ];

    get_user_name( id, szAdminName, 31 );
    get_user_name( iPlayer, szPlayerName, 31 );

    ColorChat( 0, "!3(!1ADMIN^x03)^x04 %s^x01: make VIP^x03 %s", szAdminName, szPlayerName );
    ColorChat( iPlayer, "^x04*^x01 Felicitari, ai fost adaugat ca^x03 membru VIP^x01! Daca nu stii beneficiile unui VIP, tasteaza^x03 /vip^x01!" );

    console_print( id, "* V.I.P-ul '%s'a fost adaugat in lista!", iPlayer );

    return 0;
}

public ConCmdVipsList( id, level, cid ) {

    if( !cmd_access( id, level, cid, 1 ) )
        return 1;

    new szName[ 32 ];
    get_user_name( id, szName, 31 );
    
    console_print( id, "--== | Lista membrilor VIP | ==--" );
    for( new i; i < szTotalLines; i++ ) {

        // thx KronoS # GG pentru explicatia acestei linii
        if( strcmp( szName, szVipsList[ i ] ) ) {

            console_print( id, " - %s", szVipsList[ i ] );
        }
    }
    console_print( id, "--== | Lista membrilor VIP | ==--" );

    return 0;
}

stock is_user_vip( id ) {

    new szName[ 32 ];
    get_user_name( id, szName, 31 );

    for( new i; i < szTotalLines; i++ ) {

        // thx KronoS # GG pentru explicatia acestei linii
        if( !strcmp( szName, szVipsList[ i ] ) ) {

            return 1;
        }
    }

    return 0;
}

// Fakemeta Util
stock fm_set_user_money( id, money, flash = 1 ) {

    set_pdata_int( id, OFFSET_CSMONEY, money, OFFSET_LINUX );

    message_begin( MSG_ONE, get_user_msgid( "Money" ), { 0, 0, 0 }, id );
    write_long( money );
    write_byte( flash );
    message_end(  );
}

stock fm_get_user_money( id )
    return get_pdata_int( id, OFFSET_CSMONEY, OFFSET_LINUX );

stock fm_set_user_health( id, health )
    ( health > 0 ) ? set_pev( id, pev_health, float( health ) ) : dllfunc( DLLFunc_ClientKill, id );

stock fm_get_user_health( index ) {

    new health;
    pev( index, pev_health, health );

    return health;
}

stock fm_set_user_armor( index, armor ) {

    set_pev( index, pev_armorvalue, float( armor ) );

    return 1;
}

stock fm_give_item( index, const item[  ] ) {

    if( !equal( item, "weapon_", 7 ) && !equal( item, "ammo_", 5 ) && !equal( item, "item_", 5 ) && !equal( item, "tf_weapon_", 10 ) )
        return 0;

    new ent = fm_create_entity( item );

    if( !pev_valid( ent ) )
        return 0;

    new Float:fOrigin[ 3 ];
    pev( index, pev_origin, fOrigin );

    set_pev( ent, pev_origin, fOrigin );
    set_pev( ent, pev_spawnflags, pev( ent, pev_spawnflags ) | SF_NORESPAWN );

    dllfunc( DLLFunc_Spawn, ent );

    new save = pev( ent, pev_solid );

    dllfunc( DLLFunc_Touch, ent, index );

    if( pev( ent, pev_solid ) != save )
        return ent;

    engfunc( EngFunc_RemoveEntity, ent );

    return -1;
}

stock fm_create_entity( const classname[  ] )
    return engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, classname ) );

stock ColorChat( const id, const input[  ], any:... ) {

    new iCount = 1, szPlayers[ 32 ];
    static szMsg[ 191 ];

    vformat( szMsg, 190, input, 3 );

    replace_all( szMsg, 190, "!4", "^4" );
    replace_all( szMsg, 190, "!1", "^1" );
    replace_all( szMsg, 190, "!3", "^3" );

    if( id )
        szPlayers[ 0 ] = id;
    else
        get_players( szPlayers, iCount, "ch" );

    for( new i = 0; i < iCount; i++ ) {

        if( is_user_connected( szPlayers[ i ] ) ) {

            message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, szPlayers[ i ] );
            write_byte( szPlayers[ i ] );
            write_string( szMsg );
            message_end(  );
        }
    }
}
Tero nu pot vedea statusul vip din score bord , eu personal din cauza asta nu prea il folosesc
Mi se pare scump 5 euro pentru atat de putine , in fine munca ta , pretul tau , bafta cu vanzarea , recomand
Last edited by WISHEXEC on 11 Jul 2014, 13:44, edited 2 times in total.
#Vali
Fost moderator
Fost moderator
Posts: 2611
Joined: 24 Jan 2012, 11:00
Detinator Steam: Da
SteamID: id/spryt3
Reputatie: Fost Moderator
Fost Scripter eXtreamCS.com
1.2 / 3
Location: root
Has thanked: 81 times
Been thanked: 144 times
Contact:

11 Jul 2014, 15:26

# Nu scriptez doar ce am specifiat mai sus , am spus ca sistemele vin din start cu aceste specificatii, restu comanda clientul

Mersi de up :)
User avatar
Truth*
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 766
Joined: 11 Oct 2013, 11:08
Detinator Steam: Da
SteamID: Ezeru
Reputatie: Fost moderator ajutator
Membru Club eXtreamCS (4 luni)
Nume anterior: HyperioN.
Scripter eXtreamCS
0.2 / 3
Fond eXtream: 0
Location: Sibiu
Has thanked: 44 times
Been thanked: 122 times

11 Jul 2014, 18:42

Recomand :).
P.S.: Netestat = Nu am avut timp să mă uit atent peste cod. Deci ceea ce am scris este posibil să fie greşit sau să aibă erori.

If i helped you and you wanna thank me, you can donate at this link : here
This will motivate me to help you in the future.
[If you want a private plugin send me a PM.(No complex plugins please, I am a student and I don't have the time to make those)]
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

11 Jul 2014, 22:18

Daca tot ai acel grad de scripter ar trebui sa sti sa faci ceva mai greu decat un vip,daca era wolf nu aveai gradul asta,la el pentru acest grad trebuia sa mananci pe paine acest limbaj etc etc..
On:Am vazut ca esti serios,recomand si eu.
User avatar
-Turbo-
Membru, skill +4
Membru, skill +4
Posts: 1664
Joined: 11 Nov 2012, 01:28
Detinator Steam: Da
CS Status: Bored !
Detinator server CS: Da
SteamID: kingforbidden
Reputatie: Utilizator neserios ( tepar )
Restrictie moderator
Ban scos ( achitat )
Nume anterior: Turbo19973
Location: Botosani
Has thanked: 49 times
Been thanked: 212 times

12 Jul 2014, 17:13

scosmynnnn wrote:Daca tot ai acel grad de scripter ar trebui sa sti sa faci ceva mai greu decat un vip,daca era wolf nu aveai gradul asta,la el pentru acest grad trebuia sa mananci pe paine acest limbaj etc etc..
On:Am vazut ca esti serios,recomand si eu.

A dat si el 10 euro sa-i puna gradul sa poata sa-si vanda marfa :))
ON: Daca ala e deja postat mai sus, tu ce faci in plus fata de el?
kyky123
Membru, skill 0
Membru, skill 0
Posts: 38
Joined: 11 May 2014, 13:09
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
SteamID: nextsedanromania
Has thanked: 2 times
Been thanked: 2 times
Contact:

12 Jul 2014, 17:17

recomand Vali !
User avatar
Cristi. C
Membru, skill +1
Membru, skill +1
Posts: 345
Joined: 09 Feb 2013, 01:08
Detinator Steam: Da
CS Status: I'm currently playing CSGO
SteamID: Privat
Location: Bucuresti
Has thanked: 1 time
Been thanked: 27 times

13 Jul 2014, 16:23

Bafta la vandut, Dar sunt si contra. Cum pe alliedmods primiti totu gratis, voi vindeti un amarat de plugin VIP si gata sunteti scripteri, PFF ROMANIA!!!

# Zombie Land Love Forever !! #
User avatar
R1kKk-
Membru, skill +1
Membru, skill +1
Posts: 178
Joined: 12 Apr 2013, 16:57
Detinator Steam: Da
CS Status: Batman!
Detinator server CS: HNS.JOINET.RO
SteamID: Privat...
Has thanked: 20 times
Been thanked: 17 times
Contact:

09 Aug 2014, 22:34

Nu am spus ca toti, unii chiar sunt atat de buni incat asa fac, creeaza de la ei, optimizeaza, pun in lucru ideile lor in masura mai mare decat ideile altora..
Si da, din moment ce cineva a facut o functie, o poate folosi oricand, oriunde, nu trebuie sa o rescrie din nou.
Dar eu zic in modul, ca de ex: Eu ma numesc scripter, fac pluginuri contra cost, din munca altora.
Do you understand?

Gata cu off-ul, ii stricam imaginea lui #Vali. si deviem de la subiect.
Peace off shit.
Last edited by The Kalu on 09 Aug 2014, 22:36, edited 1 time in total.
Reason: #Limbaj/Offtopic
Image Image Image
Post Reply

Return to “Anunturi”

  • Information