CTF-UTDM-WaterGiant

Tutorials and discussions about Mapping - Introduce your own ones!
User avatar
EvilGrins
Godlike
Posts: 9046
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA

CTF-UTDM-WaterGiant

Post by EvilGrins »

My fondness for the UTDM-monsters in my edits may be a bit more extreme than I've let on, as I've only shared some of them but I've literally got about 350 map edits, of various gametypes, setup so far. Hence my problem with the recent UT-patch which disabled there effectiveness, at least for team games...

...but that issue may be over.

Recent observation from Buggie shows that might not be a problem anymore · https://www.oldunreal.com/phpBB3/viewto ... 77#p101477 · so I'm tentatively optimistic.

Hence, back in business!
Image
This is clearly an enhancement on the CTF-LavaGiant theme, except for no lava and a much larger playing area. There are multiple ways to get to either side, really only 1 way to get to the flag but more than a couple ways to get down once you have it. Map was designed for SLV, which still works as the flag area is adequately spaced for anyone to fly in and snatch up the flag... and as with most SLV maps there was no pathing; got Nelsona to fix that up.

One of the two paths to get to the other side requires a translocator, so have that enabled.

Despite being standard CTF, I added a UTDMT assigned to a non-existent Gold Team. There's a gazebo on top of the mountain range, so I placed him up there. He's not very actively involved in the game, though I suppose he might be able to throw boulders at passing SLV/RocketX, and mostly he spends his time complaining about how lonely he is being stuck up there.
Image
At ground level both bases are protected by UTDMS, Nelsona worked up monster-pathing so they patrol along the front of each castle. They may wander off periodically, but they always come back.

One thing I wanted to do, as I added a Gold Team a Green Team seemed like a fun idea, was to put a UTDMW on these odd little floating islands at the extreme right of the two castles. Given how players are, eventually someone would shoot at them and that would bring them into play... attacking whichever team was closest to them, but ran into a small problem there.
Image
The main body of water surrounding the playing area is an energetic form of water, obviously water (hence the map name) was the idea but it doesn't seem very watery. There's smaller bodies of the same stuff between the paths to get to the other side that don't have this issue, but the larger surrounding "water" when any UTDMW fell in, it would never respawn; smaller areas they would but much longer than usual time needed to pass.

Ran this by some other mappers, nobody could figure out how to fix it without replacing the whole thing... figured UTDMW weren't necessary, so scrapped that idea.

Usual Suspects:
.u - /system
.unr - /maps
.png - Pwetty!

Enjoy!
https://www.mediafire.com/file/1dpt7s7k ... rGiant.zip
http://unreal-games.livejournal.com/
Image
medor wrote:Replace Skaarj with EvilGrins :mrgreen:
Smilies · viewtopic.php?f=8&t=13758
User avatar
OjitroC
Godlike
Posts: 3223
Joined: Sat Sep 12, 2015 8:46 pm

Re: CTF-UTDM-WaterGiant

Post by OjitroC »

EvilGrins wrote: Mon Dec 05, 2022 10:06 am My fondness for the UTDM-monsters in my edits may be a bit more extreme than I've let on, as I've only shared some of them but I've literally got about 350 map edits, of various gametypes, setup so far. Hence my problem with the recent UT-patch which disabled there effectiveness, at least for team games...

...but that issue may be over.

Recent observation from Buggie shows that might not be a problem anymore · https://www.oldunreal.com/phpBB3/viewto ... 77#p101477 · so I'm tentatively optimistic.
Unforunately, whilst the Red Skaarj will, indeed, attack a Blue Player/bot, the Blue Skaarj will not attack a Red Player/bot (in 469c Release) so the issue remains.

Possibly it has something to do with the somewhat buggy code of the UTMDS (and of the Titan) as indicated by the multiple messages whenever something kills or is killed by one of the UTDM pawns - every UTDM pawn 'thinks' it has killed or been killed. Possibly down to the way 'PlayerReplicationInfo' is handled (or not handled correctly)? It would be nice if someone could sort all that out.

