Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Einen Lehrmeister erschaffen?
#38
Ich verwende, so wie du, das alte Firefox Addon SQLite Admin. Läuft bei mir zusammen mit einem alten Waterfox immer noch einwandfrei. Aber das mag eventuell damit zusammenhängen, dass ich kein Windows habe.

Ein Nachteil des SQLite Admins ist allerdings, dass man dort nicht nach BLOBs suchen kann. Deshalb habe ich die gesamte statica1.db4 als sql Datei exportiert. Wenn ich jetzt irgendwelche BLOBs suchen will, verwende ich dazu diese Datei.

Anscheinend hast du noch nicht ganz verstanden, wie Statements funktionieren. Habe ich dir schon mal erklärt und möchte ich an dieser Stelle nicht nochmal ausführlich wiederholen.
Ein Statement enthält eine Aktion, die ausgeführt werden soll. Du brauchst irgendeine Art von Auslöser für diese Aktion, damit das Spiel weiß wann diese Aktion ausgeführt werden soll. Der Auslöser ist häufig ein ActionScript, in Dialogen kann ich Statements (meistens, nicht immer) aber auch direkt aufrufen.
Wenn die Durchführung einer Aktion von Bedingungen abhängig ist, kommen Conditions ins Spiel. Wenn du z. B. einem NPC einen Gegenstand geben sollst, dass ist die Übergabe davon abhängig, ob du diesen Gegenstand auch im Inventar hast. Etwas, was du nicht besitzt, kannst du ja nicht abgeben. Dein Skillbook, soll sich aber immer öffnen, wenn man es anklickt, insofern brauchst du hier keine Conditions. Beim Skillbook im Magierturm verhält es sich so, dass vier verschiedene Skillbooks in der Datenbank hinterlegt sind. Die Conditions in dem Statement fragen ab, ob bestimmte Questen schon erledigt sind. Wenn eine davon zutrifft, wird das dazugehörige Skillbook geöffnet. wenn nicht wird die nächste Bedingung überprüft. Wir haben hier also nicht anderes als eine IF...THEN...ELSE Anweisung wie in einer Programmiersprache oder wie die WENN Funktion in Excel, falls dir das eher etwas sagt.

Letzendlich ist der Inhalt der Datenbanken nichts anderes als Programmcode einer Programmiersprache, die ich für mich Nebulascript genannt habe, da man damit die Nebula Engine des Spiels prgrammiert. Wie jede andere Programmiersprache hat auch Nebulascript seine ganz eigene Syntax, an die ich mich halten muss, wenn mein Code funktionieren soll. Wenn du diese Syntax für schwachsinning hältst, ist das völlig okay. Leider wirst du nicht darum herumkommen, dich trotzdem an sie zu halten.
Dazu kommt, dass man sich kein Buch zu dieser Sprache zulegen kann und es auch keine Youtubevideos dazu gibt um sie zu lernen. Und selbsterklärend ist der Inhalt der Datenbanken auch nicht, wie du ja selbst schon festgestellt hast. Wie schon erwähnt gab es damals im dtp Forum eine Modding Unterforum, aber da meine erste Frage (bezog sich auf Fallen) nicht beantwortet werden konnte, habe ich dann auch keine Fragen mehr gestellt. Offensichtlich war ich in Bereiche vorgedrungen, mit denen sich noch kein anderer beschäftigt hatte. Welche Möglichkeit bleibt dann noch, wenn ich selbst modden möchte? Ich muss den Code analysieren, versuchen ihn zu verstehen und dann für meine eigenen Bedürfnisse anzupassen. Ein Beispiel dazu. Es gibt an verschiedenen Stellen im Spiel diesen Fadeout/Fadein Effekt, bei dem sich der Bildschirm kurz verdunkelt und nach einer kurzen Pause wieder hell wird. Ich brauchte diesen Effekt um Firutin Bartlenhaus vom Sanften Ochsen zu Yetomold Zornbold zu transferieren, wusste aber nicht, wie er realisiert wird. Das erste Mal taucht dieser Effekt direkt nach dem Dialog mit Piet auf, in dem man den Auftrag erhält mit Jana nach Zunderschwamm zu suchen. Also habe ich zuerst den Dialogtext in der locale.db4 gesucht. Damit bekam ich die GUID der Textzeile. Diese GUID habe ich dann in der Tabelle _Story_DialogTakes gesucht. Hier habe ich dann ein Statement gefunden, das einen Verweis auf ein ActionScript enthält. Ich habe dann in dieser Tabelle nach dem Script gesucht und dann den Verweis auf ein Statement gefunden, dass den vom mir gesuchten Code für die Implementierung des Fadeout/Fadein Effekts enthielt.
Das ist zeitaufwendig, mühselig und langwierig, auf jeden Fall. Ich habe mehrere Jahre gebraucht um an meinen jetzigen Kenntnistand zu kommen. Und wenn ich mir anschaue, was es so an Mods für die Drakensangspiele gibt, dann ist da nicht viel und das meiste davon stammt von meiner Freundin und mir. Es gab zwar über die Jahre hinweg immer mal wieder Fragen zum Modding, aber so wie ich das sehe, haben alle schnell wieder aufgegeben, nachdem sie gemerkt haben, wie umständlich das alles ist.
Dazu kommt dann noch, dass viele Sachen. die man modden möchte, nicht auf Anhieb funktioneren. War bei mir auch so. Ich habe mich aber nicht entmutigen lassen, sondern weitergemacht. Es gibt beim Auge der Göttin diese Stelle, an der die Begleiter in Hühner verwandelt werden. Ich habe eine gefühlte Ewigkeit gebraucht, bis ich das am Laufen hatte. Manchmal stellt man auch fest, dass bestimmte Sachen, die man gerne umsetzen möchte einfach nicht gehen. Dann hat man eben einige Stunden verschwendet. Gehört auch dazu. Entscheidend ist, dass ich immer Spaß am Modden hatte, trotz aller Rückschläge. Jetzt bin ich (außer meiner Freundin) wahrscheinlich so ziemlich der Einzige, der sich mit Drakensang Modding auskennt, aber das war nie mein Ziel. Uns ging es immer nur darum neue Inhalte für die Spiele zu erstellen, weil die Drakensang Spiele einfach toll sind. Und wenn ich mir das Feedback zu unseren Mods anschaue, kann ich nur sagen, die Zeit, die wir investiert haben, hat sich gelohnt.
Jetzt habe ich aber genug geschwafelt. Ich entschuldige mich für die Wall of Text, aber das musst ich jetzt einfach mal loswerden. Zurück zuk eigentlichen Thema.

