Seite 13 von 26 ErsteErste ... 39101112131415161723 ... LetzteLetzte
Ergebnis 241 bis 260 von 505

Thema: +++ DynRPG - Das RM2k3-Plugin-SDK +++

  1. #241
    Neuer DynLoader mit Direktpatch-Feature!

    Wird dann auch in die (hoffentlich bald mal kommende ) nächste DynRPG-Version integriert.

    http://share.cherrytree.at/showfile-10117/dynloader.dll << Die dynloader.dll im Projekt hiermit ersetzen.

    Erstens mal ist da auch das Problem mit dem Müll am Ende von Stringparametern von Comments gefixt, und zweitens gibt es jetzt zwei Arten von Direktpatches:

    1) IPS-Dateien
    Ganz simpel: Ihr legt einen Ordner "DynPatches" an und schmeißt da einfach alle IPS-Dateien rein. Die Patches werden dann ohne RPG_RT.exe-Modifikation "on-the-fly" angewendet, d.h. das Entfernen eines Patches ist ganz einfach - nur die Datei wieder löschen (oder die Dateiendung umbenennen)!

    Beispiel für eine sinnvolle Anwendung wäre z.B. BetterAEP als IPS-Datei: http://share.cherrytree.at/showfile-10054/betteraep.ips
    Der PicPointerPatch liegt beispielsweise schon von Haus aus als IPS-Datei vor, da reicht reinkopieren.

    2) "Quick Patches"
    Für ganz kleine Patches ist es fast zu viel verlangt, eine IPS-Datei zu erzeugen, außerdem gibt es ja solche wo der Benutzer einen Wert (z.B. eine Koordinate) selber einstellen können soll. Dazu gibt es Quick Patches. Diese werden in die Section "QuickPatches" in der DynRPG.ini geschrieben und haben folgendes Format:

    BeliebigerName=Adresse,Daten,Adresse,Daten,...

    Die Adresse ist eine hexadezimale VA, die Daten können drei Formen haben:
    a) Hexstring: Eine Aneinanderreihung von Bytes in Hexadezimalschreibweise (Leerzeichen werden ignoriert und können also zur Übersicht verwendet werden). Beispiel: 49E148,EB71 - schreibt die 2 Bytes EB 71 an Adressen 49E148 und 49E149.
    b) Dezimale Zahl mit %-Prefix: Schreibt ein Byte an die angegebene Adresse, die Zahl ist dabei nicht hexadezimal angegeben (negative Zahlen möglich). Beispiel: 49E0BC,%48 - schreibt ein Byte 30 an Adresse 49E0BC.
    c) Dezimale Zahl mit #-Prefix: Schreibt einen 32-Bit-Integer an die angegebene Adresse, die Zahl ist dabei nicht hexadezimal angegeben (negative Zahlen möglich). Beispiel: 49E1F1,#270 - schreibt die 4 Bytes 0E 01 00 00 an Adressen 49E1F1-49E1F4.

    b) und c) sind dafür gedacht dass man leicht selber Werte eintragen kann (also Expertenuser A gibt Ottonormaluser B so eine Patchzeile und User B braucht nur die Zahlen nach % bzw. # seinen Bedürfnissen anpassen ohne irgendwas hexadezimal umrechnen zu müssen, Bytes zu vertauschen oder sonstwas).

    Hier ein Beispiel wie sowas aussehen kann:

    Code:
    [QuickPatches]
    ; Versteckt die EXP im Hauptmenü und im Statusscreen
    VersteckeEXP=49E148,EB71,49F1CA,EB67,49F095,EB21
    ; Setzt die Koordinaten des Titelbildschirmfensters auf 144/56
    VerschiebeTitelbildschirmFenster=490821,#144,490828,#56
    (Hinweis zum Titelfensterbeispiel: Der Maker verwendet da die X-Koordinate für die Mitte des Fensters aber die Y-Koordinate für die obere Kante.)

    mfG Cherry

    PS: Wer Dateioffsets in virtuelle Adressen umrechnen will: Für Offsets 0 - 400 addieren wir 400000, für Offsets 400 - C9200 addieren wir 400C00, für Offsets C9200 - CD400 addieren wir 400E00. Also normalerweise braucht man nur 400C00 zu addieren.

    Geändert von Cherry (12.06.2013 um 13:06 Uhr)

  2. #242
    Exzellent Master Cherry! =D

    Endlich kann ich die nutzlosen »end«-Token am Ende mancher Comment-Befehl rausschmeißen. Vor allem, weil diese dynloader.dll funktioniert - im Gegensatz zu der, die du damals mal gepostest hast. Ich glaube es war bei rmn. Diese hatte bei mir komischerweise nicht funktioniert, aber ich hatte mich dann nicht weiter damit auseinandergesetzt und einfach die »originale« weiter verwendet >.<

    Auf jeden Fall zwei sehr geniale Features, muss ich sagen. Vor allem für Sachen, die sich so mit DynRPG nicht, oder noch nicht realisieren lassen =D

    EDIT:
    Cherry! Es gibt doch Probs mit der neuen dynloader.dll! Sie funktionierte in meinem Testprojekt mit dem ich die ganze Zeit rumgespielt habe perfekt. Als ich dann ein neues angelegt hatte und dort ein - auch mit der neuen dynloader.dll - funktionierendes PlugIn dort reingepackt habe, meldet mir DynRPG, dass die dll nicht geladen werden konnte. Dazu muss ich sagen, dass sich in meinem Testprojekt mehr als ein PlugIn und auch die ganzen Entwicklungsdaten befinden, in dem neu erstellten nicht. Aber wenn ich in das neue die alte dynloader.dll hineinkopiere, startet das PlugIn problemlos. Ich versuche das heute Abend mal genauer zu reproduzieren und geb' dir dann Bescheid.

    EDIT2:
    Das Problem tritt nur auf, wenn ich dieses eine PlugIn einzeln im »DynPlugins«-Ordner habe. Schiebe ich noch ein anderes dazu, dann funktioniert es o.O Mit der alten dynloader.dll funktioniert es sowohl einzeln, als auch mit anderen PlugIns.

    PeAcE
    MorDen

    Geändert von Morden (06.06.2013 um 09:15 Uhr)

  3. #243

  4. #244
    Tagchen,

    gibt es eine Möglichkeit abzufragen ob eine Variable verändert wird? Zb. wenn der Wert der Variable durch "Memorize Position" verändert wird oder durch "Store Event ID"...
    Das selbe gilt für "Change Event Location" wo der Wert nicht verändert sondern drauf zugegriffen wird.

  5. #245
    Du könntest ja einen Switch an machen, während du Änderungen vornimmst und den dann abfangen.

  6. #246
    Das Plugin ist ja nicht nur für mich gedacht...
    Ich kann ja nicht erwarten das die Entwickler nun immer nen Switch aktivieren.

  7. #247
    Zitat Zitat von djeurissen Beitrag anzeigen
    Tagchen,

    gibt es eine Möglichkeit abzufragen ob eine Variable verändert wird? Zb. wenn der Wert der Variable durch "Memorize Position" verändert wird oder durch "Store Event ID"...
    Das selbe gilt für "Change Event Location" wo der Wert nicht verändert sondern drauf zugegriffen wird.
    Du könntest versuchen direkt die jeweiligen Kommandos abzufragen in onEventCommand. Das wäre zwar aufwändig, aber so hättest du die Möglichkeit festzustellen, wann mit einem solchen Befehl auf eine Variable zugegriffen wird.

    PeAcE
    MorDen

  8. #248
    Ja, das weiß ich auch^^...
    Ist halt ziemlich aufwändig, wenn es aber keine anderen weg gibt...

  9. #249
    Geht es dir darum zu wissen, was die Veränderung hervorgerufen hat? Weil wenn es nur wäre dass eine Veränderung einer bestimmten Variable stattfand, dann gibts ja genau dafür onSetVariable.

  10. #250
    Ich habs heute geschafft mein 2k3-KS in einen "geht nicht weiter"-Zustand zu bringen. Das geht in dem man Monster und Helden hat, die quasi zur selben Zeit ihren Zug machen, dazu ist allerdings sehr exaktes Timing notwendig, ist mir bisher auch nur in dem derzeitigen Zustand gelungen. Dabei wird vom Monster die "Monster takes turn"-Eventseite ausgelöst, danach passiert nichts mehr, geht nicht weiter und kommt auch kein Angriff.

    Wenn ich den maximalen Wert für RPG::battleSpeed reduziere ist es immer schwerer möglich den Fehler zu reproduzieren. Während des "geht nicht weiter"-Zustandes kommt der "Cancel"-Sound wenn ich Esc. drücke.

  11. #251
    Blockieren sich die Aktionen irgendwie gegenseitig? Ich bin mir im Moment nicht sicher was da genau abläuft...

  12. #252
    Nachdem ich jetzt ein bischen weiter rumprobiert hab bin ich von der Erkenntnis her trotzdem nicth weiter. Hab noch einn zwei Sachen rausgenommen, die ich in Verdacht hatte, aber es ändert nichts. Wenn Held&Monster gleichzeitig dran sind kommt man in den Zustand. Hab alle Tasten durchprobiert, nur Esc gibt den Cancel-Sound bei den anderen geschieht nichts.

    Frage:
    Ich hab den "AutoBattle Auswahl"-Entfernungspatch drauf. Könnte der im Kampfzyklus was umgeschmissen haben?

    Edit:
    Geil, ich hab 'nen Pandora-Bug xD Einmal gefunden geht er NIE WIEDER weg und tritt nun auch quasi dauernd auf. HAHAHA! Verfickte scheisse!

    Geändert von Corti (21.06.2013 um 19:52 Uhr)

  13. #253
    Okey, es scheint als ob der Tod des Helden auf Partyposition 1 (angenommen gezählt 1 bis 4 ) akut notwendig ist um im Folgezug das Monster zu verwirren O____o

  14. #254
    Gibts da ein Testprojekt?

  15. #255
    Hey Cherry, sagmal in welchen der Patches ist das Entfernen des "Kampf-AutoBattle-Fliehen"-Fensters? Ich hab BetterAep-DynRPG und die volle Packung HyperPatcher3-Patches, keiner davon hat vom Namen her mit Autobattle zu tun.

  16. #256
    Hallo zusammen,

    denke gerade ein wenig auf den Möglichkeiten rum, ohne bisher etwas ausprobiert zu haben, und frage mich ob es möglich ist Events einer Map auf eine andere zu verschieben.

    RPG::Map bietet „nur“ den Zugriff auf die aktuelle Map. Gibt es eine Möglichkeit, hier mit dem Name der Map auch auf andere zuzugreifen?

    RPG::Map::events bietet Zugriff auf ein beliebiges Event der aktuellen Map. Mit der Kombination „Zugriff auf die Map per Name“ könnte der Zugriff auf alle Events des Spiels möglich sein. Wenn wir davon ausgehen, dass dies gehen kann, könnte dann ein Event einer beliebigen Map auf eine andere kopiert/verschoben werden?

    Oder anders herum gedacht: Kann ein Event der aktuellen Map kopiert werden?

  17. #257
    Du kannst dir maximal die Events zwischenspeichern, und wenn eine neue Map geladen wird, das Event dort platzieren. Andere Möglichkeit sehe ich dabei nicht, weil der Maker immer nur eine Map gleichzeitig im Speicher behält.

  18. #258
    Zitat Zitat von anti-freak Beitrag anzeigen
    Du kannst dir maximal die Events zwischenspeichern, und wenn eine neue Map geladen wird, das Event dort platzieren. Andere Möglichkeit sehe ich dabei nicht, weil der Maker immer nur eine Map gleichzeitig im Speicher behält.
    Das hört sich auch gut an. Ein "Durchschleifen" der Events von einer Map zur anderen sollte ja nich allzu Rechenintensiv sein.
    Danke für den Zaunpfahlwink. Da probiere ich mal rum

  19. #259
    @Corti: Dafür gibts extra den NoAutoBattle-Patch Ist aber auch ein HP2-Patch.

  20. #260
    @Cherry: Danke für den Hinweis. Bin noch immer auf der Suche nach der Ursache meines Bugs. Zwischenzeitlich habe ich herausgefunden, dass der Maker selbst einen Zugriffsfehler schmeissen kann wenn man unter (bisher nicht ausreichend definierten ) Umständen die Anzahl der Helden in der Party verringert.

    EDIT:
    Hrm, wenn ich den Helden auf Position 0 sterben lasse, ihn dann aus der Party entferne und gleich wieder zufüge( also nach hinten sortiere ) löst das mein Problem scheinbar.

    Geändert von Corti (27.06.2013 um 16:32 Uhr)

Berechtigungen

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