No Horses In Town?

Post » Thu Jun 21, 2012 2:14 am

The mod I am working requires that horses be allowed to ride in. But after I hooked it up to Tamriel a message states that you have to dismount first. If there is no way to ride in then I'm going to have to rethink the whole mod, pretty much.

Is there a work-around for having to dismount before going into a town?

Thanks!
User avatar
Kay O'Hara
 
Posts: 3366
Joined: Sun Jan 14, 2007 8:04 pm

Post » Thu Jun 21, 2012 7:49 am

I assume the need to dismount before activating a teleport door is hardcoded, which means you're out of luck. (Aside from making the town in the same worldspace, but it sounds like you're adding to a vanilla town which is out of the question)
User avatar
Tyler F
 
Posts: 3420
Joined: Mon Aug 27, 2007 8:07 pm

Post » Thu Jun 21, 2012 2:12 am

Thanks Alexander

I'm using an auto-load door into an interior space (a cavern).

Here's an image of the entrance:

http://lamplight.pcgamingnetwork.com/tmp/exterior-r.jpg

I guess I'll have to figure out a way to convincingly have the horse where the player lands and since using the auto-load door causes a zillion bugs in the mod use a regular activated door somehow.

Are you aware of a door that really isn't a door? Or a way to have something like a collision plane be activated into a door?

Thanks again!
User avatar
Timara White
 
Posts: 3464
Joined: Mon Aug 27, 2007 7:39 am

Post » Thu Jun 21, 2012 9:06 am

You could manually simulate most of an auto-load door by simply putting a trigger with a MoveTo in the script that moves the player into your new cell, then a trigger in that cell to move them back when entered. The 'most of an' part is that it wont display your cell name on the screen as you approach it, so the load may surprise some players if it isn't obvious that it's there.

I'm also not sure how using MoveTo to a player on a horse would work, or if you can keep them on the horse.
User avatar
Danny Warner
 
Posts: 3400
Joined: Fri Jun 01, 2007 3:26 am

Post » Thu Jun 21, 2012 4:29 am

"The 'most of an' part is that it wont display your cell name on the screen as you approach it"

A simple message trigger (debug.notification) could take care of the messaging problem.

But I don't see how just using MoveTo can actually force a cell load.

What about if I turned the cell into a World? Do you think there would be a difference in how the engine would handle that?

I'll try that out with Eldergleam and see if that would let me ride in

Edit:

Nope. A World won't let you ride in either.

I wonder why gamesas would hard code such a thing as riding horses into town into the engine.

I feel lost on where I should go with the mod now :/
User avatar
Destinyscharm
 
Posts: 3404
Joined: Sun Jul 23, 2006 6:06 pm

Post » Wed Jun 20, 2012 11:30 pm

They didn't hardcode 'Not riding into town' they hardcoded 'Not going through teleport doors'. Can you imagine the issues if you could enter something like a narrow hallway in a Draugr crypt on a horse? You could clip and be stuck and it would get very messy. They simply didn't specifically take town doors into account because there's never as situation where you benefit from entering a town on horseback.

MoveTo will work. If you place a marker in your cell, and a trigger outside of it that says MoveTo(MyMarker) then it moves the target to your marker. If it's inside your cell, your cell loads. And visa-versa. (Again it would move the player, but I'm not sure about the horse and all that)
User avatar
Robert Jackson
 
Posts: 3385
Joined: Tue Nov 20, 2007 12:39 am

Post » Thu Jun 21, 2012 5:41 am

Using MoveTo you'd have to declare what is to be moved, right?

Something like

MoveTo(Game.GetPlayer(), ObjectReference akTarget (which would be the XMarker))

I'm not sure how it would be written. Not even sure how to include the horse unless there's something with Game.GetPlayer()...something like Game.GetPlayer(and his horse called spot)

If MoveTo would work it may be my only option I think
User avatar
Mackenzie
 
Posts: 3404
Joined: Tue Jan 23, 2007 9:18 pm

Post » Wed Jun 20, 2012 9:58 pm

Perhaps the horse can be moved too with its base ID?

