Ergebnis 1 bis 20 von 506

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

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Muss ich wohl mal testen.

    Bugmenot, ist dir der SkillWindowDuration-Fix bekannt?

    Im ersten DynRPG hatte die Cherry die Anzeigedauer dieses "Monster nutzt X skill" -Fensters erhöht. Das hat nahezu jede Form eines intelligenten Kampfsystems ruiniert, weil die Eventverarbeitung dadurch korrumpiert wurde. Es gab dafür einen Fix. also für 0.17. In 0.20 funktioniert der nicht mehr, weil es dort eine "bessere" Version gab, wenn ich mich recht entsinne. Besser war aber immer noch Mist, weshalb ich meine Plugins allesamt für 0.17 mache und 0.20 ignoriere.

    Hier ist das Ding:
    http://share.cherrytree.at/showfile-...w_duration.ips

    Magst mal schauen, was das tut?

  2. #2
    Zitat Zitat von Corti Beitrag anzeigen
    normal SkillWindowDuration-Fix
    In Dyn0.14 wurden die Delays nach dem Einsatz von Items und den Monsteraktionen DoubleAttack / Defend / Observe / Charge / SelfDestruct / Escape von 40 Frames auf 90 Frames erhöt.
    Der normal_skill_window_duration fix überschreibt das wieder mit 40.
    Dyn0.20 nutzt wieder 40 Frames, nimmt diese Zahl aber aus einem call to function her << hier macht der normal_skill_window_duration fix alles kaputt, weil er in die Sprungweite der call-Anweisung schreibt >> dann wird eine falsche Adresse aufgerufen und die Applikation stürzt ab.

    In Dyn0.14 wurde der Delay nach Skills von 30 auf 90 Frames erhöt. SkillWindowDuration macht 30 Frames daraus, Dyn0.20 macht 50 Frames daraus.

    Dies hier sollte in Dyn0.20 wieder 30 Frames (nach einer Skillaktion) daraus machen:
    Zitat Zitat von DynRPG.ini
    [QuickPatches]
    DefaultDelay(SkillAction)=49B9F8,1E,49B9FD,14
    Dass das Abziehen der MP-Kosten und die Verarbeitung des Skills durch das bisschen mehr Wartezeit an anderer Stelle etwas kaputt macht, ist bedauerlich.

    Alternativ kannst du ja das Schließen des Fensters mit dem SkillNamen über
    Code:
        ( *reinterpret_cast<char *> (0x49BA08)) = 0xEB;
        ( *reinterpret_cast<char *> (0x49BA09)) = 0x06;
    ausknipsen und an anderer Stelle mit einem eigenen Fix selber durchführen über:
    Code:
            int eax = ( *reinterpret_cast<int ***> (0x4CDD38) )[0][16];   //window pointer = ActionMessageWindow
            asm volatile("call *%%esi"
                         :
                         : "S" (0x4C66E4), "a" (eax)
                         : "cc", "memory");
            //terminate Window (specified by window pointer)

    Geändert von bugmenot (15.03.2015 um 15:31 Uhr)

  3. #3
    Wo ich das gerade mit den MP lese, im 2k3 KS wird ja keine MP Heilung/Schaden angezeigt. Könnte man das auch anzeigen lassen? Vielleicht in einer andersfarbigen Zahl als Grün (HP Heilung) bzw. dem standard Blau (Hp Schaden) - oder was auch immer für eine Farbe aus der Textbox genommen wird.

  4. #4

  5. #5

  6. #6
    Zitat Zitat von bugmenot Beitrag anzeigen
    [QuickPatches]
    DefaultDelay(SkillAction)=49B9F8,1E,49B9FD,14
    hex 1E = 30
    hex 14 = 20

    Ich sehe wo die Framezahl sitzt, was ist der andere Wert?

  7. #7
    Zitat Zitat von Corti Beitrag anzeigen
    Ich sehe wo die Framezahl sitzt, was ist der andere Wert?
    Framezahl (wenn man eine Taste gedrückt hält, welche als "Enter" belegt wurde).



    Attribute/Condition Resistance Control
    download ResistControlBug-in








    Und nochmal alle pseudo-Callbacks bisher:
    download ExtBug-in.cpp

    Geändert von bugmenot (20.03.2015 um 15:32 Uhr)

  8. #8
    Das Attribute/Condition Resistance Control-Ding, kann das irgend etwas, dass man mit DynRPG v0.30 noch nicht machen kann?

  9. #9
    Zitat Zitat von Corti Beitrag anzeigen
    Das Attribute/Condition Resistance Control-Ding, kann das irgend etwas, dass man mit DynRPG v0.30 noch nicht machen kann?
    Kopfschmerzen ersparen.
    Du müsstest dir die default-Werte irgendwo abspeichern, dann die richtige Sequenz herausfinden, wer/was angegriffen wird, unter RPG:: Attribute oder RPG:: Condition die entsprechenden Werte abändern und wieder die default-Werte wiederherstellen bevor jemand anderes angegriffen wird. Vorallem muss man dann nicht noch extra herausfinden ob A, B, C, D oder E gilt mit Equipment und JobClasses.

    Ansonsten kann man auch mit der Ext.dll als Grundlage entsprechende pseudo-Callbacks nutzen. Dann erspart man sich dieses "Wiederherstellen des Defaults".


    Und der Spielordner wird nicht zugemüllt, weil die Werte allesamt in die RPG:: Battler eingebunden wurden (liegen im erweiterten DArray<short, 1> RPG:: Battler:: attributes bzw. conditions von einzelnen Helden innerhalb/außerhalb der Party und von einzelnen Monster-Objekten im Kampf). Mir fällt jetzt kein anderer temporärer Speicher ein, kann mich aber gerne eines Besseren belehren lassen.

    Geändert von bugmenot (21.03.2015 um 14:01 Uhr)

  10. #10
    Was ist bei dir ein Pseudo-Callback?

    Könntest du theoretisch neue Callbacks im DynRPG Stil machen? Ich weiss nicht, was Cherry da genau tut, diesen Code habe ich nicht. Ich schätze, er patcht im Makercode gewisse Stellen um auf Funktionen der DynLoader.dll und die ruft diesen Callback dann in den Plugins auf. Haben PepsiOtaku und du den kompletten DynRPG Code, oder bastelt ihr nur mit den Headern rum?

  11. #11
    Zitat Zitat von Corti Beitrag anzeigen
    Was ist bei dir ein Pseudo-Callback?
    Funktionen, die aus einem anderen Callback heraus aufgerufen werden und ähnliche Schnittstellen liefern wie reguläre Callbacks (bei zeitabhängigen Rechenoperationen / Abfragen).

    Ich habe keine Ahnung vom dynloader, kann da also keine zusätzlichen Callbacks anbinden, ohne diesen "schäbigen Adapter" in Form von einem RT-Patch, onSetSwitch callback, RAM-Zugriffen und sub-optimalem C++ Code. "neue Callbacks im DynRPG Stil" könnte ich machen, wenn ich von Programmieren mehr verstehen würde als GCC 4.7.1 sich nicht mit grundlegenden calling conventions auskennt (außer es gab mal eine Reform, dass alle Register bis auf das output-Register auf den stack gepusht werden... dann will ich nichts gesagt haben).

    PepsiOtaku hat meine Dokumentation der ganzen Speicheradressen in besser lesbare Form in die neuen Header gepresst (welche am Ende auch nur zu einem Speicherzugriff kompiliert werden).

  12. #12
    Falls das schon irgendwo im Thread behandelt wird, tut es mir leid!

    Ich habe ein kleines Video erstellt, um ein Problem zu demonstrieren, das ich mit DynRPG habe. Es ist zwar nur eine Kleinigkeit, ein wenig nervig ist es trotzdem.

    https://youtu.be/WePBL0_6-ak

    Ich öffne mein Testprojekt. Es öffnet sich, wird dann minimiert und dann muss ich in der Taskleiste das Projekt wieder anklicken, um es zu öffnen. Das Problem kann nur an DynRPG liegen, denn ohne es, läuft alles einwandfrei und sonst habe ich keinen Patch etc. angewendet. Das Seltsame ist auch, dass es nur hin und wieder vorkommt. Durchschnittlich so bei jedem zweiten Mal öffnen. Hin und wieder auch jedes mal, dann dafür hin und wieder ein paar Mal nicht.

    Gibt es dafür schon eine Lösung bzw. hat das Problem sonst noch jemand?

    Ich habe Windows 7 auf meinem Rechner. Den Haken bei "Programm im Kompatibilitätsmodus ausführen für: Windows XP (Service Pack 3)" setzen hilft leider auch nichts.

    LG Mike

  13. #13
    I added a workaround for that in this plugin:

    http://rpgmaker.net/engines/rm2k3/utilities/61/

    Just throw in the default settings, and you shouldn't see that issue come up again.

  14. #14
    Ich versuch grad das "custom exact speed" Feature für den Hero zu nutzen, hab aber folgendes Problem:
    Der Hero bleibt nicht in der Mitte des Bildes sondern Ruckelt,
    und zwar immer dann wenn der Geschwindigkeitswert keine Zweierpotenz ist.

    Folgendes habe ich getan:
    Ich setz die Geschwindigkeit mit
    RPG::hero->customExactSpeed = parsedData->parameters[0].number;
    (Der Held läuft auch so schnell wie er laufen soll)

    Aaaaaaber: tatsächlich sind seine screen x/y Koordinaten in Bewegung nicht 152/128 sondern Schwanken in der nähe herum.
    Ich hab auch noch versucht mit "setCamera" die Kamera einfach wieder auf den Helden zu setzen,
    allerdings macht dieser Befehl für mich undurchdringbare Dinge. Ich erläuter dass weiter wenn es was zur Sache tut.

    Hat wer 'ne Idee wie man das Fixen könnte? Mach ich irgendwas falsch?

    Edit: Ich hab das mal aufgenommen. Das Problem tritt auch bei geringerer Geschwindigkeit auf, aber auf dem Video sieht man's mit hohem Movespeed besser.
    https://www.youtube.com/watch?v=fImG...ature=youtu.be

    Geändert von Brei (06.07.2015 um 15:56 Uhr)

  15. #15
    hey cherry
    hast du noch ein Fünkchen zeit hier zu lesen?

    Du hast es ja sicherlich schon mitbekommen, hast dich aber noch nicht dazu im Forum geäußert?
    http://forums.rpgmakerweb.com/index....03-patch-eula/

    Hab es jetzt nur überflogen aber das ist doch jetzt die Erlaubnis, den gekaufen RPG Maker 2003 mit DynRPG zu patchen? (Was ja vermutlich noch nicht geht, weshalb ich hier jetzt Frage, ob du da schon an einem Patch arbeitest?) Vielleicht arbeitest du ja im Moment auch an einem offiziellen Patch für kaufbare 2k3 Plugins oder sonstiges, in dem Fall würde ich mich freuen, wenn du die Frage in Klammern beantwortest ^^y falls du da noch nix sagen darfst/kannst...

    An alle anderen Dyn'ler... erstmal die Patch-Eula:




    Leider verstehe ich den Unterschied zwischen Puntk 5 und 6 nicht so richtig? Heißt doch eigentlich, dass jeder der einen Patch erstellt, diesen als Eigentum von Enterbrain deklarieren muss und dass kein Geld für Patches verlangt werden darf? ^^

Berechtigungen

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