Replacement for MoveWorld?

Post » Tue Feb 15, 2011 11:13 pm

So I'm making a little mod for myself that adds Sheogorath-inspired spells (I know this has been done, and no I don't want to dl a mod for it), and I decided to make a teleport-into-sky spell like when you attack him. The problem is, MoveWorld no longer exists...is there a replacement, or do I need to use MoveTo with a moving destination and whatnot. If I do have to use the latter, can someone please explain it to me? Thanks in advance!
User avatar
JLG
 
Posts: 3364
Joined: Fri Oct 19, 2007 7:42 pm

Post » Wed Feb 16, 2011 3:11 pm

So I'm making a little mod for myself that adds Sheogorath-inspired spells (I know this has been done, and no I don't want to dl a mod for it), and I decided to make a teleport-into-sky spell like when you attack him. The problem is, MoveWorld no longer exists...is there a replacement, or do I need to use MoveTo with a moving destination and whatnot. If I do have to use the latter, can someone please explain it to me? Thanks in advance!


The spell Sheogorath uses is a scripted spell that uses the http://cs.elderscrolls.com/constwiki/index.php/MoveTo function to move the Player to an XMarker. It also disables Player controls and fast travel.
User avatar
Penny Flame
 
Posts: 3336
Joined: Sat Aug 12, 2006 1:53 am

Post » Wed Feb 16, 2011 11:19 am

The spell Sheogorath uses is a scripted spell that uses the http://cs.elderscrolls.com/constwiki/index.php/MoveTo function to move the Player to an XMarker. It also disables Player controls and fast travel.

I'm aware of this. The version I want to make is more simple as I am lazy (and new to scripting, more importantly). Sorry that I didn't clarify, I was posting that last topic in a hurry :/ Basically what I want this to do is move a special XMarker above the target and then use MoveTo to send them to it. When I try to do this though, it gives me a message saying something about needing a specific oject reference. That's what's confusing me.

This is what the spell is intended to do: It adds a trigger zone to the target's area just before sending them into the sky. They should, in theory, fall into the trigger zone after a certain amount of time. When they're teleported, it starts a timer that will give them a bit more than enough time to hit the trigger zone. If they have not entered it again once the timer is up, they are teleported back into it (this is supposed to account for use in interior cells or to keep the body from landing out of reach if it holds vital items). So far, I have failed to make the spell do really anything.

If anyone knows of a scripting guide out there, it would be a big help. I haven't been able to find one :(
User avatar
GRAEME
 
Posts: 3363
Joined: Sat May 19, 2007 2:48 am

Post » Wed Feb 16, 2011 12:08 pm

Post your current script so we can see where it's having issues.
User avatar
carla
 
Posts: 3345
Joined: Wed Aug 23, 2006 8:36 am

Post » Wed Feb 16, 2011 12:24 am

Post your current script so we can see where it's having issues.


It's more a matter of not knowing how to script this than having problems with it, but here's the script anyways:

Scriptname z13SETelePCBegin ScriptEffectStartPlaceAtMe Z13SETeleMarkerMoveTo Z13SETeleMarkerZ13SETeleMarker.DisableEnd


I can't remember what exactly it says the problem is, but I think it's something about needing a specific reference to use MoveTo, which is what I'm stuck on.
User avatar
katie TWAVA
 
Posts: 3452
Joined: Tue Jul 04, 2006 3:32 am

Post » Wed Feb 16, 2011 12:37 am

Sorry for double posting, I couldn't edit my last one for some reason.

Anyways, I made a new script for this that's a lot more functional:

ScriptName Z13SEDismissScriptshort Returnedfloat SkyPosfloat GroundPosref selfref horsetestbegin ScriptEffectStart	set horsetest to GetSelf	if ( GetActorValue Health >= 5 )  ;checks to see if target is alive	      Set GroundPos to GetPos Z + 20	      Set SkyPos to GetPos Z + 20000	      SetPos Z, SkyPos	      AddSpell Z13DismissController        endifEnd ScriptEffectStartBegin GameMode	If GetPos Z <= GroundPos		set Returned to 1	endifEnd GameModeBegin ScriptEffectFinishif Returned == 0	SetPos Z, GroundPos	RemoveSpell Z13DismissController		elseif Returned == 1			Return			RemoveSpell Z13DismissController		endifendifEnd


For some reason it doesn't work properly in interior cells; I think this might be because the actor is teleported beyond the boundary of the cell (like dropping out of a broken hallway, doorway with no door, etc.) The idea is that they only need to drop to their original altitude, rather than bounding nox. I'm gonna go test it outside right now.

EDIT: Uuuuummmmmm, looks like I have some leftover scripting from the Wabbajack creature-checks in there...I'll fix that and THEN test...
User avatar
..xX Vin Xx..
 
Posts: 3531
Joined: Sun Jun 18, 2006 6:33 pm

Post » Wed Feb 16, 2011 12:16 pm

Id certainly throw an IsInInterior test somewhere in there. And avoid putting code you want executed after a Return!
User avatar
R.I.p MOmmy
 
Posts: 3463
Joined: Wed Sep 06, 2006 8:40 pm

Post » Wed Feb 16, 2011 9:51 am

Id certainly throw an IsInInterior test somewhere in there. And avoid putting code you want executed after a Return!

Oh, that's the problem!
User avatar
Misty lt
 
Posts: 3400
Joined: Mon Dec 25, 2006 10:06 am


Return to IV - Oblivion