CTFM-NBK-NaliTemple-Dx2021_4x4 JumpSpot

Tutorials and discussions about Mapping - Introduce your own ones!
Post Reply
User avatar
[NBK]DxTrEm3Fx
Adept
Posts: 259
Joined: Wed May 09, 2012 5:56 pm
Location: Glendale, AZ
Contact:

CTFM-NBK-NaliTemple-Dx2021_4x4 JumpSpot

Post by [NBK]DxTrEm3Fx »

Hello All,
I making my first CTFM map and using my Nali Temple map. Will the Bots automatically use the translocator if the JumpSpot is too high for them to reach? I do not see ant setting in JS properties for using the trans. I could use the impact hammer but that is not the effect I'm looking for. The bots just kind of jump in a loop and never reach the location or use the translocator to complete the jump. Should I use a TransDest instead of the JumpSpot? I have two lift exits per JS with all matching tags at that location. See the short video of bots doing their loop. I have used the MapGarbage tool to check combos and no issues with the JumpSpots in question.
https://youtu.be/vdZNVWhEirU
Image
Thank you in advance for your help.
Image
Image
User avatar
sektor2111
Godlike
Posts: 6412
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: CTFM-NBK-NaliTemple-Dx2021_4x4 JumpSpot

Post by sektor2111 »

[NBK]DxTrEm3Fx wrote: Tue May 24, 2022 10:53 pm Will the Bots automatically use the translocator if the JumpSpot is too high for them to reach? I do not see ant setting in JS properties for using the trans.
Then check what JumpSpot code says - is more easy than any "let me guess".

Code: Select all

function Actor SpecialHandling(Pawn Other)
{
....
	if ( (Other.JumpZ <= 1.5 * Other.Default.JumpZ) && (B.Region.Zone.ZoneGravity.Z < 0.8 * B.Region.Zone.Default.ZoneGravity.Z) )
	{
		if ( (B.MyTranslocator == None) || (B.MyTranslocator.TTarget != None) 
			|| (Level.Game.IsA('DeathMatchPlus') && !DeathMatchPlus(Level.Game).CanTranslocate(B)) )
		{
			if ( bImpactJump && B.CanImpactJump() )
			{
				PendingBot = B;
				GotoState('PendingImpact');
				Return self;
			}
			return None;
		}
		B.TranslocateToTarget(self); //Cough - I think it will translocate
		return self;	
	}
....
}
In other hand I'm very confused about confused people. Anybody can start a stock map with game using Translocator and spectate two Bots. Later we can open map for figuring what was used - Hint: DM-Agony - look for Redeemer spot. Do they get redeemer using Translocator ? Yes they do that more often than using ImpactHammer.
Agony_Picking.PNG
If in other maps they don't seem interested in using these routes, it happens because mapper went busy to do easier routes through ramps more effective in front of special jumps. Why ? Because Jumping means a hard-coded distance of 1000 UU + ExtraCost and walking normally through a ramp will deliver in calculations a better solution. As you can see (not everyone can see) JumpSpot is always placed nearby TOP Exit and NOT at bottom for jumping down, there are already 5 Paths going back to the ground level - including path from JumpSpot to LiftExit from ground level.
User avatar
EvilGrins
Godlike
Posts: 9735
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA
Contact:

Re: CTFM-NBK-NaliTemple-Dx2021_4x4 JumpSpot

Post by EvilGrins »

Looks good. Video in low grav?

When a low grav jump is not enough, use the transloc before falling back down.
http://unreal-games.livejournal.com/
Image
medor wrote:Replace Skaarj with EvilGrins :mrgreen:
Smilies · viewtopic.php?f=8&t=13758
User avatar
[NBK]DxTrEm3Fx
Adept
Posts: 259
Joined: Wed May 09, 2012 5:56 pm
Location: Glendale, AZ
Contact:

Re: CTFM-NBK-NaliTemple-Dx2021_4x4 JumpSpot

Post by [NBK]DxTrEm3Fx »

sektor2111 wrote: Wed May 25, 2022 4:47 am
[NBK]DxTrEm3Fx wrote: Tue May 24, 2022 10:53 pm Will the Bots automatically use the translocator if the JumpSpot is too high for them to reach? I do not see ant setting in JS properties for using the trans.
Then check what JumpSpot code says - is more easy than any "let me guess".

Code: Select all

