◄► Unreal Tournament v469b Patch Release ◄►

General Announcements about Unreal Tournament and UT99.org
User avatar
sektor2111
Godlike
Posts: 5336
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by sektor2111 » Thu Apr 29, 2021 6:11 am

A little FALSE
"ScriptWarning" and "Warning" doesn't means that it's ALL FINE. If game doesn't crash it's not like it works well... discard these fake news, it's a map over engine boundary, you should see and take in serious DevPath's reactions.
Why game would print those logs if it's all fine :loool: ? It's NOT, don't lie yourselves.

User avatar
OjitroC
Godlike
Posts: 2420
Joined: Sat Sep 12, 2015 8:46 pm

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by OjitroC » Thu Apr 29, 2021 9:59 am

sektor2111 wrote:
Thu Apr 29, 2021 6:11 am
A little FALSE
"ScriptWarning" and "Warning" doesn't means that it's ALL FINE. If game doesn't crash it's not like it works well... discard these fake news, it's a map over engine boundary, you should see and take in serious DevPath's reactions.
Why game would print those logs if it's all fine :loool: ? It's NOT, don't lie yourselves.
I don't think anybody's saying that everything is fine with that map. The issue is that it crashes fairly quickly in 469b but runs OK in 436 and this crash has been traced by Anth to a bug in 469b.

The

Code: Select all

ScriptWarning: FNBASTeamTrigger AS-FoT-OrionsCursePart1.FNBASTeamTrigger19 (Function AS-FoT-OrionsCursePart1.FNBASTeamTrigger.IsRelevant:00D9) Accessed None 'PlayerReplicationInfo'
appears in the log when the map is played in 436 and 469b. This warning does not appear to have an adverse effect on how the map plays in 436 - at least, not a sufficient enough impact to be noticeable to those people who have played it.

I agree that all ScriptWarnings need to be taken seriously and investigated but it may be that some are more important than others?

UPDATE
This is the IsRelevant function

Code: Select all

function bool IsRelevant( actor Other )
{
	if( !bInitiallyActive || !Level.Game.IsA('Assault') || (Other.Instigator == None) )
		return false;
	if (Team > 1)
	{
		log("ERROR! Function IsRelevant::"$class$".Team is greater than 1 and must always be 1 or 0!");
		return false;
	}
	if ( Team == 0 )
	{
		if ( Other.Instigator.PlayerReplicationInfo.Team == Assault(Level.Game).Defender.TeamIndex )
			return false;
	}
	else
	{
		if ( Other.Instigator.PlayerReplicationInfo.Team == Assault(Level.Game).Attacker.TeamIndex )
			return false;
	}
	return Super.IsRelevant(Other);
}
Perhaps you can indicate what gives rise to those ScriptWarnings?

User avatar
Barbie
Godlike
Posts: 2107
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by Barbie » Thu Apr 29, 2021 1:11 pm

OjitroC wrote:
Thu Apr 29, 2021 9:59 am
Perhaps you can indicate what gives rise to those ScriptWarnings?
Yep: event Trigger.Touch(actor Other) calls IsRelevant(Other) at first (IsRelevant is defined in Trigger.uc). Because FNBASTeamTrigger overrides IsRelevant(), that function is executed before the one of the parent class. In function FNBASTeamTrigger.IsRelevant(actor Other) the variable Other.Instigator.PlayerReplicationInfo (PRI) is accessed without a check if it exist - maybe Other.Instigator is a Bot or anything else without a PRI, even a projectile. The TriggerType check for TT_PlayerProximity is done later in the parent class, because FNBASTeamTrigger.IsRelevant() calls it at end.

tl;dr
Instead of calling Super() at end in FNBASTeamTrigger.IsRelevant() it should be called first and aborted when that returns FALSE.
FNBASTeamTrigger
Show

Code: Select all

