• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

Script zum Auspacken in ein Verzeichnis

Daemonika Nightfire

Forumsgott/göttin
huhu, das einzige was per Script ohne RLV geht ist einen Speziellen Ordner gleich beim Auspacken anzulegen.
Den Ordner muss man anschliessend immer noch einsortieren.

Folgendes Script legt einen Ordner an und gibt den kompletten Inhalt der Box aus.
Das Script selbst jedoch bleibt in der Box, schliesslich will niemand den Muell auch noch entsorgen muessen.

Code:
/*
    *DS* Give Inventory ALL 2 Owner by Daemonika Nightfire
 
    Dieses Script gibt bei klick nur dem Besitzer den kompletten Inhalt, mit ausnahme des Scripts aus.
    Anders als bei den aelteren Scripten, wo der Inhalt bei jedem klicken neu ausgelesen wird,
    speichert dieses Script die Namen des Inhalts bereits im State_entry in eine Liste.
*/


key owner;

list inventory = [];
string name;
integer num;

default
{
    state_entry()
    {
        // Speichert den Besitzer-Key (UUID)
        owner = llGetOwner();
     
        num = llGetInventoryNumber(INVENTORY_ALL);
        integer     i;
        // ab hier wird das komplette Inventar des Objects ausgelesen
        for(i = 0; i < num; ++i)
        {
            // liesst die Inventar-Namen aus
            name = llGetInventoryName(INVENTORY_ALL, i);
            // Diese Funktion, sorgt dafuer, das das Script nicht zur Liste hinzu gefuegt wird
            if(name != llGetScriptName())
            {
                // fuegt die ausgelesenen Inventar-Namen in die Liste ein.
                inventory += name;
            }
        }
    }
 
    touch_start(integer total_number)
    {
        // reagiert nur, wenn der Besitzer klickt
        if(llDetectedKey(0) == owner)
        {
            if(llGetListLength(inventory) < 1)
            {
                // bloed wenn die Box leer ist ;)
                llWhisper(0,"No items to offer.");
            }
            else
            {
                // gibt den gelisteten Inhalt aus (es dauert 3 secunden, bis das Script hier nach wieder reagiert)
                llGiveInventoryList(owner, llGetObjectName(), inventory);
            }
        }
    }
 
    changed(integer change)
    {
        // Hinweis:
        // CHANGED_OWNER wird nicht ausgeloest bei Objecten die im Inventar uebergeben werden.
        if(change & CHANGED_OWNER)
        {
            // resettet das Script, sobald sich der Inhalt des Objects aendert
            llResetScript();
        }
     
        // Ein Reset bei CHANGED_INVENTORY ist in Verbindung mit (no copy) Items nicht zu empfehlen.
        //if(change & CHANGED_INVENTORY)
        //{
            // resettet das Script, sobald sich der Inhalt des Objects aendert
            //llResetScript();
        //}
    }
 
    on_rez(integer Dae)
    {
        // resettet das Script, sobald es auf dem Boden gerezzt wird
        llResetScript();
    }
}

An dieser Stelle "llGiveInventoryList(owner, llGetObjectName(), inventory);" kannst du anstelle von "llGetObjectName()" auch einen eigenen Namen in Gaensefuessen eintragen.
Beispiel: llGiveInventoryList(owner, "Dein Ordner-Name", inventory);


Nachtrag:
Ganz wichtig, das scheinen immer noch einige nicht zu wissen.
Inventar per Script entpacken funktioniert nicht bei (no copy) Items.
Immer wieder muss ich Boxen vom Marketplace manuell mit rechter Maustaste oeffnen und auspacken, weil der Inhalt no copy ist und das Script diese einfach nicht ausgibt.

LG
Dae
 
Zuletzt bearbeitet:

Daemonika Nightfire

Forumsgott/göttin
huhu,

leider kann ein Script keine Unterverzeichnisse erstellen.
Im Grunde ist es das gleiche wie die Baumenue Option "Oeffnen" um die Box bei linksklick ins Inventar zu entpacken.
Praktisch ist das nur eine alternative Methode Boxen zu entpacken, bei der man sich den Inhalt und den Namen des Ordners aussuchen kann.

LG
Dae
 

Daemonika Nightfire

Forumsgott/göttin
Freut mich sehr, das du mein Script gebrauchen kannst.
Ich wuerde mir wuenschen, das noch viel mehr auf solche Funktionen zurueck greifen wuerden.
Es ist echt unglaublich, wie oft ich irgend welche Unpacker-Scripte aus den Klamotten-Ordnern loeschen muss.

LG
Dae
 

Aktive User in diesem Thread

Oben Unten