PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zusatzmenü



Pray
31.07.2008, 19:56
Hi @ll,

Ich möchte mir ein Zusatzmenü bauen. Wo man druch Bilder auf "Menü" oder "Substanzen" klicken kann.
1. Frage : Wie muss das Event aussehen, wenn ich anstatt ein Show Choice, Bilder zum anklicken haben möchte.
2. Frage : Wie funktioniert das mit den Bildern anklicken. Weil wenn man ein Cursor einbaut, den man dann bewegen kann. Kanner sich doch auf der ganzen Map bewegen.
3. Frage : Wie gestaltet man so ein Zusatzmenü. Gibt es da verschiedene arten??
4. Frage : Wie mache ich, das ein Held 5 weitere Ausrüstungsslots hat??

mfg

P.ray

Serij
31.07.2008, 20:50
entweder du nimmst ein menu tool falls vorhanden ich glaub ich hab mal eins gesehen oder so
oder du bastelst selber, da kenne ich 2 Möglichkeiten, eine ist für Anfänger die andere schon für fortgeschrittene

Anfänger: Du machst das Menü als Map, das ist zwar eine unkluge idee, da das vom Cursor her etc eifnach ist aber du dann ja in einer anderen gegend bist. Du machst einfach ein Panorama bild und setzt das im menu als hintergrund. Wenn du dich dahion teleportieren willst, erstellst du ein Common Event dass PP hat.
Dort machst du Menu disable und lässt die Taste ESC abfragen(enter password) und dann machst du If Taste = 6 dann .. Heldenposition merken..teleportieren usw. Da drin je nach Wahl und Möglichkeiten dann die jeweiligen Befehle.

Klick hier (http://rpg2000.4players.de/index.php?inhalt=Scripts2) Dort gibt es einige Zusatzmenu skripts, musst mal angucken wie die Funktionieren.

Fortgeschrittene: Du brauchst Pictures. Dann machst du bei Common Event ein PP und deaktivierst das Menu. Dann lässt du erneut die ESC Taste abfragen. Dann lässt du die Pictures erscheinen. Dann musst du die Pfeiltasten abfragen lassen, dann if Taste = 1(oder 2,3,4) dann Movepicture(usw. je nach Menuaufbau) dann machst du Switch On (zum Beispiel Itemfeld) machst du ein PP im Common Event dass auf Itemfeld On reagiert, von dort aus stellst du dir vor, dass du grade die Itemliste ausgewählt hast und dann führst du einfach mit den Tastenabfragen weiter auf das was du brauchst.

Hab letztens so ein Picture Menu gebastelt ^^
wenn du es einfach haben willst, dann mach Map menu aber wenn du ein sehr gutes haben wilslt dann Picture, da brauchst du eigentliuch nur überblicjk über Koordinaten etc.

http://home.arcor.de/chotel/5.JPG

cilence
01.08.2008, 10:29
wenn du es einfach haben willst, dann mach Map menu

Eigentlich ist es wesentlich umständlicher ein Mapmenü zu machen. Alle Eventpostionen der NPCs und so müssen gespeichert werden. Es sieht eben doof aus, wenn man vom Menü zurückkehrt und alle Events wieder auf ihre Startpositionen gesetzt wurden. ;)

R.D.
01.08.2008, 11:13
Eigentlich ist es wesentlich umständlicher ein Mapmenü zu machen. Alle Eventpostionen der NPCs und so müssen gespeichert werden. Es sieht eben doof aus, wenn man vom Menü zurückkehrt und alle Events wieder auf ihre Startpositionen gesetzt wurden. ;)

aber aber e.hoff!
Was ist den los, da machen wir einfach einen Posispeicher^^
Du kennt doch mein Spiel, da ist das Menü auch ein Mapmenü, und wenn man aus dem Menü rauskommt, sind alle Menschen an ihren Platz vor dem Teleport und die Krüge die zerstört waren sind auch immernoch zerstört!

Beim Xp oder VX würd ich aber eh das ganze Scripten, finde dass das dann viel besser geht^^

Serij
01.08.2008, 11:21
ich finde es hängt mehr von der person ab, welches menu für jemanden schwieriger ist. Für mich ist das Mapmenu sehr einfach und das mit den Pictures sehr umständig. weil um Multifunktionen zu haben musst du beim picture menu für jeden slot andere tastenabfragen macehn etc.

R.D.
01.08.2008, 11:26
ich finde es hängt mehr von der person ab, welches menu für jemanden schwieriger ist. Für mich ist das Mapmenu sehr einfach und das mit den Pictures sehr umständig. weil um Multifunktionen zu haben musst du beim picture menu für jeden slot andere tastenabfragen macehn etc.

wohl eher von dem technischen verständniss...

Oder willst du sagen, das es davon abhängt ob ich ne Frau oder ein Mann bin oder ob ich ich ne Kind oder ein erwachsener bin o_O'

Nene, das kommt aufs Verstehen drauf an, wenn man Funktionen etc versteht dann ist es relativ Schnuppe wie mans macht.

zb hat Lachsen bei TA ein Picmenü bei VSB aber ein Mapmenü...

Ich glaube aber es kann Vor und Nachteile haben, so brauch man bei einem Picmenü kein Posispeicher, und beim Mapmenü brauch man nicht so viele pics da man Zahlen usw durch Events darstellen kann.

cilence
01.08.2008, 11:35
aber aber e.hoff!
Was ist den los, da machen wir einfach einen Posispeicher^^

Sag ich doch. :D


Alle Eventpostionen der NPCs und so müssen gespeichert werden.

Sonderlich schwer ist es nicht, aber elende Schreiberei. Aus solchen Gründen habe ich mit der Programmierung wieder aufgehört. ^^


€:

