UW Scripts for 5/20

Today’s scripts follow below the fold…

Part 1: detectors!

// Script 5.1 simple Collision detector
default {
    collision_start(integer c) {
    	llSay(0, "Bonk!, "+llDetectedName(0));
    	//llPushObject(llDetectedKey(0), <0,0,100>, <0,0,0>, TRUE);
    }
}
// Script 5.2 Volumetric Collision detector
default {
    state_entry() {
        llVolumeDetect(TRUE);
    }
    collision_start(integer c) {
    	llSay(0, "Excuse me, "+llDetectedName(0));
    }
}
// 5.3 Simple sensor
default
{
    touch_end(integer c)
    {
        llSensor("", "", AGENT, 10.0, PI);
    }
    sensor(integer count)
    {
    	integer i;
    	for (i=0; i<count; i++) {
    		llOwnerSay("I see "+llDetectedName(i));
    	}
    }
}

Part 2: Inventory givers!

// 5.4 simple inventory giver

vector WHITE=<1,1,1>;

default {
    state_entry() {
        llSetText("Touch me for a present!", WHITE, 1.0);
    }
    touch_end(integer c) {
    	llGiveInventory(llDetectedKey(0), "HappyBirthday");
    }
}
// 5.5 folder inventory giver

vector WHITE=<1,1,1>;

default {
    state_entry() {
        llSetText("Touch me for goodies!", WHITE, 1.0);
    }
    touch_end(integer c) {
        key lucky = llDetectedKey(0);
   		
    	list stuff = [];
    	integer n = llGetInventoryNumber(INVENTORY_ALL);
    	integer i;
    	for (i=0; i<n; i++) {
    		string item = llGetInventoryName(INVENTORY_ALL, i);
    		if (item != llGetScriptName()) {
    			stuff += [item];
    		}
    	}
    	llGiveInventoryList(lucky, "Goodies for "+llDetectedName(0), stuff);
    }
}