Ergebnis 1 bis 8 von 8

Thema: [RPG Maker MV] NPC Gegenstand "mitgeben" bessere Lösung gesucht

  1. #1

    [RPG Maker MV] NPC Gegenstand "mitgeben" bessere Lösung gesucht

    Technik oder nicht Technik, dass ist hier die Frage!
    Da ich schon technische Denkansätze habe... hoffe ich mit meiner Frage hier richtig zu sein.

    Folgendes Szenario:
    Aus seinem Inventar/Beutel zeigt der Charakter einem NPC einen Gegenstand.
    Da der NPC mit diesem Gegenstand nichts anzufangen weiß, nimmt er diesen mit um ihn einen Spezialisten zu zeigen und man kann ihn nach X-Tagen darauf ansprechen.
    Jetzt kann man diesem NPC aber auf einmal mehrere Gegenstände mitgeben, die dann auch aus dem Inventar verschwinden (und später wieder darin auftauchen sollen).

    Das würde dann für mich bedeuten... Gegenstand x,y,z verschwinden aus dem Inventar und Switch x,y,z werden aktiviert.
    Dann muss es eine Variable geben für die Dauer und... ja, ab dieser Stelle heißt es dann, dass jeder Gegenstand gleich lange braucht um analysiert zu werden.
    Es war eine variable Zeit geplant, aber technisch vermutlich an dieser Stelle zu (unnötig) aufwändig.

    Was mich jedoch stört ist, dass ich für jeden Gegenstand ZWEI Switche benötige. 1x für Gegenstand abgegeben und 1x für Gegenstand gezeigt.
    Das wären für vielleicht 50 Gegenstände 100 Switche, wenn sich die Gegenstände nur ein 1 NPC anschauen kann.
    Wären es 2 NPCs bin ich schon bei 200 Switchen. (Nachdem ich das hier geschrieben habe, bezweifle ich so gar das man das überhaupt anders lösen kann)
    Klar, an dem Aufwand der an Gesprächen dahinter steckt, komme ich nicht dran vorbei, dass ist mir bewusst, aber ich habe das Gefühl einer großen Ressourcenverschwendung zum Opfer zu fallen.

    Weiterhin wird es dann noch interessant, wenn der Spieler dem NPC einen neuen Gegensand zeigen will, wenn schon Gegenstände in der Analyse sind. Klar kann man dem einen Riegel vorsetzen, dass das nicht möglich ist, aber bei einem Spiel wo Ereignisse zeitkritisch eintreten können, könnte das katastrophale Folgen haben.


    Meine Frage ist also, hat jemand eine bessere Lösung als:
    - Wenn Gegenstand x im Inventar -> zeige oder zeige nicht Gegenstand
    - Wenn Gegenstand gezeigt wird, aktiviere Switch x, entferne Gegenstand aus Inventar und zähle ab jetzt Variable x pro Stunde hoch.
    - Wenn Varible x = gewünschter Wert, dann ist Gegenstand analysiert.
    - Wenn dann NPC angesprochen wird, erzähle Text in Abhängigkeit zu Switch x und Variable x UND Switch y (nicht aktiv), füge Gegenstand dem Inventar des SCs hinzu und aktiviere Switch y, der sagt, dass dieser Gegenstand schon analysiert wurde.
    - Setze Variable x auf 0

    Egal ob JavaScript, oder was anderes, alles was das ganze Szenario schlanker gestaltet, ist eine willkommene Lösung.
    Klar nach dem Schema oben geht es, aber geht es auch besser? ^-^

    Ich bin für andere Lösungsansätze offen, weil das da oben echt viel Arbeit wird, und es womöglich mehr als 2 NPCs werden, denen man die selben Gegenstände zeigen kann.
    Je nachdem wie aufwändig am Ende die Lösung sein wird, weil auf den Weg werden es nicht mehr als 2.

  2. #2
    Wie gut kennst du dich denn mit Programmiersprachen aus? Ich hab zwar keine Ahnung von Javascript, könnte dir aber zumindest sagen, wie ich das Problem mit einer objektorientierten Programmiersprache lösen würde.

  3. #3
    Ich... kann programmieren, keine Sorge ^^ erklären kannst du es gerne.
    Zwar habe ich noch nicht mit JavaScript programmiert, aber das bekomme ich mit der Zeit auch hin.

  4. #4
    Mit RPG-Maker typischen Kommandos wird das nicht angenehm umsetzbar sein, mit ordentlicher Programmierung sollte es allerdings kinderleicht gehen. Die Frage ist nur wie gut du die programmierten Scripte und die Event-Kommandos kombinieren kannst. Ich persönlich habe den RPG-Maker MV nicht und kann dir leider keine Details zur implementierung geben.

    Die zugrundeliegende Datenstruktur ist sehr simpel. Du hast ein 3-Tupel von Gegenstand, Zeit (zum Beispiel in Frames, Sekunden, update-zyklen, etc) und Zustand (Abgegeben, Abgeholt, möglw. mehr). Du würdest diese Datensätze entweder in einer Liste oder einer Hash-Tabelle halten. Beim hashen könntest du den Gegenstand als Schlüssel benutzen.
    Diese Datenstruktur würdest du dann an passender Stelle in dein Spiel integrieren. Du musst dabei achten, dass sie beim Speichern und Laden des Spielstands berücksichtigt wird.

    Der problematische Teil wäre dann wahrscheinlich die Schnittstelle zwischen der programmierten Datenstruktur und den Event-Kommandos im RPG-Maker. Im XP und VX war das relativ einfach; beliebige Ruby Scripte konnten direkt aus einem Event-Kommando heraus aufgerufen werden. Wie es im MV aussieht weis ich leider nicht. Ich würde jedoch schätzen, dass dies möglich sein sollte.

  5. #5
    @Elster
    Zusätzlich zu dem, was Cornix sagt, müsstest du dann noch schauen, ob die NPCs nur bestimmte Gegenstände analysieren können. Dann müsste ein Gegenstand ja mit einem der NPCs verknüpft werden, damit man ihn nur beim passenden NPC zurückholen kann.

  6. #6
    Vllt. denke ich gerade zu einfach, aber was spräche denn dagegen, das rein über Variablen zu machen? Sprich, man gibt dem NPC einen Gegenstand. Dessen Variable wird dann auf, sagen wir, 5 gesetzt. Jeden ingame-Tag (oder wie auch immer das läuft) wird dann -1 gezählt. Ist die Variable auf 0 ist der Gegenstand analysiert und fertig. Dann setzt du die Variable noch auf -1 damit der Maker weiß, dass dieser Gegenstand schonmal abgearbeitet wurde.
    Wenn du dir dann pro Item eine Variable reservierst, kannst du das sehr komfortable mit den Item-IDs machen und brauchst nicht einmal groß individualisierte Abfragen.

    Wenn du mehrere NPCs hast wird es etwas aufwändiger, aber das lässt sich auch machen, indem du bspw. den NPCs ebenfalls IDs gibst und diese in die Variable miteinberechnest, bspw. in Form von "+(NPC-ID*1000). Alles ab der Hunderterstelle abwärts ist dann der Countdown, und per Mod-Funktion kannst du diese Ziffern ja auch einzeln dann abfragen für den Countdown.

    Oder verstehe ich gerade grundlegend etwas falsch? Du bräuchtest so eben eine Variable für jedes Item, aber wenn du nicht gerade 2000 verschiedene Items hast wäre das doch sicher zu verschmerzen?

  7. #7
    Ja, das würde gehen, wenn es nicht zu viele NPCs oder Gegenstände gibt.

  8. #8
    Stimmt, dass wäre tatsächlich auch noch eine Option, da habe ich gar nicht dran gedacht
    Dankeschön für eure Ideen ^-^

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •