Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Berechtigungcheck Makros für eure Scripte
#1
Manchmal will man Objekten beibringen das sie sich unterschiedlich verhalten- in Abhängigkeit davon wer sie berührt.

Dies ist mittels Script recht einfach zu bewerkstelligen.

Ich habe euch mal hier 3 von mir erstellte Routinen eingefügt die ihr frei in euren Scripten verwenden könnt.

Alle 3 Routinen prüfen wer sie berührt, und starten danach verschiedenen Auswertungen:

    Ownercheck prüft ob der Besitzer das Objekt berührt, und erlaubt nur diesem den Zugang

    Groupcheck prüft auf aktive Gruppe des Berührenden, und erlaubt bei Gleichheit zur Gruppe des Prims den Zugang

    Berechtigungscheck erlaubt Besitzer und gleicher Gruppe den Zugang.

Natürlich kann man die Routinen auch invertiert verwenden.


Viel Spaß damit

Tron



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
//
//    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");
   }
}
Antworten }
Thanks given by: Lukas Silberstein , Manni


Gehe zu:


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