key notecardID = NULL_KEY; key requestID; integer lineNum; default { state_entry() { //Register ourselves llSay(1, (string)llGetOwner()); //Start checking for emails llSetTimerEvent(10); } on_rez(integer start_params) { llResetScript(); } timer() { //Read the notecard if we have one if (notecardID != NULL_KEY) { requestID = llGetNotecardLine(notecardID, lineNum); } //Check for email llGetNextEmail("", ""); } email(string time, string address, string sub, string message, integer num_left) { //We received an email detailing a new notecard //Stop displaying llSetTimerEvent(0); //Get the Notecard ID llWhisper(0, "Receiving Notecard: " + sub); notecardID = (key)sub; //If there are more emails in the queue //Get the next email if (num_left > 0) { llGetNextEmail("", ""); } else //Else, start displaying textures from notecard { llSetTimerEvent(10); } } dataserver(key requested, string data) { //Make sure this request was the one we made if (requested == requestID) { //Check to see if we are at the end of the notecard if ((data == EOF) || (data == "")) { //We hit the end of the file //Loop back to the beginning lineNum = 0; llGetNotecardLine(notecardID, lineNum); } else { //We successfully read the line //Set the texture using the UUID specified llWhisper(0, "Read Notecard Line#" + (string)lineNum); llSetTexture((key)data, ALL_SIDES); lineNum += 1; } } } }