Man kann bei StateObjects keine Statements hinterlegen, das es kein Feld dafür gibt. Dafür gibt es Felder für ActionScripts, mit denen man dann Statements aufrufen kann. Wäre vielleicht einfacher, wenn das ginge, aber da es nicht vorgesehen ist, muss ich mich an die Vorgehensweise halten, die das Spiel vorsieht. Also brauch ich ein ActionScript, dass mein Statement aufruft.
Ein Statement besteht aus mindestens zwei Zeilen in der Tabellen. (Es gibt auch Statements, die aus 20, 30 oder noch mehr Zeilen bestehen. Im Auge der Göttin habe ich ein Statement, das aus fast 100 Zeilen besteht.) Eine Zeile mit Begin und eine Zeile mit Action. Das ActionScript ruft immer die Zeile mit Begin auf. Die Begin Zeile ruft über den Identifikator dann die Action Zeile auf. In der Action Zeile steht dann die Anweisung, die ausgeführt werden soll. Es handelt sich dabei in keinster Weise um einen Lückenfüller, sondern, wie ich in meinem anderen Beitrag schon geschrieben habe, um eine andere Schreibweise der GUID der Action Zeile. Das wird benötigt, da die Begin Zeile keine Aktion enthält. Vermutlich wäre es einfacher, wenn wir nur eine Zeile mit der Aktion hätten, aber das ist nun mal nicht vorgesehen z
und darum muss ich mich daran halten. Die Entwickler der Nebula Engine haben eben festgelegt, dass ich hier zwei Stromkabel für die Lampe brauche und dann muss ich auch zwei nehmen, auch wenn ich der Meinung bin, das eins ausreicht. Du musst dich beim Modden an die vorgeschriebene Syntax halten und kannst nicht deine eigene verwenden, nur weil sie dir sinnvoller erscheint. Ich gehe davon aus, dass sich die Entwickler etwas dabei gedacht haben, warum das so ist.
Zitieren


Nachrichten in diesem Thema
Einen Lehrmeister erschaffen? - von MiracleXXL - 01.12.2023, 18:57
RE: Einen Lehrmeister erschaffen? - von Lord Demon - 20.12.2023, 09:56
RE: Einen Lehrmeister erschaffen? - von Pergor - 21.12.2023, 08:41



Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste