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

[WeaponMOD]Weapon for admins only


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Unalloyed
New Member
Join Date: Aug 2012
Old 08-10-2012 , 14:31   [WeaponMOD]Weapon for admins only
Reply With Quote #1

Im using this mod http://forums.alliedmods.net/showthread.php?p=363037


From the original wpn_distruptor, I tried to change the code around so that the person needs to pass an admin check for the flag ADMIN_KICK..But all can buy that weapon .Please Help

PHP Code:
/* WeaponMod Weapon
 * 
 * (c) Copyright 2006, DevconeS
 * This file is provided as is (no warranties).
 * 
 */

#include <amxmodx>
#include <fakemeta>
#include <weaponmod>
#define ADMINLEVEL        ADMIN_KICK


new PLUGIN[] = "WPN DISRUPTOR"
new VERSION[] = "5.1"
new AUTHOR[] = "DevconeS"
new WPN_NAME[] = "The DISRUPTOR(\rAdmin only)"
new WPN_SHORT[] = "dis"

new P_MODEL[] = "models/wpnmod/p_dis.mdl"
new V_MODEL[] = "models/wpnmod/v_dis.mdl"
new W_MODEL[] = "models/wpnmod/w_dis.mdl"

new BULLETS_PER_SHOT[] = {130}
new 
ROCKET_MDL[][] = {"sprites/gargeye1.spr""sprites/3dmflared.spr"}
new 
ROCKET_SOUND[][] = {"wpnmod/dis_fire_8b44k_v2.wav""wpnmod/dis_nuke_8b44k.wav"}

new 
ROCKET_CLASSNAME[][] = {"wpn_disrupor_1""wpn_disruptor_2"}
new 
ROCKET_SPEED[] = {2200450}
new 
ROCKET_EXPLOSION[][] = {"sprites/wpnmod/dis.spr""sprites/wpnmod/dis_nuke.spr"}
new 
ROCKET_TRAIL_COLOR[][3] = {{255255255}, {2552550}}
new 
Float:ROCKET_RADIUS[] = {175.01500.0}
new 
Float:ROCKET_DAMAGE[] = {250.05000.0}

// Sequences
enum
{
    
anim_idle1,
    
anim_idle2,
    
anim_spinup,
    
anim_spindown,
    
anim_spin,
    
anim_fire,
    
anim_draw,
    
anim_holster1
}

new 
g_wpnid
new g_trail,g_explosion[2]

public 
plugin_precache() {
    
precache_model(P_MODEL)
    
precache_model(V_MODEL)
    
precache_model(W_MODEL)

    
precache_model(ROCKET_MDL[0])
    
precache_model(ROCKET_MDL[1])
    
precache_sound(ROCKET_SOUND[0])
    
precache_sound(ROCKET_SOUND[1])

    
g_trailprecache_model("sprites/gwave1.spr")
    
g_explosion[0] = precache_model(ROCKET_EXPLOSION[0])
    
g_explosion[1] = precache_model(ROCKET_EXPLOSION[1])
}




public 
plugin_init() {
    
register_plugin(PLUGIN,VERSION,AUTHOR)
    
register_forward(FM_Touch,"fwd_Touch")
    
create_weapon()
}


public 
wpn_event_post(player,wpnid,wpn_event:event,params[])
{
    new 
bool:Check false
    
    
    
switch(wpn_event)
    {
        case 
event_draw
            
Check true
        
case event_pickup:
            
Check true
        
default:
            
Check false
    
}
    if(
Check)
    {
        if((
get_user_flags(player) & ADMINLEVEL))
            return 
PLUGIN_CONTINUE
        
else
            return 
PLUGIN_HANDLED
    
}
    return 
PLUGIN_CONTINUE
}    

