Construction Set Skriptthread zum Construction Set

Oh Gott, ich noob :/
Code:
scn ulbwfwatermistscript

ref myself

Begin GameMode
set myself to getself
	if (myself.GetDistance player < 10000)
		if (Gamehour <= 5) || (Gamehour >= 21)
			myself.enable
		Elseif (GameHour <= 3)  || (GameHour >= 24)
			myself.disable
		endif
	endif
End

@ unbekannter:
Code:
scn OBNew013OblivionTowerPedestalSCRIPT

ref myTarget
ref mySelf
float Timer

begin onActivate
    set myTarget to GetActionRef
    set mySelf to getSelf
    myTarget.pms effectDestruction
    mySelf.pms effectDestruction
    activate
end

Begin Gamemode
set myself to getself
if Timer <= 0
    set Timer to 5
endif
if timer >= 0
    set timer to timer -getsecondspassed
endif


if Timer <= 2
myself.enable
else
myself.disable 
endif
end
Wenn ich es richtig verstanden habe, soll das Objekt blinken, auf dem der Script liegt. Also habe ich es entsprechend umgeändert. Demnach kannst du den Haken bei Persistent Reference wegmachen, sowie die Reference ID , die du oben eingegeben hast, löschen.
 
GILDUR ICH LIEBE DICH!!! <3
Danke, es funktioniert wunderbar. Ich werd dir auf ewig dankbar sein.

Viele Grüße
Roobsi
 
könnt mir vllt nochmal jemand helfen ? : /


Code:
scn aaaLoeschenscript

short once

begin OnTriggerMob AaozLoeschzauber
if (once == 0)
    AaozKollision.disable
    set once to 1
endif
end


er bringt die fehlermeldeung das 'AaozLoeschenzaube' keine gültige objektreferenzid ist ^^
 
dieser Löschzauber, ist das ein Berührungszauber? wenn ja kann das glaube ich nicht funktionieren.

Code:
If you specify a TriggeringRefID, the block will only run when that specific reference triggers the object (assuming the reference is a mobile object)

frei übersetzt aus der CS Wiki also:
wenn eine Referenz festgelegt wird, wird das script nur ausgeführt, wenn diese spezifische Referenz das Objekt berührt (Vorausgesetzt die Referenz ist ein bewegliches Objekt)

ein Berührungszauber ist allerdings kein bewegliches Objekt. das könnte es also sein.
 
  • Like
Reaktionen: Oblivionzocker
Da haben wir ja das Problem(chen) :lol:

Ein Script muss immer auf etwas liegen. Demnach rate ich dir zu einem anderen Script:
Code:
scn ulbwfwatermistscript

ref myself

Begin GameMode
set myself to getself
	if (myself.GetDistance player < 10000)
		if (Gamehour <= 5) && (Gamehour >= 21)
			myself.enable
		Elseif (GameHour <= 3  && (GameHour >= 24)
			myself.disable
		endif
	endif
End
.........t.


Was bewirkt der Befehl getself? Warum hast du das myself dort hinein gesetzt? Das wird doch nicht weiter abgefragt. Die Reff ist doch myself. Verstehe ich nicht.
 
"GetSelf" gibt die Referenz des Objekts wieder, auf dem das Skript liegt (du musst keine Extra-Referenz vergeben)... Weil "MySelf" eine Ref-Variable ist ersetzt du durch das "MySelf" quasi die Referenz des Objektes und kannst dann damit wie gewohnt arbeiten...
 
  • Like
Reaktionen: robinH
Kapiere ich nicht. Welches Objekt setzt man denn dann auf Persident? Und ohne ist es doch keine Referenz die im Script erkannt wird. Und wenn dann ein Objekt als Persident gesetzt ist, kann man Ihm doch auch die Id geben. Wozu also das mit dem Getself?

Mysels ist doch der Bsp.Name der Refferrenz wie xyz.Reff oder nicht?
 
Kapiere ich nicht. Welches Objekt setzt man denn dann auf Persident? Und ohne ist es doch keine Referenz die im Script erkannt wird. Und wenn dann ein Objekt als Persident gesetzt ist, kann man Ihm doch auch die Id geben. Wozu also das mit dem Getself?

Mysels ist doch der Bsp.Name der Refferrenz wie xyz.Reff oder nicht?
Du brauchst bei GetSelf keinen Haken bei Persistent Reference setzen. Das brauchst du nur, wenn du in einem Script auf ein fremdes Objekt zugreifst. Der Befehl Getself macht das Objekt sozusagen zu einer Referenz, allerdings auch nur innerhalb des Scriptes.
nein mein zauber ist ein 'ziel-zauber'
: /
Imho kann GetTriggerMob keine Zauber erkennen.
 
OnTriggerMob arbeitet mit einer Reference ID, einem Zauber bzw einem Zauberprojektil kann jedoch keine zugewiesen werden, da man das nicht im RenderWindow platzieren kann...

Da müsstest du irgendwie tricksen und einen Umweg nehmen.
 
  • Like
Reaktionen: Oblivionzocker
wie kann ich das denn machen ?


: (

hätte da ne idee aber keine ahnung ob das geht , was wäre wenn man sich erst mit dem zauber verzaubern müsste um dann da durch zu gehen ? ^^
 
Hmm, eine genaue Idee kann ich dir jetzt nicht geben.
Vielleicht irgendwie etwas mit einer Global, die hochgesetzt wird, wenn man den Zauber benutzt. Dazu müsstest du deinem Zauber noch ein Script hinzufügen.
Dann vielleicht noch, dass man den Zauber nur in der Zelle benutzen kann, in der die Triggerbox ist, damit es einigermaßen passt.

Irgendwie sowas.

EDIT:
Das könnte auch gehen.
Man spricht den Zauber und dann wird eine Eigenschaft hinzugefügt. Die kann man per Script abfragen.
 
  • Like
Reaktionen: Oblivionzocker
Du fragst im Script der Triggerbox ab, ob der Spieler vom Zauber betroffen ist, also etwa so:

Code:
begin OnTriggerActor player
if (player.IsSpellTarget [ID des Zaubers] == 1)
...
 
  • Like
Reaktionen: Oblivionzocker
scn aaaLoeschenscript

short once

begin OnTriggerActor player
if (player.IsSpellTarget [ID des Zaubers] == 1)
if (once == 0)
AaozKollision.disable
set once to 1
endif
end


soll das dann so aussehen ? ^^



bei 'im script' kannst du bei meinen scriptkenntnissen davon ausgehen das ich es an die unmöglichsten stellen packe xD
 
Ja. Musst halt noch die ID des Zaubers einsetzen und die [] weglassen.
Und das "if (once == 0)" kannst du noch in die erste if-Zeile hauen:
if (player.IsSpellTarget [ID des Zaubers] == 1) && (once == 0)
 
  • Like
Reaktionen: Oblivionzocker