Advertisement
Bugs_Larnia

LSL: Simple object giver, exclude scripts

Jan 13th, 2021
779
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Simple object giver, exclude scripts - by Bugs Larnia
  2. // Created 2009-12-19
  3. // This script will give all inventory, except scripts (including this one) to anyone who touches the container
  4. // This script is freeware and may be distributed and used freely
  5. // Please keep annotations
  6.  
  7.  
  8.  
  9. list inventory;
  10.  
  11. default
  12. {
  13.     state_entry()
  14.     {
  15.         integer i;
  16.         // Build the list of things to give
  17.         for (i = 0; i < llGetInventoryNumber(INVENTORY_ALL); ++i)
  18.         {
  19.             string name = llGetInventoryName(INVENTORY_ALL, i);
  20.             if (llGetInventoryType(name) != INVENTORY_SCRIPT)
  21.             {
  22.                 inventory += name;
  23.             }
  24.         }      
  25.     }
  26.    
  27.     // Make sure the list is rebuilt when a new object is dropped in or removed
  28.     changed(integer mask)
  29.     {
  30.         if (mask && (CHANGED_INVENTORY || CHANGED_ALLOWED_DROP))
  31.             llResetScript();
  32.     }
  33.  
  34.     touch_start(integer total_number)
  35.     {
  36.         integer i;
  37.         integer length = llGetListLength(inventory); // Get the list length
  38.         string folder = llGetObjectName(); // Folder name
  39.        
  40.         for(i = 0; i < total_number; ++i)
  41.         {
  42.             key id = llDetectedKey(i);
  43.             // If more items, then give a folder
  44.             if (length > 1)
  45.             {
  46.                 llGiveInventoryList(id, folder, inventory);
  47.                 llInstantMessage(id, "Please look in your inventory for a folder called: " + folder);
  48.             }
  49.             // If only one item, just give the item
  50.             else if (length == 1)
  51.             {
  52.                 string name = llList2String(inventory, 0);
  53.                 llGiveInventory(id, name);
  54.                 llInstantMessage(id, "Please look in your inventory for an item called: " + name);
  55.             }
  56.             // No items present; inform the toucher
  57.             else
  58.             {
  59.                 llInstantMessage(id, "Sorry, there seems to be no inventory present.");
  60.             }
  61.         }
  62.     }
  63. }
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement