Seite 1 von 1

Wareninstanz

BeitragVerfasst: Fr 15 Jan, 2021 20:11
von lordhelix
Wie kann ich mit einer Ware die per Selektion des Spielers gespeichert wurde im späteren Verlauf einer Queste modifizieren?

Code: Alles auswählen
<!-- InstanzID der Ware (für weitere Verwendung, dem Spieler nicht zeigen!) -->
<store name="instanzID"><get object="selected-item" attribute="instance_id"/></store>

Hier kann ich die Wareninstanz speichern. Das ist genau das Item welches der Spieler ausgewählt hat (nehme ich an). Wie kann ich es später (automatisch) erneut selektieren und die Qualität bearbeiten oder es per drop entfernen? Ist das überhaupt möglich?

Re: Wareninstanz

BeitragVerfasst: Mo 01 Feb, 2021 01:50
von Tommek
Bisher nicht möglich. Was hast du vor? Entweder gibt es einen Workaround oder ich kann den Aufwand besser abschätzen.

Grüße,
Tommek

Re: Wareninstanz

BeitragVerfasst: Mo 01 Feb, 2021 10:13
von lordhelix
Ich wollte ein item das der Spieler "selected" erst in späteren Szenen verwenden, auslesen, bearbeiten.

Ich hatte zum Beispiel den Fall in der aktuellen Quest - Dort wird Zunder + Feuerstein + Lampenöl genutzt. Überall wollte ich die Qualität senken wenn die Lampe erfolgreich entzündet wurde. Aber wenn die Lampe nicht entzündet wurde, darf die Qualität nicht sinken. Denn es wurde ja nichts verbraucht. Ob es erfolgreich war erfahre ich aber erst 3 Szenen später. Da bis dahin jedoch bereits 2 andere Sachen selektiert wurden, kann ich die ersten beiden Items nicht mehr verändern.

Das ist nicht Überlebenswichtig, und wenn der Aufwand zu groß ist, dann lassen wir Das. Dachte nur, weil es im Wiki vorhanden ist, gibt es das auch. Vielleicht sollten wir das auch dem Wiki dann löschen.

Re: Wareninstanz

BeitragVerfasst: Mo 01 Feb, 2021 10:15
von Tommek
Ich schaue nochmal ob wir da was undokumentiertes haben.

Re: Wareninstanz

BeitragVerfasst: Di 02 Feb, 2021 00:33
von Tommek
Helix teste mal bitte dies:
Code: Alles auswählen
Szene1: <item-select item="Heiltrank" show="quality" target="Szene2" />
Szene2: <store name="instanzID"><get object="selected-item" attribute="instance_id"/></store>

Szene X: <item-select instance-id="${instanzID}" target="SzeneABC" />


Das funktioniert derzeit auf dem Testserver. Auch wenn nach dem select mit instance-id die nächste Szene automatisch getriggert wird, ist erst in der Folgeszene (nach SzeneABC) das alte Item selektiert. Passt das so?

Re: Wareninstanz

BeitragVerfasst: Di 02 Feb, 2021 00:34
von lordhelix
Ja das passt so :D Super und vielen Dank.

Re: Wareninstanz

BeitragVerfasst: Do 04 Feb, 2021 21:53
von Pyromaniac
lordhelix hat geschrieben:Ich hatte zum Beispiel den Fall in der aktuellen Quest - Dort wird Zunder + Feuerstein + Lampenöl genutzt. Überall wollte ich die Qualität senken wenn die Lampe erfolgreich entzündet wurde. Aber wenn die Lampe nicht entzündet wurde, darf die Qualität nicht sinken. Denn es wurde ja nichts verbraucht.


Beim Lampenöl brauchst du nichts zu senken, das verbraucht sich. Ist das Öl alle, geht auch die Lampe kaputt.
Bei der Feldschertasche gibt es das Prinzip auch.
Da hat wohl jemand schon Gegenstandsquesten geschrieben, die im Hintergrund laufen.

Re: Wareninstanz

BeitragVerfasst: Sa 20 Feb, 2021 21:47
von lordhelix
Ich habe aktuell noch keinen Test gezogen, aber TS reagiert ja manchmal anders.

Was geschieht wenn ich die Ware speichere, dann ins pending gehe und der Held die Ware verkauft? Ich rufe erst danach die Szene auf welche die Ware auswertet, diese ist aber nicht mehr vorhanden.

Bzw: Hast du einen Ansatz wie ich prüfe ob die Ware noch vorhanden ist?

Re: Wareninstanz

BeitragVerfasst: Sa 20 Feb, 2021 22:00
von Tommek
Dann schlägt die Folgeaktion fehl. Da gibt es immer eine Prüfung ob die Ware noch im Besitz ist.

Re: Wareninstanz

BeitragVerfasst: Sa 20 Feb, 2021 22:25
von lordhelix
Hmm, okay das verstehe ich dann doch nicht. Ich ging davon aus wenn ich die Ware wegschmeiße/verkaufe, ist die Instanz nicht mehr vorhanden und habe es dann auch so geschrieben, Auf dem Testserver habe ich zwei Wege genutzt, habe beide male aber trotz nicht mehr vorhandenem Item in den success-Zweig gefunden.

Code: Alles auswählen
<has name="instanzID" show="none" >
  <success>
  <!-- Wenn Wareninstanz vorhanden -->
    Quest geht weiter
  </success>
  <failure>
  <!-- Wenn Wareninstanz nichtmehr vorhanden
    <quest status="ended" />
  </failure>
</has>


Und zweite

Code: Alles auswählen
<!-- Prüfung ob Ware vorhanden ist -->
<item-select instance-id="${Karte-instanzID}" target="warenpruf-szene" /><!-- im target setze ich NUR variable kartenochda -->
 
<has name="kartenochda" show="none" >
  <success>
     <store name="kartenochda" /><!-- Variable ist gesetzt und wird genullt für das nächste pending das wieder auf vorhandene Wareninstanz prüft -->

  </success>
  <failure>
    <quest status="ended" />
  </failure>
</has>

Re: Wareninstanz

BeitragVerfasst: Sa 20 Feb, 2021 22:44
von Tommek
<has name="instanzID" show="none" >

Prüft ob da eine Variable gesetzt wurde. Die Variable gibt es ja. Du kannst aber in der Quest nichts mehr mit der Ware machen. Kein item-selct, kein drop etc.

Re: Wareninstanz

BeitragVerfasst: Sa 20 Feb, 2021 22:55
von lordhelix
Okay, du hast völlig recht, war mein Fehler ! Konkret muss die Ware vorhanden sein damit die Quest weitergeht.

Wie bewerkstellige ich das?

Re: Wareninstanz

BeitragVerfasst: Mo 22 Feb, 2021 11:44
von Tommek
Im Chat geklärt: has item