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
    Grad getested:

    Helden (BA_DEFEND):
    • onDo 1x
    • onDone 1x

    Monster (AK_SKILL):
    • onDo 11x
    • onDone 12x (davon 1 mal success)

    Immer abwechselnd onDo onDone(!success) ~ 11 mal in Folge, dann passiert die Handlung dann nach ner halben Sekunde kommt "onDone" mit Success.

  2. #2
    Interessante Eigenheit des Makers, ich dachte bisher dass nur onDone mehrmals kommt. Muss ich mal anschauen und berücksichtigen...

  3. #3
    Tja, man lernt nie aus. Btw. hattest du schon Zeit dir meinen Speicherzugriffsfehler anzusehen?

  4. #4
    Oje, ich hab noch nichtmal in die PM geschaut und so die liebe Geburtstagsüberraschung versäumt...!!

    Naja, zum Problem:

    1) Du überprüfst nicht ob ev != NULL, dadurch crashst du natürlich sofort weil im Titelscreen kein Event #1 vorhanden ist.
    2) doesEventPageExist funktioniert nicht weil ich einen Fehler gemacht habe.

    Du kannst derweil diese gefixte Version von doesEventPageExist verwenden:

    Code:
    bool doesEventPageExist(RPG::Event *event, int id) {
    		void **script;
    		asm volatile("call *%%esi" : "=a" (script), "=d" (RPG::_edx) : "S" (0x47A0D0), "a" ((**reinterpret_cast<void ****>(0x4CDD14))[15]), "d" (event->id) : "ecx", "cc", "memory");
    		NamedCatalogPtr<void *> pages;
    		pages.ptr = reinterpret_cast<NamedCatalog<void *> *>(script[5]);
    		return pages[id] != NULL;
    }

  5. #5
    Geil, dankeschööön =D

  6. #6
    @Corti MP wird immernoch nicht regeniert bei einem Angriff und wenn ich nun Abwehr ausführe crasht mir das Spiel XD


  7. #7
    Welche GCC-Version hast du?

  8. #8
    Uhm 4.6.1
    das spielt crasht auch nur wenn ich isMonster() abfrage :>

    Geändert von Tokio (13.02.2013 um 19:17 Uhr)

  9. #9
    Kann ich die DLL mal haben? isMonster kann nämlich eigentlich gar nicht crashen (außer "battler" wäre ein ungültiger Pointer), schon gar nicht mit Adresse 0x00000001, weil es nämlich nur den (nicht in der Dokumentation verzeichneten) ersten Member von jeder Makerklasse, nämlich vTable, mit einem Wert vergleicht.

    Wen es interessiert:
    Code:
    	bool Battler::isMonster() {
    		return vTable == reinterpret_cast<void **>(0x4BD35C);
    	}

  10. #10
    Habe die DLL per PM erhalten.

    Es sieht eigentlich so aus als würde der Compiler davon ausgehen dass die Klassenmethoden thiscall (die MS Visual C++ Variante) als Calling Convention verwenden, sie verwenden aber cdecl mit this als erstem Parameter. Dadurch geht das ganze schief. Daher wurdert es mich gerade sehr dass das Problem bei 4.6.1 auftritt (bist du sicher dass du diese Version hast, und nicht etwa Code::Blocks seinen eigenen GCC verwendet? Überprüfe die Pfadeinstellungen mal.), weil das nämlich erst in GCC 4.7.x geändert wurde.

    Du könntest versuchen in den Projekteinstellungen einzustellen dass dem GCC der Parameter -mabi=sysv mitgegeben wird.

  11. #11
    Ich habe bei meinem Projekt jetzt DynRPG und das verwendbare TastaturMausPlugin angewendet. Die Maus funktioniert auch wunderbar. Es gibt nur zwei Probleme:
    1. Die Maus hat keine Begrenzung am Bildrand sondern geht auch ins Leere hinaus. Im Fenstermodus gibt es nirgends eine Begrenzung (ich kann in alle Richtungen darüber hinaus) und im Vollbildmodus kann ich rechts und unten so weit ich will fahren. Gibt es dafür eine Lösung?
    2. Hin und wieder (bei ca. einem von fünf Spielstarts) öffnet sich das Spiel und minimiert sich wieder in die Taskleiste. Dann muss ich auf das Icon unten klicken und dann läuft das Spiel normal. Das passiert im Test-Modus des Makers wie auch wenn ich das Spiel vom Spielordner aus starte. Gibt es dafür eine Erklärung?

    Achja: Das Problem mit der Startposition des Mauszeigers (rechte untere Ecke), das ich auch schon bei Inelukis Mauspatch hatte, habe ich auch mit dem Plugin. Kann ich die Startposition irgendwie mit der .ini-Datei beeinflussen?

    LG Mike

  12. #12
    Ich habe folgendes Codestück aus Kaze's Picture Blend Plugin.
    Code:
        bool onEventCommand(RPG::EventScriptLine *scriptLine, RPG::EventScriptData *scriptData, int eventId, int pageId, int lineId, int *nextLineId)
        {
    
            if(scriptLine->command == RPG::EVCMD_ERASE_PICTURE)
            {
    
    
    [...]
    Verwendung der Parameter aus dem Callback führt zu einem EInfrieren der RPG_RT.exe wenn das auslösende EventCommand ein ErasePicture Befehl ist, der per PicturePointer Patch abgeändert wurde soweit ich das feststellen kann.

Berechtigungen

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