Main

Forums

Wiki

Downloads

Tutorials

Walkthrough

Unreal-netiquette

Links

Submit-News

Oldunreal's hosted:
UnrealReference

Usermaps

Real-CTF

Donate for Oldunreal:

Oldunreal Donation
Oldunreallogo
  Welcome, Guest. Please Login or Register
 
  HomeHelpSearchLoginRegister  
 
 
Pages: 1 2 3 
RTNP: Inside UMS Prometheus (Read 4622 times)
Awergh
YaBB Newbies
*
Offline


Oldunreal member

Posts: 12
RTNP: Inside UMS Prometheus
02/06/12 at 06:42:09
 
So I should of posted this ages ago but I forgot/lazy

I'm not sure if this is a bug with RTNP or 227h or what (I hadn't played RTNP previously to know) but I had real difficulty with the part where the soldiers beam down I had to keep doing that bit because I would kill the first wave of soldiers and and then the next wave would not show up so I'd reload and eventually get the second wave and be stuck with no third wave.

I hope that makes sense I have the saves still if that would help. I couldn't see any threads for RTNP so I assumed it hasn't been posted if it is a bug and I couldn't see a better place to put it.
Back to top
 
 
IP Logged
 
Smirftsch
YaBB Administrator
******
Offline



Posts: 5488
at home
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #1 - 02/06/12 at 07:14:37
 
especially this scene has been tested dozens of times due to an other bug- but this problem didn't come up so far. Note that the next wave of marines will only come if all other marines are killed- and they hide sometimes inside the ship. Aside this, no ideas at the moment.
Back to top
 

Sometimes you have to lose a fight to win the war.
WWW WWW Smirftsch 52832995  
IP Logged
 
Awergh
YaBB Newbies
*
Offline


Oldunreal member

Posts: 12
Re: RTNP: Inside UMS Prometheus
Reply #2 - 02/06/12 at 07:52:40
 
Its possible I missed the marines and they were hiding somewhere I didn't look because I did eventually get it, maybe I should check my saves and have a look.
Back to top
 
 
IP Logged
 
Awergh
YaBB Newbies
*
Offline


Oldunreal member

Posts: 12
Re: RTNP: Inside UMS Prometheus
Reply #3 - 02/06/12 at 08:41:22
 
I had another try with my save and killed 3 marines outside the ship control room thing on the top of the ship and no more marines beamed down even though I did look for them thoroughly I'm sure.

On a second attempt I killed 3 marines inside the room and then the next lot beamed down and I killed them out side the room on the top of the ship and no more beamed down.

I cant see anywhere to attach a file so I'll just upload it in case it can help.
http://www.mediafire.com/?q27r7d8cf1dfccz
Back to top
 
 
IP Logged
 
Smirftsch
YaBB Administrator
******
Offline



Posts: 5488
at home
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #4 - 02/06/12 at 08:45:28
 
iirc it should be at least 4 Marines- sometimes it happens one falls down and dies so you maybe see only 3, but its more than 3 in any case. Gonna check the save Smiley
Back to top
 

Sometimes you have to lose a fight to win the war.
WWW WWW Smirftsch 52832995  
IP Logged
 
[]KAOS[]Casey
Oldunreal MasterPoster
******
Offline


nedm

Posts: 2893
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #5 - 02/06/12 at 18:27:12
 
Use viewclass pawn, should show you where they are
Back to top
 
 
IP Logged
 
Awergh
YaBB Newbies
*
Offline


Oldunreal member

Posts: 12
Re: RTNP: Inside UMS Prometheus
Reply #6 - 02/07/12 at 01:33:49
 
Ok I tried again killed 3 then 3 and tried viewclass pawn and it showed me some blobs and spiders (or whatever they are called) but no marines. I did after all eventually finish this level but I don't know why sometimes they show up and sometimes they don't.
Back to top
 
 
IP Logged
 
Smirftsch
YaBB Administrator
******
Offline



Posts: 5488
at home
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #7 - 02/07/12 at 16:29:41
 
ok, tried your savegame with 227h, there were 3 waves of 3 marines, shot'em and the way was free. So looks all fine here. At the moment no idea.
Back to top
 

Sometimes you have to lose a fight to win the war.
WWW WWW Smirftsch 52832995  
IP Logged
 
