Beiträge von KotatsuAkira

    Ich möchte nicht groß in Aussicht stellen, demnächst das Ding mal releasen zu können, denn so wirklich arbeite ich noch nicht wieder dran, aber es gibt endlich wieder klein wenig frischen Fortschritt.


    Im Objekt [Message] können jetzt der Idle-Timer, die aktuelle Zeile, wie weit sie fortgeschritten ist und das DrawOffset für das nächste Zeichen abgefragt werden. Damit lässt sich bspw. eine Funktion schreiben, die automatisch, während die Dialogbox mit Text gefüllt wird, Sounds ausspuckt. Und da sich das grafisch nicht präsentieren lässt und ich jetzt auch nix aufnehmen will, gibt's hier jetzt stattdessen den Code dafür.

    Das Ganze packt man in ein Event mit [Parallel] und setzt noch ein [Wait 0] dahinter (sobald diese Version denn mal draußen ist). In diesem Beispiel schaltet Variable #1203 frameweise von 0 bis 5 durch, womit 10mal pro Sekunde ab dem Start eines Dialogtextes der Cancel-SystemSE mit einem zufälligen Pitch zwischen 50 und 150% abgespielt wird. Warum ausgerechnet der, wird man sich fragen. Äh... der fiel mir als erstbeste Möglichkeit ein, um mit dem RTP Tonfolgen zu erzeugen, die zu BanjoKazooie-Gibberish passen.


    ~炬燵あ

    Es ist in allererster Linie wahnsinnig anmaßend und noch dazu Schwachsinn, was da passiert, da es sich um DNS-Sperren handelt, die überhaupt gar nichts bringen. Angenommen, es würden da nur Domains landen, die auch nur mit gerichtlichem Beschluss auf der Liste wären (und davon können wir nicht ausgehen, die, die das entscheiden sollen, haben dafür null Kompetenz, ich halte es ohne viel Ahnung von Recht zu haben auch für höchst illegal, was die da auf eigene Faust treiben):


    Auf öffentlich freien DNS-Adressbüchern wie 1.1.1.1 / 2606:4700:4700::1111 (CloudFlare) oder 8.8.8.8 / 2001:4860:4860::8844 (Google) ändert sich nichts an der Verfügbarkeit. Jeder Hansel und seine Oma, die auf betroffene Seiten zugreifen wollen, sind entweder eh schon gar nicht mit dem DNS-Service ihres Providers verbunden, weil sie sich zurecht nicht darauf verlassen oder können das in unter einer Minute umkonfigurieren. Ich sehe hier einen Haufen Unternehmen, der schwachsinnig Geld verbrennt für nutzlose Arbeit, die eigentlich nicht in deren Zuständigkeit fällt.


    ChangeYourDNS


    ~炬燵あ

    Sommerurlaub 2002, in der noch vorher gekauften und mitgenommenen Screenfun-Ausgabe war ganz hinten in den Previews auf die 08-2002 ein kleiner Kasten zu RPG2000, der in selbiger dann behandelt werden sollte. Der kurze pupsige Text und das Vorschaubild, das ein Screenshot in RTP-Optik war, haben mich irgendwie angefixt, obwohl meine Erfahrung mit dem RPG-Genre recht begrenzt gewesen ist. Das Programm war dann zwar nicht auf der nächsten Disc drauf, aber ich hatte mehr Spaß mit Testfall, als gesund für mich war, aus Langeweile hab ich's auch ein paar Mal versucht ganz ohne Maker zu bearbeiten. Naja und VD gab's natürlich auch, aber das hab ich weggelegt, weil das Bürgermeister-Attentat nach wenigen Spielstunden einfach Schrott war und ich keine Lust mehr hatte.


    Das erste, was ich richtig lang, ausführlich und (wie ich später feststellte nur fast) bis zum Ende gespielt hab, war Eternal Legends ab ungefähr April 2003 oder so, das war dann auch gleichzeitig mein erstes Spiel, das ich durch Nutzen von Bugs und Glitches ziemlich zerstört habe, die technische Katastrophe hinter dem Contentbiest habe ich mit der Zeit sogar ohne die geringste Makerkenntnis aufzuweisen bemerkt.


    RPG2000 kannte ich zwar minimal durch die Crashkurse in den 08- und 09-2002-Heften, aber habe ihn erst ein paar Monate nach EL zum ersten Mal auch benutzen können. Den bekam ich zusammen mit einer Menge Arbeitsmaterial und Extrazeug von einem sehr coolen Menschen, momentan haben wir uns leider (mal wieder) aus den Augen verloren. Von dieser Person bekam ich dann auch das Programm und die Möglichkeiten richtig vorgeführt und wir hatten eine Menge Spaß dabei, das nicht gerade gute Dreamland 3 komplett zu zerlegen. Ja, ich hab beim Sezieren fremder Kreationen gelernt, das Ding zu bedienen. Kurz darauf fand dann auch Düsterburg seinen Weg auf meinen PC und zeigte, dass man auch was wirklich Gutes damit basteln kann, es war traumhaft.


    ~炬燵あ

    Da das Forgotten E-Book erwähnt wurde, möchte ich mal erwähnen, dass es keine gute Idee ist, nach diesem Werk zu arbeiten. Es ist eine alte, historisch wichtige und noch immer gute Quelle für Basics, die mit Entwicklung und Erzählung als solches zu tun haben, falls ich diese Abschnitte nicht viel zu gut in Erinnerung habe. Aber sobald es an die Makertechnik und vor allem große Systeme geht, ist es hoffnungslos veraltet und lehrt Arbeitsmethoden und Strukturen, die unnötig umständlich und sehr nachteilbehaftet daherkommen, das scheinst du an Mapmenüs ja schon bemerkt zu haben.


    Anleitungen wie diese stammen aus Zeiten, als man kein freies Scripting und nur 20 Pictures (RPG2000 <=1.10) zur Verfügung hatte und Patches sehr rar gesät waren, alles daran ist eine Folge aus Notdurft, die man heute nicht mehr in Anspruch nehmen muss und sollte, besonders in neueren RPG-Maker-Versionen.


    Konkrete Lösungen für deine Vorhaben in RPGMV kann ich mangels spezifischem Wissen über diese Version nicht anbieten.


    ~炬燵あ

    Es geht ohne Script, aber nicht ohne Scripting, wenn du verstehst. Wenn du eine genaue Vorstellung davon hast, wie der gewünschte Animationsprozess ablaufen soll und die Materialien dafür bereit hast, kann man daraus eine passende [Scene_Title] zusammenprogrammieren. Oder wenn es wirklich seeehr simpel ist, kannst du ein Scriptsnippet verwenden (habe gerade keins parat, aber gab es schon häufig), das den Titelbildschirm überspringt, damit du ihn einfach in Mapform auf der Startposition bauen kannst. Wegen den sehr mangelhaften Eventfunktionen von RPGXP wäre diese Möglichkeit nur immens vom Fall abhängig.


    Meine Anti-Empfehlung besonders bei diesem Thema gilt schlussendlich den altbekannt-vorgefertigten AnimTitle-Scripts, denn was die auf den Bildschirm zaubern, ist man beim drölften Mal irgendwann überdrüssig. Da ein Titelbildschirm das mit erste ist, was man sieht, will man nicht unbedingt von etwas häufig Kopiertem begrüßt werden.


    ~炬燵あ

    An die wenigen, die das hier oder etwas anderes von mir (zB MöhrchenDice-Bilder) interessiert: Rechnet in nächster Zeit besser mit nichts Neuem, ich habe heute alle meine laufenden Arbeiten an [Destiny for Maniacs] (inklusive Hilfe) sowie an allen Spielen/Experimenten (meine übrigen Anteile an [Elements Destiny] können nicht mehr viel im restlichen Team ausbremsen, also nicht verzagen, was dieses Spiel angeht) aufgrund der vorherrschenden Pandemie, aus der wir dank zu vieler sehr gefährlicher Menschen niemals herauskommen werden, zeitlich unbestimmt eingefroren, ich sehe mich momentan nicht dazu in der Lage.


    Dies ist keine Protestaktion, sondern nerventechnisch für mich notwendig und kann schnell wieder vorüber sein oder sich lange hinziehen. Näher werde ich die Situation nicht erläutern, um meine Gesundheit muss sich hier allerdings niemand Sorgen machen. Das hier nur mal als kleines Update, das nicht viel zum Thema beiträgt, aber allen einen kleinen Infohappen bereithält, die sich fragen, ob oder wann hier noch was kommen möge.


    Bis Baldrian, bleibt sicher und tragt Masken ordnungsgemäß, so viel es nur geht, um andere auch vor euch zu schützen. Mein kontaktloser Dank sei allen gewiss, die sich an einfachste Regeln zur Pandemiebekämpfung halten können, anstatt alles mit Protesten gegen "Freiheitsbeschränkung" zu verschlimmern.


    Und wenn ihr mir einen großen Gefallen tun wollt: Schreibt bitte keine Antworten, nehmt es einfach zur Kenntnis und wendet euch Schönerem zu. Sobald jemand darauf hier in diesem Thread reagiert, würde jener garantiert sehr weit vom Gleis abkommen.


    ~炬燵あ

    Ja, weiter überlegen und notieren kann nicht verkehrt sein. Vielleicht kann ich mit ganz viel Glück ja sogar mal mit einem "Ha, ninja'd, das hab ich schon integriert!" auf einen Vorschlag reagieren. Bin gerade aber wieder mit anderen Sachen beschäftigt, da wird Destiny noch ein Weilchen auf der Strecke verweilen.


    ~炬燵あ

    Ich kann diesen Codebrocken geradezu schreien hören, diese Schwäche von DestinyScript war schon immer sehr übel. Umsetzbar wird das schon sein, andere Sprachen können schließlich auch Speicher über Pointer per Namen referenzieren. Aber meine Fähigkeiten übersteigt es weit, mir überhaupt auszudenken, was dafür alles nötig wäre.


    Das einzige schon vorhandene, was da Abhilfe schaffen würde, wäre, die IDs (und allerlei andere Werte), die man braucht, in Konstanten zu verpacken. Die müsste sich dann leider jeder selbst zurechtlegen, in eine eigene Version einbauen und daraus ne speziell angepasste DLL kompilieren. Wofür auch erstmal ne Menge Vorbereitung betrieben werden muss, insofern... nicht für alle tauglich. Ich kann hierfür echt keine vernünftige Lösung anbieten, sondern nur überkompliziert sinnieren.


    ~炬燵あ

    Ye, wie wahnsinnig nützlich der Labelsprung-Befehl in einem Scriptblock ist, hab ich unlängst auch wieder auf's Neue bemerkt.


    Schreibschutz aufheben bei Eigenschaften sollte keine große Sache sein, zumindest meistens. Es sei aber natürlich dazu gesagt, dass geänderte Eventnamen und andere fest vordefinierte Daten zurückgesetzt werden, wenn du später auf die gleiche Map zurückkehrst. Und bezüglich Notes: Die Definition von Events um neue Inhalte zu erweitern stell ich mir je nach Umsetzungsmethode schwer vor, letztendlich wäre hier jedenfalls auch bei Implementierung die gleiche Problematik präsent, wenn ich sie in der RPG_RT vornehme. Destiny bräuchte, damit sich Extra-Stuff Map-übergreifend gemerkt werden kann, ein Imitat der gesamten MapTree-Grundstruktur. Grundsätzlich erstmal vermerkt, hört sich nur erstmal nach viel zuviel Arbeit an.


    Regexp wäre definitiv cool, keine Frage. Die Sache ist nur... finde erstmal eine bereits existente Variante, die man möglichst einfach mit MASM32 in jedes Programm, das man kompilieren will, mit reinstopfen kann und darf, dann reden wir weiter. Zum Selberbauen ist der Vorgang viel zu komplex. °~°'


    ~炬燵あ

    Holerö!~


    Ob das altbekannte Patcherprogramm bestehen bleibt, steht noch aus, da muss ich nochmal ein paar Sachen genauer unter die Lupe nehmen, wenn ich die Nerven dafür habe. Die verlinkten Scripte sind mir tatsächlich wohlbekannt. Auch wenn ich sie mir nicht allzuviel angeschaut habe, fand ich's einfach schon immer toll, wenn jemand was mit DestinyScript bastelt und zeigt.


    Die Syntax brauchst du nicht anpassen, da sich an ihrem Aufbau nix ändern wird (ich wollte ternäre Operatoren verbauen ({Expr} ? {IsTrue} : {IsFalse}), das ging aber mächtig schief). Und solange du nichts verwendest, das in RPG2003 nicht existiert (wenn Des2.018 überhaupt RPG2000-exklusiven Krempel hatte), sollte da hoffentlich kein Problem aufkommen. In Sachen Funktionstüchtigkeit tu ich mich derzeit nur leider noch schwer damit, Pictures einblenden zu lassen, wenn einfach nur ein AuroraSheet generiert wird, statt eine Quelldatei zu laden.


    "Command.ShowMessage()" wurde damals, wie einige andere auch, ausgelassen, weil der Befehl auf die Codeliste zugreift, um weitere Textzeilen ausfindig zu machen, die technisch auch eigenständige Befehlszeilen sind. Selbst wenn ich ihn verbaue und die RPG_RT davon überraschenderweise nicht explodiert, könnte also auch nur eine Zeile angegeben werden. Ist es das dann wert? Ich hab noch meine Zweifel daran.


    ~炬燵あ

    Holerö!~


    Momentan beschäftige ich mich ja eigentlich hauptsächlich damit, Destiny.dll/DestinyScript 2.0 auf RPG2003 1.12 lauffähig zu machen, es zu erweitern und eine neue Dokumentation anzufertigen. Nun hat sich allerdings zwischendurch ein kleines Experiment aufgetan, das vorgestern als spontane Alberei mit einem in RPG2003 gestrichenen Feature seinen Anfang nahm und nun bereit ist, ausprobiert zu werden.


    Ich präsentiere: FlexibleWalker

    ダウンロード/DOWNLOAD (rv20201108)

    DOWNLOADEN, PATCHEN, VERWENDEN UND WERKE VERÖFFENTLICHEN GESCHIEHT AUF EIGENE GEFAHR!

    GEHE NICHT ÜBER "LOS" UND ZIEHE KEINE 1000 COINS EIN!


    Es handelt sich bei der Datei um einen IPS-Patch, der mit einem passenden Programm (bspw. LunarIPS oder ipsXP) auf eine kompatible RPG_RT.exe (RPG2003 1.12, funktioniert mit UND ohne Maniac Patch) angewendet werden muss und dann kann's auch schon losgehen. Bevor ihr das macht, wollt ihr aber natürlich wissen, was der denn eigentlich macht. Also... hoffe ich zumindest.


    Wenn der Patch angewendet wurde, sollte erstmal keine Veränderung sichtbar sein. Ist dies der Fall, ist das schonmal ein gutes Zeichen dafür, dass es nicht schiefgegangen ist (jedenfalls nicht so, dass das Programm explodiert)... oder halt gar nichts passiert ist. Was sich aber im Falle von Erfolg nun tatsächlich geändert hat, ist, dass von nun an von der Engine die Breite (/12) und Höhe (/8) von Charakter-Laufgrafiken automatisch aus den Abmessungen einer (fast) x-beliebig großen Quellgrafik berechnet werden, also im Grunde so, wie ihr es vom RPG Maker seit VX (oder bei Einzel-Chars schon seit XP) kennt.


    Es gibt noch einige Faktoren, die unbedingt beachtet werden müssen:

    • Ein Set muss weiterhin immer 4×2=8 Charakterblöcke aufweisen.
    • Die Kollisionsgröße betroffener Figuren/Objekte beträgt weiterhin nur ein Feld.
    • Im RPG Maker werden, anders als in der gepatchten Engine, kleinere und größere Laufgrafiken falsch dargestellt, da an dessen Funktionalität nichts geändert wird, also bitte nicht davon beirren lassen.
    • Um eine korrekte Funktionalität einigermaßen zu gewährleisten, sollte eine Einzelgrafik innerhalb eines CharSets nur gerade Zahlen als Abmessungen aufweisen (Standard: 24×32), keine krumm ungeraden (13, 27, 49,...).
    • Genau wie beim zu ähnlichen Ergebnissen führenden Patch "CharExpand" treten auch hier massive Darstellungsprobleme auf, wenn das Terrain des LowerTiles, auf dem sich eine Figur, die NICHT 24×32 groß ist (ja, Normalgroße sind nicht betroffen), befindet, auf eine Durchlässigkeitsstufe eingestellt wurde.
    • Tiles mit der Einstellung "Above" (☆) werden sehr viel Freude daran haben, zusammen mit großen Figuren/Objekten falsch dargestellt zu werden und sich in sie hineinzuknietschen. Ich denke, viele wissen, was ich damit meine.

    FlexibleWalker auf MakerpendiumDE


    ~炬燵あ

    Vielen vielen Dank für die vielen Ansätze, es ist tatsächlich Panning (Raumausrichtung), das war mir irgendwie vorher nicht aufgefallen oder ich hab's gar nicht erst richtig gemacht. Wenn ich die auf die Extreme hin- und herschalte (ich nehm zumindest mal an, dass 0~127 stimmt), fällt es direkt auf.




    Arbeitsweise ist schwer zu beschreiben, der Hex-Editor hat recht wenig Anteil momentan, wenn ich nicht irgendwas per Hack fixen muss. Die meiste Zeit verbring ich im Disassembler (zum Herumwühlen und Adressen-/Funktionen-Benennung in RPG_RT.exe) und im einfachen Notepad (letzteres für Assembler-Code für Destiny.dll, die Hilfedokumente und allerlei Datensammel-Listen), gefolgt vom RPG Maker, um obskure Tests in ihm zusammenzukleben, über temporär eingebaute Funktionen nehm ich dann auch mal hin und wieder direkt mit DestinyScript bei laufendem Spiel ein paar Sachen im Speicher auseinander.


    Die neuste kleine Bastelei, von der ich berichten kann, hat erstmal nichts mehr mit Audio zu tun, sondern ist eine DestinyScript-Variante des Befehls zum Scrollen des sichtbaren Map-Ausschnitts um N Felder in eine beliebige Richtung mit den Standard-Tempoangaben. Die Koordinaten konnten zwar bereits geändert werden (und wenn man abseits von ganzen Feldern und der Tempowahl [1~6] arbeiten will, muss man das auch weiterhin direktbestimmend tun), ich wollte trotzdem eine Möglichkeit ohne die Nachteile von [Command] bieten, das klassische Feature zu nutzen. Das Zurückzentrieren auf die Spielerposition ist natürlich auch dabei, nur die WartenBisFertig-Einstellung nicht.


    ~炬燵あ

    Der eine MIDI-Kanäle-Datensatz hat sich mittlerweile wirklich als die jeweilige Lautstärke entpuppt, mit dem anderen von den beiden kann ich noch immer nichts anfangen. Wenn jemand Ahnung davon hat, bzw etwas weiß, das zum Dateiformat und zu einem Default-Wert von 64 passen würde, nur zu, ich bin neugierig. Wenn ich an den Werten herumdrehe, kann ich leider keinen Unterschied im Wiedergegebenen feststellen.


    In der Zwischenzeit ist auch der MP3-Part (auch wenn ich dringlichst abrate, dieses Format jemals zu verwenden) vom Audiosystem halbwegs analysiert (Bei WAV sieht's währenddessen eher aus wie Krätze und die Betrachtung vom OGG-System, das Maniac Patch mitbringt, steht noch aus) und mit Zugriffsmöglichkeiten versehen.


    Und hier ein paar neue Eventbefehls-Ersatzfunktionen, die beliebig in Scriptblöcke eingebaut werden können und teils mehr als ihre Vorlagen können:

    • BGM und SE aus einer Datei (Spiel/RTP), einem Datenbankeintrag oder dessen Standardeinstellung, falls seit Spielstart geändert, abspielen
    • BGM-FadeOut mit Millisekunden-Angabe, BGM Stoppen, Alle SEs stoppen
    • BGM-Eckdaten ins Event- (auf Befehl gemerkte BGM), Kampf- (gemerkte Map-BGM) oder Fahrzeug-Backup (gemerkte Lauf-BGM) verfrachten
    • BGM aus einem der drei Backups abspielen, jetzt auch mit FadeIn-Dauer, die auch permanent überschrieben werden kann

    ~炬燵あ

    "Command.ShowPicture()" scheint, wie ich kurz darauf festgestellt habe, in RPG2003-1.12MP seine Funktion ordentlich zu erfüllen, sieht jedenfalls jetzt noch danach aus, Tests mit [Move] und [Delete] sind noch ausstehend.


    Ein anderer Anschein hat mir dafür bis vorhin große Probleme bereitet, denn der MessageLink zum Ausführen von Code mitten in der Dialogtextbox hat, was ich ewig lange nicht gemerkt habe, alles an Text, abgesehen von aufgelösten Ergebniswerten in den jeweiligen Zeilen bei RPG2003-1.12MP plattradiert (ist halt blöd, wenn man nur isolierte Tests wie "\d[1]" macht, aber kein "Schinken \d[1] Käse"). Das Problem ist jetzt aber, ein paar hirnschmelzende Analysen und Experimente mit viel zu vielen offenen Programmfenstern später, aus der Welt.


    Abseits davon schleichen sich, daher straucheln ausstehende Parts der Hilfe leider gerade extrem, immer noch neue Mini-Ergänzungen in den Fundus von DestinyScript ein, die viel zu viel Extra-Arbeit mit sich bringen, ich aber einfach nicht lassen kann. Die letzten zwei Tage betraf das den Lesezugriff auf einige Eigenschaften des RPG_RT-internen MIDI-Players (also wirklich nur für genau dieses BGM-Format) ab RPG2000-1.50 und RPG2003-1.05. Aus diesem gibt es jetzt die eingestellten Werte für Fade/Lautstärke/Pitch/Panning, den FadeIn-/FadeOut-Status, die Taktposition und ein paar entschlüsselte Eckdaten der laufenden Datei (Anzahl enthaltener Tracks, Abspieldauerangabe in Ticks, TimeDivision-Wert). Außerdem gibt es zwei Datensätze, die anscheinend mit den 16 MIDI-Kanälen zu tun haben, ich aber nicht ganz sicher zuordnen kann (die Defaults für die Werte darin sind bei jedem Kanal [100 (??Lautstärke??)] und [64]).


    ~炬燵あ

    Eine Sache, die ich hier noch unbedingt teilen muss, ist, dass der Eventbefehls-Einschleuser für ShowPicture jetzt offenbar genau auf der absoluten Kotzgrenze von dem liegt, was der gute alte MASM32 bereit ist zu kompilieren. Einige Parameter, die durch Maniac Patch hinzugekommen sind, musste ich kürzen oder vereinfachen. Entsprechend ekelhaft sieht es an der entsprechenden Stelle auch in der aktuellen Version der Hilfe aus. Ich hab das Feature übrigens bisher nichtmal getestet, aber nur schonmal so am Rande:




    Die Reihenfolge der Parameter ist nicht verhandelbar, die Anweisung muss auch in anderen Versionen weiterhin funktionieren.


    ~炬燵あ

    Die meisten Seiten der Hilfe sind "fertig", andere angefangen/lückenhaft und voller unerledigter Fleißdrecksarbeit, ich hab's auch endlich hinbekommen, den Eigenschaften von Objekten eindeutig beizufügen, ob sie schreibgeschützt sind oder nicht, musste dafür viele natürlich nochmal selbst im Code durchgehen und habe nebenher noch ein paar Dinge gefixt.


    So langsam könnten wir uns also einem Fertigungsstadium nähern, in dem ich andere (vorzugsweise Programmier-Erfahrene und Makerkundige mit ausreichend Willen und Geduld, sich eine Scriptsprache anzueignen) an die aktuelle DLL lassen kann, um mit all den Sachen zu experimentieren, die DestinyScript ihnen so vor die Nase wirft, und zu schauen, wie gut die Hilfe ihren Zweck erfüllt. Und wann das passieren könnte, steht weiterhin in den Sternen.


    Happy Halloween, so für die verbleibenden PFÜMPF Minuten.


    ~炬燵あ