Hi folks,
just to end the discussion about this penetration feature for projectiles not being implementable to RO, geogob and myself have put some codes together in form of a little mutator that implements the feature of penetrating projectiles to RO.
Due to the fact that we cannot simply add 20-30 lines of code to the original ROBullet base class we had to go the mutator route.
In UT2k4 the replacing of projectiles isn't easy to archive by using a mutator simply due to projectiles not performing the same BeginPlay codes than most other classes do (for reference please check the mutator class header comments). So the standard replacement functions simply do not work here.
So we had to replace the whole weapon, its firemode object and the used projectile class. Due to this being unneeded work and us only wanting to proove that the penetration feature actually works, we selected only a handful of weapons that our mutator replaces by a version that uses projectiles that are able to penetrate thru walls and other objects.
These are: Kar98, MP40, MP41, G41, MG34 and MG42
All these weapons feature their original projectile properties. We've only added the penetration codes to our own replacement for the ROBullet class and inherited the projectile replacements from this on using the original default properties of the original projectile classes.
All this is unneeded extra work that a quick change of the ROBullet projectile base class would actually make obsolete.
The pure penetration code is about 20 lines that we've added to the function HitWall just before the original code decides to destroy the projectile on impact.
These code changes can be checked out in our INFBullet class for the case Tripwire wants to check them out. They are free to use, so use them if you like.
The MaxWall value is actually the one that decides how far thru an object/wall the projectile is able to penetrate. We have set it to 48.0 for letting you actually test things out easily. The value is the same for all weapons used. Something that a real implementation of this feature would need to adjust according to the actual projectile used. In addition we have not added any kind of material check. So you can fire thru wooden doors, standard brick walls and even metal parts, no difference. Again something a full implementation would need to check to adjust the values accordingly.
So try it out, fire thru wall or crate edges and check if the wall or floor behind is hit too. Same for thin pillars or smaller crates. Make sure that your decals stay as long as possible to actually notice the effect if the impact area is not fully in your view.
If you test this mutator offline against some bots, then maybe make sure to use the GOD command to simply not get you killed while testing out specific locations to kill them by firing thru some obstacles.
You can grab the mutator here: http://infiltration.sentrystudios.net/ro/INFPenetration.zip
For those that want to check the sources... grab them here: http://infiltration.sentrystudios.net/ro/INFPenetration_classes.zip
As said... 99% of these codes aren't actually needed for the penetration feature to be implemented.
Have fun!
[edit - from geogob]
Just put the mutator files (2 files) in the RO system folder (...\Steam\SteamApps\common\red orchestra\System)
Start open the practice session menu and click on the mutator tab to add the mutator.
[/edit]
For the case you want to test this mutator on a server... don't forget to add it to the ServerPackages list within the servers used ini file!
ServerPackage=INFPenetration
just to end the discussion about this penetration feature for projectiles not being implementable to RO, geogob and myself have put some codes together in form of a little mutator that implements the feature of penetrating projectiles to RO.
Due to the fact that we cannot simply add 20-30 lines of code to the original ROBullet base class we had to go the mutator route.
In UT2k4 the replacing of projectiles isn't easy to archive by using a mutator simply due to projectiles not performing the same BeginPlay codes than most other classes do (for reference please check the mutator class header comments). So the standard replacement functions simply do not work here.
So we had to replace the whole weapon, its firemode object and the used projectile class. Due to this being unneeded work and us only wanting to proove that the penetration feature actually works, we selected only a handful of weapons that our mutator replaces by a version that uses projectiles that are able to penetrate thru walls and other objects.
These are: Kar98, MP40, MP41, G41, MG34 and MG42
All these weapons feature their original projectile properties. We've only added the penetration codes to our own replacement for the ROBullet class and inherited the projectile replacements from this on using the original default properties of the original projectile classes.
All this is unneeded extra work that a quick change of the ROBullet projectile base class would actually make obsolete.
The pure penetration code is about 20 lines that we've added to the function HitWall just before the original code decides to destroy the projectile on impact.
These code changes can be checked out in our INFBullet class for the case Tripwire wants to check them out. They are free to use, so use them if you like.
The MaxWall value is actually the one that decides how far thru an object/wall the projectile is able to penetrate. We have set it to 48.0 for letting you actually test things out easily. The value is the same for all weapons used. Something that a real implementation of this feature would need to adjust according to the actual projectile used. In addition we have not added any kind of material check. So you can fire thru wooden doors, standard brick walls and even metal parts, no difference. Again something a full implementation would need to check to adjust the values accordingly.
So try it out, fire thru wall or crate edges and check if the wall or floor behind is hit too. Same for thin pillars or smaller crates. Make sure that your decals stay as long as possible to actually notice the effect if the impact area is not fully in your view.
If you test this mutator offline against some bots, then maybe make sure to use the GOD command to simply not get you killed while testing out specific locations to kill them by firing thru some obstacles.
You can grab the mutator here: http://infiltration.sentrystudios.net/ro/INFPenetration.zip
For those that want to check the sources... grab them here: http://infiltration.sentrystudios.net/ro/INFPenetration_classes.zip
As said... 99% of these codes aren't actually needed for the penetration feature to be implemented.
Have fun!
[edit - from geogob]
Just put the mutator files (2 files) in the RO system folder (...\Steam\SteamApps\common\red orchestra\System)
Start open the practice session menu and click on the mutator tab to add the mutator.
[/edit]
For the case you want to test this mutator on a server... don't forget to add it to the ServerPackages list within the servers used ini file!
ServerPackage=INFPenetration
Last edited: