Zum Inhalt springen

M5 Charakterverwaltung auf dem Desktop


Empfohlene Beiträge

Geschrieben
vor einer Stunde schrieb Muahdib:

Aus Ars Armorum -> Zauberkundiger Kämpfer = Resi wie Zauberer

Kannst du mir die genaue Seite mitteilen, ich habe da leider nichts finden können.

vor 1 Stunde schrieb Muahdib:

Lernkosten Zauber

Das wird auf verschiedenen Ebenen durchgereicht. Dinge wie kostenloses Lernen beim Lehrmeister oder Lernen von Spruchrollen werden auf der Ebene des Charakters stattfinden.

vor 1 Stunde schrieb Muahdib:

Anzahl Spezialwaffen ...

Das ist notwendig damit Krieger ihre drei Spezialwaffen haben können. Die Spezialwaffe selbst ist ein Attribut eines Charakters, nicht seiner Charakterklasse. Aber es könnte durchaus sinnvoll sein, dieses Attribut schon für Abenteurer zu deklarieren, Zauberer haben dann halt 0 Spezialwaffen.

Geschrieben
vor 1 Minute schrieb Jadeite:

Kannst du mir die genaue Seite mitteilen, ich habe da leider nichts finden können.

sorry steht im Mysterium Seite 138

 

4. Der Kampfzauberer hat den Resistenzbonus +2 für Geistes-
und Körpermagie wie ein Zauberer.

 

Und "ich" denke der benannte Kampfzauberer ala Fian kann nicht anders dargestellt sein wie ein Druiden/Kämpfer..

Geschrieben
vor 1 Minute schrieb Muahdib:

sorry steht im Mysterium Seite 138

 

4. Der Kampfzauberer hat den Resistenzbonus +2 für Geistes-
und Körpermagie wie ein Zauberer.

 

Und "ich" denke der benannte Kampfzauberer ala Fian kann nicht anders dargestellt sein wie ein Druiden/Kämpfer..

Danke für die Seitenangabe. Kampfzauber und zauberkundige Kämpfer folgen aber verschiedenen Regeln.

Geschrieben

Ich habe jetzt nicht alles gelesen und sicher nicht alles Verstanden :D ich hätte nur eine Bitte
Selbst Editierbare Fertigkeiten die man mit den passenden Attributen versehen kann und ggf, auch an das Lernschema anknüpfen kann. 
Vielleicht so das ich zB Baukunde an eine Wissensfertigkeit Koppeln kann die es schon gibt. Nutze Lernkosten und Lernschema von X oder so.

 

Gruß

Dan

Geschrieben

@Der Dan Das ist so ziemlich genau das was ich vorhabe. Nahezu alle Komponenten wie Charakterklassen, Fertigkeiten, Zauber, Rassen, etc sollen innerhalb des Programms editierbar und erstellbar sein. Das Erstellen als Kopie hatte ich mir schon überlegt um schnell Klassen wie den Wu abzubilden der sich vom normalen Schamanen durch veränderte Lernkosten unterscheidet. Im Bezug auf eine Wissensfertigkeit wie Baukunde würde es schon genügen eine neue Fertigkeit Baukunde anzulegen, die als, beispielsweise, leichte Wissensfertigkeit zählt und deren Leiteigenschaft Intelligenz ist.

Midgard 5 ist etwas weniger granular was die Unterschiede der Klassen angeht und hat ein paar seltsame Folgen wie fechtende Barbaren, aber im Gegenzug erlaubt das System reibungslos das Hinzufügen neuer Klassen und Fertigkeiten.

  • Like 2
Geschrieben
vor 15 Stunden schrieb Jadeite:

Stimmt, die werden dann innerhalb der Rasse gespeichert, zusammen mit einer Collection von Ausnahmen um abzudecken das Elfen so tanzfreudig sind, Dafür muss man bei der Berechnung der Lernkosten neben der Klasse auch die Rasse angeben. Dann kann die Fertigkeit bei der Rasse nachfragen ob bei der eigenen Kategorie Zusatzkosten anfallen, für Zauber und Kampffähigkeiten läuft das ähnlich.

Bedenke: Bei Tanzen gelten die +6 für Elfen nicht!

