Oblivion:Zauber erzwingen: Unterschied zwischen den Versionen
Keris (Diskussion | Beiträge) K |
Keris (Diskussion | Beiträge) K |
||
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Thema == | == Thema == | ||
Manchmal möchte man, dass [[NPC|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. | Manchmal möchte man, dass [[NPC|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 == | == NPC mit Heilungseffekt == | ||
=== Aufgabenstellung === | === Aufgabenstellung === | ||
− | Wir wollen, dass ein [[NPC]] | + | Wir wollen, dass ein [[NPC]] den Spieler heilt, wenn man ihn aktiviert. |
+ | |||
+ | |||
==== Theorie ==== | ==== Theorie ==== | ||
Es wird der [[ob:Cast|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. | Es wird der [[ob:Cast|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 ==== | ==== Probleme ==== | ||
Bei dem [[ob:Cast|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. | Bei dem [[ob:Cast|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 === | === Realisierung === | ||
==== Umgebung ==== | ==== 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''. | 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) [[Oblivion:Spell Window| Zauber erstellen]]. Diesem geben wir die ID HealSpell. | Weiterhin müssen wir erst einen geeigneten(beachte: Der Zauber muss auf Berührung gezaubert werden) [[Oblivion:Spell Window| Zauber erstellen]]. Diesem geben wir die ID HealSpell. | ||
+ | |||
+ | |||
==== Script ==== | ==== Script ==== | ||
<tesscript>Scn CastHealSpell | <tesscript>Scn CastHealSpell | ||
Zeile 20: | Zeile 30: | ||
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 39: | ||
=== Aufgabenstellung === | === Aufgabenstellung === | ||
Als nächstes wollen wir einen magischen Stein machen, der auf den Spieler schießt, wenn er zu nahe kommt. | Als nächstes wollen wir einen magischen 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. | ||
Zeile 50: | Zeile 64: | ||
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 == | ||
Zeile 59: | Zeile 77: | ||
− | {{ Scriptkategorie|Handhabung von Zaubern | | + | {{ Scriptkategorie |Handhabung von Zaubern|Level_1_Scripts|Zauber erzwingen}} |
Aktuelle Version vom 15. April 2009, 12:41 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.
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
Weitere Scripts aus dieser Kategorie
Level 1
{{#if: Handhabung von Zaubern | }}
{{#if: Level_1_Scripts | }}