
GetScheduleOfType
, probably an SDK difference of some sort? In either case you can also edit the tutorial itself.m_fInBurst
(set to false in Spawn()) that you set to true in PrimaryAttack() if m_iBurst is equal to m_iMaxBurst, and set to false if m_iBurst is zero.m_flTimeWeaponIdle
to 0.1.void CMP5::WeaponIdle()
{
if (m_fInBurst && m_iBurst > 0)
{
PrimaryAttack();
m_flTimeWeaponIdle = 0.1;
return;
}
// ... rest of code
Essentially use PrimaryAttack() to start the burst fire, and let WeaponIdle() as a loop to call PrimaryAttack() until the burst count is exhausted.int
to CMP5's header; int m_iMaxBurst
and m_iBurst
and initialise both of these to 3 in CMP5's Spawn() method.void CMP5::PrimaryAttack()
{
// don't fire underwater
if (m_pPlayer->pev->waterlevel == 3)
{
PlayEmptySound();
m_flNextPrimaryAttack = 0.15;
return;
}
if (m_iClip <= 0)
{
PlayEmptySound();
m_flNextPrimaryAttack = 0.15;
return;
}
m_pPlayer->m_iWeaponVolume = NORMAL_GUN_VOLUME;
m_pPlayer->m_iWeaponFlash = NORMAL_GUN_FLASH;
m_iClip--;
m_iBurst--;
// ... rest of code
At the bottom:
// ... rest of code
m_flNextPrimaryAttack = GetNextAttackDelay(0.1);
if (m_flNextPrimaryAttack < UTIL_WeaponTimeBase())
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1;
if (m_iBurst < 1)
{
m_flNextPrimaryAttack += 0.5;
m_iBurst = m_iMaxBurst;
}
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat(m_pPlayer->random_seed, 10, 15);
}
You'd then need to make a check if the fire button had been released in the middle of a burst to reset m_iBurst back to m_iMaxBurst.I think Half-Life 3 wouldn't be successful or even considered good without Marc Laidlaw.it's true that Mark Laidlaw made the Half-Life storyline something that no one else would have done. This will never happen again, and therefore Gabe, at one of his private conferences, admited that they never once got involved in the development of the third episode, but everything ended in dysmaralia, depression, and eventually they moved away from all this.
I'm honestly exited for Valve to fail and lose its reputation. This has gone on for too long.unfortunatly, this is how it will be. It is very difficult to make a sequel so that it is as good as the first game, but with drastic changes, and at the same time not ruin everything.
Personally, i strongly believe they are developing somethingI'm sure they're always developing something. I'm guessing that, right now, the gamedev work is mainly distributed across Deadlock (production and testing) and Counter-Strike 2 (maintenance and hopefully content updates), with maybe, maybe just a little bit of wiggle room? For an unannounced game in an early prototyping stage?
trigger_camera
should be a player, but entities like trigger_auto
and trigger_relay
act as activators of their targets due to code.trigger_camera
tries to transfer its view to the non-player entity (trigger_auto
).trigger_auto
and trigger_relay
, entities like func_button
, func_rot_button
, func_door
, func_door_rotating
, trigger_once
, trigger_multiple
, all game_
entities and multi_manager
can pass their activators to their targets as is.trigger_once
brush around info_player_start
and set the target to the entity that trigger_auto
is targeting, which should fix the problem.//this gets a pointer to the viewmodel
cl_entity_t* viewmodel = gEngfuncs.GetViewModel();
if (viewmodel)
{
//I just set it to the sine of the time because that's what I need but yeah
viewmodel->curstate.controller[0] = (sin(gpGlobals->time);
}