Raised This Month: $51 Target: $400
 12% 

Dispenser for admins only? please ty :)


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
KhaledAwesome
Member
Join Date: Jul 2013
Old 06-22-2018 , 00:50   Dispenser for admins only? please ty :)
Reply With Quote #1

Can someone make that only admins can build dispensers? with the same dispenser price

https://forums.alliedmods.net/showthread.php?t=149613

PHP Code:

/*         
    ~~~~~~~~~~~~~~~~~~~~~~~
        Build Dispenser

        Like in TFC or TF2 dispensers give you armor health and ammo
        Every time you are near at a teammate dispenser, your health, amor, or ammo will refill to maximum!        
 
        By tuty;
    ~~~~~~~~~~~~~~~~~~~~~~~
*/



#include < amxmodx >
#include < amxmisc >

#include < fakemeta >
#include < hamsandwich >
#include < cstrike >
#include < engine >
#include < fun >

#include < xs >

#pragma semicolon 1

#define PLUGIN_VERSION        "#1.0.6.0"

#if AMXX_VERSION_NUM < 183
#define MAX_PLAYERS        32
#endif

#define BREAK_COMPUTER        6

enum
{
    
STATUS_BUILDING,
    
STATUS_ACTIVE
};

enum _iColorAndCoords
{
    
x_r 0,
    
y_g,
    
z_b
};

new const 
gDamageSounds[ ][ ] = 
{
    
"debris/metal1.wav",
    
"debris/metal2.wav",
    
"debris/metal3.wav"
};

new const 
szBuildingMessages[ ][ ] =
{
    
"Building a Dispenser right here...",
    
"Directing a DISPENSER!",
    
"Dispenser coming now!",
    
"Dispenser coming right up ahead!"
};

new const 
gDispenserClassname[ ] = "NiceDispenser:D";

new const 
gDispenserActive[ ] = "buttons/button9.wav";
new const 
gDispenserMdl[ ] = "models/dispenser.mdl";
new const 
gMetalGibsMdl[ ] = "models/computergibs.mdl";
new const 
gHealingSprite[ ] = "sprites/laserbeam.spr";

new 
gHealingBeam;
new 
gMetalGibs;
new 
gMaxPlayers;
new 
gHudSync;

new 
gCvarEnabled;
new 
gDispenserCost;
new 
gCvarDispenserHealth;
new 
gCvarBuildTime;
new 
gCvarReplenishRadius;
new 
gCvarSpinDispenser;
new 
gCvarMaxHealth;
new 
gCvarMaxArmor;

new 
Float:gDispenserOriginMAX_PLAYERS ][ iColorAndCoords ];
new 
gBeamcolorMAX_PLAYERS ][ iColorAndCoords ];

new 
Float:gDispenserHealthOffMAX_PLAYERS ];
new 
bool:bDispenserBuildMAX_PLAYERS ];

public 
plugin_init( )
{
    
register_plugin"Build Dispenser"PLUGIN_VERSION"tuty" );
    
    
register_event"TextMsg""EVENT_TextMsg""a""2&#Game_C""2&#Game_w""2&#Game_will_restart_in" );
    
register_logevent"LOG_RoundEnd"2"1=Round_End" );
    
    static 
szDispenserClassname[ ] = "info_target";

    
RegisterHamHam_TakeDamageszDispenserClassname"bacon_TakeDamage");
    
RegisterHamHam_TraceAttackszDispenserClassname"bacon_TraceAttack" );
    
    
register_thinkgDispenserClassname"DispenserThink" );
    
register_clcmd"drop""CommandDispenserBuild" );
    
    
gCvarEnabled register_cvar"dispenser_enabled""1" );
    
gDispenserCost register_cvar"dispenser_cost""16000" );
    
gCvarDispenserHealth register_cvar"dispenser_health""100" );
    
gCvarBuildTime register_cvar"dispenser_buildtime""15" );
    
gCvarReplenishRadius register_cvar"dispenser_radius""50" );
    
gCvarSpinDispenser register_cvar"dispenser_spin""1" );
    
gCvarMaxHealth register_cvar"dispenser_playermax_health""100" );
    
gCvarMaxArmor register_cvar"dispenser_playermax_armor""100" );
    
    
gMaxPlayers get_maxplayers( );

    
gHudSync CreateHudSyncObj( );
}

public 
client_connectid )
{
    
bDispenserBuildid ] = false;
}

