Page 1 of 3

is there a way to do location specific damage in QC?

Posted: Sun Aug 01, 2010 11:07 pm
by hondobondo
or does it have to be first done in the engine?

Posted: Mon Aug 02, 2010 12:13 am
by leileilol
The only thing you'll do is rough estimation by vector height and that's stupid

Posted: Mon Aug 02, 2010 1:03 am
by hondobondo
leileilol wrote:The only thing you'll do is rough estimation by vector height and that's stupid
why would that be stupid

Posted: Mon Aug 02, 2010 1:41 am
by Spike
because shooting from up high is always a headshot.

Posted: Mon Aug 02, 2010 1:59 am
by Sajt
And shooting from below you'll have to aim at a narrow strip of air three feet in front of his face to get a headshot.

Posted: Mon Aug 02, 2010 2:09 am
by Swift
That's a bit rough isn't it? How do we know he's not using Quake 3 models in Darkplaces or something?

Posted: Mon Aug 02, 2010 2:38 am
by leileilol
sdquake.exe isn't darkplaces, and quake3 models don't allow for locational damage stuff either

Posted: Mon Aug 02, 2010 6:32 am
by Swift
Arguable. Might be the 'wrong' way to do things - but could you spawn multiple entitys for the head etc and set them to SOLID_BSP (per poly collision?), doing away with the BBOX?

Of course this is all pointless if setting the head as a tag_entity means it doesn't get checked for collisions - which I'm not sure on.

//DP_GFX_QUAKE3MODELTAGS
//idea: id Software
//darkplaces implementation: LordHavoc
//field definitions:
.entity tag_entity; // entity this is attached to (call setattachment to set this)
.float tag_index; // which tag on that entity (0 is relative to the entity, > 0 is an index into the tags on the model if it has any) (call setattachment to set this)

Posted: Mon Aug 02, 2010 7:56 am
by Sajt
It's possible that you could cook up some hack for headshots. If the traceline hits the monster's box, then check manually if the line also intersects some hard-coded smaller box representing the monster's head...

leilei

Posted: Tue Aug 03, 2010 6:08 am
by hondobondo
no one even mentioned sdquake. if you ever played it, you would know headshots would be an enormous waste of time to code. i'm thinking more of a zombie mod. i can't believe no one's even done it for quake before, or has they? i mean real zombie not those weird quake zombies. what are those

Posted: Tue Aug 03, 2010 6:44 am
by gnounc
The Horror is a zombie mod ;)

Posted: Tue Aug 03, 2010 9:49 pm
by Orion
Unfortunately Quake only uses ONE bounding box per entity. On modern games there are multiple bounding boxes for each part of the body, or per-poly collision. So locational damage gets a bit weird in Quake because of that but anyway I still like it.

See a simple diagram below:

Image


I've drawn the bbox accordingly, that's why you see little spheres between the lines. :wink:
As you can see, if you shoot between the player's legs, he will take damage, the bullet will not pass through them.


The simplest way to do this is simply checking where the projectile is hitting.

Use this for hitscan weapons:

Code: Select all

damage = 100; // initial damage value (changeable)
if (trace_endpos_z > (trace_ent.origin_z + trace_ent.maxs_z) - 10) // headshot
 damage = damage * 3; // this will do 3x damage, change to whatever you like
else if (trace_endpos_z < trace_ent.origin_z) // leg shot
 damage = damage * 0.5; // this will do half damage (changeable)
And use this for projectile weapons:

Code: Select all

damage = 100; // initial damage value
if (self.origin_z > (other.origin_z + other.maxs_z) - 10) // headshot
 damage = damage * 3; // same thing as above
else if (self.origin_z < other.origin_z)
 damage = damage * 0.5;
Hope it helps, not tested, just came from the top of my head. :)

Posted: Wed Aug 04, 2010 12:59 am
by frag.machine
Q2K4 has per-poly collision, which could give a little more precise results against hitscan projectiles (shotguns and alike), unfortunately not very helpful against nails and, obviously, rockets. And, unfortunately, there's no way to tell to QuakeC which triangle in the mesh was hit.

Posted: Wed Aug 04, 2010 1:01 am
by ceriux
question could a multi bbox system be implemented into the quake engine? for better model formats?

Posted: Wed Aug 04, 2010 6:56 am
by Urre
I've implemented multi-bbox systems in QC. It's all perfectly possible...

Do basicly what Sajt said, it's not far from what most games do anyway.