Construction Set Fahrstuhl erstellen

Du musst die Scripts so verändern, dass sie auf deine Mod passen. Übernimmst du die Scripte einfach nur, passt es nur auf die Mod von Gildur.
 
also ich hab nach seiner anleitung gearbeitet, nur die scriptnamen verändert und beim script für das objekt die richtung. das für das objekt konnte ich ohne probleme speichern.

also hier wie ich sie bei mir gespeichert hab oder speichern will

scn NATBewegungsscriptRauf ;Dies ist der Scriptname. Benenne ihn so um, dass du ihn schnell wiederfindest

short activated
float locx
float locy
float locz
float stopx
float stopy
float stopz
float stopxb
float stopyb
float stopzb
float speedx
float speedy
float speedz
short wayx
short wayy
short wayz
ref myself

Begin OnActivate
if activated == 0
set myself to getself
set stopx to myself.getpos x 0 ;bestimmt, wie weit sich das Objekt auf der x-Koordinate bewegen soll (- und + bestimmen die Richtung auf der x-Koordinate)
set stopy to myself.getpos y 0 ;bestimmt, wie weit sich das Objekt auf der y-Koordinate bewegen soll (- und + bestimmen die Richtung auf der y-Koordinate)
set stopz to myself.getpos z + 348 ;bestimmt, wie weit sich das Objekt auf der z-Koordinate bewegen soll (- und + bestimmen die Richtung auf der z-Koordinate)
set speedx to 0 ;bestimmt die Geschwindigkeit auf der x-Koordinate (muss negativ sein, wenn der Wert bei der Richtung auch negativ ist)
set speedy to 0 ;bestimmt die Geschwindigkeit auf der y-Koordinate (muss negativ sein, wenn der Wert bei der Richtung auch negativ ist)
set speedz to +5 ;bestimmt die Geschwindigkeit auf der z-Koordinate (muss negativ sein, wenn der Wert bei der Richtung auch negativ ist)
If stopx > myself.getpos x
set wayx to 1
Elseif stopx < myself.getpos x
set wayx to -1
Endif
If stopy > myself.getpos y
set wayy to 1
Elseif stopy < myself.getpos y
set wayy to -1
Endif
If stopz > myself.getpos z
set wayz to 1
Elseif stopz < myself.getpos z
set wayz to -1
Endif
set activated to 1
Elseif (activated == 1)
If (wayx == 1) && (locx >= stopx) || (wayx == -1) && (locx <= stopx) && (wayy == 1) && (locy >= stopy) || (wayy == -1) && (locy <= stopy) && (wayz == 1) && (locz >= stopz) || (wayz == -1) && (locz <= stopz)
set activated to 2
Endif
Endif
End

Begin GameMode
if activated == 0
return
Elseif activated == 1
set locx to myself.getpos x - speedx
set locy to myself.getpos y - speedy
set locz to myself.getpos z - speedz
If (wayx == 1) && (locx < stopx)
myself.setpos x locx
Elseif (wayx == -1) && (locx > stopx)
myself.setpos x locx
Endif
If (wayy == 1) && (locy < stopy)
myself.setpos y locy
Elseif (wayy == -1) && (locy > stopy)
myself.setpos y locy
Endif
If (wayz == 1) && (locz < stopz)
myself.setpos z locz
Elseif (wayz == -1) && (locz > stopz)
myself.setpos z locz
Endif
Elseif activated == 2
set locx to myself.getpos x + speedx
set locy to myself.getpos y + speedy
set locz to myself.getpos z + speedz
If (wayx == 1) && (locx > stopx)
myself.setpos x locx
Elseif (wayx == -1) && (locx < stopx)
myself.setpos x locx
Endif
If (wayy == 1) && (locy > stopy)
myself.setpos y locy
Elseif (wayy == -1) && (locy < stopy)
myself.setpos y locy
Endif
If (wayz == 1) && (locz > stopz)
myself.setpos z locz
Elseif (wayz == -1) && (locz < stopz)
myself.setpos z locz
Endif

Endif
End

scn NATfahrstuhlschalter ;Dies ist der Scriptname. Benenne ihn so um, dass du ihn schnell wiederfindest

ref par

Begin OnActivate
set par to getparentref
par.activate 1
End

vlt werdet ihr aus dem schlau
 
