Item mit Aufladungen / Begrenzte Anzahl Anwendungen
Einen besonderen Dank an Frejna(@DieAldorEU), basiert die Idee und der erste Entwurf dieser Itemart auf einer Frage zu TRP3E, die sie einst stellte. Eigentlich bestand zunächst gar keine Absicht einen kleinen Guide zu dieser Art Items zu verfassen, liegt das gemeinsame Herumtüfteln mit Frenja auch bereits gut ein Jahr zurück.
Doch wiederkehrende Fragen, die nach dieser oder ähnlicher Möglichkeiten in TRP3E sich erkundigten, legten nahe, dass es womöglich eine hilfreiche Ergänzung für diesen How-To sein könnte.
Dass es so ist, mag verständlich sein, ist die Lösung wohl nicht direkt offensichtlich. TRP3E bietet keine Checkbox an, die mit einem einfachen Klick es ermöglicht ein Item mit begrenzten Aufladungen oder einer begrenzten Anzahl an Benutzungen zu erzeugen. Leider wird man dafür etwas mehr tun müssen als das. Aber keine Sorge, einmal verstanden, ist die Lösung recht simpel.
In diesem Beispiel bauen wir ein simples Puderdöschen, welches genug Inhalt besitzt, um das Näschen genau fünf mal zu pudern.
Sollte man Schwierigkeiten haben, so kann man das Item, welches wir nun bauen, auch als Import-Code weiter unten finden.
Aber der Reihe nach.
Ein Puderdöschen
Zu Beginn brauch es natürlich überhaupt eines Items, welches wir mit den begrenzten Anzahl an Aufladungen ausstatten können.
Der einfachste Weg, um alles zu bekommen, das wir brauchen werden, ist schlicht ein ‚Expertenitem‘ zu bauen. Keine Sorge, es klingt komplexer als es eigentlich ist.
Gegenstand erstellen → Experten-Gegenstand
Auf diesen Gegenstand können nun nach eigener Vorliebe alle Anzeigeeinstellungen ausgefüllt werden. Die für dieses Beispiel wichtigen Einstellungen sind jedoch die folgenden:
- Ein Häkchen bei ‚Benutzen‘ setzen
- Die Textvariabel
${useVar::5}
in einer der Beschreibungsfelder des Items schreiben
Während die Itemeigenschaft ‚Benutzen‘ womöglich recht selbsterklärend ist, mag die Textzeile ${useVar::5}
vermutlich zunächst eher kryptisch erscheinen. Was genau bedeutet sie?
${variabelname}
ist ein Textplatzhalter. An dieser Stelle wird in einem Text immer der Wert angezeigt, der unter dem entsprechenden Variablennamen gespeichert ist. In diesem konkreten Beispiel weiter oben also der Wert, der unter der Variabel useVar
gespeichert wurde. Noch existiert diese Variabel aber nicht, weswegen wir einen ‚Defaultwert‘ angeben müssen. Dies geschieht, indem wir ::x
hinter dem Variablennamen setzen. Wobei X alles Beliebige sein kann. In unserem Beispiel sehen wir eine 5 dort stehen. Das bedeutet, solange die Variabel nicht initialisiert worden ist, wird an dieser Stelle im Text der Wert 5 stehen.
Natürlich, kann dort auch jede andere beliebige Zahl stehen. Welche, das kommt ganz darauf an, wie viele Aufladungen/Benutzungen zu Beginn möglich sind.
Im Beispielitem habe ich diesen Platzhalter in das Feld ‚Rechter Tooltip-Text‘ geschrieben. Jedoch kann er nahezu überall in den Anzeigeeinstellungen verwendet werden. Ebenso kann man ihn in Dokumenten-Items verwenden. Weitere Beispiele kann man im Guide von Seleves zu Dokumente unter TRP3E unter dem Punkt Variablen-Tags in Dokumenten nachlesen.
Warum machen wir das aber? Nun, das ist im Grunde ganz simpel. Wir sollten natürlich demjenigen, der dieses Item benutzt, mitteilen, wie viele Anwendungen ihm noch verbleiben. Es direkt in den Tooltip zu schreiben, ist dabei die offensichtlichste Möglichkeit.
Damit haben wir jetzt ein Item, mit dem wir fortfahren können. Ihr solltet also zu diesem Zeitpunkt etwas haben, das ungefähr so aussieht:
Nun speichern nicht vergessen.
Ein Arbeitsablauf anlegen
Jetzt fehlt nur noch ein Arbeitsablauf, der das Mitzählen von Benutzungen ermöglicht. Keine Sorge, in seiner simpelsten Ausführung ist dieser Arbeitsablauf äußerst kurz. Genaugenommen sind nur drei Schritte wirklich notwendig.
Sobald ihr also einen Arbeitsablauf erstellt habt unter dem Reiter ‚Arbeitsabläufe‘, fügen wir mit ‚Element in Arbeitsablauf einfügen‘ folgende drei Arbeitsschritte ein:
Variabel initialisieren
Effekt → Experte → VariabelnoperationIn diesem Effekt wählen wir die folgenden Einstellungen:
- Quelle: Objekt
- Art der Rechenoperation: Initialisierung
- Variabelnname:
useVar
- Wert: 5
Was genau haben wir damit aber nun bezweckt?
Wir haben eine Variabel erzeugt (initialisiert), die so lange gespeichert wird, wie das Item besteht (Quelle: Objekt). Diese Variabel hört auf den Namen
useVar
und beginnt mit dem Wert 5.Sowohl Name als auch der Startwert können frei gewählt werden. Es muss an anderen Stellen dieses Beispielitems nur berücksichtigt werden dann. So z.B. der Variablen-Platzhalter, wie er weiter oben beschrieben wurde.
Variabel subtrahieren
Effekt → Experte → VariabelnoperationIn diesem Effekt wählen wir die folgenden Einstellungen:
- Quelle: Objekt
- Art der Rechenoperation: Subtraktion
- Variabelnname:
useVar
- Wert: 1
Dieser Arbeitsschritt bewirkt, dass, wann immer er durchlaufen wird, die Zahl, die unter
useVar
gerade gespeichert ist, um 1 reduziert wird. Also, die Ausladungen/Anwendungen des Items reduzieren sich um 1.
Gegenstand verbrauchen
Effekt → Inventar → Gegenstand verbrauchenZum Schluss möchten wir natürlich, dass das Item ‚verbraucht‘ wird, sobald alle Aufladungen/Benutzungen aufgebraucht worden sind. Also, der Inhalt des Puderdöschens aufgebraucht worden ist.
Lassen wir diesen Eintrag so nun im Arbeitsablauf stehen, wird er bei jeder Gelegenheit ausgeführt, was wir natürlich nicht wollen. Daher müssen wir ihn mit einer Bedingung belegen:
- Rechtsklick auf Effekt: Gegenstand verbrauchen
- Effektbedingung bearbeiten
- Auf den ersten Eintrag unter ‚Bedingungstest‘ klicken
- Im linken Feld: Experte → Variablenwert (numerisch) setzen
- Dort Quelle: Objekt und Variablenname:
useVar
setzen- Im mittleren Feld ‚ist gleich‘ auswählen
- Im rechten Feld: Direkter Wert → Zahlenwert setzen
- Dort eine 0 als Wert setzen
Am Ende müsste bei Euch etwas zu sehen sein, das so aussieht:
Damit wurde sichergestellt, dass das Item nur dann aufgebraucht wird, wenn alle Benutzungen aufgebraucht worden sind. Also die Variabel
useVar
den Wert 0 erreicht hat.
Nun speichern nicht vergessen.
Euer Arbeitsablauf sollte nun folgendermaßen aussehen:
In Worten gefasst, wird der Arbeitsablauf jetzt also folgendes machen: Er wird bei einer erstmaligen Ausführung die Variabel useVar
erzeugen. Vor der Benutzung wird im Textplatzhalter der Defaultwert angezeigt. Die Rechenoperation: Initialisierung wird genau ein mal ausgeführt, egal wie oft der Arbeitsablauf durchlaufen wird. Mit jedem Durchlauf wird die Variabel um ein reduziert. Dies geschieht so lange, bis wir den Wert 0 erreichen, worauf das Item zerstört wird. Es wurde also aufgebraucht.
Natürlich kann man diesen Arbeitsablauf noch um eigene Schritte ergänzen. Wie Textmeldungen, die erscheinen, wenn bestimmte Füllstände erreicht worden sind oder aber Klänge, die abgespielt werden, wenn das Items benutzt wird.
Damit wären wir beinahe durch.
Den Arbeitsablauf verknüpfen
Das einzige, was nun noch fehlt, ist es, die Benutzen Aktion mit dem Arbeitsverkauf zu verknüpfen. Dazu gehen wir schlicht in den Reiter ‚Ereignisverknüpfung‘ und wählen für den Punkt ‚Bei Benutzung‘ den Arbeitsablauf aus, den wir gerade erzeugt haben.
Geschafft! Du hast soeben ein Item mit einer begrenzten Anzahl an Benutzungen angelegt.
An dieser Stelle sei bedankt, wer mir bis hier hin gefolgt ist. Und ich hoffe, dieser kleine Guide konnte dem ein oder anderen von Nutzen sein.
Wer auf Probleme stößt oder Fragen hat, darf gerne diese in diesem Thread äußern oder aber im Privaten direkt über den Ingamechat an mich wenden. Oder sie oder er möge in das Beispielitem hinein schauen können. Wie dieser Code zu verwenden ist, kann man hier nachlesen.
TRP3 Extendend Beispiel-Item-Code (klicken zum erweitern ...)
!vk12UTjqq0FM(AIzHqXfj)a(IuTKdo1JV0QQUemS1zBTxIGfRErnFw9hO)y9mluvLK(sfOb25Y5CMzhPqUwMkWRxWlLP(sYluejc8gggDyyuDJmnazqZtH1kP1Vd)JZ0e2BrLPP9Kk5JwvnNarRzlJjP6ag)PlL0586SQ9FsvamYRp00fKQCu((rFGPHABuBZRLPxjPqqg)q49OUbwJK8zhbphCTvDkRxlorv(NW950XFXDQIpNbCYFe79SYSXhhnQVLplt96vXJuILfY)xdEXtBpX)Q9c(lxLkBU(yt3mFXCMKLBE68gHUEQBQpfssmq4pW3)HBfdJf(XEGLjJrS70L5xmvRsowwvlPTqqqlLBHiUm8Yqa)sMpiLT9Bb01WZS3I6bUIObEHD4ge7nmomcy(CCHwEDsNCNS0j35Y9iRv8vjrZXNVCLBTHWNPB4zlD9UUrmTHKD7uuLztd0sc(DSY0A)MYWjmMXMUHGcfVs4kaAyXm0pQ69h1Q9kJ6HB7kP1CqzIDcbsinbf2wQQl)1pBWkGXTLIaVjXDdHMbh2K6CnJTtwX2DZWKkeQCkZQVadTTOIqp4AxcNXno7Ci1iVmTPPOwFVvxzYUxF4KYyZQRAu5w0otCeUctHx89UTG44WFWnwJQOTwB)6c1z1rElX2TF4UASs5V)d