1. Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
    Information ausblenden
  2. 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.
    Information ausblenden
  3. 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.
    Information ausblenden

Bitte, ueberdenkt eure Giver-Scripte

Dieses Thema im Forum "Scripting" wurde erstellt von Daemonika Nightfire, 8. Oktober 2017.

  1. Daemonika Nightfire

    Daemonika Nightfire Forumsgott/göttin

    Beiträge:
    7.698
    Zustimmungen:
    952
    Punkte für Erfolge:
    123
    huhu,

    so schwer kann das doch nicht sein.
    Es gibt mehrere moeglichkeiten, gewisse Items aus dem Inhalt einer Box oder aehnlichem nicht mit zu uebergeben. Staendig muss ich Muell aus meinem Inventar aus den einzelnen ordnern heraus suchen und loeschen.

    14 jahre SL und immer noch werden Stein alte Freebie Funktionen, oder nicht durchdachte giver verwendet.
    Diese Inventar Vermuellung geht mir echt langsam auf die nerven, man kann ja gar nicht mehr ordentlich Shoppen, ohne gleich zur Muelltonne rennen zu muessen.

    Darum hier ein beispiel, wie man Scripte nicht ins Inventar schickt.
    Code:
    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 der Besitzer wechselt
                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();
        }
    }

    Hier ein Schnipsel, wie man zugleich die Animation einer Einkaufstuete in der Tuete laesst.
    Code:
    key owner;
    string anim = "*DS* Shopping Bag anim.";
    
    list inventory = [];
    string name;
    integer num;
     
    default
    {
        state_entry()
        {
            owner = llGetOwner();
            num = llGetInventoryNumber(INVENTORY_ALL);
            integer i;
            for(i = 0; i < num; ++i)
            {
                name = llGetInventoryName(INVENTORY_ALL, i);
                if(name != llGetScriptName())
                {
                    if(name != anim)
                    {
                        inventory += name;
                    }
                }
            }
        }

    Zu diesem Zweck habe ich vor Jahren schon ein Tutorial in der Wiki veroeffentlicht.
    http://wiki.secondlife.com/wiki/User:Daemonika_Nightfire/Scripts/Giver_Tutorial
    LG
    Dae
     
    Zuletzt bearbeitet: 8. Oktober 2017
  2. Niani Resident

    Niani Resident Superstar

    Beiträge:
    1.162
    Zustimmungen:
    2.093
    Punkte für Erfolge:
    124
    Also, was das Scripten betrifft, bin ich ein echter Noob und ich frage mich, warum das erste Script das Inventar "vermüllt" bzw. was das für Auswirkungen hat.
    Für mich als absoluter Script-Laie kann ich nur erkennen, dass das zweite Script kürzer ist.
     
    Landra Beerbaum1 gefällt das.
  3. June Trenkins

    June Trenkins SLinfo-Freebiehunter

    Beiträge:
    2.161
    Zustimmungen:
    2.750
    Punkte für Erfolge:
    139
    10 Jahre Sl und ich kann gerade mal Farbe und Texte ändern in Skripten.
    Du erwartest zuviel, Daemonika. :D

    Ich nehm meist die Skripte, die ich im Inventar finde und ja, die sind meist grottenalt. :/
     
  4. Nelly Yumako

    Nelly Yumako Superstar

    Beiträge:
    1.545
    Zustimmungen:
    1.403
    Punkte für Erfolge:
    129
    /me lacht

    Ich könnts auch nicht selbst. Hab mir bisher damit geholfen, indem ich das was ich nicht ausgeben wollte, auf nocopy gesetzt habe.

    Vielen Dank @Daemonika Nightfire
    Ich hoffe, das verbreitet sich, mich nerven die ganzen unerwünschten Anis auch.
     
  5. Daemonika Nightfire

    Daemonika Nightfire Forumsgott/göttin

    Beiträge:
    7.698
    Zustimmungen:
    952
    Punkte für Erfolge:
    123
    OK ihr suessen,

    ich mach euch einen Vorschlag, sagt mir was fuer einen Giver ihr braucht und ich poste ihn euch hier im Thread.
    Wenn ihr moechtet, koennen wir auch gern einzelne Giver Komplett aufdroeseln und entschluesseln welche Funktionen notwendig sind und wofuer sie sind.

    @Niani
    Du hast da etwas uebersehen, das zweite Script ist nicht kuerzer, es ist sogar bis auf eine kleinigkeit mit dem oberen identisch, es fehlt nur der ganze rest.

    Im Grunde koennen Giver total klein sein, es kommt halt darauf an wofuer sie gedacht sind.

    LG
    Dae
     
    Khufu Greymoon und kitten Mills gefällt das.
  6. Daemonika Nightfire

    Daemonika Nightfire Forumsgott/göttin

    Beiträge:
    7.698
    Zustimmungen:
    952
    Punkte für Erfolge:
    123
    huhu,

    weil in diesem Thread Inventar Vemuellung thematisiert wurde, haenge ich das mal hier an.

    Ich habe nun einen Langzeit Test im Selbstversuch durchgefuehrt und kam zu einem erschreckenden Ergebniss.
    Bis vor kurzem hatte ich noch ueber 164000 Items in meinem Inventar.
    Nun habe ich mal alles geloescht, wo DEMO dran stand.

    Kurze Erklaerung:
    Ich habe nun etwa 1 Jahr lang keine einzige DEMO, ganz gleich ob Inworld oder Marketplace aus meinem Inventar geloesch.
    Unglaublich wie viel Zeug sich dabei ansammelt.
    Bei den reinen Product-Boxen im Ordner "Objekte" und Product-Folder im Ordner "Erhaltene Items" handelte es sich zusammen um rund 1500 Eintraege.
    Das erschreckende daran, diese 1500 Eintraege entfalten sich nach dem Auspacken um sage und schreibe 18000 Items.

    Nachdem ich diese nun alle geloescht habe, belaeuft sich mein Inventar nun auf rund 146000 Items.
    So ganz nebenbei weiss ich nun auch, das der Papierkorb lediglich rund 5000 Items auf einmal fassen kann, bevor es zu einer Fehlermeldung kommt.
    Das heisst, ich musste den zwischendurch 3 mal leeren, bevor ich weiter machen konnte.

    Wenn ich mir jetzt noch die Arbeit machen wuerde alle Klamotten zu loeschen, welche nicht fuer den Maitreya Body sind, bei allen Produkten die ich gekauft habe, wuerde sich mein Inventar locker auf die haelfte reduzieren.

    LG
    Dae
     
    Fe McCarey gefällt das.
  7. Sixx McMahon

    Sixx McMahon Superstar

    Beiträge:
    2.302
    Zustimmungen:
    1.443
    Punkte für Erfolge:
    154
    ... ich hab im Moment auch soviel Items wie lange nicht im Inventar. Durch Umbauen,
    kopieren oder Zuordnung in einzelne "Projekte" sogar doppelt, dreifach und vierfach... [​IMG]

    Ich weiß garnicht wohin mit meinen 24000 Items [​IMG]
     
  8. Gitta4 Setzer

    Gitta4 Setzer Freund/in des Forums

    Beiträge:
    559
    Zustimmungen:
    220
    Punkte für Erfolge:
    54
    8000 hab ich fast :hey:hey:hey
     
  9. Khufu Greymoon

    Khufu Greymoon Superstar

    Beiträge:
    1.424
    Zustimmungen:
    615
    Punkte für Erfolge:
    123
    Bei Khufu sinds nach den ersten aufräum Aktionen durch umstellung auf den Signature "nur" noch 86k bei Sat sind es Aktuell 72k^^
     
  10. Tanja Byron

    Tanja Byron Superstar

    Beiträge:
    3.199
    Zustimmungen:
    187
    Punkte für Erfolge:
    64
    Ihr Anfänger, mein Chaos beläuft sich auf über 180000 Items^^
     
  11. Charlie Namiboo

    Charlie Namiboo Superstar

    Beiträge:
    3.775
    Zustimmungen:
    7.045
    Punkte für Erfolge:
    154
    /me feilt sich die Fingernägel und denkt still über ihre 220K Items nach ...
     
    Landra Beerbaum1 gefällt das.
  12. Nelly Yumako

    Nelly Yumako Superstar

    Beiträge:
    1.545
    Zustimmungen:
    1.403
    Punkte für Erfolge:
    129
    Mir ist bewusst, dass der größte Inventarmultiplikator meine Outfits sind. Erst recht, wenn ich aus'm Fatpack einzelne Farben extra nochmal speichere, weil manche Ersteller unanständig große Color-HUDs machen.

    Keine Outfits machen ist keine Lösung, also leb ich mit der reinen Item-Anzahl. Und nein, ich verrat sie jetzt nicht :o_o:
     

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden