=)
it quite possibly could still be in pas, but it definitely wouldnt be in pvs
if its inside a solid brush. however, if it was sitting on a brush entity
(like a func_wall) it probably would have worked fine. because they dont
take it out of pvs.

-omega
Blackened Interactive
http://www.nofadz.com/blackened
----- Original Message -----
From: "_Phantom_" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, November 15, 2001 11:45 AM
Subject: Re: [hlcoders] [hlcoders]Temp entity problem


> ah, yush, that did it... adding Vector (0,0,32) to the Origin sorted it
out
> nicely.. I thought it was spawning out of the PAS at one point but I guess
I
> was adding numbers at the wrong point..
>
> ta :)
>
> > raise the grenade up off the ground before it explodes. or just increase
> the
> > z component of the ORIGIN first. otherwise its more than likely spawning
> out
> > of PVS and inside the floor.
> >
> > -omega
> > Blackened Interactive
> > http://www.nofadz.com/blackened
> > ----- Original Message -----
> > From: "_Phantom_" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Thursday, November 15, 2001 11:02 AM
> > Subject: Re: [hlcoders] [hlcoders]Temp entity problem
> >
> >
> > > The sprite is being pre-cache'd as it's being per-cache'd in the
> > > Precache(void) function in my CEMPGrenade class (along with the models
> it
> > > uses), also the fact that it works on certain objects but not on
others
> > also
> > > proves it being precached.
> > >
> > > I did try your idea however, but it didnt make any difference at all,
> > still
> > > only works on the crossbeams and not on the floor
> > > :(
> > >
> > >
> > >
> > > > I had a look through this... like you say there's certainly no
obvious
> > > > reason for it not to work.
> > > >
> > > > Just one thing though, you don't show that youv'e precached the
> > sprite...
> > > I
> > > > know you probably have if not it wouldn't compile, but just try
> > > changing....
> > > > WRITE_SHORT( m_iSpriteTexture );
> > > > to this:
> > > > WRITE_SHORT( g_sModelIndexFireball );
> > > >
> > > > As a temporary measure to make sure the sprite is getting called
> > properly.
> > > >
> > > > Mike.
> > > > ----- Original Message -----
> > > > From: "_Phantom_" <[EMAIL PROTECTED]>
> > > > To: <[EMAIL PROTECTED]>
> > > > Sent: Wednesday, November 14, 2001 10:47 PM
> > > > Subject: [hlcoders] [hlcoders]Temp entity problem
> > > >
> > > >
> > > > > lo ppl
> > > > >
> > > > > Here the basic problem, we have an EMP Gren in our mod and when it
> > goes
> > > > off
> > > > > we dont want the normal bang and flash, instead we want the same
> > effect
> > > > the
> > > > > houndeye does when it fires it's sonic attack (the nice circles).
> > > > >
> > > > > Now, in theory this is easy, the Emp Gren is a contact gren,
however
> > > > instead
> > > > > of looking like the MP5 contact gren is looks like a standard HE
> gren
> > > > > (pending a model change). It throw alright using a modified
> > > > ShootContact(..)
> > > > > function, it set the model correct, apon contact with something
the
> > > > explode
> > > > > routine works (its a copy of the ExplodeTouch(..) function with
the
> > > damage
> > > > > type changed to DMG_EMPBLAST so I can find it later).
> > > > >
> > > > > the EMP Gren is throw using this call --
CGrenade::ShootContactEMP(
> > > > > m_pPlayer->pev, vecSrc, vecThrow, m_iSpriteTexture ); (in Precache
> > > > > m_iSpriteTexutre is the result of a loadmodel)
> > > > >
> > > > > which calls this is CGrenade :
> > > > >
> > > > > CGrenade * CGrenade:: ShootContactEMP( entvars_t *pevOwner, Vector
> > > > vecStart,
> > > > > Vector vecVelocity, int SpriteTexture)
> > > > > {
> > > > >  CGrenade *pGrenade = GetClassPtr( (CGrenade *)NULL );
> > > > >  pGrenade->Spawn();
> > > > >  // contact grenades arc lower
> > > > >  // below commented out coz it's a normal gren
> > > > > // pGrenade->pev->gravity = 0.5;// lower gravity since grenade is
> > > > > aerodynamic and engine doesn't know it.
> > > > >  UTIL_SetOrigin( pGrenade->pev, vecStart );
> > > > >  pGrenade->pev->velocity = vecVelocity;
> > > > >  pGrenade->pev->angles = UTIL_VecToAngles
(pGrenade->pev->velocity);
> > > > >  pGrenade->pev->owner = ENT(pevOwner);
> > > > >
> > > > >  // make monsters afaid of it while in the air
> > > > >  pGrenade->SetThink( DangerSoundThink );
> > > > >  pGrenade->pev->nextthink = gpGlobals->time;
> > > > >
> > > > >  // Tumble in air
> > > > >  pGrenade->pev->avelocity.x = RANDOM_FLOAT ( -100, -500 );
> > > > >
> > > > >  // Explode on contact
> > > > >  pGrenade->SetTouch( ExplodeEMPTouch );
> > > > >
> > > > >  SET_MODEL(ENT(pGrenade->pev), "models/w_grenade.mdl");
> > > > >  pGrenade->pev->dmg = 0;
> > > > >
> > > > >  // grab the SpriteTexture passed to me
> > > > >  pGrenade->m_iSpriteTexture = SpriteTexture;
> > > > >
> > > > >  return pGrenade;
> > > > > }
> > > > >
> > > > > -----
> > > > > The modified explode function looks like this :
> > > > > -----
> > > > > void CGrenade::Explode( TraceResult *pTrace, int bitsDamageType )
> > > > > {
> > > > >  float  flRndSound;// sound randomizer
> > > > >
> > > > >  pev->model = iStringNull;//invisible
> > > > >  pev->solid = SOLID_NOT;// intangible
> > > > >
> > > > >  pev->takedamage = DAMAGE_NO;
> > > > >
> > > > >  // Pull out of the wall a bit
> > > > >  if ( pTrace->flFraction != 1.0 )
> > > > >  {
> > > > >   pev->origin = pTrace->vecEndPos + (pTrace->vecPlaneNormal *
> > > (pev->dmg -
> > > > > 24) * 0.6);
> > > > >  }
> > > > >
> > > > >  int iContents = UTIL_PointContents ( pev->origin );
> > > > >  if (bitsDamageType == DMG_EMPBLAST)
> > > > >  {
> > > > >   // emp gren has gone off so do the EMP effect
> > > > >   ALERT(at_console, "EMP Burst!!\n");        // code to check we
are
> > > > fireing
> > > > > this event!
> > > > >   MESSAGE_BEGIN( MSG_PAS, SVC_TEMPENTITY, pev->origin );
> > > > >    WRITE_BYTE( TE_BEAMCYLINDER );
> > > > >    WRITE_COORD( pev->origin.x);
> > > > >    WRITE_COORD( pev->origin.y);
> > > > >    WRITE_COORD( pev->origin.z + 32);
> > > > >    WRITE_COORD( pev->origin.x);
> > > > >    WRITE_COORD( pev->origin.y);
> > > > >    WRITE_COORD( pev->origin.z + 32 + 320 / .4); // reach damage
> radius
> > > > over
> > > > > .3 seconds (replaced houndeye constand with 320)
> > > > >    WRITE_SHORT( m_iSpriteTexture );
> > > > >    WRITE_BYTE( 0 ); // startframe
> > > > >    WRITE_BYTE( 0 ); // framerate
> > > > >    WRITE_BYTE( 4 ); // life
> > > > >    WRITE_BYTE( 16 );  // width
> > > > >    WRITE_BYTE( 0 );   // noise
> > > > >
> > > > >    WRITE_BYTE(0);
> > > > >    WRITE_BYTE(255); // bright green
> > > > >    WRITE_BYTE(0);
> > > > >
> > > > >    WRITE_BYTE( 255 ); //brightness
> > > > >    WRITE_BYTE( 0 );  // speed
> > > > >   MESSAGE_END();
> > > > >
> > > > >   MESSAGE_BEGIN( MSG_PAS, SVC_TEMPENTITY, pev->origin );
> > > > >    WRITE_BYTE( TE_BEAMCYLINDER );
> > > > >    WRITE_COORD( pev->origin.x);
> > > > >    WRITE_COORD( pev->origin.y);
> > > > >    WRITE_COORD( pev->origin.z + 32);
> > > > >    WRITE_COORD( pev->origin.x);
> > > > >    WRITE_COORD( pev->origin.y);
> > > > >    WRITE_COORD( pev->origin.z + 32 + ( 320 / 2 ) / .4); // reach
> > damage
> > > > > radius over .3 seconds (replaced houndeye constand with 320)
> > > > >    WRITE_SHORT( m_iSpriteTexture );
> > > > >    WRITE_BYTE( 0 ); // startframe
> > > > >    WRITE_BYTE( 0 ); // framerate
> > > > >    WRITE_BYTE( 4 ); // life
> > > > >    WRITE_BYTE( 16 );  // width
> > > > >    WRITE_BYTE( 0 );   // noise
> > > > >
> > > > >    WRITE_BYTE(0);
> > > > >    WRITE_BYTE(255); // bright green
> > > > >    WRITE_BYTE(0);
> > > > >
> > > > >    WRITE_BYTE( 255 ); //brightness
> > > > >    WRITE_BYTE( 0 );  // speed
> > > > >   MESSAGE_END();
> > > > >
> > > > >   CSoundEnt::InsertSound ( bits_SOUND_COMBAT, pev->origin,
> > > > > NORMAL_EXPLOSION_VOLUME, 3.0 ); // TODO : replace this sound
> > > > >  }
> > > > >  else
> > > > >  {
> > > > >   // normal gren effects
> > > > >
> > > > >   MESSAGE_BEGIN( MSG_PAS, SVC_TEMPENTITY, pev->origin );
> > > > >    WRITE_BYTE( TE_EXPLOSION );  // This makes a dynamic light and
> the
> > > > > explosion sprites/sound
> > > > >    WRITE_COORD( pev->origin.x ); // Send to PAS because of the
sound
> > > > >    WRITE_COORD( pev->origin.y );
> > > > >    WRITE_COORD( pev->origin.z );
> > > > >    if (iContents != CONTENTS_WATER)
> > > > >    {
> > > > >     WRITE_SHORT( g_sModelIndexFireball );
> > > > >    }
> > > > >    else
> > > > >    {
> > > > >     WRITE_SHORT( g_sModelIndexWExplosion );
> > > > >    }
> > > > >    WRITE_BYTE( (pev->dmg - 50) * .60  ); // scale * 10
> > > > >    WRITE_BYTE( 15  ); // framerate
> > > > >    WRITE_BYTE( TE_EXPLFLAG_NONE );
> > > > >   MESSAGE_END();
> > > > >   CSoundEnt::InsertSound ( bits_SOUND_COMBAT, pev->origin,
> > > > > NORMAL_EXPLOSION_VOLUME, 3.0 );
> > > > >  }
> > > > >
> > > > >
> > > > > // nuffin changed below here
> > > > > ...
> > > > > ....
> > > > > ...
> > > > >  }
> > > > > }
> > > > >
> > > > > Now, the problem is, when you throw the EMP Gren, it hits say the
> > floor,
> > > > it
> > > > > prints the message that the EMP effect has happened, it don't
> explode
> > > like
> > > > > an HE gren, however the green circles dont appear. However, I've
> found
> > a
> > > > few
> > > > > instantance when it will make the effect happen, at the spawn
point
> > > there
> > > > > are some barriers, throwing the gren so it hit either the top or
the
> > > > bottom
> > > > > one causes the effect to appear, also some garage doors also cause
> the
> > > > > effect to happen.
> > > > > At first I thought it might work coz it was off the ground..
however
> > > > > throwing the gren so it strikes a wall a few feet up fails to make
> it
> > > > > happen.
> > > > >
> > > > > Any one shead any light on this problem as I'm baffled now.
> > > > > Applogise for the amount of code as well, but I thought I'd better
> > give
> > > as
> > > > > much info as I could..
> > > > >
> > > > > Cheers,
> > > > > Rob
> > > > >
> > > > > _______________________________________________
> > > > > To unsubscribe, edit your list preferences, or view the list
> archives,
> > > > please visit:
> > > > > http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > > > >
> > > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > To unsubscribe, edit your list preferences, or view the list
archives,
> > > please visit:
> > > > http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > >
> > > _______________________________________________
> > > To unsubscribe, edit your list preferences, or view the list archives,
> > please visit:
> > > http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > >
> >
> > _______________________________________________
> > To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
> > http://list.valvesoftware.com/mailman/listinfo/hlcoders
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to