MH: Removing a playerstart from map before it starts

Discussions about Coding and Scripting
Aldebaran
Masterful
Posts: 672
Joined: Thu Jan 28, 2016 7:30 pm

MH: Removing a playerstart from map before it starts

Post by Aldebaran » Tue Jan 22, 2019 10:47 pm

I want to fix a map with my monster hunt mod map patcher function. For this I want to delete (or disable) some playerstarts so players never will join or restart the game at these places.

I tried this in function PostBeginPlay() of MonsterHunt.uc:

Code: Select all

    if (MapName ~= "MH-Testmap")
    {
        foreach AllActors(class'Actor', A, 'PlayerStart6')
        {
            A.Destroy();
        }
        foreach AllActors(class'Actor', A, 'PlayerStart7')
        {
            A.Destroy();
        }
    }
But players can still join there.
Anybody knows a solution for it?

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

Re: MH: Removing a playerstart from map before it starts

Post by sektor2111 » Tue Jan 22, 2019 11:05 pm

1. Usually a PlayerStart is bStatic = True. Then you can not delete it without hacking.
2. If you delete it and a monster grabs the madness to look for you through the map, the server will crash from DevPath. It's not a good idea to delete a navigationpoint.

If you insist to remove a navigationpoint you have to remove it first from the navigation network records. This can be done only with XC_Engine for the moment, in order to keep the rest of navigation network in good state.

In a plain primitive server.
I would go for "ruin" solution. Move it properly (hacking required for above reason 1.), you can disable it and setup a 'WC' tag or something like that.

Crapping all - (hacked compilation):
Set Level.NavigationPointList = None
Set this PlayerStart bStatic=False;
Destroy it.

AlternatePath
Almighty Console (UScript - ConsoleCommand) for above stunts - Destroy that mess.

Aldebaran
Masterful
Posts: 672
Joined: Thu Jan 28, 2016 7:30 pm

Re: MH: Removing a playerstart from map before it starts

Post by Aldebaran » Wed Jan 23, 2019 12:23 am

sektor2111 wrote:Move it properly (hacking required for above reason 1.), you can disable it and setup a 'WC' tag or something like that.
Sorry, but I could need some more explanation for this :-)

With "move" you mean to move the playerstart to another place with other coordinates? I could move them near the other playerstarts that should be still available?
How can I disable a playerstart?
How can I set another tag for a playstart?

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

Re: MH: Removing a playerstart from map before it starts

Post by Barbie » Wed Jan 23, 2019 12:58 am

Some examples from my MapPatcher:

Code: Select all

case "MH-Agony":
	if (FindActorByName('PlayerStart1', A, 'PlayerStart')) // placed in the void
	{
		PlayerStart(A).bEnabled = false;
		PatchCount++;
	}

case "MH-Hydro16-fixed":
foreach AllActors(class'Actor', A, 'PlayerStart') // #=2*19
	if (PlayerStart(A).TeamNumber != 0)
	{
		PlayerStart(A).bEnabled = false;
		PatchCount++;
	}

case "MH-UM-The3Crystals(b)]13[":
	if (FindActorByName('PlayerStart5', A, 'PlayerStart'))
	{
		PlayerStart(A).bEnabled = false; // see log: "Couldn't spawn player at MH-UM-The3Crystals(b)]13[.PlayerStart5"
		PatchCount++;
	}
I'm not sure if you can change the location of a static Actor. I solved that "moving" by disabling existing PlayerStarts and spawning new ones at the location I like:

Code: Select all

