Jump to content

[LE] Teleport player and followers from interior to different exterior cells with doors


Recommended Posts

I got stuck with my sailable Redguard ship and maybe someone can help me with this complicated matter.

 

What I want to do: Teleport player and any follower from an interior cell to two different exterior cells. One is in Skyrim, one in Teia.

 

I have a big sailable ship in my custom worldspace and one in Skyrim with two interior cells, a cabin and a basement. As long as the ship is docked, there is navmesh, so followers can move with the player onboard.

There are two doors and the corresponding door markers that move player and followers inside. Works pretty good.

 

When player sails away with the ship, navmesh stays at the dock, because navmesh is attached to cells and not to objects.

 

The ship doors are moved to a dummy cell while player is sailing, when he stops and drops the anchor, the doors move back to the exact position of the ship and everybody can go inside. This is handled by a script. But when player moves outside again, he falls into the water at the docks and followers, too, because the ship is not there. My conclusion is, the yellow door markers are not attached to the door (only linked) but to the navmesh and can't be moved by script, only the doors can. Makes sense, because of the green rectangle under the door markers. So my efforts to use door markers are senseless.

 

I tried to teleport the player through an activator with a script, but then followers do not teleport with the player.

 

Now my question: How should a script look like, if the player and any follower is teleported from interior to exterior and vice versa? As far as I know Teleport.Enable() does not work from interior to exterior, even if the interior cell is marked as "can teleport from here".

 

Any suggestion is much appreciated.

 

Please be patient with me, if I'm not responding timely, I have a new full time job and not much time anymore. But be sure I will respond. :yes:

Edited by Tasheni
Link to comment
Share on other sites

"My conclusion is, the yellow door markers are not attached to the door"

Exactly.


"I tried to teleport the player through an activator with a script, but then followers do not teleport with the player."

For this you need the lines as follow:



Player.MoveTo(MyTeleMarker)
Game.EnableFastTravel()
Game.FastTravel(MyTeleMarker)


* Why use both 'MoveTo()' and 'FastTravel()'

a) 'MoveTo()' can malfunction, so if one doesn't fire the other will.

b) Follower will teleport ONLY when you use 'EnableFastTravel()' and 'FastTravel()'


Suggestion:

Create a door activator that will handle your 2 teleport markers by a 'Global Variable' which changes according to where the ship is going.

Edited by maxarturo
Link to comment
Share on other sites

Movie night is over... so, I assume that your ship travels by activating some sort of 'Ship Wheel'. If so, here is a script set up of how this should work:
This first script goes on the 'Ship's Wheel' or whatever makes the ship travel to one location to the other.
* I'm also guessing that you already have a script for this (to travel from one location to the other), so your script will need to be modified to insert the script bellow.
GlobalVariable Property ShipTravelGL Auto
Bool Property isTriggered = Fase Auto Hidden
 
AUTO STATE WaitingPlayer
EVENT OnActivate(ObjectReference akActionRef)
      If (akActionRef == Game.GetPlayer())
          GoToState("Working")
          If ( isTriggered == False )
               isTriggered = True
               If ( ShipTravelGL.GetValue() == 0 )
                    ShipTravelGL.SetValue( 1 )
            EndIf
       Else
               isTriggered = False
               ShipTravelGL.SetValue( 0 )
      EndIf
 
          GoToState("WaitingPlayer")
EndIf
ENDEVENT
ENDSTATE
 
STATE Working
ENDSTATE
This one goes in your 'Interior Door Activator' to move from the interior to the exterior part of the ship:
* For the 'TeleMarker01 / 02' you will use 'Heading Markers' that you will place in the outside part of the ship in both locations
Import Game
ObjectReference Property TeleMarker01 Auto
ObjectReference Property TeleMarker02 Auto
GlobalVariable Property ShipTravelGL Auto
 
 
AUTO STATE WaitingPlayer
EVENT OnActivate(ObjectReference akActionRef)
      If (akActionRef == GetPlayer())
          GoToState("Working")
          If ( ShipTravelGL.GetValue() == 0 )
               GetPlayer().MoveTo(TeleMarker01)
               EnableFastTravel()
               FastTravel(TeleMarker01)
      ElseIf ( ShipTravelGL.GetValue() ==  1 )
               GetPlayer().MoveTo(TeleMarker02)
               EnableFastTravel()
               FastTravel(TeleMarker02)
       EndIf
          GoToState("WaitingPlayer")