Awergh
YaBB Newbies
*
Offline


Oldunreal member

Posts: 12
Re: RTNP: Inside UMS Prometheus
Reply #8 - 02/08/12 at 05:24:42
 
Hmm well sometimes they spawn and sometimes they don't
Maybe I will try on another computer and see if I can reproduce it there or not.
Back to top
 
 
IP Logged
 
Tomaso
Junior Member
**
Offline


Oldunreal member

Posts: 92
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #9 - 12/14/12 at 19:21:36
 
I just encountered this bug with v227i.

Only three marines appears in the first wave.
After finishing them off, nothing more happens..
The second wave never appears, leaving me unable to complete the map.
I used viewclass pawn to see if there were more marines hiding somewhere, but the only remaining enemies were the spiders inside the cave at the map's exit.

I tried loading the map directly, and summon some weapons to see if the bug could be reproduced, but then everything worked as expected.
Every time I start playing from my savegame though (saved right before triggering the first wave of marines), the bug takes effect!
Back to top
 
 
IP Logged
 
Smirftsch
YaBB Administrator
******
Offline



Posts: 5488
at home
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #10 - 12/15/12 at 08:14:43
 
this bug was already reported and should be fixed in 227i. Tried and verified a couple of times. Is it possible this savegame is from 227h yet?
Back to top
 

Sometimes you have to lose a fight to win the war.
WWW WWW Smirftsch 52832995  
IP Logged
 
Tomaso
Junior Member
**
Offline


Oldunreal member

Posts: 92
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #11 - 12/15/12 at 08:34:37
 
Smirftsch wrote on 12/15/12 at 08:14:43:
Is it possible this savegame is from 227h yet?

No. This is a v227i savegame.
..I did a fresh install of Unreal and installed v227i right after.

Here's the save:
http://www.mediafire.com/?wcvqh4nz76j4pu1/
Back to top
 
 
IP Logged
 
Tomaso
Junior Member
**
Offline


Oldunreal member

Posts: 92
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #12 - 12/15/12 at 09:49:21
 
I've now discovered something interesting:
The bug is somehow related to the use of your weapons..
If I take out all the marines just by using the rocket launcher, then the bug takes hold and the second wave of marines never appear.
But if I switch weapon once, and fire off a shot, then the next wave of marines usually appear like they should!
..I use the word "usually" because I tried it once where I swithed to the ASMD, and the second wave of marines still didn't appear, but most often this method seems to work.
Back to top
« Last Edit: 12/15/12 at 10:03:22 by Tomaso »  
 
IP Logged
 
Smirftsch
YaBB Administrator
******
Offline



Posts: 5488
at home
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #13 - 12/15/12 at 10:02:11
 
if you restart the map once you died it works flawlessly too. Very weird. As said, we tried this many times with different testers and this never happened (anymore).
Back to top
 

Sometimes you have to lose a fight to win the war.
WWW WWW Smirftsch 52832995  
IP Logged
 
Tomaso
Junior Member
**
Offline


Oldunreal member

Posts: 92
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #14 - 12/15/12 at 10:03:31
 
I did some further testing, and it seems that the combat assault rifle is the key to avoiding this bug..
When using this weapon, the bug never happens!
Back to top
 
 
IP Logged
 
skaarjtrooper
YaBB Newbies
*
Offline


Oldunreal member

Posts: 2
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #15 - 04/28/13 at 06:30:29
 
Sorry to bump this old thread, but I'm using version 227i and I'm also having this problem.

Once the marines stop coming, using the viewclass pawn command in console, I can see every AI entity in the game, and myself, but no marines.

After some messing around, I tried the Assault rifle trick and it seems to work. Save before the marines first start to beam down, then only fight them with the Assault rifle and the sequence should go through fine.

But if you saved after that (I did, it was a tough fight), and the marines stop beaming down, you can always pull up the console and type ghost so you can noclip your way through the rocks. Once you are past the rocks, save your game again, then load it up, and you should be past the rocks and the ghost cheat is no longer in effect.

Just my advice for a workaround on this problem for other players that might stumble upon this.

Back to top
 
 
IP Logged
 
[]KAOS[]Casey
Oldunreal MasterPoster
******
Offline


nedm

Posts: 2893
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #16 - 04/28/13 at 08:49:45
 
