Alter : 30 Ort : In einem Dorf in Baden Anmeldedatum : 28.10.09
Thema: CaveElevator Mi Jun 09, 2010 11:22 pm
es gibt ja diesen Höhlen Aufzug der in viele Adventures benutzt wird (der, der an der decke hängt) aber das problem ist wenn ich ihn in eine map einfüge wird immer automatisch noch dieses fundament das der normale aufzug hat mit dran gehängt, was aber blöd aussieht:/ also lautet die frage: Wie mach ich dieses fundament weg wenn ich die objekte per script plaziere?
Mr. X Feldmarschall
Alter : 27 Ort : Schweiz/Baselland Anmeldedatum : 23.02.10
Thema: Re: CaveElevator Mi Jun 09, 2010 11:27 pm
könntest es ja einfach das szen starten und ihn so platzieren und das teil löschen
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: CaveElevator Mi Jun 09, 2010 11:28 pm
Wahrscheinlich hat das Objekt noch irgendwo #include BASX (für X beliebige Zahl einsetzen) drinstehen. BASX sind Fundamente. Wenn man die in ein Objekt inkludiert, wird unter ihm automatisch ein Fundament entsprechender Länge erstellt (zB BAS7 für ~ 70 Pixel Fundament). Das musst du einfach rauslöschen.
Gurkenglas Oberst
Anmeldedatum : 04.01.09
Thema: Re: CaveElevator Mi Jun 09, 2010 11:35 pm
Aufzüge haben das Spezialfundament ELBS, man muss ja durchfahren können Du musst also das #include ELBS das am Anfang der Script.c des Aufzugs steht löschen.
Lord Helmchen Fregattenkapitän
Alter : 30 Ort : In einem Dorf in Baden Anmeldedatum : 28.10.09
Thema: Re: CaveElevator Do Jun 10, 2010 8:41 am
@Mr.X nein sso kann ich es nciht machen da ich sonst eine Objects.txt im szen habe und das möchte ich vermeiden^^
@Gurkenglas,Limeox ah ok thx ich schau gleich mal nach
EDIT: hm da ist nur ELEV includiert EDIT²: ich könnte ja vlt ins szenarion script RemoveAll(ELBS); machen das würde ja auch gehn oder?
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: CaveElevator Do Jun 10, 2010 2:05 pm
Wenn er ELEV inkludiert, inkludiert er natürlich auch alles, was ELEV inkludiert und was daran appendiert (?) wurde. Also kannst das auch einfach bei ELEV rauslöschen. Obwohl man dann natürlich eher schlecht neue bauen kann...
Edit: Ja, die kannst ja dann löschen, das funktioniert.
Lord Helmchen Fregattenkapitän
Alter : 30 Ort : In einem Dorf in Baden Anmeldedatum : 28.10.09
Thema: Re: CaveElevator Do Jun 10, 2010 2:11 pm
ja ich habs jetzt mit RemoveAll gemacht und es funktioniert es könnte nur zu nem problem werden wenn ich normale fahrstühle bauen will die haben dann ja auch kein fundament oder?
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: CaveElevator Do Jun 10, 2010 2:31 pm
Bei RemoveAll() werden nur die entfernt, die bei Ausführung des Befehls da sind. Wenn du dann neue baust, sind die natürlich trotzdem da.
Btw, baust du die von Hand ein (Koordinatenabgleich etc) oder hast du dafür eine Restore-Funktion oder Ähnliches? Von Hand wirds nämlich relativ ätzend.
Lord Helmchen Fregattenkapitän
Alter : 30 Ort : In einem Dorf in Baden Anmeldedatum : 28.10.09
Thema: Re: CaveElevator Do Jun 10, 2010 2:54 pm
ich plaziere sie erst mit hand und mache dann nen rechts klick drauf und gebe da so nen befehl ein dann erscheinen im engine fenster die koordinaten, die ich dann ins script übertrage also ich hab in ca5 min alle (ich glaube 7 ) fahrstühle plaziert
Wipfmagus Konteradmiral
Alter : 28 Anmeldedatum : 06.03.10
Thema: Re: CaveElevator Do Jun 10, 2010 9:39 pm
Kann man eigentlich #includes #appendieren? etwa
Code:
#strict #appendto ROCK #include FLNT
(dummes Beispiel, aber demonstriert immerhin das Prinzip)
Es wäre übrigens gut, wenn es eine Möglichkeit gäbe, bestimmte Scriptzeilen aus dem inkludierten Script zu ignorieren. z. B.
Beispiele:
#ignore 74 to 126
oder
#ignore ControlDoubleDig()
oder
#ignore /#/include *
oder auch
#ignore inherited();
Beide Möglichkeiten wären nützlich, um einen solchen Fahrstuhl - oder ein Zauberzelt, das Zauberturm und Zelt inkludiert, zu "entfundamentieren".
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: CaveElevator Do Jun 10, 2010 10:41 pm
Wipfmagus schrieb:
Kann man eigentlich #includes #appendieren?
Doku:
Zitat :
Eigene #include-Scripte werden nicht angehängt, angehängte Scripte aber mit inkludiert.
Um Funktionen zu ignorieren, schreibt man einfach eine leere Funktion. Dann schreibt man zB einfach...:
Zitat :
protected func ControlDigDouble() { }
... und das Ganze hat sich. Wenn du aber ControlDigDouble() selbst verwenden willst und die überladene Funktion verhindern willst, schreibst du einfach deine Funktion hin und lässt das _inherited() weg.
Wipfmagus Konteradmiral
Alter : 28 Anmeldedatum : 06.03.10
Thema: Re: CaveElevator Do Jun 10, 2010 10:57 pm
Mir war klar, dass man inkludierte Funktionen einfach überschreiben kann, indem man eine gleichnamige Funktion ohne inherited einfügt (geht bei #appendtos ja auch), aber das war ja nur ein Beispiel. Man braucht dies ebensowenig wie RandomX, aber wie RandomX erleichtert es vieles. Aber die anderen Beispiele
:::::
#ignore 74 to 126
oder
#ignore /#/include *
oder auch
#ignore inherited();
lassen sich afaik doch noch nicht wirklich gleichwertig umsetzen? Wenn doch, würde es mich umso mehr freuen.
Zuletzt von Wipfmagus am Fr Jun 11, 2010 5:51 pm bearbeitet; insgesamt 1-mal bearbeitet
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: CaveElevator Do Jun 10, 2010 11:06 pm
Nein, das geht nicht. Du musst dich schon durch alle inkludierten Objekte durcharbeiten und die Funktionen leerlassen bzw ohne _inherited() verfassen, die du nicht brauchst. Vor allem das mit den Zeilen wäre etwas schwierig, vor allem wenn sich die Objektscripts ändern (wie zB bei CR bei der Umstellung auf #strict, wo überall 1-2 Zeilen dazukamen, da wirds schon happig)... Aber es reicht schon, wenn man das manuell erweitert, dann muss man sich durch alle Includes durcharbeiten.