ich finde es hängt mehr von der person ab, welches menu für jemanden schwieriger ist. Für mich ist das Mapmenu sehr einfach und das mit den Pictures sehr umständig. weil um Multifunktionen zu haben musst du beim picture menu für jeden slot andere tastenabfragen macehn etc.

Ich selber finde das Picmenü eigentlich ziemlich einfach, vor allen Dingen weil Pray ja nur ein Zusatzausrüstungsmenü machen möchte. Es ist doch nur eine Frage des Aufbaus. Komplexe Menüs mache ich selber mit Maps, da sind die besser. Aber so ein kleines kann man ruhig über Pics machen.

R.D.
01.08.2008, 11:39
Sag ich doch. :D

war auf letzteres bezogen ;)



Sonderlich schwer ist es nicht, aber elende Schreiberei. Aus solchen Gründen habe ich mit der Programmierung wieder aufgehört. ^^

wah~ Ok öffne mal velsarbor mit dem Maker und schau die da mal den Posipeicher an...
Also das is kaum Schreiberei und anderes mache ich es auch nicht, man muss nur einen Algorythmus schreiben^^

cilence
01.08.2008, 11:43
Kann sein, dass ich mir das grad i-wie komplizierter mache als es ist, R.D. . Ich werd mal nachsehen. :)

Pray
01.08.2008, 15:45
Aber ist des nicht umständlich, wenn man 50 Ausrüstunggegenstände als Pic machen muss, damit man sie dann dort im Extramenü einfügen kann. Oder versteh ich das falsch?
Bzw. Wie soll ich dann die Bilder für das Menü überhaupt machen???

Serij
01.08.2008, 21:01
da gibt es doch ein Picture Ordner, du erstellst einfach irgendwas mit paint ^^und nein es hängt nicht davon ab ob man eine frau oder ein mann ist -.- sondern wie die kenntnisse sind! Mit Events arbeiten ist es doch einfach, als wenn man mit Common Events arbeitet ^^ dann musst du dir einfach das Menu die ganze zeit vor den augen haben dann geht das einfach aber im mapmenu hat man eigentlich das schon vor den augen. Darum ist das im endeffekt mehr geschmackssache..ich persönlich finde Picture menu am besten, da es origineller ist. Doch jeder hat seine eigene Meinung

Pray
02.08.2008, 08:52
Ja und wie soll ich das machen? Habs jetzt auch mit Gimp probiert.
Gibt es dazu irgendwo ein Tutorial???
Und wie soll ich das dann mit Events machen?

cilence
02.08.2008, 09:33
Ja und wie soll ich das machen? Habs jetzt auch mit Gimp probiert.
Gibt es dazu irgendwo ein Tutorial???
Und wie soll ich das dann mit Events machen?

Du arbeitest noch nicht wirklich lange mit dem Maker oder? :D

Stell dir doch einfach erstmal ein Menüdesign vor, male ein paar Entwürfe auf ein Blatt Papier. Wenn du einen gemacht hast, der dir gefällt, scannst du ihn ein oder malst ihn direkt auf dem Rechner noch einmal.
Bezüglich der Gegenstände wird es nicht viel anders werden beim Picmenü als beim Mapmenü. Ein paar Slots für jeden Partyteilnehmer solltest du schon hinbekommen, auch ohne fremde Hilfe. Die Items selber kannst du ja auch in Textform angeben lassen, direkt Bilder dazu sind nicht unbedingt nötig, lediglich eine Erklärung dazu wäre gut.
Ansonsten ist der Aufbau eines Picmenüs nicht sonderlich schwer, sieh dir doch mal eines der Ringmenütutoriale an, welche es hier im Atelier gibt. Ring oder nicht ist egal, der grundsätzliche Aufbau ist der selbe.

Grob wäre das so:

1. Commonevent; Bedingung Switch 0001 [Menü möglich] on:
- Abfrage einer Taste, z.B. Shift (2k3) , Esc (2k/3)
- danach ein Call Event rufen und den Switsch 0001 ausschalten

2. Call Event; aufgerufen durch erstes CE, ebenfalls ein CE:
- Aufbau des Menüs realisieren, d. h. der Hintergrund ist Pic no. 1, Anzeigen und derartige Pics 2-20 (je nach Gebrauch) und Cursor ist dann Pic no. 21
- setze einen weiteren Switch auf on: Switch 0002 [Menü an]

3. Commonevent; Bedingung Switch 0002 [Menü an] on, Autostart:
- Abfragen der Menüsteuerungen, der Aktionen und der Cursorbewegung selbst

Geht zwar auch mit 2 oder 1nem Event, aber wir wollens mal nicht unnötig kompliziert machen.
Alles eigentlich überhaupt nichts schweres. ;)

