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
    In meinem Projekt hab ich komplett andere Attribute, im neuen Projekt nicht. Hab im neuen nichts verändert, da ist alles auf C. Und die Attribut+ Zauber haben auch kein "Element" oder etwas ähnliches.
    Hier mal das frische Projekt mit Beispiel Monstergruppe, da könntet ihr mal kurz reingucken.

    http://share.cherrytree.at/showfile-...tatus_test.rar

    Monstergruppe 91 mit dem Helden "Test" (Position 38) im Testkampf.

  2. #2
    Schräg ^^" Das wusste ich auch bisher nicht.

  3. #3
    Ich hab mal versucht das mit Resistenzen zu lösen (also den Zaubern ein magisches Attribut zu geben und den Wert auf 50% zu setzen). Das funktioniert auch nicht wirklich. xD

    Wert = 3/6
    Ohne Attribut = Erhöht um 6/12
    Mit Attribut was den Effekt auf 50% setze = 2/6

    Ja, das sind 2 und nicht 3. Und wenn ich den Wert von 3 auf 4 setze ist das eine 4... xD
    9 wird übrigens zu einer 8 und 12 wieder zu einer 12. Also liegts wohl an den ungeraden Werten.

    Srsly Maker, pls! D:

  4. #4
    Zitat Zitat von DynRPG.ini
    [QuickPatches]
    DefIntBuffFix=4B743B,9090908B,4B74EB,9090908B
    DEF- und INT-De/Buffs wurden (warum auch immer) ein mal zu oft addiert.


    P.S.
    Der Wert des Buffs wird anhand der Formel für den Skillschaden errechnet:
    bei Atk/Int Influence = 10 und Variance = 0 gilt:
    (EffectRating + [1/2]Str(user) - [1/4]Def(target) + [1/4]Int(user) - [1/8]Int(target)) x AttributeModifier

    bzw. welche Koeffizienten auch immer selbst eingestellt wurden:
    Zitat Zitat von DynRPG.ini
    [QuickPatches]
    SkillDmgRevamp=4C0DE4,#20,4C0DF8,#40,4C0E1A,#40,4C0E2F,#80
    [1/1]EffectRating
    +([1/20]Str(user) - [1/40]Def(target)) x Atk Influence
    +([1/40]Int(user) - [1/80]Int(target)) x Int Influence x Attribute


    Der Stat(De)Buff hat ein Minimum von BaseStat/2 *(-1) und ein Maximum von BaseStat*1, wobei BaseStat = (Wert aus Stat-Kurve in F8-Database) + (Punkte durch alle StatUp-Items) + (Werte von Waffen/Equipment).

    Geändert von bugmenot (12.04.2015 um 13:19 Uhr)

  5. #5
    Danke für den Fix (srsly Maker, wieso?).

    Rein aus Interesse, da es leicht zu fixen ist:
    Ich weiß nicht, ob es ein Übersetzungsproblem ist (also an der englischen version liegt) oder das im japanischen Original auch so ist. Wenn ich einem Zustand sage, dass DEF halbiert/verdoppelt werden soll, dann wird INT halbiert/verdoppelt und umgekehrt.



    Der fix ist natürlich ganz einfach, den Haken im anderen Bereich setzen (wie im Bild). Ist mehr so eine Frage aus Interesse, ob das wirklich nen Fehler im Maker ist. xD

  6. #6
    Da wurde irgendwas falsch verdrahtet / benannt. Die Sachen machen eigentlich das, was sie machen sollen (halt nur falsch benannt + an falscher Position).

    Falls du es trotzdem richtig herum benannt haben willst (dafür bräuchtest du den RM2k9):
    download DBX.ini

    Bzw. einfach das hier in eine bereits existierende uimod (welche auch in der ultimate.ini aufgelistet wurde) reinkopieren:
    [FormEDStatus]
    CheckBox2=Defense
    CheckBox3=Intelligence

    Geändert von bugmenot (12.04.2015 um 14:00 Uhr)

  7. #7
    Gab ja schon einige Patches für das Überschreiben von einigen Menüpunkten mit Switches hier (z.B. Row-ATB oder SROA), was mir aber unangenehm auffällt: Wenn diese Menüpunkte angewählt werden, wird - anders als z.B. beim order_switch Plugin von PepsiOtaku - das Menü zuerst geschlossen und danach wieder geöffnet. Dadurch laufen zumindest in meiner Konfiguration Mapevents weiter, was ziemlich problematisch ist. Könnte man das irgendwie ändern?

    Hatte schon versucht, das order_switch Plugin für das Row Kommando umzuschreiben, bin aber daran gescheitert, keine vernünftige Adresse dafür gefunden zu haben. oder_switch verwendet 0x4A23BC, und der kommentierte Menücode von bugmenot gibt nur Adressen für Item, Skill, Equip, Quit, Status und Order an. Vielleicht hab ich auch was übersehen. )

    EDIT: Nevermind that, hatte vergessen, das Event auf AutoStart zu stellen. Heh. D:

    Geändert von goldenroy (14.04.2015 um 18:26 Uhr)

  8. #8
    Hey Roy!

    Was diese Switch-menüpunkte angeht, habe ich einen Tipp für dich. Aus dem Menü den Punkt anwählen und die Seite per Autostart starten geht noch, aber wenn du dann zurück ins Menü willst, per CallMenu und dann wieder ins Menü gehst, bist du bei Verlassen des Menüs natürlich an der Menüaufruf Stelle im Eventcode, innerhalb des CEs vom ersten Aufruf. Wenn du mehrere Menüpunkte dieser Art hast, kann das unnötig kompliziert werden. Der Kniff ist, das Menü nicht per Esc zu öffnen, sondern per PP die Esc-Taste abzufragen, im Drückfalle ein Autostart zu aktivieren und dort das Menü manuell zu rufen. Gehst du dann per Patch aus dem Menü raus, kannst du direkt danach im Eventcode abfragen, ob und welcher Switch gedrückt ist. In Summe die einfachste Lösung, wie ich festgestellt habe.

  9. #9
    Bugmenot! Ich hätte da mal eine Frage. Monster können sich transformieren. Ist es umfangreich rauszufinden, wie und wo das geschieht? Ich würde gerne in Eventcode den MonsterTyp ändern.

  10. #10
    Code:
    int eax = (int)(RPG::monsters[(ID)-1]); //pointer on RPG::battler //ID = EnemyParty#; possible values for ID = 1..8
    int edx = newID;    //new Monster_ID to transform into
    asm volatile("call *%%esi"
    		:
    		: "S" (0x4BDDD8), "a" (eax), "d" (edx)
    		: "cc", "memory");
            //transforms Enemy; does not alter the Enemy's ATB value

    Und wegen dem anderen Thread:
    Code:
    int eax = (int)(RPG::monsters[(ID)-1]); //pointer on RPG::battler //ID = EnemyParty#; possible values for ID = 1..8 //for Heroes, use RPG::actors[ID]
    int edx = attID;    //Attribute_ID
    int out = 0;
    asm volatile("call *%%esi"
    		: "=a" (out)
    		: "S" (0x4BFE4C), "a" (eax), "d" (edx)
    		: "cc", "memory");
    RPG::variables[varID] = out;
            //returns current Attribute_Modifier: -1|+0|+1
    Ja, RPG::actors[ID]->attributes liefert
    0 = -1
    1 = +0
    2 = +1

    Code:
    int eax = (int)(RPG::monsters[(ID)-1]); //pointer on RPG::battler //ID = EnemyParty#; possible values for ID = 1..8 //for Heroes, use RPG::actors[ID]
    int edx = attID;    //Attribute_ID
    int ecx = attMod;   //Attribute_Modifier //possible values = -1..+4
    asm volatile("call *%%esi"
    		:
    		: "S" (0x4BFE94), "a" (eax), "d" (edx), "c" (ecx)
    		: "cc", "memory");
            //sets new Attribute_Modifier; Resistance = default Resistance +|- attMod
            //warning: if resulting Resistance is not within A..E, a DamageMultiplier of 0% is used
    Beide abgerufene Funktionen initialisieren das Array, falls list size = 0.
    Nein, man kann keinen -2 Modifier setzen, weil intern nicht durchgehend mit 2-Byte-Zahlen gearbeitet wird, sondern ein zero extend in eine 4-Byte-Zahl stattfindet. So wird aus dem 0xFFFF (-1) dann einfach 65.535 in dezimal. Wäre wohl angebracht alle Resistenzen in der Database auf [A] zu haben und dann entsprechend neu zu setzen/modifizieren.

    Und nein, entsprechende Funktionen und Datenstrukturen für Conditions gibt es (von Haus aus) nicht.

    Geändert von bugmenot (19.04.2015 um 17:15 Uhr)

  11. #11
    Hey! Danke dir! Das transformieren probiere ich mal!

    Was die Attribute angeht, das klappt nun alles wie ich es will. Die Arrays initalisieren sich wohl immer nur bis zum ersten Standardabweichenden, daher frage ich nun nach size>=abgefragtem Attribut und nehme sonst an, dass der A bis E-Wert auf C und die Abweichung auf 1 ist. Soweit klappts, da muss ich auch nichts selbst initialisieren.

  12. #12
    Hey, gibts einen Patch, der bei einem GameOver nicht den GO-Bildschirm aufruft, sondern einfach nen Switch oder so aktiviert? Wär hilfreich für 'HP Reduction can kill target' von Change Character HP. Theoretisch isses egal, was danach mit den HP passiert (falls die nicht permanent auf 0 bleiben dürfen oder so), weil das ganze für nen selbstgemachten GameOver-Screen sehr praktisch wäre. (:

  13. #13
    So, ich hole das mal aus der Versenkung hervor. Und zwar folgendes:

    bugmenot hatte mir letztes Jahr diesen Quickpatch gemacht:

    Zitat Zitat von bugmenot Beitrag anzeigen
    Zitat Zitat
    [QuickPatches]
    DefIntBuffFix=4B743B,9090908B,4B74EB,9090908B
    DEF- und INT-De/Buffs wurden (warum auch immer) ein mal zu oft addiert.
    Ich hatte das in Kämpfen direkt in der Database getestet und da ging alles. Das Problem: Im eigentlichen Spiel funktioniert dieser Fix nicht. Ich habe das erst jetzt gemerkt, da ich wieder am Spiel rumwerkel. Abwehr und Intelligenz werden also nach wie vor 2x addiert (+6 statt +3, wie angegeben in der Database, z.B.). Ich habe das in meinem alten Spielstand getestet, da funktioniert der Fix nicht. Ich habs mit einem neuen Spielstand getestet, da funktioniert der Fix ebenfalls nicht. Aber wenn ich Kämpfe direkt in der Database teste, da funktioniert der Fix.

    Könnte sich jemand das eventuell nochmal anschauen?

  14. #14
    2000-107
    Könnte man irgendwie vielleicht einen Switch anknipsen, während irgendein xbeliebiges Event per Key
    oder Touch ausgelöst wird und läuft? Oder zumindest etwas, das bei gewissen Problemen genauso
    oder gar noch besser hilft.

    Bin langsam ratlos, was die komplette Absicherung von nem eigenen Menü angeht, das weder vor noch
    nach Events, die man überfahren/angerempelt/angequatscht oder sonstwas hat, geöffnet werden darf,
    nur weil's im gleichen Frame passiert ist.

    Irgendein unfehlbares Signal, das mir genau wie dem Standardmenü mitteilen kann, dass der Versuch
    des Menüaufrufs gerade absolut sicher ist.

  15. #15
    Also ich mache das "manuell": Es gibt in jedem Event am Anfang das Common Event BLOCKER und am Ende den ENT_BLOCKER, welche jeweils den PP fürs Menü on und off schalten. Habe damit eigentlich wenig Beschwerden. Ich will aber auch nicht behaupten, dass es totsicher ist. Wenn jemand das ganze Spiel hindurch auf der Esc Taste rumhämmert will ich nicht ausschließen, dass noch irgendwas komisches passiert. Der Maker ist da manchmal unberechenbar.

  16. #16
    Mit den super-manuellen Blockern in jedem Interaktions-Event geht das relativ sicher und ich werde in dem Spiel,
    für das das Menü ist, diese Arbeit auch nicht tun müssen, sondern andere, da ich mich nur um das Menü selbst
    und ein bisschen was anderes kümmere. Aber ich muss denen ja nicht mehr antun (in Sachen von Extra-Arbeit
    aufbrummen, die ich irgendwie rechtfertigen muss) mit Technikschwächen als unbedingt nötig ist.

  17. #17
    Hey hey, ich wollte mal nachhacken, wo den das super Programm für den RM2k3 von Cherry hingekommen ist, welches ermöglicht hat größere Charsets zu verwenden, wie zum Beispiel beim RMxp. Bedanke mich schon mal für die Hilfe.

    Greez Artwork

  18. #18
    Das gibt es mittlerweile für DynRPG ^^
    http://www.multimediaxis.de/threads/...9Fere-Charsets!

  19. #19
    Da 2k nicht so meine Domäne ist:
    Ist es möglich, eine variable Startposition hinzubekommen? Wie genau das passiert ist mir dabei egal, also ob ich jetzt rpg_rt.exe --position=X,Y,MAPID mache oder die tatsächliche Startposition verändere, bevor ich das Spiel starte (durch Manipulation der Maps? Kein Plan was da machbar ist).

  20. #20
    Eine Sache würde mit einem Patch (von denen ich keine Ahnung hab) bestimmt gehen: Das Spiel auf einer schwarzen Map starten, aus einer Datei die Koordinaten und Map-ID einlesen und dann den Spieler auf die Position teleportieren.

Berechtigungen

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