This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Zugangs Berechtigungs Check für Türen, Fahrzeuge etc
#1
Berechtigungs Check


Ein kleines Script das euch zeigt wie man Berchtigungs Checks ausführen kann.
Es enthält 3 Funktionen die durch Berührung des Prims ausgelöst werden:

-   Ownercheck prüft auf Besitzer des Prims, und erlaubt nur diesem den Zugang
-   Groupcheck prüft auf Gruppe des Prims und vergleicht diese mit der aktive Gruppe desjenigen der es berührt. Bei Gleichheit wird Zugang gewährt.
-   Berechtigungcheck ist wie 2. jedoch mit Abfrage ob die Gruppe steuern darf.


Code:
//  P914 Berechtigungcheck Makros zum Einbau in eure Scripte - beispielsweise in Türen
//
//  3 Funktionen die durch Berührung des Prims ausgelöst werden:
//
//    Ownercheck prüft auf Besitzer, und erlaubt nur diesem den Zugang
//
//    Groupcheck prüft auf aktive Gruppe und erlaubt dieser bei Gleichheit mit Primgruppe den Zugang
//
//  P914  Berechtigungscheck erlaubt Besitzer und gleicher aktiver Gruppe den Zugang
//
//  12.2019 by Tron Mcp
//  darf frei verwendet werden.


integer Gruppenerlaubnis = TRUE;    // Festlegen ob Inhaber der gleichen Gruppe das Prim bedienen dürfen [TRUE / FALSE]


integer ownercheck(key pruefling)        // Testen ob Objekt dem Pruefling gehört
{
    key owner = llGetOwner();             // Key des Eigentümer dieses Objektes ermitteln
    if (pruefling == owner) return TRUE;
    else return FALSE;
}


integer groupcheck(key pruefling)        // Testen ob Objekt und aktive Gruppe des Pruflings gleich sind
{
    if (llSameGroup(pruefling)) return TRUE;
    else return FALSE;
}


integer berechtigungscheck(key pruefling) // Testen ob Zugang gewährt werden soll
{
    if ( ownercheck(pruefling) ||  (groupcheck(pruefling) && Gruppenerlaubnis) ) return (TRUE);
    else return (FALSE);
}


default

    state_entry(){}

    touch_start(integer num)
    {
        key userID=llDetectedKey(0);  // UUID Key des berührenden ermitteln

        if (ownercheck(userID)) llSay(0, " Du bist mein Besitzer");
        else llSay(0, " Du bist nicht mein Besitzer");

        if (groupcheck(userID)) llSay(0, " Wir haben die gleiche aktive Gruppe");
        else llSay(0, " Du hast eine andere Gruppe aktiv als ich");

        if (berechtigungscheck(userID)) llSay(0, " Du darfst mich steuern");
        else llSay(0, " Du darfst mich nicht steuern");
    }
}

Viel Spaß

Tron
Zitieren
#2
Hallo Tron, dieses Script steht heute bei mit auf dem Programm. Ich werde es richtig testen und möglicherweise habe ich noch einige Ideen dazu.

Besten Dank
All done!
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste