Willkommen zur zweiten Runde im Kampf gegen zeitraubende Tätigkeiten beim Modden.
Inzwischen dürfte sich herausgestellt haben, dass ich der Programmierer-Zunft alle Ehre mache, und zwar durch Faulheit. Ja, Programmierer machen nicht gerne Dinge mehrmals, wenn es der Rechenknecht tun kann. Und so hat es mich als Helfer- und Courseplay-Poweruser relativ bald gelangweilt, dass ich auf Maps entweder per Hand oder bestenfalls per Suchen & Ersetzen die Collisionen von Zäunen und ähnlichen Störfaktoren entfernen musste.
Also habe ich kurzerhand wieder dem foxe ein paar kurze Anweisungen gegeben und jetzt wühlt der sich in nicht mal einer Sekunde durch eine 30MB große map01.i3d
Was braucht ihr?
eine entpackte Map (von der ihr eine Sicherheitskopie habt. GLAUBT ES MIR HALT ENDLICH! )
Den XML-Editor foxe: http://www.firstobject.com/dn_editor.htm
Mein angehängtes Script collision.foal (Zip entpacken)
Was ist genau zu tun?
- Zuerst öffnet ihr die Map im Giants Editor und markiert euer Hindernis. Im Beispiel ist das der Zaun "fence01_end". Den Namen notiert ihr euch bitte.
- Jetzt den GE wieder schließen und dafür den foxe öffnen
- map01.i3d in foxe öffnen
- collision.foal in foxe öffnen
- im Bereich //Variablen eintragen die nötigen Dinge eintragen. Beschreibung unten*
- Taste F9 drücken
- im Ausgabe Fenster rechte Maustaste -> Open in document window
- neues Dokument wieder als map01.i3d abspeichern
- map01.i3d wieder im GE öffnen und nochmals speichern (das ist nötig, weil der GE die neuen Einträge an eine bestimmte Position verschiebt)
In meinem Beispiel will ich also dem folgenden "Shape" die collision austreiben:
Dazu sind folgende Einträge im Script nötig:
Die ersten drei Variablen beschreiben, was bzw. wo gesucht wird. Suche einen Eintrag Shape der das Attribut name mit dem Wert fence01_end enthält.
Die weiteren zwei Variablen beschreiben, was im gefundenen Eintrag geändert werden soll. Ändere/Erstelle Attribut collision mit dem Wert false.
Hier zeigt sich wieder der Vorteil des foxe, da er das Attribut ändert, wenn es schon vorhanden ist, oder anderenfalls erstellt.
Einen Stolperstein habe ich entdeckt: In meiner Map gibt es verschiedene Objekte, die den Namen g0 tragen. Ich möchte aber nur die ändern, die als Baum in Erscheinung treten. Dazu gebe ich EINEM Objekt im GE einen anderen Namen (testbaum) und speichere ab.
Dann suche ich im foxe per Edit->Find nach "testbaum" und schaue was dieses Shape für eine shapeId hat. Jetzt kann ich statt nach dem Namen nach der shapeId suchen, die auf jeden Fall eindeutig ist.
Die Suchwerte lauten dann entsprechend so:
Ich habe es jetzt mal collision.foal genannt, weil es mein Hauptanwendungsgebiet ist. Man kann natürlich auch alle anderen Attribute damit manipulieren.
Viel Spaß!