Ergebnis 1 bis 20 von 2334

Thema: Programmwunsch und -erstellungsthread #2

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Zitat Zitat von MarcL Beitrag anzeigen
    Code sagen mir leider nix T^T
    Wenn DynRPG die Möglichkeit bietet das Ziel eines angewendeten Skills in eine Variable zu schreiben, dann kann man damit (muss nur noch in einen vernünftigen Patch/Plugin) Gegnerdaten direkt aus der Database auslesen. (zB. für einen Analyse-Skill, welcher max.HP/max.MP, Statuswerte, etc. in Variablen schreibt, die man in einer Message wieder ausgeben kann)
    Problem bei deinem Stehlen-Skill ist ersteinmal, dass vermerkt werden muss, dass der Gegner schon erfolgreich bestohlen wurde. (nebenbei: Crit% lässt sich ganz gut für Stehl-Erfolg% missbrauchen wenn man die Crit_Flag in der Database ausstellt)
    Edit:
    Und vielleicht noch im Feld für gedropptes Geld die Item_ID des zu stehlenden Items schreiben (damit man dies einfach in der Database von Hand verwalten kann), die Abrechnung des gedroppten Geldes im BattleWon entfernen, weil: warum tragen die erlegten Wölfe Gold und einen magischen Feuerring bei sich?
    ...oder im Feld für gedropptes Geld die Item_ID eines zweiten möglichen Monsterdrops (seltenerer Drop) und die entsprechenden % in die Crit% schreiben...

    P.S.
    Ja, ich suche noch weiter nach Enemy_Battler-Daten (aktuelle HP/MP, Resistenzen, etc.).

    Geändert von bugmenot (15.08.2013 um 12:23 Uhr)

  2. #2
    Hey :-) In DynRPG kann man direkt im Speicher lesen und schreiben.

    So macht Cherry das: (Beispiele)
    Lesen:
    Zitat Zitat
    int variable = (**(int ***)(0x4CDE54));
    Schreiben:
    Code:
    *reinterpret_cast<unsigned short *>(0x4C7C88) = 0x9090;
    Zitat Zitat von Umrechnen by 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.
    Da die Adressen da mit 4 anfangen und 6-stellig sind nehm ich mal an es sind virtuelle Adressen.
    Handelt es sich dabei um Monster in der Datenbank oder Monster im Kampfsystem?

    So greift Chery auf die Monster im Kampf zu:
    Code:
    static RPG::CatalogPtr<RPG::Monster *> &monsters = (**reinterpret_cast<RPG::CatalogPtr<RPG::Monster *> **>(0x4CDE64));

  3. #3
    Zitat Zitat von Corti Beitrag anzeigen
    Handelt es sich dabei um Monster in der Datenbank oder Monster im Kampfsystem?
    Datenbank. Ich schaue mir mal 004CDE64 (0xCD264) an.
    Edit: Ich gehe mal davon aus, das ist Teil der durch DynRPG gepatchten RPG_RT?

    Könntest du mir auch den Offset für RPG:: Action verraten? (zwecks Skill_ID des eingesetzten Skills und dessen Ziel)

    Wie regelt DynRPG eigentlich function calls von außerhalb? Und wird Assembler-Roh-Code in einem Plugin ausreichen?

    Geändert von bugmenot (15.08.2013 um 14:10 Uhr)

  4. #4
    Das übersteigt mein Wissen.

  5. #5
    @bugmenot: Nein, das ist die ganz normale VA für Monster im Kampf, nichts gepatcht. In der Datei steht da natürlich nichts, weil die Objekte ja erst zur Laufzeit erzeugt werden...

    Du könntest dir ja einfach DynRPG holen und damit rumspielen. Sollte viele Fragen beantworten.

  6. #6
    @Corti Soll man die Resistenzen auch zur Laufzeit in der Datenbank ändern können oder nur die der aktiven Battler?
    Wenn ja:
    @Cherry Hat man von der RPG_RT aus Schreibrechte auf eine Datenbank, aus der die RPG_RT im Kampf möglicherweise noch ausliest?

    Ansonsten ein kleines Update:
    Zitat Zitat von bugmenot Beitrag anzeigen
    *GetEnemyData_structure:
    Und etwas Kram: (RPG_RT 2k v1.07 )

    sub_47413C <>DrawBattleScene
    sub_47F476 <>CreateEnemyBatller





    Geändert von bugmenot (16.08.2013 um 12:38 Uhr)

  7. #7
    Die Datenbank wird in Objekte geladen, die natürlich beschreibbar sind, aber das Beschreiben zur Laufzeit ist nicht vorgesehen, deshalb muss man sich dann auch selber drum kümmern dass die Änderungen beim Spiel speichern/laden mit gespeichert/geladen werden und bei New Game zurückgesetzt.

    Alle Klassen im Maker die mit TLcfg beginnen (Hinweis: Ich rede hier von den internen Delphi-Klassen, nicht DynRPG's Klassen - denen habe ich andere Namen gegeben), sind dafür gedacht, während des Spiels geändert zu werden und dann auch mitgespeichert zu werden. Die ohne "g" nicht. (Zur Erklärung: TLcfWindow z.B. wird zwar im Spiel natürlich beschrieben, aber nie mitgespeichert, daher hat es kein "g".)

  8. #8
    Gibt es Software zur Einsicht der Daten in diesen Objekten / anderen temporär beschriebenen Datenbereichen? Das bisschen Diagnose-Code was ich geschrieben habe, welches Register-Inhalte ausspuckt hilft bei dynamisch erstellten Querverweisen nur absolut garnicht. (Immerhin hat das Diagnose-Ding beim Mappen der SkillData geholfen...)

    Ansonsten hier noch Krimskrams datenflussaufwärts der [Attack]Funktion (alle Adressen gelten für RPG_RT 2k v1.07 ):

    472BB4 <> WriteBattleMessage







    4756E0 <>Do Self-Destruct
    475868 <>RemoveEnemyBattler(?)
    475904 <>DoAutoBattle

    Und hier noch etwas Patchrelevanz:

    Geändert von bugmenot (19.08.2013 um 16:43 Uhr)

  9. #9
    Ist es möglich die "Quit Game" Option beim standard Menü zu entfernen? Bei rpgmaker net gibt es das Plugin von PepsiOtaku, dass "Quit Game" an einen Switch hängt, aber mehr auch nicht.
    Und ist es auch möglich ein Plugin zu machen, dass das Item Menü per Comment Befehl aufrufen kann?

    Wenn das alles geht, könnte das jemand für mich machen, falls es nicht zu viel Aufwand wäre? Kenn mich in dem Berreich nicht wirklich aus.

  10. #10
    Zitat Zitat von Chili Beitrag anzeigen
    "Quit Game" Option beim standard Menü
    Escape-Menü? (Items, Ausrüstung, Skills, etc)
    Einen Switch anzuflippen und wieder auf die Map zurückgeworfen zu werden, wenn man dort Beenden drückt geht in Ordnung oder?

    Geändert von bugmenot (20.08.2013 um 17:10 Uhr)

  11. #11
    Zitat Zitat von bugmenot Beitrag anzeigen
    Escape-Menü? (Items, Ausrüstung, Skills, etc)
    Einen Switch anzuflippen und wieder auf die Map zurückgeworfen zu werden, wenn man dort Beenden drückt geht in Ordnung oder?
    Beim 2k3 Maker gibt es unter dem Reiter "System 2" die Auswahl, welche Menüpunkte man anwählbar machen will und in welcher Reihenfolge diese erscheinen. "Quit Game" ist dabei fest verankert und wird immer als Option im standard Menü angezeigt. Ich möchte "Quit Game" aus der Auswahl komplett tilgen. Mit dem Plugin von PepsiOtaku könnte ich den Punkt zwar nutzlos machen, aber er wäre immernoch da und das ist keine wirklich schöne Lösung.
    Des Weiteren möchte ich das Item Menü, so wie bei dem Event Befehl "Open Save Menu", aufrufbar haben.

  12. #12
    Kannst du nicht Quit auf nen Switch legen und mit dem dann zB das Itemmenü aufrufen?

Berechtigungen

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