yoda
Grundlage sind die Anleitung und das Script von Dad of Azz und cybershot in ihrer CoD2-Anleitung auf modsonline.com
Danke an OLD MAN WITH GUN für die Überarbeitung und Verbesserungen!
Danke an Verni@hter und OLD MAN WITH GUN für´s Testen!
Teleporter einbauen
Als Beispiel hier mal ein Vorschlag für einen Start- und Ziel-Bereich - der Spieler soll bei Betreten das Start-Bereiches zum Ziel teleportiert werden:

Erstelle Deinen Start-Bereich und platziere einen Brush mit der Trigger-Textur an der Stelle, von der aus der Spieler teleportiert werden soll - dieser Brush sollte sicherheitshalber mindestens in der Größe einer Spielfigur gesetzt werden:

Lass den Trigger-Brush markiert, wechsle in die 2D-Ansicht, drücke die rechte Maustaste und wähle dann
-> trigger -> multiple

Lass den Trigger-Brush weiterhin markiert und öffne nun das Entity-Fenster mit der Taste "N" - im Entity-Fenster musst Du nun folgenden Key und Value vergeben:
Key: targetname
Value: enter
Erklärung:
targetname - enter
Dies ist für die "Auslösung" des Transporters im Script, welches später noch in die gsc-Datei geschrieben werden muss. Dieser Wert muss auch bei mehreren eingebauten Teleportern gleich bleiben, damit das Script diese Stelle als Teleporter interpretieren kann.
In diesem Beispiel sollte es nun so aussehen:

Das war es nun für den Start-Bereich - schließe das Entity-Fenster mit der Taste "N" und löse die Markierung des Trigger-Brushes mit der Taste ESC.
Wechsle nun zum Ziel-Bereich - klicke mit der rechten Maustaste in die 2D-Ansicht und wähle dann
-> script -> origin

Es wird nun ein kleiner, roter Würfel eingeblendet - diesen positionierst Du nun ein kleines bisschen über der Stelle, an der der Spieler nach Betreten des Teleporters erscheinen soll - achte darauf, dass das script_origin keinen Kontakt zu anderen Brushes hat!
Mit der ROTATE-Funktion solltest Du außerdem noch die Blickrichtung des Spielers festlegen, wenn er wieder "materialisiert" wurde - der Pfeil des script_origins entspricht dabei der Vorwärtsbewegung des Spielers. Denk daran, die ROTATE-Funktion anschließend wieder auszuschalten!
Ok, das script_origin wurde nun also am Zielort platziert:

Löse nun die Markierung vom script_origin (ESC-Taste) und markiere nun zuerst den trigger_multiple (unseren Startpunkt) und dann wieder das script_origin (unseren Zielpunkt) - also so, daß BEIDE GLEICHZEITIG markiert sind.
!!!Wichtig: Reihenfolge genau beachten!!!
Nachdem nun der trigger_multiple und das script_origin gleichzeitig markiert sind, drücke die Taste "W" - damit wird nun der trigger_multiple mit dem script_origin "verbunden".
Drücke nun nochmals die ESC-Taste um die Markierungen der beiden wieder zu lösen. Sollte alles geklappt haben wie geplant, sollten der Start- und der Ziel-Bereich nun mit einer roten Linie "verbunden" sein:

So, das war´s nun im Radianten, nun geht es an´s zugehörige Script - keine Sorge, halb so wild!
Das folgende Script musst Du als .gsc-Datei unter dem Namen "teleporter.gsc" in Deinem zum Mappen genutzten CoD4-Verzeichnis unter \raw\maps\mp abspeichern:
teleporter()
{
entTransporter = getentarray("enter","targetname");
if(isdefined(entTransporter))
{
for(lp=0;lp<entTransporter.size;lp++)
entTransporter[lp] thread Transporter();
}
}
Transporter()
{
while(true)
{
self waittill("trigger",other);
entTarget = getent(self.target, "targetname");
wait(0.10);
other setorigin(entTarget.origin);
other setplayerangles(entTarget.angles);
//iprintlnbold ("You have been teleported !!!");
wait(0.10);
}
}
Um das Script lauffähig zu machen, musst Du außerdem einen Eintrag in die mapname.gsc Deiner eigenen Map vornehmen:
unter die Zeile
maps\mp\_load::main();
fügst Du einfach die Zeile
thread maps\mp\teleporter::teleporter();
ein und speicherst die Änderung natürlich auch.
Und zu guter letzt musst Du noch Deine Zone-Datei auf den aktuellen Stand bringen - in den Compile Tools also unter
-> Level Compiling -> 4. Update Zone File
wählen und auf der rechten Seite den Eintrag
rawfile,maps/mp/teleporter.gsc
vornehmen - Speichern (unten auf SAVE klicken) natürlich nicht vergessen - könnte dann z. B. so aussehen:

