LoginSignup
0
0

More than 5 years have passed since last update.

SL パスワードつき gift Vendor スクリプト 例

Last updated at Posted at 2018-09-11

ぱすわーどつきべんだーのさんぷるです。
本スクリプトは販売金額などの機能は有してませんが、money 関数など足してゆけば販売用にも使えるので挑戦してね!

string passwd にパスワードを
string folder は渡した相手のインベントリに作成されるフォルダー名です。アイテムはその中に入れられます。

では おたのしんでね!

password_vendor.LSL

integer handle;
integer channel;
key user_key;
string passwd = "ぱすわーど";
string folder = "folder";

string err_message = "ぱすわーどがちがうみたい。もう一度かくにんしてね!";

integer genCh()
{
    integer gen;
    key id = llGetKey();
    string str = llGetSubString((string)id,0,3);
    gen = -1-(integer)("0x"+str);
    return gen;
}

do_given(key user)
{
    list        inventory;
    integer     num = llGetInventoryNumber(INVENTORY_ALL);
    string      script = llGetScriptName();
    integer     i = 0;

    for (; i < num; ++i)
    {
        string name = llGetInventoryName(INVENTORY_ALL, i);
        //販売スクリプトをあげないように
        if(name != script)
        {
            if(llGetInventoryPermMask(name, MASK_OWNER) & PERM_COPY)
            {
                inventory += name;
            }
            else
            {
                llSay(0, "Don't have permissions to give you \""+name+"\".");
            }
        }
    }

    if (llGetListLength(inventory) < 1)
    {
        llSay(0, "No items to offer."); 
    }
    else
    {
        // エージェントにフォルダをあげます。オブジェクトの名前をあげるフォルダの名前に使います
        llGiveInventoryList(user, folder, inventory);
    }
}

menu_passwd(key user)
{
    llTextBox(user,"ぱすわーどをいれてね\n", channel);
}

default
{
    state_entry()
    {
        llSetText("", <1,0.5,0.5>,1);

        channel = genCh();
        handle = llListen(channel, "", NULL_KEY, "");
    }

    listen( integer channel, string name, key id, string message )
    {        
        if(message == passwd)
        {
            do_given(id);
        }
        else
        {
            llInstantMessage(id, err_message);
        }
    }

    touch_start(integer total_number)
    {
        user_key = llDetectedKey(0);
        menu_passwd(user_key);
    }
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0