| Gadzislaw007 |
07-30-2010 16:02 |
Changing V_model Animation - Kinda buggy
Well, another problem.
Global:
Register:
PHP Code:
RegisterHam(Ham_Weapon_Deploy, "weapon_knife", "knife_deploy", 1 );
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "knife_attack", 1 );
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "knife_attack2", 1 );
PHP Code:
public knife_deploy( const iEntity ) {
new id = get_pdata_cbase( iEntity, m_pPlayer, 4 )
entity_set_string(id, EV_SZ_viewmodel, "models/v_rpg.mdl")
entity_set_string(id, EV_SZ_weaponmodel, "models/p_rpg.mdl")
if(loaded[id])//if is loaded
{
set_pdata_float( iEntity, m_flNextSecondaryAttack, 99999.0, 4 ); // disable loading
set_pdata_float( iEntity, m_flNextPrimaryAttack, 0.5, 4 ); // enable firing
message_begin(MSG_ONE, SVC_WEAPONANIM, _, id)///set animation
write_byte(0) //idle1
write_byte(pev(id,pev_body))
message_end()
}
if(!loaded[id])// if is unloaded
{
set_pdata_float( iEntity, m_flNextSecondaryAttack, 0.5, 4 ); // enable loading
set_pdata_float( iEntity, m_flNextPrimaryAttack, 9999.0, 4 ); // disable firing
message_begin(MSG_ONE, SVC_WEAPONANIM, _, id)///set animation
write_byte(8) //idle2
write_byte(pev(id,pev_body))
message_end()
}
}
public knife_attack( const iEntity ) {
new id = get_pdata_cbase( iEntity, m_pPlayer, 4 )
loaded[id] = 0
set_task(2.0, "check_bazooka", id) // set idle2 anim.
message_begin(MSG_ONE, SVC_WEAPONANIM, _, id) // set animation
write_byte(3) //fire
write_byte(pev(id,pev_body))
message_end()
fire_rocket(id)//fire rocket
set_pdata_float( iEntity, m_flNextSecondaryAttack, 3.0, 4 ); /// enable loading
set_pdata_float( iEntity, m_flNextPrimaryAttack, 99999.0, 4 ); // disable firing
emit_sound(id, CHAN_VOICE, "weapons/glauncher.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
public knife_attack2( const iEntity ) {
new id = get_pdata_cbase( iEntity, m_pPlayer, 4 )
loaded[id] = 1 // is loaded
set_task(2.5, "check_bazooka", id) // set idle animation
set_pdata_float( iEntity, m_flNextSecondaryAttack, 9999.0, 4 ); // disable loading
set_pdata_float( iEntity, m_flNextPrimaryAttack, 2.5, 4 ); // enable firing
message_begin(MSG_ONE, SVC_WEAPONANIM, _, id)/// set animation
write_byte(2) ///reload
write_byte(pev(id,pev_body))
message_end()
}
Sometimes animation gets bugged and sometimes (ussualy, when I'm ducking or running backward) instead of reloading it plays draw2 animation.
Is there any other method to do this? SVC_WEAPONANIM is kinda buggy :(.
|