Tja, das war´s auch schon, Beam me up, Scotty!
***
Direkt verlinken:
https://www.opferlamm-clan.de/wbb2/thread.php?threadid=10964
***
Danke an OLD MAN WITH GUN für die Überarbeitung und Verbesserungen!
Danke an Verni@hter und OLD MAN WITH GUN für´s Testen!
Teleporter einbauen
Als Beispiel hier mal ein Vorschlag für einen Start- und Ziel-Bereich - der Spieler soll bei Betreten das Start-Bereiches zum Ziel teleportiert werden:

Erstelle Deinen Start-Bereich und platziere einen Brush mit der Trigger-Textur an der Stelle, von der aus der Spieler teleportiert werden soll - dieser Brush sollte sicherheitshalber mindestens in der Größe einer Spielfigur gesetzt werden:

Lass den Trigger-Brush markiert, wechsle in die 2D-Ansicht, drücke die rechte Maustaste und wähle dann
-> trigger -> multiple

Lass den Trigger-Brush weiterhin markiert und öffne nun das Entity-Fenster mit der Taste "N" - im Entity-Fenster musst Du nun folgenden Key und Value vergeben:
Key: targetname
Value: enter
Erklärung:
targetname - enter
Dies ist für die "Auslösung" des Transporters im Script, welches später noch in die gsc-Datei geschrieben werden muss. Dieser Wert muss auch bei mehreren eingebauten Teleportern gleich bleiben, damit das Script diese Stelle als Teleporter interpretieren kann.
In diesem Beispiel sollte es nun so aussehen:

Das war es nun für den Start-Bereich - schließe das Entity-Fenster mit der Taste "N" und löse die Markierung des Trigger-Brushes mit der Taste ESC.
Wechsle nun zum Ziel-Bereich - klicke mit der rechten Maustaste in die 2D-Ansicht und wähle dann
-> script -> origin

Es wird nun ein kleiner, roter Würfel eingeblendet - diesen positionierst Du nun ein kleines bisschen über der Stelle, an der der Spieler nach Betreten des Teleporters erscheinen soll - achte darauf, dass das script_origin keinen Kontakt zu anderen Brushes hat!
Mit der ROTATE-Funktion solltest Du außerdem noch die Blickrichtung des Spielers festlegen, wenn er wieder "materialisiert" wurde - der Pfeil des script_origins entspricht dabei der Vorwärtsbewegung des Spielers. Denk daran, die ROTATE-Funktion anschließend wieder auszuschalten!
Ok, das script_origin wurde nun also am Zielort platziert:

Löse nun die Markierung vom script_origin (ESC-Taste) und markiere nun zuerst den trigger_multiple (unseren Startpunkt) und dann wieder das script_origin (unseren Zielpunkt) - also so, daß BEIDE GLEICHZEITIG markiert sind.
!!!Wichtig: Reihenfolge genau beachten!!!
Nachdem nun der trigger_multiple und das script_origin gleichzeitig markiert sind, drücke die Taste "W" - damit wird nun der trigger_multiple mit dem script_origin "verbunden".
Drücke nun nochmals die ESC-Taste um die Markierungen der beiden wieder zu lösen. Sollte alles geklappt haben wie geplant, sollten der Start- und der Ziel-Bereich nun mit einer roten Linie "verbunden" sein:

So, das war´s nun im Radianten, nun geht es an´s zugehörige Script - keine Sorge, halb so wild!
Das folgende Script musst Du als .gsc-Datei unter dem Namen "teleporter.gsc" in Deinem zum Mappen genutzten CoD4-Verzeichnis unter \raw\maps\mp abspeichern:
teleporter()
{
entTransporter = getentarray("enter","targetname");
if(isdefined(entTransporter))
{
for(lp=0;lp<entTransporter.size;lp++)
entTransporter[lp] thread Transporter();
}
}
Transporter()
{
while(true)
{
self waittill("trigger",other);
entTarget = getent(self.target, "targetname");
wait(0.10);
other setorigin(entTarget.origin);
other setplayerangles(entTarget.angles);
//iprintlnbold ("You have been teleported !!!");
wait(0.10);
}
}
Um das Script lauffähig zu machen, musst Du außerdem einen Eintrag in die mapname.gsc Deiner eigenen Map vornehmen:
unter die Zeile
maps\mp\_load::main();
fügst Du einfach die Zeile
thread maps\mp\teleporter::teleporter();
ein und speicherst die Änderung natürlich auch.
Und zu guter letzt musst Du noch Deine Zone-Datei auf den aktuellen Stand bringen - in den Compile Tools also unter
-> Level Compiling -> 4. Update Zone File
wählen und auf der rechten Seite den Eintrag
rawfile,maps/mp/teleporter.gsc
vornehmen - Speichern (unten auf SAVE klicken) natürlich nicht vergessen - könnte dann z. B. so aussehen:

Tja, das war´s auch schon, Beam me up, Scotty!
***
Direkt verlinken:
https://www.opferlamm-clan.de/wbb2/thread.php?threadid=10964
***
Zitat:

