Bugün Second Life tek yerde Hediyeler ve freebie’ler her saat güncellenir 7 dil Ücretsiz mağazanı ekle
12:49 SLT Etkinliğini ekle+ Ekle
Grid sorunu
  • Planlı: Scheduled Billing Maintenance, 16 Kas Pzt 09:30–10:30 SLT
  • Grid durumu: Unscheduled Group Chat Maintenance (investigating)
  • Şimdi: UUtopia'da Unitarian Universalist Cumartesi Ayini
  • Şimdi: The Dharma of Community: Budist Toplum ve Householder
  • Şimdi: SLCS Harvest Fest: oyunlar, müzik ve eğlence
  • 14:00 SLT: Cascadia Moondance'te NAD GOUGH canlı performans, 14:00 SLT
  • Haberler: REZZ MALL: Second Life markaları tek bir web mağazasında
  • Viewer: Second Life Viewer 26.5 ile sohbet yenileniyor
  • Planlı: Scheduled Billing Maintenance, 16 Kas Pzt 09:30–10:30 SLT
  • Grid durumu: Unscheduled Group Chat Maintenance (investigating)
  • Şimdi: UUtopia'da Unitarian Universalist Cumartesi Ayini
  • Şimdi: The Dharma of Community: Budist Toplum ve Householder
  • Şimdi: SLCS Harvest Fest: oyunlar, müzik ve eğlence
  • 14:00 SLT: Cascadia Moondance'te NAD GOUGH canlı performans, 14:00 SLT
  • Haberler: REZZ MALL: Second Life markaları tek bir web mağazasında
  • Viewer: Second Life Viewer 26.5 ile sohbet yenileniyor
LSL script

LSL hediye dağıtma scripti: freebie ve grup hediyeleri için

Second Life mağazaları için ücretsiz LSL hediye scripti: dokunun, tüm eşyalar tek klasörde gelsin. Herkes ya da yalnızca grup etiketini takanlar için.

101 satır ·

Her mağazanın bir hediye dağıtıcısına ihtiyacı var. Bu script, birisi nesneye dokunduğunda bir nesnenin Contents (İçerik) kısmındaki her şeyi tek ve düzenli bir klasör halinde verir. GROUP_ONLY ayarını açarsanız bir grup hediye panosuna dönüşür: yalnızca mağazanızın grup etiketini takan sakinler hediyeyi alır.

lsl-gift-giver-script.lsl · 101 satır Bu scripti denetle
// Gift Giver (everyone or group only) - free LSL script from WhatSL (https://whatsl.com/scripts/lsl-gift-giver-script)
// Free to use, change and put in your own creations, also ones you sell.
//
// Put this script and your gift items in an object. Touch it to receive everything in its Contents
// (except this script) as one folder. Items must be copyable for the next owner.
// With GROUP_ONLY = TRUE, only residents wearing the same group tag as the object get the gift:
// set the object's group in the Edit window (General tab) first.

integer GROUP_ONLY       = FALSE;
string  FOLDER_NAME      = "";    // "" = use the object's name
string  THANK_YOU        = "Enjoy your gift! It is in your inventory.";
string  NO_GROUP_TEXT    = "Sorry, this gift is for group members. Wear the group tag and touch me again.";
integer COOLDOWN_SECONDS = 60;    // the same avatar can take the gift again after this time

list gRecent = [];   // [avatar key, unix time, ...]

string folderName()
{
    if (FOLDER_NAME != "") return FOLDER_NAME;
    return llGetObjectName();
}

list giftItems()
{
    list out = [];
    string me = llGetScriptName();
    integer n = llGetInventoryNumber(INVENTORY_ALL);
    integer i;
    for (i = 0; i < n; ++i)
    {
        string name = llGetInventoryName(INVENTORY_ALL, i);
        if (name != me) out += [name];
    }
    return out;
}

giveGift(key who, integer sameGroup)
{
    if (GROUP_ONLY)
    {
        // an object without a group would let everyone in, so check that a group is set
        key objGroup = llList2Key(llGetObjectDetails(llGetKey(), [OBJECT_GROUP]), 0);
        if (objGroup == NULL_KEY)
        {
            llRegionSayTo(who, 0, "This gift giver is not set up yet.");
            return;
        }
        if (!sameGroup)
        {
            llRegionSayTo(who, 0, NO_GROUP_TEXT);
            return;
        }
    }
    integer now = llGetUnixTime();
    integer i = llListFindList(gRecent, [who]);
    if (i != -1)
    {
        if (now - llList2Integer(gRecent, i + 1) < COOLDOWN_SECONDS)
        {
            llRegionSayTo(who, 0, "You already have this gift. Look for the folder \"" + folderName() + "\" in your inventory.");
            return;
        }
        gRecent = llDeleteSubList(gRecent, i, i + 1);
    }
    list stuff = giftItems();
    if (llGetListLength(stuff) == 0)
    {
        llRegionSayTo(who, 0, "This gift giver is empty right now.");
        return;
    }
    llGiveInventoryList(who, folderName(), stuff);
    llRegionSayTo(who, 0, THANK_YOU);
    gRecent += [who, now];
    if (llGetListLength(gRecent) > 200) gRecent = llDeleteSubList(gRecent, 0, 1);
}

