UW Scripts for 4/22

Week 3 UW scripts

Script 3.1:

// UW3.1
// Similar to Listing 2.6: Flip Tag - Label Yourself
integer CHANNEL = 9; // Channel number to listen on
vector RGB = <255,255,255>; // color of the text

default
{
 on_rez(integer start_param) {
   llResetScript();
 }

 state_entry() {
   llListen(CHANNEL, "", llGetOwner(), "");
 }

 listen(integer channel, string name, key id, string message) {
   llSetText(message, RGB/255.0, 1.0);
 }
}

And another, Script 3.2:

// UW3.2
// From Listing 3.4: Mimic Someone

string who = "Someone";
integer CHANNEL = 11;

sayAs(string name, string message) {
 string realname = llGetObjectName();
 llSetObjectName(name);
 llSay(0, message);
 llSetObjectName(realname);
}

default
{
 on_rez(integer x) { llResetScript(); }

 state_entry(){
   llOwnerSay("/"+(string)CHANNEL+"=name or /"+(string)CHANNEL+" message");
   llListen(CHANNEL, "", llGetOwner(), "");
 }

 listen(integer channel, string name, key id, string message) {
   if ("=" == llGetSubString(message, 0, 0)) {
     who = llGetSubString(message,1,-1);
     llOwnerSay("Pssst... Got it, boss. I am mimicking "+who);
   } else {
     sayAs(who, message);
   }
 }
}

and one more for good measure, Script 3.3 (formatting fixed):
Challenge – do something interesting and/or different with this script (3.3) for next week!

// UW3.3
string emailAddress = "vexstreeter@gmail.com"; // who gets suggestions?
key suggestKey; // key of person making suggestion
string suggestName; // name of person making suggestion

show(string message) {
 llSetText(message, <1,1,1>, 1.0);
}

default {
 state_entry() {
   show("Touch me to\nmake a suggestion");
 }
 touch(integer p) {
   suggestKey = llDetectedKey(0);
   suggestName = llDetectedName(0);
   state accept;
 }
}

state accept {
 on_rez(integer p) { llResetScript(); }

 state_entry() {
   llListen(0, "", suggestKey, "");
   show("Listening to "+suggestName);
   llSay(0, "Thank you, "+suggestName+" for offering to help. Please type your suggestion now.");
   llSetTimerEvent(30.0);
 }

 listen(integer c, string n, key k, string message) {
   llInstantMessage(k, "Thanks for the valuable input!");
   show("delivering suggestion...");
   llEmail(emailAddress, "Suggestion from "+n, message);
   state default;
 }
 timer() {
   llSay(0, "Whoops, ran out of time");
   state default;
 }
 state_exit() {
   llSetTimerEvent(0.0);
 }
}