Serious Sam Fusion 2017 (beta)

Serious Sam Fusion 2017 (beta)

Custom maps, mods, skins & campaigns
Discover and download custom maps, character skins, weapon modifications, skins, enemy modifications, campaign mods, and much more.
Damage hulls
Hello!

Can somebody explain to me how to work with damage hulls? Damage hull descriptions can be found in "body" folder of puppets .ep file. As i can tell its like separate hitboxes for specific damage zones. I add one, set shape, size and attached it to a bone, add damage description for both bullet and projectile, and set damage multiplier, but it doesn't seem to work.

What am i missing here?

Thank you!
< >
Showing 1-8 of 8 comments
Ryason55 29 15 Sep, 2024 @ 5:18am 
Seems to work here. It doesn't actually add an extra hitbox; It's just an area where if a bullet or projectile would intersect when hitting the puppet's regular collision (even if the area is concealed by the collision), it'll apply the damage multiplier. For instance, you could put a small area around the head for headshot damage. This is very likely the precursor to Serious Sam 4 just having entirely separate shootable collision for most monsters. As the system is though, it does have a problem where the damage multiplier is applied for the hit at *any* angle, even ones that don't make sense, like from directly underneath in the headshot example. Maybe you can put in negating damage hulls to prevent that, but I didn't try.

Regardless, you can visualise it by going to the "Debug service config" (enable it under "View"), setting "Debugging allowed", and ticking on "Puppet damage hulls" and "Puppet hit damage hull" under "Debug categories".
Thank you for the answer!

Yes, i tested again it seems to work. The problem was if you have script which has "monster.ReceiveDamage" event. For some reason if you have such such script active hulls wont work.
Maybe because supposedley this event if fired when collision with the main hitbox a detected. It stops any damage process until "HandleDamage()" command is runed. But when it processes damage it somehow skip hulls and treat it as damage received by monster in "general" way.
If so, i have no idead how to make it take hulls in account.
As i, sadly need receive damage event, as a 1/3 of damage info cant be taken from simple ".Damaged" event.

Also, about visualisation. I enebled "Debug Config" and toggled two options you listed. But nothing changed. What i suppose to see to tell if debug is active? Maybe i should run Fusion in specific way? Somehow launch it from editor? I may sound very retarded, but i test everything just simple launching moddable version from Steam.

Thank you again.
Ryason55 29 15 Sep, 2024 @ 2:21pm 
Not surprising, since ReceiveDamage is kind of its own thing with its own problems. There are some damage sources that just aren't intercepted (fluids, killers, projectile piercing), and it loses all knockback. If anything, there are functions in ReceiveDamage to get the hit point or hit hull (haven't used the latter), but I don't think you can get the angle the attack came from.

The Debug Config only does anything when doing simulations in the Editor.
Yeah, i've noticed through my testing, that piercing projectiles simple doesn't trigger it as well as "kill all" cheat.
Didnt payed attention to knockback absence, thank you to pointed it out.
I try to use this two function "GetDamageHull" and "GetDamageHullCollisionType" when tested which every function tied to "Receive damage" even will return and tried them when debugged how hull works.
Sadly former return simply "character" and the latter simple return nothing.
Regarding hit point, yes, fortunately its working and returning the point of damage, but not the exact spot of the monster, but the point on "level" where collision happened. But it was enough to allow me to recreate my own hit detection "system" which im using now.
But then in the process of making it i've noticed hull parameters in puppet .ep, which made me to figure out what the hulls. And as any inbuilt system made by actual devs, it works better than crude imitations, so i wanted to use them instead.

After realising that event was interfering with hull processing, I hoped that there is the way to make hulls work with "ReceiveDamage" event, or at least other way to get damage type, as you know damagef event simply return "none" damage type for some reason.
Also regarding hulls, it seems they are prone to crash when monster hit with multiprojectile weapon made with scripts. Like Q3TA nailgun.
Btw do you know any good methods to emulate knockback? I tried to use set linear velocity, but for some reason 99,9% of monsters ignore Y axis and while sliding by X and Z axis they bump into any elevation edges instead of fly by and fall from it, like boundry of a pit for example.
Ryason55 29 16 Sep, 2024 @ 2:30pm 
There's a mechanic called "Walking Support" that keeps characters level with the ground, and scripted methods of applying velocity aren't able to overcome this reasonably. The only ways this gets turned off is when recieving knockback, and when jumping. Fortunately, for monsters (not for players), you can force them to jump by setting `Char:SetDesiredTempoAbs(mthVector3f(0,1,0))`, which does turn off the walking support for long enough to apply upwards velocity.

SSHD has a feature where enemies are unable to walk off ledges unassisted. Shooting them normally does push them up into the air a bit, which does allow them to go over.
Yeah, ive noticed it. When i saw how bull drilling the ledges instead of falling from it, as it was classic. The only exception i can recall - moon mountains.

I've had the idea to lift monster before applying force to them with set placement, but i see offer me far more better option. Thank you! I will try this out.
< >
Showing 1-8 of 8 comments
Per page: 1530 50