I thought maybe one of the items had an issue with perms so I checked them all and all are set correctly. What I dont understand is why it will work fine part of the time but not the other. The code is listed below.
//PHP//
list inventory;
get_inv_list()
{
integer i;
string name;
inventory = [];
for (i = 0; i < llGetInventoryNumber(INVENTORY_ALL); i++)
{
name = llGetInventoryName(INVENTORY_ALL, i);
if (name != llGetScriptName()) inventory += [name];
}
llOwnerSay("The following items are set to be given out: " + llList2CSV(inventory) + "."

if (llGetListLength(inventory) > 1)
llOwnerSay("These items will be put into a folder named " + llGetObjectName() + " when purchased. Rename this object to rename the folder."

}
default {
state_entry() {
get_inv_list();
llListen(96321,"",NULL_KEY,""

}
listen(integer channel, string name, key id, string m) {
integer num_items = llGetListLength(inventory);
integer random_item = (integer)llFrand(num_items + 1);
if (num_items > 1)
llGetInventoryPermMask("Prize 1", MASK_NEXT) & PERM_COPY;
llGetInventoryPermMask("Prize 2", MASK_NEXT) & PERM_COPY;
llGetInventoryPermMask("Prize 3", MASK_NEXT) & PERM_COPY;
llGetInventoryPermMask("Prize 4", MASK_NEXT) & PERM_COPY;
llGiveInventoryList(m, llGetObjectName(), [llList2String(inventory, random_item)]);
}
changed(integer change)
{
if (change & CHANGED_INVENTORY)
get_inv_list();
}
}
//PHP//
Thanks for any insite you may be able to offer me.