<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>http://www.ei-der-zeit.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MrMuh</id>
		<title>Skript-Wiki - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="http://www.ei-der-zeit.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MrMuh"/>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Spezial:Beitr%C3%A4ge/MrMuh"/>
		<updated>2026-04-27T08:48:47Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Einf%C3%BChrung_Scriptzauber&amp;diff=3732</id>
		<title>Oblivion:Einführung Scriptzauber</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Einf%C3%BChrung_Scriptzauber&amp;diff=3732"/>
				<updated>2008-12-20T22:30:34Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Thema ==&lt;br /&gt;
Die Kategorie der Scriptzauber oder auch [[Oblivion:Magic Effect Scripts|Magic Effect Scripts]] ist eigentlich die Neuerung schlechthin &lt;br /&gt;
&lt;br /&gt;
im Scriptingbereich im Bezug zu Morrowind. Denn Scriptzauber sind unheimlich vielseitig und lassen sich auf fast jedes Objekt in &lt;br /&gt;
&lt;br /&gt;
Oblivion anwenden.&lt;br /&gt;
&lt;br /&gt;
Als allererstes muss man wissen, dass Scriptzauber nicht ganz wie normale Scripts geschrieben werden. Siehe [[Oblivion:Magic Effect Scripts|Magic Effect Scripts]]. Das Wesentliche ist, dass man das ganze im [[Oblivion:Script Editor Window|Scriptfenster]] als Magic &lt;br /&gt;
&lt;br /&gt;
Effect deklarieren muss und nicht Object Script, und dass man nicht die normalen Blocktypen benutzen darf, sondern eigens dafür &lt;br /&gt;
&lt;br /&gt;
gemachte:&lt;br /&gt;
&lt;br /&gt;
=== Blocktypen ===&lt;br /&gt;
'ScriptEffectStart' - Dieser Block wird genau einmal(!) als erstes ausgeführt, wenn der Zauber auf ein Ziel trifft&lt;br /&gt;
'ScriptEffectUpdate' - Dieser Block wird jeden Frame, den der Zauber wirkt, ausgeführt (auch in denselben wie ScriptEffectStart und &lt;br /&gt;
&lt;br /&gt;
ScriptEffectEnd)&lt;br /&gt;
'ScriptEffectEnd' - Dieser Block wird wieder genau einmal ausgeführt, wenn der Zauber endet&lt;br /&gt;
&lt;br /&gt;
Wie muss man sich das praktisch vorstellen? Wenn man im [[Oblivion:Spell Window|Spell Window]] seinen Zauber mit dem jeweiligen &lt;br /&gt;
&lt;br /&gt;
Scripteffect erstellt hat, kann man u.a. auch die Dauer einstellen. Wenn man Dauer 0 hat, heißt das, das diese 3 Blöcke genau einmal &lt;br /&gt;
&lt;br /&gt;
durchlaufen werden. Bei einer Dauer &amp;gt; 0 wird der Start- und Endblock jeweils einmal durchlaufen und die ganze Zeit dazwischen der &lt;br /&gt;
&lt;br /&gt;
Updateblock.&lt;br /&gt;
&lt;br /&gt;
Jedoch kann man immernoch MenuMode und GameMode-Blöcke mit einbauen. Diese werden auch normal abgearbeitet, wie bei jedem anderen &lt;br /&gt;
&lt;br /&gt;
Object-Script (aber logischerweise auch nur solange, wie der Zauber wirkt).&lt;br /&gt;
&lt;br /&gt;
=== Funktionsweise von Scriptzaubern ===&lt;br /&gt;
Sagen wir, der Spieler feuert einen selbsterstellten Zauber mit Scripteffekt irgendwo in die Gegend. Der Zauber trifft auf einen NPC. &lt;br /&gt;
&lt;br /&gt;
Nun wird das Script wird auf den NPC übertragen, ungefähr so, wie wenn man im CS dem NPC ein Script zuweist, jedoch ganz automatisch. &lt;br /&gt;
&lt;br /&gt;
Jetzt läuft das Script 'auf' dem NPC ab. Das Script denkt und handelt also so, wie als wenn es schon immer dem NPC zugewiesen ist, &lt;br /&gt;
&lt;br /&gt;
obwohl dieser NPC evtl in Wirklichkeit gar kein Script hat!&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Möglichkeiten ===&lt;br /&gt;
Was man alles mit Scriptzaubern grundsätzlich machen kann, soll hier erläutert werden:&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber als Zauber ====&lt;br /&gt;
Klar, wie der Name schon sagt, sind sie ürsprünglich als Zauber gedacht, mit dem kleinen Bonus, dass man nicht nur normale &lt;br /&gt;
&lt;br /&gt;
Zaubereffekte zur verfügung hat (wie Feuerschaden usw.), sondern eigene scripten kann.&lt;br /&gt;
Das sieht dann ungefähr so aus:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn melonsmash&lt;br /&gt;
&lt;br /&gt;
ref target&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
set target to getself&lt;br /&gt;
target.placeatme melon 0 0 200&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Aha, statt irgendwelchen langweiligen Zaubern fällt dem Ziel jetzt eine Melone auf den Kopf! Vielleicht nicht ungeheuer hilfreich, &lt;br /&gt;
&lt;br /&gt;
aber es soll verdeutlichen, dass man die Scripts wie normale Scripts behandeln kann, also es kann alles rein, was in anderen Scripts &lt;br /&gt;
&lt;br /&gt;
auch steht.&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber zum Herausfinden von RefIDs und Eigenschaften anderer Objekte ====&lt;br /&gt;
Herausfinden von RefIDs, werdet ihr fragen, das geht doch einfach in jedem Script mit [[Oblivion:Getself|GetSelf]], &lt;br /&gt;
&lt;br /&gt;
[[Oblivion:getactionref|GetActionRef]] oder z.b auch [[Oblivion:Getparentref|GetParentRef]]. Jaja, schon richtig, aber normalerweise &lt;br /&gt;
&lt;br /&gt;
kann man dabei nur die RefID des Objektes auf dem das Script liegt, seinen Parent oder den, der es aktiviert hat, herausfinden. &lt;br /&gt;
&lt;br /&gt;
Scriptzauber können nahezu jede RefID und andere Informationen über das getroffene Objekt herausfinden, z.b so:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn ActivateThingys&lt;br /&gt;
&lt;br /&gt;
ref Me&lt;br /&gt;
float hp&lt;br /&gt;
&lt;br /&gt;
begin Scripteffectstart&lt;br /&gt;
set Me to getself&lt;br /&gt;
switch.activate me&lt;br /&gt;
set questID.person to me&lt;br /&gt;
set hp to getbaseav health&lt;br /&gt;
messagebox &amp;quot;Lebenspunkte: %.0f&amp;quot; hp&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Das sieht jetzt etwas wie sinnlos aneinandergereihte Befehle aus (ist es auch mehr oder weniger), aber zeigt erstmal etwas &lt;br /&gt;
&lt;br /&gt;
wesentliches: durch getself kriegt man jetzt die refID des NPCs heraus, diese kann man gleich weiterverwerten, indem man z.b. von &lt;br /&gt;
&lt;br /&gt;
genau diesen NPC einen Schalter aktivieren lässt. Oder man speichert die RefID in einem Questscript.&lt;br /&gt;
Genausogut kann man sich auch alle Daten von dem NPC anzeigen lassen, wie die Lebenspunkte usw... Und das geht alles, obwohl der NPC &lt;br /&gt;
&lt;br /&gt;
normalerweise kein Script hat!&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber zur Steuerung von NPCs ====&lt;br /&gt;
Scriptzauber eignen sich auch hervorragend zur Massenmanipulation. Man muss nicht immer an die selbstverständlichen Aufgaben von &lt;br /&gt;
&lt;br /&gt;
Zaubern denken, wenn man von Scriptzaubern spricht. Damit lassen sich auch dynamische Prozesse steuern. Als Beispiel kann man &lt;br /&gt;
&lt;br /&gt;
anbringen, dass die Dorfbewohner, welche Martin vor dem Sturm auf das Obliviontor zujubeln kein eigenes Script haben, das ihnen sagt, &lt;br /&gt;
&lt;br /&gt;
was sie zu tun haben. Es wird ein Scriptspell mit einem Effektradius von einigen tausend Einheiten gewirkt, welcher den NPCs sagt, &lt;br /&gt;
&lt;br /&gt;
dass sie sich vor der Kirche zu versammeln haben.&lt;br /&gt;
Ähnliche Dinge kann man selber auch ohne großen Aufwand mit Scriptzaubern machen. Dazu würde schon das Script hier reichen:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn massmanipulation&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
addscriptpackage dosomething&lt;br /&gt;
evp&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gültigkeit von Scriptzaubern ===&lt;br /&gt;
Scriptzauber haben viele Vorzüge, jedoch muss man auch auf einiges achten, wenn man sie benutzt:&lt;br /&gt;
&lt;br /&gt;
==== Gültige Ziele ====&lt;br /&gt;
Man sollte sich merken, dass Scriptzauber auch nicht allmächtig sind, und man jetzt locker-flockig ein paar Zauber durch die Gegend &lt;br /&gt;
&lt;br /&gt;
schießt und alle Dinge das machen, was man will. Scriptzauber funktionieren nur auf diesen Objekten:&lt;br /&gt;
&lt;br /&gt;
Die volle Funktionsfähigkeit entfalten Scriptzauber bei '[[Oblivion:NPC|NPCs]]' und '[[Oblivion:Kreatur|Creatures]]'.&lt;br /&gt;
&lt;br /&gt;
Bei 'Leichen', '[[Oblivion:Activator|Activators]]', '[[Oblivion:Light|Lights]]' '[[Oblivion:Container|Containers]]', &lt;br /&gt;
&lt;br /&gt;
'[[Oblivion:Door|Doors]]' und 'Furniture' werden die 3 Blöcke (sofern vorhanden) nur ''einmal'' durchlaufen, danach endet der Zauber, &lt;br /&gt;
&lt;br /&gt;
ganz einfach deswegen, weil man diesen Objekten im CS normalerweise auch keine Zauber zuordnen kann.&lt;br /&gt;
&lt;br /&gt;
Bei '[[Oblivion:Static|Statics]]', '[[Oblivion:Tree|Trees]]' und allen '[[Oblivion:Item|Items]]' funktionieren Scriptzauber &lt;br /&gt;
&lt;br /&gt;
''nicht''.&lt;br /&gt;
&lt;br /&gt;
==== Probleme ====&lt;br /&gt;
Probleme treten bei der Variablenspeicherung auf. Wenn euer Zauber die Aufgabe hat, wichtige Daten über das getroffene Objekt zu &lt;br /&gt;
&lt;br /&gt;
sammeln, dann müsst ihr diese woanders speichern, als in dem Script des Zaubers. Solange der Zauber aktiv ist, kann er &lt;br /&gt;
&lt;br /&gt;
[Oblivion:Variablen|Variablen] speichern wie jedes andere normale Script auch. Wenn aber der Zauber zuende ist, wird er sozusagen von &lt;br /&gt;
&lt;br /&gt;
dem getroffenen Objekt wieder gelöscht, und damit gehen auch alle Variablen verloren. Vorsicht: Die Variablen werden auch gelöscht, &lt;br /&gt;
&lt;br /&gt;
wenn ihr die Zelle verlasst, in der das getroffene Objekt ist. Heißt also, wenn ein NPC getroffen ist, und der Spieler in eine andere &lt;br /&gt;
&lt;br /&gt;
Zelle wechselt (z.b. in ein Haus geht), dann gehen auch alle gespeicherten Daten im Script verloren.&lt;br /&gt;
&lt;br /&gt;
''Abhilfe'': Wenn es wirklich wichtige Dinge sind, die ihr über den NPC oder jedes andere getroffene Objekt erfahren wollt, so ist es &lt;br /&gt;
&lt;br /&gt;
am besten, diese an ein [Oblivion:Quest Scripts|Questscript] zu übertragen. Dazu muss man vorher eine Quest erstellt haben, und &lt;br /&gt;
&lt;br /&gt;
dieser ein Script zuordnen, welches vorzugsweise nur die Variablen beinhaltet:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn questvarsave&lt;br /&gt;
&lt;br /&gt;
ref target&lt;br /&gt;
float zpos&lt;br /&gt;
float rotation&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Speichern kann man dann mit dem Zauber so:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn vargaterspell&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
set questname.target to getself&lt;br /&gt;
set questname.zpos to getpos z&lt;br /&gt;
set questname.rotation to getange z&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Zauber|Zauber]]&lt;br /&gt;
* [[Oblivion:Magic Effect Scripts|Magic Effect Scripts]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Scriptkategorie |Scriptzauber|Einführung Scriptzauber}}&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Einf%C3%BChrung_Scriptzauber&amp;diff=3731</id>
		<title>Oblivion:Einführung Scriptzauber</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Einf%C3%BChrung_Scriptzauber&amp;diff=3731"/>
				<updated>2008-12-20T22:29:25Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Thema ==&lt;br /&gt;