Pray
02.08.2008, 17:00
@ e.hoff
Ich versteh dein Aufbau nicht :( Und ja ich arbeite echt nicht lange mit dem Maker. Höchstens einen Monat oder so ^^

Hier hab ich mal ein Entwurf des Zusatzmenü. Ich weiß zwar nicht ob du sowas meintest, hab es einfach mal gemacht xD
http://img56.imageshack.us/img56/2735/zusatzmenbeispiel1zm6.jpg
Ganz Ganz unten, wurde dann die beschreibung der Substanzen kommen.

Und hier mal das wie ich es geskript hab

http://img56.imageshack.us/img56/3208/commoneventsld6.png
Weiß jetzt aber nicht wie ich weitermachen soll :/

Serij
02.08.2008, 17:43
du hast vergessen die bedingung reinzumachen, dass wen esc = 6 ist, dann passiert das da drunter. Aber du kannst nicht alles in einem Event machen, mach noch ein automatisch startendes Event, das auf ein Switch(zb. 0001) reagiert. Dann machst du Fork esc - 6 dann Switch 0001 On und dort kommen dann deine weiteren Befehle. Sag einfach mal wie du das Menu genau dir vorstellst, ich helfe dir dann

Pray
02.08.2008, 19:17
Hmm. Schwer zu sagen. Also ich habs mir so vorgestellt

Man drückt im Game auf ESC. 3 Bilderchen erscheinen : Menü Substanzen Zurück

1. Menü -> ganz normales Standart Menü
2. Substanzen -> Wenn man auf das Bilchen drückt, erscheint man in dem Extramenü, wo man für jeden Spielbaren Charakter 4 Ausrüstungsslots hat.
In diese Ausrüstungsslots kann man nur die Substanzen anlegen.
Die Substanzen, wirken wie in FF7 als Zauber. Wenn sie wieder abgelegt werden. Kannst du den Zauber auch im Kampf nicht benützen.
3. Zurück -> Wieder zum Spiel halt.


Leicht ist es natürlich wenn man die Substanzen als Item -> Book macht. Wenn man die dann einfach einen Helden "lesen" lässt, erlernt er den Zauberspruch. Das ist aber einwenig komisch, weil die dann am ende evtl 30 Zauber haben.

Hoffentlich hast du alles verstanden^^

Serij
02.08.2008, 21:17
Also.. hab dich geaddet per icq, falls du mehr Fragen bekommst. Hier ist mal meine Variante.. es gibt vielleicht eine bessere doch diese funktioniert so wie du das haben wolltest:

Du erstellst als erstes folgendes:
http://home.arcor.de/chotel/Zusatzmenu/1.JPG
Das ist eine Kleinigkeit, die du auch auf der Map machen kannst.

Danach kommt:
http://home.arcor.de/chotel/Zusatzmenu/2.JPG
Das ist für die ESC-Taste, also für den Aufruf.
Der Schalter MenüAppear ist aktiv um ein weiteres Common Event zu starten.

Und zwar den hier:
http://home.arcor.de/chotel/Zusatzmenu/3.JPG

Hier dieser Teil hängt vond en Grafiken ab wie das Aussieht. Je mehr Grafiken desto mehr Ids usw.
Ich habe alle 3 Menü, Substanzen und Zurück zwei mal erstellt. Einfach Platzhalter einmal in schwarz und einmal in rot. Ein R davor bedeutet Rot, für makierte Auswahl.
Wenn du das Menü öffnest, dann wird sofort Menü markiert darum heißt das RMenü.
Dann machst du MenüAppear aus, um Fehler zu vermeiden. Und aktivierst Menü ist an, diese führt zu einem weiterem Common Event:
http://home.arcor.de/chotel/Zusatzmenu/8.JPG
Von hier aus musst du dir vorstellen, dass du grade Menü ausgewählt hast, darum wenn (5) du enter klickst oder leertaste, taucht das Standart Menü auf. Und wenn du Runter(1) klickst dann kommst du zu Substanzen. Darum Substanzen an und jetziges Menü aus.
Jetzt kommst du ja zu Substanzen darum erstellst du ein Event für die Substanzen:
http://home.arcor.de/chotel/Zusatzmenu/5.JPG

Von hier aus musst du dir wieder vorstellen, dass du grade Substanzen ausgewählt hast. Darum wenn Enter dann geschieht das(was von dir abhängt, hab einfach Auswahlen eingeführt):
http://home.arcor.de/chotel/Zusatzmenu/6.JPG

Wenn du Hoch(4) klickst kommst du zurück zu Menü, darum wird Menü ist an angeschaltet und das jetzige ausgeschaltet und wenn runter(1) dann komsmt du auf zurück:
http://home.arcor.de/chotel/Zusatzmenu/7.JPG

Natürlich wichtig ist auch die Funktion, wie man das Menü einfach beendet:
http://home.arcor.de/chotel/Zusatzmenu/4.JPG
Hier wird alles resetet, was du brauchst. Wenn du dann das Menü schließen willst, brauchst du nur dieses Event aufzurufen.

Jetzt fehlt nur noch der Auslöser, der das alles erlaubt. Ich habe es so gemacht:

Du erstellst einfach ein Automatisiertes Event auf der Map:
http://home.arcor.de/chotel/Zusatzmenu/10.JPG
, dass im Innern so aussieht:

Seite1:
http://home.arcor.de/chotel/Zusatzmenu/9_1.JPG

Seite2:
http://home.arcor.de/chotel/Zusatzmenu/9_2.JPG



Ich hoffe es ist nicht zu kompliziert, falls es fehler gibt, sag einfach welche. Hab einfach schnell was hingemakert, habs nicht richtig getestetm, hab nur schnelldurchgang gemacht ^^ auf Fragen bin ich auch bereit!

MFG
Serij

bluedragon05
03.08.2008, 09:20
Ist es nicht besser, wenn man die 2.Seite des Events von den letzen beiden Screenshots nicht auf "Taste drücken"/"Push Key" stellt?
"Menü einstellen" oder -falls man das auch noch skriptet- "Menü deaktivieren" sind so Sachen, die man imo nicht unbedingt per AutoStart aufrufen muss. Man könnte diese z.B. nach einem Intro oder auch beim Betreten einer Map aufrufen, falls im jeweils nachfolgenden Fall das Menü aufrufbar sein soll oder nicht.^^


Ich finde es hängt mehr von der person ab, welches menu für jemanden schwieriger ist. Für mich ist das Mapmenu sehr einfach und das mit den Pictures sehr umständig. weil um Multifunktionen zu haben musst du beim picture menu für jeden slot andere tastenabfragen macehn etc.
Das stimmt nicht unbedingt. Man kann bspw. den Code vor allem bei den Bewegungen des Cursors reduzieren. Wenn z.B. die Taste Runter gedrückt wird, braucht man nur abzufragen, ob die Tasten-ID=1 ist, und wenn die Bedingung zutrifft addiert man einen Wert zu der Y-Koordinate des Cursors. Anschließend bewegt man den Cursor hin. Schon brauche ich für fast jeden Slot nicht mehr die Taste "Runter" abzufragen sondern nur einmal. Dazu können möglicherweise dann noch Sonderfälle kommen (oberster & unterster Slot z.B.). ;)