public 
plugin_precache( )
{    
    
gHealingBeam precache_modelgHealingSprite );
    
gMetalGibs precache_modelgMetalGibsMdl );
    
    
precache_modelgDispenserMdl );
    
precache_soundgDispenserActive );
    
    new 
i;
    for( 
0sizeof gDamageSoundsi++ )
    {
        
precache_soundgDamageSounds] );
    }
}

public 
CommandDispenserBuildid )
{
    if( !
is_user_aliveid 
    || 
get_user_weaponid ) != CSW_KNIFE 
    
|| get_pcvar_numgCvarEnabled ) != )
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if( !( 
pevidpev_flags ) & FL_ONGROUND ) )
    {
        
client_printidprint_center"You must be on ground to build a Dispenser!" );
        
        return 
PLUGIN_HANDLED;
    }

    if( 
bDispenserBuildid ] == true )
    {
        
client_printidprint_center"You already have build a Dispenser!" );
        
        return 
PLUGIN_HANDLED;
    }

    new 
iMoney cs_get_user_moneyid );
    new 
iCost get_pcvar_numgDispenserCost );
    
    if( 
iMoney iCost )
    {
        
client_printidprint_chat"[Dispenser] You don't have enough money to build a Dispenser... Need(%d$)"iCost );
        
        return 
PLUGIN_HANDLED;
    }

    new 
Float:flPlayerOrigin];
    
pevidpev_originflPlayerOrigin );
    
    new 
Float:flHealth floatget_pcvar_numgCvarDispenserHealth ) );

    new 
iEntity create_entity"info_target" );
    
    if( !
pev_validiEntity ) )
    {
        return 
PLUGIN_HANDLED;
    }

    
set_peviEntitypev_classnamegDispenserClassname );
    
engfuncEngFunc_SetModeliEntitygDispenserMdl );
    
engfuncEngFunc_SetSizeiEntityFloat:{ -12.0, -10.0, -12.0 }, Float:{ 12.010.012.0 } );
    
set_peviEntitypev_originflPlayerOrigin );
    
set_peviEntitypev_solidSOLID_NOT );
    
set_peviEntitypev_movetypeMOVETYPE_TOSS );
    
set_peviEntitypev_healthflHealth );
    
set_peviEntitypev_takedamageDAMAGE_YES );
    
set_peviEntitypev_iuser2id );
    
set_peviEntitypev_iuser3STATUS_BUILDING );
    
set_peviEntitypev_nextthinkget_gametime( ) + 0.1 );

    
gDispenserOriginid ][ x_r ] = flPlayerOrigin];
    
gDispenserOriginid ][ y_g ] = flPlayerOrigin];
    
gDispenserOriginid ][ z_b ] = flPlayerOrigin];
    
    
gDispenserHealthOffid ] = flHealth;
    
bDispenserBuildid ] = true;
    
    
set_taskfloatget_pcvar_numgCvarBuildTime ) ), "BuildDispenserSolid"iEntity );
    
cs_set_user_moneyidiMoney iCost);

    
client_printidprint_centerszBuildingMessagesrandom_num0charsmaxszBuildingMessages ) ) ] );
    
    return 
PLUGIN_HANDLED;
}

public 
bacon_TakeDamageentidinflictoridattackerFloat:damagedamagebits )
{
    new 
szClassname32 ];
    
peventpev_classnameszClassnamecharsmaxszClassname ) );
    
    if( 
equalszClassnamegDispenserClassname ) )
    {
        new 
iOwner peventpev_iuser2 );

        if( 
peventpev_health ) <= 0.0 )
        {
            new 
szName32 ];
            
get_user_nameidattackerszNamecharsmaxszName ) );

            new 
Float:flOrigin];
            
peventpev_originflOrigin );
                
            
UTIL_BreakModelflOrigingMetalGibsBREAK_COMPUTER );
            
set_peventpev_flagspeventpev_flags ) | FL_KILLME );

            if( 
idattacker == iOwner )
            {
                
client_printiOwnerprint_center"You have destroyed your Dispenser!" );
            }

            else
            {
                
client_printiOwnerprint_center"[Dispenser] %s destroyed your Dispenser!"szName );
            }

            
client_cmdiOwner"speak ^"vox/bizwarn computer destroyed^"" );
            
bDispenserBuildiOwner ] = false;
        }
        
        
gDispenserHealthOffiOwner ] = floatpeventpev_health ) );
        
