RPG-Maker Quartier

Hier dreht sich alles um die RPG-Maker-Reihe von ASCII/Enterbrain. Der RPG-Maker ist ein Tool, mit dem du dir dein eigenes kleines Rollenspiel erstellen kannst. Du findest hier alles, was du dazu brauchst. Aber natürlich umfasst die Community noch mehr!
Aktuelle Zeit: Di Mär 03, 2020 2:57

Alle Zeiten sind UTC + 1 Stunde



Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast



Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Autor Nachricht
Offline
Alex
Alex
Benutzeravatar
Beiträge: 22
 Betreff des Beitrags: Unmögliche Datumseingabe verhindern
BeitragVerfasst: Mi Feb 08, 2012 17:49 
OK
Der Spieler wird durch 3 "show choices"-abfragen (bei abbruch kommt man jeweils zur nächsten Auswahl und bei der dritten "showchoices"-option wird man wieder zur aller ersten gebracht, wenn man abricht) nach seinem Geburtsmonat gefragt.
Dann soll er den Geburtstag eingeben. Dies geschieht durch "input number" (2 digits).

ich möchte später noch mit diesen daten arbeiten, daher werden die monate als variablen gespeichert (monat und dann jeweils von 1-12 die zahlen. bsp: nimmt er als antwort märz, ist die variable 3).
der tag wird auch als variable gespeichert.

Ich möchte nun, dass der Spieler keine falschen Eingaben machen kann. Bei 2 digits könnte er ja auch "45. juni" oder "30. februar" eingeben. Das die Zahl die 31 überschritten und dies dann als Game Over endet habe ich schon hinbekommen. Aber bei jedem Monat individuell schaffe ich es nicht.
Bei Januar, März, Mai, Juli, Augst, usw ist das Maximum eben 31 und bei November, September, etc ist das Maximum bereits bei 30 (und bei Februardann 29).

_________________


Nach oben
 Profil  
Mit Zitat antworten  

BeitragVerfasst: Mi Feb 08, 2012 18:27 
Gibt in Ruby ein Time-Objekt, was das für dich auswerten kann. Validiert nur nicht richtig, wodurch es zu Swap-Effekten kommt.
Hab mal versucht das auszubügeln und es sollte jetzt gehen.
Den Code packst du in ein Skript-Event und wertest danach nur noch den Switch aus.
Code:
v = $game_variables
begin
  t = Time.gm(v[1], v[2], v[3])
  if t.mon != v[2] or t.day != v[3]
    return
  end
rescue ArgumentError
  return
end
$game_switches[1] = true
$game_map.need_refresh = true

v[1-3] sind die Eingabevariablen: 1 = Jahr, 2 = Monat, 3 = Tag
$game_switches[1] ist der Schalter, der gesetzt wird, wenns ein gültiges Datum ist. Sollte vorher aus sein.
Die Zahlen kannst du entsprechend deinen benutzten Variablen/Schaltern ändern.

mfg TWS


Nach oben
  
Mit Zitat antworten  
Offline
Alex
Alex
Benutzeravatar
Beiträge: 22
BeitragVerfasst: Mi Feb 08, 2012 18:43 
Ich bin ein sehr bescheidener Mensch und möchte keineswegs undankbar erschienen.
Jedoch würde ich dies gern mal beiseite schieben wollen und fragen ob mein Anliegen über Varialen/Events etc überhaupt möglich ist. oder muss ich zwangsläufig auf dieses Script zurückgreifen?

_________________


Nach oben
 Profil  
Mit Zitat antworten  

BeitragVerfasst: Mi Feb 08, 2012 18:47 
Ich hab grad 10 Minuten meines Lebens dafür geopfert. Ja du musst!

Kannst es natürlich auch mit Events lösen.
Mit dem Schema:
Wenn Monat 1 => 0 < Tag < 32
Wenn Monat 2 => Wenn Schaltjahr dann 0 < Tag < 30 sonst ...
...

Schaltjar ist alle 4 Jahre, außer alle 100 Jahre, aber auch wieder alle 400 Jahre.
Viel Spaß^^


Nach oben
  
Mit Zitat antworten  
Offline
Alex
Alex
Benutzeravatar
Beiträge: 22
BeitragVerfasst: Mi Feb 08, 2012 18:55 
ich glaube eine lösunggefudnen zu haben


@>Show Choices: januar, februar, märz, april
: When [januar]
@>Control Variables: [0002:Monat] = 1
@>Text: nun nenn' mir den tag
@>Input Number: [0001:Januartag], 2 digits
@conditional branch: Variable [0001:Januartag] > 31
@>Game Over


[0002:Monat] = 1 (2 wäre dann februar, 3 märz, etc)
so müsste es gehen , wenn ich das fortsetze...