Die Kategorie der Scriptzauber oder auch [[Oblivion:Magic Effect Scripts|Magic Effect Scripts]] ist eigentlich die Neuerung schlechthin &lt;br /&gt;
&lt;br /&gt;
im Scriptingbereich im Bezug zu Morrowind. Denn Scriptzauber sind unheimlich vielseitig und lassen sich auf fast jedes Objekt in &lt;br /&gt;
&lt;br /&gt;
Oblivion anwenden.&lt;br /&gt;
&lt;br /&gt;
Als allererstes muss man wissen, dass Scriptzauber nicht ganz wie normale Scripts geschrieben werden. Siehe [[Oblivion:Magic Effect &lt;br /&gt;
&lt;br /&gt;
Scripts|Magic Effect Scripts]]. Das Wesentliche ist, dass man das ganze im [[Oblivion:Script Editor Window|Scriptfenster]] als Magic &lt;br /&gt;
&lt;br /&gt;
Effect deklarieren muss und nicht Object Script, und dass man nicht die normalen Blocktypen benutzen darf, sondern eigens dafür &lt;br /&gt;
&lt;br /&gt;
gemachte:&lt;br /&gt;
&lt;br /&gt;
=== Blocktypen ===&lt;br /&gt;
'ScriptEffectStart' - Dieser Block wird genau einmal(!) als erstes ausgeführt, wenn der Zauber auf ein Ziel trifft&lt;br /&gt;
'ScriptEffectUpdate' - Dieser Block wird jeden Frame, den der Zauber wirkt, ausgeführt (auch in denselben wie ScriptEffectStart und &lt;br /&gt;
&lt;br /&gt;
ScriptEffectEnd)&lt;br /&gt;
'ScriptEffectEnd' - Dieser Block wird wieder genau einmal ausgeführt, wenn der Zauber endet&lt;br /&gt;
&lt;br /&gt;
Wie muss man sich das praktisch vorstellen? Wenn man im [[Oblivion:Spell Window|Spell Window]] seinen Zauber mit dem jeweiligen &lt;br /&gt;
&lt;br /&gt;
Scripteffect erstellt hat, kann man u.a. auch die Dauer einstellen. Wenn man Dauer 0 hat, heißt das, das diese 3 Blöcke genau einmal &lt;br /&gt;
&lt;br /&gt;
durchlaufen werden. Bei einer Dauer &amp;gt; 0 wird der Start- und Endblock jeweils einmal durchlaufen und die ganze Zeit dazwischen der &lt;br /&gt;
&lt;br /&gt;
Updateblock.&lt;br /&gt;
&lt;br /&gt;
Jedoch kann man immernoch MenuMode und GameMode-Blöcke mit einbauen. Diese werden auch normal abgearbeitet, wie bei jedem anderen &lt;br /&gt;
&lt;br /&gt;
Object-Script (aber logischerweise auch nur solange, wie der Zauber wirkt).&lt;br /&gt;
&lt;br /&gt;
=== Funktionsweise von Scriptzaubern ===&lt;br /&gt;
Sagen wir, der Spieler feuert einen selbsterstellten Zauber mit Scripteffekt irgendwo in die Gegend. Der Zauber trifft auf einen NPC. &lt;br /&gt;
&lt;br /&gt;
Nun wird das Script wird auf den NPC übertragen, ungefähr so, wie wenn man im CS dem NPC ein Script zuweist, jedoch ganz automatisch. &lt;br /&gt;
&lt;br /&gt;
Jetzt läuft das Script 'auf' dem NPC ab. Das Script denkt und handelt also so, wie als wenn es schon immer dem NPC zugewiesen ist, &lt;br /&gt;
&lt;br /&gt;
obwohl dieser NPC evtl in Wirklichkeit gar kein Script hat!&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Möglichkeiten ===&lt;br /&gt;
Was man alles mit Scriptzaubern grundsätzlich machen kann, soll hier erläutert werden:&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber als Zauber ====&lt;br /&gt;
Klar, wie der Name schon sagt, sind sie ürsprünglich als Zauber gedacht, mit dem kleinen Bonus, dass man nicht nur normale &lt;br /&gt;
&lt;br /&gt;
Zaubereffekte zur verfügung hat (wie Feuerschaden usw.), sondern eigene scripten kann.&lt;br /&gt;
Das sieht dann ungefähr so aus:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn melonsmash&lt;br /&gt;
&lt;br /&gt;
ref target&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
set target to getself&lt;br /&gt;
target.placeatme melon 0 0 200&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Aha, statt irgendwelchen langweiligen Zaubern fällt dem Ziel jetzt eine Melone auf den Kopf! Vielleicht nicht ungeheuer hilfreich, &lt;br /&gt;
&lt;br /&gt;
aber es soll verdeutlichen, dass man die Scripts wie normale Scripts behandeln kann, also es kann alles rein, was in anderen Scripts &lt;br /&gt;
&lt;br /&gt;
auch steht.&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber zum Herausfinden von RefIDs und Eigenschaften anderer Objekte ====&lt;br /&gt;
Herausfinden von RefIDs, werdet ihr fragen, das geht doch einfach in jedem Script mit [[Oblivion:Getself|GetSelf]], &lt;br /&gt;
&lt;br /&gt;
[[Oblivion:getactionref|GetActionRef]] oder z.b auch [[Oblivion:Getparentref|GetParentRef]]. Jaja, schon richtig, aber normalerweise &lt;br /&gt;
&lt;br /&gt;
kann man dabei nur die RefID des Objektes auf dem das Script liegt, seinen Parent oder den, der es aktiviert hat, herausfinden. &lt;br /&gt;
&lt;br /&gt;
Scriptzauber können nahezu jede RefID und andere Informationen über das getroffene Objekt herausfinden, z.b so:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn ActivateThingys&lt;br /&gt;
&lt;br /&gt;
ref Me&lt;br /&gt;
float hp&lt;br /&gt;
&lt;br /&gt;
begin Scripteffectstart&lt;br /&gt;
set Me to getself&lt;br /&gt;
switch.activate me&lt;br /&gt;
set questID.person to me&lt;br /&gt;
set hp to getbaseav health&lt;br /&gt;
messagebox &amp;quot;Lebenspunkte: %.0f&amp;quot; hp&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Das sieht jetzt etwas wie sinnlos aneinandergereihte Befehle aus (ist es auch mehr oder weniger), aber zeigt erstmal etwas &lt;br /&gt;
&lt;br /&gt;
wesentliches: durch getself kriegt man jetzt die refID des NPCs heraus, diese kann man gleich weiterverwerten, indem man z.b. von &lt;br /&gt;
&lt;br /&gt;
genau diesen NPC einen Schalter aktivieren lässt. Oder man speichert die RefID in einem Questscript.&lt;br /&gt;
Genausogut kann man sich auch alle Daten von dem NPC anzeigen lassen, wie die Lebenspunkte usw... Und das geht alles, obwohl der NPC &lt;br /&gt;
&lt;br /&gt;
normalerweise kein Script hat!&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber zur Steuerung von NPCs ====&lt;br /&gt;
Scriptzauber eignen sich auch hervorragend zur Massenmanipulation. Man muss nicht immer an die selbstverständlichen Aufgaben von &lt;br /&gt;
&lt;br /&gt;
Zaubern denken, wenn man von Scriptzaubern spricht. Damit lassen sich auch dynamische Prozesse steuern. Als Beispiel kann man &lt;br /&gt;
&lt;br /&gt;
anbringen, dass die Dorfbewohner, welche Martin vor dem Sturm auf das Obliviontor zujubeln kein eigenes Script haben, das ihnen sagt, &lt;br /&gt;
&lt;br /&gt;
was sie zu tun haben. Es wird ein Scriptspell mit einem Effektradius von einigen tausend Einheiten gewirkt, welcher den NPCs sagt, &lt;br /&gt;
&lt;br /&gt;
dass sie sich vor der Kirche zu versammeln haben.&lt;br /&gt;
Ähnliche Dinge kann man selber auch ohne großen Aufwand mit Scriptzaubern machen. Dazu würde schon das Script hier reichen:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn massmanipulation&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
addscriptpackage dosomething&lt;br /&gt;
evp&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gültigkeit von Scriptzaubern ===&lt;br /&gt;
Scriptzauber haben viele Vorzüge, jedoch muss man auch auf einiges achten, wenn man sie benutzt:&lt;br /&gt;
&lt;br /&gt;
==== Gültige Ziele ====&lt;br /&gt;
Man sollte sich merken, dass Scriptzauber auch nicht allmächtig sind, und man jetzt locker-flockig ein paar Zauber durch die Gegend &lt;br /&gt;
&lt;br /&gt;
schießt und alle Dinge das machen, was man will. Scriptzauber funktionieren nur auf diesen Objekten:&lt;br /&gt;
&lt;br /&gt;
Die volle Funktionsfähigkeit entfalten Scriptzauber bei '[[Oblivion:NPC|NPCs]]' und '[[Oblivion:Kreatur|Creatures]]'.&lt;br /&gt;
&lt;br /&gt;
Bei 'Leichen', '[[Oblivion:Activator|Activators]]', '[[Oblivion:Light|Lights]]' '[[Oblivion:Container|Containers]]', &lt;br /&gt;
&lt;br /&gt;
'[[Oblivion:Door|Doors]]' und 'Furniture' werden die 3 Blöcke (sofern vorhanden) nur ''einmal'' durchlaufen, danach endet der Zauber, &lt;br /&gt;
&lt;br /&gt;
ganz einfach deswegen, weil man diesen Objekten im CS normalerweise auch keine Zauber zuordnen kann.&lt;br /&gt;
&lt;br /&gt;
Bei '[[Oblivion:Static|Statics]]', '[[Oblivion:Tree|Trees]]' und allen '[[Oblivion:Item|Items]]' funktionieren Scriptzauber &lt;br /&gt;
&lt;br /&gt;
''nicht''.&lt;br /&gt;
&lt;br /&gt;
==== Probleme ====&lt;br /&gt;
Probleme treten bei der Variablenspeicherung auf. Wenn euer Zauber die Aufgabe hat, wichtige Daten über das getroffene Objekt zu &lt;br /&gt;
&lt;br /&gt;
sammeln, dann müsst ihr diese woanders speichern, als in dem Script des Zaubers. Solange der Zauber aktiv ist, kann er &lt;br /&gt;
&lt;br /&gt;
[Oblivion:Variablen|Variablen] speichern wie jedes andere normale Script auch. Wenn aber der Zauber zuende ist, wird er sozusagen von &lt;br /&gt;
&lt;br /&gt;
dem getroffenen Objekt wieder gelöscht, und damit gehen auch alle Variablen verloren. Vorsicht: Die Variablen werden auch gelöscht, &lt;br /&gt;
&lt;br /&gt;
wenn ihr die Zelle verlasst, in der das getroffene Objekt ist. Heißt also, wenn ein NPC getroffen ist, und der Spieler in eine andere &lt;br /&gt;
&lt;br /&gt;
Zelle wechselt (z.b. in ein Haus geht), dann gehen auch alle gespeicherten Daten im Script verloren.&lt;br /&gt;
&lt;br /&gt;
''Abhilfe'': Wenn es wirklich wichtige Dinge sind, die ihr über den NPC oder jedes andere getroffene Objekt erfahren wollt, so ist es &lt;br /&gt;
&lt;br /&gt;
am besten, diese an ein [Oblivion:Quest Scripts|Questscript] zu übertragen. Dazu muss man vorher eine Quest erstellt haben, und &lt;br /&gt;
&lt;br /&gt;
dieser ein Script zuordnen, welches vorzugsweise nur die Variablen beinhaltet:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn questvarsave&lt;br /&gt;
&lt;br /&gt;
ref target&lt;br /&gt;
float zpos&lt;br /&gt;
float rotation&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Speichern kann man dann mit dem Zauber so:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn vargaterspell&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
set questname.target to getself&lt;br /&gt;
set questname.zpos to getpos z&lt;br /&gt;
set questname.rotation to getange z&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Zauber|Zauber]]&lt;br /&gt;
* [[Oblivion:Magic Effect Scripts|Magic Effect Scripts]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Scriptkategorie |Scriptzauber|Einführung Scriptzauber}}&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Einf%C3%BChrung_Scriptzauber&amp;diff=3730</id>
		<title>Oblivion:Einführung Scriptzauber</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Einf%C3%BChrung_Scriptzauber&amp;diff=3730"/>
				<updated>2008-12-20T22:28:38Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Thema ==&lt;br /&gt;
Die Kategorie der Scriptzauber oder auch [[Oblivion:Magic Effect Scripts|Magic Effect Scripts]] ist eigentlich die Neuerung schlechthin &lt;br /&gt;
&lt;br /&gt;
im Scriptingbereich im Bezug zu Morrowind. Denn Scriptzauber sind unheimlich vielseitig und lassen sich auf fast jedes Objekt in &lt;br /&gt;
&lt;br /&gt;
Oblivion anwenden.&lt;br /&gt;
&lt;br /&gt;
Als allererstes muss man wissen, dass Scriptzauber nicht ganz wie normale Scripts geschrieben werden. Siehe [Oblivion:Magic Effect &lt;br /&gt;
&lt;br /&gt;
Scripts|Magic Effect Scripts]. Das Wesentliche ist, dass man das ganze im [Oblivion:Script Editor Window|Scriptfenster] als Magic &lt;br /&gt;
&lt;br /&gt;
Effect deklarieren muss und nicht Object Script, und dass man nicht die normalen Blocktypen benutzen darf, sondern eigens dafür &lt;br /&gt;
&lt;br /&gt;
gemachte:&lt;br /&gt;
&lt;br /&gt;
=== Blocktypen ===&lt;br /&gt;
'ScriptEffectStart' - Dieser Block wird genau einmal(!) als erstes ausgeführt, wenn der Zauber auf ein Ziel trifft&lt;br /&gt;
'ScriptEffectUpdate' - Dieser Block wird jeden Frame, den der Zauber wirkt, ausgeführt (auch in denselben wie ScriptEffectStart und &lt;br /&gt;
&lt;br /&gt;
ScriptEffectEnd)&lt;br /&gt;
'ScriptEffectEnd' - Dieser Block wird wieder genau einmal ausgeführt, wenn der Zauber endet&lt;br /&gt;
&lt;br /&gt;
Wie muss man sich das praktisch vorstellen? Wenn man im [[Oblivion:Spell Window|Spell Window]] seinen Zauber mit dem jeweiligen &lt;br /&gt;
&lt;br /&gt;
Scripteffect erstellt hat, kann man u.a. auch die Dauer einstellen. Wenn man Dauer 0 hat, heißt das, das diese 3 Blöcke genau einmal &lt;br /&gt;
&lt;br /&gt;
durchlaufen werden. Bei einer Dauer &amp;gt; 0 wird der Start- und Endblock jeweils einmal durchlaufen und die ganze Zeit dazwischen der &lt;br /&gt;
&lt;br /&gt;
Updateblock.&lt;br /&gt;
&lt;br /&gt;
Jedoch kann man immernoch MenuMode und GameMode-Blöcke mit einbauen. Diese werden auch normal abgearbeitet, wie bei jedem anderen &lt;br /&gt;
&lt;br /&gt;
Object-Script (aber logischerweise auch nur solange, wie der Zauber wirkt).&lt;br /&gt;
&lt;br /&gt;
=== Funktionsweise von Scriptzaubern ===&lt;br /&gt;
Sagen wir, der Spieler feuert einen selbsterstellten Zauber mit Scripteffekt irgendwo in die Gegend. Der Zauber trifft auf einen NPC. &lt;br /&gt;
&lt;br /&gt;
Nun wird das Script wird auf den NPC übertragen, ungefähr so, wie wenn man im CS dem NPC ein Script zuweist, jedoch ganz automatisch. &lt;br /&gt;
&lt;br /&gt;
Jetzt läuft das Script 'auf' dem NPC ab. Das Script denkt und handelt also so, wie als wenn es schon immer dem NPC zugewiesen ist, &lt;br /&gt;
&lt;br /&gt;
obwohl dieser NPC evtl in Wirklichkeit gar kein Script hat!&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Möglichkeiten ===&lt;br /&gt;
Was man alles mit Scriptzaubern grundsätzlich machen kann, soll hier erläutert werden:&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber als Zauber ====&lt;br /&gt;
Klar, wie der Name schon sagt, sind sie ürsprünglich als Zauber gedacht, mit dem kleinen Bonus, dass man nicht nur normale &lt;br /&gt;
&lt;br /&gt;
Zaubereffekte zur verfügung hat (wie Feuerschaden usw.), sondern eigene scripten kann.&lt;br /&gt;
Das sieht dann ungefähr so aus:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn melonsmash&lt;br /&gt;
&lt;br /&gt;
ref target&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
set target to getself&lt;br /&gt;
target.placeatme melon 0 0 200&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Aha, statt irgendwelchen langweiligen Zaubern fällt dem Ziel jetzt eine Melone auf den Kopf! Vielleicht nicht ungeheuer hilfreich, &lt;br /&gt;
&lt;br /&gt;
aber es soll verdeutlichen, dass man die Scripts wie normale Scripts behandeln kann, also es kann alles rein, was in anderen Scripts &lt;br /&gt;
&lt;br /&gt;
auch steht.&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber zum Herausfinden von RefIDs und Eigenschaften anderer Objekte ====&lt;br /&gt;
Herausfinden von RefIDs, werdet ihr fragen, das geht doch einfach in jedem Script mit [[Oblivion:Getself|GetSelf]], &lt;br /&gt;
&lt;br /&gt;
[[Oblivion:getactionref|GetActionRef]] oder z.b auch [[Oblivion:Getparentref|GetParentRef]]. Jaja, schon richtig, aber normalerweise &lt;br /&gt;
&lt;br /&gt;
kann man dabei nur die RefID des Objektes auf dem das Script liegt, seinen Parent oder den, der es aktiviert hat, herausfinden. &lt;br /&gt;
&lt;br /&gt;
Scriptzauber können nahezu jede RefID und andere Informationen über das getroffene Objekt herausfinden, z.b so:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn ActivateThingys&lt;br /&gt;
&lt;br /&gt;
ref Me&lt;br /&gt;
float hp&lt;br /&gt;
&lt;br /&gt;
begin Scripteffectstart&lt;br /&gt;
set Me to getself&lt;br /&gt;
switch.activate me&lt;br /&gt;
set questID.person to me&lt;br /&gt;
set hp to getbaseav health&lt;br /&gt;
messagebox &amp;quot;Lebenspunkte: %.0f&amp;quot; hp&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Das sieht jetzt etwas wie sinnlos aneinandergereihte Befehle aus (ist es auch mehr oder weniger), aber zeigt erstmal etwas &lt;br /&gt;
&lt;br /&gt;
wesentliches: durch getself kriegt man jetzt die refID des NPCs heraus, diese kann man gleich weiterverwerten, indem man z.b. von &lt;br /&gt;
&lt;br /&gt;
genau diesen NPC einen Schalter aktivieren lässt. Oder man speichert die RefID in einem Questscript.&lt;br /&gt;
Genausogut kann man sich auch alle Daten von dem NPC anzeigen lassen, wie die Lebenspunkte usw... Und das geht alles, obwohl der NPC &lt;br /&gt;
&lt;br /&gt;
normalerweise kein Script hat!&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber zur Steuerung von NPCs ====&lt;br /&gt;
Scriptzauber eignen sich auch hervorragend zur Massenmanipulation. Man muss nicht immer an die selbstverständlichen Aufgaben von &lt;br /&gt;
&lt;br /&gt;
Zaubern denken, wenn man von Scriptzaubern spricht. Damit lassen sich auch dynamische Prozesse steuern. Als Beispiel kann man &lt;br /&gt;
&lt;br /&gt;
anbringen, dass die Dorfbewohner, welche Martin vor dem Sturm auf das Obliviontor zujubeln kein eigenes Script haben, das ihnen sagt, &lt;br /&gt;
&lt;br /&gt;
was sie zu tun haben. Es wird ein Scriptspell mit einem Effektradius von einigen tausend Einheiten gewirkt, welcher den NPCs sagt, &lt;br /&gt;
&lt;br /&gt;
dass sie sich vor der Kirche zu versammeln haben.&lt;br /&gt;
Ähnliche Dinge kann man selber auch ohne großen Aufwand mit Scriptzaubern machen. Dazu würde schon das Script hier reichen:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn massmanipulation&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
addscriptpackage dosomething&lt;br /&gt;
evp&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gültigkeit von Scriptzaubern ===&lt;br /&gt;
Scriptzauber haben viele Vorzüge, jedoch muss man auch auf einiges achten, wenn man sie benutzt:&lt;br /&gt;
&lt;br /&gt;
==== Gültige Ziele ====&lt;br /&gt;
Man sollte sich merken, dass Scriptzauber auch nicht allmächtig sind, und man jetzt locker-flockig ein paar Zauber durch die Gegend &lt;br /&gt;
&lt;br /&gt;
schießt und alle Dinge das machen, was man will. Scriptzauber funktionieren nur auf diesen Objekten:&lt;br /&gt;
&lt;br /&gt;
Die volle Funktionsfähigkeit entfalten Scriptzauber bei '[[Oblivion:NPC|NPCs]]' und '[[Oblivion:Kreatur|Creatures]]'.&lt;br /&gt;
&lt;br /&gt;
Bei 'Leichen', '[[Oblivion:Activator|Activators]]', '[[Oblivion:Light|Lights]]' '[[Oblivion:Container|Containers]]', &lt;br /&gt;
&lt;br /&gt;
'[[Oblivion:Door|Doors]]' und 'Furniture' werden die 3 Blöcke (sofern vorhanden) nur ''einmal'' durchlaufen, danach endet der Zauber, &lt;br /&gt;
&lt;br /&gt;
ganz einfach deswegen, weil man diesen Objekten im CS normalerweise auch keine Zauber zuordnen kann.&lt;br /&gt;
&lt;br /&gt;
Bei '[[Oblivion:Static|Statics]]', '[[Oblivion:Tree|Trees]]' und allen '[[Oblivion:Item|Items]]' funktionieren Scriptzauber &lt;br /&gt;
&lt;br /&gt;
''nicht''.&lt;br /&gt;
&lt;br /&gt;
==== Probleme ====&lt;br /&gt;
Probleme treten bei der Variablenspeicherung auf. Wenn euer Zauber die Aufgabe hat, wichtige Daten über das getroffene Objekt zu &lt;br /&gt;
&lt;br /&gt;
sammeln, dann müsst ihr diese woanders speichern, als in dem Script des Zaubers. Solange der Zauber aktiv ist, kann er &lt;br /&gt;
&lt;br /&gt;
[Oblivion:Variablen|Variablen] speichern wie jedes andere normale Script auch. Wenn aber der Zauber zuende ist, wird er sozusagen von &lt;br /&gt;
&lt;br /&gt;
dem getroffenen Objekt wieder gelöscht, und damit gehen auch alle Variablen verloren. Vorsicht: Die Variablen werden auch gelöscht, &lt;br /&gt;
&lt;br /&gt;
wenn ihr die Zelle verlasst, in der das getroffene Objekt ist. Heißt also, wenn ein NPC getroffen ist, und der Spieler in eine andere &lt;br /&gt;
&lt;br /&gt;
Zelle wechselt (z.b. in ein Haus geht), dann gehen auch alle gespeicherten Daten im Script verloren.&lt;br /&gt;
&lt;br /&gt;
''Abhilfe'': Wenn es wirklich wichtige Dinge sind, die ihr über den NPC oder jedes andere getroffene Objekt erfahren wollt, so ist es &lt;br /&gt;
&lt;br /&gt;
am besten, diese an ein [Oblivion:Quest Scripts|Questscript] zu übertragen. Dazu muss man vorher eine Quest erstellt haben, und &lt;br /&gt;
&lt;br /&gt;
dieser ein Script zuordnen, welches vorzugsweise nur die Variablen beinhaltet:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn questvarsave&lt;br /&gt;
&lt;br /&gt;
ref target&lt;br /&gt;
float zpos&lt;br /&gt;
float rotation&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Speichern kann man dann mit dem Zauber so:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn vargaterspell&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
set questname.target to getself&lt;br /&gt;
set questname.zpos to getpos z&lt;br /&gt;
set questname.rotation to getange z&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Zauber|Zauber]]&lt;br /&gt;
* [[Oblivion:Magic Effect Scripts|Magic Effect Scripts]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Scriptkategorie |Scriptzauber|Einführung Scriptzauber}}&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Einf%C3%BChrung_Scriptzauber&amp;diff=3612</id>
		<title>Oblivion:Einführung Scriptzauber</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Einf%C3%BChrung_Scriptzauber&amp;diff=3612"/>
				<updated>2008-10-25T14:18:13Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Thema ==&lt;br /&gt;
