yoda
Vorlage von HarkoninVSC auf MODSonline.com
Danke an Verni@hter und OLD MAN WITH GUN für´s Testen!
Wie man eine sich öffnen lassende Tür erstellt
HarkoninVSC zeigt uns hier, wie man eine Tür erstellt, die sich öffnen lässt.
Schritt 1:
Gehen wir davon aus, dass Du eine "Tür-Öffnung" aus Deiner Wand ausgeschnitten hast - nun musst Du aus einem texturierten Brush Deine "Tür" bauen, die in diese Türöffnung hineinpasst.
In diesem Tutorial nehmen wir mal die Tür ch_door_18.
(Wenn Du auch einen Türrahmen einsetzen möchtest, kannst Du einen aus den Prefabs auswählen, z. B. das folgende: /prefabs/zipline/door_64_frame_02.)
Schritt 2:
Unser nächster Schritt ist die Erstellung eines "Scharnier"-Brushes, belegt mit der "origin"-Textur, die man unter
-> textures -> tools
findet.
Dieser Origin-Brush wird als "Scharnier" fungieren - also platziere ihn genau an der Stelle, an der Du die sich öffnen und schließen lassende Tür platzieren möchtest.
Schritt 3:
Markiere nun in der 2D-Ansicht sowohl Deine "Tür" als auch Dein "Scharnier" und klicke mit der rechten Maustaste. Wähle nun im Menü
-> script -> brushmodel
Schritt 4:
Nun brauchen wir noch einen Auslöser (= Trigger) für die Tür, damit sie sich auch öffnet. Erstelle einen Brush in dem Bereich, in dem der Spieler in der Lage sein soll, die Tür zu öffnen.
Ist der Brush erstellt und markiert, klicke mit der rechten Maustaste in der 2D-Ansicht und wähle
-> trigger -> use_touch
Schritt 5:
Jetzt, nachdem der Auslöser (= Trigger) gesetzt ist, musst Du das Entity-Fenster mit der Taste "N" öffnen.
Hier verpasst Du dem Trigger diese Werte:
Key: Tagretname
Value: doortrig
Wenn Du auch einen Hilfetext anzeigen lassen möchtest, wenn der Spieler vor der Tür steht, dann musst Du noch folgendes setzen:
Key: hintstring
Value: Dein gewünschter Text
Schritt 6:
Markiere Deinen Trigger und Deine Tür und drücke dann die Taste "W", um sie miteinander zu verknüpfen.
So, das war´s im Editor, auf geht´s zum Script-Teil.
1.) Vorausgesetzt natürlich Du hast bereits eine "Dein_Mapname.gsc": öffne Du sie und füge diese Zeile ein:
maps\mp\_door::main();
... und zwar über der Zeile:
maps\mp\_load::main();
2.) Kopiere dieses Script und füge es in eine neue Text-Datei ein und benenne diese Text-Datei dann um in
_door.gsc
Speichere die _door.gsc anschließend in Deinem Ordner maps/mp
main()
{
*Dein eigener Map-Kram an dieser Stelle*
doortriggers = getentarray("doortrig","targetname");
for(i = 0; i < doortriggers.size; i++)
doortriggers[i] thread door_think();
}
door_think()
{
self.doormoving = false;
self.doorclosed = true;
self.doormodel = getent(self.target, "targetname");
while (1)
{
self waittill("trigger");
if(!self.doormoving)
self thread door_move();
}
}
door_move()
{
self.doormoving = true;
if(self.doorclosed)
{
self.doormodel rotateyaw(-90,1,0.5,0.5);
self.doormodel waittill("rotatedone");
self.doorclosed = false;
}
else
{
self.doormodel rotateyaw(90,1,0.5,0.5);
self.doormodel waittill("rotatedone");
self.doorclosed = true;
}
self.doormoving = false;
}
Stelle sicher, dass Du Deine Zone-Datei nach dem Compiling der Map updatest!
Wichtiger Zusatz:
rotateyaw
Grad des Drehens, Zeit des Drehens, Beschleunigungs- und Verlangsamunszeit
doorclosed
doormoving
Lässt das Script wissen, ob die Tür geöffnet/geschlossen oder in Bewegung ist
doortrig
Ist der Name Deines Auslösers (= Trigger)
Man kann rotateyaw auch ändern in:
rotateto
Hoch-/Runter-Rotation
moveto
X, Y, Z, Zeit
movex
Bewegen auf der X-Achse
movey
Bewegen auf der Y-Achse
movez
Bewegen auf der Z-Achse
Wenn Du 360 Grad für die Rotation verwendest, kannst Du eine Drehtür erstellen.
Hoffe mal, das hilft weiter.
Hark
---
Direkt verlinken:
https://www.opferlamm-clan.de/wbb2/thread.php?threadid=10415
***
Danke an Verni@hter und OLD MAN WITH GUN für´s Testen!
Wie man eine sich öffnen lassende Tür erstellt
HarkoninVSC zeigt uns hier, wie man eine Tür erstellt, die sich öffnen lässt.
Schritt 1:
Gehen wir davon aus, dass Du eine "Tür-Öffnung" aus Deiner Wand ausgeschnitten hast - nun musst Du aus einem texturierten Brush Deine "Tür" bauen, die in diese Türöffnung hineinpasst.
In diesem Tutorial nehmen wir mal die Tür ch_door_18.
(Wenn Du auch einen Türrahmen einsetzen möchtest, kannst Du einen aus den Prefabs auswählen, z. B. das folgende: /prefabs/zipline/door_64_frame_02.)
Schritt 2:
Unser nächster Schritt ist die Erstellung eines "Scharnier"-Brushes, belegt mit der "origin"-Textur, die man unter
-> textures -> tools
findet.
Dieser Origin-Brush wird als "Scharnier" fungieren - also platziere ihn genau an der Stelle, an der Du die sich öffnen und schließen lassende Tür platzieren möchtest.
Schritt 3:
Markiere nun in der 2D-Ansicht sowohl Deine "Tür" als auch Dein "Scharnier" und klicke mit der rechten Maustaste. Wähle nun im Menü
-> script -> brushmodel
Schritt 4:
Nun brauchen wir noch einen Auslöser (= Trigger) für die Tür, damit sie sich auch öffnet. Erstelle einen Brush in dem Bereich, in dem der Spieler in der Lage sein soll, die Tür zu öffnen.
Ist der Brush erstellt und markiert, klicke mit der rechten Maustaste in der 2D-Ansicht und wähle
-> trigger -> use_touch
Schritt 5:
Jetzt, nachdem der Auslöser (= Trigger) gesetzt ist, musst Du das Entity-Fenster mit der Taste "N" öffnen.
Hier verpasst Du dem Trigger diese Werte:
Key: Tagretname
Value: doortrig
Wenn Du auch einen Hilfetext anzeigen lassen möchtest, wenn der Spieler vor der Tür steht, dann musst Du noch folgendes setzen:
Key: hintstring
Value: Dein gewünschter Text
Schritt 6:
Markiere Deinen Trigger und Deine Tür und drücke dann die Taste "W", um sie miteinander zu verknüpfen.
So, das war´s im Editor, auf geht´s zum Script-Teil.
1.) Vorausgesetzt natürlich Du hast bereits eine "Dein_Mapname.gsc": öffne Du sie und füge diese Zeile ein:
maps\mp\_door::main();
... und zwar über der Zeile:
maps\mp\_load::main();
2.) Kopiere dieses Script und füge es in eine neue Text-Datei ein und benenne diese Text-Datei dann um in
_door.gsc
Speichere die _door.gsc anschließend in Deinem Ordner maps/mp
main()
{
*Dein eigener Map-Kram an dieser Stelle*
doortriggers = getentarray("doortrig","targetname");
for(i = 0; i < doortriggers.size; i++)
doortriggers[i] thread door_think();
}
door_think()
{
self.doormoving = false;
self.doorclosed = true;
self.doormodel = getent(self.target, "targetname");
while (1)
{
self waittill("trigger");
if(!self.doormoving)
self thread door_move();
}
}
door_move()
{
self.doormoving = true;
if(self.doorclosed)
{
self.doormodel rotateyaw(-90,1,0.5,0.5);
self.doormodel waittill("rotatedone");
self.doorclosed = false;
}
else
{
self.doormodel rotateyaw(90,1,0.5,0.5);
self.doormodel waittill("rotatedone");
self.doorclosed = true;
}
self.doormoving = false;
}
Stelle sicher, dass Du Deine Zone-Datei nach dem Compiling der Map updatest!
Wichtiger Zusatz:
rotateyaw
Grad des Drehens, Zeit des Drehens, Beschleunigungs- und Verlangsamunszeit
doorclosed
doormoving
Lässt das Script wissen, ob die Tür geöffnet/geschlossen oder in Bewegung ist
doortrig
Ist der Name Deines Auslösers (= Trigger)
Man kann rotateyaw auch ändern in:
rotateto
Hoch-/Runter-Rotation
moveto
X, Y, Z, Zeit
movex
Bewegen auf der X-Achse
movey
Bewegen auf der Y-Achse
movez
Bewegen auf der Z-Achse
Wenn Du 360 Grad für die Rotation verwendest, kannst Du eine Drehtür erstellen.
Hoffe mal, das hilft weiter.
Hark
---
Direkt verlinken:
https://www.opferlamm-clan.de/wbb2/thread.php?threadid=10415
***
Zitat: