logo

Willkommen Gast! Um alle Funktionen zu aktivieren müssen Sie sich Anmelden.Neue Registrierungen sind deaktiviert.

Mitteilung

Icon
Error

Einloggen


Beitrag melden
Geschrieben von: MartinRJ Fayray Offline Geschrieben Mittwoch, 26. Oktober 2016 05:46:18(UTC)
Mit dem folgenden Skript können Landbesitzer Admins benennen, die dann Störenfriede für ein paar Minuten bannen, und deren Objekte löschen dürfen.

Man klickt dazu das Objekt an, und gibt dann den Namen des Störenfrieds in einem Textfeld ein.
Alternativ kann man auch den Namen im entsprechenden Channel sagen.

Der Eigentümer muss beim Speichern des Skripts eine Permission gewähren.

Bei Gruppenland muss das Objekt das dieses Skript enthält der Gruppe übertragen werden.


Code:

list lAdmins = ["Admin1 Resident", "Admin2 Nachname"]; //Admins hier in die Liste eintragen.

key kOwner = "Owner Key hier eintragen"; //Eigentümer hier in die Liste eintragen.

float fTime = 0.1; //Ban-Zeit in Stunden.
integer iListen = 666; //Listener-Channel.

string sText = "Wen willst du kicken? Format: 'Name Resident' oder 'Vorname Nachname'.";
string sNotFound = " wurde nicht gefunden.";
string sBanned = " wurde gebanned. Bitte Name, Begründung und Uhrzeit notieren.";

key kFindAgent(string name)
{
    
        list avatarsInRegion = llGetAgentList(AGENT_LIST_REGION, []);
        integer numOfAvatars = llGetListLength(avatarsInRegion);
 
        // if no avatars, abort avatar listing process
        if (!numOfAvatars)
        {
            return NULL_KEY;
        }
        integer index;
        key kAVid;
        string sAVname;
        while (index < numOfAvatars && index < 12)
        {
            kAVid = llList2Key(avatarsInRegion, index);
            
            sAVname = llGetSubString(llKey2Name(kAVid), 0, 23);
            if (sAVname == name)
            {
                return kAVid;
            }
            ++index;
        }
    return NULL_KEY;
}
default
{
    state_entry()
    {
        llRequestPermissions(kMartinRJ, PERMISSION_RETURN_OBJECTS);
        llListen(iListen, "", NULL_KEY, "");
    }

    touch_start(integer total_number)
    {
        if (llListFindList(lAdmins, [llDetectedName(0)]) != -1)
        {
            llTextBox(llDetectedKey(0), sText, iListen);
        }
    }

    listen(integer channel, string name, key id, string message)
    {
        if (llGetAgentSize(id))
        { //id is an avatar
            if (llListFindList(lAdmins, [name]) != -1 && 
            llListFindList(lAdmins, [message]) == -1)
            {
                key kA = kFindAgent(message);
                if (kA != NULL_KEY)
                {
                    llRegionSayTo(id, PUBLIC_CHANNEL, message + sBanned);
                    llAddToLandBanList(kA, fTime);
                    llReturnObjectsByOwner(kA, OBJECT_RETURN_PARCEL_OWNER);
                }
                else
                {
                    llRegionSayTo(id, PUBLIC_CHANNEL, message + sNotFound);
                    llTextBox(llDetectedKey(0), sText, iListen);
                }
            }
        }
    }

    changed(integer change)
    {
        if (change & CHANGED_OWNER)
        {
            llResetScript();
        }
    }
}
Geben Sie den Meldetext hier ein.
Fett Kursiv Unterstrichen   Hervorheben Zitat Sprachauswahl für Syntax Highlighting Bild einfügen Link einfügen   Unsortierte Liste Sortierte Liste   Linksbündig Zentriert Rechtsbündig   Herausrücken Einrücken   Weitere BBCodes
Schriftfarbe: Schriftgröße:
Melden Abbruch

Powered by YAF.NET | YAF.NET © 2003-2018, Yet Another Forum.NET
Diese Seite wurde in 0.020 Sekunden generiert.

Datenschutzrichtlinie
Haftungsausschluss
Impressum
Datenschutzerklärung
AGB, ToS
Kontakt