PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Script-Befehl zum starten von Scripts



Ebrithil
10.08.2009, 23:05
Hallo.
Ich suche einen Script-Befehl, der einen anderen Script startet; eingebunden in einen if-Befehl.

Beispiel:

Begin GameMode

Set x to GetButtonPressed

If x==0
StartScript Scriptname && Set y to 1
elseif x==1
Set y to 0
endif

End

Low Post
10.08.2009, 23:16
&& funktioniert nur bei Vergleichen, wenn du willst, dass mehrere Befehle ausgeführt werden musst du die nacheinander in eine jeweils eigene Zeile schreiben.
Der Befehl den du suchst dürfte StartQuest sein.
Einfach eine Dummy-Quest erstellen, bei der du den Haken bei StartGameEnabled entfernst und der das gewünschte Script zuschustern.
StopQuest um es wieder zu stoppen. ;)

Alternativ könntest du auch über Variablen arbeiten, sofern es funktioniert würde ich aber StartQuest empfehlen.


Also quasi so:

Begin GameMode

Set x to GetButtonPressed

If x==0
StartQuest <Dummy-Quest>
Set y to 1
elseif x==1
Set y to 0
endif

End

Ebrithil
11.08.2009, 00:24
Erstmal danke für die schnelle Hilfe.
Es klappt bei mir aber leider nicht. Ich vermute, dass es an der Dummy-Quest liegt, da ich nicht weiß, was ich dort für Einstellungen vornehmen muss.
Wie muss die Dummy Quest denn genau aussehen? Ich habe jetzt nur eine neue Quest erstellt, bei der ich den Haken bei StartGameEnabled entfernt habe und unter Script den entsprechenden ausgewählt habe.
http://bildupload.sro.at/a/images/dummy.PNG
Der Quest-Script ist folgender:
Script Type: Quest

scn 0001addspellquest

Begin GameMode
player.addspell aaaSummonCreatureSpell
StopQuest 00DummyQuest
End

Und der andere Script startet, wenn ein Altar angewählt wird und sieht so aus:
Script Type: Object

scn 001myaltarscript

short x
short y

Begin OnActivate

if y==0
MessageBox "Wollt ihr die Fähigkeit erlangen, drei mächtige Kreaturen des Feuers zu beschwören?", "Ja", "Noch nicht"
elseif y==1
MessageBox "Ihr habt den Zauber schon!"
endif

End


Begin GameMode

Set x to GetButtonPressed

If x==0
StartQuest 00DummyQuest
Set y to 1
elseif x==1
Set y to 0
endif

End


Dieser Script klappt auch, bis auf den Questteil eben.

Low Post
11.08.2009, 04:42
Vermutlich hast du einfach nicht lange genug gewartet, bis das Script durchgelaufen ist. ;)


Quests laufen Standartmäßig nämlich nur alle 5 Sekunden. Ändern ließe sich das über die (lokale) Variable fQuestDelayTime.


Bei dem Beispiel hier würde ich das mit der Quest aber einfach sein lassen und den Befehl (Player.AddSpell) direkt in das Altar-Script integrieren.

Ebrithil
11.08.2009, 13:37
Es klappt jetzt eigentlich.
Nur gibt es jetzt ein neues Problem. Zuerst hatte ich das Problem, dass ich den entsprechenden Zauber (eigene Kreaturen beschwören) aus einem anderen Mod genommen habe und halt beide Mods hätte aktivieren müssen. Daher hab ich jetzt die ganzen zum zauber dazugehörenden Kreaturen und Scripte mit einer neuen ID in den neuen Mod eingefügt. Jetzt bekomme ich nur immer, wenn ich den Script zum Zauber machen möchte, die Fehlermeldung: ... Scriptcommand "KreaturRef.Resurrect" not found.
Es gibt diese Kreatur mit der entsprechenden Referenz "KreaturRef" aber.
Und in dem anderen Mod hat es auch geklappt.
Und da ich eigentlich alle IDs und so nicht von dem andern Mod genommen habe, sondern neue erstellt habe, weiß ich nicht, woran das noch liegen könnte.:\:confused:

SirTroy
11.08.2009, 18:35
Könntest du eventuell mal das ganzue Script posten? Falls es dir keine umstände machen sollte. Und hast du bei der Kreatur auch den Haken bei Persistent Reference gemacht?
zu finden ist der da wo du die Reference eingegeben hast ganz unten.

Ebrithil
12.08.2009, 10:45
Also das Script für den Zauber ist folgendes:

scn 01aaaSummonCreatureKreaturScript2

begin ScriptEffectStart


01aaaSummonCreatureKreaturRef.Resurrect
01aaaSummonCreatureKreaturRef.moveto player 30 0 0
01aaaSummonCreatureKreaturRef.evp
01aaaSummonCreatureKreaturRef.moddisposition player 100
01aaaSummonCreatureKreaturRef.ResetHealth

End
Kann nur nicht abgespeichert werden
http://bildupload.sro.at/a/images/1-script.PNG

Dann hat die Kreatur noch ein Script

scn 01aaaSummonCreatureKreaturScript

Begin OnDeath
moveto "01aaaaSummonCellMarkerKreatur"
End
und eigentlich ist alles so, wie in diesem Tutorial (http://www.lk-portal.de/thread.php?threadid=351)

SirTroy
12.08.2009, 10:59
Nein, soweit ich weiß darf eine Reference nicht mit Zahlen beginnen. Versuch also mal das 01 wegzulassen. Dann müsste es funktionieren.

Ebrithil
12.08.2009, 18:39
Ja, danke! Jetzt funktioniert alles.
Problem gelöst:A