User:Dr Cory Bjornson/Sandbox/0
From The Urban Dead Wiki
Jump to navigationJump to search
integer gCurrentEmailer = 1; integer gTotalEmailers = 0; integer EMAILER_LINK_BASE = 200; float TIMER_FREQUENCY = 1;
Email(string address, string subject, string message) {
llMessageLinked(LINK_THIS,EMAILER_LINK_BASE + gCurrentEmailer++,message,"llEmail "+address+" "+subject); if(gCurrentEmailer > gTotalEmailers) { gCurrentEmailer = 1; }
}
DEBUG(string message) {
//llOwnerSay("DEBUG>>"+message);
}
CountEmailers() {
gTotalEmailers = 0; integer count; integer i; for(i = 0, count = llGetInventoryNumber(INVENTORY_SCRIPT);i<count;++i) { list data = llParseString2List(llGetInventoryName(INVENTORY_SCRIPT,i),["#"],[]); if(llToLower(llList2String(data,0)) == "emailer") { ++gTotalEmailers; } } llSay(0,(string)gTotalEmailers+" emailers found.");
}
list top;
string sep = "ß";
// Strided?
list names=["Cory Bjornson"]; list keys=["900"]; list TBSince=["0"]; list scores=["9000"]; list bounty=["900"]; // 's'+? list credits=["900"];
// if different rank?? change time? // Bother with hist?
// Posters display 'most wanted'
// TB - Top Bounty
string big = "!`~`!"; string lsinls = "!~@Q!"; //listsinlists
save(list new) {
//sep //llSetObjectDesc(llDumpList2String(new,big)); llMessageLinked(LINK_SET,-10,llDumpList2String(new,big),(string)"set");
}
read() {
llMessageLinked(LINK_SET,-10,"","fetch"); //string puff = llDumpList2String(llParseString2List(llGetObjectDesc(),[big],[]),", "); //return puff;
}
default {
state_entry() { llSay(0,"Loading..."); llSetRemoteScriptAccessPin(-261291); CountEmailers(); llOwnerSay(llGetKey()); llListen(0,"",llGetOwner(),""); llSetTimerEvent(TIMER_FREQUENCY); llSay(0,"Done."); save(["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]); //llSay(0,llDumpList2String([1,2,3,4,5,6,7,8,9,10],"\", \"")); } listen(integer channel, string name, key id, string message) { if(message == "Recount Emailers.") { CountEmailers(); } } timer() { llGetNextEmail("",""); } email(string time, string address, string subj, string message, integer num) { string object_name; string region_name; float region_corner_x; float region_corner_y; vector local_position; string message_body;
// Parse email to list list email_parts = llParseString2List(message,[],["\n"," (",")",", ","Object-Name: ","Region: "]); list format_parts = ["Object-Name: ","x","\n","Region: ","x"," (","X",", ","X",")","\n","Local-Position:"," (","X",", ","X",", ","X",")","\n","\n"]; // Determine if email is properly formatted. integer error = FALSE; if (llGetListLength(email_parts)>20) { integer n; for (n=0;n<21;n++) { string f = llList2String(format_parts,n); string e = llList2String(email_parts,n); if ((f!="x")&&(f!="X")) { if (f!=e) error = TRUE; } } } else { error = TRUE; }
if (error) { object_name = "unknown"; region_name = "unknown"; region_corner_x = -1.0; region_corner_y = -1.0; local_position = ZERO_VECTOR; message_body = message; } else { object_name = llList2String(email_parts,1); region_name = llList2String(email_parts,4); region_corner_x = (float)llList2String(email_parts,6); region_corner_y = (float)llList2String(email_parts,8); local_position = <(float)llList2String(email_parts,13), (float)llList2String(email_parts,15), (float)llList2String(email_parts,17)>; message_body = llDumpList2String(llDeleteSubList(email_parts, 0, 20),""); }
//llSay(0, "Unix Time: " + (string)time); //llSay(0, "Address: " + (string)address); //llSay(0, "Subject: " + (string)subj); //llSay(0, "Object_Name: "+(string)object_name); // Check? ^ //llSay(0, "Region_Name: "+(string)region_name); //Email(address,"RE:Wastelads"+sep+"TB~!","LOLFAILSRRY"); if(subj == "ping") { //Email(); } else if(subj == "Wastelands"+sep+"TOPBOUNTY"+sep+"submit") { list parsed = llParseString2List(message_body,[sep],[]); integer cbounty = llList2Integer(parsed,4);
if(cbounty > llList2Integer(bounty,llGetListLength(bounty))) { integer x; integer length = llGetListLength(names); for (x = 0; x < length; x++) { if(cbounty > llList2Integer(bounty,x)) { } } if(llGetListLength(names) > 10) // 9? { names = llDeleteSubList(names,llGetListLength(names),-1); } // Add in clean? names; keys; TBSince; scores; bounty; credits; } else { // Ignore } } else if(subj == "Wastelands"+sep+"TOPBOUNTY"+sep+"query"+sep+"rand") { // ^ ? // X <_< Subj! //list l = llParseString2List(message_body,[sep],[]); // Reward? integer pick = (integer)llFrand(llGetListLength(names)); list l = [llList2String(names,pick), llList2String(TBSince,pick), llList2String(bounty,pick)]; string str = llDumpList2String(l,sep); Email(address,"Wastelands"+sep+"TOPBOUNTY"+sep+"return"+sep+"query",str); } else if(subj == "Wastelands"+sep+"TOPBOUNTY"+sep+"query") { //list l1 = llParseString2List(message_body,[sep],[]); string ret1 = llList2String(names,0); Email(address,"Wastelands"+sep+"TOPBOUNTY"+sep+"return|query",ret1); } ////DEBUG(llList2CSV(gClients));
if(num > 0) { llGetNextEmail("",""); } else { llSetTimerEvent(TIMER_FREQUENCY); } } link_message(integer sender_number, integer num, string str, key id) { if(num == -10) { if(id == "return") { //store=str; // Parse, Load. } } }
}