Seite 88 von 117 ErsteErste ... 387884858687888990919298 ... LetzteLetzte
Ergebnis 1.741 bis 1.760 von 2331

Thema: Programmwunsch und -erstellungsthread #2

  1. #1741
    Zitat Zitat von bugmenot Beitrag anzeigen
    Naja man kann dafür eigentlich auch ResourceHacker oder andere Tools verwenden, von denen einige sogar
    die Oberfläche darstellen können (weiss nicht mehr ob das PE Explorer / ResourceTuner oder XN war...). ^-^

    RCDATA // TFORMEVCMD10110

    Oder man trägt die Änderungen bei Ultimate ein.

  2. #1742
    Zitat Zitat von bugmenot Beitrag anzeigen
    Wenn man die Face-Grafiken außerhalb der Message Box darstellt, wird der Text immernoch um 80 Pixel verschoben bzw. nach 240 Pixeln (ca. 38 Characters) abgetrennt. Es bleibt also immer diese 80x80 Pixel große Leere.
    2k: 0x94936
    2k3: 0xC7412
    Die 50 gibt die X Anfangsposition für den Text an, also dezimal 80.

  3. #1743
    RPG2000 1.07 - Titelbildschirm-Adressengebims (das man teils schon kennt)

    [Fenster]
    0x6D5B9: X-Pos (Von der Mitte aus)
    0x6D5C0: Y-Pos (Oberster Punkt)

    [Neues Spiel]
    0x6D5F7: VocabString******
    0x6D5FD: Farbe****
    0x6D601: Y-Pos**
    0x6D606: X-Pos**

    [Spiel laden]
    0x6D621: VocabString******
    0x6D627: Farbe****
    0x6D62B: Y-Pos**
    0x6D630: X-Pos**

    [Spiel laden - Ohne Slots]
    0x6D647: VocabString******
    0x6D64D: Farbe****
    0x6D651: Y-Pos**
    0x6D656: X-Pos**

    [Beenden]
    0x6D66B: VocabString******
    0x6D671: Farbe****
    0x6D675: Y-Pos**
    0x6D67A: X-Pos**


    ** X und Y bei Texteinträgen sind die relative Position zum Fensteranfang
    **** Die Farbe wird aus eurem Systemset genommen, die Nummer zwischen 1 und 20 müsst ihr Hex umwandeln (0x00 bis 0x13)
    ****** VocabStrings haben eine 4byte-ID (von denen nur 2 Byte wegen des genutzten Datenbereiches wirklich relevant sind)

    Für VocabStrings hab ich mal eine Liste angelegt, die Namen hab ich mir manuell zur Übersicht ausgedacht:













  4. #1744
    @bugmenot: Du hast beim Quickpatch jetzt irrtümlich den 2k-Offset bei der Höhe verwendet. Übrigens würd ich statt "04" (was hexadezimal wäre und daher Nichttechniker bei höheren Zahlen verwirren könnte) "%4" schreiben. (% ist 1 Byte, # sind 4 Bytes und zwar beides dezimal angegeben).

    Ich würd das ja überhaupt so machen

    AllowInfiniteMessageLines=4C760F,90E9,4AC773,9090,4AC7AB,9090

    Mit 4AC91F,9090 wären auch Choices > 4 Lines erlaubt, da braucht man allerdings noch einigen Zusatzcode um die Cancel-Zeile sonderzubehandeln die der Maker als ID 5 einfügt.
    Mit diesem Tool kann man diese überlangen Messages auch in den Maker eingeben und bearbeiten: http://share.cherrytree.at/showfile-...revmsgedit.exe

    Mit der Position ist es etwas mehr tricky weil da nicht viel Platz im Code für Eigenkonstrukte ist.

    4C72A0 << Position im Kampf
    4C734D << Position auf der Map

    Jeweils ecx = y, edx = x. Und zwar wird hier die Messageboxposition (0 = oben, 1 = mittig, 2 = unten) mit 80 multipliziert:

    (auf Map)

    mov ecx, [ebx+8c] << Position laden
    shl ecx, 4 << mal 16
    lea ecx, [ecx+ecx*4] << mal 5

    xor edx, edx << X auf 0 setzen

    Man kann die ecx-Berechnung mit einem Trick verändern

    mov eax, [ebx+8c] << Position laden, diesmal in eax
    mov cl, 50 << Zahl 80 in cl laden
    mul cl << Multipliziert al mit cl und speichert das Ergebnis in ax
    mov ecx, eax << Und wieder in ecx kopieren

    Braucht genausoviel Bytes, aber man kann den Multiplikator direkt angeben!

    MessageBoxYPosMultiplier=4C734E,83,4C7353,B1,4C7354,%80,4C7355,F6E18BC8

    Mehr Erweiterungnen (wie z.B. X ungleich 0, Y-Offset zur Berechnung dazu) geht ohne Code Cave nicht gut in den Platz rein.

    Aber man kann sie natürlich in der Größe ändern:

    MessageBoxSize=4C733E,#320,4C7343,%80

    Im Kampf haben wir aber mehr Platz, da die Berechnung (weil Position immer = 0) dort noch mehr vereinfacht werden kann. Man kann die ganze Berechnung in 4C72A9-4C72B2 mit

    mov edx, 1234 << X-Position
    mov ecx, 5678 << Y-Position

    ersetzen, was genau gleich viel Bytes braucht. (Breite und Höhe für Kampf findet man ab 4C72A0)

    BattleMessageBoxPos=4C72A9,BA,4C72AA,#0,4C72AE,B9,4C72AF,#0
    BattleMessageBoxSize=4C72A1,#320,4C72A6,%80

    Hier noch das was du auch gesucht hast: Maximale Textbreite in Pixeln bevor der Text abgeschnitten wird.

    MaxMessageWidthWithFace=4C7FAE,#227
    MaxMessageWidthWithoutFace=4C7FCA,#299

    Dich könnte auch hier dieser ASM-Code des nicht fertiggestellten Revolution Patches interessieren: http://share.cherrytree.at/showfile-10139/patch.asm

  5. #1745
    +claps+

    Wären meine Cookies nicht halb angebrannt, würde ich jetzt einige verteilen. (Cranberry & White Chocolate)

    P.S.
    Gibt es eine Möglichkeit einen 'Range Check Error' zu umgehen? (die magische Grenze von 7F) Oder tritt dieser auf, weil die Zahl negativ interprätiert wird und man deswegen die Zahl in 4 bytes angeben müsste?

  6. #1746
    Ganz genau. Das höchstwertige Bit ist immer negativ*. Also wenn da nur 1 Byte Platz ist heißt das das 8. Bit wiegt -128 statt +128. Wenn da 4 Byte Platz sind heißt das das 32. Bit wiegt -2147483648 statt +2147483648. Daher 7F = +127, 80 = -128, 80 00 00 00 = +128, FF = -1, FF 00 00 00 = 255 (zur Erklärung: 80 FF FF FF = -128, FF FF FF FF = -1)

    *: Wenn es um signed arithmetic geht. Und das kannst du beim Maker fast immer annehmen.

    EDIT: Jetzt merk ich es erst, bei deinem Quickpatch ist nochwas falsch: Bei der Höhe muss man auch % und nicht # nehmen weil eben nur 1 Byte Platz ist.
    DynRPG überschreibt 4 Bytes wenn man # verwendet.

    Geändert von Cherry (13.06.2013 um 20:39 Uhr)

  7. #1747
    RPG2000 1.07 - Hauptmenü - Auswahlfeld

    [Auswahlfeld bei Betreten des Menüs wie eine Messagebox aufklappen]
    0x78E2F = 01

    [Inventar]
    0x78E6F: VocabString
    0x78E75: Farbe
    0x78E7E: X-Pos
    0x78E79: Y-Pos

    [Zauber]
    0x78E93: VocabString
    0x78E99: Farbe
    0x78EA2: X-Pos
    0x78E9D: Y-Pos

    [Ausrüstung]
    0x78EB7: VocabString
    0x78EBD: Farbe
    0x78EC6: X-Pos
    0x78EC1: Y-Pos

    [Speichern]
    0x78F59: VocabString
    0x78F5F: Farbe
    0x78F68: X-Pos
    0x78F63: Y-Pos

    [Beenden]
    0x78FA3: VocabString
    0x78FA9: Farbe
    0x78FB2: X-Pos
    0x78FAD: Y-Pos


    Für Informationen zu den verschiedenen Daten und welcher VocabString welche ID hat, schlagt in Post 1747 nach.

  8. #1748
    RPG_RT 2k3 1.08 - Hauptmenü - Auswahlfeld

    [Auswahlfenster]
    0xA03DA = Breite
    0xA03EE = Höhe
    0xA03F1 set 01 = aufrollen

    [Items]
    0xA01C5 = y-Pos
    0xA01CE = x-Pos

    [Skills]
    0xA01F4 = y-Pos
    0xA01FD = x-Pos

    [Equip]
    0xA0223 = y-Pos
    0xA022C = x-Pos

    [Save]
    0xA0252 = y-Pos
    0xA025B = x-Pos

    [Status]
    0xA0281 = y-Pos
    0xA028A = x-Pos

    [Row]
    0xA02B0 = y-Pos
    0xA02B9 = x-Pos

    [Order]
    0xA02DF = y-Pos
    0xA02E8 = x-Pos

    [wait(ATB)]
    0xA0312 = Farbe
    0xA031C = y-Pos
    0xA0325 = x-Pos

    [active(ATB)]
    0xA033F = Farbe
    0xA0349 = y-Pos
    0xA0352 = x-Pos

    [Beenden]
    0xA0372 = Farbe
    0xA0387 = y-Pos
    0xA0390 = x-Pos

    [Party Window]
    0x9D3BF = Breite
    0x9D3C4 = Höhe
    0x9D3C9 set 01 = aufrollen
    0x9D3CD = x-Pos

  9. #1749
    Vergiss nicht dass die Menüpunkte im 2k3 umsortierbar sind. Die Werte die du da zeigst sind nur ein Teil (+8) der Berechnung die da lautet Position*16+8.

    Das gilt auch für die Höhe des Auswahlfensters: Du zeigst auf den Teil +16 der Berechnung AnzahlMenüpunkte*16+16

  10. #1750
    RPG2000 1.07 - Hauptmenü - Beenden-Abschnitt

    [Fenster aufklappen lassen]
    0x78AF2 = 01 <~ Frage
    0x78B79 = 01 <~ Antworten

    [Fragefenster]
    0x78AD9+78B17: VocabString
    0x78B1D: Textfarbe
    0x78B1F: Text an/aus (01/00)
    0x78B26: Textposition X
    0x78B21: Textposition Y
    0x78AFB: Fensterpos X (Zentral)
    0x78B02: Fensterpos Y (Oberster Punkt)
    0x78AF0: Höhe

    [Antwortauswahl]
    0x78BA3: Ja:Farbe
    0x78B3B: Ja:VocabString
    0x78BAC: Ja:X-Pos
    0x78BA7: Ja:Y-Pos
    0x78B4F: Nein:VocabString
    0x78BC6: Nein:Farbe
    0x78BCF: Nein:X-Pos
    0x78BCA: Nein:Y-Pos
    0x78B82: Fensterpos X (Zentral)
    0x78B89: Fensterpos Y (Oberster Punkt)
    0x78B77: Höhe


    Für Informationen zu den verschiedenen Daten und welcher VocabString welche ID hat, schlagt in Post 1747 nach.

  11. #1751
    RPG_RT 2k3 1.08 - Hauptmenü - Beenden

    [Fragefenster]
    0x9FDA0 = Fensterhöhe
    0x9FDA2 set 01 = aufrollen
    0x9FDAB = x-Pos
    0x9FDB2 = y-Pos
    0x9FDCD = Textfarbe
    0x9FDCF set 00 = ausblenden
    0x9FDD1 = Text y-Pos
    0x9FDD6 = Text x-Pos

    [Antwortauswahl]
    0x9FE27 = Fensterhöhe //Error unter [20] //bei [20] nur "Ja" sicht-/wählbar
    0x9FE29 set 01 = aufrollen
    0x9FE32 = x-Pos
    0x9FE39 = y-Pos
    0x9FE53 = Farbe "Ja"
    0x9FE57 = y-Pos "Ja"
    0x9FE5C = x-Pos "Ja"
    0x9FE76 = Farbe "Nein"
    0x9FE7A = y-Pos "Nein"
    0x9FE7F = x-Pos "Nein"

    Geändert von bugmenot (13.06.2013 um 22:32 Uhr)

  12. #1752
    Ihr solltet das vielleicht in einem eigenen Thread machen. Die meisten Leser dieses Threads dürfte das nicht so sehr interessieren (mir fallen mit mir und euch nur 5 ein). Ich bezweifle sowieso dass es wert ist, diese ganzen Sachen rauszusuchen. Wenn einmal wirklich jemand so ein Detail geändert haben will, kann man das immer noch bei Bedarf machen.

    Mods, was denkt ihr? Vielleicht könnt ihr diese ganze Angelegenheit aus diesem Thread rausholen und in einen neuen verschieben. "Der Hardcore-Patch-Thread" oder so, oder "RPG Maker seziert: Speicheradressen und mehr", keine Ahnung ^^

  13. #1753
    Okay, was Interessantes / allgemein Verwertbares:

    Save-Switch (ähnlich dem Patch für den 2k3, setzt einen Switch auf ON, bei Wahl der Menü-Option Speichern (die SaveFileScene wird nicht aufgerufen))

    RPG_RT 2k v 1.07:

    Ab 0x7A041 folgendes eintippen:
    05 00 A1 A4 AB 49 00 8B 00 BA ED 03 00 00 B1 01 E8 2E F2 FE FF 90 90 90
    //0x7A04B = [ED 03] (= 1005)
    ~gibt die Switch-ID an

    Edit:
    Zitat Zitat von Cherry Beitrag anzeigen
    AllowInfiniteMessageLines=4C760F,90E9
    Hier erfolgt bei mir ein jmp ohne irgendwelchen Text auszugeben.

    Zitat Zitat von Cherry Beitrag anzeigen
    4AC773,9090,4AC7AB,9090
    Was wird hier eigentlich gemacht, solange eax < 4 ist?

    Zitat Zitat von Cherry Beitrag anzeigen
    MaxMessageWidthWithFace=4C7FAE,#227
    MaxMessageWidthWithoutFace=4C7FCA,#299
    Nicht 4C7FB2 und 4C7FCE?


    Geändert von bugmenot (22.07.2013 um 18:11 Uhr)

  14. #1754
    Ich möchte mal den ganzen MessageBox-Kram kurz abschließen:

    [RPG_RT 2k (v1.07 ) - Message Cursor]
    0x94DD0 = Farbe der Zahlen bei 'Input Number'
    0x94EBC = Blinke-Cursor Blink-Tempo
    0x94EC4 = Blinke-Cursor Blink-Verhalten

    0x94F03 = y-Pos-Korrektur des Blinkers nach oben
    0x94F13 = x-Pos-Korrektur nach links //erscheint rechts ab [80]

    [RPG_RT 2k3 (v1.08 ) - Message Cursor]
    0xC7A3B = Blinke-Cursor Blink-Tempo
    0xC7A43 = Blinke-Cursor Blink-Verhalten

    0xC7A85 = y-Pos-Korrektur des Blinkers nach oben
    0xC7A95 = x-Pos-Korrektur nach links //erscheint rechts ab [80]

    [RPG_RT 2k (v1.07 ) - Message Skip]
    ~Messages mittels Shift schneller anzeigen, selbst ohne aus dem Maker zu starten (Credit to Cherry's Revolution Patch)
    0x945A9 = [74 10] set [90 90] (aktuelle Zeile zeigen, Skip zur nächsten)
    0x945E9 = [74 10] set [90 90] (wenn Skip-Taste am Zeilenende gedrückt ist: komplette Message zeigen)
    //für den selben Effekt wie im Test Play einfach beide Änderungen vornehmen

    0x5626D = Taste, mit welcher der Message Skip durchgeführt wird
    // [10] = Shift
    [0D] = Enter
    [20] = Space
    [01] = linke Maustaste
    [02] = rechte Maustaste


    [RPG_RT 2k3 (v1.08 ) - Message Skip]
    ~Messages mittels Shift schneller anzeigen, selbst ohne aus dem Maker zu starten (Credit to Cherry's Revolution Patch)
    0xC7042 = [74 10] set [90 90] (aktuelle Zeile zeigen, Skip zur nächsten)
    0xC7088 = [74 10] set [90 90] (wenn Skip-Taste am Zeilenende gedrückt ist: komplette Message zeigen)
    //für den selben Effekt wie im Test Play einfach beide Änderungen vornehmen

    0x6C042 = Taste, mit welcher der Message Skip durchgeführt wird
    // [10] = Shift
    [0D] = Enter
    [20] = Space
    [01] = linke Maustaste
    [02] = rechte Maustaste

  15. #1755
    Gibts ne Möglichkeit / nen Patch, der es mir ermöglicht, dass die Levelanzahl in der Database über 99 hinausgehen kann?

  16. #1756
    Zitat Zitat von TwoFace Beitrag anzeigen
    Levelanzahl in der Database über 99 hinaus
    [RPG_RT 2k (v1.07 ) - Lvl-Cap ändern]
    0x82807 = [8B C3] set [90 90]

    [RPG_RT 2k3 (v1.08 ) - Lvl-Cap ändern]
    0xB64A3 = [8B C3] set [90 90]

    Edit:
    Das Lvl-Cap ist abhängig vom eingestellten max.Lvl in der Data Base und von der Gesamt-Exp, die man bei dem max.Lvl haben muss. Die Exp-Kurve wird aber wie gewohnt zur Berechnung der Exp(next Lvl) genutzt. Liegt jetzt Exp(next Lvl) oberhalb von 999.999 (2k) bzw. 9.999.999 (2k3), dann werden keine Lvl-Ups mehr verarbeitet (für jeden Hero werden nur bis zu 999.999 (bzw. 9.999.999) Exp gespeichert/verwertet). Erst, wenn das neue Lvl-Cap erreicht ist, wird das ----/---- angezeigt (dient nur zum Ausblenden des "Exp / Exp(next Lvl)", weil die Exp weiterhin gezählt werden und die Exp(next Lvl) aus der Erfahrungskurve ausgelesen werden).

    Ein weiteres Problem ist, dass ab Level 51(2k) bzw. 100(2k3) alle Statuswerte auf 0 gesetzt werden, weil die Data Base dann nichts mehr ausspuckt. (selbst wenn da überall 1 steht, sind es wirklich nur 0)



    ...oder ich nehme mal spontan an, du willst das angezeigte Level für etwas anderes nutzen (Erfolge/Prozente/etc)

    [RPG_RT 2k (v1.07 ) - Exp = Level]
    0x827DA = [64] set [68]

    [RPG_RT 2k3 (v1.08 ) - Exp = Level]
    0xB6472 = [F4] set [F8]




    Dies ist eher eine suboptimale Lösung, weil jetzt die "Exp / Exp(next Lvl)" entfernt werden müssen:
    (2k)
    0x774FD = [01] set [00] (----/---- ausblenden)
    0x77550 = [01] set [00] (Exp-Anzeige ausblenden)

    (2k3)
    0x9D548 = [7C 21] set [EB 71] (Exp-Anzeige im Menü entfernen)
    0x9E621 = [01] set [00] (Exp-Anzeige im Statusfenster ausblenden)
    0x9E4A6 = [01] set [00] (Exp-Symbol im Statusfenster ausblenden)
    0x9E5D4 = [01] set [00] (----/---- im Statusfenster ausblenden)


    Edit:
    Zitat Zitat von Quetschi Beitrag anzeigen
    Gibt es eine Möglichkeit mit der man die EXP bis zum nächsten Level bestimmen kann? Also nicht diese Kurven in der Database, sondern dass man das mit einer Variable bestimmen kann.
    Oder eventuell so, dass man die für jedes Level auf 100 setzen kann.
    [RPG_RT 2k (v1.07 ) - Exp-Gerade]
    0x82459 = [DC 4C 24 08] set [90 90 90 90]

    [RPG_RT 2k3 (v1.08 ) - Exp-Gerade]
    0xB6002 = [F7 EA] set [90 90]


    Hiermit werden die benötigten Exp für jedes weitere Level auf die Exp(next Lvl) von Level 2 gesetzt. Bsp: Exp-Kurve anpassen, bis man 100 Exp für Level 2 benötigt = 200 Gesamt-Exp für Level 3, 300 für Level 4, etc.

    Jetzt nur noch die rpg2000.exe im Resource Hacker öffnen:
    in TFORMEDPLAYEREXP
    zu object Groupbox 3
    bei object Slider3
    Max = 40 ändern (zB. auf 990)
    bei object DialEdit3
    MaxValue = 40 ändern (zB. auf 990)
    Compile Script
    Speichern
    Fertig.

    Geändert von bugmenot (01.07.2013 um 11:49 Uhr)

  17. #1757
    Danke, aber gibts für sowas auch ne Art Direktpatch? An Hexhack hab ich mich bisher noch nicht wirklich rangetraut, mangels Ahnung von der Materie.

  18. #1758
    Ja, die Quickpatches für die neue DynRPG-Loader-Version die es irgendwo im DynRPG-Thread gibt. Die RPG2003.exe-Modifikation gäbe es auch als UIMod-Datei für den RM2k9 Ultimate:

    Code:
    [FormEDPlayerEXP]
    Slider3.MaxValue=990
    DialEdit3.MaxValue=990

  19. #1759
    Nennt mich paranoid, aber Level hochsetzen ist 'ne Sache die würde ich machen wenn ich ein eigenes System hätte und mich würd nur die Zahl im Ladebildschirm interessieren, ich kann mir aber schwer vorstellen, dass in einem Spiel, dass die Standardsysteme benutzt alles fehlerfrei weiterläuft wenn man da lustig an den Levelgrenzen rumhackt.

  20. #1760
    Zitat Zitat von Corti Beitrag anzeigen
    [...]und mich würd nur die Zahl im Ladebildschirm interessieren
    So ist es. Genau aus diesem Grund will ichs.

Berechtigungen

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