Bäume entfernen (Editor)

Hallo zusammen,

habe eben ein eigenes Szenario gebaut, indem ich ein bestehendes geleert und dann entsprechend gezeichnet habe.

Leider kann ich aber nicht alles "leeren". Die Bäume aus dem Ursprungslevel bleiben bestehen und hängen nun wild in der Luft rum. Kann ich diese auch irgendwie entfernen? Vegetation auf 0 hilft hier leider nicht.

Und wo wir schonmal dabei sind, kann einstellen, wo auf der map die Bäume vorzugsweise spawnen sollen?

Vermutlich hast du das Szen im Editor gestartet, Karte bemalt und gespeichert, nicht wahr?
Wenn das der Fall ist, passieren im Szen mehrere Dinge. Zum einen wird die Funktion Initialize() gesperrt, d.h. bei Spielstart werden keine neuen Objekte erstellt.
Zum anderen wir ein Textdokument (Objects.txt) erstellt, das alle Objekte im Szen mit ID und Position festhält (und bei Spielstart erstellt). Dort wirst du auch deine Bäume finden.

Was ich normalerweise mache um das zu verhindern, ist das Szen in dem ich eine Karte malen will verdoppeln, im Duplikat malen, dann NUR die Karte (map.png oder .bmp) wieder ins Original rüberziehen. Dann hast du die neue Karte aber keine Speicherdateien (das Bedeutet aber auch dass du auf diese Art keine Objekte erstellen kannst. Normalerweise macht man das aber auch im script.c; in der erwähnten Initialize() Funktion. Am besten bei anderen Szens abgucken)

Ja genau das habe ich dann am Ende auch so gemacht nachdem ich ein bisschen rumgespielt habe. Ist in der Tat wahrscheinlich das einfachste.

Das bedeutet dann aber auch, dass ich in der objects txt die Bäume platzieren kann wo immer ich will, wenn ich die Koordinaten kenne, richtig?

Dank dir für die schnelle hilfe

An und für sich ja. Am besten aber nicht mit der Objects.txt arbeiten, sondern direkt im script.c

das sieht dann irgendwie so aus:

<br/>// Szenname<br/><br/>#strict <br/><br/>func Initialize() {<br/><br/>//hier kommen deine Objekte rein, immer mit ; und enter auf eine neue Zeile am besten<br/>&#160; &#160; CreateObject(FLNT, 100, 250, -1);<br/>&#160; &#160; CreateObject(MONS, 100, 250, -1);<br/>// erstellt ein Objekt ( ID des objekt, x koordinate, y koordinate, -1); &lt;- nicht vergessen<br/><br/>&#160; &#160; return(1);<br/>}<br/>
da ist ein # vor dem strict, ka wie ich den bb code loswerde q.q

Das erstellt dann also n Flint und ein Monster (hoffentlich) auf den Koordinaten 100 zu 250. Da kannste beliebig viele Objekte erstellen, gewisse haben aber auch Funktionen in sich die hier aufgerufen werden können (z.B. Strickleitern oder so zeug, die Leiter bei Hazard haben z.B. die Funktion set(25) um eine 25 Einheiten lange Leiter zu erstellen … musst die die entsprechenden Objekte genauer abschauen, aber mit dem solltest du grundsätzlich alles platzieren können.
Wenn du fleissig bist kannste Sachen aus der Objects.txt einfach ID x und y kopieren und ins CreateObject hineinpacken, dann ist das alles ganz sauber geregelt.

Notiz am rande, da du initialize nich blockierst, werden die Umweltregeln neu angewendet und neue bäume zu Spielstart erstellt. Diese suchen nach erd-material (ich glaube mit sky-hintergrund) und pflanzen dort bäume und gras hin. Es sollte also immer dort wo erde ist bäume haben und du brauchst nur per Script platzieren wenn du sonst irgendwo Bäume willst.

meine c4 Kentnise sind bescheiden, ich hoffe ich hab bei der Syntax nix verkackt :tongue:

>da ist ein # vor dem strict, ka wie ich den bb code loswerde q.q


Das kommt von der Markdown-Formatierung. Mit ``` statt [(/)tt] wird das dann nicht interpretiert.

Naja es war auch ohne das [(/)tt] gross geworden :slight_smile: aber danke für den Tipp mit ```

>Das bedeutet dann aber auch, dass ich in der objects txt die Bäume platzieren kann wo immer ich will, wenn ich die Koordinaten kenne, richtig?


Wenn du statt dem Landschaftstool den weißen Cursor auswählst, kannst du einfach so Objekte per Drag and Drop im Szenario platzieren. Sowohl neue erstellen als auch bestehende verschieben oder löschen.