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 Corti Beitrag anzeigen
    [...] im Switchpointer irgendwelche Sprünge drin, die sich nicht mit anderen Patches vertragen können
    Nur im Falle des 2k Patches. Es fehlte 1 Byte... wow... Weswegen 8 Byte Code ans Ende einer zerstückelten Funktion ausgelagert wurden, welche direkt hinter dem bAEP liegt.

    Edit:
    Sonst könnte ich bei beiden Versionen den Code auch in das ShowLogoOnStartUp packen (Was nicht alle OK finden könnten) und den üblichen FailSafe wegen initialisierten Variablen reinpacken (hier ist das irgendwie nicht wirklich nötig) sowie einen Sonderfall für Var[SwitchPointer] = 0 (get Switch_ID = 1 instead).

    Edit²:
    [DATA EXPUNGED]

    Zitat Zitat von Corti Beitrag anzeigen
    Noch etwas:
    Könntest du rausbekommen, an welchen Stellen im Speicher die Attribute und Conditionanfälligkeiten der Monster liegen?
    Könnte ich mal reinschauen... Wie gesagt, ich bin nur ein Laie in Sachen Software-Innereien. (Rhyme not intended)

    Geändert von bugmenot (12.08.2013 um 14:24 Uhr)

  2. #2
    Für einen Laien schlägst du dich ganz gut

  3. #3
    Kann das nicht Konflikte bei parallel laufenden Events geben, wenn man überall auf diese Var angewiesen ist?

  4. #4
    Zitat Zitat von MagicMaker Beitrag anzeigen
    Kann das nicht Konflikte bei parallel laufenden Events geben, wenn man überall auf diese Var angewiesen ist?
    Genau. (bzw. diese lesen den selben Pointer -> selben Switch aus)

    Lösungsmöglichkeit: den Patch umstrukturieren, um per SwitchID-Array Switch[Nr. xyz] + 0 bis 99 (im Default-Fall Switch[0001] bis Switch[0100]) auf entsprechende Var[3397] + Switch-Array-Pos zuzugreifen (?)
    Was dann nur mehr Mikro Management verlangt im Sinne von "...welcher Pointer wird gerade eben bereits verwendet?"
    Ich habe nicht wirklich viel Platz, um die paar Byte zusätzlicher Codezeilen noch unterzubringen.

    Edit:
    Bzw. was ist schon parallel an einem Prozessor, der Befehle sequenziell verarbeitet? Einfach vor jedem Eventbefehl Condition"Switch[0001] = ON/OFF" die Variable mit dem SwitchPointer entsprechend setzen und der Switch wird eindeutig zugewiesen.

    Geändert von bugmenot (12.08.2013 um 11:32 Uhr)

  5. #5
    Parallele Events laufen nicht komplett durcheinander. Ein Event läuft solange ungestört, bis es entweder einige Tausend Befehle ausgeführt hat (weiß gerade die Zahl nicht) oder an einen Befehl kommt, der bis zum nächsten Frame wartet (dazu gehört Wait, aber auch das Ende eines PPs oder Befehle wie Open Save Menu, etc.). Daher, wenn man nicht eine Schleife ohne Wait baut (was man eh nicht sollte), sodass man an das Befehlslimit kommt, kann man davon ausgehen, dass zwischen zwei Befehlen die nicht auf das nächste Frame warten (und dazu gehören ja Variablen-/Switch-Operationen und Bedingungen) nichts anderes dazwischenfunkt. So funktionieren letztenendes auch der Item/Eventpointerpatch, der BetterAEP und einige DynRPG-Plugins.

  6. #6
    Zitat Zitat von bugmenot Beitrag anzeigen
    Edit²:
    Bug gefunden: wenn ein Event für irgendeine Eventseite Switch[0001] abfragt, dann wird auf diese Eventseite (nach Event-Update) gesprungen, egal was der SwitchPointer sagt. (Soviel zum Thema Self-Switches in 2k(3)... mal schauen.)
    Ich nehme die Bug-Meldung hiermit wieder zurück. (Bloß der MessageSwitchPatch(Switch_ID = 1 in 0x70844(2k) oder 0x92ED9(2k3)), der den Switch anflippte...)
    Der SwitchPointer wirkt sich nicht auf die Event Conditions aus.

    P.S.
    Nutzen die Event Conditions (links im Event Editor) etwa nicht die selbe Funktion, wie der Eventbefehl zu den Conditions?
    Und wird vorher irgendwo die eigene Event_ID hinterlegt?

    P.P.S.
    Ist der Raum hinter dem BetterAEP nur im 2k3 schon belegt?

Berechtigungen

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