PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [RMXP] Item aus Inventar mittels Common Event benutzen



kunst79
18.01.2013, 19:13
Hallo zusammen!

Wieder einmal hab ich eine Frage an Euch: ich möchte, daß der Spieler mittels Common Event eine verschlossene Tür öffnen kann, indem er den richtigen Schlüssel aus seinem Inventar benutzt. Ich hab darüber auch schon ein Tutorial angeschaut, nur leider hab ich's nicht gerafft :(

Über Euere Hilfestellung wäre ich sehr dankbar! :)

Ascare
19.01.2013, 03:14
In der Database unter Items kannst du auch ein Common Event als Funktion wählen. In dem Common Event könntest du einen Switch umschalten 'Tür XY geöffnet' und bei der Tür als Startkondition den Switch 'Tür XY geöffnet' auswählen.

Man muss es aber nicht unter Common Events machen, schließlich sind Common Events für häufige Ereignisse die immer wieder abgefragt werden, wie der Name schon sagt, zB für Speicherpunkte.
Falls der Schlüssel nur einmalig benutzt wird, macht es mehr Sinn bei der Tür als Conditional Branch einzustellen, Seite 4, If Item 'Schlüssel für Tür XY' in Inventory.
Dann kannst du dort einen Switch aktivieren damit die Tür offen bleibt.

kunst79
19.01.2013, 11:14
In der Database unter Items kannst du auch ein Common Event als Funktion wählen. In dem Common Event könntest du einen Switch umschalten 'Tür XY geöffnet' und bei der Tür als Startkondition den Switch 'Tür XY geöffnet' auswählen.Perfekt, tausend Dank!!!!



Falls der Schlüssel nur einmalig benutzt wird, macht es mehr Sinn bei der Tür als Conditional Branch einzustellen, Seite 4, If Item 'Schlüssel für Tür XY' in Inventory.Ja ich weiß, daß das auch geht. Aber es soll ein Adventure sein und der Spieler muß selbst herausfinden, daß er einen Schlüssel aus seinem Inventar benutzen kann, daher hab ich mich für diese Version entschieden. Nochmals vielen Dank!!!

kunst79
19.01.2013, 12:02
Ein kleines Problem hab ich jetzt allerdings noch. Ich hab öfters mal Türen, die man mit einem Schlüssel aufsperren muß. Wenn ich jetzt an einer Tür den falschen Schlüssen benutze, wird dessen Switch ja auf ON gesetzt, weil er eben benutzt wurde. Kann ich irgendwie einbauen, daß sich bei einem Fehlversuch der Switch wieder auf OFF setzt? Weil sonst steh ich mal an einer verschlossenen Tür und sie öffnet sich einfach, weil der entsprechende Switch ja bereits ON war.

Ich hoff das war jetzt nicht zu verwirrend formuliert...

Ascare
19.01.2013, 21:12
Ah ok, ja...also wenn nur Schlüssel über das Inventar aufgerufen werden sollen, dann musst du das natürlich irgendwie regeln das auch immer der richtige Switch aktiviert wird. Spontan fällt mir die Abfrage per Koordinaten ein, also zB:
Condition Held Map ID == 3
>Condition Held X = 5
>Condition Held Y = 8
(der Code für den passenden Schlüssel)
else
>Text: Der Schlüssel passt nicht zu diesem Schloß.
end

kunst79
20.01.2013, 01:37
Steh jetzt ehrlich gesagt ein bisschen auf dem Schlauch. Muß ich das jetzt im Common Event eintragen? Oder als Script im Ereignis?

Map ID ist klar, X und Y-Koordinaten auch (die Koordinaten des Events auf der Map nehm ich an). Und der Code für den passenden Schlüssel ist der Switch-Befehl ist z.B. die sich öffnende Tür, oder ein Satz von wegen "Super, der schlüssel passt", gell?

MindXperience
21.01.2013, 02:56
Also du hast mehrere Schlüssel, also auch mehrere Common Events. Jeder Schlüssel startet ein eigenes Common Event, welche aber alle fast gleih aussehen.

Map / X / Y überprüfen, und zwar mit allen Türen

If Map == ok
If X == ok
If Y == ok
<> Switch Tür da ON
<> es ist eine Tür da
ELSE
<> If Map2 == ok
<> If X == ok
wenn dann alle durch sind un es keinen Treffer gab, gibts keine Tür. Das heißt der Text "der Schlüssel passt nciht" wäre ebenso fehl am platz. Event also abbrechen lassen

der Bereich ist erstmal bei allen gleich
Dann kommt der Bereich in dem überprüft wird ob es die richtige Tür ist. Also wieder Positionen abfragen, diesmal aber nur einmal

If X == ok
If Y == ok
If Map == ok
<> Tür öffnen
ELSE
<>Schlüssel passt nicht

kunst79
21.01.2013, 10:07
Jetzt hat's *klick* gemacht. Vielen Dank für die Geduld! :)