EndIf
ENDEVENT
ENDSTATE
 
STATE Working
ENDSTATE

 

This one goes in your 'Exterior Doors' of your pre-placed ship's exterior doors activators to move from the exterior to the interior part of your ship:

Import Game
ObjectReference Property InteriorTeleMarker01 Auto
 
 
AUTO STATE WaitingPlayer
EVENT OnActivate(ObjectReference akActionRef)
    If (akActionRef == GetPlayer())
        GoToState("Working")
        GetPlayer().MoveTo(InteriorTeleMarker01)
        EnableFastTravel()
        FastTravel(InteriorTeleMarker01)
        GoToState("WaitingPlayer")
EndIf
ENDEVENT
ENDSTATE
 
STATE Working
ENDSTATE
Edited by maxarturo
Link to comment
Share on other sites

Hi maxarturo, good to have you back!

 

Thank you so much for your scripts and suggestions. I need to go to work now and nexus was eating up my post now twice :mad:

I will check that out after work and explain more, what I have done. Have a nice week :thumbsup:

Link to comment
Share on other sites

What I have now:

 

- ship exterior Skyrim

- ship exterior Teia

- ship interior base

- ship interior cabin

 

- door with script attached, that moves player and followers from exteriors to interiors - works perfect.

- two activators at the interior doors to move player and followers back onboard in Skyrim or Teia - that doesn't work! Player is teleported outside, but not followers. Creation kit wiki discussion states: FastTravel-Game:

 

 

cdcooley:

... I haven't tested, but I suspect that it's travel to or from interiors, that doesn't work.

Terra Nova2:

That explains why people have been saying in the past that they couldn't get this to work at all.

 

My interior cells are not flagged as "Can't travel from here. Is there another way to achieve this?

 

This is my ship activation script, in case somebody is interested in how I get ships to be sailed by player. Credit goes to SuLpHiDe, who created the base of the script. Use freely, but credit SuLpHiDe and me:

Scriptname _Tash_ShipRedguardActivatorScript extends ObjectReference 

;-- Properties --------------------------------------
actor property FrontActor auto	;invisible actor for collision
actor property BackActor auto	;invisible actor for collision
actor property PlayerRef auto	;player

GlobalVariable Property ShipTravelGL Auto

idle property SitAnim auto
idle Property Stop auto

ImageSpaceModifier Property FadeToBlack auto
ImageSpaceModifier Property FadeFromBlack auto
ImageSpaceModifier Property HoldBlack auto

message property LongBoatMenu auto	;choice menu sail/drop anchor/exit

sound property WaterChurn auto	;sounds for the ship when moving
sound property CollisionSound auto
sound property BoatSound auto

ObjectReference property SeatVehicle auto	;xmarker at movable ship
ObjectReference property MovableShip auto	;ship with sails unfurled
ObjectReference property SpawnedStaticShip auto ;ship with sails furled
ObjectReference property StaticShipMarker auto	;xmarker for static ship in testcell
ObjectReference property ShipDoorCabin Auto	;doors in testcell
ObjectReference property ShipDoorBase Auto
ObjectReference Property TeleportActivator  Auto ;triggerbox
ObjectReference Property TeleportMarker Auto ;xmarker player landing after teleport from water

static property StaticShip auto	;static ship with furled sails

ObjectReference Property XMarkerTeiaBase  Auto  
ObjectReference Property XMarkerTeiaCabin  Auto 

;-- Variables ---------------------------------------
Bool ToggleAnchor	;lift or drop anchor
Bool ToggleDrive	;move or stop moving
Bool Activated

Float CurrentSpeed	;the given speed
Float MaxSpeed
Float MaxReverseSpeed
Float BoatAngleSpeed
Float DefaultAngleSpeed
Float MovDirection	;movement direction
Float XBoatPosition
Float YBoatPosition
Float ZBoatPosition
Float BoatAngle
Float BoatTiltAngle
Float DefaultTiltAngle
Float FrontOffset
Float MenDepthOffset
Float FrontBackMenOffset
float afX
float afY
float afZ

Int DefLef = 30	;left movement key
Int DefBac = 31 ;back movement key
Int DefRig = 32	;right movement key
Int DefFor = 17	;forward movement key

Int WaterChurnInstanceID
Int BoatCreakSoundID

;-- Functions ---------------------------------------