emit_soundentCHAN_STATICgDamageSoundsrandom_num0charsmaxgDamageSounds ) ) ], VOL_NORMATTN_NORM0PITCH_NORM );    
    }
}

public 
bacon_TraceAttackiVictimiAttackerFloat:flDamageFloat:flDirection], iTriDamageBits )
{
    new 
szClassname32 ];
    
peviVictimpev_classnameszClassnamecharsmaxszClassname ) );
    
    if( 
equalszClassnamegDispenserClassname ) )
    {
        new 
Float:flEndOrigin];
        
get_tr2iTrTR_vecEndPosflEndOrigin );
    
        
UTIL_SparksflEndOrigin );
    }
}    
            
public 
DispenserThinkiEnt )
{
    if( 
pev_validiEnt ) )
    {
        new 
iStatus peviEntpev_iuser3 );
        new 
iOwner peviEntpev_iuser2 );

        switch( 
iStatus )
        {
            case 
STATUS_BUILDING:
            {
                
set_renderingiEntkRenderFxDistort255255255kRenderTransAdd70 );
            }
            
            case 
STATUS_ACTIVE:
            {
                new 
id;
                for( 
id 1id <= gMaxPlayersid++ )
                {
                    if( 
is_user_connectediOwner 
                    && 
is_user_connectedid 
                    && 
is_user_aliveid 
                    && 
cs_get_user_teamid ) == cs_get_user_teamiOwner ) )
                    {
                        new 
Float:flOrigin];
                        
pevidpev_originflOrigin );
                        
                        if( 
get_distance_fgDispenserOriginiOwner ], flOrigin ) <= floatget_pcvar_numgCvarReplenishRadius ) ) )
                        {
                            if( 
UTIL_IsVisibleidiEnt ) )
                            {
                                
UTIL_GiveWeaponAmmoid );
                            
                                
// people will ask why i didn't used if and else if...
                                // because i want to recharge health and armor and ammo in same time if needed :D

                                
if( get_user_healthid ) < get_pcvar_numgCvarMaxHealth ) )
                                {
                                    
set_user_healthidget_user_healthid ) + );
                                }
                            
                                if( 
get_user_armorid ) < get_pcvar_numgCvarMaxArmor ) )
                                {
                                    
set_user_armoridget_user_armorid ) + );
                                }
                            
                                
UTIL_BeamEntsgDispenserOriginiOwner ], flOrigingBeamcoloriOwner ][ x_r ], gBeamcoloriOwner ][ y_g ], gBeamcoloriOwner ][ z_b ] );
                            }
                        }
                    }
                }
                
                
set_hudmessagegBeamcoloriOwner ][ x_r ], gBeamcoloriOwner ][ y_g ], gBeamcoloriOwner ][ z_b ], 0.00.2116.00.2 );
                
ShowSyncHudMsgiOwnergHudSync">>>[ Dispenser ]<<<^n^nHealth Status: [%d]"floatroundgDispenserHealthOffiOwner ] ) );
            }
        }
        
        if( 
get_pcvar_numgCvarSpinDispenser ) == )
        {
            new 
Float:flAngles];
            
peviEntpev_anglesflAngles );
            
            
flAngles] += 1.0;
            
            
set_peviEntpev_anglesflAngles );
        }

        
set_peviEntpev_nextthinkget_gametime( ) + 0.1 );
    }
}

public 
BuildDispenserSolidiEntity )
{
    if( 
pev_validiEntity ) )
    {
        new 
iOwner peviEntitypev_iuser2 );
        
        if( 
is_user_connectediOwner ) )
        {
            switch( 
cs_get_user_teamiOwner ) )
            {
                case 
CS_TEAM_T:
                {
                    
gBeamcoloriOwner ][ x_r ] = 255gBeamcoloriOwner ][ y_g ] = 0gBeamcoloriOwner ][ z_b ] = 0;
                    
set_renderingiEntitykRenderFxGlowShellgBeamcoloriOwner ][ x_r ], gBeamcoloriOwner ][ y_g ], gBeamcoloriOwner ][ z_b ], kRenderNormal);
                }
        
                case 
CS_TEAM_CT:
                {
                    
gBeamcoloriOwner ][ x_r ] = 0gBeamcoloriOwner ][ y_g ] = 0gBeamcoloriOwner ][ z_b ] = 255;
                    
