Möglich wärs schon, aber die Pictures verbrauchen, was ich so sehe, nicht wirklich viel Zeit (außer man zeigt auch wirklich alle an).
Möglich wärs schon, aber die Pictures verbrauchen, was ich so sehe, nicht wirklich viel Zeit (außer man zeigt auch wirklich alle an).
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!Now all new and shiny:CherryShare | Patches und Tools | Programmwunschthread | www.cherrytree.at | Cherry = CherryDT
Ich halte eigentlich nichts von Mikrooptimierung, daher, wenn du sagst, dass inaktive Pictureobjekte schnell genug durchlaufen werden, habe ich im Moment nichts einzuwenden.
BTW: Ist es möglich mit DynRPG einen Tastendruck zu simulieren, oder gleich auf den internen Key Cache zuzugreifen? Ich würde gerne den Umweg über die WinAPI-Funktion SendMessage() vermeiden.
BTW²: Es scheint nicht zu funktionieren die Musik im RPG::system-Objekt zu ändern. Im RPG::dbSystem-Objekt funktioniert es allerdings. Bei den Sounds scheint es auch Probleme zu geben.
Geändert von Kyuu (19.03.2013 um 18:49 Uhr)
Was ist die beste Möglichkeit zu ermitteln auf welcher Karte man gerade spielt? Den Wechsel der Karte zu erkennen würde auch schon ausreichen
Und ist es irgendwie möglich das Lesen eines switches zu erkennen? (und den Rückgabewert zu ändern) Ja, brauch das wirklich beim Lesen, nicht beim Schreiben ^^
Geändert von Ghabry (25.04.2013 um 20:50 Uhr)
Also ich weiß nicht ob es die beste Möglichkeit ist, aber du wirst mMn nicht daran vorbeikommen, auf jeder Map einen PP mit Erase Event zu packen, der vor dem Erase Event entweder selbst testet, ob die Map gewechselt wurde oder der einen Common Event callt, der das prüft. Funktionieren tut es dann so, dass du ein Set Variable mit der Map ID füllst. Dazu musst du dann wissen, welche Map ID welcher Map entspricht. Danach kannst du damit "rechnen"...
Ich verstehe nicht, was der Unterschied von lesen und schreiben eines Switches sein soll? Bzw. was du erreichen willst?
Das klingt so als willst du erkennen ob ein PP prüft ob ein Switch gesetzt ist? Wenn du das willst, dann kannst du doch gleich die im 2k3 enthaltene Funktion nutzen und suchen, welche Events auf den Switch zugreifen ^^; (hoffe ich hab das richtig verstanden)
Öh, lass immer bei Betreten einer Map eine Vari einen bestimmten Wert annehmen und frag den ab.Zitat
Conditional Branch: "Branch if Switch XXX is ON/OFF ..."Zitat
Ich frage schon absichtlich im DynRPG Thread, kommt mir nicht mit Maker-Eventcode. Will bisschen mit DynRPG rumspielen
Hmm stimmt. Da muss ich wohl mal testen, ob man über RPG::hero->mapId die aktuelle Map ID bekommt.
Den Satz versteh ich nicht.Zitat
Also geht wirklich darum, dass ich alle Switch-Leseversuche mitbekomme und so das Ergebnis des Lesevorgangs verändern kann (für Schreiben gibts nen Callback, das ist daher kein Problem)
Bei Events ist das einfach, da könnte ich über onEventCommand alle Events behandeln, die Switche lesen und schreiben können, z.B. EVCMD_CHANGE_SWITCH. Gibt aber noch einen weiteren Fall, wo Switche vorkommen: Die Überprufung, ob ein(e) Event(seite)/ein CommonEvent die Startbedingungen erfüllt hat. Da würde ich Switch lesen auch gerne behandeln.
Oder vielleicht weiß Cherry zufällig die Adressen im ASM-Code wo das passiert (Startbedingungen von Events überprüfen)? Die jmp-Anweisungen patch ich dann selber rein.
RPG::hero->mapId ist korrekt.
Übrigens hatte DynRPG am Anfang onGetVariable und onGetSwitch Callbacks. Diese hab ich allerdings entfernt weil das Spiel einfach nur saulangsam wurde, sogar wenn keine Plugins das verwendet haben (rein durch den Aufruf der Funktion in dynloader.dll), weil das Auslesen von Switches und Variablen einfach extrem oft intern stattfindet.
Und warum willst du das Lesen des Switches abfangen? Willst du eine Art Selfswitch-Ding machen? Die Funktion zum Lesen eines Switches ist übrigens an VA 0x48B324, eax ist RPG::system, edx ist die Switch-ID. Rückgabewert ist 0 oder 1 in al.
Damit fängst du allerdings kein RPG::switches[xyz] von DynRPG-Plugins ab, weil diese direkt auf das Switcharray zugreifen (schau dir switches.h an).
Vielleicht kannst du einfach den Switch setzen, statt das Lesen abzufangen? Mit RPG::map->updateEvents() erreichst du dass die Startbedingungen neu evaluiert werden nachdem du den Switch geändert hast.
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!Now all new and shiny:CherryShare | Patches und Tools | Programmwunschthread | www.cherrytree.at | Cherry = CherryDT
Geändert von Cherry (26.04.2013 um 10:45 Uhr)
Wundert mich, dass das langsamer wurde, gehe mal davon aus, dass du einfach in eine Funktion der DLL reinjmpst?
Ja, genau sowas wollte ich mal versuchen
Ja, das ist dann Pech. Müssen die Pluginentwickler halt beachten.
Und ach stimmt ja, muss mit gcc compilen, die ihre Assembler-Syntax ist so hässlich :/
Edit: und __attribute__ ((naked)) funktioniert unter x86 nicht, toll, macht alles nur unnötig kompliziert -.-
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!Now all new and shiny:CherryShare | Patches und Tools | Programmwunschthread | www.cherrytree.at | Cherry = CherryDT
Hey. Stichwort: "ShakeScreen", gibt es die Möglichkeit das per DynRPG zu verwenden/zu setzen?
Vom Makerbefehl her scheint das ein globales Setting zu sein, Shakestärke, Speed, Restdauer~ kriegt man das irgendwie zugegriffen?
--CortiWins GitHub DynRPG < Charguide < [2k3] Zahlen und Werte < [2k3] Kurven als Wertetemplates < [2k3] DynRPG Werkstatt
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Hello from the otter side
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Geändert von Corti (13.05.2013 um 21:26 Uhr)
@Corti
Eine Möglichkeit wäre wohl direkt auf die Pixel bzw. das Bitmap vom RPG::screen->canvas zuzugreifen und damit eine Art ShakeScreen zu erzeugen. Ansonsten würde mir keine Möglichkeit einfallen diesen Befehl per DynRPG zu erzeugen. Außerdem wirkt der ShakeScreen des Makers auf alles, außer die Font!
Du kannst direkt beim ausführen des EventCommands darauf zugreifen. In onEventCommand().
Edit: Dabei kannst du dann auch direkt auf die EventCommandParameter zugreifen und diese eben auch ändern und/oder dem Wert gewisser RPG::variables verpassen. Du kannst übrigens auch durch ein EventScript "springen", wenn du *nextScriptLine clever verwendest
Edit:
Weitere Idee: Z.B. Screenshottool (SFX.exe) per DynRPG aufrufen und einen Screen machen lassen und diesen dann shaken. Hätte aber den Nachteil, dass es dann ein fixes Bild wäre.
PeAcE
MorDen
Die Frage war auch eher an Cherry gerichtet.
--CortiWins GitHub DynRPG < Charguide < [2k3] Zahlen und Werte < [2k3] Kurven als Wertetemplates < [2k3] DynRPG Werkstatt
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Hello from the otter side
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Ich weiss das zu würdigen, danke :-)
--CortiWins GitHub DynRPG < Charguide < [2k3] Zahlen und Werte < [2k3] Kurven als Wertetemplates < [2k3] DynRPG Werkstatt
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Hello from the otter side
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