Ich finde, dass die Wahl zwischen MapMenü und PicMenü hauptsächlich vom Verwendungszweck abhängt. Wenn ich ein komplexes Menü plane (wie z.B. in VSB), dann eignet sich ein MapMenü dazu eher, da ich sehr wahrscheinlich nicht alles mit den 20 (aber auch nicht mit 50) Bildern anzeigen kann. Beim MapMenü hat man mehr Ressourcen wie z.B. Charsets und dem Chipset, was man verwenden kann. Ausserdem schließt eine Wahl des Mapmenüs eine Einbettung eines PicMenüs nicht aus. (in meinem Spiel werden HP/MP etc. über Charsets angezeigt, aber die Menüpunkte über Pics z.B.).

Pray
03.08.2008, 09:20
Vielen Dank :) Klappt alles. Muss jetzt nur noch die Substanzen machen ;))

Serij
03.08.2008, 10:49
Ist es nicht besser, wenn man die 2.Seite des Events von den letzen beiden Screenshots nicht auf "Taste drücken"/"Push Key" stellt?
"Menü einstellen" oder -falls man das auch noch skriptet- "Menü deaktivieren" sind so Sachen, die man imo nicht unbedingt per AutoStart aufrufen muss. Man könnte diese z.B. nach einem Intro oder auch beim Betreten einer Map aufrufen, falls im jeweils nachfolgenden Fall das Menü aufrufbar sein soll oder nicht.^^

Zitat:
Zitat von Serij
Ich finde es hängt mehr von der person ab, welches menu für jemanden schwieriger ist. Für mich ist das Mapmenu sehr einfach und das mit den Pictures sehr umständig. weil um Multifunktionen zu haben musst du beim picture menu für jeden slot andere tastenabfragen macehn etc.
Das stimmt nicht unbedingt. Man kann bspw. den Code vor allem bei den Bewegungen des Cursors reduzieren. Wenn z.B. die Taste Runter gedrückt wird, braucht man nur abzufragen, ob die Tasten-ID=1 ist, und wenn die Bedingung zutrifft addiert man einen Wert zu der Y-Koordinate des Cursors. Anschließend bewegt man den Cursor hin. Schon brauche ich für fast jeden Slot nicht mehr die Taste "Runter" abzufragen sondern nur einmal. Dazu können möglicherweise dann noch Sonderfälle kommen (oberster & unterster Slot z.B.).

Ich finde, dass die Wahl zwischen MapMenü und PicMenü hauptsächlich vom Verwendungszweck abhängt. Wenn ich ein komplexes Menü plane (wie z.B. in VSB), dann eignet sich ein MapMenü dazu eher, da ich sehr wahrscheinlich nicht alles mit den 20 (aber auch nicht mit 50) Bildern anzeigen kann. Beim MapMenü hat man mehr Ressourcen wie z.B. Charsets und dem Chipset, was man verwenden kann. Ausserdem schließt eine Wahl des Mapmenüs eine Einbettung eines PicMenüs nicht aus. (in meinem Spiel werden HP/MP etc. über Charsets angezeigt, aber die Menüpunkte über Pics z.B.).

Omg xD es hängt 100 pro von der Person ab, jeder hat dort seine schwächen und dort seine stärken -.- und versuch mir nicht zu sagen was ich falsch gemacht hab, das mit dem Push key wär richtig, doch in diesem fall ist das ehrlich gesagt scheiß egal, weil da sind ja keine Befehle drin. Ich hab das einfach nur vergessen. Aber ich finde das sehr blöd, es gibt immer Leute die meinen müssen, die wissen alles besser und sagen nein das stimmt nicht und nein das nicht xD ich finde das bloß arm, jeder hat seine eigene Meinung und Erfahrung

cilence
03.08.2008, 11:29
@Serij: omG! 8 Events für ein simples Picmenü? Man bist du verschwenderisch. :D
Viele der Sachen können in ein und dasselbe Event geskriptet werden, die Übersichtlichkeit geht auch nicht verloren, wenn man sich ein paar Abgrenzungen und Beschreibungen dazu macht. ;)
Und ne richtige Cursorsteuerung fehlt irgendwie auch. ^^ Aber naja, wenns klappt ist es ja in Ordnung. :)

cya

bluedragon05
03.08.2008, 11:33
@Serij
Ich habe nicht gesagt, dass du etwas falsch gemacht hast. Ich habe nur nachgefragt, weil ich das jetzt nicht gerade genau wusste. Sry, wenn das falsch herüberkam.

Wovon die Wahl zw. MapMenü & Picmenü abhängt, scheint Meinungssache zu sein. Meine Meinung dazu war keine Kritik an deine Meinung.
Für mich sind Pic-Menü und Map-Menü wirklich stark vom Verwendungszweck bzw. vom Aufwand & gewünschten Ergebnis abhängig. Natürlich ist das auch Geschmackssache; das habe ich ja nicht bestritten.

Serij
03.08.2008, 11:59
jaja ist gut, bloß verschwnderisch ist das nicht. WEnn man Programmierung gelernt hat, weiß man im Funktionsgebiet schon, was und wie man das macht. Ich habe es mit der Aufteilung schon richtig gemacht. Wer es kürzer machen will, macht es ebenm kürzer. In meinem Menu hab ich Cursor eingesetzt, er hat nichts von einem Cursor gesagt, darum hab ich auch keinen eingesetzt, hätte er einen erwänht dann wär einer drin