Like the horse EncHorsePalomino has the base ID of 00068D6E

edit

nevermind. You'd have to predict which horse ID to allow
User avatar
Eileen Müller
 
Posts: 3366
Joined: Fri Apr 13, 2007 9:06 am

Post » Wed Jun 20, 2012 8:54 pm

The Open Cities Mod allows you to open doors and ride into WhiteRun.
Not sure if that would have any ideas for you if you were able to look at that Mod's internal workings.
Not that it doesn't suffer from the NavMesh issues like all mods do, but it might have some hints on how to enter a town on horseback.
User avatar
Jamie Moysey
 
Posts: 3452
Joined: Sun May 13, 2007 6:31 am

Post » Wed Jun 20, 2012 10:53 pm

Thanks Shalani, I'll have to look into OpenCities and ask the modder if I can use it if it works.

Going off what Alexander was explaining I came up with this for using on a trigger box:

ObjectReference Property TeleportMarker autoEvent onTriggerEnter(ObjectReference objRef)	if(objRef == game.getplayer())moveto(TeleportMarker)endifEndEvent

It compiles but nothing happens when entering the trigger.

So I thought maybe make it a teleport thing:

ObjectReference Property TeleportMarker autoEvent onTriggerEnter(ObjectReference objRef)	if(objRef == game.getplayer())Game.FastTravel(TeleportMarker)endifEndEvent

It almost seems to want to work. I get the loading screen for a second then get immediately dismounted from the horse.
User avatar
Setal Vara
 
Posts: 3390
Joined: Thu Nov 16, 2006 1:24 pm

Post » Thu Jun 21, 2012 1:14 am

Oh yea

I also tried

moveto(GetLinkedRef())

And, like before, it seems to not do anything.
User avatar
Kat Lehmann
 
Posts: 3409
Joined: Tue Jun 27, 2006 6:24 am

Post » Wed Jun 20, 2012 10:10 pm

The issue there is that you don't declare what you're moving. Change the 4th line in that first script to:

Game.GetPlayer().MoveTo(TeleportMarker)

You then have to declare TeleportMarker as an object reference property and point it at the Xmarkerheading you want the player to appear at.
User avatar
Ludivine Poussineau
 
Posts: 3353
Joined: Fri Mar 30, 2007 2:49 pm

Post » Wed Jun 20, 2012 10:02 pm

Thanks Alexander

When I tried that I ended up in the ether.

It displays no loading screen and the pause you'd expect as it loads the cell but when the game returns the player is in the riding position with no horse and nothing around him.

I think it's close but just missing something.

Maybe the "no horses" rule is hard coded afterall?
User avatar
Your Mum
 
Posts: 3434
Joined: Sun Jun 25, 2006 6:23 pm

Post » Thu Jun 21, 2012 9:05 am

Does anyone else have any ideas to allow horse riders into towns?

The script is very close and seems to be just missing something to make it happen.

Thanks!
User avatar
victoria johnstone
 
Posts: 3424
Joined: Sat Oct 14, 2006 9:56 am

Post » Wed Jun 20, 2012 6:45 pm

Put a script on a trigger in front of the regular door.

Something like:

If game.GetPlayer().isRidingHorse(true)
Player.moveto (xmarker on other side)
endif

Obviously you need a function and proper code, but you get what I'm trying to do. This would over ride the door when mounted, and doors would work normal when dismounted. I wonder if the horse will come with the player or not though, it might just teleport the player and leave the horse, but hopefully not.
User avatar
asako
 
Posts: 3296
Joined: Wed Oct 04, 2006 7:16 am

Post » Wed Jun 20, 2012 5:22 pm

Other than your check for whether the player is a rider or not that is about the same thing I've been trying to make work.

But I've been using Game.GetPlayer().MoveTo(TeleportMarker) to move the player.

Everything is ok except the player stays in a sitting position like he's riding and the cell is not rendered.
User avatar
Mariana
 
Posts: 3426
Joined: Mon Jun 12, 2006 9:39 pm


Return to V - Skyrim