Die Kategorie der Scriptzauber oder auch [Oblivion:Magic Effect Scripts|Magic Effect Scripts] ist eigentlich die Neuerung schlechthin &lt;br /&gt;
&lt;br /&gt;
im Scriptingbereich im Bezug zu Morrowind. Denn Scriptzauber sind unheimlich vielseitig und lassen sich auf fast jedes Objekt in &lt;br /&gt;
&lt;br /&gt;
Oblivion anwenden.&lt;br /&gt;
&lt;br /&gt;
Als allererstes muss man wissen, dass Scriptzauber nicht ganz wie normale Scripts geschrieben werden. Siehe [Oblivion:Magic Effect &lt;br /&gt;
&lt;br /&gt;
Scripts|Magic Effect Scripts]. Das Wesentliche ist, dass man das ganze im [Oblivion:Script Editor Window|Scriptfenster] als Magic &lt;br /&gt;
&lt;br /&gt;
Effect deklarieren muss und nicht Object Script, und dass man nicht die normalen Blocktypen benutzen darf, sondern eigens dafür &lt;br /&gt;
&lt;br /&gt;
gemachte:&lt;br /&gt;
&lt;br /&gt;
=== Blocktypen ===&lt;br /&gt;
'ScriptEffectStart' - Dieser Block wird genau einmal(!) als erstes ausgeführt, wenn der Zauber auf ein Ziel trifft&lt;br /&gt;
'ScriptEffectUpdate' - Dieser Block wird jeden Frame, den der Zauber wirkt, ausgeführt (auch in denselben wie ScriptEffectStart und &lt;br /&gt;
&lt;br /&gt;
ScriptEffectEnd)&lt;br /&gt;
'ScriptEffectEnd' - Dieser Block wird wieder genau einmal ausgeführt, wenn der Zauber endet&lt;br /&gt;
&lt;br /&gt;
Wie muss man sich das praktisch vorstellen? Wenn man im [Oblivion:Spell Window|Spell Window] seinen Zauber mit dem jeweiligen &lt;br /&gt;
&lt;br /&gt;
Scripteffect erstellt hat, kann man u.a. auch die Dauer einstellen. Wenn man Dauer 0 hat, heißt das, das diese 3 Blöcke genau einmal &lt;br /&gt;
&lt;br /&gt;
durchlaufen werden. Bei einer Dauer &amp;gt; 0 wird der Start- und Endblock jeweils einmal durchlaufen und die ganze Zeit dazwischen der &lt;br /&gt;
&lt;br /&gt;
Updateblock.&lt;br /&gt;
&lt;br /&gt;
Jedoch kann man immernoch MenuMode und GameMode-Blöcke mit einbauen. Diese werden auch normal abgearbeitet, wie bei jedem anderen &lt;br /&gt;
&lt;br /&gt;
Object-Script (aber logischerweise auch nur solange, wie der Zauber wirkt).&lt;br /&gt;
&lt;br /&gt;
=== Funktionsweise von Scriptzaubern ===&lt;br /&gt;
Sagen wir, der Spieler feuert einen selbsterstellten Zauber mit Scripteffekt irgendwo in die Gegend. Der Zauber trifft auf einen NPC. &lt;br /&gt;
&lt;br /&gt;
Nun wird das Script wird auf den NPC übertragen, ungefähr so, wie wenn man im CS dem NPC ein Script zuweist, jedoch ganz automatisch. &lt;br /&gt;
&lt;br /&gt;
Jetzt läuft das Script 'auf' dem NPC ab. Das Script denkt und handelt also so, wie als wenn es schon immer dem NPC zugewiesen ist, &lt;br /&gt;
&lt;br /&gt;
obwohl dieser NPC evtl in Wirklichkeit gar kein Script hat!&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Möglichkeiten ===&lt;br /&gt;
Was man alles mit Scriptzaubern grundsätzlich machen kann, soll hier erläutert werden:&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber als Zauber ====&lt;br /&gt;
Klar, wie der Name schon sagt, sind sie ürsprünglich als Zauber gedacht, mit dem kleinen Bonus, dass man nicht nur normale &lt;br /&gt;
&lt;br /&gt;
Zaubereffekte zur verfügung hat (wie Feuerschaden usw.), sondern eigene scripten kann.&lt;br /&gt;
Das sieht dann ungefähr so aus:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn melonsmash&lt;br /&gt;
&lt;br /&gt;
ref target&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
set target to getself&lt;br /&gt;
target.placeatme melon 0 0 200&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Aha, statt irgendwelchen langweiligen Zaubern fällt dem Ziel jetzt eine Melone auf den Kopf! Vielleicht nicht ungeheuer hilfreich, &lt;br /&gt;
&lt;br /&gt;
aber es soll verdeutlichen, dass man die Scripts wie normale Scripts behandeln kann, also es kann alles rein, was in anderen Scripts &lt;br /&gt;
&lt;br /&gt;
auch steht.&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber zum Herausfinden von RefIDs und Eigenschaften anderer Objekte ====&lt;br /&gt;
Herausfinden von RefIDs, werdet ihr fragen, das geht doch einfach in jedem Script mit [[Oblivion:Getself|GetSelf]], &lt;br /&gt;
&lt;br /&gt;
[[Oblivion:getactionref|GetActionRef]] oder z.b auch [[Oblivion:Getparentref|GetParentRef]]. Jaja, schon richtig, aber normalerweise &lt;br /&gt;
&lt;br /&gt;
kann man dabei nur die RefID des Objektes auf dem das Script liegt, seinen Parent oder den, der es aktiviert hat, herausfinden. &lt;br /&gt;
&lt;br /&gt;
Scriptzauber können nahezu jede RefID und andere Informationen über das getroffene Objekt herausfinden, z.b so:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn ActivateThingys&lt;br /&gt;
&lt;br /&gt;
ref Me&lt;br /&gt;
float hp&lt;br /&gt;
&lt;br /&gt;
begin Scripteffectstart&lt;br /&gt;
set Me to getself&lt;br /&gt;
switch.activate me&lt;br /&gt;
set questID.person to me&lt;br /&gt;
set hp to getbaseav health&lt;br /&gt;
messagebox &amp;quot;Lebenspunkte: %.0f&amp;quot; hp&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Das sieht jetzt etwas wie sinnlos aneinandergereihte Befehle aus (ist es auch mehr oder weniger), aber zeigt erstmal etwas &lt;br /&gt;
&lt;br /&gt;
wesentliches: durch getself kriegt man jetzt die refID des NPCs heraus, diese kann man gleich weiterverwerten, indem man z.b. von &lt;br /&gt;
&lt;br /&gt;
genau diesen NPC einen Schalter aktivieren lässt. Oder man speichert die RefID in einem Questscript.&lt;br /&gt;
Genausogut kann man sich auch alle Daten von dem NPC anzeigen lassen, wie die Lebenspunkte usw... Und das geht alles, obwohl der NPC &lt;br /&gt;
&lt;br /&gt;
normalerweise kein Script hat!&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber zur Steuerung von NPCs ====&lt;br /&gt;
Scriptzauber eignen sich auch hervorragend zur Massenmanipulation. Man muss nicht immer an die selbstverständlichen Aufgaben von &lt;br /&gt;
&lt;br /&gt;
Zaubern denken, wenn man von Scriptzaubern spricht. Damit lassen sich auch dynamische Prozesse steuern. Als Beispiel kann man &lt;br /&gt;
&lt;br /&gt;
anbringen, dass die Dorfbewohner, welche Martin vor dem Sturm auf das Obliviontor zujubeln kein eigenes Script haben, das ihnen sagt, &lt;br /&gt;
&lt;br /&gt;
was sie zu tun haben. Es wird ein Scriptspell mit einem Effektradius von einigen tausend Einheiten gewirkt, welcher den NPCs sagt, &lt;br /&gt;
&lt;br /&gt;
dass sie sich vor der Kirche zu versammeln haben.&lt;br /&gt;
Ähnliche Dinge kann man selber auch ohne großen Aufwand mit Scriptzaubern machen. Dazu würde schon das Script hier reichen:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn massmanipulation&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
addscriptpackage dosomething&lt;br /&gt;
evp&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gültigkeit von Scriptzaubern ===&lt;br /&gt;
Scriptzauber haben viele Vorzüge, jedoch muss man auch auf einiges achten, wenn man sie benutzt:&lt;br /&gt;
&lt;br /&gt;
==== Gültige Ziele ====&lt;br /&gt;
Man sollte sich merken, dass Scriptzauber auch nicht allmächtig sind, und man jetzt locker-flockig ein paar Zauber durch die Gegend &lt;br /&gt;
&lt;br /&gt;
schießt und alle Dinge das machen, was man will. Scriptzauber funktionieren nur auf diesen Objekten:&lt;br /&gt;
&lt;br /&gt;
Die volle Funktionsfähigkeit entfalten Scriptzauber bei '[[Oblivion:NPC|NPCs]]' und '[[Oblivion:Kreatur|Creatures]]'.&lt;br /&gt;
&lt;br /&gt;
Bei 'Leichen', '[[Oblivion:Activator|Activators]]', '[[Oblivion:Light|Lights]]' '[[Oblivion:Container|Containers]]', &lt;br /&gt;
&lt;br /&gt;
'[[Oblivion:Door|Doors]]' und 'Furniture' werden die 3 Blöcke (sofern vorhanden) nur ''einmal'' durchlaufen, danach endet der Zauber, &lt;br /&gt;
&lt;br /&gt;
ganz einfach deswegen, weil man diesen Objekten im CS normalerweise auch keine Zauber zuordnen kann.&lt;br /&gt;
&lt;br /&gt;
Bei '[[Oblivion:Static|Statics]]', '[[Oblivion:Tree|Trees]]' und allen '[[Oblivion:Item|Items]]' funktionieren Scriptzauber &lt;br /&gt;
&lt;br /&gt;
''nicht''.&lt;br /&gt;
&lt;br /&gt;
==== Probleme ====&lt;br /&gt;
Probleme treten bei der Variablenspeicherung auf. Wenn euer Zauber die Aufgabe hat, wichtige Daten über das getroffene Objekt zu &lt;br /&gt;
&lt;br /&gt;
sammeln, dann müsst ihr diese woanders speichern, als in dem Script des Zaubers. Solange der Zauber aktiv ist, kann er &lt;br /&gt;
&lt;br /&gt;
[Oblivion:Variablen|Variablen] speichern wie jedes andere normale Script auch. Wenn aber der Zauber zuende ist, wird er sozusagen von &lt;br /&gt;
&lt;br /&gt;
dem getroffenen Objekt wieder gelöscht, und damit gehen auch alle Variablen verloren. Vorsicht: Die Variablen werden auch gelöscht, &lt;br /&gt;
&lt;br /&gt;
wenn ihr die Zelle verlasst, in der das getroffene Objekt ist. Heißt also, wenn ein NPC getroffen ist, und der Spieler in eine andere &lt;br /&gt;
&lt;br /&gt;
Zelle wechselt (z.b. in ein Haus geht), dann gehen auch alle gespeicherten Daten im Script verloren.&lt;br /&gt;
&lt;br /&gt;
''Abhilfe'': Wenn es wirklich wichtige Dinge sind, die ihr über den NPC oder jedes andere getroffene Objekt erfahren wollt, so ist es &lt;br /&gt;
&lt;br /&gt;
am besten, diese an ein [Oblivion:Quest Scripts|Questscript] zu übertragen. Dazu muss man vorher eine Quest erstellt haben, und &lt;br /&gt;
&lt;br /&gt;
dieser ein Script zuordnen, welches vorzugsweise nur die Variablen beinhaltet:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn questvarsave&lt;br /&gt;
&lt;br /&gt;
ref target&lt;br /&gt;
float zpos&lt;br /&gt;
float rotation&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Speichern kann man dann mit dem Zauber so:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn vargaterspell&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
set questname.target to getself&lt;br /&gt;
set questname.zpos to getpos z&lt;br /&gt;
set questname.rotation to getange z&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Zauber|Zauber]]&lt;br /&gt;
* [[Oblivion:Magic Effect Scripts|Magic Effect Scripts]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Scriptkategorie |Scriptzauber|Einführung Scriptzauber}}&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Einf%C3%BChrung_Scriptzauber&amp;diff=3611</id>
		<title>Oblivion:Einführung Scriptzauber</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Einf%C3%BChrung_Scriptzauber&amp;diff=3611"/>
				<updated>2008-10-25T14:17:12Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Thema ==&lt;br /&gt;