Geschrieben (bearbeitet)
vor 44 Minuten schrieb Mogadil:

Bedenke: Bei Tanzen gelten die +6 für Elfen nicht!

 

vor 16 Stunden schrieb Jadeite:

zusammen mit einer Collection von Ausnahmen um abzudecken das Elfen so tanzfreudig sind

Bearbeitet von Jadeite
  • Like 1
Geschrieben (bearbeitet)

Hier ist mal die Klasse AllgemeineFertigkeit um zu verdeutlichen wie die Lernkosten der Fertigkeiten ermittelt werde (und weshalb ich dabei mit relativ wenigen Tabellen auskomme), diesmal mit Kommentaren;

 

/**
 * The Class AllgemeineFertigkeit.
 */
public class AllgemeineFertigkeit extends LernbareFertigkeit {
	
	/** Die Fertigkeitskategorien. */
	Fertigkeitskategorie[] fertigkeitskategorien;

	/**
	 * Gibt die Kosten zurück den Wert der allgemeine Fertigkeit um eins zu erhöhen.
	 *
	 * @param abenteurer    die Charakterklasse
	 * @param aktuellerWert der aktuelle wert
	 * @param praxispunkte  die zur verfügung stehenden Praxispunkte
	 * @return die Trainigskosten, bestehend aus Erfahrungspunkten, Goldstücken und
	 *         verwendeten Praxispunkten. Aspekte wie kostenloses Lernen oder der
	 *         Ersatz von EP mit Gold werden in der Nutzeroberfläche vorgenommen
	 */
	@Override
	Lernkosten getTrainigskosten(Abenteurer abenteurer, int aktuellerWert, int praxispunkte) {
		int trainingseinheiten = this.fertigkeitskategorien[0].getFertigkeitsgruppe()
				.getTrainingseinheiten(this.fertigkeitskategorien[0].getSchwierigkeit(), aktuellerWert);
		if (trainingseinheiten > praxispunkte)
			trainingseinheiten -= praxispunkte;
		else {
			praxispunkte = trainingseinheiten;
			trainingseinheiten = 0;
		}
		return new Lernkosten(trainingseinheiten * erfahrungspunkteProTrainingseinheit(abenteurer),
				trainingseinheiten * 20, praxispunkte);
	}

	/**
	 * Gibt die Kosten zurück den Wert der Waffenfertigkeit zu erlernen.
	 *
	 * @param abenteurer die Charakterklasse
	 * @param rasse      die Rasse (wegen den Elfen)
	 * @return die Lernkosten, bestehend aus Erfahrungspunkten, Goldstücken und
	 *         verwendeten Praxispunkten. Aspekte wie kostenloses Lernen oder der
	 *         Ersatz von EP mit Gold werden in der Nutzeroberfläche vorgenommen
	 * 
	 */
	@Override
	Lernkosten getLernkosten(Abenteurer abenteurer, Rasse rasse) {
		int lerneinheiten = fertigkeitskategorien[0].fertigkeitsgruppe
				.getLerneinheiten(this.fertigkeitskategorien[0].getSchwierigkeit());
		return new Lernkosten(
				lerneinheiten * erfahrungspunkteProTrainingseinheit(abenteurer) * 3 + rasse.getLernaufschlag(),
				lerneinheiten * 200, 0);

	}

	/**
	 * Hilfsmethode um die minimalen Erfahrungspunktkosten pro Trainingseinheit zu ermitteln.
	 *
	 * @param abenteurer die Charakterklasse
	 * @return minimalen Erfahrungspunktkosten pro Trainingseinheit
	 */
	private int erfahrungspunkteProTrainingseinheit(Abenteurer abenteurer) {
		// initialisiert den Wert auf dem globalen Maximum
		int erfahrungspunkteProTrainingseinheit = 40;
		// durchläuft alle Kategorien zu denen die Fertigkeit gehört und sucht den für
		// die Klasse günstigsten heraus
		for (Fertigkeitskategorie fertigkeitskategorie : fertigkeitskategorien) {
			int aktuelleKosten = abenteurer.getKostenFertigkeit(fertigkeitskategorie.getFertigkeitsgruppe().getWert());
			if (erfahrungspunkteProTrainingseinheit > aktuelleKosten)
				erfahrungspunkteProTrainingseinheit = aktuelleKosten;
		}
		return erfahrungspunkteProTrainingseinheit;
	}

