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
    Zitat Zitat von Cherry1 Beitrag anzeigen
    das kommt daher, dass für die Konstante This Event zu Beginn der Eventausführung die ID des Events eingesetzt wird. Wenn jetzt das Event die ID 5 hat, und es wird nach einem Teleport irgendwas mit This Event ausgeführt, wird das auf das Event mit ID 5 auf der neuen Map angewandt. Hast du dort nur 4 oder weniger: Fehler. Irgendwie logisch!
    Hab ich auch nur mit einem Wort gesagt, dass es nicht logisch ist, dass der Fehler auftritt?
    Wollte nur drauf hinweisen, dass das auch mit einem anderen Event-Trigger als "Parallel Process" passieren kann.

  2. #2
    ja, hast du. ich wollte sagen, dass wenn ein Event mit ID 8 ein Flash Sprite auf This Event nach einem Teleport das Event mit ID 8 auf der neuen Map Flashen lässt - also meist ein ganz anderes Event. Es sieht ziemlich blöd aus, wenn ein Teil eines Daches blinkt oder so, auch, wenn kein Error kommt ^^
    mfG Cherry

  3. #3
    Mal was ganz anderes:

    Mir ist aufgefallen das beim Laden eines Spielstandes das Spiel genau dort einsetzt wo im Event zum Speichern der Befehl "Call Save Menu" aufgerufen wurde. Das scherint aber nur bei Map Events zu gelten denn als ich in einem Common Event "Call Save Menu" ausgeführt habe wurden alle Ereignisse danach beim Laden des Spielstandes nicht mehr ausgeführt. Dabei wurde das Common Event von einem Map Event aus per Call aufgerufen.

    Ich weiss nicht ob sowas schon bekannt war. Es ist in jedem Fall in so fern interessant da es einem die Möglichkeit bietet nach dem Laden eines Spielstandes einige Dinge durchführen zu lassen. Zu beachten dabei ist das diese Dinge auch ausgeführt werden wenn der Held speichert.

    Code:
    //Irgendwas anderes davor
    Call Save Menu
    //irgendwas anderes danach was beim laden des spielstandes erneut ausgeführt wird

  4. #4
    zu Caine

    Ich tipp mal das das daran liegt, das das Common Event nur bis zum Call Save Menü und danach alles weiter führt. aber startet man das Spiel jetzt Neu so sieht der Maker das vielleicht als Ende des Events an. Oder du hast vielleicht etwas im event verändert und dann geladen, sodas der Maker das Event neu aufruft ( Den Fehler hat ich bei mir mal^^ )

  5. #5
    Was die wenigsten wissen: mit
    Code:
    rpg_rt.exe !TestPlay ShowTitle Window
    (das "!" ist das wichtigste), kann man das Spiel im Fenster starten, OHNE ein TestPlay zu machen (also F9 und so gehen dann nicht).

    Bilderbewegung pausieren oder rückwärts:

    Zitat Zitat von Evilshenlong
    Und das geht so:
    Als erstes braucht man den Resource Hacker, ist soweit ich weiß beim E-Book dabei.
    Dann öffnet man die Exe-Datei des Makers (also rpg2000.exe oder auch rpg2003.exe)
    Jetzt öffnet man den Ordner RCData und dann den Ordner TFORMVEPICTUREEX.
    Nun fast ganz runter Scrollen, es tauchen die Wörter "Caption = 'Rotation'" und "Caption = 'Ripple'" auf, noch etwas weiter steht "object Slider5: TSlider".
    Etwas weiter gibt es eine Zeile in der "Min = 1" und "Max = 9" steht, das sind die normalen Einstellungen, also minimal Speed/Rotation 1 und maximal 9.
    Statt der 1 und 9 jetzt beliebige Zahlen eintragen, z.B. -10 für min und 10 für max.
    Der negative Wert steht jetzt logischerweise für eine umgekehrte Drehung, außerdem kann man so die Geschwindigkeit der Drehungen erhöhen, was auch manchmal recht praktisch ist.
    Weiterhin alle folgenden MaxValue bzw. MinValue und Max bzw. Min durch die gewünschten Zahlen ersetzen, dann auf Compile Script und Speichern.

    Nun müsste man im Maker in beide Richtungen drehen können, außerdem kann man in zwei Richtungen den Ripple-Effekt einsetzen und die Geschwindigkeit von Drehung und Ripple lässt sich erhöhen.

    Allerdings gab es bei mir ein paar Fehler, bei denen ich auch nicht weiß, woran es liegt, könnte auch die Maker Version sein.
    Beispielweise ging das Drehen gar nicht mehr, einfach das Projekt beenden und nochmal starten, dann müsste es gehen.
    Oder es wurde die niedrigste Zahl (in diesem Fall -10) als Anfangsdrehung ausgewählt, die dann in die gewählte Drehung im Maker übergegangen ist, wobei die Zeit, die man einstellt, bestimmt, wie schnell die Drehungen wechseln (bei 0.0 erscheint sofort die gewünschte Angabe).
    Dieser Effekt kann natürlich auch praktisch sein, wenn man will, dass sich etwas immer schneller dreht oder es gegen den Uhrzeiger beginnen soll.
    Wenn man Null als Wert eingibt, bleibt das zu drehende Bild übrigens stehen (wenn man es vorher gedreht hat), sicher auch ganz praktisch.

    Aber probiert es am besten mal selbst aus.
    mfG Cherry

  6. #6
    Um nochmal Caine Luvenos Thema aufzugreifen: Es ist mir ja auch schon passiert, dass (bei einem Map Event!), nach dem neu laden der "Call Save Menu" Befehl NOCHMAL ausgeführt wurde. Also wenn man ein Spiel geladen hat, gleich nochmal den Speicherbildschirm gesehen hat! Das passierte merkwürdigerweise nur, wenn zu dem Zeitpunkt des Speicherns die Variable 800 initialisert war (also ihr schon mal ein Wert zugewiesen wurde).

  7. #7

    Users Awaiting Email Confirmation

    Zitat Zitat von Cherry1 Beitrag anzeigen
    Um nochmal Caine Luvenos Thema aufzugreifen: Es ist mir ja auch schon passiert, dass (bei einem Map Event!), nach dem neu laden der "Call Save Menu" Befehl NOCHMAL ausgeführt wurde. Also wenn man ein Spiel geladen hat, gleich nochmal den Speicherbildschirm gesehen hat! Das passierte merkwürdigerweise nur, wenn zu dem Zeitpunkt des Speicherns die Variable 800 initialisert war (also ihr schon mal ein Wert zugewiesen wurde).
    Wenn du bei einem Map-Event die "Call Save Menu"-Funktion einbaust, und du dann (!) die Map veränderst (heißt Events etc.), so erfolgt nochmal die "Call Save Menu"-Funktion wenn man lädt, soweit meine Theorie

  8. #8
    Das hab ich auch bemerkt. Nur merkwürdigerweise trat das NICHT auf, wenn zum Zeitpunkt des Speichern der Vari 800 (und auch keiner höheren, sonst passiert das automatisch) noch KEIN Wert zugewiesen wurde (Achtung doppelte Verneinung).

  9. #9
    @Cherry
    Huch... Ist das ein Maker interner Fehler? Mir ist sowas auch schon woanders passiert *nick*
    Ich hab eine Temp-Vari benötigt aber die wollte nich den Wert annehmen den ich ihr durch eine Berechnung zugeteilt hab. Als ich als Temp eine andere nahm, klappte alles normal^^
    Sehr komsich...
    Leider weiß ich nicht mehr welche Vari es war o.o''''

  10. #10
    RPG_RT.exe - DebugParameter:

    TestPlay/!TestPlay, HideTitle, Window

    Das Verrückte daran:

    Oft gibt es auch noch NormalPlay, ShowTitle und FullScreen.
    Seltsamerweise kommen diese NICHT in der RPG_RT selbst vor.

    Anstatt...

    Code:
    RPG_RT.exe TestPlay ShowTitle Window
    ...wäre also eigentlich auch...

    Code:
    RPG_RT.exe TestPlay BlowTitel Window
    ...oder...

    Code:
    RPG_RT.exe TestPlay BoomTitll Window
    ...möglich, so wie ich das einschätze.

    Wer einen Hex-Editor zur Hand hat, kann auch die Parameter ändern.
    Sucht nach TestPlay und ihr seht "TestPlay", "HideTitle" und "Window",
    die ihr BESCHRÄNKT umändern könnt. Die neuen Parameter müssen die
    gleiche Zeichenlänge haben.
    Der einzige Nachteil: Ihr verderbt den Cheatern unter euren Spielern
    den Spass^^.

    ---------------------------------------------------------------------------------

    Font ohne FontChanger ändern (falls er nicht funktioniert)

    Ich hab vorhin gelesen, dass bei einem User Cherry's Font Changer
    nicht geht. Eine Alternative ist:

    Öffnet einen Hex-Editor und holt euch die RPG_RT.exe rein.
    Sofern es eine für uns gebräuchliche RPG_RT handelt, die
    RM2000 und RMG2000 benutzt, sucht nach einem der beiden
    Zeichenketten. Genau da wo die Fonts stehen, könnt ihr andere
    eintragen. Hier gilt wieder, die Zeichenlänge einzuhalten. Diesmal
    seit ihr aber nicht auf genau die selbe Länge, sondern nur maximal
    auf soviele Zeichen beschränkt. Alle Zeichen, die übrig bleiben,
    müsst ihr im Hex-Bereich mit 20 überscheiben (Leerzeichen).

    Die andere Alternative, die ich nur ganz nebenbei erwähne:
    Das RM2K Utility besitzt ein FontChanger-Plugin, damit funktioniert
    das ganze ebenfalls. (Download)

    ---------------------------------------------------------------------------------

    Schwarzer Bildschirm nach Teleport

    Es ist mir 2004 mal aufgefallen, erinnere mich jetzt aber wieder dran.
    Unter bestimmten Umständen kann nach einem Teleport der Bildschirm
    schwarz sein, falls eine Ausblendung eingestellt ist (als nicht "Nicht löschen").

    Kleine Sache zwischendurch:
    Ich habe NICHT den Bildschirm vorher auf 0%,0%,0%,100% verdunkelt.
    In diesem Fall hätte ich die Message Box trotzdem gesehen.

    Getestet bei:
    Maker: RM2003
    RPG_RT-Version: 1.05
    Ausgeführter Eventtyp: Parallel Process
    Erster Befehl nach Teleport: Show Message
    Standort des Befehls: Ein Parallel Process Event auf der nächsten Map

    Sobald das Show Message mit Enter/Z/Space/Escape/0/Einfg/...
    weggedrückt wurde, wird der Bildschirm schlagartig "normal"
    (die Map erscheint) und der weitere Spielverlauf ist wieder richtig.

    ---------------------------------------------------------------------------------

    Macke in Ineluki's Patch

    Bei manchen PCs (z.B. meinem) kann es vorkommen, dass wenn eine link.wav
    im Titlescreen benutzt wird, die RPG_RT.exe sich aufhängt und ne Weile
    den User beschäftigen kann, sie wieder zu schliessen, ausser, er war so
    schlau, es im Fenstermodus zu starten^^.

    ---------------------------------------------------------------------------------

    Aufbau einer LcfMapUnit

    Aufbau:
    OFFSET: Bezeichnung (Datenformat); Standardwert; Bemerkungen

    0x01: Chipset-ID (Integer); 1 bis 5000?; -
    0x02: Breite (Integer); 20; 20 bis 500; -
    0x03: Höhe (Integer); 15; 15 bis 500; -
    0x0A: blabla (Strings); ???; (Zeichenkettenlänge) + Zeichenkette (Standardkette: "LcfMapUnit")
    0x0B: Scrolltyp(Integer); (Keiner); 0: Kein Loop, 1: Nur Horizontal, 2: Nur Vertikal, 3: Beide Richtungen
    0x1F: Panorama benutzen (Integer); 0; 0: Nicht benutzen; 1: Benutzen
    0x20: Panorama-Name; (String); (Keiner); -
    0x21: Horizontal scrollen (Integer); 0; 0: Nicht benutzen, 1: Benutzen
    0x22: Vertikal scrollen (Integer); 0; 0: Nicht benutzen, 1: Benutzen
    0x23: Horizontal automatisch scrollen (Integer); 0; 0: Kein Auto-Scrollen, 1: Auto-Scrollen
    0x24: Horizontaler Auto-Scroll (Integer); 0; -8 bis 8
    0x25: Vertikal automatisch scrollen (Integer); 0; 0: Kein Auto-Scrollen, 1: Auto-Scrollen
    0x26: Vertikaler Auto-Scroll (Integer); 0; -8 bis 8
    0x47: ????? (2 Byte, kein Integer, unsigned short)
    0x48: ????? (2 Byte, kein Integer, unsigned short)
    0x51: ????? (2 dimensional Arrangement)
    0x5B: ????? (Integer)


    Wer die letzten 4 kennt, ruhig sagen^^


    ---------------------------------------------------------------------------------

    Reihenfolge der Grafikormatserkennung

    Habt ihr mehrere Dateien mit gleichem Namen in einem Ressourcen-Ordner,
    werden die Dateiformate in der Reihenfolge erkannt:
    1.: BMP
    2.: PNG
    3.: XYZ
    (der Maker zeigt nur in Ressourcenlisten das erstbeste an!)

    Das gleiche gilt für das RTP:
    1. BMP <RTP>
    2. PNG <RTP>
    3. XYZ <RTP>
    (der Maker zeigt auch hier nur in Ressourcenlisten das erstbeste an!)
    Eigentlich sollte es hier nicht auftreten, ausser ihr pfuscht am RTP rum.

    Geändert von MagicMaker (29.01.2008 um 15:58 Uhr)

  11. #11
    @MagicMaker:

    Aufbau der LcfMapUnit? Spitze, danke! Hast du noch mehr derartiges auf Lager?? Und wo hast du das her? Selbst rausgefunden?

    Wegen "ZeigTitel" statt "ShowTitle" und so: jap. genau. Übrigens getestet.

    Das mit "NormalPlay" wusste ich nicht. Hat offenbar den selben Effekt wie "!TestPlay".

    Zitat Zitat von MagicMaker
    Genau da wo die Fonts stehen, könnt ihr andere
    eintragen. Hier gilt wieder, die Zeichenlänge einzuhalten. Diesmal
    seit ihr aber nicht auf genau die selbe Länge, sondern nur maximal
    auf soviele Zeichen beschränkt. Alle Zeichen, die übrig bleiben,
    müsst ihr im Hex-Bereich mit 00 überscheiben.
    Stimmt nicht ganz

    Es passen MEHR Zeichen rein, als drin war. Es sollten nur die letzten zwei NULL-Bytes nicht überschrieben werden.

    Bei einer 2k-EXE sollten 10 Bytes bei RM2000 und 14 bei RMG2000 reinpassen.

    mfG Cherry

  12. #12
    Zitat Zitat
    Alle Zeichen, die übrig bleiben, müsst ihr im Hex-Bereich mit 00 überscheiben.
    Ich korrigiere mich, überschreibt sie mit dem Hexwert 20 (Leerzeichen)

    ~Zeichenzahl: Ja ok daran hatte ich nicht gedacht. Das ist noch vom
    japanischen Original so wies mir scheint.

    ---------------------------------------------------------------------------------

    LcfMapUnit

    Nochmal zu 0x0A:
    Hex: 0A 4C 63 66 4D 61 70 55 6E 69 74
    Das 0A ganz vorne bestimmt, wie lang die Zeichenkette sein muss.
    Also hier 0A (entspricht 10; L-c-f-M-a-p-U-n-i-t = 10 Zeichen).

    Vieles kriegt man selber raus. Ich hab mich aber mal für mein fehlendes Zeug
    bei der RPG2KDev-Seite von sue445 erkundigt.

    0x47 | 下層マップ | 型が「2バイト符号無し整数(unsigned short)」で要素数が「マップの幅×高さ」の配列 | (省略無し) | 左上(0,0)から順に格納されている
    0x48 | 上層マップ | 型が「2バイト符号無し整数(unsigned short)」で要素数が「マップの幅×高さ」の配列 | (省略無し) | 左上(0,0)から順に格納されている
    0x51 | マップイベント | 2次元配列
    0x5B | マップの保存回数 | 整数 | セーブデータロード時にここが変更されていると、「イベント開始条件」が「定期的に並列処理する」のイベントを最初から実行する
    Ist japanisch, bin zum Übersetzen zu faul.

    ---------------------------------------------------------------------------------

    Header von XYZ-Files (Offset; Länge; Inhalt):

    0x00; 0x04; Identifikation (XYZ1)
    0x04; 0x02; Bildbreite
    0x06; 0x02; Bildhöhe

    ---------------------------------------------------------------------------------

    Mehr als 9999 Events verwenden

    Öffnet RPG2000.exe mit einem HexEditor.
    Sucht nach der Zeichenkette "EV%.4d"

    Die 4 ändert ihr in die Stellenzahl um, die ihr wollt.
    Getestet mit: "%.6d", Maker funktioniert weiterhin.
    Wobei es reicht, 5 zu nehmen. Bei dem Maximum von
    500x500 sind 25000 Events eh das Grösstmögliche.

    Insgesamt spuckt der Editor 3 Ergebnisse aus, ihr müsst es
    bei allen ändern.

    ---------------------------------------------------------------------------------

    MapEvent-Aufbau

    OFFSET: Bezeichnung (Datenformat); Standardwert; Bemerkungen
    0x01: Eventname (String); EV%.4d; bis zu 20 Zeichen
    0x02: X-Koordinate (Integer); 0; -
    0x03: Y-Koordinate (Integer); 0; -
    0x04: ?????
    0x05: [Daten der Eventseiten]

    Eventseiten-Daten (unvollständig)

    OFFSET: Bezeichnung (Datenformat); Standardwert; Bemerkungen
    0x02: [Startbedingung]
    0x15: Dateiname der Laufgrafik (String); keiner; -
    0x16: ID der Laufgrafik aus dem Chipset (Integer); 0; ...
    0x17: Richtung der Grafik (Integer); 2; 0=Hoch, 1=Rechts, 2=Runter, 3=Links
    0x18: Laufframe der Richtung (Integer); 1; 0=Links, 1=Mitte, 2=Rechts
    0x19: Transparent [unsicher] (Flag); 0; -
    0x1F: Bewegungstyp (Integer); 0; 0=Still stehen, 1: Zuall, 2: Hoch-Runter, 3: Links-Rechts, 4: Held verfolgen, 5: Vor Held fliehen, 6: Definierte Route
    0x20: Bewegungsfrequenz (Integer); 0; 1 bis 8

    Startbedingungen

    OFFSET: Bezeichnung (Datenformat); Standardwert; Bemerkungen
    0x01: Bedingungen (Integer, 6Bit Flag); 0; Bit 0: Erster Switch; Bit 1: Zweiter Switch; Bit 2: Variable, Bit 3: Item besitzen, Bit 4: Held x in Truppe, Bit 5: Timer entspricht...
    0x02: Switch1-ID (Integer); 1; -
    0x03: Switch2-ID (Integer); 1; -
    0x04: Variablen-ID (Integer); 1; -
    0x05: Variablenwert >= (Integer); 0; -
    0x06: Item-ID (Integer); 1; -
    0x07: Held-ID (Integer); 1; -
    0x08: Timerstand in Sekunden (Integer); 0; -

    Geändert von MagicMaker (29.01.2008 um 17:06 Uhr)

  13. #13
    thx, das erspart mir viel Arbeit!

    >>> so wird der PP auch on-the-fly Events verändern können!
    Das mit "1. Byte zeigt Länge" habe ich schon bemerkt beim auslesen der Hero-Names aus dem RAM.

    mfG Cherry

  14. #14
    Während ich beim bearbeiten aus meiner Session gekickt wurde, schreibst du wieder, passt mir auch, dann kommt der Edit hier rein.

    ---------------------------------------------------------------------------------

    Datenbank-Tab "Helden" (unvollständig)

    0x01: Heldenname (String); keiner; -
    0x02: Beruf (String); keiner; -
    0x03: Dateiname der Laufgrafik (String); keiner; -
    0x04: Position im Charset (Integer); 0; 1 bis 7 (Oben: 0, 1, 2, 3; Unten: 4, 5, 6, 7)
    0x05: Transparenz (Flag); 0; 0=Nein, 1=Ja
    0x07: Startlevel (Integer); 1; 1 bis Maximallevel
    0x08: Maximallevel (Integer); 2000: 50, 2003: 99; -
    0x09: ?????
    0x0A: ?????
    0x0F: Faceset-Datei (String); keiner; -
    0x10: Face-Position (Integer); 0; 1 bis 15, Reihenfolge wie bei Charset
    0x15: Zwei Waffen (Flag); 0; 0=Nein, 1=Ja
    0x16: Feste Ausrüstung (Flag); 0; 0=Nein, 1=Ja
    0x17: Automatisch kämpfen (Flag); 0; 0=Nein, 1=Ja
    0x18: Starke Abwehr (Flag); 0; 0=Nein, 1=Ja

    ---------------------------------------------------------------------------------

    Wichtig ausserdem zu vielem: Credit to sue445

Berechtigungen

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