Kamikaze Board



Zurück   Kamikaze Board > RPG Maker > RPG Maker Technik (2K/2K3)

RPG Maker Technik (2K/2K3) Stellt hier eure Fragen zur Technik des RPG Maker 2000 und 2003; Er will nicht so wie ihr? Ihr könnt ein Chipset nicht importieren oder versteht ein Script nicht?

Antwort
 
Themen-Optionen
Alt 21.01.2012, 13:06   #1
Tyraxx
Krieger
 
Benutzerbild von Tyraxx
 
Registriert seit: 13.06.2006
Beiträge: 337
Standard Eigenes Menu Problem

Hi allezusammen,

ich hab hier eine Frage/Problem zum Thema "eigens Menu".
Und zwar ist das Problem, dass wenn man das Menu mit einem Knopfdruck öffnet und sich während dessen auf ein "TouchEvent" zu bewegt, dann wird das Menu trotzdem geöffnet, weil das "Menu-verbot-switch" erst beim "TouchEvent" aktiviert wird, dieser aber im Moment des Menuöffnens noch nicht aktiv war.
Das Menu wird via "KeyInputProcess" im "CommonEvent" abgefragt.

Ich weiß nicht wieviele Leute ein Problem damit haben, aber bisher war dies immer mein größter Feind in Sache "Menu selber machen", und ich hab auch gemerkt das in Projekten von Anderen dieses Problem auffindbar ist.

Ich hoffe i-jmd kennt eine Möglichkeit dieses Problem zu umgehen, da man dadurch einfach "TouchEvents" austricksen könnte.
__________________
Dieser Platz ist für eine Signatur gedacht.

Da sich Tyraxx aber nichts tolles einfallen lassen konnte, steht hier nicht mehr als nur diese Nachricht hier:
"[ Hier bitte Nachricht einfügen ]"
Tyraxx ist offline   Mit Zitat antworten
Alt 22.01.2012, 11:14   #2
Bananen-Joe Männlich
Paladin
 
Benutzerbild von Bananen-Joe
 
Registriert seit: 30.05.2002
Ort: Wuppertal / Aachen
Alter: 29
Beiträge: 2.471
Idee

Hm, das sieht schwierig aus, denn wenn das CommonEvent (Typ: AutoStart) bereits läuft, dann werden zumindest die aktuellen Bewegungen noch zuende ausgeführt.

Das einzige, was ich mir vorstellen könnte, wäre, dass du im Touch-Event prüfst, ob das Menü bereits ausgeführt wird (ist ja ein Schalter).
Dann gehst du einfach in eine Schleife mit Wait 0.0 und verlässt die Schleife, wenn der Schalter wieder deaktiviert ist.

Müsste in etwa so aussehen:
Code:
Wenn MenüSwitch = An
  Schleife Beginn
    Warte 0.0 s
    Wenn MenüSwitch = Aus
      Verlasse Schleife
    Ende Wenn
  Ende Schleife
Ende Wenn

- Der eigentliche Eventcode -
...
Nun ich denke, dass das klappen könnte, da das Event so den Status beibehält, dass es gerade läuft.

MfG Bananen-Joe
__________________
Bananen-Joe's DestinyPatch v2.0
Schöne Grüße an den Menschen ohne RL, die Steinfrucht, den ollen Teetrinker aus Hamburg und den Paranoiden mit Zyklon.
Bananen-Joe ist offline   Mit Zitat antworten
Alt 22.01.2012, 13:17   #3
Tyraxx
Krieger
 
Benutzerbild von Tyraxx
 
Registriert seit: 13.06.2006
Beiträge: 337
Standard

OK, ich hab es jetzt anders gemacht:

Unzwar hab ich einfach jegliche "BelowHero Touch Events" (inkl. Teleport event) auf same layer gesetzt, diese können nur durch's Berühren ausgelöst werden. Das Event beinhaltet dann ein MoveEvent welches den Hero auf das Event bewegt. Dadurch hat der Spieler das Gefühl er selbst würde auf das event gehen, jedoch ist eine Täuschung und man merkt es garnicht.

Ich hoffe nur dass diese Alternative die Probleme lösen wird.
Code:
<> Fork Condition: If Event was started using action key then ...
 <>
: Else ...
 <> Change Switch: [43] = ON
 <> Move Event: Hero, Frq 8, Pattern: Phas. mode on, Mv frwd, Phas. mode off
 <> Wait: 0,1 sec.
 <> Erase Screen: Default
 <> Teleport: Map #1, (58, 32), Face left
 <> Show Screen: Default
 <> Change Switch: [43] = OFF
 <>