Hmm, ich glaube, die "1" im Script für den Schalter passt nicht. Von der Syntax des activate-Befehls passt die auch nicht.
Die brauchst du eigentlich auch nicht im Script. Ohne die, also nur mit "par.activate" müsste es gehen.
 
habs jetzt nur mit "par.activate" gemacht und konnte es speichern. anschliessend beim schalter "select Reference in Render Window" und das objekt markiert.
wollt ingame testen aber es passiert leider gar nichts...
 
Weil die Flag nötig ist. Andernfalls wird der OnActivate übersprungen.
Was gefehlt hat war lediglich eine Ref noch activate. Ich habe es entsprechend in der Scriptsammlung angepasst.

Sieht dann für dich wie folgt aus:
Code:
scn NATfahrstuhlschalter

ref par
ref myself

Begin OnActivate
set par to getparentref
set myself to getself
par.activate myself 1
End

Entschuldigung für die Umstände, Anastasya.
 
Also noch mal Schritt für Schritt, vlt hab ich ja was Grundlegendes falsch gemacht und es kiegt gar nicht am Script.

1. Neues Objekt (Activator) mit castleint1way.nif erstellt
2. Folgendes Script diesem Objekt (Fahrstuhlkabine)zugeteilt
scn NATBewegungsscriptRauf ;Dies ist der Scriptname. Benenne ihn so um, dass du ihn schnell wiederfindest
short activated
float locx
float locy
float locz
float stopx
float stopy
float stopz
float stopxb
float stopyb
float stopzb
float speedx
float speedy
float speedz
short wayx
short wayy
short wayz
ref myself
Begin OnActivate
if activated == 0
set myself to getself
set stopx to myself.getpos x 0 ;bestimmt, wie weit sich das Objekt auf der x-Koordinate bewegen soll (- und + bestimmen die Richtung auf der x-Koordinate)
set stopy to myself.getpos y 0 ;bestimmt, wie weit sich das Objekt auf der y-Koordinate bewegen soll (- und + bestimmen die Richtung auf der y-Koordinate)
set stopz to myself.getpos z + 348 ;bestimmt, wie weit sich das Objekt auf der z-Koordinate bewegen soll (- und + bestimmen die Richtung auf der z-Koordinate)
set speedx to 0 ;bestimmt die Geschwindigkeit auf der x-Koordinate (muss negativ sein, wenn der Wert bei der Richtung auch negativ ist)
set speedy to 0 ;bestimmt die Geschwindigkeit auf der y-Koordinate (muss negativ sein, wenn der Wert bei der Richtung auch negativ ist)
set speedz to +5 ;bestimmt die Geschwindigkeit auf der z-Koordinate (muss negativ sein, wenn der Wert bei der Richtung auch negativ ist)
If stopx > myself.getpos x
set wayx to 1
Elseif stopx < myself.getpos x
set wayx to -1
Endif
If stopy > myself.getpos y
set wayy to 1
Elseif stopy < myself.getpos y
set wayy to -1
Endif
If stopz > myself.getpos z
set wayz to 1
Elseif stopz < myself.getpos z
set wayz to -1
Endif
set activated to 1
Elseif (activated == 1)
If (wayx == 1) && (locx >= stopx) || (wayx == -1) && (locx <= stopx) && (wayy == 1) && (locy >= stopy) || (wayy == -1) && (locy <= stopy) && (wayz == 1) && (locz >= stopz) || (wayz == -1) && (locz <= stopz)
set activated to 2
Endif
Endif
End
Begin GameMode
if activated == 0
return
Elseif activated == 1
set locx to myself.getpos x - speedx
set locy to myself.getpos y - speedy
set locz to myself.getpos z - speedz
If (wayx == 1) && (locx < stopx)
myself.setpos x locx
Elseif (wayx == -1) && (locx > stopx)
myself.setpos x locx
Endif
If (wayy == 1) && (locy < stopy)
myself.setpos y locy
Elseif (wayy == -1) && (locy > stopy)
myself.setpos y locy
Endif
If (wayz == 1) && (locz < stopz)
myself.setpos z locz
Elseif (wayz == -1) && (locz > stopz)
myself.setpos z locz
Endif
Elseif activated == 2
set locx to myself.getpos x + speedx
set locy to myself.getpos y + speedy
set locz to myself.getpos z + speedz
If (wayx == 1) && (locx > stopx)
myself.setpos x locx
Elseif (wayx == -1) && (locx < stopx)
myself.setpos x locx
Endif
If (wayy == 1) && (locy > stopy)
myself.setpos y locy
Elseif (wayy == -1) && (locy < stopy)
myself.setpos y locy
Endif
If (wayz == 1) && (locz > stopz)
myself.setpos z locz
Elseif (wayz == -1) && (locz < stopz)
myself.setpos z locz
Endif
Endif
End
sollte doch eigentlich bewirken dass sich das objekt beim ersten drücken des Schalters nach oben bewegt und beim 2. mal wieder nach unten.
3. Haken bei "Persistent Reference" gesetzt und im CS platziert.
4. Einem vorhandenen Schalter ne neue ID verpasst und so ein neues Objekt draus gemacht.
5. Folgendes Script dem Schalter zugeteilt:
scn NATfahrstuhlschalter
ref par
ref myself
Begin OnActivate
set par to getparentref
set myself to getself
par.activate myself 1
End
6. In der Fahrstuhlkabine im CS platziert
7. Beim Schalter mit "Select Reference in Render Window" die Fahrstulkabiene zugeteilt.
8. Gespeichert und Ingame ausprobiert...

