Jump to content

[Implementations] About Patch 5.00-???


Ruud033

Recommended Posts

Hey people, hello Yosh56 :P

This post is gonna be about the features I made in collaboration with other ppl (special thanks to HandEpsilon) for the next patch (It's up to Yosh56 to implement this now or later on.

I need these features in order for my map to work properly. They also add some stuffs to the game.

So what did I do? A quick summary:

[1] - I've created a new volume that's called the FoliageCollisionVolume. This volume created dynamically spawned actors once "vehicles' have touched it for any foliage that:

.1 already has a collision mesh in the static mesh the mapper has added to the foliage tool (trees, tiberium for ex.)

.2 is within the FoliageCollisionVolume.

So any class derived from the 'vehicles' class should trigger the collision mesh spawn. (it searches with: If(Other.IsA('Vehicle')) )

Note to mappers: THIS DOES NOT CREATE COLLISION FOR INFANTRY!! You have to manually set the foliage to block stuff as you always do in the foliage tool. This is only an ADDITION for vehicles, as vehicles don't get blocked by default. If you want infantry to get blocked as well, you must set that in the foliage tool properties.

OMrOjIh.png

[2] - I've created a new purchase terminal class that can be modified via kismet (you can even edit it on the fly and it'll still update properly)

You can update the following properties:

.1 The tooltip that gets displayed in your screen (Press E to do shit)

.2 The PT name (the name that's displayed in the HUD on the PT)

.3 The accessibility of the PT (whether you can enter the PT level or not)

.4 The team number of the PT (so when you aim at it, it shows the proper enemy, neutral or friendly team HUD)

In actor classes:

3Wu9RVC.png

In Kismet:

JoAwDBS.png

In action:

LpP8HvA.png

[3] - I've edited the existing Master Control Terminal to have a new event, that's called captured.

The event fires in Kismet, so when ever we capture / neutralize the MCT, the event fires, so we can hook up other kismet to that (for example, a team change)

This way we don't need the memory expensive clocks etc. anymore!

In Kismet (example):

4KpGMgd.png

[4] - In addition to this new Master Control Terminal I've created new sounds for a Tech Building Capture. The 'old' files still always reference to a silo.

For example: I've got a destroyed capturable weapons factory in the middle of Crash Site. When ever someone from the enemy team starts capturing that, you'll get notified by EVA that the 'Silo' is under attack. Weird isn't it??

In the content browser:

5DqEfHv.png

Now comes the hard part, and only for developers. I've got some references that HAVE to be honored in order for these implementations to work.

1. The Foliage Collision Volume.

This is a standalone piece of code. Unfortunately I think it broke from patch 5.003 to 5.004, during MP testing in my map Crash Site I found out that I suddenly could drive trough trees. I think you changed something within the packages or re referenced something in there.. Yosh56 needs to look at the errors during the compiling due to the fact that it does compile well in my current (old) SDK, which is still at patch 5.001 I believe?

Link to FoliageCollisionVolume: https://www.dropbox.com/sh/wtl04zyqfzax ... -21aa?dl=0

2. The Customizable Purchase Terminal

This is a standalone piece of code. It's working perfectly after a shitty testing period. Nothing much to say more about it really, it's only an addition to the game rather than a change. It has always worked perfect for me.

Link to Customizable PT: https://www.dropbox.com/sh/tpd2fdyh1y06 ... C89Na?dl=0

3 & 4. The Capturable Master Control Terminal

This piece of code is a bit tricky. Yosh56 (or someone else from the coding team, if they decide to handle this) can choose whether to edit the existing Capturable Master Control Terminal code (preferred by me, since the existing capturable MCT is not much of an added value due to crucial missing AND wrongly referenced pieces) or create a new captureable MCT class

By the wrong referenced pieces I mean the sound files. After looking at the code I figured that the existing capturable MCT is using outdated sound files. The sound files ALWAYS reference to the Silo sound files. In other words, EVA will always say that the 'silo' is under attack, even whilst we have a completely different tech building.

Link to new sound file package: https://www.dropbox.com/sh/dcuau05hu755 ... XHnKa?dl=0

The sound package file goes to: ..\SDK\UDKGame\Content\RenX\Sounds

So, in order to fix this, I had to go up the code hierachy and re-write a piece of code that the old capturable MCT was based upon, and then base the new captureable MCT upon that new base.

The new base is called: Rx_Building_TechBuilding_Internals_NoSilo

Basically, everything is the same as Rx_Building_Techbuilding_Internals, except for these lines:

`GdiUnderAttackForGdiSound = SoundNodeWave'RX_EVA_VoiceClips_Extra.gdi_eva.S_EVA_GDI_GDITech_UnderAttack'
`GdiUnderAttackForNodSound = SoundNodeWave'RX_EVA_VoiceClips_Extra.Nod_EVA.S_EVA_Nod_GDITech_UnderAttack'

`NodUnderAttackForGdiSound = SoundNodeWave'RX_EVA_VoiceClips_Extra.gdi_eva.S_EVA_GDI_NodTech_UnderAttack'
`NodUnderAttackForNodSound = SoundNodeWave'RX_EVA_VoiceClips_Extra.Nod_EVA.S_EVA_Nod_NodTech_UnderAttack'

The capturable MCT implements an internals class. By default this is "Rx_Building_TechBuilding_Internals", I'd like to see this changed to "Rx_Building_TechBuilding_Internals_NoSilo" due to the new sound files.

This is for the developer team to decide themselves. I have only added a new internals class, so the existing Silo code won't be bothered

Link to new internals class: https://www.dropbox.com/sh/qttljom0kdxi ... VSpAa?dl=0

Note: This piece of code HAS to be added to RenX_Game, else it will not compile.

So, based upon this file come the following MCT files.

Again, it's up to the development team whether to add this piece of code to the existing code in the SDK, OR replace the existing piece of code with this new one. Again, I prefer to have the existing code replaced

I can say a lot more about this piece of code, but you'll have to see for yourself what's going on.

Do note, when actually processing this piece of code, look for the class references!!!!!

It's based upon the existing piece of code right now, so if you choose to replace the existing code, re-reference the class extension!

For example, right now it's like:

class Rx_CapturableMCT_Kismet extends Rx_CapturableMCT

Keep that in mind whilst recompiling :)