@Serij
Ich habe nicht gesagt, dass du etwas falsch gemacht hast. Ich habe nur nachgefragt, weil ich das jetzt nicht gerade genau wusste. Sry, wenn das falsch herüberkam.

Wovon die Wahl zw. MapMenü & Picmenü abhängt, scheint Meinungssache zu sein. Meine Meinung dazu war keine Kritik an deine Meinung.
Für mich sind Pic-Menü und Map-Menü wirklich stark vom Verwendungszweck bzw. vom Aufwand & gewünschten Ergebnis abhängig. Natürlich ist das auch Geschmackssache; das habe ich ja nicht bestritten.

und sorry dass ich so schlecht reagiert hab, mich provoziert das nur, wenn ich welche helfen will und dann kommen immer andere die meinen dass ich das schlecht mache xD ich hab das eben anders verstanden wie du das meintest nochma sorry

BDraw
03.08.2008, 12:34
Kleiner Tipp:
Wenn du noch mehrere solcher Spielchen einbauen willst, bzw. du das Menü irgendwann, wenn du mehr Erfahrung mit Pictures hast, komplexer machen willst, ist Serijs Aufbau imho sehr ungünstig: Die 8 Common Events sind ziemlich unübersichtlich und lassen sich - vorausgesetzt man macht die zwei Befehle zum Aktivieren des Menüs einfach auf die Map, was ja auch nur eine Code-zeile mehr ist - relativ Bequem auf gerade mal 3 Common Events begrenzen. Hat den Vorteil dass du alles, was zu einem Punkt gehört, beisammen hast anstatt wie hier über 5 weitere Seiten verteilt.

Ich würde bspw. die Aktivierung ganz weg lassen (braucht man für 2 Zeilen Code wirklich ein Common Event?) sowie die Events 3, 4, 7 und 8 gleich zusammenpacken. Wobei ich die Substanz-Geschichte auch nur ausklammern würde, damit die später leichter nachzubearbeiten ist.
Ne andere Sache ist das natürlich, wenn ein Teil eines Punktes bereits seitenlanger Code ist, dann macht es Sinn das ganze aufzuteilen. Aber hier lohnt das nicht wirklich...

Damit ich nicht nur altklug daherquatsche versuch ich mal zu zeigen, wie ich es machen würde + Erklärung, k?

Die Koordinaten sind hier nur Beispiele, da ich ja nicht weiß, was für Bilder du verwenden willst.
Man entschuldige den Deutsch-Englisch Mischmasch, aber es sollte alles verständlich sein. Wenn nicht -> nachfragen. xO

1. Common Event: "Menü-Aufruf"
Paralleler Prozess; Startbedingung: Switch [0001:Menü erlaubt] = ON


<>Forbid Main Menu
<>Set Variable [0001:Tastenabfrage 1] set 0
<>Tastenabfrage: (Esc)
<>If Variable [0001:Tastenabfrage 1] = 6 (Häkchen bei "Wait until Key hit")
<>Play Sound: (Der Sound der kommen soll, wenn man das Menü aufruft)
<>Set Switch [0002:Menü an] set ON
<>Set Switch [0001:Menü erlaubt] set OFF
:END CASE