function Actor SpecialHandling(Pawn Other)
{
....
	if ( (Other.JumpZ <= 1.5 * Other.Default.JumpZ) && (B.Region.Zone.ZoneGravity.Z < 0.8 * B.Region.Zone.Default.ZoneGravity.Z) )
	{
		if ( (B.MyTranslocator == None) || (B.MyTranslocator.TTarget != None) 
			|| (Level.Game.IsA('DeathMatchPlus') && !DeathMatchPlus(Level.Game).CanTranslocate(B)) )
		{
			if ( bImpactJump && B.CanImpactJump() )
			{
				PendingBot = B;
				GotoState('PendingImpact');
				Return self;
			}
			return None;
		}
		B.TranslocateToTarget(self); //Cough - I think it will translocate
		return self;	
	}
....
}
In other hand I'm very confused about confused people. Anybody can start a stock map with game using Translocator and spectate two Bots. Later we can open map for figuring what was used - Hint: DM-Agony - look for Redeemer spot. Do they get redeemer using Translocator ? Yes they do that more often than using ImpactHammer.
Agony_Picking.PNG
If in other maps they don't seem interested in using these routes, it happens because mapper went busy to do easier routes through ramps more effective in front of special jumps. Why ? Because Jumping means a hard-coded distance of 1000 UU + ExtraCost and walking normally through a ramp will deliver in calculations a better solution. As you can see (not everyone can see) JumpSpot is always placed nearby TOP Exit and NOT at bottom for jumping down, there are already 5 Paths going back to the ground level - including path from JumpSpot to LiftExit from ground level.
Hello Sektor,
I do not use the script or the code of the actor classes. I don't know how to edit it or save it or what I'm doing with it. I'm only checking boxes in the properties view of the Actor class. I can see the Translocator code line, but I don't know how to use it. I'm not a coder nor have I ever pretended to be one. The code should be stock with the exception of the Tag I inserted. The video is showing the LowGravity mutator found in starting a practice game. Also, I see the option in the scrip for LowG as well.
Image

This is only a partial section of the whole JumpSpot code.

Code: Select all

class JumpSpot extends LiftCenter;

var() bool bImpactJump, bAlwaysAccel;
var Bot PendingBot;

event int SpecialCost(Pawn Seeker)
{
	local Bot B;

	B = Bot(Seeker);
	if ( B == None )
		return 100000000;
		
	if ( B.bCanTranslocate || (B.JumpZ > 1.5 * B.Default.JumpZ) 
		|| (B.Region.Zone.ZoneGravity.Z >= 0.8 * B.Region.Zone.Default.ZoneGravity.Z) )
		return 300;

	if ( bImpactJump && B.bHasImpactHammer && (B.Health > 85) && (!B.bNovice || (B.Skill > 2.5)) 
		&& (B.DamageScaling < 1.4) )
		return 1100;

	return 100000000;
}
Image
Image
User avatar
sektor2111
Godlike
Posts: 6412
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: CTFM-NBK-NaliTemple-Dx2021_4x4 JumpSpot

Post by sektor2111 »

Nah, let's resume latest descriptions. DM-Agony is a stock map using ONLY stock assets - nothing added as extra-code - but you can look at original code - only for curiosity. Either way you don't need any walk through any code - that is optional, just test such a functional map and clone that stage into Yours. If they use Translocator (when they have it) definitely will use it through the same actors in another stage. If not, there is pointed another road more easy and cheap instead of a hard one with ExtraCost.

These discussions might sit elsewhere in a separate topic for all mappers interested. I can show you even simple examples - but stock maps should be conclusive enough, also Higor can explain more details about what's going one "inside" Pawn+Engine. Buggie also provided a very cute toy for testing routes, and later you can step into next Level dictating movement how you want.

Allow me to explain when some navigation actors are having these functions, what they do - might be useful for other readers:
#1 event int SpecialCost - this has on purpose a complete lock/unlock - Pawn doesn't even come closer if this condition returns something very high right in the middle of entire route - Flag Carrier will be rejected from using TranslocDest way, but not for JumpSpot when has ImpactHammer and enough health - CTF-EternalCave;
#2 function Actor SpecialHandling - this one doesn't really discard Pawn from coming here, but... when Pawn wants to move to this point it can be educated to do something before stepping to this Navigation Actor, such as: redirecting Pawn to a trigger if needed, using a tool, shooting something, accessing a button, picking an item, etc. This is used for an immediate action before moving here executed right in front of this node.
All thing needed is knowing how to write and compile these for those interested. For simple mapping, complex tasks for A.I. might be very difficult up to impossible if Pawn is not hinted what to do.
JumpSpot is a stock multi-functional point, it is aiming 3 tools: Translocator, UT_JumpBoots, ImpactHammer - to not forget Low gravity which is probably the most wanted solution for A.I. . If game is using Translocator, Bot has no issues here if they are properly set and logically connected. Editor 469 will show these paths in Colors and Arrows - I don't think this is doable more simple than that.
User avatar
[NBK]DxTrEm3Fx
Adept
Posts: 259
Joined: Wed May 09, 2012 5:56 pm
Location: Glendale, AZ
Contact:

Re: CTFM-NBK-NaliTemple-Dx2021_4x4 JumpSpot

Post by [NBK]DxTrEm3Fx »

Thank you for your help. I have everything working, but I went with the TranslocDest and I used ctf-susurrous as a guide for setting up the actors. This map has a ton of stuff in it that you can open up and see how it works. It's also a guide on the Wiki Page.
https://wiki.beyondunreal.com/Legacy:Pa ... nslocators
I have the AI using the TranslocDest while carrying a flag. This might only be working with the MCTF rules set with Crazy Option/ FlagTranslocations. All combos seem to be working well. I have some textures issues to work out with various selectable divers. Other than that some minor tweaking to do that I hope to have wrapped up this weekend.
Image
Image
Post Reply