Missile Explosions and Hull Damage Detection
-
Absolutely amazing M0tah
-
Holy shit…that’s amazing!!
I’ll use this tomorrow when I start working on FW:ToW.
Nice find, M0tah!
-
In single player, this hack will generate additional damage. For example, I changed the Javelin to do 10 damage and Flint to a Rheinland battleship (rm_r_battleship). Firing a missile into the center hits two groups (Rh_main_lod1/DpMain & Rh_midfrnt_lod1/DpMidFrnt) for 20 damage. Applying the patch then does 30 damage - the two groups plus presumably the ship as a whole.
The damage is actually found a little further down, in the function at 0x(6ce)9690. In SP, GetRadius returns a valid value, but in MP it is returning 0. I think the real problem is with something used by GetBoundingSphere. That’s as far as I went, back to you, M0tah…
-
It worked beautifully for me. I’m so thrilled Thanks so much, M0tah!
-
It won’t be a problem for any model without subcomponents.
-
adoxa wrote:
In single player, this hack will generate additional damage. For example, I changed the Javelin to do 10 damage and Flint to a Rheinland battleship (rm_r_battleship). Firing a missile into the center hits two groups (Rh_main_lod1/DpMain & Rh_midfrnt_lod1/DpMidFrnt) for 20 damage. Applying the patch then does 30 damage - the two groups plus presumably the ship as a whole.The damage is actually found a little further down, in the function at 0x(6ce)9690. In SP, GetRadius returns a valid value, but in MP it is returning 0. I think the real problem is with something used by GetBoundingSphere. That’s as far as I went, back to you, M0tah…
Did some more testing, and I couldn’t get CArchGroup::GetRadius to be called at all, in either MP or SP (though 0x9690 is). You are referring to that call in 0x9690, correct?
-
It seems that part of the function is only called if the object has collision groups (restoring the original Flint still broke; commenting the [CollisionGroup] entries failed to break). Even so, these particular collision groups are different to the battleship ones, generating a radius of 0 (it skips the bounding sphere altogether).