PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Heilitem soll Event auslösen.



Klunky
11.06.2012, 07:50
Ich habe ein Heilitem, welches nur aus einen bestimmten Ort zu holen ist.
Immer wenn man dieses Item bekommt, wird eine Variable +1 gesetzt.
Nun möchte ich dass, wenn man 99 Exemplare dieses Items hat, eine Meldung auftaucht:"Mehr kann ich nicht tragen".
Alles kein Problem, nur soll diese Variable bei Gebrauch des Items auch wieder -1 gesetzt werden, nur leider seh ich
keine Möglichkeit, da Heilitems keine Switches besitzen um Common Events auszulösen, die dann die Variable beispielsweise runtersetzen würden.

Hat jemand einen Vorschlag?

MagicMaker
11.06.2012, 08:22
RPG2000 oder RPG2003? Ich hätte für ersteres vielleicht einen Plan.

caesa_andy
11.06.2012, 08:54
beim Maker ist das Maximum an Items des selben typs die du sammeln kannst, bereits auf 99 festgelegt. Wozu diese Umstände?

Wenn du das wirklich machen willst, musst du - zumindest beim 2k3 - ein Common-Event schreiben, dass die Menge an Items, die du in deinem Inventar hast, zählt und in einer Variable speichert. Also nicht die Veränderungen, sondern nur den Besitz.

Klunky
11.06.2012, 09:38
RPG2000 oder RPG2003? Ich hätte für ersteres vielleicht einen Plan.

Ja, ich benutze den RPG-Maker 2000, sry dass ich das ausgelassen habe.


beim Maker ist das Maximum an Items des selben typs die du sammeln kannst, bereits auf 99 festgelegt. Wozu diese Umstände?

Ganz einfach, Komfort.
Ausserdem ist es einfach unlogisch, wenn man weiterhin den Gegenstand aufheben kann, wenn er nicht im Inventar dazu gezählt wird, es muss halt irgendwie ein wenig logisch sein.

caesa_andy
11.06.2012, 10:44
Die einzige Möglichkeit die du hast, ist wie gesagt, bei jeder Kiste die du aufmachen kannst, eine Abfrage vorzuschalten, die zuerst die Anzahl des Items im Inventar in eine Variable speichert und dann die herrausgabe des Items verweigert, wenn der Wert der Variable 99 beträgt. Das musst du aber für jede Kiste und Questbelohung und wer weiß was nicht noch alles machen. Apropos Questbelohung ... wie willst du das regeln, wenn der Spieler die belohung nicht annehmen kann? Kann er dann den Quest nicht beenden?

Bei Beute-Items, die nach Kämpfen verteilt werden, hast du im Übrigen gar keine Chance.

MagicMaker
11.06.2012, 11:43
Vergiss was ich gesagt habe, ich hab vergessen, dass das ganz einfach so funktionieren wird wie schon erwähnt wurde:

eine Abfrage vorzuschalten, die zuerst die Anzahl des Items im Inventar in eine Variable speichert und dann die herrausgabe des Items verweigert, wenn der Wert der Variable 99 beträgt

Klunky
11.06.2012, 12:20
Ok das klingt jetzt vielleicht peinlich, aber ich weiß garnicht wie es mögich ist Items in einer Variable zu speichern, so dass sich die Variable, je nach Anzahl der gerade im Besitz befindenden Items dynamisch verändert. (Falls das überhaupt möglich ist.)

Aber mal zur Erklärung der Situation:
Ich hatte nie vor dass für jedes Item zu jeder Zeit so einzurichten, sondern nur für ein bestimmtes bei einem ganz bestimmten Event.
Es gibt da ein Event, immer wenn dieses Event angesprochen wird kommt ein Sound und man erhält das Heilitem. (Welches 1 HP heilt)
Per Fork Condition habe ich also gemacht, das man ab 99 Stück nicht mehr den Sound hört und das Item erhält, sondern stattdessen der Held die Meldung herausgibt, dass er nicht mehr von dieser Sorte tragen kann.
Und ab dieser Stelle weiß ich eben nicht mehr weiter, die einzige Möglichkeit das Item zu reduzieren ist, wenn man das Item konsumiert, aber bei dem Vorgang lässt sich ja keine Variable runterzählen.
Gibt es einen Befehl in den Common Events der die momentane Anzahl einer Variable prüft und Veränderungen aktualisiert??

MagicMaker
11.06.2012, 12:31
aber ich weiß garnicht wie es mögich ist Items in einer Variable zu speichern

<>Variable[0001:Salami] = Item[Blabla] Inventar

caesa_andy
11.06.2012, 12:32
Beim RM2k3 könnte ich dir das erklären:

Variable Operations:
-Single Variable [deine Variable]
-Set Equal
-Item [dein Item] [Number Held]

Anschließend fragst du per Conditinal Branch ab, ob [deine Variable] den Wert 99 hat, und gut ist.



Beim 2k wird es wohl ein wenig anders laufen, aber das kann ich dir nicht genau beschreiben.



Edith:
Gut, da war jemand fixer :D

Klunky
11.06.2012, 14:44
Ok vielen dank Leute, nach einigen rumprobieren hab ich es funktioniert bekommen..