The command "walk" will cancel ghost, by the way.
Back to top
 
 
IP Logged
 
Masterkent
YaBB Newbies
*
Offline


Oldunreal member

Posts: 27
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #17 - 04/28/13 at 15:40:44
 
The root of the issue is in function Upak.SpaceMarine.PostBeginPlay().

Code:
	if( !Level.Game.bDeathMatch && !(string(Outer.Name)~="CrashSite2") || Level.Netmode != NM_Standalone && Level.Game.IsA('CoopGame'))
	{
		if( PlayerReplicationInfo!=None )
		{
			PlayerReplicationInfo.Destroy();
			PlayerReplicationInfo = None;
		}
		AttitudeToPlayer = ATTITUDE_Hate;
		bIsPlayer = False;
		Level.Game.bTeamGame = False;
		CombatStyle = 1;
	} 


When the game type isn't DeathMatch and the level's name isn't "CrashSite2" (which is True for saved games), it assigns value False to the bIsPlayer property.

When a SpaceMarine is died, we have a call to function Died(), which contains the following lines:

Code:
	if ( Gibbed(damageType) )
	{
		SpawnGibbedCarcass();
		if ( bIsPlayer )
			HidePlayer();
		else
			Destroy();
	}
	if ( RemoteRole == ROLE_AutonomousProxy )
		ClientDying(DamageType, HitLocation);
	PlayDying(DamageType, HitLocation);
	GotoState('Dying'); 


If bIsPlayer == False and a SpaceMarine is gibbed by something powerful (e.g. by amplified ASMD shot or ASMD combo) then Destroy() is called and GotoState('Dying') will not change the state to 'Dying', because the object will be destroyed.

During normal execution bIsPlayer shall be True, then GotoState('Dying') changes the state to 'Dying', then the respective function BeginState() is called:

Code:
	function BeginState()
	{
		if( Weapon != none )
			Weapon.Destroy();
		SetTimer(0, false);
		Enemy = None;
		AmbushSpot = None;
		bFire = 0;
		bAltFire = 0;
		if( Weapon != none )
			Weapon.AmmoType.AmmoAmount = Weapon.Default.AmmoType.AmmoAmount - Rand( 4 );
		if( MarineBeamController != none )
			MarineBeamController.SubtractMarine( Self );
		bHidden = true;
		SpawnCarcass();
		if( !Level.Game.IsA( 'MarineMatch' ) )
			Destroy();
	} 


then UPak.MarineWaveInfo.SubtractMarine is called:

Code:
function SubtractMarine( SpaceMarine DeadMarine )
{
	TotalMarines--;

	if( TotalMarines <= 0 )
	{
		//log( "Less than or = to 0 marines remaining." );

		if( BeamDelay > 0.0 )
			Controller.FinishWave( WaveNumber, BeamDelay );
		else Controller.FinishWave( WaveNumber );
		Destroy();
	}
} 


then if we killed all SpaceMarines in the "wave", potential next waves will be considered in UPak.MasterWaveInfo.FinishWave, and so on.

BTW, Unreal v226b doesn't have such a problem.

One possible resolution for v227i is to remove the branch

Code:
if( !Level.Game.bDeathMatch && !(string(Outer.Name)~="CrashSite2") || Level.Netmode != NM_Standalone && Level.Game.IsA('CoopGame'))
.... 


from Upak.SpaceMarine.PostBeginPlay() and modify function UnrealShare.GoopGame.ReduceDamage as follows:

Code:
function int ReduceDamage(int Damage, name DamageType, pawn injured, pawn instigatedBy)
{
	if ( bNoFriendlyFire && (instigatedBy != None)
			&& instigatedBy.bIsPlayer && injured.bIsPlayer && (instigatedBy != injured)
			&& (!instigatedBy.IsA('Bots') || Bots(instigatedBy).AttitudeTo(injured) >= ATTITUDE_Friendly)
			&& (!injured.IsA('Bots') || Bots(injured).AttitudeTo(instigatedBy) >= ATTITUDE_Friendly) )
		return 0;

	if ( (DamageType == 'Fell') && bSpecialFallDamage )
		return Min(Damage, 5);

	return Super.ReduceDamage(Damage, DamageType, injured, instigatedBy);
} 