Was haben wie hier gemacht? Zuerst mal haben wir eingestellt, dass der Maker sich nur für die Esc-Taste interessiert, wenn wir ihm vorher gesagt haben, dass das Zusatzmenü aktiviert werden darf - dafür ist nämlich der erste Switch zuständig.
Als nächstes haben wir die Variable, die für die Tastenabfrage zuständig ist, auf Null gesetzt. Sinn dahinter: Setzen wir die Variable nicht Null und öffnen das Menü beim nächsten mal, wäre immer noch der Wert der Esc-taste darin gespeichert - ergo würde sich das Menü von selbst öffnen.
Dann kam die Tastenabfrage selbst. Das Häkchen bei "Wat until Key hit" sorgt dafür, dass der Maker nur EINEN Tastendruck erkennt und nicht ganz viele, wenn wir die Taste mal länger gedrückt halten.
Dann wurde abgefragt, ob unsere Taste auch gedrückt wurde. Wenn ja wurde das Menü angeschaltet (per Switch #2) und das jetzige Event erstmal auf Eis gelegt. Sonst könnte man ja aus dem Menü raus das Menü aufrufen. :O

WICHTIG
So wie du dein Menü gerne hättest, möchtest du vermutlich keine Textbox. Damit wird die Sache allerdings nicht gerade leichter, vor allem wird das Script wesentlich länger. Ich gehe hier jetzt mal auf die Pcture-Variante ein, allerdings wird das "reine Picture-Menü" schwerer zu verstehen sein - daher gehe ich mal von ein paar vorhanden Bilder aus, wie "Cursor" bspw. Außerdem gehe ich davon aus, dass du zunächst nur zwei Auswahlpunkte (Standartmenü & Substanzmenü) hast.

Da, wo ich mir Comments zum Abtrennen setzen würde (á la "|>------...-<|") lasse ich hier Leerzeilen.

2. Common Event: "Hauptmenü"
Auto-Start; Startbedingung: Switch [0002:Menü an] = ON


<>Set Variable [0001:Tastenabfrage 1] set 0
<>Set Variable [0002:Menüposition 1] set 1
<>Show Picture: (???)

<>Cycle
<>Tastenabfrage (Enter, Esc, die Pfeiltasten die man drücken können soll. Ich gehe mal von hoch und runter aus.)

<>If Variable [0001:Tastenabfrage 1] = 1
<>Play Sound: (Sound der beim drücken der Pfeiltasten abgespielt werden soll)
<>If Variable [0002:Menüposition 1] = 1
<>Set Variable [0002:Menüposition 1] set 2
:ELSE CASE
<>Set Variable [0002:Menüposition 1] - 1
:END CASE
:END CASE

<>If Variable [0001:Tastenabfrage 1] = 4
<>Play Sound: (Sound der beim drücken der Pfeiltasten abgespielt werden soll)
<>If Variable [0002:Menüposition 1] = 2
<>Set Variable [0002:Menüposition 1] set 1
:ELSE CASE
<>Set Variable [0002:Menüposition 1] + 1
:END CASE
:END CASE

<>If Variable [0001:Tastenabfrage 1] = 5
<>Play Sound: (Sound der beim drücken von Enter abgespielt werden soll)
<>If Variable [0002:Menüposition 1] = 1
<>Set Switch [0003: Standart-Menü an] set ON
<>Break Cycle
:END CASE
<>If Variable [0002:Menüposition 1] = 2
<>Call Event: [Substanz-Menü]
:END CASE
:END CASE

<>If Variable [0001:Tastenabfrage 1] = 6
<>Play Sound: (Sound der beim drücken von Esc abgespielt werden soll)
<>Break Cycle
:END CASE

<>If Variable [0002:Menüposition 1] = 1
<>Move Picture (??) -> (xxx,yyy) (Koordinaten vom ersten Auswahlfeld)
:END CASE
<>If Variable [0002:Menüposition 1] = 2
<>Move Picture (??) -> (xxx,yyy) (Koordinaten vom zweiten Auswahlfeld)
:END CASE
:END CYCLE

<>Erase Picture (???)
<>If Switch [0003: Standart-Menü an] = ON
<>Call Main Menu
:END CASE
<>Set Switch [0001:Menü erlaubt] set ON
<>Set Switch [0002:Menü an] set OFF

Puh. Viel Code, was?
Zu aller erst setzen wir wieder die Tastenvariable auf Null. Dann kommt die Variable, die sagt, wo sich unser Cursor gerade befindet. Da er normalerweise auf dem ersten Feld sein soll, setzen wir die Variable auf Eins.
Bei dem Show Picture-Befehl lässt du deine ganzen Pictures so anzeigen wie du willst. Wie genau die Werte sein müssen kommt auf deine Bilder an, aber da hilft eh meistens nur rumprobieren. Mit der Zeit bekommt man ein Gefühl dafür.
Wichtig ist, dass der Cursor so platziert wird, dass er auf dem ERSTEN Platz ist. Sonst gibt das später Probleme.
Jetzt geht's ans Eingemachte: Ein "Cycle" (Oder auch "Schleife", "Loop", je nach Übersetzung) ist ne Endlosschleife. Alles, was du da reinpackst, wiederholt der Maker so lange, bis irgendwo der Befehl "Break Cycle" auftaucht - dann springt der Maker direkt unter das Dings. Das Teil simuliert sozusagen einen Paralleln Prozess (oder einen Auto-Start, je nach dem). Damit können wir uns viele Common Events ersparen, die wir sonst extra machen müssten.
Dann kommt die altbekannte Tastenabfrage; auch hier machst du am besten ein Häkchen bei "Wait until Key hit".

JETZT wirds lustig. Je nachdem, welche Taste der Spieler drückt, entscheidet der Maker jetzt was zu tun ist. Drückst du "hoch" (= 1), spielt der Maker ein Geräusch und schaut, wo der Cursor gerade ist (anhand dieser Variable [0002]). Ist der nämlich eh schon ganz oben, kann er ja schlecht hoch - und wird ans Ende gesetzt. Da wir hier nur zwei Felder haben ist das hier die Zwei. Allgemein gesagt: Hier setzt die maximale Zahl der Auswahlfelder ein.
Ist der Cursor nicht ganz oben, rutscht er eine Stelle hoch. Stell dir das Ganze wie durchunumeriert vor:
1.
2.
3.
...
Wenn der Cursor auf zwei steht und du hoch willst, musst da ja nur Minus Eins rechnen, richtig? 2-1=1. Bei Drei auf Zwei: 3-1=2. Usw.
Danach kommt das selbe nur andersrum, mit runter statt rauf. Ist eigentlich das selbe, nur eben wird hier abgefragt, ob der Cursor ganz unten (=maximale Feldanzahl) ist. Wenn ja, kommt er auf Platz Eins. Wenn nicht, wird Plus Eins auf der Liste gerechnet.

Hier kommt der wichtige Teil: Dass auch was passiert, wenn du Enter drückst. Nun, wird Enter gedrückt, schaut der Maker jetzt wo der Cursor gerade ist, und handelt entsprechend - was er machen soll ist Situations abhängig.
An erste Stelle in der Liste habe ich das Standart-Menü gesetzt. Hier wird jetzt ERST alles geschlossen und DANN das Menü aufgerufen. Da wird am Ende eben abgefragt, ob der Switch #3 an oder aus ist. Ich finds schöner so, ersetzt du den Break Cyce und den Switch gleich mit dem Aufrufen des Menüs, bist du eben wenn du das Standart-Menü verlässt immer noch im Zusatzmenü.
Ist der Cursor auf Platz 2 (Hier das Substanz-Feld) wird das nächste Common Event aufgerufen - das wir aber noch nicht erstellt haben. Sonst passiert hier nichts.

Dann kommt der Punkt der ermöglicht, wieder aus dem Menü raus zu kommen: Die Esc-Taste wird abgefragt und der Cycle entsprechend beendet.
Am Ende vom Cycle verschiebst du deinen Cursor auf die Stelle, wo das erste Auswahlfeld ist. Wie schnell bleibt dir überlassen, ich nehme normalerweise 0,2. Vorraussetzung ist, dass du den Cursor oben bereits hast anzeigen lassen.
Bei Erase Picture am Ende löscht du alle Bilder die gerade so angezeigt werden fürs Menü und rufst das Standart-Menü bei Bedarf auf.
Dann werden noch die Switches aktualisiert, damit das jetzige Event beendet und das Aufrufen des Zusatz-Menüs wieder ermöglicht wird.


3. Common Event: "Substanz-Menü"
Call Event


...

Hier genau das selbe wie zuvor - bloß eben jetzt auf deine aktuellen Pictures, etc. übertragen. Switches brauchst du hier nicht an- oder auszuschalten, da das hier ja zum einen Ein Event ohne Startbedingung ist und du zum anderen a Ende eh wieder im Hauptmenü-Event landest.
Der Befehl "Call Event" kopiert nämlich sozusagen den Code eines Events an die Stelle, wo du es callst.
Mit Substanzen, etc. kenne ich mich nicht aus, daher kann ich dir den teil nicht erklären, aber wenn du erstmal mit Variablen, Pictures usw. zurechtkommst bekommst du das auch mit etwas Übung selbst hin. ^^
Hoffe du hast alles verstanden~ :3

Für die Textbox-Alternative kannst du dir 75% des Codes sparen und einfach ein ShowChoice statt einer langen Abfarge erstellen. Sieht aber dafür auch nicht so toll aus. Vor allem lässt sich mit Pictures mit etwas Übung viel mehr machen! =D
Ist alles zu 100% ausm Kopf getippt. Es SOLLTE funktionieren. Bei Bugs sag bescheid, ich schau woran's liegen könnte.


EDIT:
SCHEISSE, bin ich langsam. xD
Vorhin waren's noch 4 Posts weniger oder so. xD

Nya, mal kurz zum Thema Pic-Menü:
Imho hängt das stark mit dem Aufwand zusammen, den man sich zu machen bereit ist, sowie mit dem erwünschten Ergebnis. Während man bei Map-Menüs einfach ein Event mit ein paar Seiten erstellt und so dann binnen 5 Minuten seine HP-Leiste hat, braucht man beim Pic-Menü X abfragen. Zahlen sind per Map-Event auch viel leichter anzuzeigen - und vor allem ist es etwas übersichtlicher, da man sich nicht ständig erinnern muss, welche Pic-Nr man schon verwendet hat und welche noch frei ist, bzw. welche ja noch von xy besetzt sein könnte. Allerdings hängt das auch vom Typ ab, der man ist... Ich mag Pic-Menüs einfach lieber und komme persönlich besser mit ihnen klar, weil ich dann ALLES in den CommonEvents habe und nicht von Eventseite x zu CE y nach PP Z springen muss, wie das bspw. bei Vsb der Fall ist, wenn man was zu verstehen versucht.
Ich würd mich gerne noch etwas mehr in eure Diskussion von eben einklinken, aber ich fürchte dann schmeiße ich noch was durcheinander. Zu ein paar Sachen, etwa der Geschichte mit den x-y-Koordinaten mit denen sich der Cursor leichter bewegen lässt, fiele mir noch was ein. (Etwa dass das eine das andere nicht ausschließt xD)

@Serij:
Reine Vorsorge, soll keine Provokation sein:
Ich will dich hier nicht schlecht machen, ich will nur meinen Senf dazugeben wie ICH es besser finden WÜRDE. Ich hab eben die Erfahrung gemacht, dass man die Menge der Events möglichst kurz halten sollte. Beim scripten selbst mag das umständlich sein, aber mir hat das beim Wiedereinarbeiten und der Fehlersuche schon oft sehr geholfen, eben weil ich die Sachen im direkten Zusammenhang sehe.

Serij
03.08.2008, 13:05
so will ich kritiken haben mit erkläörung und nicht einfach sagen das ist schlecht und das gut ohne bgründungen xD trotzdem, keine angst ich weiß schon was ich mache sonst würde ich das nicht machen ;) jeder Programmierer hat eben seinen stil