: End of fork
__________________
Dieser Platz ist für eine Signatur gedacht.

Da sich Tyraxx aber nichts tolles einfallen lassen konnte, steht hier nicht mehr als nur diese Nachricht hier:
"[ Hier bitte Nachricht einfügen ]"

Geändert von Tyraxx (22.01.2012 um 13:20 Uhr).
Tyraxx ist offline   Mit Zitat antworten
Alt 24.01.2012, 16:22   #4
Cherry Männlich
Kirscherator
 
Benutzerbild von Cherry
 
Registriert seit: 04.10.2007
Ort: Österreich/Salzburg/Pongau
Alter: 23
Beiträge: 1.183
Blog-Einträge: 1
Standard

Da gibts eine einfache Möglichkeit: Warten, bis der Held den Schritt vollendet hat.

Pseudocode:

PARALLEL PROCESS EVENT:
If Switch Menü == OFF Then
..Key Input ESC
..If ESC pressed Then
....Move Event Hero: Wait a moment // Damit kein weiterer Schritt begonnen werden kann nachdem der aktuelle fertig ist
....Loop
......Var X = Hero Scene X
......Var Y = Hero Scene Y
......Wait 0.0
......Wait 0.0 // SIEHE BEMERKUNG UNTEN
......Var X2 = Hero Scene X
......Var Y2 = Hero Scene Y
......If X == X2 And Y == Y2 Then
........Break Loop
......End If
....End Loop
....Wait 0.0 // Nötig damit das Touchevent Zeit hat, ev. den MenüVerboten-Switch zu setzen
....If Switch MenüVerboten == OFF
......Switch Menü = ON
....End If
..End If
End If

AUTOSTART-EVENT:
Startbedingung: Switch Menü == ON
...Hier Menü-Code
(Am Ende Switch Menü = OFF machen)


Die "BEMERKUNG" ist: Ich habe oben 2 Wait 0.0 verwendet. Das reicht für einen minimalen Heldenspeed von "4x Slower".

Wenn der Held irgendwann "8x Slower" eingestellt haben kann, musst du 4x Wait 0.0 verwenden. Wenn der Minimale Speed "2x Slower" oder schneller ist, reicht 1x Wait 0.0.
(Je mehr Wait 0.0's da sind, desto träger wirkt der Menüaufruf.)

mfG Cherry
__________________
Cherry ist offline   Mit Zitat antworten
Alt 24.01.2012, 21:53   #5
Tyraxx
Krieger
 
Benutzerbild von Tyraxx
 
Registriert seit: 13.06.2006
Beiträge: 337
Standard

Stimmt, dass mit der wait hab ich auch schon bedacht.
Nur hab ich nicht dran gedacht die Pos des Helden eninfach in Var. zu speichern und dann zu branchen.

Jedenfalls habe ich das Problem jetzt mit dem oben genannten Code gelöst, obwohl - Cherry - dein Code schlauer ist. Mal schauen ob ich es noch ändere, hab jetzt nämlich mühevoll alle "Below Hero touch events" mit dem vom mir bereits genannten Code aktualisiert.
__________________
Dieser Platz ist für eine Signatur gedacht.

Da sich Tyraxx aber nichts tolles einfallen lassen konnte, steht hier nicht mehr als nur diese Nachricht hier:
"[ Hier bitte Nachricht einfügen ]"
Tyraxx ist offline   Mit Zitat antworten
Alt 25.01.2012, 11:45   #6
MajinSonic Männlich
Goblin
 
Benutzerbild von MajinSonic
 
Registriert seit: 12.03.2010
Alter: 25
Beiträge: 124
Standard

Ich persönlich würde mir ein "Call Event" machen. z.B. "Szene an" Dabei werden dann switches ausgeschaltet, die das öffnen des menüs überhaupt ermöglichen, ODER es wird ein Switch eingeschaltet, der das Öffnen des Menüs verhindert.

Wenn der Schalter [Blocker] aus ist, dann folgt das Menüeventbefehlchen.
Im Else case einfach alle Menüaktivierungsschalter ausschalten und das Event beenden.

Nach der Szene einfach wieder Call Event "Szene aus", welches das Gegenteil von "Szene an" ist.

Ist nur mal schnell geschrieben.

LG
MajinSonic
MajinSonic ist offline   Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:44 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
RPGA.info