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

[Solved]How to register extra item with admin access


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Kakarot47
Senior Member
Join Date: May 2015
Location: Pakistan
Old 02-15-2016 , 16:19   [Solved]How to register extra item with admin access
Reply With Quote #1

Hello guyz i tried oldest trick of Admin access with extra item but its not work for me can you help me with this
how can i make this extra item only for admin
Only admin can use it

PHP Code:
/*======================================================*\
||    [ZP] Extra Item : Plasma Rifle            ||
||    by Sh0oT3R                    ||
\*======================================================*/

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

#define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))

#define VERSION "1.0"
#define AUTHOR "Sh0oT3R"

#define FIRERATE 0.2
#define HITSD 0.7
#define RELOADSPEED 5.0
#define DAMAGE 250.0
#define DAMAGE_MULTI 3.0

#define CSW_WPN CSW_FAMAS
new const weapon[] = "weapon_famas"

new const g_Cost 40
new const spr_beam[] = "sprites/plasma/plasma_beam.spr"
new const spr_exp[] = "sprites/plasma/plasma_exp.spr"
new const spr_blood[] = "sprites/blood.spr"
new const snd_fire[][] = { "zombie_plague/plasma/plasma_fire.wav" }
new const 
snd_reload[][] = { "zombie_plague/plasma/plasma_reload.wav" }
new const 
snd_hit[][] = { "zombie_plague/plasma/plasma_hit.wav" }

new 
bool:g_HasRifle[33]
new 
g_iCurWpn[33], Float:g_flLastFireTime[33]
new 
g_iItemIdg_sprBeamg_sprExpg_sprBloodg_msgDamageg_msgScreenFadeg_msgScreenShake

const m_pPlayer =         41
const m_fInReload =        54
const m_pActiveItem =         373
const m_flNextAttack =         83
const m_flTimeWeaponIdle =     48
const m_flNextPrimaryAttack =     46
const m_flNextSecondaryAttack =    47

const UNIT_SECOND =        (1<<12)
const 
ENG_NULLENT =         -1
const WPN_MAXCLIP =        25
const ANIM_FIRE =         5
const ANIM_DRAW =         10
const ANIM_RELOAD =        9
const EV_INT_WEAPONKEY =     EV_INT_impulse
const WPNKEY =             2816

public plugin_init() 
{
    
register_plugin("[ZP] Extra Item: Plasma Rifle"VERSIONAUTHOR)
    
    
register_event("HLTV""Event_NewRound""a""1=0""2=0");
    
register_event("CurWeapon""event_CurWeapon""b""1=1")    

    
register_forward(FM_CmdStart"fw_CmdStart")
    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1)
    
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
RegisterHam(Ham_Item_Deployweapon"fw_Deploy_Post"1)
    
RegisterHam(Ham_Item_AddToPlayerweapon"fw_AddToPlayer")
    
RegisterHam(Ham_Weapon_Reloadweapon"fw_Reload_Post"1)
    
RegisterHam(Ham_Item_PostFrameweapon"fw_PostFrame")
    
    
g_iItemId zp_register_extra_item("Plasma Rifle"g_CostZP_TEAM_HUMAN)
    
    
g_msgDamage get_user_msgid("Damage")
    
g_msgScreenFade get_user_msgid("ScreenFade")
    
g_msgScreenShake get_user_msgid("ScreenShake")
}

public 
plugin_precache()
{
    
precache_model("models/zombie_plague/plasma/v_plasma.mdl")
    
precache_model("models/zombie_plague/plasma/p_plasma.mdl")

    
g_sprBlood precache_model(spr_blood)
    
g_sprBeam precache_model(spr_beam)
    
g_sprExp precache_model(spr_exp)
    
    static 
i
    
for(0sizeof snd_firei++)
        
precache_sound(snd_fire[i])
    for(
0sizeof snd_hiti++)
        
precache_sound(snd_hit[i])
    for(
0sizeof snd_reloadi++)
        
precache_sound(snd_reload[i])    
}
public 
event_CurWeapon(id)
{
    if(!
is_user_alive(id))
    return 
PLUGIN_CONTINUE
        
    g_iCurWpn
[id] = read_data(2)
    
    if(
zp_get_user_zombie(id) || zp_get_user_survivor(id))
        return 
PLUGIN_CONTINUE
        
    
if(!g_HasRifle[id] || g_iCurWpn[id] != CSW_WPN
        return 
PLUGIN_CONTINUE
        
    entity_set_string
(idEV_SZ_viewmodel"models/zombie_plague/plasma/v_plasma.mdl")
    
entity_set_string(idEV_SZ_weaponmodel"models/zombie_plague/plasma/p_plasma.mdl")
    return 
PLUGIN_CONTINUE
}
public 
zp_user_humanized_pre(id)
{
    
g_HasRifle[id] = false
}
public 
zp_user_infected_post(id)
{
    
g_HasRifle[id] = false
}
public 
fw_PlayerKilled(victimattackershouldgib)
{
    if(
is_user_alive(victim))
    {
        
g_HasRifle[victim] = false
        
return HAM_HANDLED
    
}
    return 
HAM_IGNORED
}

public 
Event_NewRound()
{
    for (new 
1<= get_maxplayers(); i++)
    {
        
g_HasRifle[i] = false
    
}
}
public 
client_putinserver(id)
{
    
g_HasRifle[id] = false
}
public 
client_disconnect(id)
{
    
g_HasRifle[id] = false
}
public 
zp_extra_item_selected(iditemid)
{
    if(
itemid == g_iItemId)
    {        
        new 
bool:HasWpn bool:user_has_weapon(idCSW_WPN)
        
        if(!
g_HasRifle[id] && !HasWpn)
        {
            
g_HasRifle[id] = true    
            fm_give_item
(idweapon)    
            
cs_set_user_bpammo(idCSW_WPN100)    
            
engclient_cmd(idweapon)
        }
        else
        {
            
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) + g_Cost)
            return 
PLUGIN_CONTINUE
        
}
    }
    return 