das jahr wird nciht berechnet. ich will nur tag und monat um das sternzeichen berechnen zu lassen

_________________


Nach oben
 Profil  
Mit Zitat antworten  

BeitragVerfasst: Mi Feb 08, 2012 19:04 
Zitat:
das jahr wird nciht berechnet. ich will nur tag und monat um das sternzeichen berechnen zu lassen

Das hast du nie geast.

Aber nimm das Game Over da weg. Das macht keinen Sinn bei einer Falscheingabe das Spiel zu beenden, außer es ist ein Rätsel und selbt da darf man fast immer noch mal neu raten.


Nach oben
  
Mit Zitat antworten  
Offline
Alex
Alex
Benutzeravatar
Beiträge: 22
BeitragVerfasst: Mi Feb 08, 2012 20:13 
ich überdenke dies. jedoch passt es gut ins setting, da der befragte die aufgabe erhält wahrheitsgemäß zu antworten.

macht es sinn all diese sachen für das intro in eine eventseite zu klatschen? bisher macht es sinn aber es wird langsam unübersichtlich. würde es sinn machen das aufzuteilen, auf eine weitere seite oder gar ein zweites event? vllt auch um die sachen einfacher zu testen.

Bild

_________________


Nach oben
 Profil  
Mit Zitat antworten  

BeitragVerfasst: Mi Feb 08, 2012 21:58 
Wenn du meinst.

Ich hab für ein Intro mal 10 Seiten in einem Event geklatscht.

Die Abfrage würe ich auch, wenn nur einmal benutzt als Common-event setzen, da sie nicht zur Spielsteuerung gehört.
Es wäre auch etwas kürzer, wenn du den Else-Zweig weg lassen würdest.


Nach oben
  
Mit Zitat antworten  
Offline
Alex
Alex
Benutzeravatar
Beiträge: 22
BeitragVerfasst: Fr Feb 10, 2012 23:18 
TheWhiteShadow hat geschrieben:
Wenn du meinst.


Das sollte keine Frage des persönlichen Geschmacks sein. Ging mir um die Performance oder andere Gründe die du vllt besser kennst (Übersichtlichkeit, oder ob der Sinn überhaupt vorhandne ist dies nochmal auf mehrere (Event-)Seiten aufzuteilen).
Die Anfrage wird nur einmal benutzt, in der Tat. Ich habe nur Bedenken (weil ich Angst habe da etwas zu vergessen), dass das alles nichtmehr so abgespielt wird wenn ich das jetzt in ein Common Event packe.

Ich habe zumindest das alles etwas nochmal gestrafft (dein Tipp unter anderem den else-zweig jeweils weg zu machen) und die Sternzeichenabfrage auch anders gelöst.

Bild

_________________


Nach oben
 Profil  
Mit Zitat antworten  

BeitragVerfasst: Fr Feb 10, 2012 23:50 
Beim Commonevent lässt sich nicht viel falsch machen. Du packst einen Teil des Skripts in ein CE und stattdessen setzt du im Event den Aufruf fürs CE rein.
Dann wird genau an der Stelle das CE als Sub-Event geladen und bearbeitet.

Das Ganze kann man 100 mal schachteln bis der Interpreter ein Stack-Overflow meldet.


Nach oben
  
Mit Zitat antworten  
Offline
Alex
Alex
Benutzeravatar
Beiträge: 22
BeitragVerfasst: Sa Feb 11, 2012 10:32 
OK; wie befürchtet komme ich da in eine Bredouille.

Das CommonEvent Startet wieder von Neuem, obwohl ich nun hinten ein "Event löschen" angehängt habe.
http://www.file-upload.net/download-4105944/Project1---Kopie.exe.html

_________________


Nach oben
 Profil  
Mit Zitat antworten  

BeitragVerfasst: Sa Feb 11, 2012 12:04 
Kann es sein, dass du versuchst das CE zu löschen? Das geht natürlich nicht.
Du musst das Event auf der Karte löschen.
Dann sollte ja auch das CE nicht mehr aufgerufen werden.


Nach oben
  
Mit Zitat antworten  
Offline
Alex
Alex
Benutzeravatar
Beiträge: 22
BeitragVerfasst: Sa Feb 11, 2012 20:04 
ok... danke klappt.

aber warum funktioniert "erase event" nicht?

_________________


Nach oben
 Profil  
Mit Zitat antworten  

BeitragVerfasst: Sa Feb 11, 2012 22:47 
Ein Event im Maker besteht immer u.a. aus einem Event-Objekt und einer Befehls-Liste.
Das Ereasen markiert das Event-Objekt als gelöscht (Es wird ja nie wirklich gelöscht), nicht aber die Liste.

Common-events bestehen nur aus einer Befehls-Liste.
Der Löschbefehl geht damit ins leere.


Nach oben
  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de