Die Kategorie der Scriptzauber oder auch [Oblivion:Magic Effect Scripts|Magic Effect Scripts] ist eigentlich die Neuerung schlechthin &lt;br /&gt;
&lt;br /&gt;
im Scriptingbereich im Bezug zu Morrowind. Denn Scriptzauber sind unheimlich vielseitig und lassen sich auf fast jedes Objekt in &lt;br /&gt;
&lt;br /&gt;
Oblivion anwenden.&lt;br /&gt;
&lt;br /&gt;
Als allererstes muss man wissen, dass Scriptzauber nicht ganz wie normale Scripts geschrieben werden. Siehe [Oblivion:Magic Effect &lt;br /&gt;
&lt;br /&gt;
Scripts|Magic Effect Scripts]. Das Wesentliche ist, dass man das ganze im [Oblivion:Script Editor Window|Scriptfenster] als Magic &lt;br /&gt;
&lt;br /&gt;
Effect deklarieren muss und nicht Object Script, und dass man nicht die normalen Blocktypen benutzen darf, sondern eigens dafür &lt;br /&gt;
&lt;br /&gt;
gemachte:&lt;br /&gt;
&lt;br /&gt;
=== Blocktypen ===&lt;br /&gt;
'ScriptEffectStart' - Dieser Block wird genau einmal(!) als erstes ausgeführt, wenn der Zauber auf ein Ziel trifft&lt;br /&gt;
'ScriptEffectUpdate' - Dieser Block wird jeden Frame, den der Zauber wirkt, ausgeführt (auch in denselben wie ScriptEffectStart und &lt;br /&gt;
&lt;br /&gt;
ScriptEffectEnd)&lt;br /&gt;
'ScriptEffectEnd' - Dieser Block wird wieder genau einmal ausgeführt, wenn der Zauber endet&lt;br /&gt;
&lt;br /&gt;
Wie muss man sich das praktisch vorstellen? Wenn man im [Oblivion:Spell Window|Spell Window] seinen Zauber mit dem jeweiligen &lt;br /&gt;
&lt;br /&gt;
Scripteffect erstellt hat, kann man u.a. auch die Dauer einstellen. Wenn man Dauer 0 hat, heißt das, das diese 3 Blöcke genau einmal &lt;br /&gt;
&lt;br /&gt;
durchlaufen werden. Bei einer Dauer &amp;gt; 0 wird der Start- und Endblock jeweils einmal durchlaufen und die ganze Zeit dazwischen der &lt;br /&gt;
&lt;br /&gt;
Updateblock.&lt;br /&gt;
&lt;br /&gt;
Jedoch kann man immernoch MenuMode und GameMode-Blöcke mit einbauen. Diese werden auch normal abgearbeitet, wie bei jedem anderen &lt;br /&gt;
&lt;br /&gt;
Object-Script (aber logischerweise auch nur solange, wie der Zauber wirkt).&lt;br /&gt;
&lt;br /&gt;
=== Funktionsweise von Scriptzaubern ===&lt;br /&gt;
Sagen wir, der Spieler feuert einen selbsterstellten Zauber mit Scripteffekt irgendwo in die Gegend. Der Zauber trifft auf einen NPC. &lt;br /&gt;
&lt;br /&gt;
Nun wird das Script wird auf den NPC übertragen, ungefähr so, wie wenn man im CS dem NPC ein Script zuweist, jedoch ganz automatisch. &lt;br /&gt;
&lt;br /&gt;
Jetzt läuft das Script 'auf' dem NPC ab. Das Script denkt und handelt also so, wie als wenn es schon immer dem NPC zugewiesen ist, &lt;br /&gt;
&lt;br /&gt;
obwohl dieser NPC evtl in Wirklichkeit gar kein Script hat!&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Möglichkeiten ===&lt;br /&gt;
Was man alles mit Scriptzaubern grundsätzlich machen kann, soll hier erläutert werden:&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber als Zauber ====&lt;br /&gt;
Klar, wie der Name schon sagt, sind sie ürsprünglich als Zauber gedacht, mit dem kleinen Bonus, dass man nicht nur normale &lt;br /&gt;
&lt;br /&gt;
Zaubereffekte zur verfügung hat (wie Feuerschaden usw.), sondern eigene scripten kann.&lt;br /&gt;
Das sieht dann ungefähr so aus:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn melonsmash&lt;br /&gt;
&lt;br /&gt;
ref target&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
set target to getself&lt;br /&gt;
target.placeatme melon 0 0 200&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Aha, statt irgendwelchen langweiligen Zaubern fällt dem Ziel jetzt eine Melone auf den Kopf! Vielleicht nicht ungeheuer hilfreich, &lt;br /&gt;
&lt;br /&gt;
aber es soll verdeutlichen, dass man die Scripts wie normale Scripts behandeln kann, also es kann alles rein, was in anderen Scripts &lt;br /&gt;
&lt;br /&gt;
auch steht.&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber zum Herausfinden von RefIDs und Eigenschaften anderer Objekte ====&lt;br /&gt;
Herausfinden von RefIDs, werdet ihr fragen, das geht doch einfach in jedem Script mit [[Oblivion:Getself|GetSelf]], &lt;br /&gt;
&lt;br /&gt;
[[Oblivion:getactionref|GetActionRef]] oder z.b auch [[Oblivion:Getparentref|GetParentRef]]. Jaja, schon richtig, aber normalerweise &lt;br /&gt;
&lt;br /&gt;
kann man dabei nur die RefID des Objektes auf dem das Script liegt, seinen Parent oder den, der es aktiviert hat, herausfinden. &lt;br /&gt;
&lt;br /&gt;
Scriptzauber können nahezu jede RefID und andere Informationen über das getroffene Objekt herausfinden, z.b so:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn ActivateThingys&lt;br /&gt;
&lt;br /&gt;
ref Me&lt;br /&gt;
float hp&lt;br /&gt;
&lt;br /&gt;
begin Scripteffectstart&lt;br /&gt;
set Me to getself&lt;br /&gt;
switch.activate me&lt;br /&gt;
set questID.person to me&lt;br /&gt;
set hp to getbaseav health&lt;br /&gt;
messagebox &amp;quot;Lebenspunkte: %.0f&amp;quot; hp&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Das sieht jetzt etwas wie sinnlos aneinandergereihte Befehle aus (ist es auch mehr oder weniger), aber zeigt erstmal etwas &lt;br /&gt;
&lt;br /&gt;
wesentliches: durch getself kriegt man jetzt die refID des NPCs heraus, diese kann man gleich weiterverwerten, indem man z.b. von &lt;br /&gt;
&lt;br /&gt;
genau diesen NPC einen Schalter aktivieren lässt. Oder man speichert die RefID in einem Questscript.&lt;br /&gt;
Genausogut kann man sich auch alle Daten von dem NPC anzeigen lassen, wie die Lebenspunkte usw... Und das geht alles, obwohl der NPC &lt;br /&gt;
&lt;br /&gt;
normalerweise kein Script hat!&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber zur Steuerung von NPCs ====&lt;br /&gt;
Scriptzauber eignen sich auch hervorragend zur Massenmanipulation. Man muss nicht immer an die selbstverständlichen Aufgaben von &lt;br /&gt;
&lt;br /&gt;
Zaubern denken, wenn man von Scriptzaubern spricht. Damit lassen sich auch dynamische Prozesse steuern. Als Beispiel kann man &lt;br /&gt;
&lt;br /&gt;
anbringen, dass die Dorfbewohner, welche Martin vor dem Sturm auf das Obliviontor zujubeln kein eigenes Script haben, das ihnen sagt, &lt;br /&gt;
&lt;br /&gt;
was sie zu tun haben. Es wird ein Scriptspell mit einem Effektradius von einigen tausend Einheiten gewirkt, welcher den NPCs sagt, &lt;br /&gt;
&lt;br /&gt;
dass sie sich vor der Kirche zu versammeln haben.&lt;br /&gt;
Ähnliche Dinge kann man selber auch ohne großen Aufwand mit Scriptzaubern machen. Dazu würde schon das Script hier reichen:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn massmanipulation&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
addscriptpackage dosomething&lt;br /&gt;
evp&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gültigkeit von Scriptzaubern ===&lt;br /&gt;
Scriptzauber haben viele Vorzüge, jedoch muss man auch auf einiges achten, wenn man sie benutzt:&lt;br /&gt;
&lt;br /&gt;
==== Gültige Ziele ====&lt;br /&gt;
Man sollte sich merken, dass Scriptzauber auch nicht allmächtig sind, und man jetzt locker-flockig ein paar Zauber durch die Gegend &lt;br /&gt;
&lt;br /&gt;
schießt und alle Dinge das machen, was man will. Scriptzauber funktionieren nur auf diesen Objekten:&lt;br /&gt;
&lt;br /&gt;
Die volle Funktionsfähigkeit entfalten Scriptzauber bei '[[Oblivion:NPC|NPCs]]' und '[[Oblivion:Kreatur|Creatures]]'.&lt;br /&gt;
&lt;br /&gt;
Bei 'Leichen', '[[Oblivion:Activator|Activators]]', '[[Oblivion:Light|Lights]]' '[[Oblivion:Container|Containers]]', &lt;br /&gt;
&lt;br /&gt;
'[[Oblivion:Door|Doors]]' und 'Furniture' werden die 3 Blöcke (sofern vorhanden) nur ''einmal'' durchlaufen, danach endet der Zauber, &lt;br /&gt;
&lt;br /&gt;
ganz einfach deswegen, weil man diesen Objekten im CS normalerweise auch keine Zauber zuordnen kann.&lt;br /&gt;
&lt;br /&gt;
Bei '[[Oblivion:Static|Statics]]', '[[Oblivion:Tree|Trees]]' und allen '[[Oblivion:Item|Items]]' funktionieren Scriptzauber &lt;br /&gt;
&lt;br /&gt;
''nicht''.&lt;br /&gt;
&lt;br /&gt;
==== Probleme ====&lt;br /&gt;
Probleme treten bei der Variablenspeicherung auf. Wenn euer Zauber die Aufgabe hat, wichtige Daten über das getroffene Objekt zu &lt;br /&gt;
&lt;br /&gt;
sammeln, dann müsst ihr diese woanders speichern, als in dem Script des Zaubers. Solange der Zauber aktiv ist, kann er &lt;br /&gt;
&lt;br /&gt;
[Oblivion:Variablen|Variablen] speichern wie jedes andere normale Script auch. Wenn aber der Zauber zuende ist, wird er sozusagen von &lt;br /&gt;
&lt;br /&gt;
dem getroffenen Objekt wieder gelöscht, und damit gehen auch alle Variablen verloren. Vorsicht: Die Variablen werden auch gelöscht, &lt;br /&gt;
&lt;br /&gt;
wenn ihr die Zelle verlasst, in der das getroffene Objekt ist. Heißt also, wenn ein NPC getroffen ist, und der Spieler in eine andere &lt;br /&gt;
&lt;br /&gt;
Zelle wechselt (z.b. in ein Haus geht), dann gehen auch alle gespeicherten Daten im Script verloren.&lt;br /&gt;
&lt;br /&gt;
''Abhilfe'': Wenn es wirklich wichtige Dinge sind, die ihr über den NPC oder jedes andere getroffene Objekt erfahren wollt, so ist es &lt;br /&gt;
&lt;br /&gt;
am besten, diese an ein [Oblivion:Quest Scripts|Questscript] zu übertragen. Dazu muss man vorher eine Quest erstellt haben, und &lt;br /&gt;
&lt;br /&gt;
dieser ein Script zuordnen, welches vorzugsweise nur die Variablen beinhaltet:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn questvarsave&lt;br /&gt;
&lt;br /&gt;
ref target&lt;br /&gt;
float zpos&lt;br /&gt;
float rotation&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Speichern kann man dann mit dem Zauber so:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn vargaterspell&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
set questname.target to getself&lt;br /&gt;
set questname.zpos to getpos z&lt;br /&gt;
set questname.rotation to getange z&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[:Kategorie:Zauber|Zauber]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Scriptkategorie |Scriptzauber|Einführung Scriptzauber}}&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Einf%C3%BChrung_Scriptzauber&amp;diff=3610</id>
		<title>Oblivion:Einführung Scriptzauber</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Einf%C3%BChrung_Scriptzauber&amp;diff=3610"/>
				<updated>2008-10-25T14:16:31Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: Die Seite wurde neu angelegt: == Thema == Die Kategorie der Scriptzauber oder auch [Oblivion:Magic Effect Scripts|Magic Effect Scripts] ist eigentlich die Neuerung schlechthin   im Scriptingbereich ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Thema ==&lt;br /&gt;
Die Kategorie der Scriptzauber oder auch [Oblivion:Magic Effect Scripts|Magic Effect Scripts] ist eigentlich die Neuerung schlechthin &lt;br /&gt;
&lt;br /&gt;
im Scriptingbereich im Bezug zu Morrowind. Denn Scriptzauber sind unheimlich vielseitig und lassen sich auf fast jedes Objekt in &lt;br /&gt;
&lt;br /&gt;
Oblivion anwenden.&lt;br /&gt;
&lt;br /&gt;
Als allererstes muss man wissen, dass Scriptzauber nicht ganz wie normale Scripts geschrieben werden. Siehe [Oblivion:Magic Effect &lt;br /&gt;
&lt;br /&gt;
Scripts|Magic Effect Scripts]. Das Wesentliche ist, dass man das ganze im [Oblivion:Script Editor Window|Scriptfenster] als Magic &lt;br /&gt;
&lt;br /&gt;
Effect deklarieren muss und nicht Object Script, und dass man nicht die normalen Blocktypen benutzen darf, sondern eigens dafür &lt;br /&gt;
&lt;br /&gt;
gemachte:&lt;br /&gt;
&lt;br /&gt;
=== Blocktypen ===&lt;br /&gt;
'ScriptEffectStart' - Dieser Block wird genau einmal(!) als erstes ausgeführt, wenn der Zauber auf ein Ziel trifft&lt;br /&gt;
'ScriptEffectUpdate' - Dieser Block wird jeden Frame, den der Zauber wirkt, ausgeführt (auch in denselben wie ScriptEffectStart und &lt;br /&gt;
&lt;br /&gt;
ScriptEffectEnd)&lt;br /&gt;
'ScriptEffectEnd' - Dieser Block wird wieder genau einmal ausgeführt, wenn der Zauber endet&lt;br /&gt;
&lt;br /&gt;
Wie muss man sich das praktisch vorstellen? Wenn man im [Oblivion:Spell Window|Spell Window] seinen Zauber mit dem jeweiligen &lt;br /&gt;
&lt;br /&gt;
Scripteffect erstellt hat, kann man u.a. auch die Dauer einstellen. Wenn man Dauer 0 hat, heißt das, das diese 3 Blöcke genau einmal &lt;br /&gt;
&lt;br /&gt;
durchlaufen werden. Bei einer Dauer &amp;gt; 0 wird der Start- und Endblock jeweils einmal durchlaufen und die ganze Zeit dazwischen der &lt;br /&gt;
&lt;br /&gt;
Updateblock.&lt;br /&gt;
&lt;br /&gt;
Jedoch kann man immernoch MenuMode und GameMode-Blöcke mit einbauen. Diese werden auch normal abgearbeitet, wie bei jedem anderen &lt;br /&gt;
&lt;br /&gt;
Object-Script (aber logischerweise auch nur solange, wie der Zauber wirkt).&lt;br /&gt;
&lt;br /&gt;
=== Funktionsweise von Scriptzaubern ===&lt;br /&gt;
Sagen wir, der Spieler feuert einen selbsterstellten Zauber mit Scripteffekt irgendwo in die Gegend. Der Zauber trifft auf einen NPC. &lt;br /&gt;
&lt;br /&gt;
Nun wird das Script wird auf den NPC übertragen, ungefähr so, wie wenn man im CS dem NPC ein Script zuweist, jedoch ganz automatisch. &lt;br /&gt;
&lt;br /&gt;
Jetzt läuft das Script 'auf' dem NPC ab. Das Script denkt und handelt also so, wie als wenn es schon immer dem NPC zugewiesen ist, &lt;br /&gt;
&lt;br /&gt;
obwohl dieser NPC evtl in Wirklichkeit gar kein Script hat!&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Möglichkeiten ===&lt;br /&gt;
Was man alles mit Scriptzaubern grundsätzlich machen kann, soll hier erläutert werden:&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber als Zauber ====&lt;br /&gt;
Klar, wie der Name schon sagt, sind sie ürsprünglich als Zauber gedacht, mit dem kleinen Bonus, dass man nicht nur normale &lt;br /&gt;
&lt;br /&gt;
Zaubereffekte zur verfügung hat (wie Feuerschaden usw.), sondern eigene scripten kann.&lt;br /&gt;
Das sieht dann ungefähr so aus:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn melonsmash&lt;br /&gt;
&lt;br /&gt;
ref target&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
set target to getself&lt;br /&gt;
target.placeatme melon 0 0 200&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Aha, statt irgendwelchen langweiligen Zaubern fällt dem Ziel jetzt eine Melone auf den Kopf! Vielleicht nicht ungeheuer hilfreich, &lt;br /&gt;
&lt;br /&gt;
aber es soll verdeutlichen, dass man die Scripts wie normale Scripts behandeln kann, also es kann alles rein, was in anderen Scripts &lt;br /&gt;
&lt;br /&gt;
auch steht.&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber zum Herausfinden von RefIDs und Eigenschaften anderer Objekte ====&lt;br /&gt;
Herausfinden von RefIDs, werdet ihr fragen, das geht doch einfach in jedem Script mit [[Oblivion:Getself|GetSelf]], &lt;br /&gt;
&lt;br /&gt;
[[Oblivion:getactionref|GetActionRef]] oder z.b auch [[Oblivion:Getparentref|GetParentRef]]. Jaja, schon richtig, aber normalerweise &lt;br /&gt;
&lt;br /&gt;
kann man dabei nur die RefID des Objektes auf dem das Script liegt, seinen Parent oder den, der es aktiviert hat, herausfinden. &lt;br /&gt;
&lt;br /&gt;
Scriptzauber können nahezu jede RefID und andere Informationen über das getroffene Objekt herausfinden, z.b so:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn ActivateThingys&lt;br /&gt;
&lt;br /&gt;
ref Me&lt;br /&gt;
float hp&lt;br /&gt;
&lt;br /&gt;
begin Scripteffectstart&lt;br /&gt;
set Me to getself&lt;br /&gt;
switch.activate me&lt;br /&gt;
set questID.person to me&lt;br /&gt;
set hp to getbaseav health&lt;br /&gt;
messagebox &amp;quot;Lebenspunkte: %.0f&amp;quot; hp&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Das sieht jetzt etwas wie sinnlos aneinandergereihte Befehle aus (ist es auch mehr oder weniger), aber zeigt erstmal etwas &lt;br /&gt;
&lt;br /&gt;
wesentliches: durch getself kriegt man jetzt die refID des NPCs heraus, diese kann man gleich weiterverwerten, indem man z.b. von &lt;br /&gt;
&lt;br /&gt;
genau diesen NPC einen Schalter aktivieren lässt. Oder man speichert die RefID in einem Questscript.&lt;br /&gt;
Genausogut kann man sich auch alle Daten von dem NPC anzeigen lassen, wie die Lebenspunkte usw... Und das geht alles, obwohl der NPC &lt;br /&gt;
&lt;br /&gt;
normalerweise kein Script hat!&lt;br /&gt;
&lt;br /&gt;
==== Scriptzauber zur Steuerung von NPCs ====&lt;br /&gt;
Scriptzauber eignen sich auch hervorragend zur Massenmanipulation. Man muss nicht immer an die selbstverständlichen Aufgaben von &lt;br /&gt;
&lt;br /&gt;
Zaubern denken, wenn man von Scriptzaubern spricht. Damit lassen sich auch dynamische Prozesse steuern. Als Beispiel kann man &lt;br /&gt;
&lt;br /&gt;
anbringen, dass die Dorfbewohner, welche Martin vor dem Sturm auf das Obliviontor zujubeln kein eigenes Script haben, das ihnen sagt, &lt;br /&gt;
&lt;br /&gt;
was sie zu tun haben. Es wird ein Scriptspell mit einem Effektradius von einigen tausend Einheiten gewirkt, welcher den NPCs sagt, &lt;br /&gt;
&lt;br /&gt;
dass sie sich vor der Kirche zu versammeln haben.&lt;br /&gt;
Ähnliche Dinge kann man selber auch ohne großen Aufwand mit Scriptzaubern machen. Dazu würde schon das Script hier reichen:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn massmanipulation&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
addscriptpackage dosomething&lt;br /&gt;
evp&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gültigkeit von Scriptzaubern ===&lt;br /&gt;
Scriptzauber haben viele Vorzüge, jedoch muss man auch auf einiges achten, wenn man sie benutzt:&lt;br /&gt;
&lt;br /&gt;
==== Gültige Ziele ====&lt;br /&gt;
Man sollte sich merken, dass Scriptzauber auch nicht allmächtig sind, und man jetzt locker-flockig ein paar Zauber durch die Gegend &lt;br /&gt;
&lt;br /&gt;
schießt und alle Dinge das machen, was man will. Scriptzauber funktionieren nur auf diesen Objekten:&lt;br /&gt;
&lt;br /&gt;
Die volle Funktionsfähigkeit entfalten Scriptzauber bei '[[Oblivion:NPC|NPCs]]' und '[[Oblivion:Kreatur|Creatures]]'.&lt;br /&gt;
&lt;br /&gt;
Bei 'Leichen', '[[Oblivion:Activator|Activators]]', '[[Oblivion:Light|Lights]]' '[[Oblivion:Container|Containers]]', &lt;br /&gt;
&lt;br /&gt;
'[[Oblivion:Door|Doors]]' und 'Furniture' werden die 3 Blöcke (sofern vorhanden) nur ''einmal'' durchlaufen, danach endet der Zauber, &lt;br /&gt;
&lt;br /&gt;
ganz einfach deswegen, weil man diesen Objekten im CS normalerweise auch keine Zauber zuordnen kann.&lt;br /&gt;
&lt;br /&gt;
Bei '[[Oblivion:Static|Statics]]', '[[Oblivion:Tree|Trees]]' und allen '[[Oblivion:Item|Items]]' funktionieren Scriptzauber &lt;br /&gt;
&lt;br /&gt;
''nicht''.&lt;br /&gt;
&lt;br /&gt;
==== Probleme ====&lt;br /&gt;
Probleme treten bei der Variablenspeicherung auf. Wenn euer Zauber die Aufgabe hat, wichtige Daten über das getroffene Objekt zu &lt;br /&gt;
&lt;br /&gt;
sammeln, dann müsst ihr diese woanders speichern, als in dem Script des Zaubers. Solange der Zauber aktiv ist, kann er &lt;br /&gt;
&lt;br /&gt;
[Oblivion:Variablen|Variablen] speichern wie jedes andere normale Script auch. Wenn aber der Zauber zuende ist, wird er sozusagen von &lt;br /&gt;
&lt;br /&gt;
dem getroffenen Objekt wieder gelöscht, und damit gehen auch alle Variablen verloren. Vorsicht: Die Variablen werden auch gelöscht, &lt;br /&gt;
&lt;br /&gt;
wenn ihr die Zelle verlasst, in der das getroffene Objekt ist. Heißt also, wenn ein NPC getroffen ist, und der Spieler in eine andere &lt;br /&gt;
&lt;br /&gt;
Zelle wechselt (z.b. in ein Haus geht), dann gehen auch alle gespeicherten Daten im Script verloren.&lt;br /&gt;
&lt;br /&gt;
''Abhilfe'': Wenn es wirklich wichtige Dinge sind, die ihr über den NPC oder jedes andere getroffene Objekt erfahren wollt, so ist es &lt;br /&gt;
&lt;br /&gt;
am besten, diese an ein [Oblivion:Quest Scripts|Questscript] zu übertragen. Dazu muss man vorher eine Quest erstellt haben, und &lt;br /&gt;
&lt;br /&gt;
dieser ein Script zuordnen, welches vorzugsweise nur die Variablen beinhaltet:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn questvarsave&lt;br /&gt;
&lt;br /&gt;
ref target&lt;br /&gt;
float zpos&lt;br /&gt;
float rotation&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
Speichern kann man dann mit dem Zauber so:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;&lt;br /&gt;
scn vargaterspell&lt;br /&gt;
&lt;br /&gt;
begin scripteffectstart&lt;br /&gt;
set questname.target to getself&lt;br /&gt;
set questname.zpos to getpos z&lt;br /&gt;
set questname.rotation to getange z&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[:Kategorie:Zauber|Zauber]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Scriptkategorie |Scriptzauber|Level 1 Scripts|Einführung Scriptzauber}}&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Magic_Effect_Scripts&amp;diff=3609</id>
		<title>Oblivion:Magic Effect Scripts</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Magic_Effect_Scripts&amp;diff=3609"/>
				<updated>2008-10-25T14:16:07Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Grundlegendes ==&lt;br /&gt;
