Oblivion:Zauber erzwingen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche

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.


NPC mit Heilungseffekt

Aufgabenstellung

Wir wollen, dass ein NPC den 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)


Zaubernder Stein

Aufgabenstellung

Als nächstes wollen wir einen magischen 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.


Links

Entfernung und Bewegung

Timer



Weitere Scripts aus dieser Kategorie

Level 1

       



{{#if: Handhabung von Zaubern | }} {{#if: Level_1_Scripts | }}