Jump to content

LondoN eXtream

Banned
  • Posts

    640
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by LondoN eXtream

  1. Descriere: Acest plugin l-am conceput special pentru modul Zombie Plague. Acest plugin inlocuieste grenada Napalm [Cea care face lumina] cu un Smoke care explodeaza si ofera ammo jucatorului si scade random intre 0 - 700.0 din viata ZM-ului.

     

    Download:

    #include < amxmodx >
    #include < amxmisc >
    #include < fakemeta >
    #include < hamsandwich >
    #include < engine >
    #include < zombieplague >

    #define PLUGIN "Smoke Explode"
    #define VERSION "1.0"
    #define AUTHOR "LondoN eXtream"

    #define CHAT_PREFIX "ZM"

    // pev types
    const PEV_NADE_TYPE = pev_flTimeStepSound;
    const PEV_NADE_TYPE_SMOKE = 681856;

    // Variables
    new g_Explo = 0;

    public plugin_init ( )
    {
        register_plugin ( PLUGIN, VERSION, AUTHOR );
        
        RegisterHam ( Ham_Think, "grenade", "HamThink" );
    }

    public HamThink ( entity )
    {
        if ( !pev_valid ( entity ) )
            return HAM_IGNORED;
        
        new Float:dmgtime;
        pev ( entity, pev_dmgtime, dmgtime );
        if ( dmgtime > get_gametime ( ) )
            return HAM_IGNORED;
        
        
        if ( pev ( entity, PEV_NADE_TYPE ) != PEV_NADE_TYPE_SMOKE )
            return HAM_IGNORED;
        
        SmokeExplode ( entity );
        
        engfunc ( EngFunc_RemoveEntity, entity );
        return HAM_SUPERCEDE;
    }

    SmokeExplode ( entity ) {
        new Float: Origin [ 3 ], Float: clOrigin [ 3 ], Float: Velocity [ 3 ], Float: Distance, Float: Damage;
        new Special [ 3 ], szName [ 32 ];
        new health, owner, i;
        
        pev ( entity, pev_origin, Origin );
        FVecIVec ( Origin, Special );
        
        owner = pev ( entity, pev_owner );
        
        if ( !pev_valid ( owner ) || !is_user_connected ( owner ) )
        {
            engfunc ( EngFunc_RemoveEntity, entity );
            return;
        }
        
        
        message_begin ( MSG_BROADCAST, SVC_TEMPENTITY );
        write_byte ( TE_EXPLOSION );
        write_coord ( Special [ 0 ] );
        write_coord ( Special [ 1 ] );
        write_coord ( Special [ 2 ] );
        write_short ( g_Explo );
        write_byte ( 32 );
        write_byte ( 16 );
        write_byte ( 0 );
        message_end ( );
        
        for ( i = 1; i <= get_maxplayers ( ); i++ )
        {
            if ( !is_user_alive ( i ) )
                continue;
            if ( !zp_get_user_zombie ( i ) )
                continue;
            
            pev ( i, pev_origin, clOrigin );
            Distance = get_distance_f ( Origin, clOrigin );
            if ( Distance < 330 )
            {
                Damage = 700.0 - Distance;
                health = get_user_health ( i );
                Damage = float ( floatround ( Damage ) );
                pev ( i, pev_velocity, Velocity );
                
                Velocity [ 0 ] += random_float ( -230.0, 230.0 );
                Velocity [ 1 ] += random_float ( -230.0, 230.0 );
                Velocity [ 2 ] += random_float ( 60.0, 129.0 );
                
                set_pev ( i, pev_velocity, Velocity );
                
                message_begin ( MSG_ONE_UNRELIABLE, get_user_msgid ( "ScreenFade" ), _, i );
                write_short ( 4096 );
                write_short ( 4096 );
                write_short ( 0x0000 );
                write_byte ( 225 );
                write_byte ( 0 );
                write_byte ( 0 );
                write_byte ( 220 );
                message_end ( );
                
                message_begin ( MSG_ONE_UNRELIABLE, get_user_msgid ( "ScreenShake" ), _, i );
                write_short ( 4096 * 6 );
                write_short ( 4096 * random_num ( 4, 12 ) );
                write_short ( 4096 * random_num ( 4, 12 ) );
                message_end ( );
                
                if ( health - floatround ( Damage ) < 0 )
                {
                    ExecuteHamB ( Ham_Killed, i, owner, 2 );
                }
                else
                {
                    ExecuteHamB ( Ham_TakeDamage, i, entity, owner, Damage, DMG_MORTAR );
                }
                
                get_user_name ( i, szName, sizeof ( szName ) -1 );
                ColorChat ( owner, "!x04[%s] !x03Damage to !x04%s !x03:: !x04%d", CHAT_PREFIX, szName, floatround ( Damage ) );
                
            }
        }
    }

    stock ColorChat(const id, const input[], any:...) {
    new count = 1, players[32];
    static msg[191];
    vformat(msg, 190, input, 3);

    replace_all(msg, 190, "!x04", "^4");
    replace_all(msg, 190, "!x03", "^3");

    if(id) players[0] = id;
    else get_players(players, count, "ch"); {
    for(new i = 0; i < count; i++) {
    if(is_user_connected(players)) {
    message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
    write_byte(players);
    write_string(msg);
    message_end();
    }
    }
    }
    }

     

    Credite:

    ^ionutz^ - Stock colorchat functional

    MzQ* - mi-a oferit o parte din cod anul trecut :))

     

    Instalare:

     

    1. Fisierul SmokeExplode.sma => /scripting

    2. Fisierul SmokeExplode.amxx => /plugins

    3. In plugins.ini adaugam: SmokeExplode.amxx

    4. Intram in zombieplague.cfg si dezactivam napalm nade.

     

    Module necesare:

    FakeMeta

    Engine

    Hamsandwich

     

    Sper sa va placa.

  2. Avatar/Semnatura/Logo/Banner/etc : Avatar
    Tema pozei / Stock-ul dorit ( obligatoriu ) : ZM: http://i562.photobucket.com/albums/ss67/sirtwi/rvs%20modding/zm_mbundu_05-08-2011_003.jpg        /     CS:  http://static.ddmcdn.com/gif/blogs/navy-seals-vs-delta-force.jpg
    Text principal : Alex #
    Text secundar ( rangfort / www.rangfort.ro / nume server ) : ZM.RANGFORT.RO / CS.RANGFORT.RO
    Alte precizari : As vrea ca poza sa fie impartita in 2. intr-o parte [stanga] sa fie stock-ul cu zombie si jos sa scrie zm.rangfort.ro iar in dreapta stock-ul cu cs si sa scrie cs.rangfort.ro. pe mijloc sa fie o bara care sa le desparta.

    Dimensiuni avatar ( 150 x 250 SAU 150 x 300 ) : 150x250

  3. scuzati ca ma bag dar cu asa altitudine http://rangfort.ro/forum/index.php?/topic/30101-urgent-daca-se-poate/

     

    eu nu tias da nimica dar na nu eu conduc pe aici.

    E si normal sa ma enervez cand faci 1000 de topicuri. Ti-am mai lasat odata pluginul who cu users.ini.

     

    Ai mai avut sanse de a avea acces la noi aici, insa ai dat mereu cu bata-n balta . De priceput te pricepi, nu pot sa comentez, insa sa ti se ofere sanse pana la infinit, nu prea cred . 

    Momentan lasam la parerea celorlalti din staff, si pe urma vom revenii cu o decizie finala .

    Da, si imi pare foarte rau. Dar am observat ca sunt 2 moderatori pe acea sectiune , care, nu ai nici activitate si nici experienta cat sa ajute useri. Am observat ca, atunci cand un user vine cu ceva mai complicat, seciunea ramane pustie. Userul de mai sus, cred ca are vreo 3-4 topicuri cu aceasi cerere [intr-un topic i-am lasat tot ce a cerut functional] iar el a mai deschis 2 altfel de cereri in care cerea acelasi lucru. Si nimeni nu i-a dat warn sau macar sa trimita topicurile la trash.

    Am revenit cu forte proaspete si cu un nou proiect in dezvoltare, special pentru aceasta comunitate, care sper sa  fie de folos tuturor membrilor.

    In 2 zile am reusit sa reduc sursa de la 391kb la 367kb, eliminand undeva la 2.5 mii linii, si scriptand de la 0, alte cateva mii, vrand sa fac un addons special si "moka" pentru toti/toate.

     

    EDIT: Dani, uita-te:

     

    http://rangfort.ro/forum/index.php?/topic/29606-ajutor-daca-se-poate/- i-am lasat plugin + users.ini functional si testat.

    http://rangfort.ro/forum/index.php?/topic/30101-urgent-daca-se-poate/- cred ca asta e batae de joc, sa nu stii sa iti faci un users.ini. Dupa parerea mea asta e post-hunt.

  4. Nume : Alexandru [Alex]
    Nick : Alex #
    Vârstă : 13
    Motiv : Tot mai multi detinatori au nevoie de ajutor in cea ce priveste partea tehnica [scripting], acolo unde ma pricep eu bine.
    Adresa de contact : romanya_what
    Timp alocat forumului : 3-4 ore zilnic.

    Ce secţiuni doreşti să moderezi? AMXMODX si SourceMod [m-am apucat si de CS:GO].
    De ce ai ales aceste sectiuni? Deoarece in aceste domenii ma pricep eu cel mai bine.
    De ce doreşti să moderezi în această comunitate? Pentru ca e singura comunitate care imi creaza un sentiment placut.
    Ai mai moderat pe IPB? Da.
    Ce înţelegi prin "Post hunt"? Post inutil.
    Ce înţelegi prin "Dublu post"? 2 posturi unul dupa altul, de acelasi user.
    Ce înseamnă "Warez"? Piratat.
    Ce înseamnă "NSFW"? +18
    Care este diferenţa dintre post hunt şi off-topic? Post Inutil / Abatere de la subiect.
    Ce planuri ai ca să sporeşti activitatea membrilor în secţiunile pe care doreşti să le moderezi ? De curand lucrez la un nou proiect ,care sper eu, sa aduca multe vizite acestui forum.
    Ai citit regulamentul forumului ? In mare parte [85-90%] il cunosc.

  5.  

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "Who meniu"
    #define VERSION "1.0"
    #define AUTHOR "Askwrite" // Modificat de SnowFake

    #define GRUPURI 6
    new const TITLU[] = " \r- \y[ \rXMAS.RANGFORT.RO \w- \rAdmins \y] \r-";
    new const  IESIRE[] = "\r0. \yExit";
    new const NOADMINS[] = "\rNo admins";
    #pragma semicolon 1

    new g_NumeGrade[ GRUPURI ][ ] = {
        
        "\rMos Craciun",
        "\rMos Nicolae",
        "\rElf",
        "\rRen",
        "\rCopil Cuminte",
            "\rSlot"
    };

    new g_Flaguri[ GRUPURI ][ ] = {
        
        "abcdefghijklmnopqrstu",
        "bcdefghijklmnopqrstu",
        "bcdefghijklmnopqrsu",
        "bcdefghijklmnotu",
        "bcdefghijklmno",
            "b"
        
    };


    new g_ValueFlaguri[ GRUPURI ];

    public plugin_init( ) {
        
        register_plugin( PLUGIN, VERSION, AUTHOR );
        for( new i = 0 ; i < GRUPURI ; i++ )
            g_ValueFlaguri[ i ] = read_flags( g_Flaguri[ i ] );
        
        register_clcmd("say /who", "cmdWho");
        register_clcmd("say who", "cmdWho");
        register_clcmd("say_team who", "cmdWho");
        register_clcmd("say_team /who", "cmdWho");
        register_clcmd("say /admin", "cmdWho");
        register_clcmd("say_team /admin", "cmdWho");
        register_clcmd("say /admins", "cmdWho");
        register_clcmd("say_team /admins", "cmdWho");
        register_clcmd("say /admini", "cmdWho");
        register_clcmd("say_team /admini", "cmdWho");
        
        
    }

    public cmdWho( id, page ) {
        
        new MenuName[ 64 ], MenuExitKey[ 32 ];
        
        formatex( MenuName, sizeof ( MenuName ) -1, "%s",  TITLU );
        
        formatex( MenuExitKey, sizeof ( MenuExitKey ) -1, "%s",  IESIRE );
        
        new menu = menu_create(MenuName, "InchidereMeniu");   
        
        if( AdminiON(    )  )
        {
            
            for( new i = 0; i < GRUPURI; i++  )
            {
                AdaugareA( id, menu, i );
            }
        }
        else
        {
            menu_additem( menu, NOADMINS , "1", 0 );
        }
        
        menu_setprop(menu, MPROP_EXITNAME, MenuExitKey );
        
        menu_display(id, menu, page);
        
    }


    public InchidereMeniu(id, menu, item) {
        if(item == MENU_EXIT)
        {
            menu_destroy( menu );
            return 1;
        }
        
        new data[6], iName[64];
        new iaccess, callback;
        
        menu_item_getinfo(menu, item, iaccess, data,5, iName, 63, callback);
        
        new key = str_to_num(data);
        
        switch(key)
        {
            case 1,2,3,4,5,6,7:
            {
                menu_destroy( menu );
                return 1;
            }
        }
        
        return 0;
    }

    public AdaugareA( const id, const menu,  const group  ) {
        
        new AdminMenuMessage[ 32 ][ 64 ],AdminMenuKey[ 32 ][ 32 ], MenuKey = 1;
        
        static Players[ 32 ], Num, Player;
        get_players( Players, Num, "ch" );
        
        for( new x = 0 ; x < Num ; x++ )
        {   
            Player = Players[ x ];
            if( get_user_flags( Player ) == g_ValueFlaguri[ group ] )
            {
                
                formatex( AdminMenuMessage[ MenuKey ], sizeof ( AdminMenuMessage[ ] ) -1, " \w%s \y\w%s%s  ",
                gName( Player ), g_NumeGrade[ group ], Player == id ? "\r *" : "" );
                
                formatex( AdminMenuKey[ MenuKey ], sizeof ( AdminMenuKey[ ] ) -1, "%d", MenuKey );
                
                MenuKey++;
            }
        }
        
        for( new z = 1 ; z < MenuKey ; z++ )
        {
            
            menu_additem( menu, AdminMenuMessage[ z ], AdminMenuKey[ z ], 0 );
        }
        
    }

    stock bool:AdminiON(    ) {
        new bool:AGasiti = false;
        
        static Players[ 32 ], Num, Player;
        get_players( Players, Num, "ch" );
        
        for( new x = 0 ; x < Num ; x++ )
        {   
            Player = Players[ x ];
            for( new i = 0 ; i < GRUPURI ; i++ )
            {
                if( AGasiti ) break;
                if( get_user_flags( Player ) == g_ValueFlaguri[ i ] )
                {
                    AGasiti = true;
                }
            }
        }
        
        return AGasiti ? true : false;
    }

    stock gName( id ) {
        
        new name[ 32 ];
        get_user_name( id, name, sizeof ( name ) -1 );
        
        return name;
    }

     

     

     

    ; ##################################################
     ; == USERS.INI ~ XMAS.RANGFORT.RO ~ XMAS OUTSTANDING ==
     ; ##################################################

     ; =================================================
     ; --- [ 1 ] Mos Craciun - abcdefghijklmnopqrstu ---
     ; =================================================


     ; =================================================
     ; --- [ 2 ] Mos Nicolae - bcdefghijklmnopqrstu  ---
     ; =================================================
     

     ; =================================================
     ; --- [ 3 ] Elf - bcdefghijklmnopqrsu           ---
     ; =================================================



     ; =================================================
     ; --- [ 4 ] Ren - bcdefghijklmnotu              ---
     ; =================================================



     ; =================================================
     ; --- [ 5 ] Copil Cuminte - bcdefghijklmno      ---
     ; =================================================

     ; =================================================
     ; --- [ 6 ] Slot - b                            ---
     ; =================================================



     

     

    Ramai dator :P

    Acesta e pluginul care ruleaza pe serverul meu de XMAS :P

  6.  

    #include <amxmodx>
    #include <amxmisc>
    
    #pragma tabsize 0
    #pragma semicolon 1
    
    
    public plugin_init()
    {
        register_plugin("Speak", "1.0", "LondoN a.k.a Alex#");
        
        register_clcmd("say", "cmd_say");
    }
    
    public plugin_precache()
    {
        precache_generic("fvox/pa.mp3");
        precache_generic("fvox/sall.mp3");
        precache_generic("fvox/ban.mp3");
        precache_generic("fvox/cutit.mp3");
    }
    
    public cmd_say(id) {
        new said[192];
        read_args(said, sizeof(said) -1);
        remove_quotes(said);
        
        // begin
        if(equal(said, "pa")) {
            client_cmd(0, "spk ^"fvox/pa.mp3^"");
        }
        
        if(equal(said, "sall")) {
            client_cmd(0, "spk ^"fvox/sall.mp3^"");
        }
        
        if(equal(said, "ban" )) {
            client_cmd(0, "spk ^"fvox/ban.mp3^"");
        }
        
        if(equal(said, "cutit" )) {
            client_cmd(0, "spk ^"fvox/cutit.mp3^"");
        }
        
        return PLUGIN_CONTINUE;
    }

     

    Moderatorii nu prea dau pe la aceasta sectiune vad.

  7. Avatar/Semnatura/Logo/Banner/etc : Semnatura
    Tema pozei / Stock-ul dorit ( obligatoriu ) : Zombie's Invasion
    Text principal : ZM.RANGFORT.RO
    Text secundar ( rangfort / www.rangfort.ro / nume server ) : New Life Of Zombie Mod
    Alte precizari : ceva efecte faine specifice ZM

    Dimensiuni avatar ( 150 x 250 SAU 150 x 300 ) : -

  8.  

    #include < amxmodx >
    #include < amxmisc >
    #include < cstrike >
    #include < fun >
    
    
    new const PLUGIN [ ] = "Points";
    new const VERSION [ ] = "1.3";
    new const AUTHOR [ ] = "Alex #";
    
    new Points [ 33 ];
    new SaveDataFile [ 128 ];
    
    const Float:HUD_SPECT_X = -1.0
    const Float:HUD_SPECT_Y = 0.8
    
    public plugin_init ( )
    {
        register_plugin ( PLUGIN, VERSION, AUTHOR );
        
        register_event ( "DeathMsg", "eDeath", "a" );
        
        new DataDir [ 64 ];
        get_configsdir ( DataDir, charsmax ( DataDir ) );
        format ( SaveDataFile, 127, "%s/Points.dat", DataDir );
        
        set_task ( 0.1, "TASK_MSG", _, _, _, "b" );
    }
    
    public plugin_natives ( )
    {
        register_native ( "csdm_get_user_points", "get_user_points", 1 );
        register_native ( "csdm_set_user_points", "set_user_points", 1 );
    }
    
    public get_user_points ( id )
    {
        return Points [ id ];
    }
    
    public set_user_points ( id, PointsNum )
    {
        Points [ id ] = PointsNum;
    }
    
    public eDeath ( )
    {
        new Killer = read_data ( 1 );
        new Victim = read_data ( 2 );
        new HeadShoot = read_data ( 3 );
        
        if ( Killer == Victim ) return PLUGIN_HANDLED;
        
        Points [ Killer ] += 1;
        if ( HeadShoot ) {
            Points [ Killer ] += 2;
        }
        
        return PLUGIN_CONTINUE;
    }
    
    public client_connect ( id )
    {
        LoadPoints ( id );
    }
    
    public client_disconnect ( id )
    {
        SavePoints ( id );
    }
    
    public LoadPoints ( id )
    {
        new Name [ 32 ];
        get_user_name ( id, Name, 31 );
        
        new Line [ 128 ], IsPlayer = false, Arg1 [ 32 ], Arg2 [ 32 ];
        new File = fopen ( SaveDataFile, "rt" )
        while ( !feof ( File ) ) {
            fgets ( File, Line, 127 );
            trim ( Line );
            
            parse ( Line, Arg1, 31, Arg2, 31 );
            
            if ( equali ( Arg1, Name ) ) {
                Points [ id ] = str_to_num ( Arg2 );
                IsPlayer = true;
                break;
            }
        }
        
        fclose ( File );
        
        if ( !IsPlayer )
            Points [ id ] = 0;
    }
    
    
    public SavePoints ( id )
    {
        new Name [ 32 ];
        get_user_name ( id, Name, 31 );
        
        new Save [ 1024 ];
        format ( Save, sizeof ( Save ) -1, "^"%s^" %d", Name, Points [ id ] );
        
        new Line [ 128 ], Linie, IsPlayer = false, Arg1 [ 32 ]
        
        new File = fopen ( SaveDataFile, "rt" );
        while ( !feof ( File ) ) {
            fgets ( File, Line, 127 );
            
            parse ( Line, Arg1, 31 );
            
            if ( equali ( Arg1, Name ) ) {
                write_file ( SaveDataFile, Save, Linie );
                IsPlayer = true;
                break;
            }
            
            Linie++
        }
        
        fclose ( File );
        
        if ( !IsPlayer )
            write_file ( SaveDataFile, Save, -1 );
    }
    
    public TASK_MSG ( )
    {
        static id;
        for ( id = 1; id <= get_maxplayers ( ); id++ )
        {
            if ( is_user_alive ( id ) && is_user_connected ( id ) ) {
                switch ( cs_get_user_team ( id ) )
                {
                    case CS_TEAM_T : {
                        set_hudmessage ( id, 127, 255, HUD_SPECT_X, HUD_SPECT_Y, 1, 6.0, 1.1, 0.0, 0.0, -1 );
                        show_hudmessage ( id, "Terorist, HP: %d - AP: %d - Points: %d", get_user_health ( id ), get_user_armor ( id ), Points [ id ] );
                    }
                    
                    case CS_TEAM_CT : {
                        set_hudmessage ( id, 127, 255, HUD_SPECT_X, HUD_SPECT_Y, 1, 6.0, 1.1, 0.0, 0.0, -1 )
                        show_hudmessage ( id, "Counter, HP: %d - AP: %d - Points: %d", get_user_health ( id ), get_user_armor ( id ), Points [ id ] );
                    }
                    
                    case CS_TEAM_SPECTATOR : {
                        return PLUGIN_CONTINUE;
                    }
                }
            }
            
        }
        return PLUGIN_CONTINUE;
    }

     

    ltima versiune.

  9. Acum am observat ca acest server e de GO!.

    Nu are ce cauta la aceasta categorie.

     

    Daca spui ca e facut de Hattrick , vorbeste cu el, nu cu noi [Este o mare diferenta intre AMXMODX & SourceMod]

    • Like 1
  10. #include < amxmodx >
    #include < amxmisc >
    
    new const g_szMap [ ] = "de_dust2";
    
    public plugin_init ( )
    {
        set_task ( 1.0, "TASK_MAP", _, _, _, "b" );
        
    }
    
    public TASK_MAP ( )
    {
        new Time [ 32 ];
        get_time ( "%H:%M", Time, 31 );
        
        if ( equal ( Time, "00:00" ) )
        {
            server_cmd ( "amx_map ^"%s^"", g_szMap );
            set_cvar_string ( "mp_timelimit", "0" );
        }
        
        return PLUGIN_CONTINUE;
    }

    Cat despre cvar, trebuie sa rescrii majoritatea pluginelor / modulul principal.

    P.S: Observ ca cei care au moderator aici au cam 0 cunostinte...si fac mai mult posturi de umplutura.

    • Like 1
  11.  

    #include <amxmodx>
    #include <amxmisc>
    #include <fun>
    #include <fakemeta>
    #include <hamsandwich>
    #include <engine>

    #pragma semicolon 1

    new const PLUGIN[] = "VIP";
    new const VERSION[] = "1.0";
    new const AUTHOR[] = "londoN";

    #define VIP_FLAG     "t"                     // Flag-ul VIP-ului
    #define HP_KILL      15                      // HP primiti la kill
    #define HP_HS        25                      // HP primiti la headshoot
    #define TIME_MSG     32.5                    // La cat timp sa arate in chat mesajele.

    new g_msgSayText;
    new jumpnum[33];
    new bool:dojump[33] = false;

    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR);
        
        register_clcmd("say", "cmd_say");
        
        register_message(get_user_msgid("ScoreAttrib"), "MsgScoreAttrib");
        
        register_event("DeathMsg", "eDeath", "a");
        
        RegisterHam(Ham_Spawn, "player", "HamSpawn");
        
        set_task(TIME_MSG, "TASK_MSG", _, _, _, "b");
        
        g_msgSayText = get_user_msgid("SayText");
    }

    public MsgScoreAttrib(iMsgId, iDest, iReciver) {
        new iPlayer = get_msg_arg_int(1);
        
        if(get_user_flags(iPlayer) & read_flags(VIP_FLAG)) {
            set_msg_arg_int(2, ARG_BYTE, (1<<2));
        }
    }

    public DeathMsg() {
        new killer = read_data(1);
        new victim = read_data(2);
        new headshoot = read_data(3);
        
        if(get_user_flags(killer) & read_flags(VIP_FLAG)) {
            if(killer == victim)                                return PLUGIN_HANDLED;
            if(get_user_health(killer) >= 200)                return PLUGIN_HANDLED;
            
            set_user_health(killer, get_user_health(killer) + HP_KILL);
            
            if(headshoot) {
                set_user_health(killer, get_user_health(killer) + HP_HS);
            }
        }
        return PLUGIN_CONTINUE;
    }

    public HamSpawn(id) {
        if(get_user_flags(id) & read_flags(VIP_FLAG)) {
            set_user_health(id, 100);
            set_user_armor(id, 100);
        }
        return HAM_IGNORED;
    }

    public TASK_MSG() {
        switch(random_num(1,2)) {
            case 1 : {
                ColorChat(0, "!x04[V.I.P] !x03Tasteaza in chat !x04/vip !x03pentru a vedea beneficiile vip-ului.");
                return PLUGIN_CONTINUE;
            }
            case 2 : {
                ColorChat(0, "!x04[V.I.P] !x03Tasteaza in chat !x04/vips !x03pentru a vedea VIP-ii online");
                return PLUGIN_CONTINUE;
            }
        }
        return PLUGIN_CONTINUE;
    }

    public cmd_say(id) {
        new said[192];
        read_argv(1, said, sizeof(said) -1);
        remove_quotes(said);
        if(containi(said, "/vip")) {
            new File[64], DataDir[64];
            
            get_configsdir(DataDir, charsmax(DataDir));
            formatex(File, charsmax(File), "%s/vip.txt", DataDir);
            if(!file_exists(File)) {
                ColorChat(id, "!x04[V.I.P] !x03Nu putem deschide !x04%s", File);
                return PLUGIN_HANDLED;
            }
            show_motd(id, File);
        }
        if(containi(said, "/vips")) {
            new AdminNames[33][32];
            new Message[256];
            new Count, x, len;
            if(is_user_connected(id)) {
                if(get_user_flags(id) & read_flags(VIP_FLAG)) {
                    get_user_name(id, AdminNames[Count++], 31);
                }
                len = format(Message, 255, "!x04Gold Members: !x03");
                if(Count > 0) {
                    for(x = 0; x < Count; x++) {
                        len += format(Message[len], 255-len, "%s%s", AdminNames[x], x < (Count - 1) ? ", ":"");
                        if(len > 96) {
                            ColorChat(id, Message);
                        }
                    }
                }
                else {
                    ColorChat(id, "!x04No Gold Members");
                }
            }
        }
        return PLUGIN_CONTINUE;
    }

    public client_PreThink(id) {
        if(!is_user_alive(id))                 return PLUGIN_HANDLED;
        
        new obut = get_user_oldbutton(id);
        new nbut = get_user_button(id);
        
        if(get_user_flags(id) & read_flags(VIP_FLAG)) {
            if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP)) {
                if(jumpnum[id] > 3) {
                    dojump[id] = true;
                    jumpnum[id]++;
                    return PLUGIN_CONTINUE;
                }
            }
            if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) {
                jumpnum[id] = 0;
                return PLUGIN_CONTINUE;
            }
        }
        
        return PLUGIN_CONTINUE;
    }

    public client_PostThink(id) {
        if(!is_user_alive(id))                   return PLUGIN_CONTINUE;
        
        if(get_user_flags(id) & read_flags(VIP_FLAG)) {
            if(dojump[id] == true) {
                new Float:velocity[3];
                entity_get_vector(id, EV_VEC_velocity, velocity);
                velocity[2] = random_float(265.0, 285.0);
                entity_set_vector(id, EV_VEC_velocity, velocity);
                dojump[id] = false;
                return PLUGIN_CONTINUE;
            }
        }
        
        return PLUGIN_CONTINUE;
    }

    stock ColorChat(const id, const input[], any:...) {
        new count = 1, players[32];
        static msg[191];
        vformat(msg, 190, input, 3);
        
        replace_all(msg, 190, "!x04", "^4");
        replace_all(msg, 190, "!x03", "^3");
        
        if(id) players[0] = id;
        else get_players(players, count, "ch"); {
            for(new i = 0; i < count; i++) {
                if(is_user_connected(players)) {
                    message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, players);
                    write_byte(players);
                    write_string(msg);
                    message_end();
                }
            }
        }
    }

     

     

    L-am facut dupa cum ai cerut.

  12. Normal ca atunci cand nu stie sa faca, adauga regula noua, nu mai cereti x/y. Sincer nu stiu cum ati primit grad, s-ar presupune ca daca ai grad si moderezi aceasta sectiune trebuie sa aiba si ceva cunostinte in acest domeniu.

    Pentru domnul afk, nu cred ca stii sa faci diferenta intre un plugin vip si un vip menu.

     

    Revin cu edit cand e gata.

    • Like 1
  13.  

    #define DAMAGE_RECIEVED
    #include <amxmodx>
    #include <amxmisc>
    #include <cstrike>
    #include <fun>
    #inlcude <fakemeta>
    #include <hamsandwich>
    #include <fakemeta_util>
    #include <stripweapons>
    #include <colorchat>
    #include <engine>

    #define NUMAR_DE_SARITURI 1     // 1 saritura default + 1


    static const COLOR[] = "^x04" //green
    static const CONTACT[] = ""
    new maxplayers, gmsgSayText
    new mpd, mkb, mhb
    new g_MsgSync
    new health_add
    new health_hs_add
    new health_max
    new nKiller
    new nKiller_hp
    new nHp_add
    new nHp_max
    new g_awp_active
    new g_menu_active
    new CurrentRound
    new bool:HasC4[33]
    #define Keysrod (1<<0)|(1<<1)|(1<<2)|(1<<9) // Keys: 1234567890
    #if defined DAMAGE_RECIEVED
       new g_MsgSync2
    #endif

    new bool:dojump[33] = false;
    new jumpnum[33] = 0;

    public plugin_init()
    {
       register_plugin("VIP", "3.2", "Dunno")
       mpd = register_cvar("money_per_damage","3")
       mkb = register_cvar("money_kill_bonus","200")
       mhb = register_cvar("money_hs_bonus","500")
       health_add = register_cvar("amx_vip_hp", "15")
       health_hs_add = register_cvar("amx_vip_hp_hs", "30")
       health_max = register_cvar("amx_vip_max_hp", "100")
       g_awp_active = register_cvar("awp_active", "1")
       g_menu_active = register_cvar("menu_active", "1")
       register_event("Damage","Damage","b")
       register_event("DeathMsg","death_msg","a")
       register_menucmd(register_menuid("rod"), Keysrod, "Pressedrod")
       register_clcmd("awp","HandleCmd")
       register_clcmd("sg550","HandleCmd")
       register_clcmd("g3sg1","HandleCmd")
       register_clcmd("say /wantvip","ShowMotd")
       maxplayers = get_maxplayers()
       gmsgSayText = get_user_msgid("SayText")
       register_clcmd("say", "handle_say")
       register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
       register_logevent("LogEvent_RoundStart", 2, "1=Round_Start" );
       register_event("TextMsg","Event_RoundRestart","a","2Game_w")
       register_event("TextMsg","Event_RoundRestart","a","2Game_C");
       register_event("DeathMsg", "hook_death", "a", "1>0")
       register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
       g_MsgSync = CreateHudSyncObj()
    #if defined DAMAGE_RECIEVED
       g_MsgSync2 = CreateHudSyncObj()
    #endif   
    }

    public client_PreThink(id) {
        if(!is_user_alive(id))                    return PLUHIN_HANDLED;
        
        new obut = get_user_oldbutton(id);
        new nbut = get_user_button(id);
        
        if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP)) {
            if(get_user_flags(id) & read_flags("t")) {
                if(jumpnum[id] < NUMAR_DE_SARITURI) {
                    dojump[id] = true;
                    jumpnum[id]++;
                    return PLUGIN_CONTINUE;
                }
            }
        }
        
        if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) {
            jumpnum[id] = 0;
            return PLUGIN_CONTINUE;
        }
        
        return PLUGIN_CONTINUE;
    }

    public client_PostThink(id) {
        if(!is_user_alive(id))                  return PLUGIN_HANDLED;
        
        if(get_user_flags(id) & read_flags("t")) {
            if(dojump[id] = true) {
                new Float:velocity[3];
                entity_get_vector(id, EV_VEC_velovity, velocity);
                velocity[2] = random_float9265.0, 285.0);
                entity_set_vector(id, EV_VEC_velocity, velocity);
                return PLUGIN_CONTINUE;
            }
        }
        
        return PLUGIN_CONTINUE;
    }

    public on_damage(id)
    {
       new attacker = get_user_attacker(id)

    #if defined DAMAGE_RECIEVED
       // id should be connected if this message is sent, but lets check anyway
       if ( is_user_connected(id) && is_user_connected(attacker) )
       if (get_user_flags(attacker) & ADMIN_IMMUNITY)
       {
          new damage = read_data(2)

          set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
          ShowSyncHudMsg(id, g_MsgSync2, "%i^n", damage)
    #else
       if ( is_user_connected(attacker) && if (get_user_flags(attacker) & ADMIN_IMMUNITY) )
       {
          new damage = read_data(2)
    #endif
          set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
          ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)
       }
    }

    public Damage(id)
    {
       new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
       if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
       if (get_user_flags(attacker) & ADMIN_IMMUNITY)
       {
          new money = read_data(2) * get_pcvar_num(mpd)
          if(hitpoint==1) money += get_pcvar_num(mhb)
          cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
       }
    }

    public death_msg()
    {
       if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
    }

    public LogEvent_RoundStart()
    {
       CurrentRound++;
       new players[32], player, pnum;
       get_players(players, pnum, "a");
       for(new i = 0; i < pnum; i++)
       {
          player = players;
          if(is_user_alive(player) && get_user_flags(player) & ADMIN_IMMUNITY)
          {
             give_item(player, "weapon_hegrenade")
             give_item(player, "weapon_flashbang")
             give_item(player, "weapon_flashbang")
             give_item(player, "weapon_smokegrenade")
             give_item(player, "item_assaultsuit")
             give_item(player, "item_thighpack")
             
             if (!get_pcvar_num(g_menu_active))
                return PLUGIN_CONTINUE
             
             if(CurrentRound >= 3)
             {
                Showrod(player);
             }
          }
       }
       return PLUGIN_HANDLED
    }

    public Event_RoundRestart()
    {
       CurrentRound=0;
    }

    public hook_death()
    {
       // Killer id
       nKiller = read_data(1)
       
       if ( (read_data(3) == 1) && (read_data(5) == 0) )
       {
          nHp_add = get_pcvar_num (health_hs_add)
       }
       else
          nHp_add = get_pcvar_num (health_add)
       nHp_max = get_pcvar_num (health_max)
       // Updating Killer HP
       if(!(get_user_flags(nKiller) & ADMIN_IMMUNITY))
       return;

       nKiller_hp = get_user_health(nKiller)
       nKiller_hp += nHp_add
       // Maximum HP check
       if (nKiller_hp > nHp_max) nKiller_hp = nHp_max
       set_user_health(nKiller, nKiller_hp)
       // Hud message "Healed +15/+30 hp"
       set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
       show_hudmessage(nKiller, "Healed +%d hp", nHp_add)
       // Screen fading
       message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
       write_short(1<<10)
       write_short(1<<10)
       write_short(0x0000)
       write_byte(0)
       write_byte(0)
       write_byte(200)
       write_byte(75)
       message_end()

    }

    public Showrod(id) {
       show_menu(id, Keysrod, "Meniu arme^n\w1. M4+Deagle^n\w2. AK47+Deagle^n\w3. AWP + Deagle^n\w0. Iesire^n", -1, "rod") // Display menu
    }
    public Pressedrod(id, key) {
       /* Menu:
       * VIP Menu
       * 1. Get M4A1+Deagle
       * 2. Get AK47+Deagle
       * 3. Get AWP+Deagle
       * 0. Exit
       */
       switch (key) {
          case 0: {
             if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
                HasC4[id] = true;
             else
                HasC4[id] = false;
               
             strip_user_weapons (id)
             give_item(id,"weapon_m4a1")
             give_item(id,"ammo_556nato")
             give_item(id,"ammo_556nato")
             give_item(id,"ammo_556nato")
             give_item(id,"weapon_deagle")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"weapon_knife")
             give_item(id,"weapon_hegrenade")
             give_item(id, "weapon_flashbang");
             give_item(id, "weapon_flashbang");
             give_item(id, "weapon_smokegrenade");
             give_item(id, "item_assaultsuit");
             give_item(id, "item_thighpack");
             ColorChat(id, GREEN, "[V.I.P]^x01 Ai primit un^x04 M4A1^x01 si un^x04 Deagle !")
             
             if (HasC4[id])
             {
                give_item(id, "weapon_c4");
                cs_set_user_plant( id );
             }
             }
          case 1: {
             if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
                HasC4[id] = true;
             else
                HasC4[id] = false;
               
             strip_user_weapons (id)
             give_item(id,"weapon_ak47")
             give_item(id,"ammo_762nato")
             give_item(id,"ammo_762nato")
             give_item(id,"ammo_762nato")
             give_item(id,"weapon_deagle")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"weapon_knife")
             give_item(id,"weapon_hegrenade")
             give_item(id, "weapon_flashbang");
             give_item(id, "weapon_flashbang");
             give_item(id, "weapon_smokegrenade");
             give_item(id, "item_assaultsuit");
             give_item(id, "item_thighpack");
             ColorChat(id, GREEN, "[V.I.P]^x01 Ai primit un^x04 Ak47^x01 si un^x04 Deagle !")
             
             if (HasC4[id])
             {
                give_item(id, "weapon_c4");
                cs_set_user_plant( id );
             }
             }
          case 2: {
             if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
                HasC4[id] = true;
             else
                HasC4[id] = false;
               
             strip_user_weapons (id)
             give_item(id,"weapon_awp")
             give_item(id,"ammo_338magnum")
             give_item(id,"ammo_338magnum")
             give_item(id,"ammo_338magnum")
             give_item(id,"weapon_deagle")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"ammo_50ae")
             give_item(id,"weapon_knife")
             give_item(id,"weapon_hegrenade")
             give_item(id, "weapon_flashbang");
             give_item(id, "weapon_flashbang");
             give_item(id, "weapon_smokegrenade");
             give_item(id, "item_assaultsuit");
             give_item(id, "item_thighpack");
             ColorChat(id, GREEN, "[V.I.P]^x01 Ai primit un^x04 AWP7^x01 si un^x04 Deagle !")
             
             if (HasC4[id])
             {
                give_item(id, "weapon_c4");
                cs_set_user_plant( id );
             }
             }
          case 9: {          
          }
       }
       return PLUGIN_CONTINUE
    }

    public HandleCmd(id){
       if (!get_pcvar_num(g_awp_active))
          return PLUGIN_CONTINUE
       if(get_user_flags(id) & ADMIN_IMMUNITY)
          return PLUGIN_CONTINUE
       client_print(id, print_center, "Sniper's Only For VIP's")
       return PLUGIN_HANDLED
    }

    public ShowMotd(id)
    {
    show_motd(id, "vip.txt")
    }

    public handle_say(id) {
       new said[192]
       read_args(said,192)
       if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vips") != -1 )
          set_task(0.1,"print_adminlist",id)
       return PLUGIN_CONTINUE
    }

    public print_adminlist(user)
    {
       new adminnames[33][32]
       new message[256]
       new contactinfo[256], contact[112]
       new id, count, x, len
       
       for(id = 1 ; id <= maxplayers ; id++)
          if(is_user_connected(id))
             if(get_user_flags(id) & ADMIN_IMMUNITY)
                get_user_name(id, adminnames[count++], 31)

       len = format(message, 255, "%s VIP ONLINE: ",COLOR)
       if(count > 0) {
          for(x = 0 ; x < count ; x++) {
             len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
             if(len > 96 ) {
                print_message(user, message)
                len = format(message, 255, "%s ",COLOR)
             }
          }
          print_message(user, message)
       }
       else {
          len += format(message[len], 255-len, "Nu este nici un V.I.P conectat.")
          print_message(user, message)
       }
       
       get_cvar_string("amx_contactinfo", contact, 63)
       if(contact[0])  {
          format(contactinfo, 111, "%s Contact Server Admin -- %s", COLOR, contact)
          print_message(user, contactinfo)
       }
    }

    print_message(id, msg[]) {
       message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
       write_byte(id)
       write_string(msg)
       message_end()
    }

     

     

    Incearca.

×
×
  • Create New...