Ach ja ich Statre das Spiel per OBSE v0017a und folgende Mods sind installiert
• 00 Oblivion.esm
• 01 Francesco's Leveled Creatures-Items Mod.esm
• 02 Francesco's Optional New Items Add-On.esm
• 03 Cobl Main.esm [Version 1.67+]
• 04 Oscuro's_Oblivion_Overhaul.esm [Version 1.32.RC53]
• 05 Mart's Monster Mod.esm [Version 1.32.RC53]
• 06 FCOM_Convergence.esm [Version 1.32.RC53]
• 07 GlobalSettingsInterface.esm [Version 1.0]
• ++ Cobl Main DE.esp [Version 11]
• 08 Obl-IM.esp [Version 1.41]
• 09 Obl-IM_SI.esp [Version 1.41]
• 0A Obl-IM_SupremeMagicka.esp [Version 1.41]
• 0B Oblivion Improved - Cobl.esp
• 0C DLCShiveringIsles.esp
• 0D Francesco's Optional Chance of Stronger Bosses.esp
• 0E Francesco's Optional Chance of Stronger Enemies.esp
• 0F Francesco's Optional Chance of More Enemies.esp
• 10 Francesco's Optional Leveled Guards.esp
• ++ FCOM_Francescos.esp [Version 0.9.9]
• ++ FCOM_FrancescosItemsAddOn.esp [Version 1.32.RC53]
• 11 FCOM_FrancescosNamedBosses.esp [Version 0.9.9]
• ++ Bessere Unterwassersicht.esp
• 12 xFC63TeleporterAmulett.esp
• 13 Ayleiden Kristall.esp
• 14 DLCFrostcrag.esp
• 15 DLCHorseArmor.esp
• 16 Harvest [Flora].esp [Version 3.0.0]
• 17 Harvest [Flora] - DLCFrostcrag.esp [Version 3.0.0]
• 18 Living Economy.esp
• 19 Living Economy - Items.esp
• 1A ExnemRuneskulls.esp
• ++ FCOM_ExnemRuneskulls.esp [Version 0.9.9]
• 1B Cobl Glue.esp [Version 1.69]
• 1C Cobl Si.esp [Version 1.63]
• 1D OOO 1.32-Cobl.esp [Version 1.69]
• ++ FCOM_Cobl.esp [Version 0.9.9]
• 1E Oblivion WarCry.esp [Version 1.09]
• 1F FCOM_WarCry.esp [Version 1.32.RC53]
• 20 Mart's Monster Mod - Gems & Gem Dust.esp
• 21 Oscuro's_Oblivion_Overhaul.esp [Version 1.32.RC53]
• 22 FCOM_Convergence.esp [Version 1.32.RC53]
• ++ FCOM_LessRats.esp [Version 0.9.9]
• ++ FCOM_HungersUnitySI.esp [Version 0.9.9]
• 23 FCOM_DurabilityAndDamage.esp [Version 0.9.9]
• 24 Mart's Monster Mod - Hunting & Crafting.esp
• 25 Mart's Monster Mod - More Wilderness Life.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Bone Loot.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Reavers.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Adventurers.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Blood.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Undead Rise.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Lanterns.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Fiends.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Uberhulks.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Beholdens.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Werewolves.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Giants.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Balrogs.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Skeep.esp [Version 3.7b1]
• ++ Mart's Monster Mod - No Slimes.esp [Version 3.7b1]
• 26 Mart's Monster Mod - No Carrion Rats.esp [Version 3.7b1]
• 27 Mart's Monster Mod - Vindasel.esp [Version 3.7b1]
• ++ Mart's Monster Mod - Resized Races.esp [Version 3.7b1]
• 28 Mart's Monster Mod - Extra Wounding.esp [Version 3.7b1]
• ++ MMM-Cobl.esp [Version 1.69]
• 29 Knights.esp
• ++ FCOM_Knights.esp [Version 0.9.9]
• 2A Cobl Races.esp [Version 1.68] • 2B FCOM_RealSwords.esp [Version 0.9.9]
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Gildur
ausprobiert und getestet. Funktioniert jetzt:
Code:
scn NATBewegungsscriptRauf