Canny players will try to force the Berserkers back to the edge of the island so that they fall into the 'water' as then they won't respawn :P

Good choice of map though - nice and big with lots of space - could be fun with Helicos/Mantas?

Have you tried altering some of the properties of WaterZone5 - it's a KillZone but with 3000 damage per sec which is unnecessary? Just leave it as a PainZone with 200/300 damage per sec and that will kill most things pretty quickly? Probably doesn't need bDestructive=True?

Looks like some inventory has been moved around without rebuilding the paths :
Spoiler
Buggie's MapChecker
ScriptLog: InventorySpot without MarkedItem: 3
ScriptLog: Inventory without MyMarker: 4

ScriptLog: PathNode not used as in or out way:
ScriptLog: PathNode380
ScriptLog: PathNode289

sektor's MapGarbage
NoAccess: UT_Eightball1 does not seems useful. Probing pickup has FAILED during a Spawn Test in spot.
ScriptLog: No roaming goal at InventorySpot139
ScriptLog: No roaming goal at InventorySpot142
ScriptLog: No roaming goal at InventorySpot143
ItemsCheck: Checked InventorySpots. Found 3 empty InventorySpots.

BreakPointsFound: These 4 navigation points aren't that used as valid paths. They might be break points if are a piece of a road.
UtterlyUseless: PathNode380 is not having any path defined.
UtterlyUseless: PathNode289 is not having any path defined.
Isolated: InventorySpot35 -> UT_Eightball3 is not having any path defined...
Isolated: InventorySpot85 -> UT_Eightball1 is not having any path defined...
User avatar
sektor2111
Godlike
Posts: 6115
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: CTF-UTDM-WaterGiant

Post by sektor2111 »

Pathing is simple to solve and other connected issues.
For those UTDM.Whatever I have to remind you that original code placed in Titan Player was mainly copy-pasted. I did not have too much addiction to that "log" stuff. They not only spread useless messages but they do ScriptWarnings as well. The problem is not only there. Such codes might have glitches as well even if logs are not indicating anything. By example I did not like their SetEnemy things and Attitude code. After polishing these (not the best ever edits) I could see another behavior. And then... because I'm using only my private files, I have no problems here. When map is well pathed, Berserker Player is really berserker.
In other edits I have them even participating at CTF in big parts. I'll look at those isolated nodes if are buried somewhere or behind something... or forgot.

Edit: Hm, yes, it was used a low range for connecting main routes (I think it was XC 21), UT_Eightballs have been forgot - they can be fixed but... those nodes with no purpose probably can be UnLinked from chain and deleted - or moved where are needed and adding paths.
User avatar
OjitroC
Godlike
Posts: 3223
Joined: Sat Sep 12, 2015 8:46 pm

Re: CTF-UTDM-WaterGiant

Post by OjitroC »

There's also no path to one of the WarheadLaunchers, as reported by PathsChecker (though it's also clearly evident in the Editor).

So there's no way of dealing with the issue that the Blue Skaarj/Titans won't attack Red Players/bots in 469c?
User avatar
EvilGrins
Godlike
Posts: 9046
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA

Re: CTF-UTDM-WaterGiant

Post by EvilGrins »

OjitroC wrote: Mon Dec 05, 2022 2:29 pmHave you tried altering some of the properties of WaterZone5 - it's a KillZone but with 3000 damage per sec which is unnecessary?
Hmmm, wonder if the extent of the killzone damage had such an impact on their respawn. Maybe it would've been sooner if that was smaller. Something to keep in mind for next time, I suppose.
OjitroC wrote: Mon Dec 05, 2022 4:41 pmSo there's no way of dealing with the issue that the Blue Skaarj/Titans won't attack Red Players/bots in 469c?
Hopefully eventually, the folks behind updating that patch will get around to fixing the issue in one of the next updates.
OjitroC wrote: Mon Dec 05, 2022 4:41 pmThere's also no path to one of the WarheadLaunchers, as reported by PathsChecker (though it's also clearly evident in the Editor).
Bots still do get to the warheads, regardless... though that was more my doing. Keeping in mind SLV I added those to where I thought the pathing would NOT make them accessible to bots so real players would use them more.
http://unreal-games.livejournal.com/
Image
medor wrote:Replace Skaarj with EvilGrins :mrgreen:
Smilies · viewtopic.php?f=8&t=13758
User avatar
OjitroC
Godlike
Posts: 3223
Joined: Sat Sep 12, 2015 8:46 pm