function OnUpdate()

	XBoatPosition = MovableShip.GetPositionX()
	YBoatPosition = MovableShip.GetPositionY()
	ZBoatPosition = MovableShip.GetPositionZ()
	BoatAngleSpeed = DefaultAngleSpeed

	if input.IsKeyPressed(DefFor) || input.IsKeyPressed(DefBac)
		if input.IsKeyPressed(DefFor) && FrontActor.IsSwimming()
			if CurrentSpeed > 0 as Float && MovDirection == -1 as Float
				CurrentSpeed -= 10 as Float
				MovDirection = -1 as Float
			elseIf CurrentSpeed < MaxSpeed
				CurrentSpeed += 10 as Float
				MovDirection = 1 as Float
			endIf
		elseIf input.IsKeyPressed(DefBac) && BackActor.IsSwimming()
			if CurrentSpeed > 0 as Float && MovDirection == 1 as Float
				CurrentSpeed -= 10 as Float
				MovDirection = 1 as Float
			elseIf CurrentSpeed < MaxReverseSpeed
				CurrentSpeed += 10 as Float
				MovDirection = -1 as Float
			endIf
		elseIf !FrontActor.IsSwimming() || !BackActor.IsSwimming()
			CollisionSound.play(PlayerRef as ObjectReference)
			CurrentSpeed = 0 as Float
		endIf
	elseIf CurrentSpeed > 0 as Float
		CurrentSpeed -= 5 as Float
	else
		MovableShip.StopTranslation()
		game.GetPlayer().StopTranslation()
		if !ToggleDrive
			self.UnregisterForUpdate()
		endIf
	endIf
	if CurrentSpeed > 0 as Float
		if input.IsKeyPressed(DefLef)
			BoatAngle += -BoatAngleSpeed
			if BoatAngle <= -360 as Float
				BoatAngle = 0 as Float
			endIf
			BoatTiltAngle = 2 as Float
		endIf
		if input.IsKeyPressed(DefRig)
			BoatAngle += BoatAngleSpeed
			if BoatAngle >= 360 as Float
				BoatAngle = 0 as Float
			endIf
			BoatTiltAngle = -2 as Float
		endIf
	endIf

	sound.SetInstanceVolume(WaterChurnInstanceID, CurrentSpeed / MaxSpeed)
	YBoatPosition += MovDirection * -CurrentSpeed * math.Sin(BoatAngle)
	XBoatPosition += MovDirection * CurrentSpeed * math.Cos(BoatAngle)
	Float YPlayerPos = YBoatPosition - (750 as Float * math.Sin(BoatAngle))
	Float XPlayerPos = XBoatPosition - (-750 as Float * math.Cos(BoatAngle))
	MovableShip.TranslateTo(XBoatPosition, YBoatPosition, ZBoatPosition, BoatTiltAngle, 0 as Float, BoatAngle + FrontOffset, CurrentSpeed, 0 as Float)
	game.GetPlayer().TranslateTo(XPlayerPos, YPlayerPos, ZBoatPosition + 590 as Float, 0 as Float, 0 as Float, BoatAngle, CurrentSpeed, 0 as Float)
	FrontActor.MoveTo(MovableShip, FrontBackMenOffset * math.Sin(MovableShip.GetAngleZ()), FrontBackMenOffset * math.Cos(MovableShip.GetAngleZ()), -MenDepthOffset, true)
	BackActor.MoveTo(MovableShip, -FrontBackMenOffset * math.Sin(MovableShip.GetAngleZ()), -FrontBackMenOffset * math.Cos(MovableShip.GetAngleZ()), -MenDepthOffset, true)

	if ToggleDrive
		self.RegisterForSingleUpdate(0 as Float)
	endIf
endFunction

function RebindKeys(Int KeySel, Int Code)

	if KeySel == 0
		DefFor = Code
		debug.Notification("Forward key has been rebound")
	elseIf KeySel == 1
		DefBac = Code
		debug.Notification("Back key has been rebound")
	elseIf KeySel == 2
		DefRig = Code
		debug.Notification("Right key has been rebound")
	elseIf KeySel == 3
		debug.Notification("Left key has been rebound")
		DefLef = Code
	else
		debug.Notification("Keys reset to default arrow keys")
		DefFor = 17
		DefBac = 31
		DefLef = 30
		DefRig = 32
	endIf
endFunction

