Ergebnis 1 bis 20 von 2331

Thema: Programmwunsch und -erstellungsthread #2

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Aber das würde ja bedeuten, dass man wieder für jedes einzelne Event neue Variablen schaffen muss - und gerade das will ich nicht.
    Die Überschneidung ist nicht das große Problem, denn die funktioniert sogar ganz gut, wenn man sie in den Griff kriegt.

    Geändert von Stray (27.08.2014 um 12:11 Uhr)

  2. #2
    Zitat Zitat von Stray Beitrag anzeigen
    Aber das würde ja bedeuten, dass man wieder für jedes einzelne Event neue Variablen schaffen muss - und gerade das will ich nicht.
    Die Überschneidung ist nicht das große Problem, denn die funktioniert sogar ganz gut, wenn man sie in den Griff kriegt.
    Hi Stray. Vielleicht misverstehe ich das Problem mit den eigenen Variablen aber vielleicht hilft dir meine Vorgehensweise bei solchen Sachverhalten.

    Ich benutze für den Rm2k den Destinypatch und habe auf meinen Maps bis zu 40 Events die sich per Call einer Datenbankevents registrieren.
    Im Anschluss daran wird in einem einzigen Event der Datenbank über die IDs geloopt und je nach Eventnamen zu der ID oder weiteren Infos reagiert.

    Dabei ist der Destinypatch unersetzlich, denn er hat die Möglichkeit ein Events per ID aus einer Variable fernzusteuern oder sogar ihr Aussehen zu verändern.
    Das Minimum was du brauchst ist eine reservierte Anzahl von Variablen des RPGMaker für die ID-Liste.

    Falls deine Events Gegner sind, die eine gewisse Energie haben brauchst du logischerweise für jeden Gegner mindestens eine eigene Variable für die Energie. Der DestinyPatch bietet hier zusätzlich eigene Datentypvariablen an, die hierfür sehr praktisch sind.
    Du kannst damit beispielsweise die HP-Variable in den dworten des Destinypatch zusammensetzen aus (MapID * 1000) + EventID.
    d.h. Event 1 auf Map 1 = d[1001]
    Event 90 auf Map 150 = d[150090]
    Der DestinyPatch lässt maximal 900.000 dworte zu, soweit ich weiß.
    Auf diese Weise kannst du deinen Events eigene globale Variablen zugestehen aber du kannst ganz ohne konkrete Variablen arbeiten indem du die entsprechende Variable immer über die Formel (MapID * 1000) + EventID = dwordPointer erhälst.

    Kann man überhaupt verstehen, was ich meine?

  3. #3
    @SuperSimon:
    Es fällt mir sehr schwer das so nachzuvollziehen und glaube auch nur ungefähr verstanden zu haben. Aber es liest sich zumindest irgendwie vielversprechend. Ich werde mir den DestinyPatch später mal näher ansehen.

  4. #4
    Nach stundenlangem Suchen kann ich Folgendes mit Stolz verkünden: keine Ahnung, wie ich an den CallTree herankommen soll.
    Ich habe es mal mit etwas anderem versucht (über die Event_ID):

    Post-Umleitung


    P.S.

    download AntiLag(Fast)

    Patches für RPG_RT2k v1.51 und RPG_RT2k3 v1.09 hinzugefügt. EventUpdates allesamt am Ende eines Frames.





    Edit:
    Zitat Zitat von MarcL Beitrag anzeigen
    (MarcLMaps-->GebirgeTeilLinks/GebirgeRECHTSunten) ziemlich stark, da sind auf den Maps ~1000-2000 Events?
    Die Parent Map dazu hat übrigens 2190 Events. Und da ist kein Text...

    Habe den Kram mal mit MarcL's Zeug durchgetestet. Der Patch nennt sich zwar "Slow", aber einen großartigen Unterschied zur schnellen Variante gibt es, hinsichtlich der Performance, nicht (außer man hat zig Events mit 50 Eventseiten und in jedem eine ganze Menge <ChangeSwitch> und <ChangeVariable>).

    Ach und: nicht vergessen die Zeile AntiLagSwitch aus der DynRPG.ini zu löschen.

    Geändert von bugmenot (14.09.2014 um 15:26 Uhr)

  5. #5
    Wenn jetzt Event A das Event B aufruft, Event B setzt einen Switch der Event A (und dadurch auch die Ausführung vom gecallten Event B!) deaktivieren würde, funktioniert das mit deiner Methode nicht.

    Meine Methode mit dem Call Stack ginge so:

    In den einzelnen Funktionen für die Eventbefehle (z.B. 4ACB18 ProcChangeVariable) gibt es ja drei Parameter: eax = aktueller TLcfgScripter, edx = aktuelle TLcfgScriptData, ecx = aktuelle TLcfEventScriptLine.
    Davon ausgehend:

    Code:
    ; angenommen, eax ist der TLcfgScripter
    mov eax, [eax+4] ; TLcfgScriptDataList
    mov eax, [eax+8] ; innere TList der TLcfgScriptDataList (quasi der Call Stack)
    mov eax, [eax+4] ; Pointer auf Array
    mov eax, [eax] ; Erster Eintrag (ursprünglicher Caller)
    mov eax, [eax+1c] ; Event ID (0 wenn kein Map Event)
    Der Vollständigkeit halber müsste das ganze btw auch bei Item Management und Change Party ausgeführt werden.

    EDIT: Bei DynRPG oder beim RM2k3 Debug Addon oder der Revolution Patch Preview-Version kann die Event ID da auch negativ sein, das ist dann eine Common-Event-ID, du solltest also überprüfen ob sie >= 0 ist, nicht != 0.

    Geändert von Cherry (14.09.2014 um 12:50 Uhr)

  6. #6
    download AntiLag(Slow)


    Sollte jetzt oben beschriebene Fälle (AC statt ABC; A callt B, B bricht A ab) und Folgendes richtig durchführen:

    Im 2k(3) wird nicht nur der Caller (@ bottom of CallTree) sondern auch der Callee (@ current CallTree_pos) geupdatet.

    ...im Falle, wenn der Caller eine höhere Event_ID hat als der Callee, wird der Ausgangspunkt des <CallEvent> als letztes geupdatet. Ist klar von den Zahlen her. Wenn der Callee aber eine höhere Event_ID als der Caller hat, dann wird der Ausgangspunkt des <CallEvent> auch als letztes geupdatet. Das mit dem "aktuellen Event (das am Bottom des Calltrees)" funktioniert nicht in beide Richtungen.

    Setze mal im 2k3 Patch 0x35 = EB und 0xB1 = EB, dann wird nur das Event da vorne im CallTree geupdatet.

    Wenn der Switch, welcher das erste Event ausstellen soll, beim gecallten Event eine neue Seite öffnet, dann wird diese Seite vorher ausgeführt, bevor der Ausgangspunkt des <CallEvent> seine neue Seite ausführt.



    Zitat Zitat von Cherry Beitrag anzeigen
    Der Vollständigkeit halber müsste das ganze [...]
    Okay, LocalUpdate jetzt bei
    <ChangeSwitch>
    <ChangeVariable>
    <ChangeTimer>
    <ChangeItem>
    <ChangeParty>
    <KeyInput>

    Zitat Zitat von Cherry Beitrag anzeigen
    Revolution Patch Preview-Version kann die Event ID da auch negativ sein
    Ich hoffe das Ding ist nur für den 2k3.

    Geändert von bugmenot (14.09.2014 um 19:23 Uhr)

  7. #7
    download AnimationBugFix

    Die Skillanimation wird beim Benutzen von SkillScroll und InvokeSkill wieder vernünftig angezeigt. Vorher ploppten Schadenszahlen während der Skillanimation auf oder der Gegner starb mitten in der Animation.




    Zitat Zitat von DynRPG.ini
    [QuickPatches]
    DmgCapper=49D03B,E8F69DFAFF,446E36,B800000000E86C34FEFF92B80F270000C3
    minDMG=446E37,#0
    maxDMG=446E42,#9999

  8. #8
    Zitat Zitat von bugmenot Beitrag anzeigen
    download AnimationBugFix
    Die Skillanimation wird beim Benutzen von SkillScroll und InvokeSkill wieder vernünftig angezeigt. Vorher ploppten Schadenszahlen während der Skillanimation auf oder der Gegner starb mitten in der Animation.
    Awesome! Hat mich schon immer genervt der Fehler ^^;

    PS: Werde den Antilag bezeiten mal testen danke

  9. #9
    Den hab ich mir mal sofort reingeschmissen =)

  10. #10
    Damage over own Time
    download DooT(2k3)

    Hiermit wird bei Zuständen, welche HP/MP (je Zug) heilen/abziehen, nicht mehr in jedem getätigten Zug (von irgendetwas im Kampf) der Heilungs-/Schadenseffekt ausgelöst, sondern nur nach dem Zug vom betroffenen Kampfteilnehmer.


    BugFix(2k3)
    download BattleEndBugFix

    Wenn der Kampf beendet wurde (Sieg/Niederlage), dann werden die ganzen geöffneten Fenster geschlossen. (Es konnte vorher z.B. eine transparente Skillbeschreibung unter dem "Sieg" Text liegen oder andere Fenster waren noch offen.)
    Entfernt auch den Cursor, welcher auf wartende Helden zeigt. Manche plugins müssten vielleicht angepasst werden, wenn sie zusätzliche HUD-Grafiken anzeigen.


    Geändert von bugmenot (23.09.2014 um 00:45 Uhr)

  11. #11
    Zitat Zitat von Kyuu Beitrag anzeigen
    Okay, man sieht im Endeffekt nur 16-bit, da der RPG Maker Framebuffer nur 16-bit unterstützt...
    Edit: Fade-In gefixt
    download 32bit(fix)

    Smooth color gradients. Jetzt auch für DynRPG hinzugepackt.



    Edit²: Fade-In gefixt für 2k:
    download DestinyV2 32bit fix
    (erst Bananen-Joe's Destiny Patcher dann .ips anwenden)

    Geändert von bugmenot (04.05.2015 um 23:11 Uhr)

  12. #12
    Zitat Zitat von bugmenot Beitrag anzeigen
    download 32Bit

    Smooth color gradients. Jetzt auch für DynRPG hinzugepackt.
    O________________________O

  13. #13
    Zitat Zitat von bugmenot Beitrag anzeigen
    download 32Bit

    Smooth color gradients. Jetzt auch für DynRPG hinzugepackt.

    Äh, was genau hast du da gemacht? Banenen-Joe hat extrem viel umändern müssen weil ja überall die Palettengröße auf 16 Bit zugeschnitten ist, die Logik die Paletten anpasst, etc... also inwiefern kann das jetzt mit DynRPG gehen? Besonders weil ja die Headerfiles und die Library auch von 16 Bit ausgehen.

    Bitte erklär mal... Danke

Berechtigungen

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