Back to top
« Last Edit: 04/28/13 at 18:45:26 by Masterkent »  
 
IP Logged
 
Smirftsch
YaBB Administrator
******
Offline



Posts: 5488
at home
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #18 - 04/29/13 at 08:05:37
 
Very nice finding. It explains also why it was so hard to track and verify.

Code:
if( !Level.Game.bDeathMatch && !(string(Outer.Name)~="CrashSite2") || Level.Netmode != NM_Standalone && Level.Game.IsA('CoopGame')) 



this one we added/changed for some other fix, if I only could remember now what it was...

I'd prefer not to change UnrealShare, since you never know what else depends on it and may affect some mod. Just should avoid to call Destroy.
Back to top
 

Sometimes you have to lose a fight to win the war.
WWW WWW Smirftsch 52832995  
IP Logged
 
Masterkent
YaBB Newbies
*
Offline


Oldunreal member

Posts: 27
Gender: male
Re: RTNP: Inside UMS Prometheus
Reply #19 - 04/29/13 at 15:18:04
 
Smirftsch wrote on 04/29/13 at 08:05:37:
Code:
if( !Level.Game.bDeathMatch && !(string(Outer.Name)~="CrashSite2") || Level.Netmode != NM_Standalone && Level.Game.IsA('CoopGame')) 



this one we added/changed for some other fix, if I only could remember now what it was... [/code]

The former condition in the disjunction makes Crashsite2 a magic map. The reason for this strange thing is probably also magic Smiley Harcoded map names should be used only in exceptional cases for broken maps and the rationale should be well-documented. Since this method doesn't handle saved games properly, it should not be used here anyway.

The latter condition in the disjunction is most likely aimed to resolve 3 issues:

1) the issue with bNoFriendlyFire in cooperative game (when SpaceMarines and PlayerPawns can't kill each other). Non-friendly bots can be detected via AttitudeTo. I think that it's obvious enough that such bots should not be considered as team-mates for regular players, especially if the attitude is ATTITUDE_Hate;

2) improper name 'Player' in "killed by" messages and the presence of SpaceMarines in score table (in cooperative game again). This can be fixed by adding

Code:
	if (Level.Netmode != NM_Standalone && Level.Game.IsA('CoopGame')
		&& PlayerReplicationInfo != None)
	{
		PlayerReplicationInfo.Destroy();
		PlayerReplicationInfo = None;
	} 


in UPak.SpaceMarine.PostBeginPlay.

3) improper score counting in Coop: when a PlayerPawn kills a SpaceMarine, the player's score is reduced (-1 is counted). This can be solved by changing UnrealShare.GoopGame.Killed to:

Code:
function Killed(pawn killer, pawn Other, name damageType)
{
	super.Killed(killer, Other, damageType);
	if ( Killer!=None && Killer.PlayerReplicationInfo!=None &&
		(Other.IsA('PlayerPawn')
			|| Other.IsA('Bots') && Bots(Other).AttitudeTo(killer) >= ATTITUDE_Friendly
			|| Other.IsA('ScriptedPawn') && ScriptedPawn(Other).AttitudeTo(killer) >= ATTITUDE_Friendly
			|| Other.IsA('Nali')) )
	{
		killer.PlayerReplicationInfo.Score -= 2;
	}
} 


Alternatively, it's possible to override ScoreKill from Engine.GameInfo in UnrealShare.CoopGame

Quote:
I'd prefer not to change UnrealShare, since you never know what else depends on it and may affect some mod

Could you describe any _reasonable_ model that would rely on existence of teams consisting of non-friends?

BTW, while you're concerned about abstract potentially existing mods, I can tell how the aforementioned assignment bIsPlayer = False breaks _classic_ RTNP gameplay right now: SpaceMarines with bIsPlayer == True can affect Triggers with TriggerType == TT_PlayerProximity, therefore, on Crashsite2 they can use the lift (see Trigger38) and can die being pushed away from the ship (see Trigger36 which activates SpecialEvent8 which kills the instigator). SpaceMarines with bIsPlayer == False do not affect such triggers. If a survived SpaceMarine hides under the ship, we almost have no chances to kill him there and end the level without special console commands.
Back to top
 
 
IP Logged
 
Pages: 1 2 3 
(Moderator: Smirftsch)