Jump to content

Abc123

Membru
  • Posts

    32
  • Joined

  • Last visited

Posts posted by Abc123

  1. Quote

    #include <amxmodx>
    #include <cstrike>
    #include <engine>
    #include <fun>
    #include <fakemeta_util>
    #include <hamsandwich>
    #include <colorchat>


    #define PLUGIN "VIP"
    #define VERSION "1.0"
    #define AUTHOR "Abc"


    #define ADMIN_GOLD    ADMIN_LEVEL_H //t
    #define ADMIN_SILVER    ADMIN_LEVEL_G //s


    #define SCOREATTRIB_DEAD    ( 1 << 0 )
    #define SCOREATTRIB_VIP  ( 1 << 2 )


    //new bool:g_iRunda[ 33 ], bool:g_iRound[ 33 ];
    new Cvar_VIP
    new Runda_Arme = 3
    new bool: Activare = false
    new Contor = 0
    new g_szMessage[256]
    new const g_szBeginning[ ] = "Membrii VIP"


    const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
    const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);


    new mkb,mhb,cvar_vip_maxhp,cvar_vip_maxap,cvar_hp_kill_premium,cvar_ap_kill_premium,cvar_hp_kill_classic,cvar_ap_kill_classic,cvar_vip_jump
    new cvar_tag,cvar_vip_in_out,jumpnum[33], bool: dojump[33],cvar_vip_showC,cvar_vip_showH,SyncHudMessage


    public plugin_init () {
        
        register_plugin ("PLUGIN", "VERSION", "AUTHOR")
        new MapName[32]
        get_mapname(MapName,31)
        if(MapName[0] == 'a' && MapName[1] == 'w' && MapName[2] == 'p')
            pause("ac","vip.amxx")
        if(equal(MapName,"35hp_2"))
            pause("ac","vip.amxx")
        if(equal(MapName,"35hp"))
            pause("ac","vip.amxx")    
        


        register_clcmd("say /vip", "vip_info")
        register_clcmd("say /vips", "print_adminlist")
        RegisterHam(Ham_Spawn, "player", "cmdSpawn", 1)
        register_event("DeathMsg", "eDeathMsg", "a")
        register_logevent("RoundStart", 2, "1=Round_Start")
        register_message(get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib")
        Cvar_VIP = register_cvar("amx_vip" , "0")
        cvar_vip_in_out = register_cvar("amx_vip_in_out", "1")
        cvar_tag = register_cvar("amx_vip_tag", "VIP")
        cvar_vip_jump = register_cvar("amx_vip_jump", "1" )
        cvar_hp_kill_premium = register_cvar("amx_vip_addhp", "10")    
        cvar_ap_kill_premium = register_cvar("amx_vip_addap", "5")
        cvar_hp_kill_classic = register_cvar("amx_vip_addhp", "5")    
        cvar_ap_kill_classic = register_cvar("amx_vip_addap", "5")
        cvar_vip_maxhp = register_cvar("amx_vip_maxhp", "120")
        cvar_vip_maxap = register_cvar("amx_vip_maxap", "120")    
        mkb = register_cvar("money_kill_bonus","500")
        mhb = register_cvar("money_hs_bonus","800")
        cvar_vip_showC = register_cvar("amx_vip_show_chat", "1")
        cvar_vip_showH = register_cvar("amx_vip_show_hud", "1")
        
        
        
        set_task( 1.0, "TaskDisplayVips", _, _, _, "b", 0 )
        SyncHudMessage = CreateHudSyncObj( )


        
        
    }


    public TaskDisplayVips( )
    {
        if(get_pcvar_num(cvar_vip_showH))
        {
            static iPlayers[ 32 ];
            static iPlayersNum;
        
            get_players( iPlayers, iPlayersNum, "ch" );
            if( !iPlayersNum )
                return 1;
        
            static iVipsConnected, szVipsNames[ 128 ], szName[ 32 ];
            formatex( szVipsNames, sizeof ( szVipsNames ) -1, "" ); // Is this needed ?
            iVipsConnected = 0;
        
            static id, i;
            for( i = 0; i < iPlayersNum; i++ )
            {
                id = iPlayers[ i ];
                if( get_user_flags( id ) & ADMIN_GOLD )
                {
                    get_user_name( id, szName, sizeof ( szName ) -1 );
                
                    add( szVipsNames, sizeof ( szVipsNames ) -1, szName );
                    add( szVipsNames, sizeof ( szVipsNames ) -1, "^n" );
                
                    iVipsConnected++;
                }
            }
        
            formatex( g_szMessage, sizeof ( g_szMessage ) -1, "%s ( %i )^n%s",
                g_szBeginning, iVipsConnected, szVipsNames );
            
            set_hudmessage( 25, 255, 25, 0.01, 0.25, 0, 0.0, 1.0, 0.1, 0.1, -1 );
            ShowSyncHudMsg( 0, SyncHudMessage, g_szMessage );
        }
        return PLUGIN_CONTINUE;
            
    }


    public print_adminlist(user)
    {
        if(get_pcvar_num(cvar_vip_showC))
        {
            new tag[32];
            get_pcvar_string(cvar_tag, tag, charsmax(tag));
        
            new adminnames[33][32];
            new message[256];
            new id, count, x, len;


            for(id = 1 ; id <= get_maxplayers() ; id++)
                if(is_user_connected(id))
                    if(get_user_flags(id) & ADMIN_GOLD || get_user_flags(id) & ADMIN_SILVER)
                        get_user_name(id, adminnames[count++], charsmax(adminnames[ ]));
        
            len = format(message, 255, "^3[%s] ^1VIP-ii online sunt:^4 " ,tag);
            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, " ");
                    }
                    }
                print_message(user, message);
                }
            else
            {
                ColorChat(0, GREEN, "^3[%s] ^1Nu sunt ^4VIP^1-i online.", tag);
            }
        }
        return PLUGIN_CONTINUE;  
    }


    print_message(id, msg[])
    {
        message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
        write_byte(id);
        write_string(msg);
        message_end();
    }


    public MessageScoreAttrib(iMsgID, iDest, iReceiver) // Display VIP pe TAB
    {
            new iPlayer = get_msg_arg_int(1);
            if(is_user_connected( iPlayer )
            && (get_user_flags( iPlayer ) & ADMIN_GOLD))
            {
                    set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
                }
    }


    public in(id)     
    {
        if(get_pcvar_num(cvar_vip_in_out))
        {
            new tag[32], name[32];


            get_pcvar_string(cvar_tag, tag, charsmax(tag));
            get_user_name(id, name, charsmax(name));


            if(get_user_flags(id) & ADMIN_GOLD || get_user_flags(id) & ADMIN_SILVER)   
            {
                ColorChat(0, GREEN, "^3[%s] ^1VIP: ^4%s ^1s-a conectat.", tag, name);
            }
            return PLUGIN_HANDLED;
        }
        return PLUGIN_CONTINUE;
    }


    public out(id)     
    {    
        if(get_pcvar_num(cvar_vip_in_out))
        {
            new tag[32], name[32];


            get_pcvar_string(cvar_tag, tag, charsmax(tag));
            get_user_name(id, name, charsmax(name));


            if(get_user_flags(id) & ADMIN_GOLD || get_user_flags(id) & ADMIN_SILVER)   
            {
                ColorChat(0, GREEN, "^3[%s] ^1VIP: ^4%s ^1s-a deconectat.", tag, name);
            }
            return PLUGIN_HANDLED;
        }
        return PLUGIN_CONTINUE;
    }


    public client_connect(id) {
        if(get_pcvar_num(Cvar_VIP) !=0 && !(get_user_flags(id) & ADMIN_SILVER))
            set_user_flags(id,get_user_flags(id) + 262144)
    }


    public client_PreThink(id)
    {
        if(!is_user_alive(id))
            return PLUGIN_CONTINUE;


        new BUTON = get_user_button(id)
        new OLDBUTON = get_user_oldbutton(id)
        new JUMP_VIP = get_pcvar_num(cvar_vip_jump)


        if((BUTON & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(OLDBUTON & IN_JUMP))
        {
            if(((get_user_flags(id) & ADMIN_GOLD) && (jumpnum[id] < JUMP_VIP)))
            {
                dojump[id] = true
                jumpnum[id]++
            }
        }


        if((BUTON & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
        {
            jumpnum[id] = 0
        }


        return PLUGIN_CONTINUE;
    }


    public client_PostThink(id)
    {
        if(!is_user_alive(id))
            return PLUGIN_CONTINUE;


        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;
    }


    public client_putinserver(id)
    {    
        set_task(2.0, "in", id)
        jumpnum[id] = 0
        dojump[id] = false
    }


    public client_disconnect(id)
    {
        set_task(2.0, "out", id)
        jumpnum[id] = 0;
        dojump[id] = false;
    }


    public vip_info(id)
    {
        show_motd(id, "/addons/amxmodx/configs/vip_info.html");
    }


    public eDeathMsg()
    {
        new id_Killer = read_data(1);
        new VIP_MAXHP = get_pcvar_num(cvar_vip_maxhp);
        new VIP_MAX_HP = get_user_health(id_Killer);
        new VIP_MAXAP = get_pcvar_num(cvar_vip_maxap);
        new VIP_MAX_AP = get_user_armor(id_Killer);


        if(is_user_alive(id_Killer))
        {
            if(get_user_flags(id_Killer) & ADMIN_GOLD && read_data(3) == 0)
                {
                    set_user_health(id_Killer, get_user_health(id_Killer) + get_pcvar_num(cvar_hp_kill_premium));
                    set_user_armor(id_Killer, get_user_armor(id_Killer) + get_pcvar_num(cvar_ap_kill_premium));
                    cs_set_user_money(id_Killer,cs_get_user_money(id_Killer) + get_pcvar_num(mkb))
                }
            if(get_user_flags(id_Killer) & ADMIN_GOLD && read_data(3) == 1)
                {
                    set_user_health(id_Killer, get_user_health(id_Killer) + get_pcvar_num(cvar_hp_kill_premium));
                    set_user_armor(id_Killer, get_user_armor(id_Killer) + get_pcvar_num(cvar_ap_kill_premium));
                    cs_set_user_money(id_Killer,cs_get_user_money(id_Killer) + get_pcvar_num(mkb))
                }    
            if(get_user_flags(id_Killer) & ADMIN_SILVER && read_data(3) == 1 && !(get_user_flags(id_Killer) & ADMIN_GOLD))
                {
                    set_user_health(id_Killer, get_user_health(id_Killer) + get_pcvar_num(cvar_hp_kill_classic));
                    set_user_armor(id_Killer, get_user_armor(id_Killer) + get_pcvar_num(cvar_ap_kill_classic));
                    cs_set_user_money(id_Killer,cs_get_user_money(id_Killer) + get_pcvar_num(mhb))
                }
            if(get_user_flags(id_Killer) & ADMIN_SILVER && read_data(3) == 0 && !(get_user_flags(id_Killer) & ADMIN_GOLD))
                {
                    cs_set_user_money(id_Killer,cs_get_user_money(id_Killer) + get_pcvar_num(mkb))
                }
        }
        if(VIP_MAX_HP >= VIP_MAXHP)
            {
                set_user_health(id_Killer, get_pcvar_num(cvar_vip_maxhp));
                return PLUGIN_HANDLED;
            }
        
        if(VIP_MAX_AP >= VIP_MAXAP)
            {
                set_user_armor(id_Killer, get_pcvar_num(cvar_vip_maxap));
                return PLUGIN_HANDLED;
            }


        return PLUGIN_HANDLED;
    }


            
        
                    
    /*
    public Gold ( id )
    {
        if (get_user_flags(id) & ADMIN_GOLD)
        {
            GoldMenu( id );
            g_iRunda[id] = true
        }
        else
        {
            Chat_Color(id, "%sNu ai acces la aceasta comanda",GoldTag)
            return 1;
        }
        return 0
    }


    public Silver ( id )
    {
        if (get_user_flags(id) & ADMIN_SILVER)
        {
            SilverMenu( id )
            g_iRound[id] = true
        }
        else
        {
            Chat_Color(id, "%sNu ai acces la aceasta comanda",SilverTag)
            return 1;
        }
        return 0
    }
    */
    public GoldMenu( id )
    {    
        /*if(g_iRunda[id])
        {
            Chat_Color(id, "%sAi folosit deja odata,mai poti doar runda urmatoare",GoldTag)
            return 1
        }*/
        
        static menu;
        menu = menu_create ("\yVIPMENU\r Gold","menu_gold");
        
        menu_additem ( menu,"\w M4A1\r +\w Deagle +\rGrenades","1", ADMIN_GOLD)
        menu_additem ( menu,"\w AK47\r +\w Deagle +\rGrenades","2", ADMIN_GOLD)
        menu_additem ( menu,"\w AWP\r +\w Deagle +\rGrenades","3", ADMIN_GOLD)
        
        menu_setprop ( menu, MPROP_NUMBER_COLOR,"\y");
        menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
        
        menu_display ( id, menu, 0 );
        return 0;
    }


    public menu_gold ( id, menu, item )
    {
        if ( item == MENU_EXIT )
        {
            menu_destroy ( menu );
            return 1;
        }
        
        new data [ 6 ], szName [ 64 ];
        new access, callback;
        
        menu_item_getinfo ( menu, item, access, data, charsmax ( data ), szName, charsmax ( szName ), callback );
        
        new key = str_to_num ( data );
        
        switch ( key )
        {
            case 1:
            {
                drop_weapons(id,1)
                drop_weapons(id,2)
                give_item(id, "weapon_hegrenade")
                give_item(id, "weapon_flashbang")
                cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
                give_item(id, "item_assaultsuit")
                give_item(id, "item_thighpack")
                give_item(id, "weapon_deagle");
                cs_set_user_bpammo( id, CSW_DEAGLE, 35 );
                give_item ( id,"weapon_m4a1" )
                cs_set_user_bpammo( id, CSW_M4A1, 90 );
                
            }
            case 2:
            {
                drop_weapons(id,1)
                drop_weapons(id,2)
                give_item(id, "weapon_hegrenade")
                give_item(id, "weapon_flashbang")
                cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
                give_item(id, "item_assaultsuit")
                give_item(id, "item_thighpack")
                give_item ( id,"weapon_deagle" );
                cs_set_user_bpammo( id, CSW_DEAGLE, 35 );                
                give_item ( id,"weapon_ak47" )
                cs_set_user_bpammo( id, CSW_AK47, 90 )
                
            }       
            case 3:
            {
                drop_weapons(id,1)
                drop_weapons(id,2)
                give_item(id, "weapon_hegrenade")
                give_item(id, "weapon_flashbang")
                cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
                give_item(id, "item_assaultsuit")
                give_item(id, "item_thighpack")
                give_item ( id,"weapon_deagle" );
                cs_set_user_bpammo( id, CSW_DEAGLE, 35 );                
                give_item ( id,"weapon_awp" )
                cs_set_user_bpammo( id, CSW_AWP, 30 )
                
            }               
        }
        menu_destroy ( menu );
        return 1;
    }


    public cmdSpawn(id) {
        if(get_user_flags(id) & ADMIN_GOLD && is_user_alive(id)) {
            if(Activare)
                GoldMenu( id )
        }
        else if(get_user_flags(id) & ADMIN_SILVER && is_user_alive(id))
        {
            if(Activare)
                SilverMenu( id )
        }
        
        if(get_pcvar_num(Cvar_VIP) !=0 && !(get_user_flags(id) & ADMIN_SILVER))
            set_user_flags(id,get_user_flags(id) + 262144)


        
    }


    public SilverMenu ( id )
    {
    /*    if(g_iRound[id])
        {
            Chat_Color(id, "%sAi folosit deja odata,incearca runda urmatoare",SilverTag)
            return 1;
        }
    */    
        static menu;
        menu = menu_create ("\yVIPMENU\r Silver","menu_silver");
        
        menu_additem ( menu,"\w M4A1\r +\w Deagle +\rGrenades","1", ADMIN_SILVER)
        menu_additem ( menu,"\w AK47\r +\w Deagle +\rGrenades","2", ADMIN_SILVER)


        menu_setprop ( menu, MPROP_NUMBER_COLOR,"\y");
        menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
        
        menu_display ( id, menu, 0 );
        return 0;
    }


    public menu_silver ( id, menu, item )
    {
        if ( item == MENU_EXIT )
        {
            menu_destroy ( menu );
            return 1;
        }
        
        new data [ 6 ], szName [ 64 ];
        new access, callback;
        
        menu_item_getinfo ( menu, item, access, data, charsmax ( data ), szName, charsmax ( szName ), callback );
        
        new key = str_to_num ( data );
        
        switch ( key )
        {
            case 1:
            {
                drop_weapons(id,1)
                drop_weapons(id,2)
                give_item(id, "weapon_hegrenade")
                give_item(id, "weapon_flashbang")
                cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
                give_item(id, "item_assaultsuit")
                give_item(id, "item_thighpack")
                give_item ( id,"weapon_deagle" )
                cs_set_user_bpammo( id, CSW_DEAGLE, 35 )              
                give_item ( id,"weapon_m4a1" )
                cs_set_user_bpammo( id, CSW_M4A1, 90 )
                
            }
            case 2:
            {
                drop_weapons(id,1)
                drop_weapons(id,2)
                give_item(id, "weapon_hegrenade")
                give_item(id, "weapon_flashbang")
                cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
                give_item(id, "item_assaultsuit")
                give_item(id, "item_thighpack")
                give_item ( id,"weapon_deagle" )
                cs_set_user_bpammo( id, CSW_DEAGLE, 35 )                
                give_item ( id,"weapon_ak47" )
                cs_set_user_bpammo( id, CSW_AK47, 90 )
            }               
        }
        menu_destroy ( menu );
        return PLUGIN_HANDLED
    }


    public RoundStart( )
    {
        Contor++
        if(Contor >= Runda_Arme)
            Activare = true
            
    }


    stock Chat_Color(const id, const input[], any:...)
    {
        new count = 1, players[32]
        static msg[191]
        vformat(msg, 190, input, 3)
        
        replace_all(msg, 190, "!g", "^4")
        replace_all(msg, 190, "!y", "^1")
        replace_all(msg, 190, "!team", "^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();
            }
        }
    }
    }


    stock drop_weapons(id, dropwhat)
    {
        static Weapons[32], Num, i, WeaponID;
        Num = 0;
        get_user_weapons(id, Weapons, Num);
        for(i = 0; i < Num; i ++)
        {
            WeaponID = Weapons;
            if((dropwhat == 1 && ((1 << WeaponID) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1 << WeaponID) & SECONDARY_WEAPONS_BIT_SUM )))
            {
                static DropName[32], WeaponEntity;
                get_weaponname(WeaponID, DropName, charsmax(DropName));
                WeaponEntity = fm_find_ent_by_owner(-1, DropName, id);
                set_pev(WeaponEntity, pev_iuser1, cs_get_user_bpammo (id, WeaponID));
                engclient_cmd(id, "drop", DropName);
                cs_set_user_bpammo(id, WeaponID, 0);
            }
        }
    }

    Il compilezi exact asa cum este, ca sa sti este vip pe fragul "t" oricine are flagul "t" apare ca VIP, meniul de arme este exact asa cum doresti, cu 2x jump si ca sa sti nu merge vip pe flagul "s" doar pe "t", l-am facut pentru mine, am vrut sa bag vip gold si vip silver, dar am renuntat si am dezactivat din script silver vip, a ramas doar gold vip-ul exact asa cum il doresti, plugin creat de la 0 de mine si testat si verificat, si functioneaza 100%, ca sa vezi si tu ca functioneaza te astept pe Clujenii.RANGFORT.Ro (Serverul meu)

    Sper ca te-am ajutat, daca ti-am fost defolos, te rog lasa si tu un like la comentariu, multumesc.

    • Like 1
  2. Nume canal: Clujenii.RANGFORT.Ro

    Deținător canal: Abc

    Cati membrii vor activa pe acest canal: Suntem 2 detinatori+un admin, iar restul in functie de cati membri mai sunt...

    Daca se mai poate adauga subcategoria AFK respectiv Staff Only cu parola care o voi da in privat..

  3. Scuza-ma ca nu joc cu wall ca sa spui ca joc cu wall. Si in plus ce ca am dat "prefire" sau "wallbang" astea se numesc wall?

    Iti arat ca ma duc la Internet Caffe si joc exact la fel. Atata tot ca aici acasa am nVidia E8 si la Internet Caffe o sa am cs 1.6...

    Ori cum daca jucam cu wall nu ma mai chinuiam sa fac aceasta cerere si in plus se vede foarte clar si pe poze ca nu am wall....

×
×
  • Create New...