string google_formkey = "XXXX..."; //MUST REPLACE with your own Google form key integer list_size =10; //how many avatar names to keep in memory float range = 10.0; // in meters float rate = 1.0; // in seconds // Script Name: Google Spreadsheet Visitor Recorder // By Maria Korolov of Hypergrid Business // Edited by Zuza Ritt in August 2013 // Adapted from Visitor_List_Maker.lsl // And from Hyperica Lookup HG Teleport Script (with code contributed by Paul Emery) // This program is free software; you can redistribute it and/or modify it. // Creative Commons licenses apply to all scripts from the Second Life // wiki and script library and are Copyrighted by Linden Lab. See // http://creativecommons.org/licenses/ // Please leave any author credits and headers intact in any script you use or publish. // If you don't like these restrictions, then don't use these scripts. // Global variables list visitor_list; string region_name; integer len; // Functions integer isNameOnList( string name ) { len = llGetListLength( visitor_list ); integer i; for( i = 0; i < len; i++ ) { if( llList2String(visitor_list, i) == name ) { return TRUE; } } return FALSE; } // States default { state_entry() { llSay(0, "Visitor recording script started..."); llSensorRepeat( "", "", AGENT, range, TWO_PI, rate ); llListen(0, "", llGetOwner(), ""); region_name= llGetRegionName(); } sensor( integer number_detected ) { integer i; for( i = 0; i < number_detected; i++ ) if( llDetectedKey( i ) != llGetOwner() ) { string detected_name = llDetectedName( i ); if( isNameOnList( detected_name ) == FALSE ) { string avie_name = llEscapeURL(detected_name); string URL = "https://docs.google.com/forms/d/" + google_formkey + "/formResponse" + "?entry.YYY=" + avie_name + "&entry.ZZZ=" + region_name + "&submit=Submit"; key httpkey=llHTTPRequest(URL, [] ,""); visitor_list += detected_name; if (len > list_size) { visitor_list = llDeleteSubList(visitor_list,0,0); } } } } } // END //