//=============================================================================
// FNBASTeamTrigger.  Written by Joe 'Professor' Hall for Rob 'Fragnbrag' Burns.
// If you want to use This class in your Assault map you must at least ask
// Fragnbrag for permission.  I personally don't mind if you use it provided you ask
// Fragnbrag for permission and leave these comments unchanged.  You may add to the
// script and these comments but if you do that I and Fragnbrag will not be responsible
// for damages that might cause.  You can find us both at
// http://www.unrealplayground.com/  Thanks and have fun.
// Professor.  10-24-04
//
//
//
//
// Usage: This trigger works exactly like a normal TeamTrigger just set
// FNBASTeamTrigger -> Team = to whatever team number you don't want to have trigger it.
// The Defending team is Team 0 and the Attacking team is team 1 so if you don't want
// the Defending team to trigger it then set Team = 0.  All other normal variables and
// the InitialState under Object still work with this trigger.  It may be best to keep
// the TriggerType set on TT_PlayerProximity so a monster cannot trigger it!.
//=============================================================================
class FNBASTeamTrigger expands Trigger;

var() byte Team;

function PostBeginPlay()
{
	if ( !((Level.Game).IsA( 'Assault' )) )
	{
		log("ERROR "$Self$" has been used in a gametype other than Assault! Disabling due to error!");
		Destroy();
	}
	else
		Super.PostBeginPlay();
}

function bool IsRelevant( actor Other )
{
	if( !bInitiallyActive || !Level.Game.IsA('Assault') || (Other.Instigator == None) )
		return false;
	if (Team > 1)
	{
		log("ERROR! Function IsRelevant::"$class$".Team is greater than 1 and must always be 1 or 0!");
		return false;
	}
	if ( Team == 0 )
	{
		if ( Other.Instigator.PlayerReplicationInfo.Team == Assault(Level.Game).Defender.TeamIndex )
			return false;
	}
	else
	{
		if ( Other.Instigator.PlayerReplicationInfo.Team == Assault(Level.Game).Attacker.TeamIndex )
			return false;
	}
	return Super.IsRelevant(Other);
}

function TakeDamage( int Damage, Pawn instigatedBy, Vector hitlocation,
						Vector momentum, name damageType)
{
	if (Team > 1)
	{
		log("ERROR! Function TakeDamage::"$class$".Team is greater than 1 and must always be 1 or 0!");
		return;
	}
	if ( Team == 0 )
	{
		if ( (InstigatedBy != None) && Level.Game.IsA('Assault')
			&& instigatedBy.PlayerReplicationInfo.Team != Assault(Level.Game).Defender.TeamIndex )
			Super.TakeDamage(Damage, instigatedBy, HitLocation, Momentum, DamageType);
	}
	else
	{
		if ( (InstigatedBy != None) && Level.Game.IsA('Assault')
			&& instigatedBy.PlayerReplicationInfo.Team != Assault(Level.Game).Attacker.TeamIndex )
			Super.TakeDamage(Damage, instigatedBy, HitLocation, Momentum, DamageType);
	}
}


defaultproperties
{
    Texture=Texture'stuff.FASTT_Trig'
    bCollideWhenPlacing=True
}
BTW: does "10-24-04" mean "2004-10-24" or "2010-04-24"? That's why I prefer either ISO date format YYYY-MM-DD or the DD MMM JJJJ what is impossible to misinterpret.
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett

User avatar
OjitroC
Godlike
Posts: 2420
Joined: Sat Sep 12, 2015 8:46 pm

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by OjitroC » Thu Apr 29, 2021 1:38 pm

Barbie wrote:
Thu Apr 29, 2021 1:11 pm
Instead of calling Super() at end in FNBASTeamTrigger.IsRelevant() it should be called first and aborted when that returns FALSE.
Thanks for the very full explanation - is that error likely to have an impact on the game when playing that map?

User avatar
Barbie
Godlike
Posts: 2107
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by Barbie » Thu Apr 29, 2021 2:30 pm

OjitroC wrote:
Thu Apr 29, 2021 1:38 pm
is that error likely to have an impact on the game when playing that map?
My guess is that depending later code is not executed when a variable does not exist (an Access None occur). So the return false (line 48 and 53) are not executed but the return Super.IsRelevant(Other) (line 55) should be.

tl;dr
No.
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett

TankBeef
Average
Posts: 75
Joined: Tue Apr 13, 2021 12:56 am

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by TankBeef » Thu Apr 29, 2021 2:35 pm

