Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 21

Thema: Item Menü

  1. #1

    Item Menü

    Ganz zu Anfang:
    Falls die Häufigkeit dieser Frage die 200ter Marke sprengt, bitte ich darum, nur freundlichst darauf hingewiesen zu werden, und nicht als gottverdammter Newbie verspottet zu werden (bin ich nämlich gar nicht).

    Also... Wir haben folgende Situation:
    Ich baue ein Item Menü, mit dem 2000er. Dort habe ich 20 Bilder insgesammt zur Verfügung, und habe deshalb mein Item Menü in paar 5er Seiten geteilt (ein Untergrund-, ein Item- und ein Anzahlbild) um Bildermangel zu verhindern.

    Wie bekomme ich es hin, dass die Items in chronologischer Reihenfolge aufgeführt werden.

    Ich dachte mir etwas im Sinne von:

    Mein Inventar ist leer und ich finde eine Apfelsine. Dann wir die Variable APFELSINE ID auf 1 gestellt, da bei vorriger Überprüfung herauskam, das es das erste Item ist. Finde ich jetzt eine grüne Weintraubenstaude, so sieht der Maker: "Ahh, die höchste ID (von den 100 Stück) ist 1, also wird die Variable GRÜNEWEINTRAUBENSTAUDE ID auf 2 gesetzt, und dort positioniert.
    Verkaufe ich jetzt die Apfelsine, so werden alle ITEM IDs, die höher als die ID der Apfelsine (also 1) sind, -1 gerechnet, da sie ja einen Platz nach oben rutschen müssen.

    Leider ist das alles so der Maßen verwirrend, dass ich wissen muss, ob es sich lohnt diese Idee auszuformulieren, oder ob ich mir lieber was anderes ausdenken soll...

    Args E=mc2² geteilt durch die Koeffizienz der derbei liegenden ...

    Hilfä!

    GrayQ

  2. #2
    Klingt für mich logisch.
    Denke das sollte klappen.

    Wenn du Platzmangel für die Bilder hast, dann
    lad dir doch den Picture Patch runter.
    Dann haste immerhin 50 STück.
    Das sollte doch reichen.

  3. #3
    Du solltest neben der Item ID noch eine Variable anlegen, die die Anzahl der Items zählt. (ich nenn sie mal [Items]
    Also immer wenn du ein Item dazu bekommst, wird diese Variable um 1 erhöht.
    Demnach ist die Item ID = [Items]

    Code:
    Beispiel:
    Du findest de Apfel
    [Items] + 1
    Item ID(Apfel) = [Items] = 1
    Du findest die Birne
    [Items] + 2
    Item ID(Birne) = [Items] = 2
    Verkaufen ist etwas schwieriger, da brauchst du eine Temporäre ID ( ich nenn sie [TID] und musst eine Schleife machen.

    Code:
    Beispiel:
    Du hast 20 Itmes, der Apfel hat die Item ID = 5
    Du verkaufst den Apfel
    
    Item ID(Apfel) = [TID] = 5
    Schleife:
    ************
    [TID] + 1
    Item ID([TID]) - 1
    Wenn [TID] = [Items]
    
    [Items] - 1 Verlasse Schleife
    *************

    Ich hoffe das war halbwegsverständlich ausgedrückt. Du musst Ab der ID des verkauften Gegenstandes immer eine ID höher gehen und die um 1 senken.

  4. #4
    Bis auf die temporäre ID war ich auch noch aufs selbe Ergebnis gekommen, habe das nur noch nich so ausformuliert gehabt... Danke schonma!!!
    Gibt nur ein Problem... Wenn ich noch einen Apfel kriege was passiert denn dann???
    Inventar
    1 Birne
    2 Äpfel

    Nächste ID = Items +1 ??? Dann hauts nicht hin.

  5. #5
    Du solltest natürlich noch eine Extra Variable für jeden Gegenstand machen, die zählt wie oft du ihn ihm Inventar hast.
    Apfel = 2
    Birne = 5

    Die Skripte komme natürlich nur zum Einsatz wenn:
    • Du einen Apfel bekommst und die Variable Apfel vorher 0 war (sonst erhöhst du einfach nur die Variable)
    • Du einen Apfel verkaufst und die Variable Apfel dadurch 0 wird (sonst verminderst du einfach nur die Variable)

  6. #6
    Zusammenfassend:
    Bernd findet einen Apfel. Items+1, Apfel+1, Apfel ID = Items
    Bernd findet eine Birne. Items+1, Birne+1, Birnen ID = Items
    Bernd findet noch einen Apfel.
    Dann Fork ich das einfach

    If Apfel > 0 (Geht dann nich auch If Apfel equiped? Slbsvstnd. Wenn ich Add Item mache)
    Apfel +1
    Else
    Items +1, Apfel+1, Apfel ID = Items
    End

    Bernd isst/verkauft einen Apfel

    If Apfel > 0
    Apfel -1
    Else
    Items -1, Apfel-1, Apfel ID = 0
    End

    Nur jetzt muss man gucken wie man das im Menü realisiert...
    (Riesige Fork die abfragt welches Item ID 1 hat)
    (Riesige Fork die abfragt welches Item ID 2 hat)
    (Riesige Fork die abfragt welches Item ID 3 hat)
    (Riesige Fork die abfragt welches Item ID 4 hat)
    (Riesige Fork die abfragt welches Item ID 5 hat) (Ich danke Strg+C/V )
    Und es muss ja immer geguckt werden wie hoch die Menge ist.
    Dann der Seitenwechsel und so
    Doch nicht soo einfach

    Trozdem schon ma Danke

    GrayQ

    P.S.: Hat das schon ma jemand so gemacht???

  7. #7
    ich glaub son freak hat das schonmal gemacht...

    guck...

    mfg
    üH

  8. #8
    Danke üH (Bist ganz schön übel )

    Ich werde allerdings erst einmal selber bischen versuchen, und in der Not auf den Skript zurückgreifen!!!
    Wenn ich irgendwas zu Stande gebracht habe (Nächstes Wochenende werde ich wohl intensiv dran arbeiten) sage ich bescheid!!!

    Irgendetwas lässt mich grübeln:
    @üH Warum nennst du ihn Freak??? Ist diese Idee so bescheuert oder nur übertrieben. Oder gibts ne einfachere Lösung.

    Trozdem Danke

    GrayQ

  9. #9
    Zitat Zitat von GrayQ
    Irgendetwas lässt mich grübeln:
    @üH Warum nennst du ihn Freak??? Ist diese Idee so bescheuert oder nur übertrieben. Oder gibts ne einfachere Lösung.
    tja... ne einfachere lösung wirds warsch net geben...
    aber ich darf ihn freak nennen... aus dem einfachen grund,
    dass es mein script ist...XD

    mfg
    üH

  10. #10
    Zitat Zitat von übelster Held
    tja... ne einfachere lösung wirds warsch net geben...
    aber ich darf ihn freak nennen... aus dem einfachen grund,
    dass es mein script ist...XD
    Du bist ja ein Frechling...

    GrayQ

  11. #11
    Hm...
    in meinen Augen ist die technische Idee kein Problem...
    aber glaubst du nicht, dass es vielleicht hübscher ist, wenn meinthalben zwei energiefüllende Gegenstände nebeneinander stehen.
    Ich meine, es könnte nervtötend sein, wenn Apfel auf Position 1 steht, und Großer Apfel auf Position 9.192.631.770...
    Wenn das sortiert wäre, wäre es vielleicht technisch nicht ganz so beeindruckend, aber vielleicht angenehmer.

    An den Kopp persönlich, zu seiner Signatur:
    Was, bitte, ist ein Krummzustand?
    Künstlerische Freiheit?
    Eine Sekunde ist höchstens das 9.192.631.770fache der Periodendauer der Strahlung eines Caesium-133-Isotops, das dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des >>Grundzustands<< entspricht...
    hehe...
    Ich bin versucht, allein durch Schreiben die Augenbrauen hochzuziehen und meine Nägel zu feilen...

  12. #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)

  13. #13
    Kaat hat genau DAS geschrieben, wie ich mir das vorgestellt hatte.
    Ich habe eben noch mal durchgelesen, was du geschrieben hast, und da ist mir aufgefallen, dass du ein System vorgestellt hast, das ich dir versucht hatte auszureden.

    Kaats Idee ist viel besser als deine und exakt DIE, die ich dir erklären wollte...
    Ich Narr habe nur versehentlich deinen Text zu schlampig gelesen!

    Danke, Kaat, ohne dich hätten Gray und ich wohl weiter aneinander vorbeigeredet...
    Meine Anerkennung, dass du das begriffen hast...
    ich kann mir zwar Technik ausdenken, bin aber nicht klug genug, sie zu verstehen, wenn jemand anderes sie mir versucht zu erklären.

  14. #14
    Cowabonga!!!
    Also

    @NerqY: Sachma hast du ne Ahnung, wie viel Bock ich hätte dich mit Moos zu bewerfen!!! Du darfst unsere Zusammenarbeit noch nicht bekannt geben, unser Projekt ist Top Secret!!!!

    @Kaat: Danke. Optimale Idee!!!

    GrayQ

  15. #15
    Zweierlei:
    Zunächst einmal, was ist ein Cowabonga?
    Rückwärts gelesen heißt es Agnobawoc.
    Das klingt irgendwie wie... wie... Keuchhusten.

    Und zuletzt:
    Welches Projekt?
    Meinst du etwa das mit Krogmann, Sceolan und dem Huhn?

    Ja, stimmt, das ist ziemlich geheim.
    Ach ja, und ich hoffe, in dem Moos sind keine Wertungen oder so enthalten...

  16. #16
    Mir fällt gerade noch ma auf:
    Es ist verdammt noch mal verwirrend, aber nur, weil ich im Moment keine Ahnung habe, wie ich das mit Pictures im Menü anstellen soll.
    Mach ich dann:
    Code:
    If V-Slot 1=Apfel ID
    ShowPicture Apfel 160 120
    Else (Wenns nur 2 Items gibt)
    Show Picture Birne 160 120
    ?????????????????????????????????????

    Und wenn man dann die Pictures auch bewegend macht (bspw.
    nach oben rücken lässt)
    Bräuchte man doch für jeden Slot ne Variable..
    Um genau zu sagen 2 (x/y)

    Uargs GrayQ

    @Topp psst nich so laut (nein ich hab deinen Decknamen verraten)

  17. #17
    Am besten wäre es, wenn du dieses Menü auf einer neuen Karte hast und die Items als Events platzierst (kannst ja ganz leicht das Aussehen des Items von der Item-ID als Variable abhängig machen).

    Dann lässt du das mit dem Nachrücken sein, sondern sorgst nur dafür, dass optisch "aktualisiert" wird. Sieht zwar nicht so schön aus, wenn die Items einfach von einem Augenblick auf den anderen den Platz wechseln statt herumzurücken, aber das ist sowieso nur ein kurzer, kosmetischer Effekt... bei dem IMO das Resultat den Aufwand nicht unbedingt rechtfertigt.

    Wenn du das mit dem Nachrücken trotzdem willst und mit Pictures arbeitest... musst du nicht mal Variablen verwenden, wenn du dir einfach die Positionen der Slots merkst (ist gar nicht so schwer, wenn du zB weißt, dass jedes Item dann 40 Pixel raufrücken muss oder sowas).
    Aber wie gesagt, würde ich das mit dem Nachrücken weglassen. Sieht wahrscheinlich auch nicht so gut aus, wenn die Items über den Rand ihres Slots hinweg in einen anderen Slot hineinrutschen..

  18. #18
    Also ich wollte das auf jedenfall mit Pictures machen!!!
    Wie gesagt, ich probier ma bischen rum und sach bescheid, was, wie geklappt hat .

    GrayQ

  19. #19
    Na aus dem ganzen kann man schon fast ein richtiges Feature machen. Der Spieler könnte dann seine Items ordnen lassen. Nach:
    -Alphabet
    -Zuordnung (Apfel/Großer Apfel)
    -Anzahl

    Dann hätte jedes Item quasi 3 IDs pro Liste eine ID. Das mit den IDs finde ich überhaupt wichtig, dass man sowas hat. Bei meinem KS habe ich auch die IDs jeder Waffe zugeordnet, damit ich mich noch auskenne. Alles in eine Textdatei geschrieben und fertig. So findet man unter den vielen Fork Conditions schnell wieder die gewünschte Waffe mit den Elementarwerten usw...

  20. #20
    Die Grundidee war ja schnell entdeckt, mit Ids und so, doch brauchte ich jetzt noch bissel Hilfe bei der Realisierung. Das mit dem Ordnen hatten wie uns sowieso gedacht. Das sollte ja nich nur funktionieren, sondern auch übersichtlich sein, wie du sagtest.

    GrayQ

Berechtigungen

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