short activated
float locx
float locy
float locz
float stopx
float stopy
float stopz
float stopxb
float stopyb
float stopzb
float speedx
float speedy
float speedz
short wayx
short wayy
short wayz
ref myself

Begin OnActivate
if activated == 0
	set myself to getself
	set stopx to myself.getpos x + 0
	set stopy to myself.getpos y + 0
	set stopz to myself.getpos z + 348
	set stopxb to myself.getpos x
	set stopyb to myself.getpos y
	set stopzb to myself.getpos z
	set speedx to 0
	set speedy to 0
	set speedz to 5
	If stopx > myself.getpos x
		set wayx to 1
	Elseif stopx < myself.getpos x
		set wayx to -1
	Endif
	If stopy > myself.getpos y
		set wayy to 1
	Elseif stopy < myself.getpos y
		set wayy to -1
	Endif
	If stopz > myself.getpos z
		set wayz to 1
	Elseif stopz < myself.getpos z
		set wayz to -1
	Endif
	set activated to 1
Elseif (activated == 1)
	set activated to 2
Elseif (activated == 2)
	set activated to 1
Endif
End

Begin GameMode
if activated == 0
	return
Elseif activated == 1
	set locx to myself.getpos x + speedx
	set locy to myself.getpos y + speedy
	set locz to myself.getpos z + speedz
	If (wayx == 1) && (locx < stopx)
		myself.setpos x locx
	Elseif (wayx == -1) && (locx > stopx)
		myself.setpos x locx
	Endif
	If (wayy == 1) && (locy < stopy)
		myself.setpos y locy
	Elseif (wayy == -1) && (locy > stopy)
		myself.setpos y locy
	Endif
	If (wayz == 1) && (locz < stopz)
		myself.setpos z locz
	Elseif (wayz == -1) && (locz > stopz)
		myself.setpos z locz
	Endif
Elseif activated == 2
	set locx to myself.getpos x - speedx
	set locy to myself.getpos y - speedy
	set locz to myself.getpos z - speedz
	If (wayx == 1) && (locx > stopxb)
		myself.setpos x locx
	Elseif (wayx == -1) && (locx < stopxb)
		myself.setpos x locx
	Endif
	If (wayy == 1) && (locy > stopyb)
		myself.setpos y locy
	Elseif (wayy == -1) && (locy < stopyb)
		myself.setpos y locy
	Endif
	If (wayz == 1) && (locz > stopzb)
		myself.setpos z locz
	Elseif (wayz == -1) && (locz < stopzb)
		myself.setpos z locz
	Endif
Endif
End
Danke für das Testen, Anastasya.

Der Script wurde übrigens entsprechend in der Scriptsammlung angepasst und erweitert.
 
  • Like
Reaktionen: Anastasya
Vielen, vielen Dank Gildur, das Scripf funzt einwandfrei!

Nun hab ich boch folgendes Problem der mein Char, und alles was sonst noch in der Kabine ist bleibt an Ort und Stelle, nur die Kabine bewegt sich nach oben.

Wenn mir da noch jemand behilflich sein hönnte wär ich (fast) wunschlos glücklich.
 
Dank dir für deine Info Piet, ich werda mit bei gelegenheit anschauen.

Aber ich weiss dass es so wie ich mir das vorstelle gehen muss, hab das mal inem Post gelesen, leider find ich den nicht mehr...

Aber ich hoffe immer noch auf Hilfe von jemandem der weiss wie's geht ^^