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
    Hm, wie greifst du jetzt drauf zu? Wie gesagt, Index 0 wird nie gehen.

  2. #2
    Mit 'ner eins ;-)

    Code:
    RPG::Event *ev = RPG::map->events[1];
    
    if(ev->doesEventPageExist(1))
    {
        CortiHelper::ShowInfoBox(1,"Event Page Exists");
    }
    Zitat Zitat
    Access violation in module "CortiSysRTP2k13,dll" in with address 68702079 and offset 00000004 of type Read occurred.

  3. #3
    Schick mir doch einfach mal die DLL, dann kann ich sehen was an Adresse 68702079 ist.

  4. #4
    Ich hab ein kleines Problem, arbeite seit ein paar Tagen mit dem DynRPG und nun wollte ich ein kleines Plugin schreiben!
    Der Held soll bei jedem "normalen" Angriff und Abwehr-Befehl eine kleine Menge seiner MP wiederherstellen (Ich weiß das würde wahrscheinlich auch ohne DynRPG gehen, aber egal...^^)!
    Der Abwehr-Befehl regeneriert auch die MP, aber leider der "normale" Angriff nicht... :>!
    Hab erst gedacht es läge vll an der onDoBattlerAction-Methode, aber auch mit der onBattlerActionDone-Methode funktioniert es nicht >,>.

    Hier ist mal der Code:

    Code:
    bool onDoBattlerAction ( RPG::Battler * battler) {
        // MP Aufladen bei einem Angriff
        if (battler->action->basicActionId  == RPG::BA_ATTACK ) {
            battler->mp += 10;
        }
        // MP Aufladen bei Abwehr
        if (battler->action->basicActionId  == RPG::BA_DEFEND) {
            battler->mp += 10;
        }
        return true;
    }

  5. #5
    Erstmal:
    Sowohl onBattlerAction als auch onBattlerActionDone werden pro Charakter mehrfach in Folge ausgelöst. Wenn du eine Handlung genau ein mal abfragen willst, dann solltest du dies in onBattlerActionDone mit success == true machen.

    Code:
    bool onBattlerActionDone (RPG::Battler *battler, bool success)
    {
        if(success && !battler->isMonster() ) // Bei Helden, nur das eine mal nach dem die Handlung wirklich ausgeführt wurde
        {
            if(battler->action->kind == RPG::AK_BASIC &&
               (battler->action->basicActionId == RPG::BA_ATTACK ||
               battler->action->basicActionId == RPG::BA_DEFEND))
            {
                battler->mp = battler->mp + 10;
            }
        }
        return true;
    }
    Ob BA_ATTACK bei mir funktioniert kann ich derzeit nicht testen, da musste dich gedulden ;-)

  6. #6
    @Corti: onDoBattlerAction sollte eigentlich nicht mehrfach ausgeführt werden... Bist du sicher? Das hat nämlich auch keinen success-Parameter.

  7. #7
    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.

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

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

  10. #10
    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;
    }

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

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


Berechtigungen

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