function MenuActivated()

	Int MenuValue = LongBoatMenu.Show(0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000)
	if MenuValue == 0
		ToggleDrive = !ToggleDrive
		If ( ShipTravelGL.GetValue() == 0 )
                    ShipTravelGL.SetValue( 1 )
		EndIf

		if ToggleDrive as Bool && !ToggleAnchor
			FadeOut()
			ShipDoorCabin.Disable()
			ShipDoorBase.Disable()
			Utility.Wait(0.2)
			ShipDoorBase.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
			ShipDoorCabin.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
			TeleportActivator.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
			TeleportMarker.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
			XMarkerTeiaBase.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
			XMarkerTeiaCabin.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
			Utility.Wait(0.2)
			game.ForceFirstPerson()
			game.DisablePlayerControls(true, false, true, false, false, false, true, false, 0)
			PlayerRef.SetVehicle(SeatVehicle)
			WaterChurnInstanceID = WaterChurn.play(PlayerRef as ObjectReference)
			BoatCreakSoundID = BoatSound.play(PlayerRef as ObjectReference)
			sound.SetInstanceVolume(BoatCreakSoundID, 2.00000)
			self.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
			Utility.Wait(0.2)
			PlayerRef.PlayIdle(SitAnim)
			ShipTravelGL.SetValueInt(1)
			FadeIn()
			self.UnregisterForUpdate()
			self.RegisterForKey(DefFor)
			self.RegisterForKey(DefLef)
			self.RegisterForKey(DefRig)
			self.RegisterForKey(DefBac)
			self.RegisterForKey(18)
			self.RegisterForSingleUpdate(0 as Float)

		elseIf !ToggleDrive && !ToggleAnchor

			FadeOut()
			game.EnablePlayerControls(true, true, true, true, true, true, true, true, 0)
			self.UnregisterForAllKeys()
			self.UnregisterForUpdate()
			PlayerRef.StopTranslation()
			PlayerRef.SetVehicle(none)
			sound.StopInstance(WaterChurnInstanceID)
			sound.StopInstance(BoatCreakSoundID)
			CurrentSpeed = 0 as Float
			ShipDoorCabin.Enable()
			ShipDoorBase.Enable()
			Utility.Wait(0.2)
			self.MoveTo(MovableShip, 690 as Float * math.Sin(MovableShip.GetAngleZ()), 690 as Float * math.Cos(MovableShip.GetAngleZ()), 590 as Float, true)
			ShipDoorCabin.MoveTo(SpawnedStaticShip, 640 as Float * math.Sin(SpawnedStaticShip.GetAngleZ()), 640 as Float * math.Cos(SpawnedStaticShip.GetAngleZ()), 340 as Float, true)
			ShipDoorBase.MoveTo(SpawnedStaticShip, 0 as Float * math.Sin(SpawnedStaticShip.GetAngleZ()), 0 as Float * math.Cos(SpawnedStaticShip.GetAngleZ()), 340 as Float, true)
			TeleportActivator.MoveTo(SpawnedStaticShip, -160 as Float * math.Sin(SpawnedStaticShip.GetAngleZ() + 90), 0 as Float * math.Cos(SpawnedStaticShip.GetAngleZ()), 100 as Float, true)
			TeleportMarker.MoveTo(SpawnedStaticShip, 300 as Float * math.Sin(SpawnedStaticShip.GetAngleZ()), 300 as Float * math.Cos(SpawnedStaticShip.GetAngleZ()), 340 as Float, true)
			XMarkerTeiaBase.MoveTo(SpawnedStaticShip, 80 as Float * math.Sin(SpawnedStaticShip.GetAngleZ()), 80 as Float * math.Cos(SpawnedStaticShip.GetAngleZ()), 340 as Float, true)
			XMarkerTeiaCabin.MoveTo(SpawnedStaticShip, 570 as Float * math.Sin(SpawnedStaticShip.GetAngleZ()), 570 as Float * math.Cos(SpawnedStaticShip.GetAngleZ()), 340 as Float, true)
			ShipTravelGL.SetValueInt(0)

			FadeIn()

		else
			debug.MessageBox("You must raise the anchor before sailing")
			ToggleDrive = !ToggleDrive
		endIf

	elseIf MenuValue == 1
		if !ToggleDrive
			self.DropAnchor()

		else
			debug.MessageBox("You must stop sailing before dropping anchor")
		endIf
	endIf
endFunction

function OnKeyUp(Int keyCode, Float holdTime)

	if keyCode == 18
		self.MenuActivated()
	endIf
endFunction