function int PatchMap_MH_IslandInvasion() {
local Actor A;
local int PatchCount;

	foreach AllActors(class 'Actor', A, 'PlayerStart')
		switch(String(PlayerStart(A).Name))
		{
			case "PlayerStart0":
			case "PlayerStart1":
			case "PlayerStart3":
			case "PlayerStart6":
			case "PlayerStart7":
			case "PlayerStart9":
			case "PlayerStart8":
			case "PlayerStart11":
				PlayerStart(A).bEnabled = False;
				PatchCount++;
		}
	if (SpawnActorToList(PlayerStartClassNotStatic, LogLevel, , , vect(1242, -2566, -2311)) != None)
		PatchCount++;
	...
"PlayerStartClassNotStatic" is the following:

Code: Select all

class PlayerStartSB extends PlayerStart;

defaultproperties {
	bAutoBuilt=false
	bStatic=false
	bCollideWorld=true
	bCollideWhenPlacing=true
	// uncomment the following for visual debugging:
	// bHidden=false
	// Mesh=LodMesh'UnrealShare.Pottery0M'
	// DrawType=DT_Mesh
}
Aldebaran wrote:How can I disable a playerstart?
Find the PlayerStart Actor and do

Code: Select all

PlayerStart(A).bEnabled = False;
Aldebaran wrote:How can I set another tag for a playstart?
Find the PlayerStart Actor and do

Code: Select all

PlayerStart(A).Tag = 'NewTag';
For finding an Actor I use

Code: Select all

function bool FindActorByName(name ActorName, out Actor FoundActor, optional name ActorTag) {
local Actor A;

	foreach AllActors(class'Actor', A, ActorTag)
		if (A.Name == ActorName)
		{
			FoundActor = A;
			logger(Log_Debug, "FindActorByName", ActorName @ "found");
			return true;
		}
	logger(LOG_Error, "FindActorByName", ActorName @ "not found");
	return false;
}
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett

Aldebaran
Masterful
Posts: 672
Joined: Thu Jan 28, 2016 7:30 pm

Re: MH: Removing a playerstart from map before it starts

Post by Aldebaran » Wed Jan 23, 2019 1:57 am

Thank you, Barbie. It seems the map I want to patch has it's own playerstartclass.

Either with...
if (FindActorByName('TLFPlayerStart0', A, 'PlayerStart'))
nor with...
if (FindActorByName('TLFPlayerStart0', A, 'TLFPlayerStart'))
I can find any playerstarts.

Also all playerstarts are connected with an actor (for triggering?), perhaps this can be a problem too.
Last edited by Aldebaran on Mon Jan 28, 2019 2:51 pm, edited 1 time in total.

Higor
Godlike
Posts: 1777
Joined: Sun Mar 04, 2012 6:47 pm

Re: MH: Removing a playerstart from map before it starts

Post by Higor » Wed Jan 23, 2019 3:14 am

If your server has XC_Engine, you can use a private mutator I made to script maps, no need to write any code.
Hit me up if you're interested.
Spoiler
Show
[MonsterHunt,MH-LongCorridor2006*]
AddedHealthOnSpawn=50
DamageToHealth_MAX=500
DamageToAmmoPct_MAX=100
AutoDamageToHealth=60
AutoDamageToAmmoPct=1500
AutoBossToDamageBonus=4000
timer=3 Cmd=mutate addbotzfaction xc_force 1 1
timer=4 Cmd=mutate addbotzfaction xc_force 1 1
timer=5 Cmd=mutate addbotzfaction xc_force 1 1
timer=6 Cmd=mutate addbotzfaction xc_force 1 1
timer=7 Cmd=mutate addbotzfaction xc_force 1 1
timer=8 Cmd=mutate addbotzfaction xc_force 1 1
timer=9 Cmd=mutate addbotzfaction xc_force 1 1
timer=10 Cmd=mutate addbotzfaction xc_force 1 1
timer=11 Cmd=set botz enemy none
Cmd=set monsterhunt minplayers 0
tag=GasbagTrigger01 delay=3 cmd=mutate gunloc aegor FV_Weapons.LMinigun
tag=SlithTrigger01 delay=3 cmd=mutate gunloc global unreali.toxinsuit
tag=MercenaryEliteTrigger01 delay=3 cmd=mutate gunloc erag FV_Weapons.ApeCannon
tag=MercenaryEliteTrigger01 delay=3 cmd=mutate gunloc rambo FV_Weapons.HellFireCannon
tag=MercenaryEliteTrigger01 delay=3.1 cmd=set apecannon airating 1.1
tag=MercenaryEliteTrigger01 delay=3.1 cmd=set hellfirecannon airating 1.1
tag=MercenaryEliteTrigger01 delay=1500 cmd=mutate gunloc scorpion FV_Weapons.AsmdPulseRifle
GameTime=1300 cmd=mutate gunloc Higor FV_Weapons.AdvancedShockRifle
GameTime=1301 cmd=set lcAdvancedShockRifle airating 1.1
GameTime=1301 cmd=set AdvancedShockRifle airating 1.1
GameTime=2000 cmd=mutate gunloc Raven FV_Weapons.SiegeInstagibRifle
GameTime=2001 cmd=set lcSiegeInstagibRifle airating 1.1
GameTime=2001 cmd=set SiegeInstagibRifle airating 1.1
GameTime=1000 cmd=mutate gunloc NegroVictor Botpack.SniperRifle
GameTime=1000 cmd=mutate gunloc Patcher Botpack.Minigun2
GameTime=1000 cmd=mutate gunloc Reaper Botpack.Armor2
GameTime=1000 cmd=mutate gunloc Reaper Botpack.ThighPads
Tag=PupaeCreatureFactory03 Count=512 Cmd=causeevent PupaeSkip
Tag=PupaeCreatureFactory04 Count=512 Cmd=causeevent PupaeSkip
Tag=SlithCreatureFactory03 Count=512 Cmd=causeevent SlithSkip
Tag=SlithCreatureFactory04 Count=512 Cmd=causeevent SlithSkip
Tag=GasbagCreatureFactory03 Count=512 Cmd=causeevent GasbagSkip
Tag=GasbagCreatureFactory04 Count=512 Cmd=causeevent GasbagSkip
Tag=MercenaryCreatureFactory03 Count=512 Cmd=causeevent MercenarySkip
Tag=MercenaryCreatureFactory04 Count=512 Cmd=causeevent MercenarySkip
Tag=SkaarjLordCreatureFactory03 Count=512 Cmd=causeevent SkaarjSkip
Tag=SkaarjLordCreatureFactory04 Count=512 Cmd=causeevent SkaarjSkip
Tag=BehemothCreatureFactory03 Count=512 Cmd=causeevent BruteSkip
Tag=BehemothCreatureFactory04 Count=512 Cmd=causeevent BruteSkip
Tag=SquidCreatureFactory01 Count=50 Cmd=causeevent SquidSkip
Tag=SquidCreatureFactory02 Count=1024 Cmd=causeevent SquidSkip
Tag=PupaeSkip Count=2 Cmd=summon gunlocteleporter location=(X=5760,Y=-28126,Z=-29144) tag=TeleChain1_S url=TeleChain1_E skin=TranglowG
Tag=SlithSkip Count=2 Cmd=summon gunlocteleporter location=(X=26118,Y=-28216,Z=-29144) tag=TeleChain2_S url=TeleChain2_E skin=TranglowG
Tag=GasbagSkip Count=2 Cmd=summon gunlocteleporter location=(X=25856,Y=-19372,Z=-22869) tag=TeleChain3_S url=TeleChain3_E skin=TranglowG
Tag=MercenarySkip Count=2 Cmd=summon gunlocteleporter location=(X=26590,Y=-12652,Z=-17622) tag=TeleChain4_S url=TeleChain4_E skin=TranglowG
Tag=SkaarjSkip Count=2 Cmd=summon gunlocteleporter location=(X=26624,Y=-3966,Z=-11928) tag=TeleChain5_S url=TeleChain5_E skin=TranglowG
Tag=BruteSkip Count=2 Cmd=summon gunlocteleporter location=(X=26750,Y=3122,Z=-7127) tag=TeleChain6_S url=TeleChain6_E skin=TranglowG
Tag=QuidSkip Count=2 Cmd=summon gunlocteleporter location=(X=27070,Y=16510,Z=-3544) tag=TeleChain7_S url=TeleChain1_S skin=TranglowG
Cmd=summon gunlocteleporter location=(X=26118,Y=-27334,Z=-29144) tag=TeleChain1_E skin=Tranglow
Cmd=summon gunlocteleporter location=(X=25856,Y=-18510,Z=-22869) tag=TeleChain2_E skin=Tranglow
Cmd=summon gunlocteleporter location=(X=26210,Y=-12652,Z=-17622) tag=TeleChain3_E skin=Tranglow
Cmd=summon gunlocteleporter location=(X=26624,Y=-2944,Z=-11928) tag=TeleChain4_E skin=Tranglow
Cmd=summon gunlocteleporter location=(X=26750,Y=3530,Z=-7127) tag=TeleChain5_E skin=Tranglow
Cmd=summon gunlocteleporter location=(X=26176,Y=16510,Z=-3544) tag=TeleChain6_E skin=Tranglow


[MonsterHunt,MH-LostInTime*]
AddedHealthOnSpawn=0
AutoDamageToHealth=120
AutoDamageToAmmoPct=2500
AutoBossToDamageBonus=2500
Timer=3 Cmd=mutate addbotzfaction xc_force 1 1
Timer=4 Cmd=mutate addbotzfaction xc_force 1 1
Timer=5 Cmd=mutate addbotzfaction xc_force 1 1
Cmd=set monsterhunt minplayers 4
tag=music2 delay=1 cmd=mutate addbotz BarneyKiller 2 7 5
tag=music2 delay=1 cmd=mutate addbotz DinoCapper 2 7 5
tag=music2 delay=5 cmd=mutate gunloc BarneyKiller FV_Weapons.ApeCannon
tag=music2 delay=5 cmd=mutate gunloc DinoCapper FV_Weapons.HellfireCannon
tag=music2 delay=3500 cmd=mutate gunloc aegor FV_Weapons.LMinigun

[MonsterHunt,MH-(_@_)_MJD_FIX]
AutoDamageToAmmoPct=4000
DamageToHealth_MAX=300
Timer=3 Cmd=mutate addbotzfaction xc_force 1 1
Timer=4 Cmd=mutate addbotzfaction xc_force 1 1
Timer=5 Cmd=mutate addbotzfaction the_corrupt 2 0
cmd=set bigrock lifespan 6
cmd=set monsterhunt minplayers 0
cmd=set botz_liftcenter extracost 1000
cmd=set rainbowshockrifle airating 2
cmd=set missilegun04 airating 1.5
cmd=set udamage charge 600
cmd=killall steelbox
tag=rsr_cnt cmd=botsay Rainbow rifle button pressed
tag=rsr_door cmd=botsay Ranbow rifle path unlocked
tag=RED_door delay=2 cmd=botsay Headed towards the bazooka
tag=Lucky3_eve cmd=botsay Door to Queen unlocked
tag=door20 cmd=botsay Door to outer field unlocked
tag=halldoor cmd=botsay Door to Titan hall unlocked
tag=titan_door cmd=botsay Door to Mercenary hall unlocked
tag=titan_ori1 cmd=botsay Titan unleashed

[MonsterHunt,MH-Annihilation]
Cmd=set monsterhunt minplayers 3

[MonsterHunt,MH-Krogaar(v2)]
Cmd=set monsterhunt minplayers 3

[MonsterHunt,MH-HellFire*]
Cmd=set monsterhunt minplayers 3

[MonsterHunt,MH-RuinsOfHarobed*]
AutoDamageToAmmoPct=5000

[MonsterHunt,MH-ShootingGuys*]
DamageToHealth_MAX=3000
DamageToAmmoPct_MAX=100
AutoDamageToHealth=500
AutoDamageToAmmoPct=20000
AutoBossToDamageBonus=5000
cmd=set warfly bisboss 0

[MonsterHunt,MH-d1_*]
cmd=mutate gunloc preload MonsterHunt.OLDPistol
DefaultWeapon=MonsterHunt.OLDPistol

[MonsterHunt,MH-d2_*]
cmd=mutate gunloc preload MonsterHunt.OLDPistol
DefaultWeapon=MonsterHunt.OLDPistol

[MonsterHunt,MH-d3_*]
cmd=mutate gunloc preload MonsterHunt.OLDPistol
DefaultWeapon=MonsterHunt.OLDPistol

[MonsterHunt,MH-d4_*]
cmd=mutate gunloc preload MonsterHunt.OLDPistol
DefaultWeapon=MonsterHunt.OLDPistol

[MonsterHunt,MH-d5_*]
cmd=mutate gunloc preload MonsterHunt.OLDPistol
DefaultWeapon=MonsterHunt.OLDPistol

[MonsterHunt,MH-SkaarjTower*]
Timer=4 Cmd=mutate addbotzfaction xc_force 1 1
Timer=5 Cmd=mutate addbotzfaction xc_force 1 1
Cmd=set monsterhunt minplayers 4
Cmd=set general bIsBoss 1

[MonsterHunt,MH-CregorV2]
Cmd=modifyproperty mover2 event secret1
Cmd=modifyproperty mover2 movetime 2.7
Cmd=modifyproperty mover3 event secret1
Cmd=modifyproperty mover27 event secret1
ImageImage
Image unreal://23.111.157.138:7777
Image unreal://46.228.199.205:7788

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

Re: MH: Removing a playerstart from map before it starts

Post by Barbie » Wed Jan 23, 2019 11:25 am

Aldebaran wrote:I can find any playerstarts.
Of course you have to open the map in UnrealEd and pick up the name of the Actor(s): Property Window > Object > Name, and the Tag from Property Window > Events > Tag.

PS: Is it the map TheLastFortressFinal? Then look for example for Name="TLFPlayerStart7" and Tag="StartToggler".
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett

Aldebaran
Masterful
Posts: 672
Joined: Thu Jan 28, 2016 7:30 pm

Re: MH: Removing a playerstart from map before it starts

Post by Aldebaran » Wed Jan 23, 2019 3:00 pm

With tag "StartToggler" the Playerstarts can be found, but "PlayerStart(A).bEnabled = false;" does not change the behaviour, so in this map it seems not to be possible to do what I want (without XC-Engine...).
Playerstarts TLFPlayerStart0, TLFPlayerStart1, TLFPlayerStart2 and TLFPlayerStart3 from type TLFPlayerStart should be disabled in multiplayer because otherwise it can happen that some players skip the bridge part.
Last edited by Aldebaran on Mon Jan 28, 2019 2:52 pm, edited 1 time in total.

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

Re: MH: Removing a playerstart from map before it starts

Post by sektor2111 » Wed Jan 23, 2019 4:12 pm

Foreach through PlayerStarts Pl
That one <if (string(Pl.Name) ~= "PlayerstartX")> X = whatever nasty one
<Pl.bEnabled = False;>
<Pl.Tag = 'RammedOnDemand'; //Won't respond at triggering any longer for being activated>

For the rest of hacks which are doable I can explain you what is about (privately like) and... I can even send you a small "mutator" sample - ServerActor whatever.
The best way is XC_Engine but if you are not using it this is not such a critical issue.
It can be moved guaranteed, but using another way of doing. And if it can be moved, you can drop it where you need with SetLocation(vect(x,y,z)). x y z being your desired ones.

Trust me this is easy to do. I need only to see map and explain where you want that bad Playerstart to be. Then I can do a ServerActor for you.
As other part, I think it might be advisable to discard paths through it if is about to be moved far - this has to be tested well.
Last edited by sektor2111 on Wed Jan 23, 2019 4:39 pm, edited 1 time in total.

Aldebaran
Masterful
Posts: 672
Joined: Thu Jan 28, 2016 7:30 pm

Re: MH: Removing a playerstart from map before it starts

Post by Aldebaran » Wed Jan 23, 2019 4:35 pm

This code does not help, also the playerstarts are found and code in if-clauses are executed:

Code: Select all

		if (FindActorByName('TLFPlayerStart0', A, 'StartToggler')) 
		{
	    	PlayerStart(A).bEnabled = false;
	    	PlayerStart(A).Tag = 'PSdisabled0';
		}
		if (FindActorByName('TLFPlayerStart1', A, 'StartToggler')) 
		{
	    	PlayerStart(A).bEnabled = false;
	    	PlayerStart(A).Tag = 'PSdisabled1';
		}
		if (FindActorByName('TLFPlayerStart2', A, 'StartToggler')) 
		{
	    	PlayerStart(A).bEnabled = false;
	    	PlayerStart(A).Tag = 'PSdisabled2';
		}
		if (FindActorByName('TLFPlayerStart3', A, 'StartToggler')) 
		{
	    	PlayerStart(A).bEnabled = false;
	    	PlayerStart(A).Tag = 'PSdisabled3';
		}
Perhaps it is a map specific issue...

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

Re: MH: Removing a playerstart from map before it starts

Post by sektor2111 » Wed Jan 23, 2019 4:42 pm

It's not first time when I moved static things, I can do actor for you, just give me some data: Map Playerstart NewLocation.

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

Re: MH: Removing a playerstart from map before it starts

Post by Barbie » Wed Jan 23, 2019 5:03 pm

Aldebaran wrote:Playerstarts TLFPlayerStart0, TLFPlayerStart1, TLFPlayerStart2 and TLFPlayerStart3 from type TLFPlayerStart should be disabled in multiplayer because otherwise it can happen that some players skip the bridge part.
They ARE disabled at game start and they are enabled by Trigger43, which is behind the bridge part, and the initial active PlayerStarts are toggled to inactive. So I cannot see an error in that map setup.

Have a look at these TLFPlayerStarts: If Level.NetMode != NM_StandAlone nothing happens in PreBeginPlay(). Is your function FindPlayerStart() ok?
TLFPlayerStart
Show

Code: Select all

//==============================================================================================================
// TLFPlayerStart
// Triggerable PlayerStart - supporting SP & as many coop gametypes as possible, since some coopgametypes don't
// check playerstarts for bcoopstart first, before using them.
//
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>USAGE<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// to initially enable a playerstart for COOP set bCoopStart, bSinglePlayerStart and bEnabled to True
// to initially disable a playerstart for COOP set those 3 variables to False
// Triggering the PS, will enable or disable it, by inverting the values of those 3 variabes
// setting bSinglePlayerUsage True will enable the playerstart in SP, regardless of the above settings
// setting bSinglePlayerUsage False will disable the playerstart in SP, regardless of the above settings
// the bSinglePlayerUsage variable has no effect in non-SP Modes (Dedic./listen server).
// Triggering the PlayerStart in SP gametypes has no effect, since you're not supposed to respawn anyway.
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//
//==============================================================================================================
class TLFPlayerStart extends PlayerStart;


//Whether the PS is used in SP, regardless of the other settings (bcoopstart, bsingleplayerstart, benabled)
var (TLFPlayerStart) bool bSinglePlayerUsage;

function PreBeginPlay()
{
   Super.PreBeginPlay();

   //SP Mode
   if (Level.NetMode == NM_StandAlone)
   {
      //Enable for singleplayer
      if (bSinglePlayerUsage)
      {
         bEnabled = True;
         bSinglePlayerStart = True;
         //Not necessary
         bCoopStart = True;
         //Triggering has no effect in SP
         Tag = '';
      }
      //Disabled
      else
      {
         bEnabled = False;
         bCoopStart = False;
         bSinglePlayerStart = False;
         Tag = '';
      }
   }
}


function Trigger( actor Other, pawn EventInstigator )
{
   //If we were active, disable
   if (bCoopStart)
   {
      bEnabled = False;
      bCoopStart = False;
      bSinglePlayerStart = False;
   }
   //If we were disabled, activate
   else
   {
      bEnabled = True;
      bCoopStart = True;
      bSinglePlayerStart = True;
   }
}


/*
defaultproperties
{
bSinglePlayerUsage=False
bEnabled=False
bSinglePlayerStart=False
bCoopStart=False
}
What? DON'T GIVE ME THAT LOOK
*/

defaultproperties
{
    bSinglePlayerStart=False
    bCoopStart=False
    bEnabled=False
    RemoteRole=ROLE_None
}
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett

Aldebaran
Masterful
Posts: 672
Joined: Thu Jan 28, 2016 7:30 pm

Re: MH: Removing a playerstart from map before it starts

Post by Aldebaran » Wed Jan 23, 2019 5:21 pm

Barbie wrote:They ARE disabled at game start and they are enabled by Trigger43, which is behind the bridge part, and the initial active PlayerStarts are toggled to inactive. So I cannot see an error in that map setup.
Hm strange... If I start the map and kill myself immediately I skip the long bridge part and respawn after it. Everytime I kill myself I respawn either at mapstart or after the bridge part. Also I deactivated the Lesstele Mutator of sektor2111 for testing, it changes nothing.

Btw the function FindPlayerStart() is not changed in the monster hunt mod in any way. It is used in functions RestartPlayer() and Login() in Monsterhunt.uc that are not changed by me too.
Last edited by Aldebaran on Fri Jan 25, 2019 1:01 pm, edited 1 time in total.

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

Re: MH: Removing a playerstart from map before it starts

Post by sektor2111 » Wed Jan 23, 2019 6:21 pm

LessTele3 whatever has a "known-to-me" bug. In maps with a heavy work at navigation system might do some funky effects spawning people in the back due to a logic timing failure - iterators are grinding wheels here. I solved problem with... patience. Delaying this mutator was more helpful, which means allowing reconfiguring paths and then... deploy new starts. If players are starting game too early, it's their loss. Mutator aims Bot presence killing people when match starts. In other common cases, it works smoothly.

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

Re: MH: Removing a playerstart from map before it starts

Post by sektor2111 » Fri Jan 25, 2019 6:54 pm

I'm glad to see that my small naughty thing is helpful - Problem Solved.

Post Reply