Unter den Einstellungen könnt Ihr verschiedene Einstellungen vornehmen:
Wo ist das Stammverzeichnis
Wohin sollen neue Items gespeichert werden
Welche Validatoren sind Aktiv
Laden die Daten beim Start automatisch
Im GUI der Items lassen sich die verschiedenen Items anschauen und Bearbeiten.
Zum bearbeiten eines Items, doppelklicken, danach geht das Bearbeiten-Fenster auf.
Wenn Ihr dem Item nun einen neuen Namen gebt, wird ein Neues Item mit diesem Namen erstellt.
Beschreibung:
Analyse der Gothic Scriptdateien, finden von Fehlern und dem erleichtern von gewissen Aufgaben.
Das Tool kann die Scriptdateien auslesen und liest zuerst alle Funktionen und NPC's. Mit dieser Information kann danach weiter Validiert werden.
Ich habe das Programm noch nicht ausprobiert, aber hier schon mal meine Meinung:
Erstmal Glückwunsch zum ersten Release.
Ich hätte mich irgendwie ein bisschen mehr gefreut, wenn endlich mal jemand den Stampfer von Sumpfi erweitert hätte.
Ansonsten sieht das Tool wirklich nützlich aus. Was ich mir wünschen würde, wäre noch ein "Item-Fenster" in dem man mit ein paar Klicks Items auflisten und auch erzeugen kann (einfaches Feld mit Maske ala "Itemname: ", "Wert: " und ein paar Checkboxen für z.B. "Missionsitem: [x]").
Was featurewünsche angeht:
- "Prüfen ob zu jedem Dialog eine WAV Datei existiert" ist irrelevant wenn man eine mod ohne Sprachausgabe hat. Einstellungsmöglichkeit was alles validiert werden soll wäre schön (dann kann man Dinge weglassen die einen nicht interessieren).
- Zusätzlich zum Namen sollte die Instanz angezeigt werden, NPCs ohne Namen werden zurzeit eher seltsam behandelt: [Bild: attachment.php?s=77197aa14744efa7d54e710930446fa4&attachmentid=47447&d=1541603954&thumb=1]
Suche nach Instanznamen wäre auch praktisch.
Geändert von Cryp18Struct (07.11.2018 um 15:26 Uhr)
Danke für das Feedback.
Ich werde versuchen bis Ende der Woche eine korrigierte Version zu erstellen.
Die Suche und Anzeige der Instanznamen und das mit dem Encoding habe Ich bereits für .2 ergänzt.
Das mit dem Laden muss Ich schauen. Anscheinend wurde da nicht erkannt, das Alle aufgaben abgeschlossen waren.
Was meinst du mit dem Rauslöschen der NPC's?
Und was meinst du nach der Validierung mit unvollständigen Informationen? Brauchst du noch den NPC/Funktionsname oder soll bei einem Klick darauf sogar ein Programm deiner Wahl aufgehen mit der entsprechenden Datei?
Zitat von Fisk2033
Ich hätte mich irgendwie ein bisschen mehr gefreut, wenn endlich mal jemand den Stampfer von Sumpfi erweitert hätte.
Ansonsten sieht das Tool wirklich nützlich aus. Was ich mir wünschen würde, wäre noch ein "Item-Fenster" in dem man mit ein paar Klicks Items auflisten und auch erzeugen kann (einfaches Feld mit Maske ala "Itemname: ", "Wert: " und ein paar Checkboxen für z.B. "Missionsitem: [x]").
Aktuell konzentriere Ich mich auf etwas anderes was der Stampfer kann. Was wären denn deine grössten Wünsche für den Stampfer? Editieren von Dateien stehen bei mir irgendwann später auch an.
Das mit dem Items kann Ich machen.
Was unterscheidet eine Item Instanz von anderen Instanzen?
Was unterscheidet eine Item Instanz von anderen Instanzen?
Sie leiten sich von der C_Item-Klasse ab, d.h.
Code:
instance foo (C_ITEM) {};
An der Stelle von C_Item könnte sich allerdings auch der Identifier eines Prototyps (keyword 'prototype') befinden, der sich wiederum von einem Prototypen ableiten könnte etc. bis irgendwann dann ein Prototyp sich von C_Item ableitet. Items werden aber meines Wissens in den Originalskripten nicht von Prototypen abgeleitet, also vielleicht musst du dir da keine Gedanken machen (oder das Framework oder du haben sowas wie Type Resolution schon implementiert).
[QUOTE=Multithread;25968469]
Aktuell konzentriere Ich mich auf etwas anderes was der Stampfer kann. Was wären denn deine grössten Wünsche für den Stampfer? Editieren von Dateien stehen bei mir irgendwann später auch an.
/QUOTE]
Also im Endeffekt bin ich einfach immer ein Fan von "alles in einem". Deine NPC-Übersicht im Stampfer wäre ziemlich cool, vor allem weil er auch schon einiges bietet wie alle NPC oder Item-Instanzen auflisten usw.
Meine größten Wünsche für den Stampfer wären:
- NPC-Generator (der auch neue Facetexturen anzeigt) / Editor wie es ihn bei dir schon gibt
- Item-Generator (wie schon hier beschrieben)
- Quest-Manager (wurde von Sumpfi im Quellcode schon teilweise umgesetzt, aber nie finalisiert)
- Parser-Unterstützung für LeGo/Ikarus
Hallo, ich glaube ich habe mich einfach nur doof ausgedrückt.
Zitat von Multithread
Das mit dem Laden muss Ich schauen. Anscheinend wurde da nicht erkannt, das Alle aufgaben abgeschlossen waren.
Was meinst du mit dem Rauslöschen der NPC's?
Und was meinst du nach der Validierung mit unvollständigen Informationen? Brauchst du noch den NPC/Funktionsname oder soll bei einem Klick darauf sogar ein Programm deiner Wahl aufgehen mit der entsprechenden Datei?
Ich meinte: bevor ich in der NPC Filter Suchmaske zum ersten mal etwas eingebe ist die NPC Liste leer. Erst wenn ich in der Maske beliebige Buchstaben eingebe werden NPCs angezeigt. Wenn ich alle Buchstaben dann wieder rauslösche (so das die Maske leer ist) werden (alle?) NPCS angezeigt. Es sollten dann wahrscheinlich schon alle NPCs angezeigt werden, bevor man in der Maske irgendwas eingibt und sie noch leer ist.
Wegen unvollständig: Es werden nur sehr wenige der Dialogzeilen ohne zugehörige .wav angezeigt(müssten bei mir mehrere tausend sein, angezeigt werden 50 oder so). Da war ich mir nicht sicher ob das so Absicht ist. Falls du da irgendein Limit eingebaut hast ist es nicht direkt ersichtlich. Falls das Programm zurzeit alle Dialogzeilen anzeigen soll bei denen keine .wav vorhanden ist, so tut es das bei mir nicht.
(Praktisch gesehen bin ich an der Information auch nicht interessiert, aber ich war mir nicht sicher ob das so richtig ist.)
Was die wenigen 'Fehler' angeht: ich hatte die Anzahl von Meldungen auf 300 begrenzt. Dies ist nun nicht mehr der Fall.
Die 'Information' mit den Fehlenden ist auch nur ein zwischenschritt. Das wirklich wichtige habe Ich inzwischen hochgestellt.
Die NPC Liste sollte nach dem Laden automatisch aktualisiert werden.
PS: Gibt es noch mehr stellen im Code, wo ein Kommentar im Spiel selber ersichtlich wird ausser beim AI_Output?
Ansonsten wäre Ich froh, das mir jemand hilft, der sich mit ANTLR oder dem Deadalus Parser auskennt da helfen könnte dies zu ergänzen.
Was den Stampfer angeht:
Ich habe mir den C# Code angeschaut.
Aktuell gibt es mMn zu wenig Überschneidung, als das es sich lohnt das ganze in den Stampfer zu Integrieren.
Ich bin dem ganzen aber nicht abgeneigt, dies im späteren Verlauf zu tun.
Allerdings mache Ich aktuell noch ganz andere Dinge als der Stampfer. Und Ich müsste den Stampfer zuerst auf 4.7 Aktuallisieren, bevor Ich etwas von meinem Code da rein bekomme.
Bist du dir sicher, dass diese Kommentare nicht einfach nur Whitespace sind? Ich würde erwarten, dass das engineseitig oder so gelöst ist.
Irgendwer muss der Engine ja auch sagen, das dies 'Whitespaces' sind, da einige Programmiersprachen ja REM als Kommentar-marker verwenden.
Und z.B. der Roslyn Compiler (.NET), Rendert sämtliche Kommentare auch in den Parse-Tree. Dort werden diese später ua. auch in der Fertigen DLL verwendet, um einem Benutzer der DLL über die IDE Informationen zu diesem Funktionsaufruf mitzuteilen.
Falls es NICHT möglich ist mit ANTLR, werde Ich wohl für diese Fälle eine entsprechende Umgehung schreiben müssen (Text Datei nochmals öffnen und die Aktuelle Zeile finden..), wie Ich es schon für den AI_Output mache.
EDIT: Zu LeGo und Ikarus sollte mein Tool kompatibel sein, da Ich alle Scriptdateien lade, Kategorisiere und am ende Debugge*.
Debuggen ist das falsche Wort, Ich Simuliere eine Ausführung unter Ignoranz von bestimten Fehlern und Werte das Entstehende Objekt aus.
Den Zusammenhang verstehe ich nicht. Was ich sagen wollte: Ich erwarte, dass es keinen Einfluss auf das produzierte Kompilat hat, wenn man diese Kommentare entfernt. Sie sind also einfach nur Whitespace (anders als die Kommentare bei AI_Output, die zwar keinen direkten Einfluss auf das Kompilat haben, aber immerhin für die OUs verwendet werden).
Ja, das die Kommentare egal sein sollten, war auch meine erste Erwartung.
Aber es ist ja nicht nur beim AI_Output so, das der Kommentar eine Bedeutung hat, sondern auch bei Konstanten Arrays.
Dort geht es sogar so weit, das im Kommentar drin steht, unter welchem Namen es zu erreichen ist.
Des weiteren sind gewissen Metainformationen in den Kommentaren Hinterlegt (Welche Konstanten z.B. für die NPC_FLAGS verwendet werden ua.), welche durchaus auch hilfreich sein können.
Ja, das die Kommentare egal sein sollten, war auch meine erste Erwartung.
Aber es ist ja nicht nur beim AI_Output so, das der Kommentar eine Bedeutung hat, sondern auch bei Konstanten Arrays.
Dort geht es sogar so weit, das im Kommentar drin steht, unter welchem Namen es zu erreichen ist.
Des weiteren sind gewissen Metainformationen in den Kommentaren Hinterlegt (Welche Konstanten z.B. für die NPC_FLAGS verwendet werden ua.), welche durchaus auch hilfreich sein können.
Hast du ein Beispiel für die Arrays? Meines Wissens sind die allermeisten Kommentare lediglich Erklärungen, die es einfacher machen, den Code zu verstehen, haben aber (bis auf AI_Output und die SVMs) keinen Effekt aufs Spiel.
Ja, das die Kommentare egal sein sollten, war auch meine erste Erwartung.
Aber es ist ja nicht nur beim AI_Output so, das der Kommentar eine Bedeutung hat, sondern auch bei Konstanten Arrays.
Dort geht es sogar so weit, das im Kommentar drin steht, unter welchem Namen es zu erreichen ist.
Du machst dir da unnötig Gedanken. Bei den arrays sind die Kommentare egal, wie von Lehona beschrieben (sind dort nur der Übersicht halber angegeben).