Ergebnis 1 bis 2 von 2

Thema: RM2k(3) Bugfix Patch/IPS: Konsistente Z-Order von Events am selben Tile

  1. #1

    RM2k(3) Bugfix Patch/IPS: Konsistente Z-Order von Events am selben Tile

    Hallo Leute! Ich erfuhr von einem Problem, welches User Tor_Heyerdal hatte, wo es um Events geht, die am selben Tile stehen oder deren Zeichenreihenfolge/Z-Order "zufällig" herumswitcht wenn der Bildschirm sich bewegt.

    Sieht so aus, als wäre diese Problem im RM immer schon da gewesen! Es funktioniert folgendermaßen: Wenn ihr Events (die am selben Layer sind, z.B. Same As Hero) auf dasselbe Tile bewegt, passieren komische Sachen. Der RM verwendet eine Vergleichsmethode basierend auf der Y-Position, ob es der Held ist oder nicht, und X-Position, in dieser Reihenfolge, um festzulegen, in welcher Reihenfolge Events gezeichnet werden. Wenn allerdings all diese Werte gleich sind, dann hängt die tatsächliche Reihenfolge teilweise von der Event ID ab, aber teilweise auch davon, welche anderen Events im sichtbaren Bereich liegen, und vielleicht auch von der Mondphase und eurer Schuhgröße, weil es eigentlich undefined behavior ist.

    Ich habe z.B. diese Events (unten seht ihr die IDs):


    Jetzt bewege ich die äußeren beiden Events auf das mittlere. Was passiert, ist dieses Durcheinander:


    Beachtet, wie die Reihenfolge sich ändert, wenn der Held vorbeiläuft! >_<

    (In diesem einfachen Beispiel hat nur die vertikale Position das Umreihen bewirkt, aber in komplizierteren Szenarien, wie das, was Tor_Heyerdal hatte, bewirkt auch die horizontale Position komische Sachen wie diese.)

    Meine Lösung, um Ordnung in dieses Chaos zu bringen, ist, einen neuen Schritt in dem Eventvergleich zum Bestimmen der Reihenfolge einzubauen: Die Event ID. Events mit höherer IDs werden über jenen mit niedrigerer ID gezeichnet (wie man erwarten würde, z.B. auch von Pictures). D.h. der Vergleich ist nun Y, Held-oder-nicht, X, Event ID.

    Das Ergebnis sieht folgendermaßen aus, und bleibt so, egal wo der Held und die Map sich befinden:



    Das ist doch viel besser, denke ich!

    Ich habe jetzt einen Patch für RM2k3 v1.08 gebaut, um das zu erreichen (funktioniert auch mit DynRPG). Zum Anwenden, ladet euch diese IPS-Datei runter und patcht eure RPG_RT.exe damit (oder tut es in den DynPatches-Order, wenn ihr DynRPG Version 0.20+ verwendet): http://share.cherrytree.at/showfile-...ent_id_fix.ips

    EDIT: Hier auch für RM2k v1.07: http://share.cherrytree.at/showfile-...ent_id_fix.ips

    EDIT2: Auf den zweiten Blick bin ich mir allerdings nicht mehr sicher, ob diese Lösung ideal ist. Vielleicht sollte es die Event ID im Check verwenden anstatt vom Check der X-Position? Denn mit der aktuellen Lösung wird die Reihenfolge sich ändern wenn das Event sich horizontal bewegt (z.B. wenn es hinter eine Kiste läuft). Einige Leute sind aber vielleicht abhängig von diesem X-abhängige verhalten, wenn deren Events breiter sind als 16 Pixel... Was denkt ihr? Das ist das, was ich meine:


    (Ich werde das auch ins nächste offizielle RM2k3-Update einbauen.)

    Viel Spaß mit der neuen, ordentlichen Event-Reihenfolge!
    Cherry

    Geändert von Cherry (11.10.2016 um 14:06 Uhr)

  2. #2

Berechtigungen

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