<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>http://www.ei-der-zeit.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Oblivion%3ACS-Terminologie_%28Anregungen%29</id>
		<title>Oblivion:CS-Terminologie (Anregungen) - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="http://www.ei-der-zeit.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Oblivion%3ACS-Terminologie_%28Anregungen%29"/>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:CS-Terminologie_(Anregungen)&amp;action=history"/>
		<updated>2026-05-10T14:35:40Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in Skript-Wiki</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:CS-Terminologie_(Anregungen)&amp;diff=4890&amp;oldid=prev</id>
		<title>Keris am 23. März 2009 um 17:21 Uhr</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:CS-Terminologie_(Anregungen)&amp;diff=4890&amp;oldid=prev"/>
				<updated>2009-03-23T17:21:56Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 23. März 2009, 17:21 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l62&quot; &gt;Zeile 62:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 62:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Dynamische Gegenstände==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Dynamische Gegenstände==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wie vorher erwähnt, sind '''dynamische &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Gegenstände“ &lt;/del&gt;nicht permanent mit Referenzen verbunden. Stattdessen haben sie „keine“ Referenz, wenn sie im Inventar liegen und werden jedes Mal einem neuen Record dynamisch zugewiesen, wenn sie in die Welt fallen gelassen werden. Noch einmal: das steht im Kontrast zu nicht dynamischen Gegenständen -- z.B. Gegenstände, die direkt durch eine Mod in die Welt gesetzt werden. Nicht dynamische Gegenstände werden immer durch ihr Original repräsentiert, einer mod-definierten Referenz, unabhängig ihrer Bewegung im Inventar, Containern oder [[ob:cell|Zellen]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wie vorher erwähnt, sind '''dynamische &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Gegenstände''' &lt;/ins&gt;nicht permanent mit Referenzen verbunden. Stattdessen haben sie „keine“ Referenz, wenn sie im Inventar liegen und werden jedes Mal einem neuen Record dynamisch zugewiesen, wenn sie in die Welt fallen gelassen werden. Noch einmal: das steht im Kontrast zu nicht dynamischen Gegenständen -- z.B. Gegenstände, die direkt durch eine Mod in die Welt gesetzt werden. Nicht dynamische Gegenstände werden immer durch ihr Original repräsentiert, einer mod-definierten Referenz, unabhängig ihrer Bewegung im Inventar, Containern oder [[ob:cell|Zellen]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Was geschieht als mit der temporären Referenz eines dynamischen Gegenstands, nachdem man ihn aufgehoben hat? Meistens wird er direkt aus dem Savegame gelöscht. Und tatsächlich (nach dem letzten Patch 1.2.0416) wird die [[Oblivion:FormID|FormID]] dieser dynamischen Referenz wiederverwendet. Wenn du also in einer isolierten [[ob:cell|Zelle]] bist, einen Eisendolch fallen lässt, seine [[Oblivion:FormID|FormID]] überprüfst, ihn wieder aufhebst und dann ein Eisenschild fallen lässt, wird der dynamischen Referenz höchstwahrscheinlich die [[Oblivion:FormID|FormID]] zugewiesen, die zuvor durch das Aufheben des Eisendolchs frei wurde.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Was geschieht als mit der temporären Referenz eines dynamischen Gegenstands, nachdem man ihn aufgehoben hat? Meistens wird er direkt aus dem Savegame gelöscht. Und tatsächlich (nach dem letzten Patch 1.2.0416) wird die [[Oblivion:FormID|FormID]] dieser dynamischen Referenz wiederverwendet. Wenn du also in einer isolierten [[ob:cell|Zelle]] bist, einen Eisendolch fallen lässt, seine [[Oblivion:FormID|FormID]] überprüfst, ihn wieder aufhebst und dann ein Eisenschild fallen lässt, wird der dynamischen Referenz höchstwahrscheinlich die [[Oblivion:FormID|FormID]] zugewiesen, die zuvor durch das Aufheben des Eisendolchs frei wurde.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Keris</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:CS-Terminologie_(Anregungen)&amp;diff=3574&amp;oldid=prev</id>
		<title>Keris am 21. Oktober 2008 um 12:05 Uhr</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:CS-Terminologie_(Anregungen)&amp;diff=3574&amp;oldid=prev"/>
				<updated>2008-10-21T12:05:15Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 21. Oktober 2008, 12:05 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l165&quot; &gt;Zeile 165:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 165:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{ Übersetzung |constwiki:Modding_Terminology|Modding_Terminology}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{ Übersetzung |constwiki:Modding_Terminology|Modding_Terminology}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Grundlegendes &lt;/del&gt;Wissen]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Scripting &lt;/ins&gt;Wissen&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|CS-Terminologie (Anregungen)&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Keris</name></author>	</entry>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:CS-Terminologie_(Anregungen)&amp;diff=3565&amp;oldid=prev</id>
		<title>Keris: Die Seite wurde neu angelegt: ==Modules (Module), Records (Einträge), FormIDs== Mit dem TESCS zu modden bedeutet, '''Modul'''-Dateien zu editieren (i.e. esp- und esm-Dateien). E...</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:CS-Terminologie_(Anregungen)&amp;diff=3565&amp;oldid=prev"/>
				<updated>2008-10-21T11:38:20Z</updated>
		
		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: ==Modules (Module), Records (Einträge), &lt;a href=&quot;/wiki/index.php?title=Oblivion:FormID&quot; class=&quot;mw-redirect&quot; title=&quot;Oblivion:FormID&quot;&gt;FormIDs&lt;/a&gt;== Mit dem TESCS zu modden bedeutet, &amp;#039;&amp;#039;&amp;#039;Modul&amp;#039;&amp;#039;&amp;#039;-Dateien zu editieren (i.e. esp- und esm-Dateien). E...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Modules (Module), Records (Einträge), [[Oblivion:FormID|FormIDs]]==&lt;br /&gt;
Mit dem TESCS zu modden bedeutet, '''Modul'''-Dateien zu editieren (i.e. esp- und esm-Dateien). Es gibt weitere Arten, zu „modden“ (erstellen/editieren von Resourcen -- Mesh, Textur, Sound, Sprache --; ini- und xml-Dateien usw.), aber hier werden wir nur über das Editieren von Modul-Dateien sprechen.&lt;br /&gt;
&lt;br /&gt;
Eine Modul-Datei ist eine Sammlung von '''Records'''. Verschiedene Record-Typen definieren verschiedene Dinge: [[Oblivion:Sound|Sounds]], [[Oblivion:Rasse|Rassen]], plazierte Objekte („References“), [[Oblivion:Leveled List|Leveled Lists]], etc. Während verschiedene Record-Typen verschiedene Felder haben (z.B. Gewicht eines Pfeils, x-Position eines plazierten Objekts, Sound-ID von einer sich öffnenden Tür), sind sie auf unterster Ebene alle eins -- ein Record.&lt;br /&gt;
&lt;br /&gt;
Alle Records haben eine einzigartige (unique) '''FormID'''. Viele (aber nicht alle) Records haben auch '''[[Oblivion:EditorID|EditorIDs]]'''- [[Oblivion:FormID|FormIDs]] sind achtstellige hexadezimal Nummern (z.B. 00030FDC). [[Oblivion:EditorID|EditorIDs]] sind kurze Text-Strings (nur Buchstaben und Zahlen, keine Leer- oder Sonderzeichen). Für Records, die im [[Oblivion:Object Window|Objekt-Fenster]] des CS aufgelistet sind, ist die [[Oblivion:EditorID|EditorID]] in der ersten Spalte und die [[Oblivion:FormID|FormID]] in der zweiten (per Default ist diese Spalte nicht breit genug, um den Inhalt zu sehen -- du musst den Spaltentrenner nach rechts ziehen, um die [[Oblivion:FormID|FormID]] zu sehen). Das Gleiche gilt für die beiden Teile im [[Oblivion:Cell View Window|Cell-View-Fenster]]: der rechte Teil listet die plazierten Objekte auf die gleiche Weise -- mit einem Unterschied -- wenn einer bestimmten Referenz keine [[Oblivion:EditorID|EditorID]] zugewiesen wurde, wird die [[Oblivion:EditorID|EditorID]] des Basisobjekts dieser Referenz angezeigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Objekt vs. Objekt==&lt;br /&gt;
„'Dieser Abschnitt kann sehr verwirrend sein. Du solltest ihn vielleicht überspringen. Der Hauptpunkt ist, dass ich beim Sprechen übers Modden hauptsächlich über &amp;quot;Records&amp;quot; und nicht über Objekte spreche. Meistens. Wie auch immer, es geht los...'“&lt;br /&gt;
&lt;br /&gt;
Es gibt ein großes Problem, wenn man beim Sprechen übers Modden das Wort Objekt nutzt. Das Problem ist, dass es verschiedene völlig offensichtliche, aber untereinander unvereinbare Arten gibt, dieses Wort zu verwenden. Ich werde diese hier ansprechen und versuchen, die Konflikte zu lösen -- zum Teil, indem ich die Standardterminologie missachte.&lt;br /&gt;
&lt;br /&gt;
Beim Spielen tendiert man dazu, an „Objekte“ in der Spielwelt zu denken -- eine Mauer, ein Fels, eine Kreatur, ein Dolch, den man in einer Truhe findet. Wenn man mit dem Render-Fenster des CS arbeitet, tendiert man dazu, auf ganz ähnliche Art an „Objekte“ zu denken, außer dass man wahrscheinlich Nebelbänke, Kollisionszonen etc. auch als „Objekte“ betrachtet. Unglücklicherweise widerspricht dem das CS, indem es diese Dinge „Referenzen“ nennt und „Objekte“ als Dinge definiert, die im „[[Oblivion:Object Window|Objekt-Fenster]]“ auftauchen. Aber aus einer weiteren Sicht, der eines Programmieres, denkt man bei einem „Objekt“ an eine abstrakte Verkettung von Daten -- z.B. wäre die interne Repräsentierung von all diesen Records (Klassen, Faktionen, Basis-Objekte und Referenzen) ein „Objekt“.&lt;br /&gt;
&lt;br /&gt;
Also versuche ich, das Wort „Objekt“ hier so selten wie möglich zu verwenden. Wenn ich es nutze, dann gewöhnlich aus der Sicht eine Spielers -- wie die Dinge in der Spielwelt gesehen und gehandhabt werden. Beim Modden, wenn ich über Datenverkettungen reden werde, sage ich „Records“. Und immer wenn ich über einen bestimmten Type eines Records reden werde (Zelle, Faktion, Wafe, Referenz usw.), kann dies als Abkürzung für „Zell-Rekord“, „Faktion-Rekord“ usw. gesehen werden.&lt;br /&gt;
&lt;br /&gt;
Dem Folgend werde ich mit weiteren existierenden CS-Terminologien brechen:&lt;br /&gt;
* Anstelle „base object“ werde ich „Basis-Rekord“ sagen.&lt;br /&gt;
* Anstelle „reference variable“ werde ich „Rekord-Variable“ sagen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Referenzen==&lt;br /&gt;
Eine Referenz basiert auf einem '''Basis-Rekord''' (aka „base objects“ im CS). Der Basis-Rekord für eine Referenz ist der Prototype für diese Referenz. Einige Basen können viele Referenzen haben (z.B. Standard-Container), einige haben nur eine (z.B. die meisten Nicht-Kampf-[[NPC|NPCs]]).&lt;br /&gt;
&lt;br /&gt;
Die meisten Records im Spiel sind Referenzen (dank drüber nach: hunderte [[ob:cell|Zellen]], mit Mauern, Bäumen, [[Oblivion:Kreatur|Kreaturen]] etc. -- es addiert sich alles). Auch wenn man jeder dieser Referenzen eine [[Oblivion:EditorID|EditorID]] zuweisen könnte, wird dies zum Glück nicht getan. Daher haben die meisten Records der oblivion.esm keine EditorID. &lt;br /&gt;
&lt;br /&gt;
Neben den Referenzen gibt es eine weitere Gruppe an Records, die keine [[Oblivion:EditorID|EditorID]] haben -- und das sind Basis-Records, die im Spiel erstellt werden. [[Oblivion:EditorID|EditorIDs]] sind wirklich nur nützlich für menschliche Modder, nicht für das CS oder die Spielengine, beide arbeiten mit den [[Oblivion:FormID|FormIDs]]. Da die Records für Alchemie-Tränke, [[Oblivion:Spell|Zauber]], verzauberte Rüstungen und Waffen, die im Spiel erstellt werden, nicht von Menschen angesehen werden, wird ihnen keine Editor ID zugewiesen.&lt;br /&gt;
&lt;br /&gt;
Referenzen können auch „parent“-(Eltern-)-Referenzen haben. Parent-Referenzen werden aus zwei Gründen verwendet: &lt;br /&gt;
1) die Verkettung schaltet Stati zwischen den Referenzen an/aus (das Erscheinen von Oblivion-Toren wird durch solche Ketten kontrolliert) und&lt;br /&gt;
2) das Verlinken von Referenzen auf eine Art, die Skripts verwenden können (Fallen nutzen das -- eine Trigger-Seil-Referenz könnte als Parent einen fallenden Baumstamm haben -- das Skript für das Seil reagiert auf einen Actor, der damit kollidiert, indem es die Parent-Referenz triggert). Man beachte, dass für das An-/Ausschalten die Parent-Ref tatsächlich als „Parent“ reagiert, aber bei Verwendung in einer Falle oder einer ähnlichen Situation ist der Vorgang andersherum -- das „child“ (Kind) kontrolliert das „parent“.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Base Records (Basis-Records)==&lt;br /&gt;
Basis-Records dienen auch als „Basis“ für Gegenstände in Containern. Solche Gegenstände in der Spielwelt können komplex sein -- manchmal haben/sind sie Referenzen, aber meistens nicht. Mehr dazu weiter unten.&lt;br /&gt;
&lt;br /&gt;
Denk dran, dass nicht alle Records, die im „[[Oblivion:Object Window|Objekt-Fenster]]“ gelistet werden, Basis-Records sind. Speziell Texturen,- [[Oblivion:Sound|Sounds]]-, Wasser-Records, die (meistens) von anderen Records verwendet werden, dienen selbst nie als Basis. Es gibt wirklich keinen Unterschied zwischen diesem Record-Typ und dem andern ([[ob:cell|Zellen]], Regionen, [[Oblivion:Rasse|Rassen]] usw.), die nur über Menüs editiert werden. Warum sind sie also im „[[Oblivion:Object Window|Objekt-Fenster]]“? Es gibt keinen guten Grund. Wahrscheinlich teilweise historisch von früheren Spielen bedingt und teilweise persönliche Verlieben von Programmierern und Moddern bei Bethsoft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vs. Programmier-Terminologie==&lt;br /&gt;
Zwischenspiel für verwirrte Programmierer...&lt;br /&gt;
&lt;br /&gt;
Programmierer werden die CS-Terminologie wahrscheinlich teilweise verwirrend finden. Der Nutzen des CS von „Objekt“, „parent“ und „Referenz“ hat meist gar nichts mit der Bedeutung dieser Wörter bei der Programmierung zu tun.&lt;br /&gt;
* beim Programmieren ist eine Referenz hauptsächlich ein Zeiger auf eine andere Datenstruktur, aber im CS ist die „Referenz“ eine komplexe Datenstruktur -- mehr ein „Objekt“ als eine „Referenz“. Die [[Oblivion:FormID|FormID]] des CS kommt einer Programmier-Referenz noch am nahesten.&lt;br /&gt;
* beim Programmieren ist eine Klasse eine Definition eines Typs oder einer Datenstruktur, die angelegt werden kann. Am ehesten ist ein Basis-„Objekt“ im CS eine Klasse.&lt;br /&gt;
* beim Programmieren ist ein Objekt typischerweise eine angelegte Klasse. Im CS ist das am ehesten ... eine „Referenz“!&lt;br /&gt;
* beim Programmieren ist ein „Parent“ einer Instanz normalerweise die Klasse, auf der die Instanz basiert. Aber im CS ist das „Parent“ einer Referenz eine weitere Referenz -- eher eine Verknüpfung zu einer vorherigen Instanz in einer einfach verketteten Liste.&lt;br /&gt;
&lt;br /&gt;
Also Programmierer, nehmt einfach euer CS-Wissen über Objekte, Referenzen und Parents und haltet euch vorerst daran! Jetzt aber zurück...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dynamischer Inhalt==&lt;br /&gt;
'''Dynamische''' Records und Gegenstände sind Records und Gegenstände, die während dem Spielverlauf generiert werden. In Vanilla-Oblivion sind das meist dynamische Referenzen (gespawnte [[Oblivion:Kreatur|Kreaturen]]) und dynamische Gegenstände (Objekte aus Containern und Actor-Inventaren). Zusätzlich gibt es PC-erstellte [[Oblivion:Spell|Zauber]], Tränke und verzauberte Gegenstände sowie ein paar spezielle Records wie der NPC-basierte Record für die Spielerstatue in Kvatch. Davon abgesehen kann [[Oblivion:OBSE|OBSE]] eine Vielzahl dynamischer Basis-Objekte erstellen. &lt;br /&gt;
&lt;br /&gt;
Beispiel: wenn [[ob:actor|Actors]] an einem Spawn-Punkt spawnen, wird jeder [[ob:actor|Actor]] eine dynamische Referenz sein. Ihre Rüstung, Waffen, Inventar und Gegenstände beim Tod werden dynamische Gegenstände sein.&lt;br /&gt;
&lt;br /&gt;
Beispiel: wenn der Spieler eine verzauberte Rüstung an einem Verzauberungsaltar erstellt, werden zwei dynamische Records erstellt -- einer für die Verzauberung und einer für den Basis-Record der Rüstung. Zusätzlich gibt es einen einzelnen Instanz-Gegenstand, der in das Inventar des Spielers gelegt wird.&lt;br /&gt;
&lt;br /&gt;
Dynamische Records (Referenzen, Verzauber-Records, [[Oblivion:Spell|Zauber]]-Records usw.) „gehören“ zum Savegame und nicht zu einer Mod und somit starten ihre [[Oblivion:FormID|FormIDs]] immer mit einem ‚FF’. Wenn man sich ingame die [[Oblivion:FormID|FormID]] eines Records anschaut und sie mit FF anfängt, ist ein ein dynamischer Record. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dynamische Gegenstände==&lt;br /&gt;
Wie vorher erwähnt, sind '''dynamische Gegenstände“ nicht permanent mit Referenzen verbunden. Stattdessen haben sie „keine“ Referenz, wenn sie im Inventar liegen und werden jedes Mal einem neuen Record dynamisch zugewiesen, wenn sie in die Welt fallen gelassen werden. Noch einmal: das steht im Kontrast zu nicht dynamischen Gegenständen -- z.B. Gegenstände, die direkt durch eine Mod in die Welt gesetzt werden. Nicht dynamische Gegenstände werden immer durch ihr Original repräsentiert, einer mod-definierten Referenz, unabhängig ihrer Bewegung im Inventar, Containern oder [[ob:cell|Zellen]].&lt;br /&gt;
&lt;br /&gt;
Was geschieht als mit der temporären Referenz eines dynamischen Gegenstands, nachdem man ihn aufgehoben hat? Meistens wird er direkt aus dem Savegame gelöscht. Und tatsächlich (nach dem letzten Patch 1.2.0416) wird die [[Oblivion:FormID|FormID]] dieser dynamischen Referenz wiederverwendet. Wenn du also in einer isolierten [[ob:cell|Zelle]] bist, einen Eisendolch fallen lässt, seine [[Oblivion:FormID|FormID]] überprüfst, ihn wieder aufhebst und dann ein Eisenschild fallen lässt, wird der dynamischen Referenz höchstwahrscheinlich die [[Oblivion:FormID|FormID]] zugewiesen, die zuvor durch das Aufheben des Eisendolchs frei wurde.&lt;br /&gt;
&lt;br /&gt;
Jedoch werden diese Referenzen unter bestimmten Umständen „nicht“ vom Savegame entfernt (das Nicht-Entfernen scheint mit Skript-Record-[[ob:variablen|Variablen]] verbunden zu sein, die entweder mit der Referenz verbunden sind und/oder auf diese zeigen). In dem Fall existiert die Referenz weiterhin im Savegame, ist aber ingame nicht sichtbar und ist nicht länger mit dem Gegenstand, der jetzt im Inventar liegt, verbunden. Wenn der Gegenstand wieder fallen gelassen wird, wird er nicht mehr mit dieser alten Referenz verbunden, sondern ihm wird eine neue dynamische Referenz zugewiesen -- was dann aufs gleiche Problem hinausläuft. Anscheinend werden diese vergessenen Referenzen „nicht“ durch den üblichen Drei-Tages-Respawn-Aufräum-Prozess aus dem Savegame entfernt. Dadurch kann das Savegame, wenn es viele dieser Referenzen gibt, sehr groß werden. Daher werden diese als „bload references“ (aufgeblähte Referenzen) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Beim Verstehen, wie dynamische Gegenstände zwischen [[ob:cell|Zellen]] und Containern und zwischen verschiedenen Containern  bewegt werden, sollte man wissen, dass diese nicht wirklich verschoben, sondern kopiert werden. Das ursprüngliche Objekt wird in den neuen Container/die neue [[ob:cell|Zelle]] kopiert, zusammen mit seinen Statusinformationen (Rüstung/Waffe, Gesundheit, Verzauberungsladen, lokale Skript[[ob:variablen|Variablen]]) und das Original wird gelöscht (oder bei Bload-Referenzen als destroyed (zerstört) markiert).&lt;br /&gt;
&lt;br /&gt;
Dieses Kopieren wird beim Fallenlassen mehrerer Instanzen identischer einfacher Gegenstände offensichtlich (z.B. bei Pfeilen oder unbeschädigten Eisendolchen). Wenn du mehrere solcher einfachen Gegenstände (z.B. 10 Eisenpfeile) fallen lässt, werden sie nicht als 10 separate Pfeile fallen, sondern als einzelner, gestapelter Pfeil (Beim Mouseover erscheint ein „Eisenpfeil (10)“). In dem Fall behandelt das Spiel die 10 Pfeile nicht als 10 verschiedene Pfeile, sondern als 1 Pfeil x 10 (beachte, dass dies nur für einfache, dynamische Gegenstände gültig ist).&lt;br /&gt;
&lt;br /&gt;
Zu einem gewissen Grad ist also die fortlaufende Existenz eines Gegenstands reine Einbildung -- was der Spieler als einzelnen Dolch, der aus einer Kiste herausgenommen und dann in eine andere gelegt wird, wahrnimmt, ist vielmehr eine Abfolge kopierter Objekte. Da dieser Kopier-/Löschvorgang den Status exakt kopiert, kann man aber auch davon sprechen, dass die Gegenstände kontinuierlich existieren, auch wenn ihre unterliegende Repräsentation kommt und geht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Scripting-Terminologie==&lt;br /&gt;
Wenn es ums Skripten geht, hat die vorhergehende Diskussion zwei Hauptbedeutungen:&lt;br /&gt;
* Das Verständnis, welche Record-Typen verschiedene Skriptfunktionen erfordern.&lt;br /&gt;
* Das Verständnis von Record-[[ob:variablen|Variablen]] und was in sie getan werden kann.&lt;br /&gt;
&lt;br /&gt;
'''Record-[[ob:variablen|Variablen]]''' beinhalten Records, oder genauer, sie halten die „[[Oblivion:FormID|FormIDs]]“ von Records. Da eine [[Oblivion:FormID|FormID]] genau nur einem Record zugeordnet ist, kann die kurze numerische [[Oblivion:FormID|FormID]] bei Funktionsaufrufen für den tatsächlichen Record stehen. Du kannst dies in einem Skript durch Verwendung eines Aufrufs wie „message „targetRef value: %X“ targetRef“ prüfen.  Das wird die [[Oblivion:FormID|FormID]] ausgeben, die in targetRef gespeichert ist. Beim Sprechen über Funktionen vernachlässigen wir diesen Punkt gewöhnlich jedoch und sagen anstelle von z.B. „getSelt gibt die [[Oblivion:FormID|FormID]] der aktuellen Referenz zurück“ eher „getSelf gibt die aktuelle Referenz zurück“. Das Letztere ist leichter zu sagen und impliziert immer das Erstere.&lt;br /&gt;
&lt;br /&gt;
Du wirst oft Record-[[ob:variablen|Variablen]] sehen, die als „Referenz-[[ob:variablen|Variablen]]“ bezeichnet werden. Das kommt daher, dass Funktionen in einem nicht [[Oblivion:OBSE|OBSE]]-Oblivion, die Records zurückgeben, „nur“ Referenz-Records zurückgeben. Also obwohl Record-[[ob:variablen|Variablen]] natürlich Nicht-Referenzen halten könnten, wird nie etwas anderes als eine Referenz darin gespeichert (daher werden Record-[[ob:variablen|Variablen]] auch mit dem Schlüsselwort ‚ref’ und nicht mit ‚rec’ deklariert). Da [[Oblivion:OBSE|OBSE]] ermöglicht, die volle Bandbreite an Record-Typen darin zu speichern, denken wir ab jetzt am Besten an „Record-[[ob:variablen|Variablen]]“ (unglücklicherweise sind wir immer noch an die ‚ref’-Syntax für die Deklaration gebunden).&lt;br /&gt;
&lt;br /&gt;
Beim Spezifizieren von Records in Skripts sollte man entweder eine Record-[[ob:variablen|Variable]] oder eine [[Oblivion:EditorID|EditorID]] nutzen. Beim Kompilieren eines Skripts wird die [[Oblivion:EditorID|EditorID]] in die dazugehörige [[Oblivion:FormID|FormID]] konvertiert, die die Gameengine dann beim Ausführen des Skripts verwendet. Man beachte, dass es zwar oft möglich ist, die [[Oblivion:FormID|FormID]] anstelle der [[Oblivion:EditorID|EditorID]] zunutzen, dies aber nicht wünschenswert ist, da: a) es schwerer zu lesen ist und b) wenn je ein zusätzlicher Master hinzugefügt wird, wird die angegebene [[Oblivion:FormID|FormID]] höchstwahrscheinlich ungültig (man beachte, dass die kompilierte [[Oblivion:FormID|FormID]] automatisch an ihren neuen Wert angepasst wird, wenn ein Master hinzugefügt wird).&lt;br /&gt;
&lt;br /&gt;
Nun, zurück zur verwirrenden Terminologie. In diesem Wiki werden verschiedene Terminologien an verschiedenen Stellen verwendet. Unser Verständnis ist mit der Zeit gewachsen und [[Oblivion:OBSE|OBSE]] hat grundlegend verändert, wie Records sind und in Skripts verwendet werden können.&lt;br /&gt;
&lt;br /&gt;
Dahingehend werden jetzt die folgenden Änderungen der Praxis vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
* In Skripts sollten Record-[[ob:variablen|Variablen]] so benannt werden, dass sie ihrem Nutzen im Skript entsprechen und „nicht“ ihrer „id“. '''Ref''' und/oder '''base''' sollten, wenn erforderlich, verwendet werden, um die Natur der [[ob:variablen|Variable]] zu kennzeichnen. Die Funktionsbeschreibungen sollten jedoch immer anzeigen, ob das Argument eine ref oder eine base benötigt.&lt;br /&gt;
* Wenn die Funktion entweder eine base oder eine ref akzeptiert, nutze '''bor''' (ich bin mir noch nicht ganz sicher, ob das eine solche Funktion ist -- die Hinweise, die ich über [[Oblivion:OBSE|OBSE]]-Funktionen sah, schienen zu sagen, dass wenn die base spezifiziert ist, muss sie an anderer Stelle sein wie ein Referenz-Argument). &lt;br /&gt;
* '''Container''' als Ref-[[ob:variablen|Variable]] wird (gewöhnlich/immer?) so verstanden, dass sie für einen Container, [[NPC|NPC]] und Kreatur-Referenz steht (Ich kenne keine Container-Funktion, die nur für Container funktioniert und nicht bei Kreatur- oder NPC-Referenzen).&lt;br /&gt;
&lt;br /&gt;
Einige Skriptbeispiele:&lt;br /&gt;
&amp;lt;tesscript&amp;gt;ref companion&lt;br /&gt;
ref companionCell&lt;br /&gt;
set companionCell to companion.getParentCell&lt;br /&gt;
&lt;br /&gt;
ref dagger&lt;br /&gt;
set dagger to player.placeAtMe wrTestDagger 1 100 0&lt;br /&gt;
message &amp;quot;Dagger formid: %X&amp;quot; dagger&lt;br /&gt;
&lt;br /&gt;
ref tempRecord&lt;br /&gt;
set tempRecord to getSelf&lt;br /&gt;
set tempRecord to tempRecord.getContainer&lt;br /&gt;
set tempRecord to tempRecord.getParentCell&lt;br /&gt;
&lt;br /&gt;
ref spell&lt;br /&gt;
set spell to GetPlayerSpell&lt;br /&gt;
player.Cast spell&lt;br /&gt;
&lt;br /&gt;
ref self&lt;br /&gt;
ref myBase&lt;br /&gt;
set self to getSelf&lt;br /&gt;
set myBase to self.getBaseObject&lt;br /&gt;
&lt;br /&gt;
ref opponent&lt;br /&gt;
set opponent to getCombatTarget&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei Funktionen sollten „ref“ (oder „reference“) und „base“ häufiger verwendet werden, um die Natur des Arguments festzulegen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(opponent) actorRef.getCombatTarget&lt;br /&gt;
(value) npcRef.getClothingValue&lt;br /&gt;
(bool) npcRef.getIsSex male|female&lt;br /&gt;
(actionRef) reference.getActionRef&lt;br /&gt;
(bool) [reference.]isFurniture [base]&lt;br /&gt;
(bool) [reference.]isLight [base]&lt;br /&gt;
(health) [itemRef.]GetObjectHealth [itemBase]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternativ könnte man auch den Rückgabewert und den Typ aller Argumente spezifizieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;(opponent:rec) actorRef:rec.getCombatTarget&lt;br /&gt;
(value:short) npcRef:rec.getClothingValue&lt;br /&gt;
(bool:short) npcRef:rec.getIsSex male|female&lt;br /&gt;
(actionRef:rec) reference:rec.getActionRef&lt;br /&gt;
(bool:short) isFurniture base:rec&lt;br /&gt;
(bool:short) reference:rec.isFurniture&lt;br /&gt;
(bool:short) isLight base:rec&lt;br /&gt;
(bool:short) reference:rec.isLight&lt;br /&gt;
(health:long) [itemRef:rec.]GetObjectHealth [itemBase:rec]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Scripting-Notizen==&lt;br /&gt;
Einige Klarstellungen fürs Skripten im Licht der Diskussion von hier.&lt;br /&gt;
* getSelf, angewandt auf einen Mod-basierten Gegenstand, wird immer die Original-[[Oblivion:FormID|FormID]] des Gegenstands zurückgeben.&lt;br /&gt;
* getSelf auf einen dynamischen Gegenstand wird immer 0 zurückgeben -- sogar, wenn der Gegenstand in einer [[ob:cell|Zelle]] ist und eine Referenz hat. Während du vielleicht erwartest, dass die [[Oblivion:FormID|FormID]] der dynamischen Referenz zurückgegeben wird, wenn es in einer [[ob:cell|Zelle]] ist, ist die Funktion so erstellt, dass sie wohl aus Sicherheitsgründen 0 zurückgibt.&lt;br /&gt;
* placeAtMe erstellt eine dynamische Referenz -- „und“ gibt die korrekte [[Oblivion:FormID|FormID]] zurück (im Gegensatz zu getSelf).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Kurze Wiederholung==&lt;br /&gt;
* '''Record:''' grundlegende Struktur von Daten&lt;br /&gt;
* '''Field:''' Aspekte eines Records (z.B. das Gewicht eines Pfeils, die Reichweite eines Bogens...)&lt;br /&gt;
* '''Formid:''' der grundlegende, acht Hexstellen-Bezeichner aller Records&lt;br /&gt;
* '''EditorID:''' Der String-Bezeichner, der von vielen (aber nicht allen) Records genutzt wird. * '''Reference:''' Ein In-der-Welt-Objekt -- alle Objekte, die in die Welt gesetzt wurden und Objekte in Containern (die meisten Referenzen haben „keine“ [[Oblivion:EditorID|EditorIDs]], aber alle haben [[Oblivion:FormID|FormIDs]]).&lt;br /&gt;
* '''Base Object:''' Der Record, auf dem eine gegebene Referenz basiert (z.B. „BarrelFoodLow“).&lt;br /&gt;
* '''Items''' sind tragbare Objekte, wie der Spieler sie in der Welt wahrnimmt -- sie haben eine wahrgenommene Lebenszeit, die normalerweise größer ist, wie die Lebenszeit der unterliegenden Datenrepräsentation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Veraltete Begriffe==&lt;br /&gt;
* '''Object:''' verwirrender Begriff. Verwende wenn möglich einen anderen Begriff. Unglücklicherweise lässt sich das oft schwer vermeiden. &lt;br /&gt;
* '''True Reference:''' Unnütz. Nicht verwenden.&lt;br /&gt;
* '''Hexid:''' Nutze stattdessen „formid“.&lt;br /&gt;
&lt;br /&gt;
{{ Übersetzung |constwiki:Modding_Terminology|Modding_Terminology}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Grundlegendes Wissen]]&lt;/div&gt;</summary>
		<author><name>Keris</name></author>	</entry>

	</feed>