Pray
03.08.2008, 18:20
@BDraw. Danke für deinen Vorschlag. Der funkztioniert, hab aber trozdem den von Serij genommen, weil der für mich übersichtlicher ist.
Das Menü funktz bis jetzt einwandfrei.

Ich hab noch eine Frage :

Jetzt hab ich mein Menü. Doch wie lege ich jetzt die Substanzen an.
Wenn ich durch eine Bedinung in einem Event auf der Menümap Frage ob der Held diese Substanz besietz und ich für jeden Zauber ne neue Seite anlegen wurde. Dann wurde es wahrscheinlich lange dauern. Gibt es da eine Funktion die es mir erleichtert oder die mir irg die Substanzen anzeigt die ich besitze???

cilence
03.08.2008, 18:50
@Pray: du speicherst die Anzahl der vorhandenen Substanzen in Variablen oder nimmst die Werte der Database. Du könntest also deine gefundenen Substanzen als Item abspeichern oder zählst zu einer von dir festgelegten Vari einen Wert hinzu, z.B. +1, wenn du nur eine findest.
Danach lässt sich ja locker für jeden Slot abfragen, was schon drin ist. Ich hätte für jeden eine Variable genommen und deren Wert bestimmt die ID der Substanz.
Um es ganz einfach zu machen: Substanz "Eis" bekommt bei der Variable Nr. 5 den Wert 1 zugewiesen. Dann könnte man abfragen welche nun im Slot steckt. Ist die Variable gleich 1, ist eben "Eis" drin, bei 2 "Feuer" und so weiter. Willst du nun wechseln nimmst du einfach das Item und änderst die Variable für dessen ID. Also "Eis" ist drin, "Feuer" soll rein.
Da wird nun als erstes abgefragt, welche Substanz schon im Slot ist. Diese wird dann entnommen und dem Inventar hinzugefügt. Danach entfernst du die als nächstes gewünschte Substanz aus dem Inventar und setzt die ID des Slots neu fest. Jetzt also auf 2.
Von Zeigern und so fang ich lieber garnicht erst an, dann blickst du nichtmehr durch. :D

