mirror of https://github.com/FWGS/hlsdk-xash3d
Fix some animations
This commit is contained in:
parent
618e379ebf
commit
184d878a4d
|
@ -607,17 +607,24 @@ void EV_TFC_Axe(event_args_t *args)
|
|||
gEngfuncs.pEventAPI->EV_PushPMStates();
|
||||
gEngfuncs.pEventAPI->EV_SetSolidPlayers(idx - 1);
|
||||
gEngfuncs.pEventAPI->EV_SetTraceHull(2);
|
||||
gEngfuncs.pEventAPI->EV_PlayerTrace(vecSrc, vecEnd, PM_STUDIO_BOX, -1, &tr);
|
||||
gEngfuncs.pEventAPI->EV_PlayerTrace(vecSrc, vecEnd, PM_NORMAL, -1, &tr);
|
||||
if (tr.fraction >= 1.0)
|
||||
{
|
||||
gEngfuncs.pEventAPI->EV_SetTraceHull(1);
|
||||
gEngfuncs.pEventAPI->EV_PlayerTrace(vecSrc, vecEnd, PM_STUDIO_BOX, -1, &tr2);
|
||||
gEngfuncs.pEventAPI->EV_PlayerTrace(vecSrc, vecEnd, PM_NORMAL, -1, &tr2);
|
||||
if(tr2.fraction < 1.0)
|
||||
tr = tr2;
|
||||
}
|
||||
gEngfuncs.pEventAPI->EV_PopPMStates();
|
||||
gp_tr_decal[idx-1] = 0;
|
||||
if(tr.fraction >= 1.0)
|
||||
{
|
||||
if (!EV_IsLocal(idx))
|
||||
{
|
||||
EV_TFC_PlayAxeSound(idx, classid, origin, 0, 0.0);
|
||||
return;
|
||||
}
|
||||
|
||||
switch(classid)
|
||||
{
|
||||
default:
|
||||
|
@ -1070,15 +1077,15 @@ void EV_TFC_BloodDrips(float *vecOrigin, signed int iDamage, long double height)
|
|||
}
|
||||
}
|
||||
|
||||
enum tfc_assault_e
|
||||
enum tf_ac_e
|
||||
{
|
||||
ASSAULT_IDLE = 0,
|
||||
ASSAULT_IDLE2,
|
||||
ASSAULT_SPINUP,
|
||||
ASSAULT_SPINDOWN,
|
||||
ASSAULT_FIRE,
|
||||
ASSAULT_DRAW,
|
||||
ASSAULT_HOLSTER
|
||||
AC_IDLE = 0,
|
||||
AC_IDLE2,
|
||||
AC_SPINUP,
|
||||
AC_SPINDOWN,
|
||||
AC_FIRE,
|
||||
AC_DRAW,
|
||||
AC_HOLSTER
|
||||
};
|
||||
|
||||
void EV_TFC_Assault_WindUp(event_args_t *args)
|
||||
|
@ -1092,7 +1099,7 @@ void EV_TFC_Assault_WindUp(event_args_t *args)
|
|||
gEngfuncs.GetClientTime();
|
||||
g_flSpinUpTime[idx - 1] = 0.0 + 3.5;
|
||||
if (EV_IsLocal(idx))
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(ASSAULT_SPINUP, 2);
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(AC_SPINUP, 2);
|
||||
g_bACSpinning[idx - 1] = 0;
|
||||
gEngfuncs.pEventAPI->EV_StopSound(idx, CHAN_STATIC, "weapons/asscan2.wav");
|
||||
gEngfuncs.pEventAPI->EV_StopSound(idx, CHAN_STATIC, "weapons/asscan4.wav");
|
||||
|
@ -1112,10 +1119,10 @@ void EV_TFC_Assault_WindDown(event_args_t *args)
|
|||
gEngfuncs.GetClientTime();
|
||||
g_flSpinDownTime[idx - 1] = 0.0 + 3.0;
|
||||
if(EV_IsLocal(idx))
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(ASSAULT_SPINDOWN, 2);
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(AC_SPINDOWN, 2);
|
||||
}
|
||||
else if(EV_IsLocal(idx))
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(ASSAULT_SPINDOWN, 2);
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(AC_SPINDOWN, 2);
|
||||
|
||||
g_bACSpinning[idx - 1] = 0;
|
||||
gEngfuncs.pEventAPI->EV_StopSound(idx, CHAN_STATIC, "weapons/asscan2.wav");
|
||||
|
@ -1160,7 +1167,7 @@ void EV_TFC_Assault_Fire(event_args_t *args)
|
|||
if(EV_IsLocal(idx))
|
||||
{
|
||||
EV_MuzzleFlash();
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(ASSAULT_FIRE, 2);
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(AC_FIRE, 2);
|
||||
}
|
||||
g_bACSpinning[idx - 1] = 0;
|
||||
if(oddammo)
|
||||
|
@ -1182,7 +1189,7 @@ void EV_TFC_Assault_Spin(event_args_t *args)
|
|||
|
||||
idx = args->entindex;
|
||||
if (EV_IsLocal(idx))
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(ASSAULT_FIRE, 2);
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(AC_FIRE, 2);
|
||||
g_bACSpinning[idx - 1] = 1;
|
||||
}
|
||||
|
||||
|
@ -1584,20 +1591,20 @@ void EV_TFC_NailgrenadeNail(event_args_t *args)
|
|||
}
|
||||
}
|
||||
|
||||
enum tfc_grenadelauncher_e
|
||||
enum tf_gl_e
|
||||
{
|
||||
TFGL_IDLE = 0,
|
||||
TFPL_IDLE,
|
||||
TFGL_FIRE,
|
||||
TFPL_FIRE,
|
||||
TFGL_RELOAD1,
|
||||
TFGL_RELOAD2,
|
||||
TFPL_RELOAD1,
|
||||
TFPL_RELOAD2,
|
||||
TFGL_DRAW,
|
||||
TFPL_DRAW,
|
||||
TFGL_HOLSTER,
|
||||
TFPL_HOLSTER
|
||||
GL_IDLE = 0,
|
||||
PL_IDLE,
|
||||
GL_FIRE,
|
||||
PL_FIRE,
|
||||
GL_RELOAD1,
|
||||
GL_RELOAD2,
|
||||
PL_RELOAD1,
|
||||
PL_RELOAD2,
|
||||
GL_DRAW,
|
||||
PL_DRAW,
|
||||
GL_HOLSTER,
|
||||
PL_HOLSTER
|
||||
};
|
||||
|
||||
void EV_TFC_GrenadeLauncher(event_args_t *args)
|
||||
|
@ -1608,7 +1615,7 @@ void EV_TFC_GrenadeLauncher(event_args_t *args)
|
|||
idx = args->entindex;
|
||||
VectorCopy(args->origin, origin);
|
||||
if(EV_IsLocal(idx))
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(TFGL_FIRE, 2);
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(GL_FIRE, 2);
|
||||
gEngfuncs.pEventAPI->EV_PlaySound(-1, origin, CHAN_WEAPON, "weapons/glauncher.wav", 0.7, 0.8, 0, 100);
|
||||
if(EV_IsLocal(idx))
|
||||
V_PunchAxis(0, -2.0);
|
||||
|
@ -1622,7 +1629,7 @@ void EV_TFC_PipeLauncher(event_args_t *args)
|
|||
idx = args->entindex;
|
||||
VectorCopy(args->origin, origin);
|
||||
if(EV_IsLocal(idx))
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(TFPL_FIRE, 2);
|
||||
gEngfuncs.pEventAPI->EV_WeaponAnimation(PL_FIRE, 2);
|
||||
gEngfuncs.pEventAPI->EV_PlaySound(-1, origin, CHAN_WEAPON, "weapons/glauncher.wav", 0.7, 0.8, 0, 100);
|
||||
if(EV_IsLocal(idx))
|
||||
V_PunchAxis(0, -2.0);
|
||||
|
|
|
@ -4412,6 +4412,14 @@ BOOL CBasePlayer::SwitchWeapon( CBasePlayerItem *pWeapon )
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
//=========================================================
|
||||
//
|
||||
//=========================================================
|
||||
void CBasePlayer::TeamFortress_SetSpeed()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//=========================================================
|
||||
// Dead HEV suit prop
|
||||
//=========================================================
|
||||
|
|
|
@ -324,6 +324,9 @@ public:
|
|||
float m_flNextChatTime;
|
||||
|
||||
bool m_bSentBhopcap; // If false, the player just joined and needs a bhopcap message.
|
||||
|
||||
//Team Fortress
|
||||
void TeamFortress_SetSpeed();
|
||||
};
|
||||
|
||||
#define AUTOAIM_2DEGREES 0.0348994967025
|
||||
|
|
|
@ -6,47 +6,20 @@
|
|||
#include "nodes.h"
|
||||
#include "player.h"
|
||||
#include "gamerules.h"
|
||||
#include "tf_defs.h"
|
||||
|
||||
LINK_ENTITY_TO_CLASS( tf_weapon_ac, CTFAssaultC )
|
||||
|
||||
void CTFAssaultC::Spawn()
|
||||
{
|
||||
pev->classname = MAKE_STRING("tf_weapon_ac");
|
||||
Precache();
|
||||
|
||||
m_iId = 17;
|
||||
m_iId = WEAPON_ASSAULT_CANNON;
|
||||
m_iDefaultAmmo = 25;
|
||||
m_iWeaponState = 0;
|
||||
pev->solid = SOLID_TRIGGER;
|
||||
}
|
||||
|
||||
int CTFAssaultC::GetItemInfo( ItemInfo *p )
|
||||
{
|
||||
p->pszAmmo1 = "buckshot";
|
||||
p->pszName = STRING( pev->classname );
|
||||
p->iMaxAmmo1 = 200;
|
||||
p->pszAmmo2 = 0;
|
||||
p->iMaxAmmo2 = -1;
|
||||
p->iSlot = 4;
|
||||
p->iPosition = 3;
|
||||
p->iFlags = 0;
|
||||
p->iMaxClip = -1;
|
||||
p->iId = 17;
|
||||
p->iWeight = 15;
|
||||
return 1;
|
||||
}
|
||||
|
||||
void CTFAssaultC::Holster()
|
||||
{
|
||||
PLAYBACK_EVENT_FULL(1, ENT(m_pPlayer->pev), m_usWindDown, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0, 1, 0);
|
||||
m_iWeaponState = 0;
|
||||
//tfstate
|
||||
//setspeed
|
||||
m_fInReload = 0;
|
||||
m_flTimeWeaponIdle = 2;
|
||||
m_pPlayer->m_flNextAttack = 0.1;
|
||||
SendWeaponAnim(ASSAULT_HOLSTER, 1);
|
||||
}
|
||||
|
||||
void CTFAssaultC::Precache()
|
||||
{
|
||||
PRECACHE_MODEL("models/v_tfac.mdl");
|
||||
|
@ -66,32 +39,25 @@ void CTFAssaultC::Precache()
|
|||
m_usACStart = PRECACHE_EVENT(1, "events/wpn/tf_acstart.sc");
|
||||
}
|
||||
|
||||
void CTFAssaultC::WeaponIdle( void )
|
||||
int CTFAssaultC::GetItemInfo( ItemInfo *p )
|
||||
{
|
||||
ResetEmptySound();
|
||||
|
||||
if(m_flTimeWeaponIdle <= 0.0)
|
||||
{
|
||||
if(m_iWeaponState)
|
||||
{
|
||||
PLAYBACK_EVENT_FULL(1, ENT(m_pPlayer->pev), m_usWindDown, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0, 0, 0);
|
||||
m_iWeaponState = 0;
|
||||
//tfstate
|
||||
//setspeed
|
||||
m_flTimeWeaponIdle = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
SendWeaponAnim(RANDOM_LONG(0, 1), 1);
|
||||
m_flTimeWeaponIdle = 12.5;
|
||||
}
|
||||
}
|
||||
p->pszName = STRING(pev->classname);
|
||||
p->pszAmmo1 = "buckshot";
|
||||
p->iMaxAmmo1 = 200;
|
||||
p->pszAmmo2 = 0;
|
||||
p->iMaxAmmo2 = -1;
|
||||
p->iMaxClip = -1;
|
||||
p->iSlot = 4;
|
||||
p->iPosition = 3;
|
||||
p->iFlags = 0;
|
||||
p->iId = WEAPON_ASSAULT_CANNON;
|
||||
p->iWeight = 15;
|
||||
return 1;
|
||||
}
|
||||
|
||||
BOOL CTFAssaultC::Deploy()
|
||||
{
|
||||
//Velaron: "ac" deploy
|
||||
return DefaultDeploy( "models/v_tfac.mdl", "models/p_mini.mdl", ASSAULT_DRAW, "mp5", 1 );
|
||||
return DefaultDeploy( "models/v_tfac.mdl", "models/p_mini.mdl", AC_DRAW, "ac", 1 );
|
||||
}
|
||||
|
||||
int CTFAssaultC::AddToPlayer( CBasePlayer *pPlayer )
|
||||
|
@ -106,57 +72,93 @@ int CTFAssaultC::AddToPlayer( CBasePlayer *pPlayer )
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
void CTFAssaultC::Holster()
|
||||
{
|
||||
PLAYBACK_EVENT_FULL(7, ENT(m_pPlayer->pev), m_usWindDown, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0, 1, 0);
|
||||
m_iWeaponState = 0;
|
||||
//m_pPlayer->tfstate &= 0xFFFFF7FF;
|
||||
//m_pPlayer->TeamFortress_SetSpeed();
|
||||
m_fInReload = 0;
|
||||
m_flTimeWeaponIdle = 2;
|
||||
m_pPlayer->m_flNextAttack = 0.1;
|
||||
SendWeaponAnim(AC_HOLSTER, 1);
|
||||
}
|
||||
|
||||
void CTFAssaultC::WeaponIdle( void )
|
||||
{
|
||||
ResetEmptySound();
|
||||
|
||||
if(m_flTimeWeaponIdle <= 0.0)
|
||||
{
|
||||
if(m_iWeaponState)
|
||||
{
|
||||
PLAYBACK_EVENT_FULL(7, ENT(m_pPlayer->pev), m_usWindDown, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0, 0, 0);
|
||||
m_iWeaponState = 0;
|
||||
//m_pPlayer->tfstate &= 0xFFFFF7FF;
|
||||
//m_pPlayer->TeamFortress_SetSpeed();
|
||||
m_flTimeWeaponIdle = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
SendWeaponAnim(RANDOM_LONG(0, 1), 1);
|
||||
m_flTimeWeaponIdle = 12.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CTFAssaultC::PrimaryAttack()
|
||||
{
|
||||
if(m_iWeaponState == 2)
|
||||
switch(m_iWeaponState)
|
||||
{
|
||||
if(m_pPlayer->ammo_buckshot <= 0)
|
||||
case 2:
|
||||
{
|
||||
PLAYBACK_EVENT_FULL(1, ENT(m_pPlayer->pev), m_usStartSpin, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0, 0, 0);
|
||||
m_iWeaponState = 3;
|
||||
m_pPlayer->SetAnimation(PLAYER_ATTACK1);
|
||||
pev->effects &= ~EF_MUZZLEFLASH;
|
||||
}
|
||||
else
|
||||
Fire();
|
||||
if(m_pPlayer->ammo_buckshot <= 0)
|
||||
{
|
||||
PLAYBACK_EVENT_FULL(7, ENT(m_pPlayer->pev), m_usStartSpin, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0, 0, 0);
|
||||
m_iWeaponState = 3;
|
||||
m_pPlayer->SetAnimation(PLAYER_ATTACK1);
|
||||
pev->effects &= ~EF_MUZZLEFLASH;
|
||||
}
|
||||
else
|
||||
Fire();
|
||||
|
||||
m_flTimeWeaponIdle = 0.1;
|
||||
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1;
|
||||
return;
|
||||
}
|
||||
if(m_iWeaponState == 3)
|
||||
{
|
||||
if(m_pPlayer->ammo_buckshot <= 0)
|
||||
{
|
||||
PLAYBACK_EVENT_FULL(1, ENT(m_pPlayer->pev), m_usSpin, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0, 0, 0);
|
||||
m_pPlayer->SetAnimation(PLAYER_ATTACK1);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_iWeaponState = 1;
|
||||
}
|
||||
m_flTimeWeaponIdle = 0.1;
|
||||
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1;
|
||||
return;
|
||||
}
|
||||
if(m_iWeaponState == 1)
|
||||
{
|
||||
if(m_flNextPrimaryAttack > 0.0)
|
||||
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.1;
|
||||
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1;
|
||||
return;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if(m_pPlayer->ammo_buckshot <= 0)
|
||||
{
|
||||
PLAYBACK_EVENT_FULL(7, ENT(m_pPlayer->pev), m_usSpin, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0, 0, 0);
|
||||
m_pPlayer->SetAnimation(PLAYER_ATTACK1);
|
||||
}
|
||||
else
|
||||
m_iWeaponState = 1;
|
||||
|
||||
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.1;
|
||||
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1;
|
||||
return;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
if(m_flNextPrimaryAttack > 0.0)
|
||||
return;
|
||||
|
||||
PLAYBACK_EVENT_FULL(1, ENT(m_pPlayer->pev), m_usACStart, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0, 0, 0);
|
||||
m_iWeaponState = 2;
|
||||
m_flTimeWeaponIdle = 0.1;
|
||||
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1;
|
||||
return;
|
||||
PLAYBACK_EVENT_FULL(7, ENT(m_pPlayer->pev), m_usACStart, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0, 0, 0);
|
||||
m_iWeaponState = 2;
|
||||
m_flTimeWeaponIdle = 0.1;
|
||||
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(m_pPlayer->pev->button & 1)
|
||||
{
|
||||
PLAYBACK_EVENT_FULL(1, ENT(m_pPlayer->pev), m_usWindUp, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0, 0, 0);
|
||||
m_iWeaponState = 1;
|
||||
//tfstate
|
||||
//setspeed
|
||||
//m_pPlayer->tfstate |= 0x800u
|
||||
//m_pPlayer->TeamFortress_SetSpeed();
|
||||
}
|
||||
|
||||
m_flTimeWeaponIdle = 0.6;
|
||||
|
@ -170,16 +172,14 @@ void CTFAssaultC::Fire()
|
|||
if(m_flNextPrimaryAttack > 0)
|
||||
return;
|
||||
|
||||
PLAYBACK_EVENT_FULL(1, ENT(m_pPlayer->pev), m_usWindUp, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0, m_pPlayer->ammo_buckshot & 1, 0);
|
||||
PLAYBACK_EVENT_FULL(9, ENT(m_pPlayer->pev), m_usWindUp, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0, m_pPlayer->ammo_buckshot & 1, 0);
|
||||
m_pPlayer->m_iWeaponVolume = 600;
|
||||
m_pPlayer->m_iWeaponFlash = 256;
|
||||
m_pPlayer->pev->effects |= EF_MUZZLEFLASH;
|
||||
m_pPlayer->SetAnimation(PLAYER_ATTACK1);
|
||||
UTIL_MakeVectors(m_pPlayer->pev->v_angle);
|
||||
p_vecSrc.x = gpGlobals->v_up.x * -4.0 + gpGlobals->v_right.x + gpGlobals->v_right.x + m_pPlayer->pev->origin.x + m_pPlayer->pev->view_ofs.x;
|
||||
p_vecSrc.y = gpGlobals->v_up.y * -4.0 + gpGlobals->v_right.y + gpGlobals->v_right.y + m_pPlayer->pev->origin.y + m_pPlayer->pev->view_ofs.y;
|
||||
p_vecSrc.z = gpGlobals->v_up.z * -4.0 + gpGlobals->v_right.z + gpGlobals->v_right.z + m_pPlayer->pev->origin.z + m_pPlayer->pev->view_ofs.z;
|
||||
vecAiming = m_pPlayer->GetAutoaimVector(0.087155744);
|
||||
p_vecSrc = gpGlobals->v_up * -4.0 + gpGlobals->v_right * 2.0 + m_pPlayer->pev->origin + m_pPlayer->pev->view_ofs;
|
||||
vecAiming = m_pPlayer->GetAutoaimVector(AUTOAIM_5DEGREES);
|
||||
vecSpread.x = 0.1;
|
||||
vecSpread.y = 0.1;
|
||||
vecSpread.z = 0.0;
|
||||
|
|
|
@ -6,18 +6,39 @@
|
|||
#include "nodes.h"
|
||||
#include "player.h"
|
||||
#include "gamerules.h"
|
||||
#include "tf_defs.h"
|
||||
|
||||
enum tf_gl_e
|
||||
{
|
||||
GL_IDLE = 0,
|
||||
PL_IDLE,
|
||||
GL_FIRE,
|
||||
PL_FIRE,
|
||||
GL_RELOAD1,
|
||||
GL_RELOAD2,
|
||||
PL_RELOAD1,
|
||||
PL_RELOAD2,
|
||||
GL_DRAW,
|
||||
PL_DRAW,
|
||||
GL_HOLSTER,
|
||||
PL_HOLSTER
|
||||
};
|
||||
|
||||
LINK_ENTITY_TO_CLASS( tf_weapon_gl, CTFGrenadeLauncher )
|
||||
|
||||
void CTFGrenadeLauncher::Spawn()
|
||||
{
|
||||
Precache();
|
||||
|
||||
SET_MODEL( ENT( pev ), "models/w_gauss.mdl" );
|
||||
m_iId = 12;
|
||||
m_iDefaultAmmo = 50;
|
||||
m_fReloadTime = 0.666667;
|
||||
pev->solid = SOLID_TRIGGER;
|
||||
m_iAnim_Deploy = GL_DRAW;
|
||||
m_iAnim_Holster = GL_HOLSTER;
|
||||
m_iAnim_Idle = GL_IDLE;
|
||||
m_iAnim_ReloadDown = GL_RELOAD1;
|
||||
m_iAnim_ReloadUp = GL_RELOAD2;
|
||||
}
|
||||
|
||||
void CTFGrenadeLauncher::Precache()
|
||||
|
@ -59,14 +80,14 @@ void CTFGrenadeLauncher::Holster()
|
|||
//m_pPlayer->m_iGLClip = m_iClip;
|
||||
//tfstate?
|
||||
m_fInSpecialReload = 0;
|
||||
SendWeaponAnim(10, 1);
|
||||
SendWeaponAnim(m_iAnim_Holster, 1);
|
||||
m_flTimeWeaponIdle = 1000;
|
||||
m_pPlayer->m_flNextAttack = 0.5;
|
||||
}
|
||||
|
||||
BOOL CTFGrenadeLauncher::Deploy()
|
||||
{
|
||||
return DefaultDeploy( "models/v_tfgl.mdl", "models/p_glauncher.mdl", 8, "mp5", 1 );
|
||||
return DefaultDeploy( "models/v_tfgl.mdl", "models/p_glauncher.mdl", m_iAnim_Deploy, "mp5", 1 );
|
||||
}
|
||||
|
||||
void CTFGrenadeLauncher::Reload()
|
||||
|
@ -96,7 +117,7 @@ void CTFGrenadeLauncher::Reload()
|
|||
}
|
||||
else
|
||||
{
|
||||
SendWeaponAnim(4, 1);
|
||||
SendWeaponAnim(m_iAnim_ReloadDown, 1);
|
||||
//m_pPlayer->tfstate |= 2;
|
||||
m_fInSpecialReload = 1;
|
||||
m_pPlayer->m_flNextAttack = 0.1;
|
||||
|
@ -133,7 +154,7 @@ void CTFGrenadeLauncher::WeaponIdle( void )
|
|||
{
|
||||
if(m_iClip == 6)
|
||||
{
|
||||
SendWeaponAnim(5, 1);
|
||||
SendWeaponAnim(m_iAnim_ReloadUp, 1);
|
||||
m_fInSpecialReload = 0;
|
||||
m_flTimeWeaponIdle = 1.5;
|
||||
return;
|
||||
|
@ -146,15 +167,15 @@ void CTFGrenadeLauncher::WeaponIdle( void )
|
|||
}
|
||||
}
|
||||
m_flTimeWeaponIdle = 3;
|
||||
SendWeaponAnim(0, 1);
|
||||
SendWeaponAnim(m_iAnim_Idle, 1);
|
||||
}
|
||||
|
||||
void CTFGrenadeLauncher::PrimaryAttack()
|
||||
{
|
||||
if(m_pPlayer->ammo_rockets <= 0)
|
||||
if(m_iClip <= 0)
|
||||
{
|
||||
m_flNextPrimaryAttack = 1;
|
||||
SendWeaponAnim(0, 1);
|
||||
SendWeaponAnim(m_iAnim_Idle, 1);
|
||||
PlayEmptySound();
|
||||
m_fInSpecialReload = 0;
|
||||
//tfstate
|
||||
|
@ -178,13 +199,17 @@ LINK_ENTITY_TO_CLASS( tf_weapon_pl, CTFPipebombLauncher )
|
|||
void CTFPipebombLauncher::Spawn()
|
||||
{
|
||||
Precache();
|
||||
|
||||
SET_MODEL( ENT( pev ), "models/w_gauss.mdl" );
|
||||
m_iId = 22;
|
||||
m_iId = WEAPON_PIPEBOMB_LAUNCHER;
|
||||
m_iDefaultAmmo = 50;
|
||||
m_fReloadTime = 0.666667;
|
||||
pev->solid = SOLID_TRIGGER;
|
||||
m_usFireGL = PRECACHE_EVENT(1, "events/wpn/tf_gl.sc");
|
||||
m_usFireGL = PRECACHE_EVENT(1, "events/wpn/tf_pipel.sc");
|
||||
m_iAnim_Holster = PL_HOLSTER;
|
||||
m_iAnim_Idle = PL_IDLE;
|
||||
m_iAnim_ReloadDown = PL_RELOAD1;
|
||||
m_iAnim_ReloadUp = PL_RELOAD2;
|
||||
m_iAnim_Deploy = PL_DRAW;
|
||||
}
|
||||
|
||||
int CTFPipebombLauncher::GetItemInfo( ItemInfo *p )
|
||||
|
@ -198,17 +223,17 @@ int CTFPipebombLauncher::GetItemInfo( ItemInfo *p )
|
|||
p->iPosition = 4;
|
||||
p->iFlags = 0;
|
||||
p->iMaxClip = 6;
|
||||
p->iId = 22;
|
||||
p->iId = WEAPON_PIPEBOMB_LAUNCHER;
|
||||
p->iWeight = 15;
|
||||
return 1;
|
||||
}
|
||||
|
||||
void CTFPipebombLauncher::PrimaryAttack()
|
||||
{
|
||||
if(m_pPlayer->ammo_rockets <= 0)
|
||||
if(m_iClip <= 0)
|
||||
{
|
||||
m_flNextPrimaryAttack = 1;
|
||||
SendWeaponAnim(0, 1);
|
||||
SendWeaponAnim(m_iAnim_Idle, 1);
|
||||
PlayEmptySound();
|
||||
m_fInSpecialReload = 0;
|
||||
//tfstate
|
||||
|
|
|
@ -642,6 +642,11 @@ public:
|
|||
void Reload(void);
|
||||
int AddToPlayer(CBasePlayer *pPlayer);
|
||||
void PrimaryAttack(void);
|
||||
int m_iAnim_Holster;
|
||||
int m_iAnim_Idle;
|
||||
int m_iAnim_ReloadDown;
|
||||
int m_iAnim_ReloadUp;
|
||||
int m_iAnim_Deploy;;
|
||||
|
||||
private:
|
||||
unsigned short m_usFireGL;
|
||||
|
@ -732,15 +737,15 @@ private:
|
|||
unsigned short m_usFireIC;
|
||||
};
|
||||
|
||||
enum tfc_assault_e
|
||||
enum tf_ac_e
|
||||
{
|
||||
ASSAULT_IDLE = 0,
|
||||
ASSAULT_IDLE2,
|
||||
ASSAULT_SPINUP,
|
||||
ASSAULT_SPINDOWN,
|
||||
ASSAULT_FIRE,
|
||||
ASSAULT_DRAW,
|
||||
ASSAULT_HOLSTER
|
||||
AC_IDLE = 0,
|
||||
AC_IDLE2,
|
||||
AC_SPINUP,
|
||||
AC_SPINDOWN,
|
||||
AC_FIRE,
|
||||
AC_DRAW,
|
||||
AC_HOLSTER
|
||||
};
|
||||
|
||||
class CTFAssaultC : public CBasePlayerWeapon
|
||||
|
|
Loading…
Reference in New Issue