Oblivion:Zauber erzwingen: Unterschied zwischen den Versionen
MrMuh (Diskussion | Beiträge) |
MrMuh (Diskussion | Beiträge) |
||
Zeile 20: | Zeile 20: | ||
end</tesscript> | end</tesscript> | ||
− | === Handhabung === | + | ==== Handhabung ==== |
Mit diesen Script wird kann der [[NPC]] den sogenannten ''Healspell'' auf den Spieler zaubern. Das ''Heiler.'' ist eigentlich in diesem Falle nicht nötig, da das Script auf demselben Objekt liegt, das auch den Zauber ausführt, sollte hier jedoch der Vollständigkeit halber dabeistehen (dort kann man auch einen anderen NPC oder ein anderes Objekt angeben, welches dann zaubert) | Mit diesen Script wird kann der [[NPC]] den sogenannten ''Healspell'' auf den Spieler zaubern. Das ''Heiler.'' ist eigentlich in diesem Falle nicht nötig, da das Script auf demselben Objekt liegt, das auch den Zauber ausführt, sollte hier jedoch der Vollständigkeit halber dabeistehen (dort kann man auch einen anderen NPC oder ein anderes Objekt angeben, welches dann zaubert) | ||
Zeile 27: | Zeile 27: | ||
=== Aufgabenstellung === | === Aufgabenstellung === | ||
Als nächstes wollen wir einen Stein machen, der auf den Spieler schießt, wenn er zu nahe kommt. | Als nächstes wollen wir einen Stein machen, der auf den Spieler schießt, wenn er zu nahe kommt. | ||
− | === Theorie === | + | ==== Theorie ==== |
Wir benutzen den bekannten [[ob:Cast|Cast-Befehl]] um den Zauber zu sprechen, weiterhin einen [[:Kategorie:Timer|Timer]] (denn sonst würden ununterbrochen Zauber auf den Spieler niederrasseln!) und eine GetDistance-Abfrage um zu schauen, ob der Spieler auch in der Nähe ist. | Wir benutzen den bekannten [[ob:Cast|Cast-Befehl]] um den Zauber zu sprechen, weiterhin einen [[:Kategorie:Timer|Timer]] (denn sonst würden ununterbrochen Zauber auf den Spieler niederrasseln!) und eine GetDistance-Abfrage um zu schauen, ob der Spieler auch in der Nähe ist. | ||
− | === Probleme === | + | ==== Probleme ==== |
Beachte, dass der Stein aus der Kategorie ''[[ob:Activator|Activators]]'' stammen muss, sonst kann es sein, dass dieser Scriptbefehl nicht richtig funktioniert! | Beachte, dass der Stein aus der Kategorie ''[[ob:Activator|Activators]]'' stammen muss, sonst kann es sein, dass dieser Scriptbefehl nicht richtig funktioniert! | ||
Als Bonus dürfen wir nun jedoch auch Fernzauber abfeuern lassen. | Als Bonus dürfen wir nun jedoch auch Fernzauber abfeuern lassen. | ||
− | == Realisierung == | + | === Realisierung === |
− | === Umgebung === | + | ==== Umgebung ==== |
Erstelle einen neuen Stein als [[ob:Activator|Activator]] und platziere ihn geeignet in der Spielwelt. | Erstelle einen neuen Stein als [[ob:Activator|Activator]] und platziere ihn geeignet in der Spielwelt. | ||
− | === Script === | + | ==== Script ==== |
<tesscript>Scn FireStone | <tesscript>Scn FireStone | ||
Zeile 50: | Zeile 50: | ||
endif | endif | ||
end</tesscript> | end</tesscript> | ||
− | === Handhabung === | + | ==== Handhabung ==== |
Wir sehen am Aufbau, dass getestet wird, ob der Spieler nah genug an dem Stein dran ist (1000 Einheiten). Da beim ersten Mal der [[:Kategorie:Timer|Timer]] auf 0 steht, wird gleich ein Blitz auf den Spieler gefeuert. Dann wird dem Spieler 10 Sekunden Zeit gegeben, sich zu entfernen. Nach Ablauf der Zeit geht das Spielchen von vorne los. | Wir sehen am Aufbau, dass getestet wird, ob der Spieler nah genug an dem Stein dran ist (1000 Einheiten). Da beim ersten Mal der [[:Kategorie:Timer|Timer]] auf 0 steht, wird gleich ein Blitz auf den Spieler gefeuert. Dann wird dem Spieler 10 Sekunden Zeit gegeben, sich zu entfernen. Nach Ablauf der Zeit geht das Spielchen von vorne los. | ||
== Links == | == Links == |
Version vom 13. August 2008, 16:05 Uhr
Inhaltsverzeichnis
Thema
Manchmal möchte man, dass NPCs, der Spielercharakter oder sogar Gegenstände in bestimmten Situationen bestimmte Zauber sprechen. Man will sie also dazu zwingen, dies zu tun. Dadurch kann man effektvolle Szenen basteln, oder auch böse Fallen.
Anwendung
Aufgabenstellung
Wir wollen, dass ein NPC der Spieler heilt, wenn man ihn aktiviert.
Theorie
Es wird der Cast-Befehl benutzt, um den NPC zu seiner segensreichen Tat zu zwingen. Wenn wir diesen in einen OnActivate-Block tun, wird unser Script ausgeführt, anstatt dass wir den NPC ansprechen. Das Script schreiben wir so allgemein wie möglich, also können wir es auf jeden beliebigen NPC legen.
Probleme
Bei dem Cast-Befehl von lebenden Wesen werden nur Zauber auf sich selbst oder auf Berührung ausgeführt. Wenn man einen Zauber auf Ziel mit diesem Befehl wirkt, versucht der NPC so nah an das Ziel zu kommen, bis er in Berührungsreichweite ist.
Realisierung
Umgebung
Wir benötigen einen NPC, auf den wir das Script packen, und den wir auch ingame antreffen können. Diesem geben wir die Reference ID Heiler. Weiterhin müssen wir erst einen geeigneten(beachte: Der Zauber muss auf Berührung gezaubert werden) Zauber erstellen. Diesem geben wir die ID HealSpell.
Script
<tesscript>Scn CastHealSpell
begin OnActivate
Heiler.Cast HealSpell Player
end</tesscript>
Handhabung
Mit diesen Script wird kann der NPC den sogenannten Healspell auf den Spieler zaubern. Das Heiler. ist eigentlich in diesem Falle nicht nötig, da das Script auf demselben Objekt liegt, das auch den Zauber ausführt, sollte hier jedoch der Vollständigkeit halber dabeistehen (dort kann man auch einen anderen NPC oder ein anderes Objekt angeben, welches dann zaubert)
Anwendung
Aufgabenstellung
Als nächstes wollen wir einen Stein machen, der auf den Spieler schießt, wenn er zu nahe kommt.
Theorie
Wir benutzen den bekannten Cast-Befehl um den Zauber zu sprechen, weiterhin einen Timer (denn sonst würden ununterbrochen Zauber auf den Spieler niederrasseln!) und eine GetDistance-Abfrage um zu schauen, ob der Spieler auch in der Nähe ist.
Probleme
Beachte, dass der Stein aus der Kategorie Activators stammen muss, sonst kann es sein, dass dieser Scriptbefehl nicht richtig funktioniert! Als Bonus dürfen wir nun jedoch auch Fernzauber abfeuern lassen.
Realisierung
Umgebung
Erstelle einen neuen Stein als Activator und platziere ihn geeignet in der Spielwelt.
Script
<tesscript>Scn FireStone
float timer
begin GameMode if GetDistance Player <= 1000 if timer > 0 Set timer to timer - GetSecondsPassed else set timer to 10 Cast StandardShockDamageTarget5Master Player endif endif end</tesscript>
Handhabung
Wir sehen am Aufbau, dass getestet wird, ob der Spieler nah genug an dem Stein dran ist (1000 Einheiten). Da beim ersten Mal der Timer auf 0 steht, wird gleich ein Blitz auf den Spieler gefeuert. Dann wird dem Spieler 10 Sekunden Zeit gegeben, sich zu entfernen. Nach Ablauf der Zeit geht das Spielchen von vorne los.