Türen, leidiges Thema |
|
|
die tür muss schon irgendwie geöffnet sein damit man durchgehen kann, damit der spieler sie öffnen kann geht nur per script...
|
|
|
|
|
|
|
Eigentlich war ich überzeugt im neuen Radianten kann man nicht mehr "schnippeln" sprich GSC Subract ist nicht mehr dabei. Wie auch immer, mach so etwas nicht, bau Türen, Rahmen und die Durchgänge immer von Hand, wie du siehst führt eine andere Lösung nur zu Problemen.
Grüße
Private Grob
(Micka)
|
|
|
|
|
|
|
Hallihallo,
hier ist dann jetzt das gewünschte tut+beispielmap
sorry dass es etwas lnger gedauert hat aber mein pc hat gesponnen-> neuinstallation -.-
wie auch immer hier ist es:
Öffenbare Türen.
zuerst machen wir mal ne Tür, dazu ziehn wir einfach nen brush und packen ne Türen texture drauf(die seiten mit ner holztexture verzieren).
dann brauchen wir ne achse, also die "Schaniere" in der die tür sich nachher öffnen soll, dazu ziehn wir wieder einmacl einen brush der ungefähr 4x4x[höhe der tür] hat und packen die Texture "Origin" drauf(ist bei den tools-texturen zu finden).
jetzt markieren wir den origin und den türbrush, RMT in der 2d-Ansicht und dann script->brushmodel.
dann drücken wir bei markiertem brushmodel N und geben bei key "Targetname" und bei value "door"(der ist bfrei bestimmbar muss aber nachher in der gsc richtig angepasst werden)ein.
dann brauchen wir noch den auslöser, hierzu stehen uns mehrer varianten zur verfügung:
-trigger_use (tür mit "F" öffnen)
-trigger_use_touch (sollte eigentlich beim behrühren öffnen hat bei mir aber nicht gefuntzt, dafür habe ich den triger_radius genommen, ist zwar rund erfüllt aber seine arbeit genau so gut)
-trigger_radius(gleiche funktion wie use_toucj haben sollte)
-trigger_damage(tür öffnet sich bei drauf schiessen)
Nun kann man 2 trigger benutzen um die tür in beide richtungen zu öffnen, oder aber nur einen um die tür nur in eine richtung öffenbar zu machen.
Ihm/ihnen geben wir den "targetname" "door_trigger"(oder "door_trigger_left"und "door_trigger_right" wenn wir 2 benutzen)
dann gehts an's script:
in der mp_meinemap.gsc fügen wir folgendes bei
maps\mp\mp_meinemap_door::main();
(muss an den mapnamen angepasst werden)
dann erstellen wir eine neue gsc und nennen sie mp_meinemap_door.gsc
hierein kommt das eigentliche script:
-beispiel 1xtrigger:
main()
{
thread door();
}
door()
{
door = getent ("door","targetname");
doortrigger = getent ("doortrigger","targetname");//wir sagen dem script die namen der tür und des/der trigger
while (1) //begin der funktion
{
doortrigger waittill ("trigger");//wenn der trigger ausglöst wird...
door rotateyaw (90,2);//...dreht sich die tür um 90° in 2 sekunden
door waittill ("rotatedone");//trigger wartet bis die bewegung fertig ist
wait 5;//die tür bleibt 5 sekunden lang geöffnet
door rotateyaw (-90,2);//wir bewegen die tür wieder in die ausgangsposition zurück(-90°)
door waittill ("rotatedone");//trigger wartet bis die bewegung zu ende ist und ist danach wieder funktionstüchtig
}
}
-beispiel 2x trigger:
das mit den 2 triggern funtzt genau gleich wie mit einem nur dass wir ihm sagen dass, wenn der 1.trigger betätigt wird die tür zuerst nach rechts und dann nach links bewegt wird und bei dem 2. trigger in der umgekehrten reihenfolge.
So das war's dann auch schon, hoffe ich hab mich klar genug ausgedrückt, fall's nicht könnt ihr euch die testmap mal anschaun(auch wenn ihr alles kapiert habt schadets nicht
)
zum tut
Dieser Beitrag wurde 6 mal editiert, zum letzten Mal von CCL_DESTROYER: 22.05.2006 12:50.
|
|
|
|
|
Zordiac
Tele-Tubbie
Dabei seit: 08.05.2006
Beiträge: 114

|
|
main()
{
thread door();
}
door()
{
door = getent ("door","targetname");
doortrigger = getent ("doortrigger","targetname");//wir sagen dem script die namen der tür und des/der trigger
while (1) //begin der funktion
{
doortrigger waittill ("trigger");//wenn der trigger ausglöst wird...
door rotateyaw (90,2);//...dreht sich die tür um 90° in 2 sekunden
door waittill ("rotatedone");//trigger wartet bis die bewegung fertig ist
wait 5;//die tür bleibt 5 sekunden lang geöffnet
door rotateyaw (-90,2);//wir bewegen die tür wieder in die ausgangsposition zurück(-90°)
door waittill ("rotatedone");//trigger wartet bis die bewegung zu ende ist und ist danach wieder funktionstüchtig
}
}
Als Ergänzung, wenn man nicht möchte, dass die Türen sich nach 5 sec. automatisch schließen (was sie in Echt ja auch nicht machen), geht nocht folgendes:
main()
{
thread door();
}
door()
{
door = getent ("door","targetname");
doortrigger = getent ("doortrigger","targetname"):
while (1)
{
doortrigger waittill ("trigger");
door rotateyaw (90,1.3);
door playsound ("dooropen")
door waittill ("rotatedone");
{
doortrigger waittill ("trigger");
door rotateyaw (-90,1.3);
door playsound ("doorclose");
door waittill ("rotatedone");
}
self thread door
return;
}
}
__________________ Wissen ist Macht. Nichts wissen macht nichts.
....fragt mich!!!
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Zordiac: 16.05.2006 10:34.
|
|
|
|
|
yoda
Böser Admin
Dabei seit: 21.01.2004
Beiträge: 12.269

|
|
Thx, hab das mal dem Tutorial hinzugefügt:
Türen zum Öffnen per Script
__________________ "Fürs Internet sollte das Baumhaus-Prinzip gelten:
Wer zu alt ist, um ohne Hilfe reinzukommen, soll uns darin auch keine Vorschriften machen."
Diskutiere nie mit einem Idioten - zuerst zwingt er Dich auf sein Niveau herab und dann schlägt er Dich mit Erfahrung...
|
|
|
|
|
yoda
Böser Admin
Dabei seit: 21.01.2004
Beiträge: 12.269

|
|
Dann schau mal bitte, ob es so richtig ist:
Türen zum Öffnen per Script
__________________ "Fürs Internet sollte das Baumhaus-Prinzip gelten:
Wer zu alt ist, um ohne Hilfe reinzukommen, soll uns darin auch keine Vorschriften machen."
Diskutiere nie mit einem Idioten - zuerst zwingt er Dich auf sein Niveau herab und dann schlägt er Dich mit Erfahrung...
|
|
|
|
|
Zordiac
Tele-Tubbie
Dabei seit: 08.05.2006
Beiträge: 114

|
|
die letzte Klammer "}" muß noch weg aber sonst i.O..
Ich finde es nur wichtig, dass die Scripts auch stimmen. Sonst kommen nur unnötige Fragen auf, wenn es jemand abschreibt und dann Fehlermeldungen bekommt.
und oben hab ich einmal doortrig anstatt doortrigger geschrieben.
__________________ Wissen ist Macht. Nichts wissen macht nichts.
....fragt mich!!!
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Zordiac: 16.05.2006 14:41.
|
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|