	/**
	 * The Class Fertigkeitskategorie.
	 */
	class Fertigkeitskategorie {
		
		/** The fertigkeitsgruppe. */
		Fertigkeitsgruppe fertigkeitsgruppe;
		
		/** The schwierigkeit. */
		Schwierigkeit schwierigkeit;

		/**
		 * Gets the fertigkeitsgruppe.
		 *
		 * @return the fertigkeitsgruppe
		 */
		public Fertigkeitsgruppe getFertigkeitsgruppe() {
			return fertigkeitsgruppe;
		}

		/**
		 * Sets the fertigkeitsgruppe.
		 *
		 * @param fertigkeitsgruppe the new fertigkeitsgruppe
		 */
		public void setFertigkeitsgruppe(Fertigkeitsgruppe fertigkeitsgruppe) {
			this.fertigkeitsgruppe = fertigkeitsgruppe;
		}

		/**
		 * Gets the schwierigkeit.
		 *
		 * @return the schwierigkeit
		 */
		public Schwierigkeit getSchwierigkeit() {
			return schwierigkeit;
		}

		/**
		 * Sets the schwierigkeit.
		 *
		 * @param schwierigkeit the new schwierigkeit
		 */
		public void setSchwierigkeit(Schwierigkeit schwierigkeit) {
			this.schwierigkeit = schwierigkeit;
		}
	}
}

 

Die Lernkosten für Fertigkeiten werden innerhalb der Charakterklassen als Feld ganzer Zahlen gespeichert, jede Aufzählungstyp für Fertigkeitsgruppen hat als Attribut einen Wert der auf die passende Zelle verweist, dadurch braucht man nicht mehr 9 separate Getter.

EDIT: Ich habe erste Tests geschrieben und sie laufen sauber durch, die Berechnung der EP-Kosten scheint ordnungsgemäß zu funktionieren.

Bearbeitet von Jadeite
wollte nicht noch mehr Posts in Folge erstellen
  • Like 3
Geschrieben
vor 7 Stunden schrieb Jadeite:
* @param abenteurer    die Charakterklasse
	 * @param aktuellerWert der aktuelle wert
	 * @param praxispunkte  die zur verfügung stehenden Praxispunkte
	 * @return die Trainigskosten, bestehend aus Erfahrungspunkten, Goldstücken und
	 *         verwendeten Praxispunkten. Aspekte wie kostenloses Lernen oder der
	 *         Ersatz von EP mit Gold werden in der Nutzeroberfläche vorgenommen

Erstmal: ich finde es klasse, was Du hier machst. 

Zweitens, ich bin kein Profi-Softwareentwickler; ich habe als Student mal etwas unter Visual Basic mitentwickelt/die Entwicklung durch mehrere andere Studenten geleitet, das sich einige Jahre im täglichen Einsatz in der Hochschule gehalten hat, aber das ist lange her. 

Mit diesen Einschränkungen: ich würde bei den Lernkosten logisch strikter trennen zwischen "Mittelverwendung", also Lernkosten, und "Mittelherkunft" - ob das dann EP, Gold, "Lerngold" oder Praxispunkte sind. Wenn Du PP schon in die Lernkostenberechnung einrechnest, machst Du es Dir eventuell kompliziert, z.B. dann, wenn jemand aus irgendeinem Grund die PPs nicht vorrangig verbrauchen möchte.  

  • Like 1
Geschrieben

Ich glaub mein Projekt dazu wird das gleich ende haben wie damals zu beginn von M5,... will sagen jemand anderes (Jadeite) hat eine Version fertig bevor ich angefangen habe. 

:D

:thumbs:

 

 

Geschrieben

@Ma Kai Profi-Softwareentwickler bin ich auf keinen Fall, von daher sind Kritiken und Anregungen hilfreich. Was die Praxispunkte angeht wird auf dieser Ebene keine Referenz auf die Praxispunkte des Charakters übergeben, sondern lediglich ein Wert mit dem zurückgegeben werden kann wie teuer die Steigerung unter dieser Situation wäre. Wenn man die Möglichkeit hat ohne Goldkosten zu lernen könnte es in der Tat sinnvoll sein die Praxispunkte für später aufzuheben indem man beim Methodenaufruf für Praxispunkte 0 angibt, selbst wenn man welche hat.