So in etwa, optimieren und den Rest anpassen musste allerdings selbst:

http://www.imgwelt.de/thumbs/82E9I3338RE.png (http://www.imgwelt.de/show.php?code=82E9I3338RE)

€: ja, fragt mich mal was besseres, als wo das Bild ist. XD Mal sehen...

€²: so, jetzt ist es da. :)

€³: falls es noch immer nicht klappt, hier ist der Direktlink, sry für den doofen Hoster. NPshare geht i-wie grad nicht:
http://www.imgwelt.de/show.php?code=82E9I3338RE

Pray
03.08.2008, 19:08
Hmm. So änlich. Doch wie soll der Maker wissen, welche Substanzen man besitzt.
In meinem Game gibt es ungefähr 30 Substanzen. Ich kann also nicht 10 Show Choice erstellen.
Gibt es da nichts was irgendwie überprüft, was man für Substanzen besitzt.

Wenn es sowas nicht gibt, dann mach ich des so.

Nachricht : Welches Element?
Show Choic : Feuer/Wasser/Blitz
1. Fall Feuer
-> Show Choic Feuer/Feura/Feuga/Feuerwand
--> Feuer : Bedinung -> Item -> Feuersubstanz
---> Wenn ja, dann wird gefragt ob man die Substanz anlegen will. Also Show Choice
--> Ja/Nein
Ja Fall : Item -> Feuersubstanz wird abgelegt. Feuer wird erlernt.
Ein Slot weniger.

Und so weiter. Im Prinzip schlecht oder??^^

cilence
03.08.2008, 19:16
Du kannst doch abfragen, welche Substanzen im Inventar sind. Ich an deiner Stelle hätte überhaupt keine Auswahlen in Textform gemacht, sondern alles über Bilder. Das wirkt viel individueller. :D
So könntest du dann für jede Substanz ein kleines Übersichtsfenster aufrufen und am besten per Maussteuerung anklicken und hinzufügen lassen. Ich kenn ja dein ganzes Prinzip nicht, deswegen ist das schwer zu sagen.
Der Maker kann nicht wissen welche Substanzen du besitzt, das musst du ihm schon eingeben. ;)

Pray
03.08.2008, 19:57
Ich mach des nach meinem Prinzip, weil ich nicht weiß wie man es anders machen kann xDD
Nun ein anderes Problem. Und zwar wenn man einen Zauber erlernt. Aber noch immer eine Substanz von dem Zauber hat. Kann man ihn nochmal erlernen. Wie kann ich machen, das er ihn nicht noch einmal erlernt, die Substanz noch besitzt ?

http://img511.imageshack.us/img511/8091/substanzenei9.png

So siehts gerade das Erlernungssystem aus. Wo und Wie soll ich dann was einfügen damit ich das Zauber nicht nocheinmal erlerne.
Bzw. Unter Feura kommt noch Feuga, Feuerwand und Eis, die sehen aber genau so aus. Das mit dem Substanzen Limit lasse ich weg.

cilence
03.08.2008, 20:12
Ächz... wenn wir hier so weiter machen, kommst du nie zu was. :D

Du kannst abfragen, welcher Held schon welchen Zauber gelernt hat. Ist das nun schon der Fall, lässt du die Erlern- Phase einfach aus, bzw. überspringst sie ja durch die Bedingung. Ein bisschen Code fordert das alles schon, so ist es ja nicht. ;)

€: aja, das findest du unter Bedingungen auf der 2ten Seite. Dort die Option Hero wählen und im Feld unter der Heldenwahl die eigentliche Bedingung auswählen.

Pray
03.08.2008, 20:32
Wieso komm ich zu nichts?^^ Klappt doch supaa xD
Erklär mal wie du es dir vorstellst, wie des so aussehen wurde.

cilence
03.08.2008, 20:46
Du machst alles wie bisher (zugegeben, ich habs mir nicht angesehen xD) . Nur stellst du für das Erlernen eine Bedingung aus, ist doch ganz einfach. ^^



<>Fork Optn:"Heldname"- "Skillname" Learnt
<>Message: "Du hast den Skill schon erlernt!"
:ELSE Case
<>Change Skill:"Heldname"-"Skillname"->Memory
:END Case


Nur das musst du einfügen. Vielleicht noch ein Sprungbefehl zum Ende oder so, aber das ist ja dann deine Sache.

€: allerdings weiß ich jetzt nicht aus dem Kopf, wie die Befehle alle im deutschen Maker heißen. xD

Pray
03.08.2008, 20:52
Also soll ich das Event so lassen, wie hier auf dem Screen?
Und wenn ja, wo genau soll ich dann die Bedinung fürs Erlernen reinstellen???

cilence
03.08.2008, 21:01
In den Feuer Fall. Alles was unter der Bedingung "ob das Item im Besitz ist" steht, kommt in das Else Case meines Codes.
Meinetwegen kannst du das Event auch so lassen wie es ist, nur mit der Bedingung noch. ;)

Serij
03.08.2008, 23:33
e.hoff hat vollkommen recht, dir fehlt nur Bedinungen, machst wenn der das schon kann, dann folgen ganz andere befehle zum beispiel einfach nur der text: Das kannst du schon.

wenn der das nicht kann, dann kommen erst die Befehle mit dem erlernen usw.
e.hoff hat dir schon alles gezeigt oben ^^