Rang: Ehrenmitglied
Mitglied seit: 05.09.2014(UTC) Beiträge: 84  Wohnort: Tulln und Rostock Dankte: 1 mal(e)
|
Das folgende Skript erzeugt einen Alarm, wenn sich ein Avatar auf unter 80 Meter nähert. Für "Freunde" in Chatreichweite wird jedoch kein Alarm ausgegeben. Das Skript merkt sich die Avatare für die bereits ein Alarm erzeugt worden ist. Alle 10 Minuten werden diese Alarme von der Liste entfernt. Avatare die die Sim verlassen werden ebenfalls von der Alarm-Liste gelöscht. Mit der Variable "fDistance" kann man die Alarm-Distanz festlegen. Code:
list lAlerts = [];
float fTimer = 5.0; //Sekunden
float fDistance = 80.0; //Meter
float fNearbyDistance = 25.0; //Meter
integer iSecondsToClear = 600; //Sekunden
string sAlert = " ist in Sensorreichweite gekommen."; //Textnachricht
default
{
state_entry()
{
llSetTimerEvent(fTimer);
}
timer()
{
list lNewList = llGetAgentList(AGENT_LIST_REGION, []);
list lAlertsTemp = [];
integer iCount = 0;
integer iLength = llGetListLength(lNewList);
key kID;
float fDist = 0.0;
for (iCount = 0; iCount < iLength; iCount++)
{
kID = llList2Key(lNewList, iCount);
fDist = llVecDist(llGetPos(), llList2Vector(llGetObjectDetails(kID, [OBJECT_POS]), 0));
if (fDist < fDistance && fDist > fNearbyDistance)
{
if (llListFindList(lAlerts, [kID]) == -1)
{ //alert
llOwnerSay(llGetUsername(kID) + sAlert);
lAlertsTemp += [kID, llGetUnixTime()];
}
}
}
lAlerts += lAlertsTemp;
lAlertsTemp = [];
iLength = llGetListLength(lAlerts);
for (iCount = 0; iCount < iLength; iCount = iCount + 2)
{
kID = llList2Key(lAlerts, iCount);
if (llGetAgentSize(kID))
{
if (llGetUnixTime() - llList2Integer(lAlerts, iCount+1) < iSecondsToClear)
{ //Agent still in sim, and alert less than 10 minutes.
lAlertsTemp += [kID, llList2Integer(lAlerts, iCount+1)];
}
}
}
lAlerts = lAlertsTemp;
}
}
Bearbeitet vom Benutzer Mittwoch, 26. Februar 2020 01:13:58(UTC)
| Grund: Nicht angegeben |
It is the mark of an educated mind to be able to entertain a thought without accepting it. |
|
|
|
Das Forum wechseln
Du kannst keine neue Themen in diesem Forum eröffnen.
Du kannst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge nicht löschen.
Du darfst deine Beiträge nicht editieren.
Du kannst keine Umfragen in diesem Forum erstellen.
Du kannst nicht an Umfragen teilnehmen.