Oblivion:Zauber erzwingen: Unterschied zwischen den Versionen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche
K
Zeile 1: Zeile 1:
 
== Thema ==
 
== 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.
+
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.
 
== Anwendung ==
 
== Anwendung ==
 
=== Aufgabenstellung ===
 
=== Aufgabenstellung ===
Wir wollen, dass ein NPC der Spieler heilt, wenn man ihn aktiviert.
+
Wir wollen, dass ein [[NPC]] der Spieler heilt, wenn man ihn aktiviert.
 
=== Theorie ===
 
=== 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.
+
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 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 ===
Zeile 21: Zeile 21:
 
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 28: Zeile 28:
 
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 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.
+
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 ''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 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 51: Zeile 51:
 
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 [[ob: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 ==
  
[[:Kategorie:Entfernung und Bewegung]]
+
[[:Kategorie:Entfernung und Bewegung|Entfernung und Bewegung]]
  
[[:Kategorie:Timer]]
+
[[:Kategorie:Timer|Timer]]
  
  
 
[[Kategorie: Handhabung von Zaubern|Zauber erzwingen]]
 
[[Kategorie: Handhabung von Zaubern|Zauber erzwingen]]
 
[[Kategorie: Scripts|Zauber erzwingen]]
 
[[Kategorie: Scripts|Zauber erzwingen]]

Version vom 7. August 2008, 15:24 Uhr

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.

Links

Entfernung und Bewegung

Timer