Seite 1 von 2 12 LetzteLetzte
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
    welche variablen meinst du? die vom maker, oder die deines plugins?

  2. #2
    Die vom Maker. Mit 32bit ints in C++ komm ich schon zurande, keine Sorge.
    Der Pluginnutzer sollte halt bestenfalls mit Makercode rechnen können. Das bleibt dann auch flexibler, spart Code und Abfragen im Plugin.
    Es ist ja so, dass man problemlos Variablen monströse Werte geben kann, bloß der kann halt damit nicht rechnen.

  3. #3
    Die Beschränkung die von "<> Change Variable" erzeugt wird, lässt sich hiermit aufheben (in onStartup verwenden).

    Code:
    *reinterpret_cast<unsigned char *>(0x4AD36F) = 0xEB;
    *reinterpret_cast<unsigned char *>(0x4AD399) = 0xEB;
    (Achtung Hack! )

  4. #4
    Ich habs auch mal ausprobiert.

    Schonmal sehr gut die bis zu 2000 bilder!

    Aber da die wenigsten c++ können, wäre es möglich nicht eher eine hohe sprache als interpreter zu benutzen, etwa wie die neueren rpg maker versionen selbst ruby oder halt phyton, javascript. Vllt wäre dann der einstieg nicht so schwer.

    Aber ansonsten daumen hoch für das tolle projekt!

  5. #5
    Ich habe mir einige Gedanken gemacht und dadurch neue Ideen bekommen, die in Plugins verwirklicht werden könnten.
    Da ich selbst die Programmiersprache nicht beherrsche, schreibe ich diese Ideen hier nieder, damit andere damit vielleicht etwas anzufangen wissen!

    - Eventjump Plugin: Man kann die Sprunghöhe bestimmen und eingeben, sodass das Event z.B. 5Tiles hoch und 1 Tile weiter springt und die Bewegung beim Sprung einen perfekt an Höhe + Weite des Sprungs einen perfekt angepassten Bogen beschreibt - als Ergänzung dazu wäre es eine schöne Sache, wenn außerdem ein Schatten unter dem Event auftaucht ,bei steigender Höhe transparenter wird und bei Bodennäherung des Events wieder an Transparenz verliert(also dunkler wird).

    -Event with Pictureoperations-Plugin-> das es möglich machen soll, die gleichen Operationen, die bei Pictures möglich sind auch bei Events zu benutzen (sprich: wabern, rotieren, Transparenz-,Farbe ändern...)

    -Diagonal random move event: Die Möglichkeit bei der Zufallsbewegung auch die Diagonalrichtungen standartmäßig mit zu benutzen.

    -tracking face direction plugin: Ein Event kann ein anderes Event fixieren und dreht sich automatisch zur Richtung, in welcher sich das andere Ereignis/Der Held gerade befindet.

    -event-event follow/away movement plugin: Plugin mit der Möglichkeit, dass Events die "Move toward" und "Move away" Funktion auch auf andere Events statt auf den Helden beziehen können.

    -Pixelmovement Plugin: Okay, das hat Cherry bereits geschrieben-> aber das könnte (wenn erstellt) auch damit erweitert werden, das man die Standartzahl bei jedem Event festlegen kann, mit der es sich Pixelgenau von der Stelle bewegen soll (Bsp.: Ein Event, welches bei jedem Schritt 1/2/3/4...Pixel herumläuft).

    -Event formed shadow plugin->welches die Sillouette eines Events (Bsp. Eines Vogels) nimmt und optional bestimmbar 1 bis X Tiles nach unten versetzt, wobei der Schatten bei Frameänderung (Bsp.Vogel:Flügelschlagen)
    sich ebenfalls genau angepasst mitverändert.

    -Shadow and light source plugin: Welches die Sillouette eines Event nimmt und vom jeweiligen Event in die entgegengesetzte Richtung (Gradzahl) der festgelegten Lichtquelle wirft +optional erweiterbar mit mehreren Lichtquellen und manueller Transparenzbestimmung der geworfenen Schatten.

    Geändert von Oktorok3 (28.02.2012 um 16:12 Uhr)

  6. #6
    tut sich hier nochmal was?^^

  7. #7
    Im Grunde genommen warte ich nur darauf, dass die nächste Version rauskommt, wo die im Pathfinding-Thread genannten Bugs behoben sind.

    Wobei ein Plugin für Alpha-Channel oder (Achtung - Luftschlösser) gleich 32bit-Grafiken schon verdammt nice wäre... xD

  8. #8
    Zitat Zitat von BDraw Beitrag anzeigen
    Im Grunde genommen warte ich nur darauf, dass die nächste Version rauskommt, wo die im Pathfinding-Thread genannten Bugs behoben sind.
    dito^^

  9. #9
    Was mich im Moment am meisten Favoritisieren würde, ist ein Plugin, das verschiede Blendmodi für Pictures zulässt. Ein Traum für jeden Licht- oder Schatteneffekt...

  10. #10
    Hier ist noch eine Idee, die wahrscheinlich auch extrem einfach umzusetzen wäre:

    Autosave.

  11. #11
    Ich weiß nicht, ob es evtl schon geschrieben wurde.
    Wie wäre es mit einem Skript,welches einem erlaubt die Standards relativ leicht anzupassen?

    Sowas wie:
    KS Spiegeln
    KS ATB--->CTB (+leiste evtl)
    Normales Menü verändern.
    SaveMenü ändern
    Kaufskripte ändern usw?

    Was wäre noch mit Farbtiefe? Kriegt man vllt mehr als 8 bit hin?

    LG
    MajinSonic

  12. #12
    RTP Contest um...mal schaun womit ich mich dann beschäftige...

  13. #13
    Mich hat gerade wer gefragt um eine Idee wie man Messageboxen custom zeichnen könnte.

    Ich dachte irgendwie nicht dran, dass diese Person gar kein Plugin-Developer ist, drum brachte es letztenendes nichts. Aber vielleicht bringts ja hier wem was.

    Hier ist Code (den ich allerdings nicht getestet habe), mit dem man in der Lage sein sollte, das zu erreichen:

    Code:
    bool onStartup(char *pluginName) {
        // Set up hook
        void *trampoline;
        asm volatile("movl $_drawMessageBoxTrampoline, %%eax" : "=a" (trampoline));
        *reinterpret_cast<void **>(0x4C60DC) = trampoline;
    }
    
    // This can be used to trigger the original drawing function
    void originalDrawMessageBox(RPG::WindowMessage *box) {
        asm volatile("call *%%esi" : : "S" (0x4C8488), "a" (box) : "edx", "ecx", "cc", "memory");
    }
    
    // Some more stuff for the hook
    void drawMessageBox(RPG::WindowMessage* box);
    extern "C" {
        void __stdcall drawMessageBoxTrampoline2(RPG::WindowMessage *box) {
            drawMessageBox(box);
        }
    }
    asm volatile("_drawMessageBoxTrampoline:; pushl %eax; jmp *$_drawMessageBoxTrampoline2@4");
    
    // Here is your drawing callback!
    void drawMessageBox(RPG::WindowMessage* box) {
        // Here you can draw the box yourself, based on the information available in the box object!
        // Or, to call the original drawing function, use originalDrawMessageBox(box);
    }
    Braucht PepsiOtakus Version von DynRPG (0.32 oder so): http://www.rewking.com/dynrpg/

    RPG::WindowMessage ist hier dokumentiert: http://www.rewking.com/dynrpg/class_...w_message.html

    Geändert von Cherry (10.08.2022 um 11:29 Uhr)

  14. #14
    Lebt hier noch wer und kann mir sagen obs irgendwie machbar ist im Kampf anzeigen zu lassen ob ein Gegner einem Angriff ausgewichen oder dagegen Immun war (Zustandsveränderungen)? Der 2k3 hat ja nur noch eine Evade Message für alles - was halt gerade bei Zuständen extrem nervig ist wenn da nur steht "Miss" aber man nicht weiß ob der jetzt ausgewichen ist oder der Zustand einfach nur 0% Chance auf Erfolg hat.

  15. #15
    Is there still someone who creates plugins for dynrpg?

  16. #16
    Probably more at rpgmaker.net than here...

  17. #17
    Ich hab was gebastelt mit dem man in einem Plugin auf das Zeichnen von Text reagieren kann und auch darauf Einfluss nehmen.

    https://gist.github.com/CherryDT/760...69c05000955f5c

  18. #18
    Hui, hier ist ja schon eine ganze Weile nichts mehr gepostet worden, aber ich versuche es trotzdem mal, hehe.

    Ich habe ein Plugin erstellt, mit dem es möglich ist, dass Actors eine spezielle "Low HP/Weak"-Pose anstelle der normalen Idle-Pose verwenden, sobald ihre HP unter 33% fallen.

    Code:
    #include <DynRPG/DynRPG.h>
    
    // ID des Weak-Status (Conditions-Tab)
    static const int WEAK_STATE_ID = 12;
    
    bool onBattlerActionDone(RPG::Battler *battler, bool success) {
        // nur bei echtem Abschluss (success==true)
        if(!success)
            return true;  // weiteren Plugins nichts im Weg stehen
    
        // nur Actors behandeln
        if(!battler->isMonster()) {                                        // isMonster(): true=Monster
            // HP-Prozent berechnen
            int currentHP = battler->hp;                                   // aktuelles HP-Feld
            int maxHP     = battler->getMaxHp();                           // Max-HP via Member-Funktion
            double pct    = (double)currentHP / maxHP * 100.0;
    
            // 1) <= 33 % HP -> Weak-Status hinzufügen
            if(pct <= 33.0 && battler->conditions[WEAK_STATE_ID] == 0) {
                battler->conditions[WEAK_STATE_ID] = 1;                    // Zustand aktivieren
                RPG::updateBattle();
            }
            // 2) > 33 % HP -> Weak-Status entfernen
            else if(pct > 33.0 && battler->conditions[WEAK_STATE_ID] > 0) {
                battler->conditions[WEAK_STATE_ID] = 0;                    // Zustand deaktivieren
                RPG::updateBattle();
            }
        }
        return true;  // Callback-Kette nicht unterbrechen
    }
    @Cherry Der eigentliche Grund, warum ich hier bin: Ich würde gerne eine Pose für das Ausweichen (Evasion) und eine für das Blocken (Guarding) einbauen. Konkret möchte ich, dass während ein Actor im Guarding-Modus ist, eine andere Pose angezeigt wird als die normale Damage-Pose. Beispiel: Actor hält ein Schild. Gibt es eine Möglichkeit, abzufragen, ob sich ein Actor gerade im Guarding-Modus befindet? Und wie könnte man das mit dem Ausweichen handhaben? Ich vermute, Letzteres ist ohne ASM-Hacks an der RPG_RT.exe wahrscheinlich nicht wirklich umsetzbar, aber ich würde mich trotzdem über Input oder Ideen freuen!

    Geändert von budbud (08.05.2025 um 22:04 Uhr)

  19. #19
    Ich habe ein Problem mit dem DBActor bzw. Actor Catalogs.

    Wenn ich folgendes mache:

    Code:
     int heroID = parsedData->parameters[0].number;
    RPG::Actor* actor = Actor::partyMember(heroID);
    RPG:DBActor* dbActor = dbActors[actor->id]; // Fehler hier

    bekomme ich den Compilerfehler
    Code:
    Error: operand type mismatch for `call'
    der SubScript Operator hat inline asm code , was wohl diesen Fehler wirft,
    hat jemand eine Idee wie man das lösen kann?

  20. #20
    Die Downloadseite ist jetzt mit v0.20 aktualisiert.

    Außerdem ist DynRPG jetzt Open Source! https://github.com/CherryDT/DynRPG

Berechtigungen

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