PLUGIN_CONTINUE
}
public 
fw_CmdStart(idhandleseed)
{
    if(!
is_user_alive(id))
        return 
FMRES_IGNORED
    
    
if(!g_HasRifle[id])
        return 
FMRES_IGNORED
        
    
if(zp_get_user_zombie(id) || zp_get_user_survivor(id))
        return 
FMRES_IGNORED
    
    
if(g_iCurWpn[id] != CSW_WPN)
        return 
FMRES_IGNORED
        
    
static iButton
    iButton 
get_uc(handleUC_Buttons)
    
    if(
iButton IN_ATTACK)
    {
        
set_uc(handleUC_ButtonsiButton & ~IN_ATTACK)
        
        static 
Float:flCurTime
        flCurTime 
halflife_time()
        
        if(
flCurTime g_flLastFireTime[id] < FIRERATE)
            return 
FMRES_IGNORED
            
        
static iWpnIDiClip
        iWpnID 
get_pdata_cbase(idm_pActiveItem5)
        
iClip cs_get_weapon_ammo(iWpnID)
        
        if(
get_pdata_int(iWpnIDm_fInReload4))
            return 
FMRES_IGNORED
        
        set_pdata_float
(iWpnIDm_flNextPrimaryAttackFIRERATE4)
        
set_pdata_float(iWpnIDm_flNextSecondaryAttackFIRERATE4)
        
set_pdata_float(iWpnIDm_flTimeWeaponIdleFIRERATE4)
        
g_flLastFireTime[id] = flCurTime
        
if(iClip <= 0)
        {
            
ExecuteHamB(Ham_Weapon_PlayEmptySoundiWpnID)
            return 
FMRES_IGNORED
        
}
        
primary_attack(id)
        
make_punch(id50)
        
cs_set_weapon_ammo(iWpnID, --iClip)
        
        return 
FMRES_IGNORED
    
}
    
    return 
FMRES_IGNORED
}
public 
fw_UpdateClientData_Post(idsendweaponshandle)
{
    if(!
is_user_alive(id))
        return 
FMRES_IGNORED
        
    
if(!g_HasRifle[id])
        return 
FMRES_IGNORED
        
    
if(zp_get_user_zombie(id) || zp_get_user_survivor(id))
        return 
FMRES_IGNORED
    
    
if(g_iCurWpn[id] != CSW_WPN)
        return 
FMRES_IGNORED
        
    set_cd
(handleCD_flNextAttackhalflife_time() + 0.001)
    return 
FMRES_HANDLED
}
public 
fw_Deploy_Post(wpn)
{
    static 
id
    id 
get_pdata_cbase(wpnm_pPlayer4)
    
    if(
is_user_connected(id) && g_HasRifle[id])
    {
        
set_wpnanim(idANIM_DRAW)
    }
    return 
HAM_IGNORED
}
public 
fw_AddToPlayer(wpnid)
{
    if(
is_valid_ent(wpn) && is_user_connected(id) && entity_get_int(wpnEV_INT_WEAPONKEY) == WPNKEY)
    {
        
g_HasRifle[id] = true
        entity_set_int
(wpnEV_INT_WEAPONKEY0)
        return 
HAM_HANDLED
    
}
    return 
HAM_IGNORED
}
public 
fw_PostFrame(wpn)
{
    static 
id
    id 
get_pdata_cbase(wpnm_pPlayer4)

    if(
is_user_alive(id) && g_HasRifle[id])
    {
        static 
Float:flNextAttackiBpAmmoiClipiInReload
        iInReload 
get_pdata_int(wpnm_fInReload4)
        
flNextAttack get_pdata_float(idm_flNextAttack5)
        
iBpAmmo cs_get_user_bpammo(idCSW_WPN)
        
iClip cs_get_weapon_ammo(wpn)
        
        if(
iInReload && flNextAttack <= 0.0)
        {
            new 
iRemClip min(WPN_MAXCLIP iClipiBpAmmo)
            
cs_set_weapon_ammo(wpniClip iRemClip)
            
cs_set_user_bpammo(idCSW_WPNiBpAmmo-iRemClip)
            
iInReload 0
            set_pdata_int
(wpnm_fInReload04)
        }
        static 
iButton
        iButton 
get_user_button(id)

        if((
iButton IN_ATTACK2 && get_pdata_float(wpnm_flNextSecondaryAttack4) <= 0.0) || (iButton IN_ATTACK && get_pdata_float(wpnm_flNextPrimaryAttack4) <= 0.0))
            return
        
        if(
iButton IN_RELOAD && !iInReload)
        {
            if(
iClip >= WPN_MAXCLIP)
            {
                
entity_set_int(idEV_INT_buttoniButton & ~IN_RELOAD)
                
set_wpnanim(id0)
            }
            else if(
iClip == WPN_MAXCLIP)
            {
                if(
iBpAmmo)
                {
                    
reload(idwpn1)
                }
            }
        }
    }
}
public 
fw_Reload_Post(wpn)
{
    static 
id
    id 
get_pdata_cbase(wpnm_pPlayer4)
    
    if(
is_user_alive(id) && g_HasRifle[id] && get_pdata_int(wpnm_fInReload4))
    {        
        
reload(idwpn)
    }
}
public 
primary_attack(id)
{
    
set_wpnanim(idANIM_FIRE)
    
entity_set_vector(idEV_VEC_punchangleFloat:{ -1.50.00.0 })
    
emit_sound(idCHAN_WEAPONsnd_fire[random_num(0sizeof snd_fire 1)], VOL_NORMATTN_NORM0PITCH_NORM)

    static 
iTargetiBodyiEndOrigin[3], iStartOrigin[3]
    
get_user_origin(idiStartOrigin1
    
get_user_origin(idiEndOrigin3)
    
fire_effects(iStartOriginiEndOrigin)
    
get_user_aiming(idiTargetiBody)
    
    new 
iEnt create_entity("info_target")
    
    static 
Float:flOrigin[3]
    
IVecFVec(iEndOriginflOrigin)
    
entity_set_origin(iEntflOrigin)
    
remove_entity(iEnt)
    
    if(
is_user_alive(iTarget))
    {    
        if(
HITSD 0.0)
        {
            static 
Float:flVelocity[3]
            
get_user_velocity(iTargetflVelocity)
            
xs_vec_mul_scalar(flVelocityHITSDflVelocity)
            
set_user_velocity(iTargetflVelocity)    
        }
        if(
zp_get_user_zombie(iTarget) || zp_get_user_nemesis(iTarget))
        {
            new 
iHp pev(iTargetpev_health)
            new 
Float:iDamageiBloodScale
            
if(iBody == HIT_HEAD)
            {
                
iDamage DAMAGE
                iBloodScale 
10
            
}
            else
            {
                
iDamage DAMAGE*DAMAGE_MULTI
                iBloodScale 
25
            
}
            if(
iHp iDamage
            {
                
make_blood(iTargetiBloodScale)
                
set_pev(iTargetpev_healthiHp-iDamage)
                
damage_effects(iTarget)
            }
            else if(
iHp <= iDamage)
            {
                
ExecuteHamB(Ham_KillediTargetid2)
            }
        }
    }
    else
    {
        
emit_sound(idCHAN_WEAPONsnd_hit[random_num(0sizeof snd_hit 1)], VOL_NORMATTN_NORM0PITCH_NORM)
    }
}
stock fire_effects(iStartOrigin[3], iEndOrigin[3])
{
    
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
    
write_byte(0)    
    
write_coord(iStartOrigin[0])
    
write_coord(iStartOrigin[1])
    
write_coord(iStartOrigin[2])
    
write_coord(iEndOrigin[0])
    
write_coord(iEndOrigin[1])
    
write_coord(iEndOrigin[2])
    
write_short(g_sprBeam)
    
write_byte(1
    
write_byte(5
    
write_byte(10
    
write_byte(25
    
write_byte(0
    
write_byte(0)     
    
write_byte(255)      
    
write_byte(0)      
    
write_byte(100
    
write_byte(0
    
message_end()
    
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(3)
    
write_coord(iEndOrigin[0])
    
write_coord(iEndOrigin[1])
    
write_coord(iEndOrigin[2])
    
write_short(g_sprExp)
    
write_byte(10)
    
write_byte(15)
    
write_byte(4)
    
message_end()    
}
stock reload(idwpnforce_reload 0)
{
    
set_pdata_float(idm_flNextAttackRELOADSPEED5)
    
set_wpnanim(idANIM_RELOAD)
    
emit_sound(idCHAN_WEAPONsnd_reload[random_num(0sizeof snd_reload 1)], VOL_NORMATTN_NORM0PITCH_NORM)
    
    if(
force_reload)
        
set_pdata_int(wpnm_fInReload14)
}
stock damage_effects(id)
{
    
message_begin(MSG_ONE_UNRELIABLEg_msgDamage_id)
    
write_byte(0)
    
write_byte(0)
    
write_long(DMG_NERVEGAS)
    
write_coord(0
    
write_coord(0)
    
write_coord(0)
    
message_end()
    
    
message_begin(MSG_ONE_UNRELIABLEg_msgScreenFade, {0,0,0}, id)
    
write_short(1<<13)
    
write_short(1<<14)
    
write_short(0x0000)
    
write_byte(0)
    
write_byte(255)
    
write_byte(0)
    
write_byte(100
    
message_end()
        
    
message_begin(MSG_ONEg_msgScreenShake, {0,0,0}, id)
    
write_short(0xFFFF)
    
write_short(1<<13)
    
write_short(0xFFFF
    
message_end()
}
stock make_blood(idscale)
{
    new 
Float:iVictimOrigin[3]
    
pev(idpev_originiVictimOrigin)
    
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY
    
write_byte(115)
    
write_coord(floatround(iVictimOrigin[0]+random_num(-20,20))) 
    
write_coord(floatround(iVictimOrigin[1]+random_num(-20,20))) 
    
write_coord(floatround(iVictimOrigin[2]+random_num(-20,20))) 
    
write_short(g_sprBlood)
    
write_short(g_sprBlood
    
write_byte(248
    
write_byte(scale
    
message_end()
}
stock set_wpnanim(idanim)
{
    
entity_set_int(idEV_INT_weaponanimanim)
    
message_begin(MSG_ONESVC_WEAPONANIM, {000}, id)
    
write_byte(anim)
    
write_byte(entity_get_int(idEV_INT_body))
    
message_end()
}
stock make_punch(idvelamount
{
    static 
Float:flNewVelocity[3], Float:flCurrentVelocity[3]
    
velocity_by_aim(id, -velamountflNewVelocity)
    
get_user_velocity(idflCurrentVelocity)
    
xs_vec_add(flNewVelocityflCurrentVelocityflNewVelocity)
    
set_user_velocity(idflNewVelocity)    
}
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:origin[3];
    
pev(indexpev_originorigin);
    
set_pev(entpev_originorigin);
    
set_pev(entpev_spawnflagspev(entpev_spawnflags) | SF_NORESPAWN);
    
dllfunc(DLLFunc_Spawnent);
    
    new 
save pev(entpev_solid);
    
dllfunc(DLLFunc_Touchentindex);
    if (
pev(entpev_solid) != save)
        return 
ent;
    
    
engfunc(EngFunc_RemoveEntityent);
    
    return -
1;
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/ 
Plz Help fast
__________________



AssasinSniperNightmare ModArmageddon ModApolacyps Mod

Last edited by Kakarot47; 02-16-2016 at 13:53. Reason: Solved
Kakarot47 is offline
Send a message via Skype™ to Kakarot47
Chihuahuax
Senior Member
Join Date: Oct 2014
Location: Malaysia
Old 02-16-2016 , 08:58   Re: How to register extra item with admin access
Reply With Quote #2

What if a non-admin is using the plasma gun?

Should it behave like the default gun (FAMAS) or should it simply gets blocked from being fired?

Last edited by Chihuahuax; 02-16-2016 at 08:58.
Chihuahuax is offline
Send a message via Skype™ to Chihuahuax
Kakarot47
Senior Member
Join Date: May 2015
Location: Pakistan
Old 02-16-2016 , 13:52   Re: How to register extra item with admin access
Reply With Quote #3

i say that only admin can use it because it is danger gun ever
if zombie can take zombie madness plasma gun can kill it because madness is not effected with plasma thats why i
want to use it only for Admin
anyway i got it i used old ZPA tread now i have gun with Admin access thnks for reply
__________________



AssasinSniperNightmare ModArmageddon ModApolacyps Mod
Kakarot47 is offline
Send a message via Skype™ to Kakarot47
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 12:03.


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