set_renderingiEntitykRenderFxGlowShellgBeamcoloriOwner ][ x_r ], gBeamcoloriOwner ][ y_g ], gBeamcoloriOwner ][ z_b ], kRenderNormal);
                }
            }
        }

        
set_peviEntitypev_solidSOLID_BBOX );
        
set_peviEntitypev_iuser3STATUS_ACTIVE );

        
engfuncEngFunc_DropToFlooriEntity );
        
        
emit_soundiEntityCHAN_STATICgDispenserActiveVOL_NORMATTN_NORM0PITCH_NORM );
    }
}

public 
EVENT_TextMsg( )
{
    
UTIL_DestroyDispensers( );
}

public 
LOG_RoundEnd( )
{
    
UTIL_DestroyDispensers( );
}


/*         
    ~~~~~~~~~~~~~~~~~~~~~~~
        Stocks
    ~~~~~~~~~~~~~~~~~~~~~~~
*/


stock UTIL_DestroyDispensers( )
{
    new 
iEnt FM_NULLENT;
    
    while( ( 
iEnt find_ent_by_classiEntgDispenserClassname ) ) )
    {
        new 
iOwner peviEntpev_iuser2 );
        
        
bDispenserBuildiOwner ] = false;
        
set_peviEntpev_flagspeviEntpev_flags ) | FL_KILLME );
    }
}

stock UTIL_BreakModelFloat:flOrigin], modelflags )
{
    
engfuncEngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYflOrigin);
    
write_byteTE_BREAKMODEL );
    
engfuncEngFunc_WriteCoordflOrigin] );
    
engfuncEngFunc_WriteCoordflOrigin] );
    
engfuncEngFunc_WriteCoordflOrigin] );
    
write_coord16 );
    
write_coord16 );
    
write_coord16 );
    
write_coordrandom_num( -2020 ) );
    
write_coordrandom_num( -2020 ) );
    
write_coord10 );
    
write_byte10 );
    
write_shortmodel );
    
write_byte10 );
    
write_byte);
    
write_byteflags );
    
message_end( );
}

stock UTIL_BeamEntsFloat:flStart], Float:flEnd], rg)
{
    
engfuncEngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYflStart );
    
write_byteTE_BEAMPOINTS );
    
engfuncEngFunc_WriteCoordflStart] );
    
engfuncEngFunc_WriteCoordflStart] );
    
engfuncEngFunc_WriteCoordflStart] );
    
engfuncEngFunc_WriteCoordflEnd] );
    
engfuncEngFunc_WriteCoordflEnd] );
    
engfuncEngFunc_WriteCoordflEnd] );
    
write_shortgHealingBeam );
    
write_byte);
    
write_byte);
    
write_byte);
    
write_byte80 );
    
write_byte);
    
write_byte);
    
write_byte);
    
write_byte);
    
write_byte130 );
    
write_byte);
    
message_end( );
}

stock UTIL_GiveWeaponAmmoindex )
{
    new 
szCopyAmmoData40 ];
    
    switch( 
get_user_weaponindex ) )
    {
        case 
CSW_P228copyszCopyAmmoDatacharsmaxszCopyAmmoData ), "ammo_357sig" );
        case 
CSW_SCOUTCSW_G3SG1CSW_AK47copyszCopyAmmoDatacharsmaxszCopyAmmoData ), "ammo_762nato" );
        case 
CSW_XM1014CSW_M3copyszCopyAmmoDatacharsmaxszCopyAmmoData ), "ammo_buckshot" );
        case 
CSW_MAC10CSW_UMP45CSW_USPcopyszCopyAmmoDatacharsmaxszCopyAmmoData ), "ammo_45acp" );
        case 
CSW_SG550CSW_GALILCSW_FAMASCSW_M4A1CSW_SG552CSW_AUGcopyszCopyAmmoDatacharsmaxszCopyAmmoData ), "ammo_556nato" );
        case 
CSW_ELITECSW_GLOCK18CSW_MP5NAVYCSW_TMPcopyszCopyAmmoDatacharsmaxszCopyAmmoData ), "ammo_9mm" );
        case 
CSW_AWPcopyszCopyAmmoDatacharsmaxszCopyAmmoData ), "ammo_338magnum" );
        case 
CSW_M249copyszCopyAmmoDatacharsmaxszCopyAmmoData ), "ammo_556natobox" );
        case 
CSW_FIVESEVENCSW_P90copyszCopyAmmoDatacharsmaxszCopyAmmoData ), "ammo_57mm" );
        case 
