PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eigenes Menü, Items...wie?



RandyTheZeldaFan
24.08.2010, 22:42
Hey Leute!


Ich mach gerade ein eigenes Menü (Bebildert) der Cursor bewegt sich normal und so...jetzt gibts halt ein Problem....es gibt viele Items und so...wie kann der rpg maker am besten registrieren, dass ich dieses item besitze?
und wie meide ich dass sich alle items im ersten slot der menüs versammeln?

hilfe wie kann ich das am besten machen :(

Nemica
24.08.2010, 22:51
Was du willst ist ein Itemsortier- und anordnungssystem. Sowas ist nicht grad
auf dem "einmal benutzbare Truhe" Niveau.

Für das Speichern der Items... das Standarditemsystem des Makers? Das reicht
doch völlig. Du kannst ja eh abfragen, ob du dieses oder jenes Item besitzt.

RandyTheZeldaFan
24.08.2010, 22:53
Ich mach ein Eigenes Menü gerade weil ichs standard menü ersetzen will! >:(


Und ja, es is eine art ordnungssystem was ich gern haben möchte...und das is für mich etwas kompliziert

Supermike
24.08.2010, 23:12
Ich mach ein Eigenes Menü gerade weil ichs standard menü ersetzen will! >:(

Und ja, es is eine art ordnungssystem was ich gern haben möchte...und das is für mich etwas kompliziert

Was passt dir am Standard denn nicht?

Ich würde dir mal das E-book empfehlen. Das beinhaltet auch ein eigenes (sehr vereinfachtes) Itemmenü. Allerdings keine "Auflistungs"-funktion welche neue items z.B. grade an den nächsten freien Slot setzen.
Das besteht einzig aus der gennanten "IS es da oder nicht"- Abfrage.

Allerdings ist sowas nicht eben schnell gemacht. Besonders bei einer hohen Anzahl an Items.

Auge des Sterns
24.08.2010, 23:27
Das Standardmenü zu ersetzen kann eine etwas mühseelige Arbeit sein. Wenn du das Standard KS verwendest (was ja auch keine schlimme Sache ist), dann kannst du beim anwählen der Items ja "Set Variable" nutzen, indem du Variabel x und Anzahl des Items auswählst. Bei einem Custom-KS (sofern man sich eins bauen möchte, was ja auch schick, aber auch zeitaufwendig ist), kannst du diese Methode wählen oder die Items allesamt durch Variablen wiedergeben. Mit ein paar geschichten Positionssetzungen der Bilder, kannst du auch die entsprechenden Bilder anzeigen lassen, wie viel du von was hast. Kann aber aufwendiger sein.
Edit: Zum Problem:
Wenn du willst, dass es nicht angezeigt wird, musst du "Fork Conditions" verwenden. Dann "If" Item x more than 1, than show picture item x.
Edit2: Probleme wegen der Ästehtik sind programmiert.

R.F.
24.08.2010, 23:44
Das einfachste ist doch, dass man sich eine Menge von Variablen nimmt, jeder dieser Variablen die Anzahl an entsprechenden Items übergibt und dann per Bedingung (mit aufsteigenden Koordinaten auf der Map, wenn mehrere Items gleichzeitig angezeigt werden sollen, oder festen Koordinaten, wenn nur ein Item angezeigt wird) die Anzahl de ausgewählten Items abfragt. Ein Menü, in dem nur jeweils ein Item angezeigt wird, wäre dann etwas einfacher, als eines mit mehreren (weiß ja nicht, wie dus haben willst).

RandyTheZeldaFan
25.08.2010, 09:34
Uff...wow...das klingt sehr kompliziert und alles, ich hatte was ähnliches wie ein Mother 3 Item Menü vorgehabt (Alle Items werden aufgelistet, auch die,die doppelt sind), hab kürzlich halt ein Video gesehen, und es funktionierte
bei ihm prächtig! deshalb wollt ichs auch testen...

Video: http://www.youtube.com/watch?v=cmgkW_vE1Qk&feature=related


dann werd ich mich wohl ans normale Menü gewöhnen

edit:

ich hab im e-book nachgelesen...aber er macht mir ein SKS in Balkenversion...


Jetzt bastle ich zum ersten Mal an einem SKS (Mother 3-ähnlich)...jetzt gibts ein problem, wie frage ich die genauen HPs ab?
Die HP werden in Zahlen angezeigt (Nicht in Balken)...ist es möglich dass ich die Stellen der HP abfragen kann?

Also wenn die Hunderterstelle 1 beträgt:
Picture Show: No.1

Also wenn die Hunderterstelle 2 beträgt:
Picture Show: No.2

usw, dass ich es mit den Zehner und einer stellen auch mache...

wie gehe ich da am besten voran?

KiwieCake
25.08.2010, 13:02
Auch ein Video zum erstellen von Menüs, vllt hilft es dir ja weiter!
Part 1:
http://www.youtube.com/watch?v=7Iwi-SF3QEg

relxi
25.08.2010, 13:03
Oder du lässt dein Itemmenü auf Charsets basieren. Dann musst du dich nicht mit Pictures, Koordinaten oder Tastenabfragen abquälen und den Helden kannst du auch als Cursor verwenden. Auf so ein Fensterchen passen gut 300 Icons, welche man anwählen kann. Für ein simpleres oer komplexes Spiel wie geschaffen.

RandyTheZeldaFan
25.08.2010, 13:25
vielen dank für eure vorschläge! Nun...ich lasse das menü jetzt so und arbeite weiter am KS

Dhan
25.08.2010, 13:45
Ich post dir trotzdem mal, wie das für Items aussähe.
Vorrausgesetzt ist:
Die Anzahl von Gegenständen ist in Variablen gespeichert, die direkt aufeinander folgen oder wird vor dem Skript eben so übertragen (da der Database-Item-Anzahl -> Variable-Befehl keine Pointermöglichkeit für die Itemnummer hat)
Das erste Item ist in Variable Nummer i1num gespeichert, das letzte Item in ilnum
Cherrys PicturePointerPatch ist installiert
Es existieren Pictures für alle Items die entsprechend Cherrys Patch benannt sind und deren Nummern den Variablennummern der Items entsprechen

Itemnummerpointer = i1num + Aktuelleposition
Kommentar: die Variable Aktuelleposition sorgt dafür, dass du in der Anzeige nach unten "scrollen" kannst - notiere, dass in diesem Skript noch gar keine Tastenabfragen existieren, es ist bloß die Anzeige
Picturenummerpointer = 1
Cycle {
__fork (Itemnummerpointer > ilnum) { Break Cycle }
__fork (Picturenummerpointer > 15) { Break Cycle }
__Kommentar: die zweite fork sorgt dafür, dass nur 15 Bilder gleichzeitig angezeigt werden, kann je nach Design anders sein
__fork (VariableNo(Itemnummerpointer) > 0) {
____YPos = - 16 + (16 * Picturenummerpointer)
____Kommentar: das ist die Position des Bildes abhängig von der Bildnummer - kann je nach Design anders sein
____show image itembild Itemnummerpointer Picturenummerpointer 0 YPos
____Kommentar: hier wurde der Patch angewandt
____Picturenummerpointer += 1
__} Kommentar: endfork
__Itemnummerpointer += 1
}

Das ist erstmal ein kurzes übersichtliches Skript ohne eine Anzeige der Anzahl der Items (wenn man das Skript versteht, ist es trivial, die Anzahlanzeige einzufügen) mit Items, die untereinander angezeigt werden, kann natürlich so erweitert werden, dass mehrere Spalten Items angezeigt werden oder die Items Zeilenweise angezeigt werden




Zu den Zehner- und Einerstellen, ich verrat dir einfach mal, das bei Change Variable der Modulo-Operator den Rest einer ganzzahligen Division zurückgibt und du überlegst dir, wozu du das benutzen kannst ;) (Tip: wir benutzen für Zahlen das auf Zehn basierende Dezimalsystem)

RandyTheZeldaFan
25.08.2010, 13:54
Ich bin dir verdammt dankbar Dhan! Nur das Mudolo checke ich nie....weil ich einfach nich kapiere was mit dem rest gemeint is
ich hatte auch Modulus nie verwendet bzw kapiert was es mit der zahl macht...

ich habe in der Variable eingestellt

Hero HP Mod (Held1's HP)


die Variable bleibt immer null...

Dhan
25.08.2010, 14:05
Das mit dem Rest müsstest du eigentlich kennen, das ist das, was man ganz am Anfang in der Schule macht, in den untersten Klassen, sowas wie:

156 / 5 = 31 Rest 1 denn 31*5 + 1 = 156
16 / 7 = 2 Rest 2 denn 2*7 + 2 = 16
5 / 3 = 1 Rest 2 denn 1*3 + 2 = 5

eben das, was man nicht glatt teilen kann wenn Kommazahlen nicht erlaubt sind

dementsprechend wäre bei ganzzahliger Division (so teilt der Maker)
156 div 5 = 31
16 div 7 = 2
5 div 3 = 1

und mit dem Modulo-Operator

156 mod 5 = 1
16 mod 7 = 2
5 mod 3 = 2

Noch ein Tip: nach dem Mod isses bei dir sinnvoll, eine Konstante zu schreiben

RandyTheZeldaFan
25.08.2010, 14:08
leider hatte ich das in der untersten klasse nie gehabt, kein scherz!

Modulus
hörte ich als ich den rpg maker hatte....da dacht ich "was zur hölle macht das?"

sop, ich hab jetzt set variable Hero HP gemacht, dann durch 100 (Hunderter) und dann Mod.

und jetzt hab ich die hunderter stelle! danke

jetzt hab ich das problem....mit der zehner und einer stelle....

ich hab eine andere variable genommen, gesettet auf Helden HP, geteilt durch 10 und Mod jetzt zeigt er mir 38

aber die Helden HP betragen 385


Geteilt durch 100= Hunderter stelle
Geteilt durch ?= ergibt die zehner stelle
Geteilt durch ?= ergibgt die einer stelle

niR-kun
25.08.2010, 14:24
http://www.multimediaxis.de/showthread.php?t=127955

Den Unterbau (im Post als I: Item-Abfrage genannt) da kannst du durchaus verwenden, dann musst du nicht so viele Fork-Conditions nutzen (Es sind nur so viele Fork-Conditions wie du Items hast!).

PS: Da fällt mir ein, dass ich mein Tutorial noch weiter schreiben sollte. ;)

PPS: Was im Tutorial von TrueMG gezeigt wird, funktioniert zwar, aber es ist nicht schön mit einem Label aus einem Loop/Cycle zu springen. Es ist ästhetischer eine "Break Loop"/"Break Cycle" aus dem Loop/Cycle zu kommen.
Außerdem ist es wesentlich besser, wenn man die Position des Cursors vor dem Erhöhen/Verringern der Position abfragt. Das sind zwar nur kleine Dinge, aber dennoch zeigen die wie weit man das Skript vorausschauend plant. :D

RandyTheZeldaFan
25.08.2010, 14:37
Ich habe jetzt die einer stelle (glaube ich) hab gesettet, geteilt durch 70 und modulus und es kam die zahl raus, die die einer stelle is

ich hab schaden genommen und zeigt random zahlen an,

kann mir nicht jemand die rechnungen zu schicken wie ich die hunderter, zehner und einer stelle in 3 variablen bekomme?

relxi
25.08.2010, 15:19
Du hast eine Variable [Hunderter], welche du beispielsweise auf 567 setzt.
Dann setzt du die neue Variable [Zehner] auf [Hunderter]
und dann [Einer] auf [Hunderter].
Jetzt kommen Modulus und Teilung ins Spiel.
[Hunderter] teilen wir durch 100 und erhalten 5 bzw. durch Rundung 6.
[Zehner] gibst du Modulus 100 und erhälst 67 [Zehner], welche du wiederum durch 10 teilst, so erhälst du 6 bzw. 7.
Dem [Einer] gibst du Modulus 10 und erhälst 7.

RandyTheZeldaFan
25.08.2010, 15:38
Vielen Dank, jetzt hab ich es! :)