Barbie wrote:
Thu Apr 29, 2021 1:11 pm
Instead of calling Super() at end in FNBASTeamTrigger.IsRelevant() it should be called first and aborted when that returns FALSE.
Thanks Barbie. I don't know much about code, but I am still going to ask. Does this means that what has to be "fixed" is this FNBASTeamTrigger thing and not the patch? Maybe some update?

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

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by sektor2111 » Thu Apr 29, 2021 2:36 pm

Barbie wrote:
Thu Apr 29, 2021 1:11 pm
Perhaps you can indicate what gives rise to those ScriptWarnings?
With pleasure...
Nobody guarantees that only bIsPlayer players with PlayerReplicationInfo are there. Either way it's the same story from AssaultRetardizer, oops it's AssaultRandomizer. Are you absolutely sure that map won't be ported with these actors which are junks out of Assault game because code doesn't do any check here ? Me one I'm not sure about this.
Code should include

Code: Select all

if (Other.PlayerReplicationInfo != None)
{ //blah blah }
and the other check with extra warnings

Code: Select all

if (Assault(Level.Game) != None)
{
//blah blah
}
These are seriously too simple for figuring them. It's the same story all the time, Accessing something without to confirm the existence of what are we accessing... I understand purpose of this actor but WE ALL know that some "smarter" ones are using everything everywhere.

Once again when devs are spaming log file it's not GOOD, and no, Bot is not finding anything when Devs are saying "Breadth..." or "1000 paths..." messages, it can be a call in wrong physics, navigation being resumed later or it's simply a seek cycle discarded until some resources are freed later. I can see Bots there what are doing, I have my eye toward Bots...

As for "impact for game". If these useless things are not having impact you can add other 10000 things without impact just for the sake of editing... :ironic: .
Perhaps they are helping some day or some night...
Last edited by sektor2111 on Thu Apr 29, 2021 3:01 pm, edited 1 time in total.

User avatar
OjitroC
Godlike
Posts: 2420
Joined: Sat Sep 12, 2015 8:46 pm

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by OjitroC » Thu Apr 29, 2021 2:56 pm

sektor2111 wrote:
Thu Apr 29, 2021 2:36 pm
As for "impact for game". If these useless things are not having impact you can add other 10000 things without impact just for the sake of editing... :ironic: .
Perhaps they are helping some day or some night...
If something doesn't have an adverse impact then is it worth 'worrying' about - does the person who plays the map need to worry about it? Does affect the gameplay in any way?

Why would you want to add other things that have no impact or effect? Sorry I don't see the logic in that. That's not a reasoned argument for being overly concerned about the errors in the FNBASTeamTrigger if they do not have a demonstrable effect on gameplay. Sure, there's an error in the code of that Trigger but is it of critical importance?

Surely in this case ScriptWarning means precisely that - there is an error in the Script. What it doesn't mean is that there is an error in the Script and it's going to cause problems in playing the map?
TankBeef wrote:
Thu Apr 29, 2021 2:35 pm
Barbie wrote:
Thu Apr 29, 2021 1:11 pm
Instead of calling Super() at end in FNBASTeamTrigger.IsRelevant() it should be called first and aborted when that returns FALSE.
Thanks Barbie. I don't know much about code, but I am still going to ask. Does this means that what has to be "fixed" is this FNBASTeamTrigger thing and not the patch? Maybe some update?
As I understand it, NO. As Anth has noted, there is a bug in 469b.

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

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by sektor2111 » Thu Apr 29, 2021 3:04 pm

That trigger I think at random is pointless.
Assuming that Pawn A triggers Pawn B. Pawn B will want to hunt Pawn A. And this is one of moments when DevPath rejects what B wants. So, what's the deal ? Nothing, retry next time... I understand that 469b might need another inspection but this is not really technically the best ever map.

TankBeef
Average
Posts: 75
Joined: Tue Apr 13, 2021 12:56 am

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by TankBeef » Thu Apr 29, 2021 3:17 pm

sektor2111 wrote:
Thu Apr 29, 2021 3:04 pm
I understand that 469b might need another inspection but this is not really technically the best ever map.
The mapraider visitors think otherwise, it is the highest rated map of all time there. :lol2: . But yes, I understand your point.

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

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by sektor2111 » Thu Apr 29, 2021 10:31 pm

Not really. Who is rating map and what does the person knows about these UE1 assets ?
If it's all based on "Woow, Nice Walls" no doubt that it's rated. If it's based on logs and how goes all warnings perhaps rating goes under ground zero.
I had years ago other beautiful maps but having damaging settings causing breaks or crashes, and then I removed them - I learned a lesson in hard way. For me a good map doesn't means only Walls and Lights, I passed this stage.

TankBeef
Average
Posts: 75
Joined: Tue Apr 13, 2021 12:56 am

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by TankBeef » Thu Apr 29, 2021 10:53 pm

sektor2111 wrote:
Thu Apr 29, 2021 10:31 pm
For me a good map doesn't means only Walls and Lights, I passed this stage.
Yes, I agree. A lot of time and dedication is needed to design those "nice walls and lights" though. But yes, also to get the map to a playable state without bugs and crashes, or at least reduced to the minimum. And btw, some of the maps also have the double speed mutator, which I enjoy very much.
Btw, I also opened this report some weeks ago https://github.com/OldUnreal/UnrealTour ... issues/302 , and 4 days ago it happened again, and I could finally upload the log. On some matches I get a sudden lag for a few seconds, and then it recovers, but then the music plays twice as fast until the end. It is similar to when you exit to the menu during a match, and then the music does that, but I think that was fixed with the new patch. Does anyone else have this issue?

User avatar
Neon_Knight
Experienced
Posts: 146
Joined: Wed Apr 27, 2011 1:31 pm
Location: Junín (BA - Argentina)

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by Neon_Knight » Sat May 01, 2021 1:01 am

From the Last Post Standing thread:
Gustavo6046 wrote:
Fri Apr 30, 2021 10:24 pm
Well, I've always known about Feign Death but since I play botmatches 99% of the time I never got quite a lot out of it.
OjitroC wrote:
Fri Apr 30, 2021 11:19 pm
You knew you could fire rockets whilst feigning death?
There are some proposals for removing the Feign Death bug. If you really give a damn about the bug NOT disappearing, go to the relevant Github issues and discuss them.

https://github.com/OldUnreal/UnrealTour ... issues/360

https://github.com/OldUnreal/UnrealTour ... issues/361

Personally? I never knew about the bug until today, and I understand Good Bad Bugs is a thing. And I can't really care less, but I know from experience in another game that removing certain quirks can (and more often than not, WILL) lead to outrage, especially if they give actual advantages.
Official (?) U1 v227/UT v469 .int and spanish localization fixer/maintainer. - Unreal Wiki
"Practice good sportsmanship. You were a n00b once, too." - UT3 Loading Screen
"Level Designers are 1 part architect, 1 part artist, 1 part game designer, and 1 part beta tester!" - Cliff Bleszinski
"The ratio of critics to creators is something like 10,000:1. The ratio of good critics to bad: 1:10,000 (where 'good' means 'helps advancing the art')." - Fast Eddie, TVTropes
"The projects that never start are the projects with the "idea man" as the leader." - Brandon "GreenMarine" Reinhart

CPan
Novice
Posts: 14
Joined: Sat Mar 10, 2012 5:28 am

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by CPan » Sat May 01, 2021 5:13 am

This line bothers me...

Code: Select all

log("ERROR! Function IsRelevant::"$class$".Team is greater than 1 and must always be 1 or 0!");
I mean 1 is equal to 0! Is this programmer humor like the coconut.jpg thing I've been seeing on Reddit?
CPan

User avatar
OjitroC
Godlike
Posts: 2420
Joined: Sat Sep 12, 2015 8:46 pm

Re: ◄► Unreal Tournament v469b Patch Release ◄►

Post by OjitroC » Sat May 01, 2021 9:26 am

CPan wrote:
Sat May 01, 2021 5:13 am
This line bothers me...

Code: Select all

log("ERROR! Function IsRelevant::"$class$".Team is greater than 1 and must always be 1 or 0!");
I mean 1 is equal to 0! Is this programmer humor like the coconut.jpg thing I've been seeing on Reddit?
Context is everything - this is from a team trigger meant to work only in Assault and only with two teams (0=Red and 1=Blue). That line is text to be printed to the log if the trigger is used in a map where there can be/are more than two teams (more than 0=Red and 1=Blue, so with team(s) 2=Green and/or 3=Gold).