Dungeon: Unterschied zwischen den Versionen

Aus Sternenschweif Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Category:Modding Ein Dungeon im Spielsinn von Schicksalsklinge HD ist ein Bereich, in dem sich sog. #Trigger befinden, also dreidimensional definierte …“)
(kein Unterschied)

Version vom 16. März 2015, 22:11 Uhr

Ein Dungeon im Spielsinn von Schicksalsklinge HD ist ein Bereich, in dem sich sog. #Trigger befinden, also dreidimensional definierte Bereiche, die bei "Berührung" durch eine Party eine Aktion auslösen. Für jeden Dungeon existiert ein Skriptbereich, der für den gesamten Dungeon sog. #Callbacks beinhaltet, also Funktion mit bestimmtem Namen, die bei bestimmten Aktionen aufgerufen werden. Ein Dungeon enthält außerdem die Definition von Türen und deren Widerstandsfähigkeit gegen bestimmte Öffnungsarten, sowie #Truhe Truhen, mit ähnlichen Definitionen. Außerdem sind sog. #Itemset Itemsets definiert, die als Inhalt von Truhen verwendet werden können.

Übersicht XML

Das Dungeon-XML ist in Bereiche unterteilt, die die Definition des Dungeon ausmachen:

<dungeon intname="dngf046">
	<floor id="0">
		<tiles>
			<tile cdoorid="1" state="open" type="door" />
			<tile cdoorid="2" state="locked" foramenmod="6" lockpickmod="-2" runinmod="3" type="door" />
			<!--- ... -->
			<tile chestid="1" foramenmod="-6" lockpickmod="2" type="chest" />
			<tile chestid="2" foramenmod="-6" lockpickmod="2" type="chest" />
		</tiles>
		<fights>
			<fight fightname="f04604" extraAP="0">
				<escape dir="0" x="1" y="10" lookdir="0" floor="0" />
				<escape dir="1" x="3" y="14" lookdir="3" floor="0" />
				<escape dir="2" x="1" y="10" lookdir="0" floor="0" />
				<escape dir="3" x="3" y="14" lookdir="3" floor="0" />
				<fightdata id="89" name="F04604">
					<enemy>
						<monster id="6" startin="1" />
						<monster id="6" startin="1" />
						<monster id="16" startin="1" />
						<monster id="16" startin="1" />
					</enemy>
					<loot />
				</fightdata>
			</fight>
			<!--- ... -->
		</fights>
		<triggers>
			<trigger name="coolerroom" x="11" y="-16.5" width="4" height="4" />
			<trigger name="deadwanderer" x="2.5" y="-42" width="3" height="4" />
			<trigger name="f04604" x="7" y="-8.5" width="6" height="6" />
			<!--- ... -->
		</triggers>
	</floor>
	<script><!-- hier steht normalerweise das Dungeonscript --></script>
	<itemsets>
		<itemset id="chest_0_2">
			<item id="3" />
			<item id="98" />
			<item id="4" />
		</itemset>
		<itemset id="chest_1_1">
			<item id="47" />
			<item id="149" />
			<item id="236" count="1" />
			<item id="180" count="1" />
			<item id="169" />
			<item id="204" />
			<item id="243" />
		</itemset>
		<!--- ... -->
	</itemsets>
</dungeon>

Jeder Dungeon ist in sog. "floors", also Ebenen, unterteilt. Diese dienen als Container für Kämpfe, Tür- und Kistendefinitionen sowie Trigger. Allgemein für den gesamten Dungeon werden dann noch Itemsets und das sog. "Dungeonscript" gesetzt.

floor

Die floor-IDs sind numerisch und müssen aufsteigend gesetzt werden, beginnend mit "0".

Tür

Eine Tür wird mittels <tile cdoorid="XX" type="door"> definiert, wobei die existenten Tür-IDs durch das Dungeondesign und dessen Daten vorgegeben sind. Eine Tür kann folgende optionale Eigenschaften erhalten:

  • state: Der Status der Tür bei Erst-Betreten des Dungeons. Mögliche Werte sind "open", "closed", und "locked"
  • foramenmod: Der Modifikator auf einen Zauberspruch "foramen", der zum Öffnen der Tür verwendet werden soll. Positive Werte erleichtern, negative erschweren.
  • lockpickmod: Der Modifikator auf eine Probe zum Öffnen der Tür mittels "Schlösser knacken"
  • runinmod: Der Modifikator für das Eintreten der Tür mittels Stärkeprobe von zwei Charakteren

Geheimtür

Wird mittels <tile cdoorid="XX" state="closed" type="secretdoor"> definiert, wobei die möglichen IDs durch das Dungeondesign und dessen Daten vorgegeben sind. Geheimtüren werden über Trigger und das Dungeonscript geöffnet, eine Geheimtür mit "state="opened"" ist zwar theoretisch möglich, wäre aber relativ sinnlos.

Entfernbare Hindernisse

Werden mittels <tile cdoorid="XX" type="removeablewall"> definiert, wobei die möglichen IDs durch das Dungeondesign und dessen Daten vorgegeben sind. Entfernbare Hindernisse sind zB die eingestürzten Bereiche in der Mine von Prem, die mittels graben von der Party entfernt werden können. Auch diese werden ausschließlich über das Dungeonscript "geöffnet".

Truhe

Diese wird mittels <tile chestid="XX" type="chest"> definiert, wobei wie bei Türen die IDs der Kisten durch das Dungeondesign vorgegeben sind. Eine Kiste kann folgende optionale Eigenschaften erhalten:

  • foramenmod: Der Modifikator auf einen Zauberspruch "foramen", der zum Öffnen der Truhe verwendet werden soll
  • lockpickmod: Der Modifikator auf eine Probe zum Öffnen der Truhe mittels "Schlösser knacken"
  • trap: Eine Falle, die beim missglückten Knacken des Schlosses auslöst. Als Wert wird die Schadensart übergeben, zB "physical" oder "fire"
  • diecnt, dietype, mod: Wie viel Schaden die Falle verursachen soll, als Würfelwurf. Beispiel: 2W6+3 = diecnt="2" dietype="6" mod="3"