LlGiveInventory Test

From Second Life Wiki
Revision as of 17:29, 26 April 2007 by Milo Linden (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

[LLGiveInventoryTest]

[VERSION] 0.1

[LENGTH] 00:30

[TESTERS] 2

[OVERVIEW] This test has been designed to test a Scripted give from an object using llGiveInventory.

[SETUP] This test requires 2 users, Tester 1: and Tester 2: and rezzable land

[*]

[NOTE] if receiving object is no-mod it shouldn't accept items from other users (unless allowInventoryDrop is on)

[*]

[0010.0010] Tester 1: Right-click on the ground and Select "Create" from the Pie Menu and Rez a Cube

[0010.0020] Tester 2: Open your Inventory, find and object that is transfer and copy

[0010.0030] Tester 2: Hold Left-click on the object and Hold Ctrl, and Drag the mouse over Tester 1:'s Cube and try and Drop the item onto the box.

[0010.0040] Tester 2: Verify you are blocked and you see the Cube Highlighted in Red with a Padlock

[0010.0050] Tester 1: Right-click on the Cube and Select Edit, Click "More >>" if neccessary

[0010.0060] Tester 1: Click the Contents Tab, and Press the "New Script" Button, Copy and Paste the following script over the default script.

[SCRIPT] llAllowinventorydrop

[0010.0070] Tester 1: Once copied and Pasted, Click "Save" and Close the Script and Edit Windows.

[0010.0080] Tester 2: Open your Inventory, find and object that is transfer and copy

[0010.0090] Tester 2: Hold Left-click on the object and Hold Ctrl, and Drag the mouse over Tester 1:'s Cube and try and Drop the item onto the box.

[0010.0100] Tester 2: Verify you are succesfull in dropping the item into Tester 1:'s Cube (the object will be highlighted red as you mouse over it but there should be no padlock)

[*]

[0020.0010] Tester 2: Right-click on the ground and Select "Create" from the Pie Menu and Rez a Cube

[0020.0020] Tester 1: Open your Inventory, find and object that is transfer but (no copy) if you dont have such an object have Tester 2: Create and object with such Permissions and Send it to you

[0020.0030] Tester 1: Hold Left-click on the object and Hold Ctrl, and Drag the mouse over Tester 2:'s Cube and try and Drop the item onto the box.

[0020.0040] Tester 1: Verify you are blocked and you see the Cube Highlighted in Red with a Padlock

[0020.0050] Tester 2: Right-click on the Cube and Select Edit, Click "More >>" if neccessary

[0020.0060] Tester 2: Click the Contents Tab, and Press the "New Script" Button, Copy and Paste the following script over the default script.

[SCRIPT] llAllowinventorydrop

[0020.0070] Tester 2: Once copied and Pasted, Click "Save" and Close the Script and Edit Windows.

[0020.0080] Tester 1: Open your Inventory, find and object that is transfer and copy

[0020.0090] Tester 1: Hold Left-click on the object and Hold Ctrl, and Drag the mouse over Tester 2:'s Cube and try and Drop the item onto the box.

[0020.0100] Tester 1: Verify you are succesfull in dropping the item into Tester 2:'s Cube (the object will be highlighted red as you mouse over it but there should be no padlock)

[*]

[0030.0010] Tester 1: Right-click on the Ground and Select "Create" from the Pie Menu and Rez 2 Cubes, call them "Sender" and "Receiver"

[0030.0020] Tester 1: Right-click on the "Reciever" cube and Select Edit, Click "More >>" if neccessary

[0030.0030] Tester 1: Click the Contents Tab, and Press the "New Script" Button, Copy and Paste the following script over the default script.

[SCRIPT] Changedscript

[0030.0040] Tester 1: Once copied and Pasted, Click "Save" and Close the Script and Edit Windows.

[0030.0050] Tester 1: Right-click on the "Sender" cube and Select Edit, Click "More >>" if neccessary

[0030.0060] Tester 1: Click the Contents Tab, and Press the "New Script" Button, Copy and Paste the following script over the default script.

[SCRIPT] llGiveinventoryscript

[0030.0070] Tester 1: Once copied and Pasted, Click "Save" and Close the Script and Edit Windows.

[0030.0080] Tester 1: Left-click on the Reciever Cube and Copy the Key is Chats

[0030.0090] Tester 1: Right-click on the "Sender" cube and Select Edit, Click "More >>" if neccessary

[0030.0100] Tester 1: Click the Content Tab, and Open the Script, Replace the Key in the Script with the one you just copied

[0030.0110] Tester 1: Click "Save" then, Close the Script window.

[0030.0120] Tester 2: Right-click on the ground and "Create" a prim with no copy perms, "Take" it and send it to Tester 1:

[0030.0130] Tester 1: Look in your Inventory for the (no copy) Object from Tester 2:

[0030.0140] Tester 1: Left-click-ctrl drag it onto the "Sender" Prim or you can Drag it into the Content Folder

[0030.0150] Tester 1: Close any open Edit Windows

[0030.0160] Tester 1: Left-click the "Sender" Cube, you should hear a message from the "Reciever" prim

[0030.0170] Tester 1: Verify the no-copy object was removed from the Sender object and sent to the Reciever

[*]

[0040.0010] Tester 1: Right-click on the "Reciever" Prim and Select "Edit", Click the Contents Tab and Delete the "Object"

[0040.0020] Tester 1: Right-click on the "Reciever" Prim and Select "More > Attach > Left Hand"

[0040.0030] Tester 2: Send Tester 1: another Copy of the (no copy) "Object"

[0040.0040] Tester 1: Right-click and "Edit" the Sender Prim and Drag the (no copy) Object to the Contents

[0040.0050] Tester 1: Close the Edit window, then Left-click on the "Sender" Prim

[0040.0060] Tester 1: Verify you hear a message similar to "Unable to give inventory: Blocked by permissions"

[*]

[0050.0010] Tester 2: Right-click on the ground and "Create" a prim with no transfer perms, "Take" it and send it to Tester 1: (in next owner can tick copy and untick resell)

[0050.0020] Tester 1: Right-click and "Edit" the Sender Prim and Drag the (no transfer) Object to the Contents

[0050.0030] Tester 1: Close the Edit window, then Left-click on the "Sender" Prim

[0050.0040] Tester 1: Verify the "Sender" object cannot give a no-transfer object to the "Reciever" object attached to Tester 1: (but it did, then read the note)

[*]

[NOTE] You can give a no-transfer object to your attachment. You can then detach the attachment, and your attachment will continue to be transferable. If you give the attachment to another person, the no-transfer object will be stripped from the attachment, thus this isn't an exploit, merely unexpected behavior.

[*]

[0060.0010] Tester 2: Right-click on the Ground and Select "Create" from the Pie Menu and Rez a Cube, call it "Receiver"

[0060.0020] Tester 2: Right-click on the "Reciever" cube and Select Edit, Click "More >>" if neccessary

[0060.0030] Tester 2: Click the Contents Tab, and Press the "New Script" Button, Copy and Paste the following script over the default script.

[SCRIPT] Changedscript

[0060.0040] Tester 2: Once copied and Pasted, Click "Save" and Close the Script and Edit Windows.

[0060.0050] Tester 2: Left-click on the Reciever Cube and Copy the Key is Chats and pass it onto Tester 1:

[0060.0060] Tester 1: Right-click on the "Sender" cube and Select Edit, Click "More >>" if neccessary

[0060.0070] Tester 1: Click the Content Tab, and Open the Script, Replace the Key in the Script with the one you just copied

[0060.0080] Tester 1: Click "Save" then, Close the Script window. Remove any objects in the contents.

[0060.0090] Tester 2: Right-click on the ground and "Create" a prim with no copy perms, "Take" it and send it to Tester 1:

[0060.0100] Tester 1: Look in your Inventory for the (no copy) Object from Tester 2:

[0060.0110] Tester 1: Left-click-ctrl drag it onto the "Sender" Prim or you can Drag it into the Content Folder

[0060.0120] Tester 1: Close any open Edit Windows

[0060.0130] Tester 1: Left-click the "Sender" Cube, you should hear a message from the "Reciever" prim

[0060.0140] Tester 1: Verify the no-copy object was removed from the Tester 1:'s Sender object and sent to the Tester 2:'s Reciever

[*]

[0070.0010] Tester 2: Right-click on the "Reciever" Prim and Select "Edit", Click the Contents Tab and Delete the "Object"

[0070.0020] Tester 2: Right-click on the "Reciever" Prim and Select "More > Attach > Left Hand"

[0070.0030] Tester 2: Send Tester 1: another Copy of the (no copy) "Object"

[0070.0040] Tester 1: Right-click and "Edit" the "Sender" Prim and Drag the (no copy) Object to the Contents

[0070.0050] Tester 1: Close the Edit window, then Left-click on the "Sender" Prim

[0070.0060] Tester 2: Verify you hear a message similar to "Unable to give inventory: Blocked by permissions"

[*]

[0080.0010] Tester 2: Right-click on the Attached "Reciever" prim and Select "Drop" from the Pie Menu

[0080.0020] Tester 2: Right-click on the ground and "Create" a prim with no transfer perms, "Take" it and send it to Tester 1: (in next owner can tick copy and untick resell)

[0080.0030] Tester 1: Right-click and "Edit" the Sender Prim and click the Contents Tab, Delete Any Objects

[0080.0040] Tester 1: Drag the (no transfer) Object to the Contents from your Inventory

[0080.0050] Tester 1: Close the Edit window, then Left-click on the "Sender" Prim

[0080.0060] Tester 2: Verify you hear a message similar to "Unable to give inventory: Blocked by permissions"

[*]

[0090.0010] Tester 2: Right-click on the "Reciever" Prim and Select "More > Attach > Left Hand"

[0090.0020] Tester 1: Left-click the "Sender" Cube, you should hear a message from the "Reciever" prim

[0090.0030] Tester 2: Verify you hear a message similar to "Unable to give inventory: Blocked by permissions"

[*]

[Object to Agent Transfer while Online and Offline]

[*]

[0100.0010] Tester 1: Right-click on the Ground and Select "Create" from the Pie Menu, Rez a prim Cube

[0100.0020] Tester 1: Right-click on the cube and Select Edit, Click "More >>" if neccessary

[0100.0030] Tester 1: Click the Contents Tab, and Press the "New Script" Button, Copy and Paste the following script over the default script.

[SCRIPT] llGiveinventory

[0100.0040] Tester 1: Once copied and Pasted, Click "Save" and Close the Script and Edit Windows.

[0100.0050] Tester 2: Right-click on the Ground and Select "Create" from the Pie Menu, Rez a prim Cube

[0100.0060] Tester 2: Right-click on the cube and Select Edit, Click "More >>" if neccessary

[0100.0070] Tester 2: Click the Contents Tab, and Press the "New Script" Button, Copy and Paste the following script over the default script.

[SCRIPT] llDetectedkeyscript

[0100.0080] Tester 2: Once copied and Pasted, Click "Save" and Close the Script and Edit Windows.

[0100.0090] Tester 2: Right-click on the Ground and Select "Create" from the Pie Menu, Rez a prim Cube

[0100.0100] Tester 2: Right-click on the Cube and Select "Take" from the Pie Menu

[0100.0110] Tester 2: From your Inventory find the Object Taken and Pass 2 copies of it to Tester 1:

[0100.0120] Tester 1: Accept the Items.

[0100.0130] Tester 2: Touch your remaining Cube displaying "Touch to view your key..."

[0100.0140] Tester 1: Copy the Key that has been chatted by Tester 2:'s Cube

[0100.0150] Tester 1: Right-click on your cube and Select Edit, Click "More >>" if neccessary

[0100.0160] Tester 1: Click the Contents Tab, double click on the Script to open it, locate the key in the script and paste the once that was chatted by Tester 2:'s box over it.

[0100.0170] Tester 1: Once Pasted, Click "Save" and Close the Script

[0100.0180] Tester 1: Open your Inventory, and Locate the cube "Object" sent by Tester 2:

[0100.0190] Tester 1: Copy 1 of them to the Contents of your Cube then Close the Edit Window.

[0100.0200] Tester 1: Left-click on your Cube.

[0100.0210] Tester 2: Verify you are offered an "Object", press "Keep"

[0100.0220] Tester 2: Open you Inventory, Locate the Object

[0100.0230] Tester 2: Verify the "Object" is listed as (no copy) (no modify)

[0100.0240] Tester 1: Right-click on your cube and Select Edit, Click "More >>" if neccessary, Click the Content Tab

[0100.0250] Tester 1: Verify the Object placed previously has been Transfered and Removed

[0100.0260] Tester 1: Open your Inventory, and Locate the cube "Object" sent by Tester 2:

[0100.0270] Tester 1: Copy the other to the Contents of your Cube then Close the Edit Window.

[0100.0280] Tester 2: Logoff, wait 2 minutes and Logon again.

[0100.0290] Tester 1: When Tester 2: has logged off Left-click on the Cube again

[0100.0300] Tester 2: When you log back in Verify you are offered an "Object", Press Keep

[0100.0310] Tester 2: Open you Inventory, Locate the Object

[0100.0320] Tester 2: Verify the "Object" is listed as (no copy) (no modify)

[0100.0330] Tester 1: Right-click on your cube and Select Edit, Click "More >>" if neccessary, Click the Content Tab

[0100.0340] Tester 1: Verify the Object placed previously has been Transfered and Removed

[0100.0350] Tester 1 & B: Delete any Prims.

[END]


[llAllowinventorydrop]

default 
{ 
state_entry() 
{ 
llAllowInventoryDrop(TRUE); 
} 
}


[llGiveinventoryscript]

//llGiveInventory 
default 
{ 
state_entry() 
{ 
llSay(0, "Hello, Avatar!"); 
integer allowdrop = TRUE; 
llAllowInventoryDrop(allowdrop); 
llSay(0, "llAllowInventoryDrop is "+(string)allowdrop); 
} 
touch_start(integer total_number) 
{ 
key destination = "c7a62f0f-b2f9-dc5e-6f6d-682df139c0f4"; 
llGiveInventory(destination, "Object"); 
} 
changed(integer change) 
{ 
if (change == CHANGED_INVENTORY) 
{ 
llSay(0, "CHANGED_INVENTORY"); 
} 
else if (change == CHANGED_ALLOWED_DROP) 
{ 
llSay(0, "CHANGED_ALLOWED_DROP"); 
} 
} 
}


[Changedscript]

// changed 
default 
{ 
state_entry() 
{ 
llSay(0, "Hello, Avatar!"); 
integer allowdrop = TRUE; 
llAllowInventoryDrop(allowdrop); 
llSay(0, "llAllowInventoryDrop is "+(string)allowdrop); 
} 
touch_start(integer total_number) 
{ 
llSay(0, "key is "+(string)llGetKey()); 
} 
changed(integer change) 
{ 
if (change == CHANGED_INVENTORY) 
{ 
llSay(0, "CHANGED_INVENTORY"); 
} 
else if (change == CHANGED_ALLOWED_DROP) 
{ 
llSay(0, "CHANGED_ALLOWED_DROP"); 
} 
} 
}


[llDetectedkeyscript]

default
{
    state_entry()
    {
        llSetText("Touch to view your key...", <1,1,1>, 1);
    }

    touch_start(integer total_number)
    {
        integer x;
        
        for (x = 0;x < total_number;x += 1)
        {
            llSay(0, "The key for " + llDetectedName(x) + " is "  + (string)llDetectedKey(x));
        }
    }
}