@Irwisch Ich bin noch sehr am Anfang. Und ich werde nichts veröffentlichen ohne dass Pegasus eine Fanlizenz herausgegeben hat die es abdeckt. Wobei es durchaus sein kann das ich bis dahin noch nichts Endanwendertaugliches habe. Außerdem kann es durchaus sinnvoll sein mehrere Programme zu haben, insbesondere wenn unterschiedliche Konzepte dahinterstecken. Es kann immer sein, dass Programme aus unterschiedlichen Gründen nicht weiterentwickelt werden oder, insbesondere bei Webanwendungen, nicht mehr verfügbar sind.

  • Like 2
Geschrieben

@Jadeite Vielen Dank für dein Engagement und viel Spaß und Ausdauer bei diesem interessanten Projekt! :clap:

Ich würde die Daten so aufbereiten, wie es im Tabellensammlung.pdf geschehen ist. Dann sind die Fertigkeiten schon so, dass die Abfrage, welche Lernkosten am günstigsten sind und welche Steigerungskosten anfallen. Die Sonderfälle für Elfen mit ihren +6 auf Kosten für LE würde ich erstmal zurückstellen und eine lauffähige Version erstellen. Wenn das Design stimmt, dann sollten alle Spezialfälle relativ einfach zu ergänzen sein. Überlegungen zu Totem u. ä. gehören für mich auch nicht nach vorne. Ideen zum Datenfluss und -Speicherung sind genauso noch wichtig wie Gedanken über die Erstellung von Datenzetteln. Kennst du itext? Damit kann man schöne PDF erstellen, auch wenn es dann im Detail Arbeit macht. Ich habe mir das vor ein paar Jahren mal angesehen, bevor meine Bemühungen hinter Moam zurückstanden.

Geschrieben
vor einer Stunde schrieb Jadeite:

Ich bin noch sehr am Anfang.

Ja, schaun wir mal. Ich hab bisher eigentlich nur geschaut das ich eine Datenbank habe welche ich für praktikabel halte darauf aufzubauen.

vor einer Stunde schrieb Jadeite:

 Und ich werde nichts veröffentlichen ohne dass Pegasus eine Fanlizenz herausgegeben hat die es abdeckt.

Ich hab auch einen anderen Ansatz. nämlich etwas zu schreiben wo es völlig egal ist was Pegasus dazu sagt. Ich glaub das könnte möglich sein. Ist aber jezt zu spät es wirklich aufzuführen. Aber prinzipiell ein generischer Charctereditor in den man auch anderes Laden könnte. Addieren und Subtrahieren sind jezt alles Dinge auf welche Pegasus nicht den Daumen drauf hat.

Geschrieben

@Solwac Wenn ich die Daten wie in der Tabellensammlung aufarbeite habe ich eine Assoziation zwischen Fertigkeiten und Charakterklassen. Ich müsste also bei den Objekten von einem von beiden jeweils die Verknüpfungen speichern. Das macht einerseits den Datensatz deutlich größer, insbesondere wird aber das Hinzufügen neuer Klassen oder Fertigkeiten deutlich umständlicher da man sich dann darum kümmern muss diese Assoziationen zu erstellen oder zu aktualisieren. Und ob es dann einen Performancevorteil bietet ist ebenfalls nicht garantiert, da man ja in einer solchen Riesentabelle den passenden Eintrag finden müsste.

Ich habe innerhalb der Fertigkeiten gespeichert zu welchen Gruppen sie gehört. Das sind maximal sechs, im Schnitt aber eher zwei oder drei. Für jede davon kurz bei der Klasse nachzufragen wie hoch die Kosten sind ist kein sonderlicher Aufwand. Man könnte ihn sogar als Konstant annehmen, da die Anzahl der Fertigkeitsgruppen fest ist.

Was ich von der großen Tabelle übernommen habe ist im Prinzip die kleine Tabelle mit den Zeilen A-K wobei ich dort noch eine Spalte mit den LP-Kosten und dem Startwert hinzugefügt habe. Außerdem noch eine weitere Tabelle die für jede Fertigkeitsgruppe angeht welche Zeile bei Leicht, Normal, Schwer und Sehr Schwer genutzt werden soll. Damit spare ich mir ziemlich viel Code und Fallunterscheidungen im Vergleich zu vorher.

