Drag and Drop Inventar nach Vorbild aktueller RPGs

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Drag and Drop Inventar nach Vorbild aktueller RPGs

      Hi,

      ich habe über die letzten Tage für mein aktuelles Projekt an einem Drag and Drop Inventar gearbeitet. Nun ist es endlich fertig und trotz ein paar kleinerer Schwierigkeiten bei der Entwicklung bin ich mit dem Ergebnis sehr zufrieden.
      Damit ihr bei einem ähnilchen Vorhaben nicht das Rad neu erfinden müsst, habe ich mich dazu entschieden meinen Code mit detaillierten Kommentaren zu versehen und hier als Tutorial bereitzustellen.

      So sieht das Inventar in der Beispieldatei aus:


      Steuerung:
      I = Inventar öffnen/schließen
      Space = Neben Kiste, Inventar öffnen / schließen

      Maus:
      Klick auf x-button oben rechts = Inventar schließen
      "Send All" Schaltfläche = Alle Items von Inventar 1 zu Inventar 2 verschieben (solange Platz vorhanden)
      "Take All" Schaltfläche = Alle Items von Inventar 2 zu Inventar 1 verschieben (solange Platz vorhanden)
      Rechtsklick auf Item = benutzen bzw. Ausrüsten

      Drag and Drop:
      Items in Inventar verschieben
      über andere Items schieben um Position zu tauschen
      Über Drop Schaltfläche schieben um Items auf den Boden zu werfen

      in der gmk-datei ist der Code in allen Scripts und in folgenden Objekten ausführlich dokumentiert:
      obj_inventory
      inv_item
      inv_pants01

      Die restlichen Objekte bauen entweder auf einem dokumentierten Parent-Objekt auf oder haben nur simplen Code der eigentlich keiner Erklärung bedarf.

      Bei Fragen stehe ich euch gerne zur Verfügung. Ansonsten würde ich mich über Kritik bzw. Verbesserungsvorschläge freuen.

      mfg
      G
      Dateien
      • dnd_inventar.zip

        (473,87 kB, 534 mal heruntergeladen, zuletzt: )

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von GSlash ()

    • Freut mich dass es dir gefällt, danke :D
      Den GM habe ich erst Anfang des Monats entdeckt, bin seitdem aber ziemlich begeistert vom Programm und arbeite fast täglich damit.

      Bin definitiv noch Anfänger und der Code ist sicher nicht perfekt, aber er funktioniert.
      Wenn ich im Laufe der Weiterentwicklung meines Projekts Verbesserungen am Inventar vornehme werde ich den Thread natürlich auch aktualisieren. ;)

      mfg
      G
    • 4 kleine Bugs entdeckt!

      Erstmal danke für das Tutorial, aber es gibt 4 kleine Bugs (ich weiß nicht ob er nur bei mir so ist).
      1. Wenn man an der Kiste ist muss man die Maus immer etwas tiefer halten und nicht direkt auf das Item.
      2. Wenn man sachen aus der Kiste nimmt und sie noch mal loslässt verschwinden sie.
      3. Der "Take All" Button funkitioniert gar nicht.
      4. Man kann ihm irgendwie die Hose nicht anziehen.(Könnte auch sein das man dort auch die Maus runter halten muss)

      Aber trozdem *Drücke Thanks Button*
      Der Simley ist doof ------> :gmlove:

      Beide Programme sind toooolllllll!!!!!!!!!!!!!!
    • Hab mir die Datei von damals heruntergeladen und die genannten Bugs durchgetestet:

      ISO schrieb:

      Erstmal danke für das Tutorial, aber es gibt 4 kleine Bugs (ich weiß nicht ob er nur bei mir so ist).
      1. Wenn man an der Kiste ist muss man die Maus immer etwas tiefer halten und nicht direkt auf das Item.
      2. Wenn man sachen aus der Kiste nimmt und sie noch mal loslässt verschwinden sie.
      3. Der "Take All" Button funkitioniert gar nicht.
      4. Man kann ihm irgendwie die Hose nicht anziehen.(Könnte auch sein das man dort auch die Maus runter halten muss)

      Aber trozdem *Drücke Thanks Button*
      1. Wenn man das Kisten-Inventar geöffnet hat werden bei mir die Tooltipps korrekt anegzeigt, und Objekte können problemlos benutzt werden. Wenn die Maus exakt über dem Objekt ist.
      2. Der Fehler kann auftreten wenn man ein leeres Feld aus versehen "verschoben" bzw. aktiviert hat. In der aktuellen Version ist der Bug behoben.
      3. Alle buttons im Inventar funktionieren bei mir wie gewünscht.
      4. Die Ausrüstungsgegenstände können im Moment nur per Rechtsklick angezogen werden, nicht per Drag and Drop. Per Rechtsklick funktioniert An-, Aus- und Umziehen ohne Bugs.

      MediaFish schrieb:

      entweder mein Copmputer ist schrott oder das ist ein einziger bug
      man kann bei mir nicht einen einzigen button betätigen, man kann das inventar zwar öffnen und schliessen, mehr aber nicht.
      Hab alle Funktionen der hier verlinkten Version nochmal durchgetestet. Der einzige Bug den ich reproduzieren konnte war der aus Punkt 2.

      Evtl. entstehen die Bugs bei euch durch eine andere Gamemaker Version?
      Von mir verwendete Version = 8.0 Pro

      Anbei findet ihr das Beispiel auch als Exe-Datei zum Download, wo alle Features unabhängig von eurer Version funktionieren sollten.

      ===========

      Inzwischen sind mein Spiel und das integrierte Inventar deutlich weiter. Ich werde versuchen das Tutorial hier dementsprechend zu aktualisieren sobald ich neben der Arbeit wieder etwas mehr Zeit zum Coden habe. Leider war Zeit die letzten paar Wochen Mangelware ;)

      Einige Features um die das Inventar inzwischen erweitert wurde:
      1. Ein Item kann auch mehrere Ausrüstungsslots beanspruchen (z.B. Beidhändige Waffen)
      2. Gegenstände können nun gestapelt werden, maximale Stackgröße kann von Item zu Item variieren.
      3. Beim Einsammeln von Gegenständen werden Stacks automatisch aufgefüllt bevor ein neuer Inventarplatz benutzt wird.
      4. Per Drag and Drop können Stapel zusammengelegt/geteilt werden.
      5. Alle Waffen haben ein Magazin und müssen nachgeladen werden wenn leer. Munition wird dabei aus Inventar entnommen.
      6. Scripts teilweise stark entschlackt.
      7. Optik überarbeitet (Items, Darstellung von Tooltipps, ...)

      Bitte gebt mir Bescheid ob die Exe-Datei nun ohne Bugs funktioniert.

      mfg
      G
      Dateien

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von GSlash ()

    • funktioniert immer noch nicht, aber mir ist aufgefallen, dass ,wenn ich das inventar geöffnet habe und mit der mausaußerhalb des inventars gehe, leuchten manchmal flächen im inventar auf.

      GSlash schrieb:

      Evtl. entstehen die Bugs bei euch durch eine andere Gamemaker Version?
      Von mir verwendete Version = 8.0 Pro

      benutze ich auch
      Bin im Urlaub, deine Signatur.
    • Ok, ich glaube ich hab jetzt die Ursache für die Bugs gefunden.
      Eure Bildschirmauflösung muss größer als das Spielfenster sein damit das Inventar korrekt funktioniert (Spielfenster = 1400 x 1050).

      Alternativ könnt ihr auch in den Room Properties der GMK-Datei im Reiter View bei "Port on Screen" die Auflösung eures Systems eintragen.
      Dann wird das Bild evtl. verzerrt aber die Abfrage der Position des Mauszeigers funktioniert.

      Bei mir ist ne Auflösung von 2048 x 1152 eingestellt, daher ist mir das Problem bisher nie aufgefallen. Sorry :(

      mfg
      G

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von GSlash ()

    • Größe ändern? :o + Fehler

      Heii :D super geiles Inventar bzw. Tutorial.

      Eine Frage hab ich ja, wie schwer ist es denn die Größe vom Inventar zu ändern. Meine aktuelles Game hat nur eine Auflösung von ca. öööhm 500x500...dort kann ich schlecht dieses Inventar einbauen, lässt sich die Größe ändern also ohne viel Aufwand. :rolleyes:

      EDIT: Beim Einfügen des Inventars kommt bei ein Fehler, ich habe alle Scripts und Objekte 1:1 übernommen, da kommt folgender Fehler:

      ERROR in
      action number 1
      of Step Event
      for object inv_empty:

      Error in code at line 1:
      x = var_dnd_x;
      ^
      at position 5: Unknown variable var_dnd_x

      @7rust-dev

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Lucke ()

    • Um die Größe des Inventars an dein Spiel anzupassen musst du die Sprites spr_ivnentory_bgd und spr_inventory_fron sowie die Koordinaten der Inventar-Sprites, der Buttons und Items an dein Spiel anpassen. (z.B. in scr_inv_open und im Draw Event von obj_inventory).

      Die Fehlermeldung sagt schon wo das Problem liegt: die Variable var_dnd_x kann in inv_empty nicht gefunden werden. Evtl. fehlt dir das Parent-Objekt inv_item, oder du hast es in inv_empty nicht als Parent definiert, denn im Create Event von inv_item wird diese Variable erstellt.

      mfg
      G
    • Hallo,

      mir ist gerade beim Stöbern durchs Forum aufgefallen dass ich in diesem Thread ein Update des Inventar-Tutorials mit den Verbesserungen meines damaligen Projekts versprochen hatte.

      Da dieses aber seit einigen Monaten auf Eis liegt und so bald wohl nicht weiterentwickelt wird, habe ich mir überlegt einfach das Spiel in der aktuellsten Version bereitzustellen.

      Kurze Info zum Spiel:
      Spoiler anzeigen
      Geplant war ein Zombie-Survival-Game in dem es nicht wieder nur darum geht durch die Welt zu laufen und alles umzubringen.
      Man sollte durch verlassene Städte schleichen, auf der Suche nach Nahrung, nützlichen Items, anderen Überlebenden. Sich im späteren Spielverlauf eine Basis aufbauen, verbarikadieren und von dort aus auf die Suche nach einem Heilmittel machen.
      Schusswaffen sollten nur der letzte Ausweg sein, da jedes Geräusch die Zombies in der Umgebung anlockt.


      Achtung: Vorher solltet ihr euch unbedingt das original Tutorial angeschaut und verstanden haben, da in der angehängten Datei so gut wie nichts kommentiert wurde.
      Da das Spiel noch eine Baustelle ist, sind viele Platzhalter enthalten (unsichtbare Häuser) und das meiste nur zu Testzwecken eingebaut worden (unsichtbare Kiste, Zombie-Spawnpoint).
      Ein fast fertiges Haus + Supermarkt sind enthalten und warten darauf geplündert zu werden ;)

      In dieser Datei sind die oben erwähnten Anpassungen des Inventars sowie weitere Features wie zB:
      • Türen knacken
      • Türen die nur mit Schlüssel geöffnet werden können
      • teilweise Zerstörbare Umgebung
      • Sicht & Hörradius von Feinden
      • Hunger / Durst-Anzeige (kann über Dosen/Hamburger aufgefüllt werden)
      enthalten.

      Download

      Ich hoffe damit dem einen oder anderen bei seinem Projekt helfen zu können.

      mfg
      G

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von GSlash ()