default
{
    state_entry()
    {
        if (GROUP_ONLY)
        {
            key objGroup = llList2Key(llGetObjectDetails(llGetKey(), [OBJECT_GROUP]), 0);
            if (objGroup == NULL_KEY) llOwnerSay("GROUP_ONLY is on, but this object has no group. Set the group in the Edit window (General tab), then reset the script.");
        }
    }

    touch_start(integer total)
    {
        integer d;
        for (d = 0; d < total; ++d)
        {
            giveGift(llDetectedKey(d), llDetectedGroup(d));
        }
    }

    changed(integer change)
    {
        if (change & CHANGED_OWNER) llResetScript();
    }
}

Ücretsizdir: kullanabilir, değiştirebilir ve sattıkların dahil kendi yapımlarına koyabilirsin.

Nasıl kurulur

  1. Hediyeniz için bir kutu, tabela ya da poster rezz edin ve scripti İçeriğine (Contents) koyun.
  2. Hediye eşyalarınızı ekleyin (kıyafet, mobilya, bir landmark, bir notecard). Bir sonraki sahip için copyable olmaları gerekir.
  3. Grup hediyesi için GROUP_ONLY değerini TRUE yapın ve nesnenin grubunu Edit penceresinin General sekmesinden ayarlayın. Scripti tekrar kaydedin.
  4. Dağıtıcıya dokunarak test edin. Hediye, nesnenin adını taşıyan bir klasör olarak gelir.

Ayarlar

  • GROUP_ONLY: FALSE herkese verir; TRUE yalnızca nesnenin grup etiketini takan sakinlere verir.
  • FOLDER_NAME: hediyenin geleceği klasörün adı; boş bırakılırsa nesnenin adı kullanılır.
  • THANK_YOU ve NO_GROUP_TEXT: sakinlerin gördüğü mesajlar.
  • COOLDOWN_SECONDS: aynı avatarın yanlışlıkla hediyeyi tekrar tekrar almasını engeller.

İpuçları

  • Contents içindeki eşyaları değiştirerek her ay hediyeyi yenileyin; scripti değiştirmeniz gerekmez.
  • Hediyeye, mağazanıza giden bir landmark ve bir teşekkür içeren kısa bir notecard ekleyin.
  • Daha fazla sakinin bulması için hediyenizi WhatSL'de ücretsiz listeleyin.

Sık sorulan sorular

Grubumdaki bir sakin neden "this gift is for group members" mesajını alıyor?

Grupta, ancak başka bir grup etiketi aktif durumda. Ona grubunuzu aktif grup yapmasını söyleyin ve tekrar dokunsun.

Bazı eşyalar neden klasörde yok?

Bir sonraki sahip için no-copy olan eşyalar klasör içinde verilemez. Bunları copyable yapın ya da her no-copy eşya için ayrı bir dağıtıcı kullanın.

Landmark da verebilir miyim?

Evet. Scriptin kendisi hariç, İçerikteki her şey verilir; landmark ve notecard dahil.

Kendi scriptini denetle: LSL sözdizimi denetleyicisi →

Diğer scriptlerTüm scriptler
LSL script · 55 satır

LSL kapı scripti: dokununca açılır, kendi kendine kapanır

Second Life için ücretsiz LSL kapı scripti. Dokununca açılıp kapanır, kapı menteşesi üzerinde döner ve birkaç saniye sonra kendiliğinden kapanır. Sesler isteğe bağlı.

LSL script · 69 satır

LSL sit and pose script for chairs and pose balls

Free LSL sit script for Second Life chairs, benches and pose balls: sit and play your own animation, set the sit position, hide the ball while in use.

LSL script · 96 satır

LSL tip jar script with thank-you message and total

Free LSL tip jar script for Second Life clubs, DJs, hosts and stores: quick pay buttons, a thank-you message, the total and last tipper in floating text.