Ich werde also die große Tabelle nicht implementieren, kann aber falls Interesse besteht gerne eine Methode schreiben um sie für alle eingepflegten Klassen und Fertigkeiten zu erstellen. Das lässt sich sehr schnell coden, insbesondere wenn ich mich für die Ausgabe auf HTML beschränke.

Das elfische Lernen mitabzudecken war unproblematisch, hätte ich es später geändert hätte ich dafür eine Reihe von Signaturen ändern müssen. Und es funktioniert ja bereits. Wobei ich die Ausnahmen für Tanzzauber noch abdecken muss, aber auch da habe ich eine klare Vorstellung wie es funktioniert. Totems habe ich aber schon weit nach hinten geschoben und lediglich die Grundlagen geschaffen um bei einer Klasse angeben zu können ob sie eines (oder mehrere) hat.

Mit itext habe ich noch keine Erfahrung, aber natürlich war es mein Plan einen PDF-Export anzubieten (wobei ich da notfalls ein .tex erzeugt hätte was dann hätte weiterverarbeitet werden können). Werde ich mir anschauen wenn ich mich an die Ausgabe mache.

@Irwisch Das ist dann doch ein deutlich anderer Ansatz der es Wert ist weiterverfolgt zu werden.

  • Like 1
  • Thanks 1
Geschrieben
vor 10 Minuten schrieb Jadeite:

@Solwac Wenn ich die Daten wie in der Tabellensammlung aufarbeite habe ich eine Assoziation zwischen Fertigkeiten und Charakterklassen. Ich müsste also bei den Objekten von einem von beiden jeweils die Verknüpfungen speichern. Das macht einerseits den Datensatz deutlich größer, insbesondere wird aber das Hinzufügen neuer Klassen oder Fertigkeiten deutlich umständlicher da man sich dann darum kümmern muss diese Assoziationen zu erstellen oder zu aktualisieren. Und ob es dann einen Performancevorteil bietet ist ebenfalls nicht garantiert, da man ja in einer solchen Riesentabelle den passenden Eintrag finden müsste.

Ich verstehe nicht, was du mit der großen Tabelle meinst, ich brauche doch nur von Abenteurertyp auf die Lerntabellen zu verweisen, also die Tabelle auf S. 13 oben rechts. Ich schaue mir aber gerne noch mal an, was ich mir damals gedacht habe. :)

Geschrieben
vor 9 Minuten schrieb Solwac:

Ich verstehe nicht, was du mit der großen Tabelle meinst, ich brauche doch nur von Abenteurertyp auf die Lerntabellen zu verweisen, also die Tabelle auf S. 13 oben rechts. Ich schaue mir aber gerne noch mal an, was ich mir damals gedacht habe. :)

Meinst du die Tabelle auf Seite 13 der Datei Tabellensammlung_1403? Die ist von mir. Und der Gedanke ist recht einfach gewesen und von Jadeite auch schon umgesetzt: Es gab damals für jede Fertigkeit exakt eine Lernkostenzuordnung, auch wenn die Fertigkeit in mehreren Kategorien auftaucht. Mit Gerätekunde gibt es nun leider eine Ausnahme davon.

  • Thanks 2
Geschrieben
vor 16 Minuten schrieb Prados Karwan:

Meinst du die Tabelle auf Seite 13 der Datei Tabellensammlung_1403? Die ist von mir. Und der Gedanke ist recht einfach gewesen und von Jadeite auch schon umgesetzt: Es gab damals für jede Fertigkeit exakt eine Lernkostenzuordnung, auch wenn die Fertigkeit in mehreren Kategorien auftaucht. Mit Gerätekunde gibt es nun leider eine Ausnahme davon.

Ja, genau. :thumbs:

Geschrieben

@Solwac Ich hatte angenommen du würdest dich auf die Tabelle von Seite 15 beziehen. Die Tabelle von Seite 13 oben rechts nutze ich, nur dass ich es jeweils innerhalb der Charakterklassen speichere wodurch es deutlich erweiterbarer wird.

