AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Solved Sg552 Zoom constant fire speed adjustment problems. (https://forums.alliedmods.net/showthread.php?t=298643)

ZombieTheMan01 06-18-2017 19:58

Sg552 Zoom constant fire speed adjustment problems.
 
Sometimes it slows down when opening the SG552 Zoom, sometimes it turns to its own speed. I want to set it to another speed, but it will stay constant. What code should we write for this? Thanks to the helping people already.
Quote:

Originally Posted by ZombieTheMan01 (Post 2529088)
CODES:
PHP Code:

#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <cstrike>

new const GUNSHOT_DECALS[] = { 4142434445 }

new 
g_eventg_has[33], g_clip[33], oldweap[33]

new 
g_hasZoom2g_hasZoomFloat:g_flNextUseTime[33], smoke

public plugin_init()
{
    
register_plugin("[Weapon]: SG552 ZOOM for AWP ZOOM""0.1""unknown")    
    
register_event("CurWeapon","CurrentWeapon","be","1=1")
    
    
//register_forward(FM_SetModel, "SetModel")
    
register_forward(FM_UpdateClientData"UpdateClientData_Post"1)
    
register_forward(FM_PlaybackEvent"PlaybackEvent")

    
RegisterHam(Ham_TraceAttack"worldspawn""TraceAttack"1)
    
RegisterHam(Ham_Item_AddToPlayer"weapon_sg552""AddToPlayer")
    
RegisterHam(Ham_Item_PostFrame"weapon_sg552""ItemPostFrame")
    
    
RegisterHam(Ham_Weapon_Reload"weapon_sg552""Reload")
    
RegisterHam(Ham_Weapon_Reload"weapon_sg552""Reload_Post"1)    
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_sg552""PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_sg552""PrimaryAttack_Post"1)
    
RegisterHam(Ham_Item_Holster"weapon_sg552""Holster_Post"1)
    
register_forward(FM_CmdStart"CmdStart")
    
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_sg552""SecondaryAttack")

    
register_clcmd("say sg552""give_weapon")
}
public 
plugin_precache()
{    
    
smoke precache_model("sprites/sniper_scope.spr")
}

public 
SecondaryAttack(weapon)
{
   new 
id get_pdata_cbase(weapon414)
   
   if(
g_has[id])
      return 
HAM_SUPERCEDE

   
return HAM_IGNORED
}

public 
TraceAttack(iEntiAttackerFloat:flDamageFloat:fDir[3], ptriDamageType)
{
    if(!
is_user_alive(iAttacker))
        return

    new 
g_currentweapon get_user_weapon(iAttacker)

    if(
g_currentweapon != CSW_SG552) return
    
    if(!
g_has[iAttacker]) return

    static 
Float:flEnd[3]
    
get_tr2(ptrTR_vecEndPosflEnd)
    
    if(
iEnt)
    {
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_DECAL)
        
engfunc(EngFunc_WriteCoord,flEnd[0])
        
engfunc(EngFunc_WriteCoord,flEnd[1])
        
engfunc(EngFunc_WriteCoord,flEnd[2])
        
write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])
        
write_short(iEnt)
        
message_end()
    }
    else
    {
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_WORLDDECAL)
        
engfunc(EngFunc_WriteCoord,flEnd[0])
        
engfunc(EngFunc_WriteCoord,flEnd[1])
        
engfunc(EngFunc_WriteCoord,flEnd[2])
        
write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])
        
message_end()
    }
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_GUNSHOTDECAL)
    
engfunc(EngFunc_WriteCoord,flEnd[0])
    
engfunc(EngFunc_WriteCoord,flEnd[1])
    
engfunc(EngFunc_WriteCoord,flEnd[2])    
    
write_short(iAttacker)
    
write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])
    
message_end()
}

//public PrecacheEvent_Post(type, const name[]) if(equal("events/sg552.sc", name)) g_event = get_orig_retval()

