Raised This Month: $ Target: $400
 0% 

[Fix]Vipmenu


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
driger38
Senior Member
Join Date: Apr 2011
Old 01-01-2014 , 13:21   [Fix]Vipmenu
Reply With Quote #1

Code:
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < fakemeta >
#include < fun >
#include < hamsandwich >

#define PLUGIN "VIP Menu"
#define VERSION "1.0"
#define AUTHOR "AMXX Community"

#define JUMPS_NUMBER 1 // 1 means +1 (2 jumps)

enum _:Items {
    HEALTH = 0,
    HEGRENADE,
    RESPAWN,
    AMMO,
    DOUBLE_JUMP,
    SILENT_RUN
};

new const g_szMenuItems[ ][ ] = {
    "+25 HP",
    "Hegrenade",
    "Respawn (25hp)",
    "Ammo Refill",
    "Double Jump"
//    "Silent Run"
};

new const g_szRegClCmd[ ][ ] = {
    "say /vipmenu",
    "say .vipmenu",
    "say vipmenu",
    "say_team .vipmenu",
    "say_team /vipmenu",
    "say_team vipmenu"
};

new bool:g_bItemUsed[ 33 ][ Items ];
new bool:g_bMenuOpened[ 33 ];
new bool:g_bDoJump[ 33 ];
new g_iJumps[ 33 ], g_Callback;

public plugin_init( ) {
    register_plugin( PLUGIN, VERSION, AUTHOR );
    
    register_event( "HLTV", "Event_NewRound", "a", "1=0", "2=0" );
    
    for( new i = 0; i < sizeof( g_szRegClCmd ); i++ )
        register_clcmd( g_szRegClCmd[ i ], "Menu_Vip", ADMIN_RESERVATION );
    
    g_Callback = menu_makecallback( "MenuItems_Check" );
    
    RegisterHam( Ham_Spawn, "player", "Forward__PlayerSpawn_Post", 1 );
    register_forward( FM_PlayerPreThink, "Forward__PlayerPreThink" );
    register_forward( FM_PlayerPostThink, "Forward__PlayerPostThink" );
}

public Menu_Vip( id, lvl, cid ) {
    if( !has_flag( id, "b" ) || g_bMenuOpened[ id ] )
        return PLUGIN_HANDLED;
    
    new menu = menu_create( "V.I.P Menu", "MenuHandler_Vip" );
    
    for( new i = 0; i < sizeof( g_szMenuItems ); i++ )
        menu_additem( menu, g_szMenuItems[ i ], _, _, g_Callback );
    
    menu_display( id, menu, 0 );
    return PLUGIN_HANDLED;
}

public MenuItems_Check( id, menu, item ) {
    switch( item ) {
        case 0: {
            if( g_bItemUsed[ id ][ HEALTH ] || pev( id, pev_health ) > 75.0 )            
                return ITEM_DISABLED;    
        }
        case 1: {
            if( g_bItemUsed[ id ][ HEGRENADE ] || user_has_weapon( id, CSW_HEGRENADE ) )
                return ITEM_DISABLED;
        }
        case 2: {
            if( g_bItemUsed[ id ][ RESPAWN ] || pev( id, pev_health ) > 25.0 )
                return ITEM_DISABLED;
        }
        case 3: {
            if( g_bItemUsed[ id ][ AMMO ] )
                return ITEM_DISABLED;
        }
        case 4: {
            if( g_bItemUsed[ id ][ DOUBLE_JUMP ] )
                return ITEM_DISABLED;
        }
        case 5: {
            if( g_bItemUsed[ id ][ SILENT_RUN ] )            
                return ITEM_DISABLED;
        }
    }
    return ITEM_ENABLED;
}

public MenuHandler_Vip( id, menu, item ) {
    if( item == MENU_EXIT ) {
        menu_destroy( menu );
        return PLUGIN_HANDLED;
    }
    
    switch( item ) {
        case 0:
        {   
            set_pev( id, pev_health, pev( id, pev_health ) + 25.0 );
            g_bItemUsed[ id ][ HEALTH ] = true; 
        }
        case 1:
        {
            give_item( id, "weapon_hegrenade" );
            g_bItemUsed[ id ][ HEGRENADE ] = true; 
        }
        case 2:
        {
            ExecuteHamB( Ham_CS_RoundRespawn, id );
            g_bItemUsed[ id ][ RESPAWN ] = true;  
        }
        case 3:
        {
            new iWeapon = get_user_weapon( id );
            set_weapon_fullammo( id, iWeapon );
            
            g_bItemUsed[ id ][ AMMO ] = true;    
        }
        case 4:
        {
            g_bItemUsed[ id ][ DOUBLE_JUMP ] = true;
        }
        case 5:
        {
            set_user_footsteps( id, 1 );
            g_bItemUsed[ id ][ SILENT_RUN ] = true; 
        }
    }     
    g_bMenuOpened[ id ] = true;
    menu_destroy( menu );
    return PLUGIN_HANDLED;
}

