// huffware script: report to merchants, by fred huffhines. // // this script lets merchants know that one of their items has been rezzed or attached. // it only reports this the first time it happens. // global constants... integer SCRIPT_ZAPS_SELF_AFTER_REPORT = FALSE; // if this is true, the script will destroy itself once it reports the object rez or attach. // the list of UUIDs for reporting the customer event. list IDS_TO_ALERT = [ // "addfa58f-e42e-4dde-9eb0-755bbf4e23ec", // damara's alt. "71649242-6abe-4288-b45b-a057621d35ea" // SL fred. "1e7f0c5e-9d15-428b-8873-846d87a9c064" // hal fred. ]; // the list of emails that should be alerted. list EMAILS_TO_ALERT = [ // "damradbruch@hotmail.com", // damara's alt email. "fred@gruntose.com" // fred. ]; // global variables... integer REPORTED_ABOUT_REZ = FALSE; // did we tell the merchants yet? key CURRENT_OWNER = NULL_KEY; // the guy who owns the hud right now. // helper functions... // let the merchants who sold this product know that it was either rezzed or attached. // either event should cause a nice report to them. alert_the_merchants(string word) { integer i; if (CURRENT_OWNER != llGetOwner()) { // if the owner has changed, then we always believe that we need to report. REPORTED_ABOUT_REZ = FALSE; CURRENT_OWNER = llGetOwner(); } if (!REPORTED_ABOUT_REZ) { // we have not reported before (for this owner), so we can tell the merchants now. REPORTED_ABOUT_REZ = TRUE; string message_for_merchants = "Your product '" + llGetObjectName() + "' was " + word + " by " + llKey2Name(llGetOwner()) + " in " + llGetRegionName() + " at " + llGetTimestamp(); // send instant messages about this event. for (i = 0; i < llGetListLength(IDS_TO_ALERT); i++) { key id = (key)llList2String(IDS_TO_ALERT, i); llInstantMessage(id, message_for_merchants); } // send emails about it too. for (i = 0; i < llGetListLength(EMAILS_TO_ALERT); i++) { string addr = llList2String(EMAILS_TO_ALERT, i); llEmail(addr, "customer event for " + llKey2Name(llGetOwner()) + " regarding " + llGetObjectName(), message_for_merchants); } // see if the script should go away now. if (SCRIPT_ZAPS_SELF_AFTER_REPORT) { llRemoveInventory(llGetScriptName()); } } } default { state_entry() { if (llSubStringIndex(llGetObjectName(), "huffotronic") < 0) state real_default; } on_rez(integer parm) { state rerun; } } state rerun { state_entry() { state default; } } state real_default { state_entry() { CURRENT_OWNER = llGetOwner(); } attach(key id) { if (id != NULL_KEY) { alert_the_merchants("attached"); } } on_rez(integer start_parm) { alert_the_merchants("rezzed"); } }