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

Reply via email to