Ergebnis 1 bis 20 von 21

Thema: Item Menü

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #12
    Es gibt eine leichtere Lösung.

    Wenn ich dich richtig verstanden habe, dann willst du es so machen, dass du abfragst, welches Item Inventarplatz 1, 2, 3... hat. Aber das ist zu schwierig und langwierig!

    Mein Vorschlag: Mache für jeden belegbaren Platz (Beispiel: man hat 100 Slots für verschiedene Gegenstände, kann also 100 versch. Items maximal bei sich haben) eine Variable, die abspeichert, welche Item(-ID) auf diesem Platz liegt!

    Mal ein Beispiel: du hast in deinem Inventar in der Reihenfolge diese Items:

    1: Apfel
    2: Birne
    3: Heilkraut
    4: Exsphere
    5: Blaubeere

    Jetzt wird Item 1 verwendet, und weil du nur 1. Apfel hast, verschwindet das Item damit aus dem Slot.
    Statt nun die Items abzufragen, musst du nur noch machen, dass die Item-ID aus dem nächsten Slot auf den momentanen übertragen wird.

    Das bedeutet:
    Code:
    <>If: V"Slot 1-Anzahl" = 0
    <>Set: V"Slot 1-Item" = V"Slot 2-Item"
    <>Set: V"Slot 2-Item" = V"Slot 3-Item"
    <>Set: V"Slot 3-Item" = V"Slot 4-Item"
    <>Set: V"Slot 4-Item" = V"Slot 5-Item"
    ...
    ..
    .
    Zuerst wird also beim IF abgefragt, ob die Anzahl im Slot 1 gleich 0 ist. Sprich, ob von den Items, die in Slot 1 abgelegt sind, nur noch 0 übrig sind.
    Und danach wird die Variable "Slot1-Item", in welcher abgespeichert wird, welches Item (sprich: welche Item-ID) in Slot 1 liegt, mit der entsprechenden Variable für Slot 2 gleichgesetzt! Das heißt, dass die Item-ID für Slot 2 in Slot 1 übertragen wird. Danach kommt das Item aus Slot 3 in Slot 2, und so weiter.
    Die Anzahl der Items muss ebenfalls in einer Variable gespeichert sein und genauso abgeglichen werden. Mit Hilfe eines kleinen Tricks und ein wenig Rumspielerei kannst du allerdings auch Item-ID und -Anzahl in einer Variable abspeichern, aber das zu erklären, wird hier wohl jetzt ein wenig zu kompliziert.
    ---

    Das ist einmal die Basis. Du kannst das Ganze noch furchtbar stark automatisieren, allerdings wird das Ganze etwas komplizierter dadurch! Spart dir aber einiges an Arbeit, wenn du den Überblick nicht verlierst.

    Du kannst zB abfragen, wie viele von, sagen wir mal, max. 100 verschiedenen Items du gerade bei dir hast. Heraus kommt 24: du hast 24 Slots mit unterschiedlichen Items belegt.
    Dann wird ein Item verwendet und ein Slot damit leer. Nun machst du Folgendes: du fragst ab, welcher Slot geleert wurde. Beispiel: Slot 3 wurde geleert. Das bedeutet, dass alle Slots ab Slot 3 angepasst werden müssen, sprich: alle Slots außer 1 und 2.
    In einer Variable hast du also 24 gespeichert, die Anzahl der (vorher) belegten Slots; in einer anderen Variable hast du 3 gespeichert, also die ID von dem Slot, der geleert wurde.
    Nun ziehst du Variable B [3] von Variable A [24] ab und fügst dem Ergebnis [21] 1 hinzu, damit du auf Variable C [22] kommst. Denn wenn von 24 Slots alle angepasst werden müssen außer 1 und 2, müssen 22 Slots angeglichen werden.

    Nun arbeitest du mit einem Cycle-Befehl. Zuerst wird die Variable C abgefragt; wenn sie gleich 0 ist, dann wird der Cycle unterbrochen. Wenn sie 1 und höher ist, wird der Slot mit der ID aus Variable B [3] mit den Daten aus dem nächsten Slot [B + 1 = 4] abgeglichen; danach ziehst du von Variable C 1 ab und erhöhst dafür Variable B um 1. Nun beginnt der Cycle wieder von vorne!

    Dadurch, dass Variable C allerdings immer um 1 gesenkt wird, weiß der Maker, wie viele Runden zu Slotabgleichung er noch durchlaufen muss. Zuerst 22, dann nur noch 21, dann 20, ... dann nur noch 1 und bei 0 hört er schließlich auf.
    Und weil Variable B jedes Mal um 1 erhöht wird, gleicht er immer den nächsten Slot ab. In Runde 22 wird Slot 3 mit Slot 4 abgeglichen, in Runde 21 wird Slot 4 mit 5 abgeglichen, in Runde 20 5 mit 6, in Runde 19 6 mit 7, ... und in Runde 1 wird Slot 24 mit Slot 25 abgeglichen; da Slot 25 aber keine Item-Daten mehr enthält, wird damit Slot 24 geleert und damit hat alles wieder seine Richtigkeit, denn nun sind statt 24 Slots nur noch 23 belegt.

    ---

    Ich hoffe, das war nicht zu kompliziert. Ich bin nicht so gut darin, die Theorie zu erklären, fürchte ich.

    Wenn es allzu verwirrend ist, kann ich dir dazu vielleicht ein kleines Demoscript machen, dass du dir ansehen kannst.

    Geändert von Kaat (22.01.2006 um 13:13 Uhr)

Berechtigungen

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