Re: CTF-UTDM-WaterGiant

Post by OjitroC »

EvilGrins wrote: Mon Dec 05, 2022 8:07 pm Hmmm, wonder if the extent of the killzone damage had such an impact on their respawn. Maybe it would've been sooner if that was smaller. Something to keep in mind for next time, I suppose.
What I am really saying is that probably that WaterZone doesn't need bKillZone=True - that bPainZone=True would be enough with a reasonable amount of damage per second to kill things off in a reasonable amount of time. I can't find any detail on KillZone in the UnCodex beyond that it is a variable of ZoneInfo - I wonder if bKillZone=True has an impact on the respawning of the UTDM pawns - someone with more knowledge of code than me may be able to figure that out from their code (obviously bKillZone=True doesn't impact the respawning of bots or Players so that suggests something in the code of those UTDM pawns).
EvilGrins wrote: Mon Dec 05, 2022 8:07 pm Hopefully eventually, the folks behind updating that patch will get around to fixing the issue in one of the next updates.
Possibly - though the issue may be to do with the code of the UTDM pawns. Anyway the thing to do is raise an issue on GitHub.
EvilGrins wrote: Mon Dec 05, 2022 8:07 pm Bots still do get to the warheads, regardless... though that was more my doing. Keeping in mind SLV I added those to where I thought the pathing would NOT make them accessible to bots so real players would use them more.
I thought that that was probably deliberate.
User avatar
Deepu
Adept
Posts: 325
Joined: Mon Nov 11, 2013 7:56 am
Personal rank: Average
Location: India

Re: CTF-UTDM-WaterGiant

Post by Deepu »

In Monster Match there no issues with random attack

Code: Select all

* Monsters never attacks own team while XC_Engine or UTPatch469a installed.
* Fixed random attacking while XC_Engine or UTPatch469a installed.
* Compatibility issues fixed for XC_Engine & UTPatch469a.

Code: Select all


function eAttitude AttitudeTo(Pawn Other)
{
	if ( PlayerReplicationInfo != None && Other.PlayerReplicationInfo != None && Level.Game.bTeamGame )
	{
		if ( Other.PlayerReplicationInfo.Team == 255 ||
			PlayerReplicationInfo.Team == Other.PlayerReplicationInfo.Team )
			return ATTITUDE_Friendly;
	}
	if ( Other == None )
		return ATTITUDE_Ignore;
	if (Other.bIsPlayer)
	{
		if ( bIsPlayer && Level.Game.bTeamGame && (Other.PlayerReplicationInfo != none) && (Team == Other.PlayerReplicationInfo.Team) )
			return ATTITUDE_Friendly;
		else if ( (Intelligence > BRAINS_None) && 
			((AttitudeToPlayer == ATTITUDE_Hate) || (AttitudeToPlayer == ATTITUDE_Threaten) 
				|| (AttitudeToPlayer == ATTITUDE_Fear)) )
		{
			if (RelativeStrength(Other) > Aggressiveness)
				AttitudeToPlayer = AttitudeWithFear();
			else if (AttitudeToPlayer == ATTITUDE_Fear)
				AttitudeToPlayer = ATTITUDE_Hate;
		}
		return AttitudeToPlayer;
	}
	else if (Hated == Other)
	{
		if (RelativeStrength(Other) >= Aggressiveness)
			return AttitudeWithFear();
		else 
			return ATTITUDE_Hate;
	}
	else if ( (TeamTag != '') && (ScriptedPawn(Other) != None) && (TeamTag == ScriptedPawn(Other).TeamTag) )
		return ATTITUDE_Friendly;
	else	
		return AttitudeToCreature(Other);
}
Last edited by Deepu on Tue Dec 06, 2022 12:19 pm, edited 1 time in total.
User avatar
OjitroC
Godlike
Posts: 3223
Joined: Sat Sep 12, 2015 8:46 pm

Re: CTF-UTDM-WaterGiant

Post by OjitroC »

Deepu wrote: Tue Dec 06, 2022 9:58 am In Monster Match there no issues with random attak
The issue with UTDM pawns is not random attacks but that, in team games like CTF, Blue UTDM pawns will not attack Red Players/Bots in 469c though they will when playing 436. However in both UT versions Red UTDM pawns will happily attack Blue Players/Bots. AFAIK neither Red nor Blue UTDM pawns will attack their own team.
User avatar
Deepu
Adept
Posts: 325
Joined: Mon Nov 11, 2013 7:56 am
Personal rank: Average
Location: India

Re: CTF-UTDM-WaterGiant

Post by Deepu »

UTDMSkaarjBerserkerFix.u
Rename this file to 'UTDMSkaarjBerserker' then try again for Skaarj Berserker
You do not have the required permissions to view the files attached to this post.
User avatar
OjitroC
Godlike
Posts: 3223
Joined: Sat Sep 12, 2015 8:46 pm

Re: CTF-UTDM-WaterGiant

Post by OjitroC »

Deepu wrote: Tue Dec 06, 2022 12:19 pm UTDMSkaarjBerserkerFix.u
Rename this file to 'UTDMSkaarjBerserker' then try again for Skaarj Berserker
Yes, that works in 469c - the Blue Skaarj Berserker now attacks the Red Player :tu:

As a matter of interest, what did you change?
User avatar
Deepu
Adept
Posts: 325
Joined: Mon Nov 11, 2013 7:56 am
Personal rank: Average
Location: India

Re: CTF-UTDM-WaterGiant

Post by Deepu »

In UTDMSkaarjBerserker.uc

Code: Select all

function eAttitude AttitudeTo(Pawn Other)
{
	if ( PlayerReplicationInfo != None && Other.PlayerReplicationInfo != None && Level.Game.bTeamGame )
	{
		if ( Other.PlayerReplicationInfo.Team == 255 ||
			PlayerReplicationInfo.Team == Other.PlayerReplicationInfo.Team )
			return ATTITUDE_Friendly;
	}
	if ( Other == None )
		return ATTITUDE_Ignore;
	if (Other.bIsPlayer)
	{
		if ( bIsPlayer && Level.Game.bTeamGame && (Other.PlayerReplicationInfo != none) && (Team == Other.PlayerReplicationInfo.Team) )
			return ATTITUDE_Friendly;
		else if ( (Intelligence > BRAINS_None) && 
			((AttitudeToPlayer == ATTITUDE_Hate) || (AttitudeToPlayer == ATTITUDE_Threaten) 
				|| (AttitudeToPlayer == ATTITUDE_Fear)) )
		{
			if (RelativeStrength(Other) > Aggressiveness)
				AttitudeToPlayer = AttitudeWithFear();
			else if (AttitudeToPlayer == ATTITUDE_Fear)
				AttitudeToPlayer = ATTITUDE_Hate;
		}
		return AttitudeToPlayer;
	}
	else if (Hated == Other)
	{
		if (RelativeStrength(Other) >= Aggressiveness)
			return AttitudeWithFear();
		else 
			return ATTITUDE_Hate;
	}
	else if ( (TeamTag != '') && (ScriptedPawn(Other) != None) && (TeamTag == ScriptedPawn(Other).TeamTag) )
		return ATTITUDE_Friendly;
	else	
		return AttitudeToCreature(Other);
}
User avatar
sektor2111
Godlike
Posts: 6115
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: CTF-UTDM-WaterGiant

Post by sektor2111 »

Deepu wrote: Tue Dec 06, 2022 2:47 pm (Team == Other.PlayerReplicationInfo.Team)
I have some doubts here... Team is variable from Pawn that can be different from what PlayerReplicationInfo can have assigned to Pawn, and it's not like ScriptedPawn has something to assign these correctly in their right timing. ScriptedPawn was never intended to have a PlayerReplicationInfo. Here codes should be written to align these vars normally - perhaps forgetting "Team" and taking in account only PlayerReplicationInfo that is assigned to this "player".
Assuming that Pawn has Team 0 (default ScriptedPawn value) but its ReplicationInfo has Team 1, perhaps it won't attack any pawn with PlayerReplication Team 0 exactly because of this sequence... (useless if you ask my opinion about it).
Then

Code: Select all

if ( Other == None )
		return ATTITUDE_Ignore;
This is probably FIRST CHECK needed and not inside. Maybe not attacking something with bHidden = True, Health <= 0, bDeleteMe, not colliding projectiles and so on...
Last edited by sektor2111 on Tue Dec 06, 2022 4:05 pm, edited 3 times in total.
User avatar
Deepu
Adept
Posts: 325
Joined: Mon Nov 11, 2013 7:56 am
Personal rank: Average
Location: India

Re: CTF-UTDM-WaterGiant

Post by Deepu »

okay
User avatar
sektor2111
Godlike
Posts: 6115
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: CTF-UTDM-WaterGiant

Post by sektor2111 »

Here is my older code from Berserker - player version.
Spoiler

Code: Select all

function eAttitude AttitudeTo(Pawn Other)
{
	// Ns: RULES are mine right now

// #1
	if ( Other == None || Other == Self
		|| Other.bDeleteMe || !Other.bCollideActors
		|| Other.Health < 1 || Other.bHidden || Other.Mesh == None )
		return ATTITUDE_Friendly; //Be nice, they are finished

// #2
	if ( Level.Game.bTeamGame )
	{
		if( PlayerReplicationInfo.Team != 255 && Other.PlayerReplicationInfo != None )
		{
			if ( PlayerReplicationInfo.Team == Other.PlayerReplicationInfo.Team )
				return ATTITUDE_Friendly;
			else
				return ATTITUDE_Hate;
		}
		if ( Other.PlayerReplicationInfo == None )
		{
			if ( ScriptedPawn(Other) != None )
			{
				if ( TeamTag != '' && ScriptedPawn(Other).TeamTag == TeamTag )
					return ATTITUDE_Friendly;
				else if ( ScriptedPawn(Other).Team ~= PlayerReplicationInfo.Team )
					return ATTITUDE_Ignore; //Being player will be attacked anyway so will respond properly according to master Attitude
			}
			if ( Other.Enemy != None && Other.Enemy == Self ) //if something claims me an enemy
				return ATTITUDE_Hate;
			else
				return ATTITUDE_Ignore;
		}
	}
	else
		return ATTITUDE_Hate;

	return Super.AttitudeTo(Other);
}
I listen what else can be needed. The rest means skin stuff - some of these edits have borked skins and so I removed all, assigning skin based on team color.
Killed function won't deliver lousy messages when clown is killing itself and insulting itself, etc.
Then if we talk about "Berserker" code from this "Player" I think I posted it already, either way let me know if you want to see it...
As you can see, this is why I won't use files provided with edited maps - UTDMT was a junk, doesn't matter how much "science" was implemented in messaging system, Pawn failed in basics not in complex math...
User avatar
Deepu
Adept
Posts: 325
Joined: Mon Nov 11, 2013 7:56 am
Personal rank: Average
Location: India

Re: CTF-UTDM-WaterGiant

Post by Deepu »

Do not make return Super.AttitudeTo(Other); if make this, you still calling the wrong attack done by the UTDMT monsters.