&lt;br /&gt;
Magic Effect Scripts sind besondere Scripts, die benutzt werden können, um einen gescripteten magischen Effekt zu erstellen. Sie werden über das normale [[ob:Script_Editor_Window|Script Window]] erstellt, müssen dort aber als 'Magic Effect' ausgewählt werden, um auf diese Art benutzt werden zu können. Beachte auch, dass die gescripteten Effekte nur ausgeführt werden, während sie unter Game Mode sind.&lt;br /&gt;
&lt;br /&gt;
Diese Scripts benutzen keine gewöhnlichen Begin/End-Blöcke, da sie nur ausgeführt werden, wenn der Zauber aktiv ist. Sie benutzen drei besondere Block-Arten und eine Sonder-Funktion. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Magie-Effekt Blöcke: &lt;br /&gt;
*[[ob:ScriptEffectStart|ScriptEffectStart]]  &lt;br /&gt;
*[[ob:ScriptEffectFinish|ScriptEffectFinish]]  &lt;br /&gt;
*[[ob:ScriptEffectUpdate|ScriptEffectUpdate]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Magie-Effekt Funktion: &lt;br /&gt;
*[[ob:ScriptEffectElapsedSeconds|ScriptEffectElapsedSeconds]]  &lt;br /&gt;
&lt;br /&gt;
Ansonsten verhalten sich Magic Effect Scripts wie [[ob:Reference Scripts|Reference Scripts]] und können gewöhnliche Funktionen innerhalb der Magic Effect-Blöcke verwenden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anmerkungen ==&lt;br /&gt;
&lt;br /&gt;
* Gescriptete Sprüche laufen auf Leichen, [[ob:Container|Containers]], [[ob:Door|Türen]], und Einrichtung, werden aber einfach ein Mal durch das gesamte Script gehen, egal wie lange der Zauber anhält. Alle Block-Arten, [[ob:ScriptEffectStart|ScriptEffectStart]], [[ob:ScriptEffectUpdate|ScriptEffectUpdate]], und [[ob:ScriptEffectFinish|ScriptEffectFinish]] werden ausgeführt.&lt;br /&gt;
* Gescriptete Sprüche verhalten sich unvorhersehbar, wenn sie auf einem [[ob:Actor|Actor]] außerhalb der aktuell geladenen Zelle ausgeführt werden. Einige bekannte Probleme sind:&lt;br /&gt;
:* Variablen im Script werden falsch initiiert;&lt;br /&gt;
:* Der ScriptEffectFinish-Block wird eventuell falsch ausgeführt;&lt;br /&gt;
:* Für gescriptete Fähigkeiten wird jedes Mal eine neue Instanz des Scripts erstellt, wenn der Spieler die Zelle mit dem entsprechenden Actor betritt.&lt;br /&gt;
Andere bizarre Ergebnisse müssen erst noch bestätigt oder erklärt werden. Eine Möglichkeit ist es, dem Actor einen gescripteten Gegenstand in das Inventar zu legen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
{{Übersetzung|constwiki|Magic_effect_scripts}}&lt;br /&gt;
* [[ob:Quest Scripts|Quest Scripts]]&lt;br /&gt;
&lt;br /&gt;
* [[ob:Object Scripts|Object Scripts]]&lt;br /&gt;
&lt;br /&gt;
* [[ob:Einführung Scriptzauber|Einführung Scriptzauber]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Sprachelemente|Magic Effect Scripts]]&lt;br /&gt;
[[Category:Scripting_Wissen|Magic Effect Scripts]]&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Alternativen_mit_Messageboxen_ausw%C3%A4hlen&amp;diff=3557</id>
		<title>Oblivion:Alternativen mit Messageboxen auswählen</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Alternativen_mit_Messageboxen_ausw%C3%A4hlen&amp;diff=3557"/>
				<updated>2008-10-14T16:41:02Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: /* Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Mit den Messageboxen kann der Nutzer aus vorgegebenen Möglichkeiten etwas auswählen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einfache Auswahl ==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Dem Spieler wird angeboten, einen Apfel in das Inventar zu bekommen. Der Spieler kann annehmen oder ablehnen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Es gilt zu beachten, dass maximal neun Alternativen angegeben werden können. &lt;br /&gt;
[[ob:GetButtonpressed|GetButtonpressed]] liefert nur das erste Mal nach erfolgter Auswahl einen korrekten Wert. Beim zweiten mal wird -1 zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
keine Anmerkungen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; &lt;br /&gt;
Scn MakeAChoice&lt;br /&gt;
;Written by keris&lt;br /&gt;
;9.8.08&lt;br /&gt;
&lt;br /&gt;
short Doonce &lt;br /&gt;
short Button&lt;br /&gt;
short RealiseSelection&lt;br /&gt;
&lt;br /&gt;
Begin GameMode&lt;br /&gt;
&lt;br /&gt;
   if Doonce == 0&lt;br /&gt;
      set Doonce to 1 ; es soll nur einmal gemacht werden!&lt;br /&gt;
      messagebox &amp;quot;Möchtet ihr einen Apfel?&amp;quot;, &amp;quot;Ja&amp;quot;, &amp;quot;Nein&amp;quot;&lt;br /&gt;
      Set RealiseSelection to 1      &lt;br /&gt;
&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
   if RealiseSelection &lt;br /&gt;
      Set Button to GetButtonPressed&lt;br /&gt;
      if Button == -1 &lt;br /&gt;
         return&lt;br /&gt;
      elseif Button == 0&lt;br /&gt;
         Set RealiseSelection to 0&lt;br /&gt;
         Player.AddItem apple 1&lt;br /&gt;
      elseif Button == 1&lt;br /&gt;
         Set RealiseSelection to 0&lt;br /&gt;
      endif&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script kann als Object-Script oder als Quest-Script genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über einen Aktivator==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Der Player soll nach Drücken eines Schalters nach seinem Wunschgetränk gefragt werden. Entsprechend der Auswahl bekommt er etwas zu trinken. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Diese Messagebox erscheint im Onactivate-Block, die Auswahl kann dort aber nicht abgearbeitet werden, da der Block nur bei der Aktivierung durchlaufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
Es gibt einen Schalter in der Welt, auf diesem liegt das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; &lt;br /&gt;
Scn OrderDrink&lt;br /&gt;
;gives a drink to the player&lt;br /&gt;
;originated: keris, 20.11.07&lt;br /&gt;
 &lt;br /&gt;
short Button&lt;br /&gt;
short RealiseSelection&lt;br /&gt;
 &lt;br /&gt;
Begin OnActivate&lt;br /&gt;
  If ( RealiseSelection == 0 )&lt;br /&gt;
     MessageBox &amp;quot;Was möchtet Ihr zu trinken?&amp;quot; &amp;quot;Bier&amp;quot; &amp;quot;Wein&amp;quot;  &amp;quot;nichts&amp;quot;   &lt;br /&gt;
     Set RealiseSelection to 1&lt;br /&gt;
  ElseIf ( RealiseSelection &amp;gt; 0 )&lt;br /&gt;
    Activate&lt;br /&gt;
    EndIf&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Begin GameMode&lt;br /&gt;
&lt;br /&gt;
  If ( RealiseSelection == 1 )&lt;br /&gt;
     Set button to GetButtonPressed&lt;br /&gt;
     If ( button == -1 )&lt;br /&gt;
        Return&lt;br /&gt;
     elseif  Button ==  0&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        Player.AddItem DrinkBeer 1&lt;br /&gt;
        Player.EquipItem DrinkBeer&lt;br /&gt;
	Set RealiseSelection to 0&lt;br /&gt;
     elseif  button ==  1&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        Player.AddItem DrinkWine1SurilieGood 1&lt;br /&gt;
        Player.EquipItem DrinkWine1SurilieGood&lt;br /&gt;
	Set RealiseSelection to 0&lt;br /&gt;
     elseif  Button ==  2&lt;br /&gt;
	Set RealiseSelection to 0&lt;br /&gt;
        Return&lt;br /&gt;
     endif&lt;br /&gt;
  endif&lt;br /&gt;
End &amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script liegt auf einem Object vom Typ Aktivator.&lt;br /&gt;
Da ja nur getrunken werden soll, ist der Scripttechnische Umweg mit [[ob:AddItem|AddItem]] und [[ob:EquipItem|EquipItem]] irrelevant, deshalb werden die automatischen Meldungen auch unterdrückt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über ein Buch==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Der Player soll beim Lesen seines Tamika-Reiseführers ein Getränkt dieser Gegend ausprobieren. Entsprechend der Auswahl bekommt er einmal etwas zu trinken. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Das Buch befindet sich im Inventar, damit erscheint diese Messagebox erscheint im OnEquip-Block, die Auswahl kann dort aber nicht abgearbeitet werden, da der Block nur bei der Aktivierung durchlaufen wird. Weiter ist während des Lesens des Buches nicht der GameMode-Block aktiv sondern der MenuMode-Block. Dort wird also die Auswahl abgearbeitet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
Es gibt ein Buch im Inventar des Players, auf diesem liegt das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; Scn TestingWine&lt;br /&gt;
;gives some wine to the player&lt;br /&gt;
;originated: keris, 23.08.08&lt;br /&gt;
 &lt;br /&gt;
short Button&lt;br /&gt;
short Doonce&lt;br /&gt;
 &lt;br /&gt;
Begin OnEquip&lt;br /&gt;
 &lt;br /&gt;
   if Doonce == 0&lt;br /&gt;
       MessageBox &amp;quot;Was möchtet Ihr zu trinken?&amp;quot; &amp;quot;Tamikas Westebenen-Wein&amp;quot;  &amp;quot;Tamika, Jahrgang 415 &amp;quot; &lt;br /&gt;
       Set Doonce to 1&lt;br /&gt;
   endif&lt;br /&gt;
 &lt;br /&gt;
End&lt;br /&gt;
 &lt;br /&gt;
Begin MenuMode&lt;br /&gt;
 &lt;br /&gt;
   if Doonce == 1&lt;br /&gt;
      Set Button to GetButtonPressed&lt;br /&gt;
      if Button == 0&lt;br /&gt;
         Set Doonce to 2&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
	 Player.AddItem DrinkWine2TamikaGood 1&lt;br /&gt;
	 Player.EquipItem DrinkWine2TamikaGood&lt;br /&gt;
      elseif Button ==  1&lt;br /&gt;
         Set Doonce to 2&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         Player.AddItem DrinkWine4TamikaBetter 1&lt;br /&gt;
         Player.EquipItem DrinkWine4TamikaBetter&lt;br /&gt;
      else&lt;br /&gt;
         Return&lt;br /&gt;
      endif&lt;br /&gt;
&lt;br /&gt;
   endif&lt;br /&gt;
 &lt;br /&gt;
End &lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script liegt auf einem Object vom Typ Buch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über weitere Auslöser/Blöcke ==&lt;br /&gt;
&lt;br /&gt;
Eine Auswahl ist natürlich über verschiedene Auslöser, d.h. Blöcke möglich, wie z.B. ein OnTrigger-Block oder ein ScriptEffectStart-Block. Auch hier muss die Auswertung der Messagebox in einem Block stattfinden, der nicht nur einmal läuft (also meist der GameMode-Block oder der MenuMode-Block).&lt;br /&gt;
Bei Zaubern kann die Messagebox-Auswertung auch in einem ScriptEffectUpdate-Block laufen. Hier muss man aber aufpassen, dass der Zaubereffect lange genug hält, um den Job zu erledigen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Weitere Information ==&lt;br /&gt;
&lt;br /&gt;
* [[ob:Book|Bücher]]&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Blocktypen|Blocktypen]]&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Aktivieren und Aktivatoren|Aktivieren und Aktivatoren]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Scriptkategorie |Messages und Messageboxen|Level 2 Scripts|Alternativen mit Messageboxen auswählen}}&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Alternativen_mit_Messageboxen_ausw%C3%A4hlen&amp;diff=3556</id>
		<title>Oblivion:Alternativen mit Messageboxen auswählen</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Alternativen_mit_Messageboxen_ausw%C3%A4hlen&amp;diff=3556"/>
				<updated>2008-10-14T16:40:16Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: /* Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Mit den Messageboxen kann der Nutzer aus vorgegebenen Möglichkeiten etwas auswählen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einfache Auswahl ==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Dem Spieler wird angeboten, einen Apfel in das Inventar zu bekommen. Der Spieler kann annehmen oder ablehnen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Es gilt zu beachten, dass maximal neun Alternativen angegeben werden können. &lt;br /&gt;
[[ob:GetButtonpressed|GetButtonpressed]] liefert nur das erste Mal nach erfolgter Auswahl einen korrekten Wert. Beim zweiten mal wird -1 zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
keine Anmerkungen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; &lt;br /&gt;
Scn MakeAChoice&lt;br /&gt;
;Written by keris&lt;br /&gt;
;9.8.08&lt;br /&gt;
&lt;br /&gt;
short Doonce &lt;br /&gt;
short Button&lt;br /&gt;
short RealiseSelection&lt;br /&gt;
&lt;br /&gt;
Begin GameMode&lt;br /&gt;
&lt;br /&gt;
   if Doonce == 0&lt;br /&gt;
      set Doonce to 1 ; es soll nur einmal gemacht werden!&lt;br /&gt;
      messagebox &amp;quot;Möchtet ihr einen Apfel?&amp;quot;, &amp;quot;Ja&amp;quot;, &amp;quot;Nein&amp;quot;&lt;br /&gt;
      Set RealiseSelection to 1      &lt;br /&gt;
&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
   if RealiseSelection &lt;br /&gt;
      Set Button to GetButtonPressed&lt;br /&gt;
      if Button == -1 &lt;br /&gt;
         return&lt;br /&gt;
      elseif Button == 0&lt;br /&gt;
         Set RealiseSelection to 0&lt;br /&gt;
         Player.AddItem apple 1&lt;br /&gt;
      elseif Button == 1&lt;br /&gt;
         Set RealiseSelection to 0&lt;br /&gt;
      endif&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script kann als Object-Script oder als Quest-Script genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über einen Aktivator==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Der Player soll nach Drücken eines Schalters nach seinem Wunschgetränk gefragt werden. Entsprechend der Auswahl bekommt er etwas zu trinken. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Diese Messagebox erscheint im Onactivate-Block, die Auswahl kann dort aber nicht abgearbeitet werden, da der Block nur bei der Aktivierung durchlaufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
Es gibt einen Schalter in der Welt, auf diesem liegt das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; &lt;br /&gt;
Scn OrderDrink&lt;br /&gt;
;gives a drink to the player&lt;br /&gt;
;originated: keris, 20.11.07&lt;br /&gt;
 &lt;br /&gt;
short Button&lt;br /&gt;
short RealiseSelection&lt;br /&gt;
 &lt;br /&gt;
Begin OnActivate&lt;br /&gt;
  If ( RealiseSelection == 0 )&lt;br /&gt;
     MessageBox &amp;quot;Was möchtet Ihr zu trinken?&amp;quot; &amp;quot;Bier&amp;quot; &amp;quot;Wein&amp;quot;  &amp;quot;nichts&amp;quot;   &lt;br /&gt;
     Set RealiseSelection to 1&lt;br /&gt;
  ElseIf ( RealiseSelection &amp;gt; 0 )&lt;br /&gt;
    Activate&lt;br /&gt;
    EndIf&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Begin GameMode&lt;br /&gt;
&lt;br /&gt;
  If ( RealiseSelection == 1 )&lt;br /&gt;
     Set button to GetButtonPressed&lt;br /&gt;
     If ( button == -1 )&lt;br /&gt;
        Return&lt;br /&gt;
     elseif  Button ==  0&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        Player.AddItem DrinkBeer 1&lt;br /&gt;
        Player.EquipItem DrinkBeer&lt;br /&gt;
	Set RealiseSelection to 0&lt;br /&gt;
     elseif  button ==  1&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        Player.AddItem DrinkWine1SurilieGood 1&lt;br /&gt;
        Player.EquipItem DrinkWine1SurilieGood&lt;br /&gt;
	Set RealiseSelection to 0&lt;br /&gt;
     elseif  Button ==  2&lt;br /&gt;
	Set RealiseSelection to 0&lt;br /&gt;
        Return&lt;br /&gt;
     endif&lt;br /&gt;
  endif&lt;br /&gt;
End &amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script liegt auf einem Object vom Typ Aktivator.&lt;br /&gt;
Da ja nur getrunken werden soll, ist der Scripttechnische Umweg mit [[ob:AddItem|AddItem]] und [[ob:EquipItem|EquipItem]] irrelevant, deshalb werden die automatischen Meldungen auch unterdrückt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über ein Buch==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Der Player soll beim Lesen seines Tamika-Reiseführers ein Getränkt dieser Gegend ausprobieren. Entsprechend der Auswahl bekommt er einmal etwas zu trinken. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Das Buch befindet sich im Inventar, damit erscheint diese Messagebox erscheint im OnEquip-Block, die Auswahl kann dort aber nicht abgearbeitet werden, da der Block nur bei der Aktivierung durchlaufen wird. Weiter ist während des Lesens des Buches nicht der GameMode-Block aktiv sondern der MenuMode-Block. Dort wird also die Auswahl abgearbeitet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
Es gibt ein Buch im Inventar des Players, auf diesem liegt das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; Scn TestingWine&lt;br /&gt;
;gives some wine to the player&lt;br /&gt;
;originated: keris, 23.08.08&lt;br /&gt;
 &lt;br /&gt;
short Button&lt;br /&gt;
short Doonce&lt;br /&gt;
 &lt;br /&gt;
Begin OnEquip&lt;br /&gt;
 &lt;br /&gt;
   if Doonce == 0&lt;br /&gt;
       MessageBox &amp;quot;Was möchtet Ihr zu trinken?&amp;quot; &amp;quot;Tamikas Westebenen-Wein&amp;quot;  &amp;quot;Tamika, Jahrgang 415 &amp;quot; &lt;br /&gt;
       Set Doonce to 1&lt;br /&gt;
   endif&lt;br /&gt;
 &lt;br /&gt;
End&lt;br /&gt;
 &lt;br /&gt;
Begin MenuMode&lt;br /&gt;
 &lt;br /&gt;
   Set Button to GetButtonPressed&lt;br /&gt;
   if Doonce == 1&lt;br /&gt;
      if Button == 0&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
	 Player.AddItem DrinkWine2TamikaGood 1&lt;br /&gt;
	 Player.EquipItem DrinkWine2TamikaGood&lt;br /&gt;
      elseif Button ==  1&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         Player.AddItem DrinkWine4TamikaBetter 1&lt;br /&gt;
         Player.EquipItem DrinkWine4TamikaBetter&lt;br /&gt;
      else&lt;br /&gt;
         Return&lt;br /&gt;
      endif&lt;br /&gt;
      Set Doonce to 2&lt;br /&gt;
   endif&lt;br /&gt;
 &lt;br /&gt;
End &lt;br /&gt;
&amp;lt;/tesscript&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script liegt auf einem Object vom Typ Buch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über weitere Auslöser/Blöcke ==&lt;br /&gt;
&lt;br /&gt;
Eine Auswahl ist natürlich über verschiedene Auslöser, d.h. Blöcke möglich, wie z.B. ein OnTrigger-Block oder ein ScriptEffectStart-Block. Auch hier muss die Auswertung der Messagebox in einem Block stattfinden, der nicht nur einmal läuft (also meist der GameMode-Block oder der MenuMode-Block).&lt;br /&gt;
Bei Zaubern kann die Messagebox-Auswertung auch in einem ScriptEffectUpdate-Block laufen. Hier muss man aber aufpassen, dass der Zaubereffect lange genug hält, um den Job zu erledigen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Weitere Information ==&lt;br /&gt;
&lt;br /&gt;
* [[ob:Book|Bücher]]&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Blocktypen|Blocktypen]]&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Aktivieren und Aktivatoren|Aktivieren und Aktivatoren]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Scriptkategorie |Messages und Messageboxen|Level 2 Scripts|Alternativen mit Messageboxen auswählen}}&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Alternativen_mit_Messageboxen_ausw%C3%A4hlen&amp;diff=3555</id>
		<title>Oblivion:Alternativen mit Messageboxen auswählen</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Alternativen_mit_Messageboxen_ausw%C3%A4hlen&amp;diff=3555"/>
				<updated>2008-10-14T16:39:43Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: /* Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Mit den Messageboxen kann der Nutzer aus vorgegebenen Möglichkeiten etwas auswählen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einfache Auswahl ==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Dem Spieler wird angeboten, einen Apfel in das Inventar zu bekommen. Der Spieler kann annehmen oder ablehnen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Es gilt zu beachten, dass maximal neun Alternativen angegeben werden können. &lt;br /&gt;
[[ob:GetButtonpressed|GetButtonpressed]] liefert nur das erste Mal nach erfolgter Auswahl einen korrekten Wert. Beim zweiten mal wird -1 zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
keine Anmerkungen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; &lt;br /&gt;
Scn MakeAChoice&lt;br /&gt;
;Written by keris&lt;br /&gt;
;9.8.08&lt;br /&gt;
&lt;br /&gt;
short Doonce &lt;br /&gt;
short Button&lt;br /&gt;
short RealiseSelection&lt;br /&gt;
&lt;br /&gt;
Begin GameMode&lt;br /&gt;
&lt;br /&gt;
   if Doonce == 0&lt;br /&gt;
      set Doonce to 1 ; es soll nur einmal gemacht werden!&lt;br /&gt;
      messagebox &amp;quot;Möchtet ihr einen Apfel?&amp;quot;, &amp;quot;Ja&amp;quot;, &amp;quot;Nein&amp;quot;&lt;br /&gt;
      Set RealiseSelection to 1      &lt;br /&gt;
&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
   if RealiseSelection &lt;br /&gt;
      Set Button to GetButtonPressed&lt;br /&gt;
      if Button == -1 &lt;br /&gt;
         return&lt;br /&gt;
      elseif Button == 0&lt;br /&gt;
         Set RealiseSelection to 0&lt;br /&gt;
         Player.AddItem apple 1&lt;br /&gt;
      elseif Button == 1&lt;br /&gt;
         Set RealiseSelection to 0&lt;br /&gt;
      endif&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script kann als Object-Script oder als Quest-Script genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über einen Aktivator==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Der Player soll nach Drücken eines Schalters nach seinem Wunschgetränk gefragt werden. Entsprechend der Auswahl bekommt er etwas zu trinken. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Diese Messagebox erscheint im Onactivate-Block, die Auswahl kann dort aber nicht abgearbeitet werden, da der Block nur bei der Aktivierung durchlaufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
Es gibt einen Schalter in der Welt, auf diesem liegt das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; &lt;br /&gt;
Scn OrderDrink&lt;br /&gt;
;gives a drink to the player&lt;br /&gt;
;originated: keris, 20.11.07&lt;br /&gt;
 &lt;br /&gt;
short Button&lt;br /&gt;
short RealiseSelection&lt;br /&gt;
 &lt;br /&gt;
Begin OnActivate&lt;br /&gt;
  If ( RealiseSelection == 0 )&lt;br /&gt;
     MessageBox &amp;quot;Was möchtet Ihr zu trinken?&amp;quot; &amp;quot;Bier&amp;quot; &amp;quot;Wein&amp;quot;  &amp;quot;nichts&amp;quot;   &lt;br /&gt;
     Set RealiseSelection to 1&lt;br /&gt;
  ElseIf ( RealiseSelection &amp;gt; 0 )&lt;br /&gt;
    Activate&lt;br /&gt;
    EndIf&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Begin GameMode&lt;br /&gt;
&lt;br /&gt;
  If ( RealiseSelection == 1 )&lt;br /&gt;
     Set button to GetButtonPressed&lt;br /&gt;
     If ( button == -1 )&lt;br /&gt;
        Return&lt;br /&gt;
     elseif  Button ==  0&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        Player.AddItem DrinkBeer 1&lt;br /&gt;
        Player.EquipItem DrinkBeer&lt;br /&gt;
	Set RealiseSelection to 2&lt;br /&gt;
     elseif  button ==  1&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        Player.AddItem DrinkWine1SurilieGood 1&lt;br /&gt;
        Player.EquipItem DrinkWine1SurilieGood&lt;br /&gt;
	Set RealiseSelection to 2&lt;br /&gt;
     elseif  Button ==  2&lt;br /&gt;
	Set RealiseSelection to 2&lt;br /&gt;
        Return&lt;br /&gt;
     endif&lt;br /&gt;
  endif&lt;br /&gt;
End &amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script liegt auf einem Object vom Typ Aktivator.&lt;br /&gt;
Da ja nur getrunken werden soll, ist der Scripttechnische Umweg mit [[ob:AddItem|AddItem]] und [[ob:EquipItem|EquipItem]] irrelevant, deshalb werden die automatischen Meldungen auch unterdrückt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über ein Buch==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Der Player soll beim Lesen seines Tamika-Reiseführers ein Getränkt dieser Gegend ausprobieren. Entsprechend der Auswahl bekommt er einmal etwas zu trinken. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Das Buch befindet sich im Inventar, damit erscheint diese Messagebox erscheint im OnEquip-Block, die Auswahl kann dort aber nicht abgearbeitet werden, da der Block nur bei der Aktivierung durchlaufen wird. Weiter ist während des Lesens des Buches nicht der GameMode-Block aktiv sondern der MenuMode-Block. Dort wird also die Auswahl abgearbeitet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
Es gibt ein Buch im Inventar des Players, auf diesem liegt das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; Scn TestingWine&lt;br /&gt;
;gives some wine to the player&lt;br /&gt;
;originated: keris, 23.08.08&lt;br /&gt;
 &lt;br /&gt;
short Button&lt;br /&gt;
short Doonce&lt;br /&gt;
 &lt;br /&gt;
Begin OnEquip&lt;br /&gt;
 &lt;br /&gt;
   if Doonce == 0&lt;br /&gt;
       MessageBox &amp;quot;Was möchtet Ihr zu trinken?&amp;quot; &amp;quot;Tamikas Westebenen-Wein&amp;quot;  &amp;quot;Tamika, Jahrgang 415 &amp;quot; &lt;br /&gt;
       Set Doonce to 1&lt;br /&gt;
   endif&lt;br /&gt;
 &lt;br /&gt;
End&lt;br /&gt;
 &lt;br /&gt;
Begin MenuMode&lt;br /&gt;
 &lt;br /&gt;
   Set Button to GetButtonPressed&lt;br /&gt;
   if Doonce == 1&lt;br /&gt;
      if Button == 0&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
	 Player.AddItem DrinkWine2TamikaGood 1&lt;br /&gt;
	 Player.EquipItem DrinkWine2TamikaGood&lt;br /&gt;
      elseif Button ==  1&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         Player.AddItem DrinkWine4TamikaBetter 1&lt;br /&gt;
         Player.EquipItem DrinkWine4TamikaBetter&lt;br /&gt;
      else&lt;br /&gt;
         Return&lt;br /&gt;
      endif&lt;br /&gt;
      Set Doonce to 2&lt;br /&gt;
   endif&lt;br /&gt;
 &lt;br /&gt;
End &lt;br /&gt;
&amp;lt;/tesscript&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script liegt auf einem Object vom Typ Buch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über weitere Auslöser/Blöcke ==&lt;br /&gt;
&lt;br /&gt;
Eine Auswahl ist natürlich über verschiedene Auslöser, d.h. Blöcke möglich, wie z.B. ein OnTrigger-Block oder ein ScriptEffectStart-Block. Auch hier muss die Auswertung der Messagebox in einem Block stattfinden, der nicht nur einmal läuft (also meist der GameMode-Block oder der MenuMode-Block).&lt;br /&gt;
Bei Zaubern kann die Messagebox-Auswertung auch in einem ScriptEffectUpdate-Block laufen. Hier muss man aber aufpassen, dass der Zaubereffect lange genug hält, um den Job zu erledigen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Weitere Information ==&lt;br /&gt;
&lt;br /&gt;
* [[ob:Book|Bücher]]&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Blocktypen|Blocktypen]]&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Aktivieren und Aktivatoren|Aktivieren und Aktivatoren]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Scriptkategorie |Messages und Messageboxen|Level 2 Scripts|Alternativen mit Messageboxen auswählen}}&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Alternativen_mit_Messageboxen_ausw%C3%A4hlen&amp;diff=3554</id>
		<title>Oblivion:Alternativen mit Messageboxen auswählen</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Alternativen_mit_Messageboxen_ausw%C3%A4hlen&amp;diff=3554"/>
				<updated>2008-10-14T16:38:40Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: /* Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Mit den Messageboxen kann der Nutzer aus vorgegebenen Möglichkeiten etwas auswählen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einfache Auswahl ==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Dem Spieler wird angeboten, einen Apfel in das Inventar zu bekommen. Der Spieler kann annehmen oder ablehnen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Es gilt zu beachten, dass maximal neun Alternativen angegeben werden können. &lt;br /&gt;
[[ob:GetButtonpressed|GetButtonpressed]] liefert nur das erste Mal nach erfolgter Auswahl einen korrekten Wert. Beim zweiten mal wird -1 zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
keine Anmerkungen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; &lt;br /&gt;
Scn MakeAChoice&lt;br /&gt;
;Written by keris&lt;br /&gt;
;9.8.08&lt;br /&gt;
&lt;br /&gt;
short Doonce &lt;br /&gt;
short Button&lt;br /&gt;
short RealiseSelection&lt;br /&gt;
&lt;br /&gt;
Begin GameMode&lt;br /&gt;
&lt;br /&gt;
   if Doonce == 0&lt;br /&gt;
      set Doonce to 1 ; es soll nur einmal gemacht werden!&lt;br /&gt;
      messagebox &amp;quot;Möchtet ihr einen Apfel?&amp;quot;, &amp;quot;Ja&amp;quot;, &amp;quot;Nein&amp;quot;&lt;br /&gt;
      Set RealiseSelection to 1      &lt;br /&gt;
&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
   if RealiseSelection &lt;br /&gt;
      Set Button to GetButtonPressed&lt;br /&gt;
      if Button == -1 &lt;br /&gt;
         return&lt;br /&gt;
      elseif Button == 0&lt;br /&gt;
         Set RealiseSelection to 0&lt;br /&gt;
         Player.AddItem apple 1&lt;br /&gt;
      elseif Button == 1&lt;br /&gt;
         Set RealiseSelection to 0&lt;br /&gt;
      endif&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script kann als Object-Script oder als Quest-Script genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über einen Aktivator==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Der Player soll nach Drücken eines Schalters nach seinem Wunschgetränk gefragt werden. Entsprechend der Auswahl bekommt er etwas zu trinken. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Diese Messagebox erscheint im Onactivate-Block, die Auswahl kann dort aber nicht abgearbeitet werden, da der Block nur bei der Aktivierung durchlaufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
Es gibt einen Schalter in der Welt, auf diesem liegt das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; &lt;br /&gt;
Scn OrderDrink&lt;br /&gt;
;gives a drink to the player&lt;br /&gt;
;originated: keris, 20.11.07&lt;br /&gt;
 &lt;br /&gt;
short Button&lt;br /&gt;
short RealiseSelection&lt;br /&gt;
 &lt;br /&gt;
Begin OnActivate&lt;br /&gt;
  If ( RealiseSelection == 0 )&lt;br /&gt;
     MessageBox &amp;quot;Was möchtet Ihr zu trinken?&amp;quot; &amp;quot;Bier&amp;quot; &amp;quot;Wein&amp;quot;  &amp;quot;nichts&amp;quot;   &lt;br /&gt;
     Set RealiseSelection to 1&lt;br /&gt;
  ElseIf ( RealiseSelection &amp;gt; 0 )&lt;br /&gt;
    Activate&lt;br /&gt;
    EndIf&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Begin GameMode&lt;br /&gt;
&lt;br /&gt;
  If ( RealiseSelection == 1 )&lt;br /&gt;
     Set button to GetButtonPressed&lt;br /&gt;
     If ( button == -1 )&lt;br /&gt;
        Return&lt;br /&gt;
     elseif  Button ==  0&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        Player.AddItem DrinkBeer 1&lt;br /&gt;
        Player.EquipItem DrinkBeer&lt;br /&gt;
	Set RealiseSelection to 0&lt;br /&gt;
     elseif  button ==  1&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        Player.AddItem DrinkWine1SurilieGood 1&lt;br /&gt;
        Player.EquipItem DrinkWine1SurilieGood&lt;br /&gt;
	Set RealiseSelection to 0&lt;br /&gt;
     elseif  Button ==  2&lt;br /&gt;
	Set RealiseSelection to 0&lt;br /&gt;
        Return&lt;br /&gt;
     endif&lt;br /&gt;
  endif&lt;br /&gt;
End &amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script liegt auf einem Object vom Typ Aktivator.&lt;br /&gt;
Da ja nur getrunken werden soll, ist der Scripttechnische Umweg mit [[ob:AddItem|AddItem]] und [[ob:EquipItem|EquipItem]] irrelevant, deshalb werden die automatischen Meldungen auch unterdrückt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über ein Buch==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Der Player soll beim Lesen seines Tamika-Reiseführers ein Getränkt dieser Gegend ausprobieren. Entsprechend der Auswahl bekommt er einmal etwas zu trinken. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Das Buch befindet sich im Inventar, damit erscheint diese Messagebox erscheint im OnEquip-Block, die Auswahl kann dort aber nicht abgearbeitet werden, da der Block nur bei der Aktivierung durchlaufen wird. Weiter ist während des Lesens des Buches nicht der GameMode-Block aktiv sondern der MenuMode-Block. Dort wird also die Auswahl abgearbeitet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
Es gibt ein Buch im Inventar des Players, auf diesem liegt das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; Scn TestingWine&lt;br /&gt;
;gives some wine to the player&lt;br /&gt;
;originated: keris, 23.08.08&lt;br /&gt;
 &lt;br /&gt;
short Button&lt;br /&gt;
short Doonce&lt;br /&gt;
 &lt;br /&gt;
Begin OnEquip&lt;br /&gt;
 &lt;br /&gt;
   if Doonce == 0&lt;br /&gt;
       MessageBox &amp;quot;Was möchtet Ihr zu trinken?&amp;quot; &amp;quot;Tamikas Westebenen-Wein&amp;quot;  &amp;quot;Tamika, Jahrgang 415 &amp;quot; &lt;br /&gt;
       Set Doonce to 1&lt;br /&gt;
   endif&lt;br /&gt;
 &lt;br /&gt;
End&lt;br /&gt;
 &lt;br /&gt;
Begin MenuMode&lt;br /&gt;
 &lt;br /&gt;
   Set Button to GetButtonPressed&lt;br /&gt;
   if Doonce == 1&lt;br /&gt;
      if Button == 0&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
	 Player.AddItem DrinkWine2TamikaGood 1&lt;br /&gt;
	 Player.EquipItem DrinkWine2TamikaGood&lt;br /&gt;
      elseif Button ==  1&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         Player.AddItem DrinkWine4TamikaBetter 1&lt;br /&gt;
         Player.EquipItem DrinkWine4TamikaBetter&lt;br /&gt;
      else&lt;br /&gt;
         Return&lt;br /&gt;
      endif&lt;br /&gt;
      Set Doonce to 2&lt;br /&gt;
   endif&lt;br /&gt;
 &lt;br /&gt;
End &lt;br /&gt;
&amp;lt;/tesscript&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script liegt auf einem Object vom Typ Buch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über weitere Auslöser/Blöcke ==&lt;br /&gt;
&lt;br /&gt;
Eine Auswahl ist natürlich über verschiedene Auslöser, d.h. Blöcke möglich, wie z.B. ein OnTrigger-Block oder ein ScriptEffectStart-Block. Auch hier muss die Auswertung der Messagebox in einem Block stattfinden, der nicht nur einmal läuft (also meist der GameMode-Block oder der MenuMode-Block).&lt;br /&gt;
Bei Zaubern kann die Messagebox-Auswertung auch in einem ScriptEffectUpdate-Block laufen. Hier muss man aber aufpassen, dass der Zaubereffect lange genug hält, um den Job zu erledigen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Weitere Information ==&lt;br /&gt;
&lt;br /&gt;
* [[ob:Book|Bücher]]&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Blocktypen|Blocktypen]]&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Aktivieren und Aktivatoren|Aktivieren und Aktivatoren]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Scriptkategorie |Messages und Messageboxen|Level 2 Scripts|Alternativen mit Messageboxen auswählen}}&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Alternativen_mit_Messageboxen_ausw%C3%A4hlen&amp;diff=3553</id>
		<title>Oblivion:Alternativen mit Messageboxen auswählen</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Alternativen_mit_Messageboxen_ausw%C3%A4hlen&amp;diff=3553"/>
				<updated>2008-10-14T16:38:05Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: /* Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Mit den Messageboxen kann der Nutzer aus vorgegebenen Möglichkeiten etwas auswählen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einfache Auswahl ==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Dem Spieler wird angeboten, einen Apfel in das Inventar zu bekommen. Der Spieler kann annehmen oder ablehnen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Es gilt zu beachten, dass maximal neun Alternativen angegeben werden können. &lt;br /&gt;
[[ob:GetButtonpressed|GetButtonpressed]] liefert nur das erste Mal nach erfolgter Auswahl einen korrekten Wert. Beim zweiten mal wird -1 zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
keine Anmerkungen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; &lt;br /&gt;
Scn MakeAChoice&lt;br /&gt;
;Written by keris&lt;br /&gt;
;9.8.08&lt;br /&gt;
&lt;br /&gt;
short Doonce &lt;br /&gt;
short Button&lt;br /&gt;
short RealiseSelection&lt;br /&gt;
&lt;br /&gt;
Begin GameMode&lt;br /&gt;
&lt;br /&gt;
   if Doonce == 0&lt;br /&gt;
      set Doonce to 1 ; es soll nur einmal gemacht werden!&lt;br /&gt;
      messagebox &amp;quot;Möchtet ihr einen Apfel?&amp;quot;, &amp;quot;Ja&amp;quot;, &amp;quot;Nein&amp;quot;&lt;br /&gt;
      Set RealiseSelection to 1      &lt;br /&gt;
&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
   if RealiseSelection &lt;br /&gt;
      Set Button to GetButtonPressed&lt;br /&gt;
      if Button == -1 &lt;br /&gt;
         return&lt;br /&gt;
      elseif Button == 0&lt;br /&gt;
         Set RealiseSelection to 0&lt;br /&gt;
         Player.AddItem apple 1&lt;br /&gt;
      elseif Button == 1&lt;br /&gt;
         Set RealiseSelection to 0&lt;br /&gt;
      endif&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script kann als Object-Script oder als Quest-Script genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über einen Aktivator==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Der Player soll nach Drücken eines Schalters nach seinem Wunschgetränk gefragt werden. Entsprechend der Auswahl bekommt er etwas zu trinken. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Diese Messagebox erscheint im Onactivate-Block, die Auswahl kann dort aber nicht abgearbeitet werden, da der Block nur bei der Aktivierung durchlaufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
Es gibt einen Schalter in der Welt, auf diesem liegt das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; &lt;br /&gt;
Scn OrderDrink&lt;br /&gt;
;gives a drink to the player&lt;br /&gt;
;originated: keris, 20.11.07&lt;br /&gt;
 &lt;br /&gt;
short Button&lt;br /&gt;
short RealiseSelection&lt;br /&gt;
 &lt;br /&gt;
Begin OnActivate&lt;br /&gt;
  If ( RealiseSelection== 0 )&lt;br /&gt;
     MessageBox &amp;quot;Was möchtet Ihr zu trinken?&amp;quot; &amp;quot;Bier&amp;quot; &amp;quot;Wein&amp;quot;  &amp;quot;nichts&amp;quot;   &lt;br /&gt;
     Set RealiseSelection to 1&lt;br /&gt;
  ElseIf ( RealiseSelection&amp;gt; 0 )&lt;br /&gt;
    Activate&lt;br /&gt;
    EndIf&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Begin GameMode&lt;br /&gt;
&lt;br /&gt;
  If ( RealiseSelection == 1 )&lt;br /&gt;
     Set button to GetButtonPressed&lt;br /&gt;
     If ( button == -1 )&lt;br /&gt;
        Return&lt;br /&gt;
     elseif  Button ==  0&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        Player.AddItem DrinkBeer 1&lt;br /&gt;
        Player.EquipItem DrinkBeer&lt;br /&gt;
	Set RealiseSelection to 0&lt;br /&gt;
     elseif  button ==  1&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        message &amp;quot; &amp;quot;&lt;br /&gt;
        Player.AddItem DrinkWine1SurilieGood 1&lt;br /&gt;
        Player.EquipItem DrinkWine1SurilieGood&lt;br /&gt;
	Set RealiseSelection to 0&lt;br /&gt;
     elseif  Button ==  2&lt;br /&gt;
	Set RealiseSelection to 0&lt;br /&gt;
        Return&lt;br /&gt;
     endif&lt;br /&gt;
  endif&lt;br /&gt;
End &amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script liegt auf einem Object vom Typ Aktivator.&lt;br /&gt;
Da ja nur getrunken werden soll, ist der Scripttechnische Umweg mit [[ob:AddItem|AddItem]] und [[ob:EquipItem|EquipItem]] irrelevant, deshalb werden die automatischen Meldungen auch unterdrückt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über ein Buch==&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Aufgabenstellung ====&lt;br /&gt;
Der Player soll beim Lesen seines Tamika-Reiseführers ein Getränkt dieser Gegend ausprobieren. Entsprechend der Auswahl bekommt er einmal etwas zu trinken. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
Das Buch befindet sich im Inventar, damit erscheint diese Messagebox erscheint im OnEquip-Block, die Auswahl kann dort aber nicht abgearbeitet werden, da der Block nur bei der Aktivierung durchlaufen wird. Weiter ist während des Lesens des Buches nicht der GameMode-Block aktiv sondern der MenuMode-Block. Dort wird also die Auswahl abgearbeitet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
Es gibt ein Buch im Inventar des Players, auf diesem liegt das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt; Scn TestingWine&lt;br /&gt;
;gives some wine to the player&lt;br /&gt;
;originated: keris, 23.08.08&lt;br /&gt;
 &lt;br /&gt;
short Button&lt;br /&gt;
short Doonce&lt;br /&gt;
 &lt;br /&gt;
Begin OnEquip&lt;br /&gt;
 &lt;br /&gt;
   if Doonce == 0&lt;br /&gt;
       MessageBox &amp;quot;Was möchtet Ihr zu trinken?&amp;quot; &amp;quot;Tamikas Westebenen-Wein&amp;quot;  &amp;quot;Tamika, Jahrgang 415 &amp;quot; &lt;br /&gt;
       Set Doonce to 1&lt;br /&gt;
   endif&lt;br /&gt;
 &lt;br /&gt;
End&lt;br /&gt;
 &lt;br /&gt;
Begin MenuMode&lt;br /&gt;
 &lt;br /&gt;
   Set Button to GetButtonPressed&lt;br /&gt;
   if Doonce == 1&lt;br /&gt;
      if Button == 0&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
	 Player.AddItem DrinkWine2TamikaGood 1&lt;br /&gt;
	 Player.EquipItem DrinkWine2TamikaGood&lt;br /&gt;
      elseif Button ==  1&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         message &amp;quot; &amp;quot;&lt;br /&gt;
         Player.AddItem DrinkWine4TamikaBetter 1&lt;br /&gt;
         Player.EquipItem DrinkWine4TamikaBetter&lt;br /&gt;
      else&lt;br /&gt;
         Return&lt;br /&gt;
      endif&lt;br /&gt;
      Set Doonce to 2&lt;br /&gt;
   endif&lt;br /&gt;
 &lt;br /&gt;
End &lt;br /&gt;
&amp;lt;/tesscript&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
Dies Script liegt auf einem Object vom Typ Buch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswahl über weitere Auslöser/Blöcke ==&lt;br /&gt;
&lt;br /&gt;
Eine Auswahl ist natürlich über verschiedene Auslöser, d.h. Blöcke möglich, wie z.B. ein OnTrigger-Block oder ein ScriptEffectStart-Block. Auch hier muss die Auswertung der Messagebox in einem Block stattfinden, der nicht nur einmal läuft (also meist der GameMode-Block oder der MenuMode-Block).&lt;br /&gt;
Bei Zaubern kann die Messagebox-Auswertung auch in einem ScriptEffectUpdate-Block laufen. Hier muss man aber aufpassen, dass der Zaubereffect lange genug hält, um den Job zu erledigen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Weitere Information ==&lt;br /&gt;
&lt;br /&gt;
* [[ob:Book|Bücher]]&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Blocktypen|Blocktypen]]&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Aktivieren und Aktivatoren|Aktivieren und Aktivatoren]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Scriptkategorie |Messages und Messageboxen|Level 2 Scripts|Alternativen mit Messageboxen auswählen}}&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Zauber_erzwingen&amp;diff=1255</id>
		<title>Oblivion:Zauber erzwingen</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Zauber_erzwingen&amp;diff=1255"/>
				<updated>2008-08-18T19:11:41Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Thema ==&lt;br /&gt;
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.&lt;br /&gt;
== NPC mit Heilungseffekt ==&lt;br /&gt;
=== Aufgabenstellung ===&lt;br /&gt;
Wir wollen, dass ein [[NPC]] der Spieler heilt, wenn man ihn aktiviert.&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
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.&lt;br /&gt;
==== Probleme ====&lt;br /&gt;
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.&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
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''.&lt;br /&gt;
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.&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt;Scn CastHealSpell&lt;br /&gt;
&lt;br /&gt;
begin OnActivate&lt;br /&gt;
&lt;br /&gt;
Heiler.Cast HealSpell Player&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zaubernder Stein ==&lt;br /&gt;
=== Aufgabenstellung ===&lt;br /&gt;
Als nächstes wollen wir einen magischen Stein machen, der auf den Spieler schießt, wenn er zu nahe kommt.&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
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.&lt;br /&gt;
==== Probleme ====&lt;br /&gt;
Beachte, dass der Stein aus der Kategorie ''[[ob:Activator|Activators]]'' stammen muss, sonst kann es sein, dass dieser Scriptbefehl nicht richtig funktioniert!&lt;br /&gt;
Als Bonus dürfen wir nun jedoch auch Fernzauber abfeuern lassen.&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
Erstelle einen neuen Stein als [[ob:Activator|Activator]] und platziere ihn geeignet in der Spielwelt.&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt;Scn FireStone&lt;br /&gt;
&lt;br /&gt;
float timer&lt;br /&gt;
&lt;br /&gt;
begin GameMode&lt;br /&gt;
if GetDistance Player &amp;lt;= 1000&lt;br /&gt;
	if timer &amp;gt; 0&lt;br /&gt;
		Set timer to timer - GetSecondsPassed&lt;br /&gt;
	else&lt;br /&gt;
		set timer to 10&lt;br /&gt;
		Cast StandardShockDamageTarget5Master Player&lt;br /&gt;
	endif&lt;br /&gt;
endif&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
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.&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[:Kategorie:Entfernung und Bewegung|Entfernung und Bewegung]]&lt;br /&gt;
&lt;br /&gt;
[[:Kategorie:Timer|Timer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Handhabung von Zaubern|Zauber erzwingen]]&lt;br /&gt;
[[Kategorie: Scripts|Zauber erzwingen]]&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Zauber_erzwingen&amp;diff=1012</id>
		<title>Oblivion:Zauber erzwingen</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Zauber_erzwingen&amp;diff=1012"/>
				<updated>2008-08-13T15:05:47Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Thema ==&lt;br /&gt;
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.&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Aufgabenstellung ===&lt;br /&gt;
Wir wollen, dass ein [[NPC]] der Spieler heilt, wenn man ihn aktiviert.&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
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.&lt;br /&gt;
==== Probleme ====&lt;br /&gt;
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.&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
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''.&lt;br /&gt;
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.&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt;Scn CastHealSpell&lt;br /&gt;
&lt;br /&gt;
begin OnActivate&lt;br /&gt;
&lt;br /&gt;
Heiler.Cast HealSpell Player&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Aufgabenstellung ===&lt;br /&gt;
Als nächstes wollen wir einen Stein machen, der auf den Spieler schießt, wenn er zu nahe kommt.&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
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.&lt;br /&gt;
==== Probleme ====&lt;br /&gt;
Beachte, dass der Stein aus der Kategorie ''[[ob:Activator|Activators]]'' stammen muss, sonst kann es sein, dass dieser Scriptbefehl nicht richtig funktioniert!&lt;br /&gt;
Als Bonus dürfen wir nun jedoch auch Fernzauber abfeuern lassen.&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
Erstelle einen neuen Stein als [[ob:Activator|Activator]] und platziere ihn geeignet in der Spielwelt.&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt;Scn FireStone&lt;br /&gt;
&lt;br /&gt;
float timer&lt;br /&gt;
&lt;br /&gt;
begin GameMode&lt;br /&gt;
if GetDistance Player &amp;lt;= 1000&lt;br /&gt;
	if timer &amp;gt; 0&lt;br /&gt;
		Set timer to timer - GetSecondsPassed&lt;br /&gt;
	else&lt;br /&gt;
		set timer to 10&lt;br /&gt;
		Cast StandardShockDamageTarget5Master Player&lt;br /&gt;
	endif&lt;br /&gt;
endif&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
==== Handhabung ====&lt;br /&gt;
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.&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[:Kategorie:Entfernung und Bewegung|Entfernung und Bewegung]]&lt;br /&gt;
&lt;br /&gt;
[[:Kategorie:Timer|Timer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Handhabung von Zaubern|Zauber erzwingen]]&lt;br /&gt;
[[Kategorie: Scripts|Zauber erzwingen]]&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Zauber_erzwingen&amp;diff=1011</id>
		<title>Oblivion:Zauber erzwingen</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Zauber_erzwingen&amp;diff=1011"/>
				<updated>2008-08-13T15:04:52Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Thema ==&lt;br /&gt;
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.&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Aufgabenstellung ===&lt;br /&gt;
Wir wollen, dass ein [[NPC]] der Spieler heilt, wenn man ihn aktiviert.&lt;br /&gt;
==== Theorie ====&lt;br /&gt;
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.&lt;br /&gt;
==== Probleme ====&lt;br /&gt;
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.&lt;br /&gt;
=== Realisierung ===&lt;br /&gt;
==== Umgebung ====&lt;br /&gt;
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''.&lt;br /&gt;
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.&lt;br /&gt;
==== Script ====&lt;br /&gt;
&amp;lt;tesscript&amp;gt;Scn CastHealSpell&lt;br /&gt;
&lt;br /&gt;
begin OnActivate&lt;br /&gt;
&lt;br /&gt;
Heiler.Cast HealSpell Player&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
=== Handhabung ===&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Aufgabenstellung ===&lt;br /&gt;
Als nächstes wollen wir einen Stein machen, der auf den Spieler schießt, wenn er zu nahe kommt.&lt;br /&gt;
=== Theorie ===&lt;br /&gt;
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.&lt;br /&gt;
=== Probleme ===&lt;br /&gt;
Beachte, dass der Stein aus der Kategorie ''[[ob:Activator|Activators]]'' stammen muss, sonst kann es sein, dass dieser Scriptbefehl nicht richtig funktioniert!&lt;br /&gt;
Als Bonus dürfen wir nun jedoch auch Fernzauber abfeuern lassen.&lt;br /&gt;
== Realisierung ==&lt;br /&gt;
=== Umgebung ===&lt;br /&gt;
Erstelle einen neuen Stein als [[ob:Activator|Activator]] und platziere ihn geeignet in der Spielwelt.&lt;br /&gt;
=== Script ===&lt;br /&gt;
&amp;lt;tesscript&amp;gt;Scn FireStone&lt;br /&gt;
&lt;br /&gt;
float timer&lt;br /&gt;
&lt;br /&gt;
begin GameMode&lt;br /&gt;
if GetDistance Player &amp;lt;= 1000&lt;br /&gt;
	if timer &amp;gt; 0&lt;br /&gt;
		Set timer to timer - GetSecondsPassed&lt;br /&gt;
	else&lt;br /&gt;
		set timer to 10&lt;br /&gt;
		Cast StandardShockDamageTarget5Master Player&lt;br /&gt;
	endif&lt;br /&gt;
endif&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
=== Handhabung ===&lt;br /&gt;
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.&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[:Kategorie:Entfernung und Bewegung|Entfernung und Bewegung]]&lt;br /&gt;
&lt;br /&gt;
[[:Kategorie:Timer|Timer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Handhabung von Zaubern|Zauber erzwingen]]&lt;br /&gt;
[[Kategorie: Scripts|Zauber erzwingen]]&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Spell_Window&amp;diff=1010</id>
		<title>Oblivion:Spell Window</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Spell_Window&amp;diff=1010"/>
				<updated>2008-08-13T15:03:21Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Spell-Fenster wird aufgerufen, indem man im Objekt-Fenster unter Magic-&amp;gt;Spell einen Eintrag wählt oder einen neuen erstellt.&lt;br /&gt;
&lt;br /&gt;
http://www.ei-der-zeit.com/LexikonCSIV/pic/fenster-spell.jpg&lt;br /&gt;
&lt;br /&gt;
* ID - Die ID ist der Name, mit dem der Zauber ausgerufen wird. Dieser Name muss eindeutig sein und darf nicht mit anderen Namen im Editor übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
* Name - Das ist der &amp;quot;Echte&amp;quot; Name des Zaubers, also der Name, der im Spiel für den Spieler sichtbar ist.&lt;br /&gt;
&lt;br /&gt;
* Type - Hier kann man eingeben, um welche Art Zauber es sich handelt. Es ist eine festgelegte DropDown Liste. Folgende Zauber können gewählt werden:&lt;br /&gt;
** An/Aus - Diese Effekte sind immer aktiv. Müssen Selbst-Effekte sein.&lt;br /&gt;
** Eigenschaft - Kosten fürs Aufrufen werden Ignoriert (meistens Null), kann nur einmal pro Tag aufgerufen werden.&lt;br /&gt;
** Geringe Macht - Kosten fürs Aufrufen sind fest, die Skills den Spielers werden ignoriert. &lt;br /&gt;
** Gift - ?&lt;br /&gt;
** Krankheit - Dieser Effekt kann man beim Kampf erhalten, eine Prozentuale Chance wird berechnet.&lt;br /&gt;
** Zauber - Normale Kosten fürs Aufrufen. Es gibt keine Begrenzung des Aufrufens. &lt;br /&gt;
&lt;br /&gt;
* School - Die Schule ist immer dieselbe wie die des teuersten Effekts innerhalb des Zaubers&lt;br /&gt;
&lt;br /&gt;
* Disallow Spell Absorb/Reflect - Wenn es aktiviert ist, kann der Zauber nicht Absorbiert oder Reflektiert werden.&lt;br /&gt;
&lt;br /&gt;
* Script Effect Always Applies - Wenn es nicht aktiviert ist, wird der Script-Effekt von der Actor-Resistenz behindert. Als Beispiel: Ein Spieler mit 50% Magie-Resistenz wird von einen 30 Sekunden Script-Effekt nur 15 Sekunden betroffen wenn dieses Feld nicht aktiviert ist.&lt;br /&gt;
&lt;br /&gt;
* Area Effect Ignores LOS - Normalerweise muss ein Flächen-Zauber eine Sichtlinie von der Mitte bis zum Ziel haben um es zu treffen. Als Beispiel: Wenn sich ein [[ob:Actor|Actor]] hinter einem Pfeiler versteckt, ist er sicher vor einem Feuerball. Wenn diese Option aber aktiviert wird, wird der Zauber alle dazwischenkommende Gegenstände ignorieren.&lt;br /&gt;
&lt;br /&gt;
* Immune to Silence - Dieser Zauber kann auch aufgerufen werden, wenn der Spieler &amp;quot;zum Schweigen gebracht worden ist&amp;quot;. Normal reserviert für rassenspezifische Zauber.&lt;br /&gt;
&lt;br /&gt;
* PC Start Spell - Wenn es aktiviert ist, steht dem Spieler dieser Zauber von Anfang an im Spiel zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
* Auto-Calculate - Wenn es aktiviert ist, kostet der Zauber soviel wie die Summe der einzelnen Effekte. &lt;br /&gt;
&lt;br /&gt;
* Spell Level - Setzt den erforderlichen Skill-Rank um den Zauber aufzurufen. Normalerweise wird das Spell-Rank von den folgenden Game-Settings beschlossen:  fMagicSpellLevelApprenticeMin, fMagicSpellLevelJourneymanMin, fMagicSpellLevelExpertMin, fMagicSpellLevelMasterMin.&lt;br /&gt;
&lt;br /&gt;
* Effects - Hier können die Zauber eingefügt werden, die mit Aufruf des Zaubers ausgeführt werden. Mit der rechten Maustaste öffnet man ein Kontext-Menü, mit dem man einen neuen erstellen kann (New), einen vorhandenen bearbeiteten (edit) oder löschen (delete) kann. Es öffnet sich das Effect Item Fenster.&lt;br /&gt;
&lt;br /&gt;
* Costs - Die Zauberpunkte-Kosten für diesen Zauber. Wenn Auto-Calculate nicht aktiviert wurde, kann man die Kosten selbst definieren und hier eintragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Siehe auch: &lt;br /&gt;
&lt;br /&gt;
* [[ob:Effect Item Window|Effect Item Fenster]] &lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Grundlegendes Wissen|Spell Window]]&lt;br /&gt;
[[Kategorie: Zauber|Spell Window]]&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Effect_Item_Window&amp;diff=1009</id>
		<title>Oblivion:Effect Item Window</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Effect_Item_Window&amp;diff=1009"/>
				<updated>2008-08-13T14:58:52Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Fenster wird aufgerufen, wenn man z.B. im Spell-Fenster in der Effects-Liste &amp;quot;New&amp;quot; aufruft oder einen vorhandenen Zauber editiert.&lt;br /&gt;
&lt;br /&gt;
http://www.ei-der-zeit.com/LexikonCSIV/pic/fenster-effect-item.jpg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Effect - Das ist der Effekt des Zaubers. Aus der DropDown-Liste kann aus zahlreichen Zaubern gewählt werden. Die Effekte sollten Selbsterklärend sein.&lt;br /&gt;
 &lt;br /&gt;
* Range - Die Reichweite des Effektes &lt;br /&gt;
** Selbst - Wirkt nur auf den Spieler&lt;br /&gt;
** Berühren - Der Actor muss in unmittelbarer Nähe zum Ziel stehen&lt;br /&gt;
** Ziel - Der Zauber wirkt auf das Ziel, welches auch entfernter sein kann.&lt;br /&gt;
 &lt;br /&gt;
* Area - Die Fläche auf der der Zauber wirkt. Ist bei Selbst-Zaubern deaktiviert.&lt;br /&gt;
&lt;br /&gt;
* Duration - Wie lange (in Sekunden) der Zauber wirkt.&lt;br /&gt;
&lt;br /&gt;
* Magnitude - Wert des Effekts. z.B. wie viel Rüstung dem Spieler zugefügt wird, oder wie viel Schaden ein Feuerball macht.&lt;br /&gt;
&lt;br /&gt;
* ActorVal - Nur relevant bei Fertikeit/Attribut festigen/entziehen/wiederherstellen/schaden/absorbieren. Bestimmt, welche Fertigkeit, bzw. Attribut davon betroffen sein soll (z.b. Athletik, Stärke)&lt;br /&gt;
&lt;br /&gt;
* Auto-Calculate Costs - Das ist der Preis, den der Zauber bei aktivierter &amp;quot;AutoCalc&amp;quot; im Spell-Fenster an Zauberpunkten kosten würde. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
* Script Effect Info - In diesem Frame können einige Besonderheiten für den Effekt angelegt werden, diese Felder sind nur dann aktiv, wenn unter &amp;quot;Effect&amp;quot; der Eintrag &amp;quot;Skript Effekt&amp;quot; gewählt wurde.&lt;br /&gt;
** Script - Hier kann ein Script für den Zauber ausgewählt werden &lt;br /&gt;
** http://www.ei-der-zeit.com/LexikonCSIV/pic/button-punktpunktpunkt.jpg - Öffnet den Script Editor &lt;br /&gt;
** Effect Name - Wie der Effekt heißen soll &lt;br /&gt;
** School - Welcher Magierschule der Zauber angehört &lt;br /&gt;
** Visual Effects - Hier kann man festlegen, welche visuellen Effekte den Zauber begleiten &lt;br /&gt;
** Effects is Hostile - Wenn dieses aktiviert ist, werden die Leute es nicht mögen, wenn du diesen Zauber auf sie wirkst&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Grundlegendes Wissen|Effect Item Window]]&lt;br /&gt;
[[Kategorie: Zauber|Effect Item Window]]&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Zauber_erzwingen&amp;diff=534</id>
		<title>Oblivion:Zauber erzwingen</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Zauber_erzwingen&amp;diff=534"/>
				<updated>2008-08-05T13:58:09Z</updated>
		
		<summary type="html">&lt;p&gt;MrMuh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Thema ==&lt;br /&gt;
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.&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Aufgabenstellung ===&lt;br /&gt;
Wir wollen, dass ein NPC der Spieler heilt, wenn man ihn aktiviert.&lt;br /&gt;
=== Theorie ===&lt;br /&gt;
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.&lt;br /&gt;
=== Probleme ===&lt;br /&gt;
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.&lt;br /&gt;
== Realisierung ==&lt;br /&gt;
=== Umgebung ===&lt;br /&gt;
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''.&lt;br /&gt;
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.&lt;br /&gt;
=== Script ===&lt;br /&gt;
&amp;lt;tesscript&amp;gt;Scn CastHealSpell&lt;br /&gt;
&lt;br /&gt;
begin OnActivate&lt;br /&gt;
&lt;br /&gt;
Heiler.Cast HealSpell Player&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
=== Handhabung ===&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Aufgabenstellung ===&lt;br /&gt;
Als nächstes wollen wir einen Stein machen, der auf den Spieler schießt, wenn er zu nahe kommt.&lt;br /&gt;
=== Theorie ===&lt;br /&gt;
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.&lt;br /&gt;
=== Probleme ===&lt;br /&gt;
Beachte, dass der Stein aus der Kategorie ''Activators'' stammen muss, sonst kann es sein, dass dieser Scriptbefehl nicht richtig funktioniert!&lt;br /&gt;
Als Bonus dürfen wir nun jedoch auch Fernzauber abfeuern lassen.&lt;br /&gt;
== Realisierung ==&lt;br /&gt;
=== Umgebung ===&lt;br /&gt;
Erstelle einen neuen Stein als Activator und platziere ihn geeignet in der Spielwelt.&lt;br /&gt;
=== Script ===&lt;br /&gt;
&amp;lt;tesscript&amp;gt;Scn FireStone&lt;br /&gt;
&lt;br /&gt;
float timer&lt;br /&gt;
&lt;br /&gt;
begin GameMode&lt;br /&gt;
if GetDistance Player &amp;lt;= 1000&lt;br /&gt;
	if timer &amp;gt; 0&lt;br /&gt;
		Set timer to timer - GetSecondsPassed&lt;br /&gt;
	else&lt;br /&gt;
		set timer to 10&lt;br /&gt;
		Cast StandardShockDamageTarget5Master Player&lt;br /&gt;
	endif&lt;br /&gt;
endif&lt;br /&gt;
end&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
=== Handhabung ===&lt;br /&gt;
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.&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[:Kategorie:Entfernung und Bewegung]]&lt;br /&gt;
&lt;br /&gt;
[[:Kategorie:Timer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Handhabung von Zaubern|Zauber erzwingen]]&lt;br /&gt;
[[Kategorie: Scripts|Zauber erzwingen]]&lt;/div&gt;</summary>
		<author><name>MrMuh</name></author>	</entry>

	</feed>