yoda
Vorlage von nuthowz auf www.zeroy.com</a>
Danke an OLD MAN WITH GUN für die Ergänzungen!
Danke an Verni@hter für´s Testen!
Wir basteln einen Aufzug...!
Baue Deinen Aufzug und wandle ihn in ein script_brushmodel um
Markiere den Aufzug, drücke die Taste "N" um das Entity-Fenster zu öffnen und weise diese Werte zu:
Key = targetname
Value = elevator
Nun musst Du die Auslöser (=Trigger) erstellen.
Erstelle sie als
-> trigger -> use_touch
und erstelle zwei Stück davon, einen für den Start und einen für das Ziel.
Weise den Triggern jeweils diese Werte im Entity-Fenster (markieren und dann Taste "N") zu:
Key = targetname
Value = switch
Verknüpfe sie nun mit Deinem Brushmodel, in dem Du das Model und die Trigger markierst und die Taste "W" drückst. Das war´s erst mal auf der Map-Seite.
Anmerkung OLD MAN WITH GUN:
Eigentlich unnötig - jedenfalls, was das Script dazu weiter unten sagt, da dort die Entities direkt per Namen angesprochen werden und nicht über target.
Jetzt brauchst Du noch das Script, mit dem sich der Aufzug bewegen lässt.
main()
{
level.elevatorDown = true;
level.elevatorMoving = false;
thread elevator_start();
}
elevator_start()
{
elevator = getentarray ("switch","targetname");
if ( isdefined(elevator) )
for (i = 0; i < elevator.size; i++)
elevator[i] thread elevator_think();
}
elevator_think()
{
while (1)
{
self waittill ("trigger");
if (!level.elevatorMoving)
thread elevator_move();
}
}
elevator_move()
{
elevatormodel = getent ("elevator", "targetname");
level.elevatorMoving = true;
speed = 10;
height =581;
if (level.elevatorDown) {
elevatormodel playsound ("elevator");
elevatormodel movez (height, speed);
elevatormodel waittill ("movedone");
level.elevatorDown = false;
}
else
{
elevatormodel playsound ("elevator");
elevatormodel movez (height - (height * 2), speed);
elevatormodel waittill ("movedone");
level.elevatorDown = true;
}
level.elevatorMoving = false;
-> Wohin genau damit?
Antwort OLD MAN WITH GUN:
Da gibt es zwei Möglichkeiten:
Direkt in der mp_map.gsc Datei oder als eigenständige gsc-Datei.
Möglichkeit 1:
(-> in der mp_map.gsc)
main()
{
maps\mp\_load::main();
// hier folgen noch andere mapspezifische Einstellungen
thread elevator();
}
elevator() //hier stand im script main, darf es in einem Script aber nur einmal geben und deshalb umbenannt.
{
evel.elevatorDown = true;
level.elevatorMoving = false;
// und der ganze Rest
}
Möglichkeit 2:
(-> als eigenständige gsc-Datei)
Im Ordner /raw/maps/mp eine neue Textdatei erzeugen und das Script dann dort hinein kopieren. Die Textdatei nennt man dan z.B. elevator.gsc
Dann muss in der mp_map.gsc noch eine Zeile hinzugefügt werden:
main()
{
maps\mp\_load::main();
// hier folgen noch andere mapspeziefische Einstellungen
thread maps\mp\elevator::main();
}
Bei der Methode 2 muss man dann noch folgenden Eintrag im Zone File hinzufügen:
rawfile,maps/mp/elevator.gsc
---
Und hier ein vorbereiteter Aufzug in einer .map-Datei + den Inhalt für die .gsc-Datei in einer Textdatei, bereitgestellt von steinacker. Danke schön für die Mühe!
Download Beispiel-Aufzug @ Dr. Long
---
Direkt verlinken:
https://www.opferlamm-clan.de/wbb2/thread.php?threadid=10481
---
Danke an OLD MAN WITH GUN für die Ergänzungen!
Danke an Verni@hter für´s Testen!
Wir basteln einen Aufzug...!
Baue Deinen Aufzug und wandle ihn in ein script_brushmodel um
Markiere den Aufzug, drücke die Taste "N" um das Entity-Fenster zu öffnen und weise diese Werte zu:
Key = targetname
Value = elevator
Nun musst Du die Auslöser (=Trigger) erstellen.
Erstelle sie als
-> trigger -> use_touch
und erstelle zwei Stück davon, einen für den Start und einen für das Ziel.
Weise den Triggern jeweils diese Werte im Entity-Fenster (markieren und dann Taste "N") zu:
Key = targetname
Value = switch
Verknüpfe sie nun mit Deinem Brushmodel, in dem Du das Model und die Trigger markierst und die Taste "W" drückst. Das war´s erst mal auf der Map-Seite.
Anmerkung OLD MAN WITH GUN:
Eigentlich unnötig - jedenfalls, was das Script dazu weiter unten sagt, da dort die Entities direkt per Namen angesprochen werden und nicht über target.
Jetzt brauchst Du noch das Script, mit dem sich der Aufzug bewegen lässt.
main()
{
level.elevatorDown = true;
level.elevatorMoving = false;
thread elevator_start();
}
elevator_start()
{
elevator = getentarray ("switch","targetname");
if ( isdefined(elevator) )
for (i = 0; i < elevator.size; i++)
elevator[i] thread elevator_think();
}
elevator_think()
{
while (1)
{
self waittill ("trigger");
if (!level.elevatorMoving)
thread elevator_move();
}
}
elevator_move()
{
elevatormodel = getent ("elevator", "targetname");
level.elevatorMoving = true;
speed = 10;
height =581;
if (level.elevatorDown) {
elevatormodel playsound ("elevator");
elevatormodel movez (height, speed);
elevatormodel waittill ("movedone");
level.elevatorDown = false;
}
else
{
elevatormodel playsound ("elevator");
elevatormodel movez (height - (height * 2), speed);
elevatormodel waittill ("movedone");
level.elevatorDown = true;
}
level.elevatorMoving = false;
-> Wohin genau damit?
Antwort OLD MAN WITH GUN:
Da gibt es zwei Möglichkeiten:
Direkt in der mp_map.gsc Datei oder als eigenständige gsc-Datei.
Möglichkeit 1:
(-> in der mp_map.gsc)
main()
{
maps\mp\_load::main();
// hier folgen noch andere mapspezifische Einstellungen
thread elevator();
}
elevator() //hier stand im script main, darf es in einem Script aber nur einmal geben und deshalb umbenannt.
{
evel.elevatorDown = true;
level.elevatorMoving = false;
// und der ganze Rest
}
Möglichkeit 2:
(-> als eigenständige gsc-Datei)
Im Ordner /raw/maps/mp eine neue Textdatei erzeugen und das Script dann dort hinein kopieren. Die Textdatei nennt man dan z.B. elevator.gsc
Dann muss in der mp_map.gsc noch eine Zeile hinzugefügt werden:
main()
{
maps\mp\_load::main();
// hier folgen noch andere mapspeziefische Einstellungen
thread maps\mp\elevator::main();
}
Bei der Methode 2 muss man dann noch folgenden Eintrag im Zone File hinzufügen:
rawfile,maps/mp/elevator.gsc
---
Und hier ein vorbereiteter Aufzug in einer .map-Datei + den Inhalt für die .gsc-Datei in einer Textdatei, bereitgestellt von steinacker. Danke schön für die Mühe!
Download Beispiel-Aufzug @ Dr. Long
---
Direkt verlinken:
https://www.opferlamm-clan.de/wbb2/thread.php?threadid=10481
---
wenn du willst, kann ich dir das auch per email schicken
iss kein problem
Zitat: