De DigiWiki.
// Persistant Voting I v0.2 by djphil (CC-BY-NC-SA)
string vr = "(1 Vote / 1 Avatar)";
string ty = "Merci pour ton vote";
string vo = "Tu as déjà voté";
string cv = "[Cliquez pour Voter]";
string na;
key id;
integer votes;
list names;
string regname;
string objname;
integer newdata;
integer olddata;
floattext()
{
llSetText("I ♥ " + regname + " ™ ©" + "\n" + objname + "\n" + vr + "\n \n"
+ "Nombre total de votes: " + (string)newdata + "\n"
+ (string)votes + " (new) " + (string)olddata + " (old) " + (string)newdata + " (all)"
+ "\n \n" + "Dernier Votant: " + na
+ "\n \n" + cv, <1.0, 1.0, 1.0>, 1.0);
}
integer added_vote(key id)
{
na = llKey2Name(id);
if (llGetFreeMemory() < 5000)
names = llList2List(names, -50, -1);
if (~llListFindList(names, [na]))
{
llInstantMessage(id, vo + " " + na);
return FALSE;
}
names += [na];
votes = llGetListLength(names);
newdata = (integer)olddata + (integer)votes;
llSetObjectDesc((string)newdata);
floattext();
return TRUE;
}
default
{
state_entry()
{
regname = llGetRegionName();
objname = llGetScriptName();
olddata = (integer)llGetObjectDesc();
newdata = olddata;
na = "N/A";
llSetObjectName(objname);
floattext();
}
touch_start(integer num_detected)
{
id = llDetectedKey(0);
na = llDetectedName(0);
if(added_vote(id) && ty != "") {llInstantMessage(id, ty + " " + na);}
}
on_rez(integer start_param) {llResetScript();}
changed(integer change) {if (change & 256) {llResetScript();}}
}