CSW_DEAGLEcopyszCopyAmmoDatacharsmaxszCopyAmmoData ), "ammo_50ae" );
    }
    
    
give_itemindexszCopyAmmoData );
}

stock UTIL_SparksFloat:flOrigin] )
{
    
engfuncEngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYflOrigin);
    
write_byteTE_SPARKS );
    
engfuncEngFunc_WriteCoordflOrigin] );
    
engfuncEngFunc_WriteCoordflOrigin] );
    
engfuncEngFunc_WriteCoordflOrigin] );
    
message_end( );
}

stock bool:UTIL_IsVisibleindexentityignoremonsters )
{
    new 
Float:flStart], Float:flDest];
    
pevindexpev_originflStart );
    
pevindexpev_view_ofsflDest );

    
xs_vec_addflStartflDestflStart );
    
    
peventitypev_originflDest );
    
engfuncEngFunc_TraceLineflStartflDestignoremonstersindex);
    
    new 
Float:flFraction;
    
get_tr20TR_flFractionflFraction );
    
    if( 
flFraction == 1.0 || get_tr20TR_pHit) == entity )
    {
        return 
true;
    }
    
    return 
false;
}

/*         
    ~~~~~~~~~~~~~~~~~~~~~~~
          End of Code
    ~~~~~~~~~~~~~~~~~~~~~~~
*/ 

Last edited by KhaledAwesome; 06-22-2018 at 05:56.
KhaledAwesome is offline
SHIELD755
Veteran Member
Join Date: Feb 2018
Location: FROM MARVEL STUDIO
Old 06-22-2018 , 04:06   Re: Dispenser for admins only? please ty :)
Reply With Quote #2

hii buddy
first of all this dispenser is old and i have new with 4 levels
SHIELD755 is offline
SHIELD755
Veteran Member
Join Date: Feb 2018
Location: FROM MARVEL STUDIO
Old 06-22-2018 , 04:13   Re: Dispenser for admins only? please ty :)
Reply With Quote #3

https://www.youtube.com/watch?v=aNmDvSu6i3k
watch this i have exactly with source i also doesnt know where got from but it was in my pc so i make it english
SHIELD755 is offline
SHIELD755
Veteran Member
Join Date: Feb 2018
Location: FROM MARVEL STUDIO
Old 06-22-2018 , 04:16   Re: Dispenser for admins only? please ty :)
Reply With Quote #4

are you on discord fb or insta so we can talk there live ?
or need any plugin which this SMASTER has or see his vidoes i have with source code because everything is there on internet i finded very hardly

Last edited by SHIELD755; 06-22-2018 at 04:36.
SHIELD755 is offline
SHIELD755
Veteran Member
Join Date: Feb 2018
Location: FROM MARVEL STUDIO
Old 06-22-2018 , 04:36   Re: Dispenser for admins only? please ty :)
Reply With Quote #5

hmm i think you understand
__________________
SED LYF !!!
SHIELD755 is offline
KhaledAwesome
Member
Join Date: Jul 2013
Old 06-22-2018 , 05:57   Re: Dispenser for admins only? please ty :)
Reply With Quote #6

Quote:
Originally Posted by SHIELD755 View Post
hmm i think you understand
Thanks, but i only want this specific dispenser just for admin.
KhaledAwesome is offline
SHIELD755
Veteran Member
Join Date: Feb 2018
Location: FROM MARVEL STUDIO
Old 06-22-2018 , 06:26   Re: Dispenser for admins only? please ty :)
Reply With Quote #7

okay
np
__________________
SED LYF !!!
SHIELD755 is offline
KhaledAwesome
Member
Join Date: Jul 2013
Old 06-23-2018 , 14:54   Re: Dispenser for admins only? please ty :)
Reply With Quote #8

So anyone can do it?
So i changed like this : register_clcmd( "drop", "CommandDispenserBuild", ADMIN_RESERVATION );

it would work?
KhaledAwesome is offline
Mr.J
Senior Member
Join Date: Sep 2017
Location: cs_assault
Old 06-25-2018 , 04:10   Re: Dispenser for admins only? please ty :)
Reply With Quote #9

Quote:
Originally Posted by KhaledAwesome View Post
So anyone can do it?
So i changed like this : register_clcmd( "drop", "CommandDispenserBuild", ADMIN_RESERVATION );

it would work?
Try it
Mr.J 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 16:11.


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