public Event_NewRound( iPlayer ) {
    g_bItemUsed[ iPlayer ][ HEALTH ] = false;
    g_bItemUsed[ iPlayer ][ HEGRENADE ] = false;
    g_bItemUsed[ iPlayer ][ RESPAWN ] = false;
    g_bItemUsed[ iPlayer ][ AMMO ] = false;
    
    if( g_bItemUsed[ iPlayer ][ DOUBLE_JUMP ] ) {
        g_bItemUsed[ iPlayer ][ DOUBLE_JUMP ] = false;
        g_bDoJump[ iPlayer ] = false;
        g_iJumps[ iPlayer ] = 0; 
    }
    
    if( g_bItemUsed[ iPlayer ][ SILENT_RUN ] ) {
        g_bItemUsed[ iPlayer ][ SILENT_RUN ] = false;
        set_user_footsteps( iPlayer, 0 );   
    }    
    
    g_bMenuOpened[ iPlayer ] = false;      
}    

public Forward__PlayerSpawn_Post( iPlayer ) {
    g_bItemUsed[ iPlayer ][ HEALTH ] = false;
    g_bItemUsed[ iPlayer ][ HEGRENADE ] = false;
    g_bItemUsed[ iPlayer ][ RESPAWN ] = false;
    g_bItemUsed[ iPlayer ][ AMMO ] = false;
    
    if( g_bItemUsed[ iPlayer ][ DOUBLE_JUMP ] ) {
        g_bItemUsed[ iPlayer ][ DOUBLE_JUMP ] = false;
        g_bDoJump[ iPlayer ] = false;
        g_iJumps[ iPlayer ] = 0; 
    }
    
    if( g_bItemUsed[ iPlayer ][ SILENT_RUN ] ) { 
        g_bItemUsed[ iPlayer ][ SILENT_RUN ] = false;
        set_user_footsteps( iPlayer, 0 );       
    }
    g_bMenuOpened[ iPlayer ] = false;      
}

public Forward__PlayerPreThink( iPlayer ) {
    if( g_bItemUsed[ iPlayer ][ DOUBLE_JUMP ] ) {
        if( !( pev( iPlayer, pev_button ) & IN_JUMP ) )
            return;
        
        if( !( pev( iPlayer, pev_oldbuttons ) & IN_JUMP ) && !( pev( iPlayer, pev_flags ) & FL_ONGROUND ) ) {
            if( g_iJumps[ iPlayer ] < JUMPS_NUMBER )
            {
                g_bDoJump[ iPlayer ] = true;
                g_iJumps[ iPlayer ]++;
            }
        }
        else if( pev( iPlayer, pev_flags ) & FL_ONGROUND ) {
            g_iJumps[ iPlayer ] = 0;    
            return;
        }
    }
}

public Forward__PlayerPostThink( iPlayer ) {
    if( !g_bDoJump[ iPlayer ] )
        return;
    
    static Float:fVelocity[ 3 ];
    pev( iPlayer, pev_velocity, fVelocity );
    
    fVelocity[ 2 ] = 265.0;        
    
    set_pev( iPlayer, pev_velocity, fVelocity );
    g_bDoJump[ iPlayer ] = false;    
}

stock set_weapon_fullammo(id, CSW_WEAPON) { 
    static const iBPAmmo[CSW_P90 + 1] = {  
        0, 52, 90, -1, 32, -1, 100, 90, 1, 120, 100, 120, 90, 90, 90, 
        90, 100, 120, 30, 120, 200, 32, 90, 120, 90, 1, 35, 90, 90, -1, 100 
    } 
    
    static const NullWeapons = ( (1<<CSW_C4) | (1<<CSW_KNIFE) ) 
    
    if( (1<<CSW_WEAPON) & NullWeapons || (!(CSW_P228 <= CSW_WEAPON <= CSW_P90) ) || !is_user_connected(id)) 
        return 0 
    
    cs_set_user_bpammo(id, CSW_WEAPON, iBPAmmo[CSW_WEAPON]) 
    
    return 1 
}
So basically the problem:
Ammo Refill gives alot of nades. (tried with HE- nades. equipped it and used ammo refill. Then i had 32 Nades). So how do make so that it doesnt Give any nades ( got reported that it had same bug with flashes and smokes also)
driger38 is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 20:36.


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