function DropAnchor()

	ToggleAnchor = !ToggleAnchor
	if ToggleAnchor
		FadeOut()
		SpawnedStaticShip = MovableShip.PlaceAtMe(StaticShip as form, 1, false, false)
		MovableShip.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
		self.MoveTo(SpawnedStaticShip, 700 as Float * math.Sin(SpawnedStaticShip.GetAngleZ()), 700 as Float * math.Cos(SpawnedStaticShip.GetAngleZ()), 580 as Float, true)
		ShipDoorCabin.MoveTo(SpawnedStaticShip, 640 as Float * math.Sin(SpawnedStaticShip.GetAngleZ()), 640 as Float * math.Cos(SpawnedStaticShip.GetAngleZ()), 340 as Float, true)
		ShipDoorBase.MoveTo(SpawnedStaticShip, 0 as Float * math.Sin(SpawnedStaticShip.GetAngleZ()), 0 as Float * math.Cos(SpawnedStaticShip.GetAngleZ()), 340 as Float, true)
		TeleportActivator.MoveTo(SpawnedStaticShip, -100 as Float * math.Sin(SpawnedStaticShip.GetAngleZ() + 90), 0 as Float * math.Cos(SpawnedStaticShip.GetAngleZ()), 100 as Float, true)
		TeleportMarker.MoveTo(SpawnedStaticShip, 300 as Float * math.Sin(SpawnedStaticShip.GetAngleZ()), 300 as Float * math.Cos(SpawnedStaticShip.GetAngleZ()), 340 as Float, true)
		XMarkerTeiaBase.MoveTo(SpawnedStaticShip, 50 as Float * math.Sin(SpawnedStaticShip.GetAngleZ()), 50 as Float * math.Cos(SpawnedStaticShip.GetAngleZ()), 340 as Float, true)
		XMarkerTeiaCabin.MoveTo(SpawnedStaticShip, 590 as Float * math.Sin(SpawnedStaticShip.GetAngleZ()), 590 as Float * math.Cos(SpawnedStaticShip.GetAngleZ()), 340 as Float, true)
		ShipTravelGL.SetValueInt(0)
		FadeIn()
		debug.MessageBox("You have dropped the anchor.")

	else
		FadeOut()
		Utility.Wait(0.3)
		ShipDoorBase.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
		ShipDoorCabin.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
		TeleportActivator.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
		TeleportMarker.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
		XMarkerTeiaBase.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
		XMarkerTeiaCabin.MoveTo(StaticShipMarker, 0.000000, 0.000000, 0.000000, true)
		MovableShip.MoveTo(SpawnedStaticShip, 0.000000, 0.000000, 0.000000, true)
		SpawnedStaticShip.DisableNoWait(false)
		SpawnedStaticShip.Delete()
		ShipTravelGL.SetValueInt(1)
		FadeIn()
		debug.MessageBox("You have lifted the anchor.")
	endIf
endFunction

function OnActivate(ObjectReference akActionRef)

	self.MenuActivated()
endFunction

function OnInit()

	MaxSpeed = 290 as Float
	MaxReverseSpeed = 290 as Float
	DefaultAngleSpeed = 2 as Float
	DefaultTiltAngle = 2 as Float
	FrontOffset = 90 as Float ;sets the angle of the ship's translation, don't change!
	FrontBackMenOffset = 1300 as Float
	MovDirection = 1 as Float
	MenDepthOffset = -50 as Float
	DefFor = 17
	DefBac = 31
	DefLef = 30
	DefRig = 32
endFunction

Function FadeOut()
	FadeToBlack.Apply()
	Utility.Wait(0.5)
	FadeToBlack.PopTo(HoldBlack)
EndFunction

Function FadeIn()
	HoldBlack.PopTo(FadeFromBlack)
	Utility.Wait(0.5)
	FadeFromBlack.Remove()
EndFunction
Edited by Tasheni
Link to comment
Share on other sites

I can tell you for sure that the info on moving/fast travel follower from interiors too exteriors that doesn't work is not valid, I personally do this in a variety of function/events/scenes/spells in very heavily scripted quests and cells, and every single time this teleport follower thing works flawlesly, and still does after a thousands usages.


1) Now, you will have to explain in more detail how your whole ship system is supposed to work, because in your first post you didn't meantion anything on having a 'Movable Static' object being translated.

I assumed from your post that you have 2 pre-placed ships with their pre-placed doors activators and their corresponding 'Heading Markers', and not a moving ship.

