Scripting-Tipps

  • Hallo zusammen!


    Ich hoffe ich werde nicht gleich dafür erschlagen, aber mein Gedanke war, einen Thread zu eröffnen in dem:


    1. ausschließlich Lösungen, also keine weiteren Fragen und dergleichen, enthalten sind
    2. Jede Post nur ein Thema behandelt (welches im Titel verständlich dargestellt werden sollte)
    3. diese Lösungen gut dokumentiert sind (in einem Deutsch, das jeder versteht ;))
    4. auf evtl. "Gefahren" oder zusätzlich benötigte Änderungen hingewiesen wird
    5. die Versions-Nr. mit der dieses Code erfolgreich getestet wurde angegeben ist
    6. nur die Moderatoren Beiträge editieren und einfügen können


    Für Fragen, Ergänzungen und Änderungsvorschläge sollte ein - für jeden zugänglicher - Thread eröffnet werden ("Scripting-Tipps: Fragen/Ergänzungen/Vorschläge") in dem möglichst ebenso kurz und bündig (und verständlich) formuliert wird.


    z.B "Frage zu Beitrag #12: editieren von Spielständen"



    Ich hoffe die Community befürwortet meine Idee ..... und die Mod's nehmen sich der Sache an und schließen diesen Thread nicht :misstrau :anbet :D



    In dieser Hoffnung mache ich also mal den Anfang mit ............



    Edit von Powersurge: Wir haben die Idee grad mal besprochen und finden sie gut. Ich schließe den Thread; wer was dazu beizutragen hat, schickt's mir oder auch twenny per PN, und wir fügen's dann ein.

    [CENTER]Wer lesen kann ist klar im Vorteil ;)[/CENTER]

  • Damit ein Objekt auf einem Tisch platziert werden kann (und nicht nur auf dem Fußboden) benötigt man einen entsprechenden Eintrag in der Gameobject-Datei des Obkektes.


    Sehen wir uns das mal anhand des Telefons, bzw. der Telefone an:


    Datei: ...\Singles\GameObject\telephone.ago
    Singles-Version: 1.5


    Der Blau markierte Eintrag sorgt dafür, daß alle Telefone auch auf Tischen aufgestellt werden können.
    Daher ist dieser Eintrag für alle eigenen Objekte, bei denen dies gewünscht ist, zu übernehmen.


    Warum alle? Weil in den eigentlichen Telefon-Gameobject-Dateien
    ...\Singles\GameObject\TelephoneModern.ago und
    ...\Singles\GameObject\TelephoneOldschool.ago


    mit der Zeile:

    Code
    parentResource = telephone


    darauf hingewiesen wird, das die telephone.ago-Eigenschaften an sie "vererbt" werden.


    Gruß,


    bushido71

    [CENTER]Wer lesen kann ist klar im Vorteil ;)[/CENTER]

  • Vor dem Verändern von Dateien sollten stehts die originalen Daten gesichert werden.
    Dies kann prinzipiell durch zwei verschiedene Methoden realisiert werden:


    1. Durch Erstellen einer Sicherungskopie über den Windows-Explorer


    Hierbei habe ich es mir zur Gewohnheit gemacht nach der Erst- oder einer Neu-Installation den gesamten Spiele-Ordner auf CD oder DVD zu brennen (je nach Größe des Spiels). Somit ist man erst einmal auf der sicheren Seite!


    Zusätzlich kopiere ich die Datei im selben Ordner und benenne die Datei-Endung um.
    Aus der Datei


    "c:\Singles\Gamelogic\charDesc.acd"


    wird dann bei mir


    "C:\Singles\Gamelogic\charDesc.acd - ORIGINAL"


    Dies hat den Vorteil das man die Dateien im Explorer (wenn man unter "Ansicht"-"Symbole anordnen nach"-"Name" auswählt) direkt untereinander mit zugehöriger Backup-Datei angezeigt bekommt (anstelle der Windows-Vorgabe "Kopie von DATEINAME.ENDUNG").



    2. Durch Einfügen von Kommentaren


    Kommentare werden in Singles eingeleitet durch die Zeichen "#" oder "--". Da in so gut wie allen editierbaren Dateien bereits Kommentare seitens der Programmierer eingefügt wurden, sollte man bei Änderungen die gleiche Schreibweise benutzen, also entweder "#" oder "--".


    Ein Beispiel (...\Singles\config\game.cfg):



    Das Füllen mit Zeichen bis zum Seitenrand erleichtert das schnelle Auffinden von selbst gemachten Änderungen.


    Tipp: Die Option "Zeilenumbruch" im Windows-Editor sollte ausgeschaltet sein!


    Generell - insbesondere bei Änderungen deren genaue Auswirkungen man nicht vorhersagen kann - sollte man möglichst immer nur wenige Werte auf einmal verändern - besser noch, immer nur einen - und danach zuerst besagte Auswirkungen überprüfen. Spart letztendlich eine Menge Zeit bei der Fehlersuche, wenn mal etwas nicht wie gewünscht funktioniert.


    Hier eine kurze Auflistung aller mit einem Text-Editor veränderbaren Datei-Typen in Singles:


    *.ask (Animations-Dateien) hier sollte man nur ändern, wenn man weiß was man tut
    *.aan (Animations-Dateien) hier sollte man nur ändern, wenn man weiß was man tut
    *.ams (Mesh (3D-Modelle)) hier stehen unter anderem die für das entsprechende Objekt verwendeten Texturen (texture = DATEINAME_DER_TEXTUR_IM_TEXTURE-VERZEICHNIS_OHNE_DATEI-ENDUNG)
    *.cfg (allgemeine Konfigurations-Dateien)
    *.aap (Gamelogic-Dateien)
    *.aat (Gamelogic-Dateien)
    *.at2 (Gamelogic-Dateien)
    *.acd (Gamelogic-Dateien)
    *.agl (Gamelogic-Dateien)
    *.ago (GameObject-Dateien)
    *.dat (z.B. Savegame-Dateien)
    *.lua (Script-Dateien)
    *.wlk (Walkability-Dateien)
    *.awl (World-Dateien) hier sollte man nur ändern, wenn man weiß was man tut




    Gruß,


    bushido71

  • Datei: ..\Singles\Gamelogic\archtypes.aat
    Singles-Version: 1.4


    Öffnet die Datei archtypes.aat. Sie sieht folgendermaßen aus:



    Ändert bei den blau gekennzeichneten Zeilen das Attribut 'false' in 'true'.
    Also so:

    Code
    # boss
    		0 = true
    		...
    		# nurse
    		7 = true
    		...
    		# swashbuckler
    		6 = true


    Die 3 Charaktere werden nun in das Spiel eingebunden.
    Allerdings erscheint im Auswahlmenü nur ein weißes Bild.
    Dies ändert ihr, indem ihr passende Grafiken erstellt (oder einfach bushido71's Grafiken nehmt: hier ).
    Die Grafiken kommen in den Ordner: ..\Singles\Texture
    Die Grafiken müssen allerdings noch richtig benannt/umbenannt werden, damit sie vom Spiel erkannt werden.


    boss: guiCharElaine0.png
    nurse: guiCharElaine7.png
    swashbuckler: guiCharMike6.png


    lg
    Morrigan