public 
onlyadmin(id
{
    if ((
get_user_flags(id) & ADMINLEVEL))
{
return 
PLUGIN_HANDLED
}
else
{
client_print(idprint_console"only admin")
}
return 
PLUGIN_CONTINUE


public 
create_weapon() {
    new 
wpnid wpn_register_weapon(WPN_NAME,WPN_SHORT)
    if(
wpnid == -1) return PLUGIN_CONTINUE
    wpn_set_string
(wpnid,wpn_viewmodel,V_MODEL)
    
wpn_set_string(wpnid,wpn_weaponmodel,P_MODEL)
    
wpn_set_string(wpnid,wpn_worldmodel,W_MODEL)
    
    
wpn_register_event(wpnid,event_attack1,"ev_attack1")
    
wpn_register_event(wpnid,event_attack2,"ev_attack2")
    
wpn_register_event(wpnid,event_draw,"ev_draw")
    
wpn_register_event(wpnid,event_reload,"ev_reload")

    
wpn_set_float(wpnid,wpn_refire_rate1,0.35)
    
wpn_set_float(wpnid,wpn_refire_rate2,2.0)
    
wpn_set_float(wpnid,wpn_reload_time,6.0)
    
wpn_set_float(wpnid,wpn_recoil1,4.0)
    
wpn_set_float(wpnid,wpn_run_speed,350.0)

    
wpn_set_integer(wpnid,wpn_ammo1,45)
    
wpn_set_integer(wpnid,wpn_ammo2,45)
    
wpn_set_integer(wpnid,wpn_bullets_per_shot1,BULLETS_PER_SHOT[0])
    
wpn_set_integer(wpnid,wpn_bullets_per_shot2,BULLETS_PER_SHOT[1])
    
wpn_set_integer(wpnid,wpn_cost,0)

    
g_wpnid wpnid
    
return PLUGIN_CONTINUE


// vector_to_angle port 
stock vec_to_angle(Float:vector[3],Float:output[3]) {
    new 
Float:angles[3]
    
engfunc(EngFunc_VecToAnglesvectorangles
    
output[0] = angles[0
    
output[1] = angles[1
    
output[2] = angles[2


public 
ev_attack1(id) {
    return 
fire_rocket(id0);
}

public 
ev_attack2(id) {
    return 
fire_rocket(id1);
}

fire_rocket(idtype)
{
    
wpn_playanim(id,random_num(anim_fire,anim_idle1))
    
    new 
rocket engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target"))
    if(!
rocket) return PLUGIN_CONTINUE
    
    
// Strings
    
set_pev(rocket,pev_classname,ROCKET_CLASSNAME[type])
    
engfunc(EngFunc_SetModel,rocket,ROCKET_MDL[type])
    
    
// Integer
    
set_pev(rocket,pev_owner,id)
    
set_pev(rocket,pev_movetype,MOVETYPE_FLY)
    
set_pev(rocket,pev_solid,SOLID_BBOX)
    
set_pev(rocket,pev_rendermode,kRenderTransAdd)
    
set_pev(rocket,pev_renderamt,255.0)
        
    
// Floats
    
set_pev(rocket,pev_mins,Float:{-1.0,-1.0,-1.0})
    
set_pev(rocket,pev_maxs,Float:{1.0,1.0,1.0})
    
    new 
Float:fStart[3]
    
wpn_projectile_startpos(id,40,0,0,fStart)
    
set_pev(rocket,pev_origin,fStart)
    
    new 
Float:fVel[3]
    
velocity_by_aim(id,ROCKET_SPEED[type],fVel)
    
set_pev(rocket,pev_velocity,fVel)
    
    new 
Float:fAngles[3]
    
vec_to_angle(fVel,fAngles)
    
set_pev(rocket,pev_angles,fAngles)
    
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_BEAMFOLLOW)    // Temp entity type
    
write_short(rocket)        // entity
    
write_short(g_trail)    // sprite index
    
write_byte(25)    // life time in 0.1's
    
write_byte(5)    // line width in 0.1's
    
write_byte(ROCKET_TRAIL_COLOR[type][0])    // red (RGB)
    
write_byte(ROCKET_TRAIL_COLOR[type][1])    // green (RGB)
    
write_byte(ROCKET_TRAIL_COLOR[type][2])    // blue (RGB)
    
write_byte(255)    // brightness 0 invisible, 255 visible
    
message_end()
    
    
emit_sound(rocketCHAN_WEAPONROCKET_SOUND[type], 1.0ATTN_NORM0PITCH_NORM)
    
    return 
PLUGIN_CONTINUE
}

public 
ev_reload(id)
    
wpn_playanim(idanim_spindown)

public 
ev_draw(id)
    
wpn_playanim(id,anim_draw

public 
fwd_Touch(ptrptd) {
    if(
pev_valid(ptr)) {
        static 
classname[32]
        
pev(ptr,pev_classname,classname,31)

        if(
equal(classname,ROCKET_CLASSNAME[0])) {
            
create_explosion(ptrptd0)
        } else if(
equal(classname,ROCKET_CLASSNAME[1])) {
            
create_explosion(ptrptd1)
        }
    }
}

create_explosion(ptrptdtype)
{
    new 
Float:fOrigin[3]
    
pev(ptr,pev_origin,fOrigin)
    
    
engfunc(EngFunc_MessageBeginMSG_BROADCASTSVC_TEMPENTITYfOrigin0)
    
write_byte(TE_EXPLOSION)
    
engfunc(EngFunc_WriteCoordfOrigin[0])
    
engfunc(EngFunc_WriteCoordfOrigin[1])
    
engfunc(EngFunc_WriteCoordfOrigin[2])
    
write_short(g_explosion[type])
    
write_byte(30)
    
write_byte(15)
    
write_byte(0)
    
message_end()

    new 
attacker pev(ptr,pev_owner)
    
wpn_radius_damage(g_wpnid,attacker,ptr,ROCKET_RADIUS[type],ROCKET_DAMAGE[type],DMG_BLAST)
    if(
pev_valid(ptd)) {
        new 
classname[32]
        
pev(ptd,pev_classname,classname,31)

        if(
equal(classname,"func_breakable"))
            
dllfunc(DLLFunc_Use,ptd,ptr)
    }
    
set_pev(ptr,pev_flags,FL_KILLME)


Last edited by Unalloyed; 08-26-2012 at 14:32.
Unalloyed is offline
Unalloyed
New Member
Join Date: Aug 2012
Old 08-26-2012 , 14:34   Re: [WeaponMOD]Weapon for admins only
Reply With Quote #2

bump
Unalloyed is offline
Reply


Thread Tools
Display Modes

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 11:22.


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