@Prados Karwan Danke für den Hinweis mit der Gerätekunde. Wobei ich mir unschlüssig bin ob ich das wirklich so umsetzen sollte, da ich diese Änderung für ziemlich problematisch erachte. Selbst für Händler ist es sinnvoller es als Kampffertigkeit zu lernen da sie so weniger Gold zahlen müssen. Man kann natürlich eine theoretische Klasse mit Alltag 10 und Kampf 20 oder 30 konstruieren, aber selbst dann hätte man die Abwägung zwischen EP Kosten auf der einen und Gold und PP Kosten auf der anderen Seite.

  • Thanks 1
Geschrieben (bearbeitet)

Da die Kampf Gerätekunde im ArsArmorum für mich speziell für Belagerungswaffen eingeführt wurde, diese einfach (in) Geschützkunde "um"benennen.

 

Wurde hier im Forum u.a. bei ArsA.errata & zuerst hier*) schonmal angesprochen.

Ist echt Schade, dass es keine offizielle ArsArmorum Errata gibt.

 

*) https://www.midgard-forum.de/forum/topic/41559-kampftechnik-lernkosten-der-abenteurertypen-aus-werken-nach-kodex-bspwmysterium-rawindra-moravod/#findComment-3783203

Bearbeitet von seamus
Tippfehler, link ergänzt
Geschrieben (bearbeitet)

@seamus Gerätekunde war von Anfang an als Ersatz für Ballista bedienen und Katapult bedienen gedacht, von daher ist es schon sinnvoll es auch als Kampffertigkeit zu führen. Ich hätte es allerdings von vorneherein nicht als Alltagsfertigkeit sondern als normale Kampf- und Wissensfertigkeit geführt.

Sofern ich keinen Fehler bei dem Erstellen meiner Tabelle hatte sind das hier äquivalenten Schwierigkeiten und Fertigkeitsgruppen:

A: Alltag leicht, Halbwelt leicht, Kampf leicht, Körper leicht, 
B: Freiland leicht, 
C: Alltag normal, Wissen leicht, 
D: Körper normal, 
E: Alltag schwer, Halbwelt normal, Kampf normal, Körper schwer, Sozial leicht, Wissen normal, 
F: Freiland normal, Wissen schwer, 
G: Halbwelt schwer, Sozial normal, Unterwelt leicht, 
H: Alltag sehr schwer, Freiland schwer, Sozial schwer, Unterwelt normal, 
I: Halbwelt sehr schwer, Kampf schwer, Unterwelt schwer, 
K: Kampf sehr schwer, 

 

Bearbeitet von Jadeite
Geschrieben (bearbeitet)

Jain, Gerätekunde beinhaltet ja alles mögliche an Geräten und Geschütze sind da nur eine geringe Teilmenge. Deswegen ist es im Kampf ja recht billig im Vergleich zum Alltag.

Aber mach dir das Programmierleben ruhig schwerer durch diesen Sonderfall, gibt ja eh keine offizielle Klärung

 

Bearbeitet von seamus
Geschrieben

@seamusEs ist kein großer Aufwand die Methoden so umzuschreiben, dass sie die Möglichkeit unterschiedlicher Lernkosten berücksichtigen. Auch der zusätzliche Rechenaufwand ist nicht groß. Es wird lediglich für alle bestehenden Klassen herauskommen, dass es günstiger ist die Fertigkeit als Kampffertigkeit zu erlernen.

Geschrieben

Habe ich etwas übersehen oder umfasst diese Liste alle aktuell in M5 vorhandenen Zauberkategorien und Kampftechniken?

Kampfkunst
Fechtkunst
Schießkunst
KiDo
Beherrschen
Bewegen
Erkennen
Erschaffen
Formen
Verändern
Zerstören
Dweomer
Wundertat
Zauberlied
Zaubersalz
Runenstab
Zaubersiegel
Zauberrune
Thaumatherapie
Finstere Magie
Chaoswunder
Wilder Dweomer
Nekromantie
Kampfvers
Elementarbeschwörungszauber
Zaubertanz
Erhaltung
Zaubermittel
Zauberschutz
Vigilsignie
Zauberblatt
Artefakt

 

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...