Mapping - misc settings, decorations, borks prevention

Development assistance and tutorials here.
Nelsona
Posts: 1143
Joined: Sat Sep 30, 2017 5:03 am

Re: Mapping - misc settings, decorations, borks prevention

Post by Nelsona » Thu Jul 30, 2020 5:33 am

Bumping through settings
In next hours I'll try to setup a small speech using Translations, trying to explain the settings required to be done correctly in the case of TrapSpringer actor. I could see a nominated and sampled as great or such best map by community, but it was WRONG set over there. TrapSpringer used was a guess work heading nowhere as long as this actor with bad setup is self removed - you won't find it in map anymore during run-time.
Stock map DM-Pressure IS NOT A SAMPLE - don't follow that thing because that's a dumb thing done by Epic's league. BotPack coming later in their patches was auto-hacking TrapSpringer or else that map would never work as intended - speaking about Bots trapping player. By any matter you can look at Script for this class and figure what does it do as long as UScript is more an english thing than a programming thing.

TrapSpringer - explanations and use.

TrapSpringer aims to attract artificial intelligence aka Bot to a point where the destruction of an enemy based on a trap is initiated other way than the direct use of the equipped weapon or its indirect use. TrapSpringer is found in the Inventory subclasses by browsing actors classes. This actor needs for the correct functioning the usage of two parameters representing a name used as a Tag by other actors participating in the above-mentioned trap.

TrapTag is first name that needs to be configured for this TrapSpringer.
TrapTag will be found as a Tag in an actor that is destructive to the enemy. This actor as a direct trap can be:
- A zone aka ZoneInfo sub-classes - killing zones when are triggered;
- a Mover that must be the floor for the victim - exactly, this mover is the floor itself;
- a Trigger that does any kind of effect or that doesn't do much.

TriggerTag is the second requirement for configuration of TrapSpringer.
Usually this Trigger is placed right next to TrapSpringer to be touched by the player activating the trap - Bot or Man. It is delegated to the Event that causes the indirect elimination of the enemy.

In other hand, TrapSpringer itself can cause an event when it is touched which can make it even more useful causing various effects. Whether or not we use this Internal Event, we MUST have TriggerTag configured because otherwise this actor will not work properly, it usually self-destructs when something is wrong.
Anyone who understands English from UScript realizes what's going on below. If not, we use an English to English translation to be more explicit as possible.

Code: Select all

	if ( (TrapTag == '') || (TriggerTag == '') )
	{
		Destroy();
		return;
	}
And the translation of the code: If we don't have a valid TrapTag or we don't have a valid TriggerTag I'm destroying myself and stop executing next codes from function.

By adding these actors without completing fields properly, nothing major happens at A.I. Level.

How does it work ?
The bot has a special interest in all sorts of things by calculating the desire for them. At the time of this calculation, TrapSpringer checks to see if anyone is trapped. If there is and we have a Bot at a distance of less than 1600 UU, the desire becomes stronger to come to this TrapSpringer and which causes major damage to the one who is trapped, operated by the involved Trigger or even with the direct participation of the TrapSpringer actor when the Bot is instigating these.
Not often maintained
My UT Mapping works...
Learn the rules like a pro, so you can break them like an artist.
- Pablo Picasso -

Post Reply