public client_disconnect(idg_has[id] = false

/*public SetModel(ent, model[])
{
    if(!is_valid_ent(ent))
        return FMRES_IGNORED
    
    static szClassName[33]
    entity_get_string(ent, EV_SZ_classname, szClassName, charsmax(szClassName))
        
    if(!equal(szClassName, "weaponbox"))
        return FMRES_IGNORED
        
    if(equal(model, "models/w_sg552.mdl"))
    {
    
        if(!is_valid_ent(find_ent_by_owner(-1, "weapon_sg552", ent)))
            return FMRES_IGNORED
    
        if(g_has[entity_get_edict(ent, EV_ENT_owner)])
        {
            entity_set_int(find_ent_by_owner(-1, "weapon_sg552", ent), EV_INT_impulse, 45488)
            
            g_has[entity_get_edict(ent, EV_ENT_owner)] = false
            
            entity_set_model(ent, "models/w_sg552.mdl")
            
            return FMRES_SUPERCEDE
        }
    }
    return FMRES_IGNORED
}*/

public give_weapon(id)
{
    new 
iWep2 give_item(id,"weapon_sg552")
    if( 
iWep2 )
    {
        
cs_set_weapon_ammo(iWep250)
        
cs_set_user_bpammo (idCSW_SG552250)    
        
set_anim(id2)
        
set_pdata_float(id831.05)
    }
    
g_has[id] = true
}

public 
AddToPlayer(wpnid)
{
    if(!
is_valid_ent(wpn) || !is_user_connected(id))
        return 
HAM_IGNORED
    
    
if(entity_get_int(wpnEV_INT_impulse) == 45488)
    {
        
g_has[id] = true
        
        entity_set_int
(wpnEV_INT_impulse0)
    }
    return 
HAM_IGNORED
}

public 
CurrentWeapon(id)
{
    
replace_weapon_models(idread_data(2))
    if(
read_data(2) != CSW_SG552 || !g_has[id]) return

    if(
g_hasZoom == || g_hasZoom2 == 2)
    {
        
set_pev(idpev_viewmodel2"")

    }
    else 
set_pev(idpev_viewmodel2"models/v_sg552.mdl")

}

replace_weapon_models(idwpnid)
{
    switch (
wpnid)
    {
        case 
CSW_SG552:
        {            
            if(
g_has[id])
            {
                
set_pev(idpev_viewmodel2"models/v_sg552.mdl")
                
set_pev(idpev_weaponmodel2"models/p_sg552.mdl")
                if(
oldweap[id] != CSW_SG552
                {
                    
set_anim(id2)
                    
set_pdata_float(id831.05)
                }
            }
        }
    }
    
oldweap[id] = wpnid
}

public 
UpdateClientData_Post(PlayerSendWeaponsCD_Handle)
{
    if(!
is_user_alive(Player) || (get_user_weapon(Player) != CSW_SG552 || !g_has[Player]))
        return 
FMRES_IGNORED
    
    set_cd
(CD_HandleCD_flNextAttackhalflife_time () + 0.001)
    return 
FMRES_HANDLED
}

public 
PrimaryAttack(wpn)
{
    new 
id get_pdata_cbase(wpn414)
    if (!
g_has[id]) return
}

public 
PlaybackEvent(flagsinvokereventidFloat:delayFloat:origin[3], Float:angles[3], Float:fparam1Float:fparam2iParam1iParam2bParam1bParam2)
{
    if ((
eventid != g_event))
        return 
FMRES_IGNORED
    
if (!(<= invoker <= get_maxplayers()))
    return 
FMRES_IGNORED

    playback_event
(flags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
    return 
FMRES_SUPERCEDE
}

public 
PrimaryAttack_Post(wpn)
{
    new 
id get_pdata_cbase(wpn414)
    
    if(!
is_user_alive(id) || !g_has[id])
        return
    
    
emit_sound(idCHAN_WEAPON"weapons/sg552-1.wav"VOL_NORMATTN_NORM0PITCH_NORM)
    
emit_sound(idCHAN_WEAPON"weapons/sg552-2.wav"VOL_NORMATTN_NORM0PITCH_NORM)
    
set_anim(idrandom_num(3,5))
}

stock set_anim(const Player, const Sequence)
{
    
set_pev(Playerpev_weaponanimSequence)
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, .player Player)
    
write_byte(Sequence)
    
write_byte(pev(Playerpev_body))
    
message_end()
}

public 
ItemPostFrame(wpn
{
    new 
id pev(wpnpev_owner)
    if (!
is_user_connected(id)) return HAM_IGNORED

    
if (!g_has[id])return HAM_IGNORED

    
static iClipExtra
     
    iClipExtra 
50
    
new Float:flNextAttack get_pdata_float(id835)

    new 
iBpAmmo cs_get_user_bpammo(idCSW_SG552)
    new 
iClip get_pdata_int(wpn514)

    new 
fInReload get_pdata_int(wpn544

    if( 
fInReload && flNextAttack <= 0.0 )
    {
        new 
min(iClipExtra iClipiBpAmmo)
    
        
set_pdata_int(wpn51iClip j4)
        
cs_set_user_bpammo(idCSW_SG552iBpAmmo-j)
        
        
set_pdata_int(wpn5404)
        
fInReload 0
    
}
    return 
HAM_IGNORED
}

public 
Reload(wpn
{
    new 
id pev(wpnpev_owner)
    if(!
is_user_connected(id)) return HAM_IGNORED

    
if(!g_has[id]) return HAM_IGNORED

    
static iClipExtra

    
//if(g_has[id])
    
iClipExtra 50

    g_clip
[id] = -1

    
new iBpAmmo cs_get_user_bpammo(idCSW_SG552)
    new 
iClip get_pdata_int(wpn514)

    if (
iBpAmmo <= 0)
        return 
HAM_SUPERCEDE

    
if (iClip >= iClipExtra)
        return 
HAM_SUPERCEDE

    g_clip
[id] = iClip

    
return HAM_IGNORED
}

public 
Reload_Post(wpn
{
    new 
id pev(wpnpev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED

    
if (!g_has[id])
        return 
HAM_IGNORED

    
if (g_clip[id] == -1)
        return 
HAM_IGNORED

    set_pdata_int
(wpn51g_clip[id], 4)

    
set_pdata_int(wpn5414)
    
    
g_hasZoom 0
    g_hasZoom2 
0
    set_anim
(id1)

    return 
HAM_IGNORED
}

public 
Holster_Post(weapon_entity)
{
    static 
Player
    Player 
get_pdata_cbase(weapon_entity414)
    
    
g_flNextUseTime[Player] = 0.0

    
if(g_has[Player])
    {
        
g_hasZoom false
        g_hasZoom2 
false
        cs_set_user_zoom
(PlayerCS_RESET_ZOOM1)
    }
}

public 
CmdStart(iduc_handleseed)
{
    if (!
is_user_alive(id) || !g_has[id])
        return 
FMRES_IGNORED
    
    
if((get_uc(uc_handleUC_Buttons) & IN_ATTACK2) && !(pev(idpev_oldbuttons) & IN_ATTACK2))
    {
        new 
szClipszAmmo
        
new szWeapID get_user_weapon(idszClipszAmmo)

        if(
szWeapID == CSW_SG552 && g_has[id] && !g_hasZoom == true)
        {
            
g_hasZoom 1
            cs_set_user_zoom
(idCS_SET_FIRST_ZOOM1)
            
emit_sound(idCHAN_ITEM"weapons/zoom.wav"0.202.400100)
        }
        else if(
szWeapID == CSW_SG552 && g_has[id] && !g_hasZoom2 == true)
        {
            
g_hasZoom2 true
            cs_set_user_zoom
(idCS_SET_SECOND_ZOOM2)
            
emit_sound(idCHAN_ITEM"weapons/zoom.wav"0.202.400100)
        }
        else if(
szWeapID == CSW_SG552 && g_has[id] && g_hasZoom)
        {
            
g_hasZoom false
            g_hasZoom2 
0
            cs_set_user_zoom
(idCS_RESET_ZOOM0)    
        }
    }
    return 
FMRES_IGNORED
}

stock get_position(entFloat:forwFloat:rightFloat:upFloat:vStart[])
{
    static 
Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
    
    
pev(entpev_originvOrigin)
    
pev(entpev_view_ofs,vUp//for player
    
xs_vec_add(vOrigin,vUp,vOrigin)
    
pev(entpev_v_anglevAngle// if normal entity ,use pev_angles
    
    
angle_vector(vAngle,ANGLEVECTOR_FORWARD,vForward//or use EngFunc_AngleVectors
    
angle_vector(vAngle,ANGLEVECTOR_RIGHT,vRight)
    
angle_vector(vAngle,ANGLEVECTOR_UP,vUp)
    
    
vStart[0] = vOrigin[0] + vForward[0] * forw vRight[0] * right vUp[0] * up
    vStart
[1] = vOrigin[1] + vForward[1] * forw vRight[1] * right vUp[1] * up
    vStart
[2] = vOrigin[2] + vForward[2] * forw vRight[2] * right vUp[2] * up




ZombieTheMan01 06-19-2017 06:06

Re: Sg552 Zoom constant fire speed adjustment problems.
 
Will you help me?


All times are GMT -4. The time now is 23:03.

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