Ergebnis 1 bis 20 von 296

Thema: Detail-Wissen und Geheimnise des RPG-Makers -vorallem für Erfahrene/Profis lehrreich

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

  2. #2
    Ein Problem im RMN, Ausgangssituation: Kampf endet mit allen Helden tot, ein Event sollte u.a. einen Helden wiederbeleben, aber nachdem die Map erscheint kommt sofort Game Over.

    Meine Analyse:

    Zitat Zitat von Cherry
    The RPG Maker doesn't trigger a Game Over on the map, even if all characters are dead, unless one of the following event commands is executed:

    - Change Party
    - Change EXP
    - Change Level
    - Change Ability
    - Change Skill
    - Change Equipment
    - Change HP
    - Change MP
    - Change Condition
    - Full Recovery
    - Take Damage

    So, make sure none of these commands are executed (check parallel process events!) before at least one hero has been revived (of course, no Game Over is triggered if the command - even though it's in the list - is reviving a party member), then everything should work fine.
    Zitat Zitat von bulmabriefs144
    That's screwed up, btw. Why do they make it so you can't raise party members if everyone's dead?
    Zitat Zitat von Cherry
    You can.

    However, if you do anything with one of these commands which does not revive at least on of the party members, it will trigger the Game Over (so be careful even with reviving, because attempting to revive a hero which is NOT in your party can also trigger the Game Over!).

    The reason is that the RM designers didn't complete their thoughts on this one. They have a "check if everybody is dead and trigger Game Over in this case" check after any of these event commands has been processed. Normally, this would make perfect sense (well, not for all of the commands - why could changing EXP ever cause a Game Over? - but the reason is that most of them are handled by the same internal function and this function does the check at the end) if a dead party would be disallowed - but it seems like they didn't unambiguously specify that: On one hand, a dead party is considered disallowed becausing killing the last party member (e.g. using the Change HP command) or removing a party member and leaving only dead heroes in the party will trigger a Game Over (that's why this check is there). On the other hand, ending a battle with a dead party is allowed (and that's a good decision, otherwise event battles with a "defeat" handler wouldn't work).

    This is why it's such a mess.

  3. #3
    Dinge an die ich mich grob erinnere:

    Die "Dead"-Condition hat eine Option namens "Extend of Effect" und wenn man die auf "Persists after battle" setzt wird man nach Kampfende auf der Map umgeklatscht. Bei "Ends after battle" hat man das Problem nicht.

    Irgendwie so wars.

  4. #4
    Klar. Bewirkt aber auch dass alle Charaktere nach dem Kampf wieder 1 HP haben, was hier nicht gewünscht war.

    Auf der Map wird man nur umgeklatscht wenn irgendein Event eins der oben aufgelisteten Befehle ausführt bevor mindestens ein Held wiederbelebt wurde. Darum gehts ja grade.

  5. #5
    Irgendwie ist mir neulich aufgefallen, dass das "Horizontal Scrolling" beim RM2K3 funktioniert, beim RM2K jedoch nicht wirklich.

    Wenn ich bei den Map-Properties einstelle, dass ein Panorama sagen wir mit der Geschwindigkeit 0, Häkchen bei Hor. Scroll und bei Auto-Scroll läuft und ich dann via Event (Parallel Process) die Geschwindigkeit erhöhe, um beispielsweise eine gleichförmige Beschleunigung zu simulieren, funktioniert das auf dem RM2K3 tadellos, auf dem RM2K passiert jedoch schlichtweg gar nichts. Selbes Event einmal im RM2K3 und einmal im RM2K getestet:

    Code:
    Change Panorama [Hor. Scroll 2]
    Wait 0.5
    Change Panorama [Hor. Scroll 3]
    Wait 0.5
    Change Panorama [Hor. Scroll 4]
    Wait 0.5
    Change Panorama [Hor. Scroll 5]
    Wait 0.5
    usw.

    Weiß jemand woran das liegt? bzw. wie ich dasselbe Ergebnis mit dem RM2K realisieren kann?

  6. #6
    Mal eine Frage, da ich hoffe jemand kommt auf eine gute Idee, wie man das lösen könnte:

    Beispiel:
    Ich habe auf einer Map 30 Events, die jeweils ein sehr langes Script auf Seite1 ausführen.
    Wechselt man (z.B. per Switch oder Variable) auf Seite 2, dann springt es sofort dorthin zu Zeile1.
    Wechselt man wieder zurück, beginnt das Script auf Seite1 wieder von vorne.
    Profiwissen:
    Bei Seitenwechsel in Map-Events findet ein Sofort-Wechsel der Map Seite (und des darin enthaltenen Scripts) statt.

    Das ist jedoch bei Common Events nicht der Fall.

    Hat man ein CommonEvent (z.B. mit Switch Aktivierung) und schaltet man diesen auf OFF, dann wird die Stelle gemerkt und ab dieser Zeile geht es dann beim erneuten Aktivieren (Switch ON) weiter!
    Anders gesagt:
    Profiwissen:
    Common Events merken sich die aktuelle Zeile bei Abbruch und gehen ab dieser dann bei erneuter Aktivierung weiter!

    Will man das nicht, muss man nach jeder einzelnen Zeile eine Bedingung einbauen, mit der es (per Label) zum Ende springt.

    Das ist natürlich äußerst umständlich, da man diese Bedingung nach jeder Zeile einfügen muss!
    (denn je nachdem, wann man das CE deaktiviert, kann sich die aktuelle Aktion überall im Script befinden)

    Kennt jemand einen guten Alternativweg, wie man diese Map-Events (bei denen ein das Script immer von Anfang beginnen muss) zu Common Events umfunktionieren kann, ohne 1000 Bedingungen darin einzubauen?

    (wegen des äußerst langen Scripts in jedem der 30 Map-Events, die sich jeweils auf bestimmte IDs der Map beziehen, (und wegen dem Sofortwechsel (von Map-Seiten) muss ich bisher all diese Events in jede meiner Maps kopieren, was die Maps um ein ~10faches vergrößert (im Speicherverbrauch))

  7. #7
    Ich mach das mit nem Mix aus Common und Map Events: auf der Map z.B. ein Event mit PP erstellen, das nur losgeht wenn Switch 01 aktiviert ist. Im Script steht dann lediglich das Common Event das du Aufrufen möchtest. wenn der Switch aus geschaltet wird, wird auch die Seite deaktiviert, wenn der Switch wieder angeht, startet das Event (und damit das CE) ganz von oben.

    Hoffe ich hab mich verständlich ausgedrückt. :P

  8. #8
    Verständlich ausgedrückt.
    Ich habe jetzt nach dieser Art alle Maps umgebaut und es funktioniert noch tadellos!
    Danke für diese gute Lösung!!

  9. #9
    TheDude hatte hier ein komisches Problem bei dem ein Faceset nicht angezeigt wurde, obwohl es gesetzt wurde:

    Zitat Zitat von TheDude
    Ich habe mich heute Abbend umentschieden doch Facesets zu verwenden. Dabei bin ich zum ersten mal (zufällig) auf eine Eigenart des Makers gestoßen:
    Wenn zwei Events gleichzeitig laufen (z.b.über Autostart und ParallelProcess) und darin taucht eine Message mit Faceset auf, so kann dieses nicht (und wird auch nicht) angezeigt werden.

    Wieder etwas dazugelernt.
    Ein Beispielprojekt, was das demonstriert, wäre hier: https://cherryshare.at/f/ElLtXw/Project1.zip

    Wenn man das Autostart-Event links oben löscht, funktioniert es.

    Hat wohl hiermit zu tun, Zitat aus der Hilfedatei:

    Zitat Zitat
    Notes

    ·Face graphic settings are limited to the processing of the same event. When each event begins processing, face graphics are set to be not displayed.
    Aber die Art, wie das gemacht wird, ist nicht ideal, weil Faces in Wahrheit keine Eventzugehörigkeit haben sondern global sind. Es wird einfach immer dann, wenn ein neues Event in den Hauptinterpreter (in welchem Autostart- und Action-Key/Touch-Events ausgeführt werden) geladen wird, oder wenn der Hauptinterpreter das Ende eines Events erreicht, das Faceset gelöscht.

    Es wird davon ausgegangen, dass in Parallel Process Events (die einen eigenen Interpreter haben) keine Dialoge passieren, weil deren Ablauf im Vergleich zum restlichen Spiel nicht genau zeitlich steuerbar wäre (eben weil sie parallel laufen in einem eigenen Interpreter pro PP-Event und nicht den Hauptinterpreter exklusiv verwenden können wie andere Events), und sie ja auch jederzeit unterbrochen werden können wenn ihre Startbedingung nicht mehr aktiv ist (im Gegensatz zu Events im Hauptinterpreter, die immer komplett laufen).

    Was hier also passiert ist folgendes:

    * Map wird geladen
    * Events werden abgehandelt:
    ... * Parallel Processes Interpreter werden abgehandelt, das bewirkt dass in deinem PP-Event das Face gesetzt wird und die Nachrichtsanzeige initiiert. Da das aber ein grafisches Update und eine Animation beinhaltet, wird der Interpreter zu dem Zeitpunkt freigegeben und wartet (in dem Fall bis beim nächsten Zyklus die Message irgendwann wieder fertig ist und der nächste Befehl ausgeführt werden kann). Face ist momentan gesetzt.
    ... * Hauptinterpreter wird abgehandelt. Der hat momentan noch kein aktives Event geladen, und schaut sich um welches Event ausgeführt werden soll. Das wird das Autostart-Event. Er lädt das Event, und das Laden eines Events in den Hauptinterpreter bewirkt das Löschen des Face, wie oben erklärt. Face ist momentan gelöscht.
    * Messagebox wird aktualisiert - Das Spiel sieht dass eine Messagebox von einem Event initialisiert wurde, und rendert die Box. Das Face ist aber bereits gelöscht!

    Das Problem existiert nicht wenn du in 2 PPs Face+Text machst, weil nämlich Messagebox-relevante Befehle gar nicht erst ausgeführt werden wenn gerade eine Box offen (oder im Öffnen begriffen) ist. Aber das Löschen des Face beim Laden eines Events in den Hauptinterpreter überprüft das nicht. (Das könnte man vielleicht patchen.)

    Die Moral der Geschichte: Keine Dialoge in PPs packen, die sind nicht dafür gedacht. Wenn ein Dialog von einem PP ausgelöst werden soll, dann sollte stattdessen besser ein Switch gesetzt werden, der ein Autostart-Event oder Map-Event auslöst, sodass das entsprechende Event im Hauptinterpreter läuft und andere Hauptinterpreter-Events blockiert. ("Call Event" hilft da nicht, weil das würde nur bewirken, dass das Unterevent auch im Interpreter von seinem aufrufenden PP-Event abgehandelt wird, nicht im Hauptinterpreter.)

    Geändert von Cherry (06.01.2021 um 15:16 Uhr)

  10. #10
    Hallo guten abend

    Gibt es auch Möglichkeiten mit 2k3 auch eine KS zu machen wie bei Legacy Of Goku reihe auf den GBA? Also falls du die reihen kennst. Es gabs vor paar Jahren eine englische spieleentwickler der sowas auf seine 2k3 eingebaut hatte

  11. #11
    Mit genug technischem Wissen sicherlich. Das nennt sich AKS (Action-Kampfsystem) bzw. ABS (Action Battle System), mit der Bezeichnung findest du besser Tutorials dazu.

Berechtigungen

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