Not that it plays so much of a big role, the logic is the same in the end.

2) I'm once more assuming by your post (the post above) that ALL functions are handle by this script as a 'Master Controller' script. (a global script that does everything).

3) From a quick look at your script, i've to say that: except that the script is a mess and need asap optimization and cleaning up, i didn't saw in the entire script the lines:



Player.MoveTo(MyTeleMarker)
Game.EnableFastTravel()
Game.FastTravel(MyTeleMarker)


So, there is no function to move followers.


Under another circumstances i would i assumed that the script is either calling that function to another script or another script is calling functions on this one, but there isn't such calling functions.


Unfortunately my lady yesterday i took my long waiting vacations and you caught me washing, cleaning and packing things. So, unless another kind soul can intervene here to give you a hand... you will have to wait some time for my answer... a beach is waiting for me!!

Edited by maxarturo
Link to comment
Share on other sites

 

Unfortunately my lady yesterday i took my long waiting vacations and you caught me washing, cleaning and packing things. So, unless another kind soul can intervene here to give you a hand... you will have to wait some time for my answer... a beach is waiting for me!!

Yay, holidays! May they be fantastic :smile:

 

 

Player.MoveTo(MyTeleMarker)

Game.EnableFastTravel()

Game.FastTravel(MyTeleMarker)

 

 

I attached the scripts you posted above to the doors and activators of my ship and ship interiors, like you told me. I deleted the if choice for checking if the ship is traveling, because it's not needed. Followers follow me inside, but not outside.

 

The script I posted is the shipswheel activator script. Surley it can be optimized, but this is nothing I am able to do. I'm a scripting noob. I can modify scripts, and then it is all trial and error :turned: .

The script works flawless, this is all I have achieved, and I'm proud of it. But any help for making that better is welcome :yes:.

 

 

because in your first post you didn't meantion anything on having a 'Movable Static' object being translated.

 

I apologize, I wrote in my first post that I have a big sailable ship. I thought, this was clear enough. Player can sail that ship and is translated with the ship. Basically, there are two ships, one with furled sails in a dummy cell and one with unfurled sails. Player can activate the shipswheel. If he drops the anchor, the static ship from the dummy cell moves to the exact location of the ship player is on, the movable ship is moved to the dummy cell. If player want to sail, he must unfurl the sails and lift the anchor first. Then the movable ship spawns and the static ship is moved to dummy cell. The doors and xmarkers of the ship are moved to dummy cell if player starts sailing, and moved back if player stops sailing with the E key.

 

That works pretty good. It was the concept of SuLpHiDe and I had hard times to understand, how he did this and modify it for my purpose.

 

Yes, and that ship in Teia is duplicated in Skyrim, so you can sail also there without the need to have an activator or spell to move that ship and all the markers to Skyrim. Only the interiors (cabin and basement) are the same.

The interior doors have now two activators: One for teleporting onto the Skyrim ship and one for teleporting onto the Teia ship.

 

Maybe the concept is not the best, but this is what I was able to do. :smile:

 

EDIT: I tried with another follower and she was following outside. Need to test with my others, too.

 

Thank you again for your kind support.

 

Update: If I have only one follower with me he doesn't teleport outside. IfI have two or more followers with me, only one teleports.

 

I tested with a new game as always. Don't understand that.

Edited by Tasheni
Link to comment
Share on other sites

Ok, let see if i got this right.

1) You don't have 2 statics ships, 1 in Skyrim and 1 in Teia, so that you activate the 'Ship's Wheel' to travel / load the corresponding worldspace and teleport there.


2) You have a 'Movable Static' mesh ship: 1 in Skyrim and 1 in Teia that you can sail freely / move with the ship ONLY in 'that' worldspace.


3) This part here is a little confusing:

"The interior doors have now two activators: One for teleporting onto the Skyrim ship and one for teleporting onto the Teia ship."

So, you don't use the 'exterior ship's wheel' for swapping ships / swapping worldspaces?, but this is done from the common interior cell by another activator of some sort?


Did i get this right?

Edited by maxarturo
Link to comment
Share on other sites

Yes, that's it. If you are in the interior, you can click on the door activators and go either to Skyrim or to Teia. This is not handled by the shipswheel and the ship is not teleported from one world to the other.

 

Max, thank you so much for your help, I hope you have fantastic holidays now and if you like, we can talk later again. :smile:

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...