Link to new capturable MCT class: https://www.dropbox.com/sh/o7ccvomumcdi ... pDima?dl=0

Link to comment
Share on other sites

  • Totem Arts Staff

Foliage collision volume works well enough for now. It's used on Training Yard... and it hits more as a lag issue than anything, with some vehicles getting collision, and other getting collision late. It still stops what it needs to stop for now.

Also, I get no compile errors regarding it.

Link to comment
Share on other sites

Foliage collision volume works well enough for now. It's used on Training Yard... and it hits more as a lag issue than anything, with some vehicles getting collision, and other getting collision late. It still stops what it needs to stop for now.

The lag issues depend on the map and the mapper, the bigger the volume the bigger the lag, the smaller the volume, the better the distribution , the smaller the lag. It's always better than static meshes so.

What do you mean exactly with getting collision 'late' ? It checks for any actors derived from the 'Vehicle' class.. so any vehicle should trigger the volume?!

Also, I get no compile errors regarding it.

That's great :D That means I've done something right.

Link to comment
Share on other sites

  • Totem Arts Staff

I was referring to collision only showing up based on lag. Since it has to spawn something server side the client isn't necessarily going to get that actor spawned instantly. In a case like mine with 300+ ping, I can generally get through like two trees before getting blocked

Link to comment
Share on other sites

I was referring to collision only showing up based on lag. Since it has to spawn something server side the client isn't necessarily going to get that actor spawned instantly. In a case like mine with 300+ ping, I can generally get through like two trees before getting blocked

Aha okay.. well, i'll have to see this in a test server to solve things.

The solution might be that we add some static meshes to the outer borders of a piece of forest for ex. The remaining trees would be foliage (in case air units land in them, they still get collision)

First, implement this in 5.005 and then we'll talk about this again :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
123