Beiträge: 36
Themen: 11
Thanks Received: 9 in 8 posts
Thanks Given: 40
Registriert seit: Feb 2019
07.10.2023, 17:43
Hallo zusammen,
die Überschrift ist Kacke, ich weiß g. Also ich suche
ein Script, wahrscheinlich müssen es zwei sei, wo sich
eine Türe ein, zwei Meter bevor ich die vor betreten eines
Raumes öffnet. Ein Script worauf man tritt um den Befehl der Türöffnung
auszulösen und eines für die Türe. Gibt es so was für OpenSim?
LG
Kalk
Beiträge: 7.021
Themen: 774
Thanks Received: 1.351 in 665 posts
Thanks Given: 3.496
Registriert seit: Jul 2010
Hallo Kalkofe ;D
Dann müsste sowas wie einen Sensor bzw. ein Art Trigger vor der Tür sein, denke ich mal. Muss aber gestehen, das ich nur wenig Ahnung von Scrpts hab ;D
Beiträge: 450
Themen: 46
Thanks Received: 23 in 10 posts
Thanks Given: 2
Registriert seit: Jul 2010
Der Sensor ist ja im Skript, physikalisch gibts den nicht. Also nur ein Skript pro Tür.
Leider ist meine Signatur ausserhalb Sachsens nicht verfügbar.
Beiträge: 7.021
Themen: 774
Thanks Received: 1.351 in 665 posts
Thanks Given: 3.496
Registriert seit: Jul 2010
Hallo ;D
Jup Bekki ;D Aber wie gesagt, ich hab nicht soviel bzw, gar keine Ahnung von Scripts ;D
Aber ich hab mal danach gesucht und hab dieses gefunden ;D
https://github.com/uriesk/Door-Script-YADS
https://opensimworld.com/library
https://outworldz.com/cgi/freescripts.plx?Category=Door
Ok, der hier passt nicht so zum Thema, aber schaut mal von wem die Webseite ist ?
https://becunningandfulloftricks.com/201...-and-jibe/
Da kann man sehen, wie lange schon OpenSim gibt und wir immer noch da sind, da können andere Plattformen von Träumen ;D
Beiträge: 403
Themen: 16
Thanks Received: 224 in 115 posts
Thanks Given: 808
Registriert seit: Sep 2017
07.10.2023, 22:17
(Dieser Beitrag wurde zuletzt bearbeitet: 07.10.2023, 22:19 von Pius Noel.)
Theoretisch wäre es machbar in einem Tür Script einen Listener einzubauen der die Befehle zum Öffnen der Türe empfängt.
Der Sender könnte sich dann in einem entfernten Prim befindet, der über einen Sensor oder einen Collision Event gesteuert die Message mit dem Befehl zum Öffnen der Türe abschickt.
Einfacher wird es aber wahrscheinlich sein dazu einfach einen Sensor als Teil des Tür-Scripts selber zu verwenden.
Wo du ein passendes Script finden kannst, weiss ich jetzt auch nicht. Ich würde es mal in der Sammlung von Outworldz versuchen und mir dort die Kategorie Door zu Gemüte führen. Sie enthält 44 Door Scripte. Schau dir mal die Timeless-Scripte an, darunter könnte was sein.
Aber vielleicht kann dir jemand im Forum was passendes anbieten.
Beiträge: 2.451
Themen: 86
Thanks Received: 1.668 in 587 posts
Thanks Given: 1.868
Registriert seit: Oct 2011
Die Idee mit einem vorgelagerten Collision-Objekt scheitert an der Tatsache, dass dieses dann auch beim rückwärtigen Durchgang (also beim Verlassen des Türbereichs) getriggert würde ...
Ich denke für das in Frage stehende Problem ist ein Sensor die richtige Herangehensweise.
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Beiträge: 450
Themen: 46
Thanks Received: 23 in 10 posts
Thanks Given: 2
Registriert seit: Jul 2010
Mit dem Sensor geht das prima, weil man dann ja auch die Richtung auswerten kann, also von welcher Seite man kommt. Leider ist es nicht möglich, ein allgemeines Skript anzugeben, weil die ganze Sache ja auch von Art und Aufbau der Tür abhängt. Im Internet gibt es aber hunderte Skripte dazu.
Leider ist meine Signatur ausserhalb Sachsens nicht verfügbar.
Beiträge: 631
Themen: 100
Thanks Received: 833 in 397 posts
Thanks Given: 1.502
Registriert seit: Jun 2020
(07.10.2023, 23:42)Anachron schrieb: Die Idee mit einem vorgelagerten Collision-Objekt scheitert an der Tatsache, dass dieses dann auch beim rückwärtigen Durchgang (also beim Verlassen des Türbereichs) getriggert würde ...
Ich denke für das in Frage stehende Problem ist ein Sensor die richtige Herangehensweise. Wenn du eine Bodenplatte als Trigger nehmen willst, ließe sich das wohl mit einem Timer lösen. Aber ein Timer ist schon ein Problem an und für sich. Leistungsbedarf und so.
(08.10.2023, 12:13)Rebekka Revnik schrieb: Mit dem Sensor geht das prima, weil man dann ja auch die Richtung auswerten kann, also von welcher Seite man kommt. Leider ist es nicht möglich, ein allgemeines Skript anzugeben, weil die ganze Sache ja auch von Art und Aufbau der Tür abhängt. Im Internet gibt es aber hunderte Skripte dazu. Dann müßte man den Sensor aufrecht hinstellen und ihn nur bei Berührung von einer Seite auslösen lassen. Sollte wohl gehen, ich glaub, ich hab das mal bei Kollisionsteleportern gesehen.
Beiträge: 2.451
Themen: 86
Thanks Received: 1.668 in 587 posts
Thanks Given: 1.868
Registriert seit: Oct 2011
(10.10.2023, 21:13)Jupiter Rowland schrieb: ...
Dann müßte man den Sensor aufrecht hinstellen und ihn nur bei Berührung von einer Seite auslösen lassen. Sollte wohl gehen, ich glaub, ich hab das mal bei Kollisionsteleportern gesehen.
Da liegt ein Misverständnis vor ... der Sensor hat nichts mit Collision zu tun ...
Und nein, ein Collision-Event kann nicht nur für eine Seite ausgelöst werden - es bezieht sich auf das Volumen des Collisions-körpers.
Das Problem bei einem Sensor ist leider, dass er, wenn er zeitnah reagieren soll, mit einem relativ kleinen Intervall arbeiten muss und daher einige Systemlast verursachen dürfte.
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Beiträge: 93
Themen: 1
Thanks Received: 6 in 2 posts
Thanks Given: 0
Registriert seit: May 2015
11.10.2023, 05:37
(Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2023, 06:52 von Christoph Balhaus.)
Die Richtungserkennung funktioniert wunderbar mit einem Collision-Event und erzeugt viel weniger Lag als ein Sensor.
Der Event triggert zwar immer, aber mit llDetectedPos() und ein klein wenig Rechnerei lässt sich in der Eventbehandlung leicht erkennen von welcher Seite er ausgelöst wurde. Hier ein einfaches Beispiel um die beiden Seiten/Richtungen auf der (lokalern) X-Achse zu unterscheiden:
Code: default {
// erkennt und unterscheidet Kollisionen mit den beiden Flächen in (lokaler) X-Richtung
state_entry() {
llVolumeDetect(TRUE); // quasi Phantom, aber mit funktionierenden Kollisionen
}
collision_start(integer num_detected) {
rotation objectRot = llGetRot();
vector objectPos = llGetPos()/objectRot;
vector detectedPos = llDetectedPos(0)/objectRot;
if (detectedPos.x > objectPos.x) {
llSay(0, "Side 1"); // Eintritt von Seite 1
} else {
llSay(0, "Side 2"); // Eintritt von Seite 2
}
}
}
Edit:
Aber für eine normale Türsteuerung ist das unnötig kompliziert. Einfache Collision-Objekte, entweder ein grosses das beide Seiten umfasst oder zwei kleine auf beiden Seiten der Tür sind i.a. völlig ausreichend. Die Richtung aus der man kommt ist dabei belanglos, denn die Tür sollte ein extra Signal zum öffnen ignorieren, wenn sie ohnehin schon offen steht.
Mit der Richtungserkennung lässt sich aber z.B. eine Saloontür realisieren, die abhängig von der Richtung in der sie durchschritten wird in unterschiedliche Richtungen schwingen soll.
/Chris
|