Difference between revisions of "Vote Simple"
Jump to navigation
Jump to search
Kireji Haiku (talk | contribs) m (some more minor readability improvements) |
m (<lsl> tag to <source>) |
||
Line 2: | Line 2: | ||
Simple voting script. One avi, one vote with a click. | Simple voting script. One avi, one vote with a click. | ||
< | <source lang="lsl2"> | ||
// Voting script, only allows one vote per avi | // Voting script, only allows one vote per avi | ||
// by JB Kraft | // by JB Kraft | ||
Line 70: | Line 70: | ||
} | } | ||
} | } | ||
</ | </source> | ||
{{LSLC|Library|Vote Simple}}{{LSLC|Examples|Vote Simple}} | {{LSLC|Library|Vote Simple}}{{LSLC|Examples|Vote Simple}} |
Latest revision as of 17:16, 24 January 2015
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Simple voting script. One avi, one vote with a click.
// Voting script, only allows one vote per avi
// by JB Kraft
string thankYouMessage = "Thanks for voting";
string floatText = "Vote for me!";
// _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
// _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
integer numberOfVotes;
list listOfVoterNames;
update_floattext()
{
// set white and opaque floattext
llSetText(floatText + "\n"
+ (string)numberOfVotes + " votes", <1.0, 1.0, 1.0>, (float)TRUE);
}
integer added_vote(key id)
{
// cut list if memory shortage
if(llGetFreeMemory() < 5000)
listOfVoterNames = llList2List(listOfVoterNames, -50, -1);
string avatarLegacyName = llKey2Name(id);
// TRUE if found, else FALSE
// watch out, this is bit-wise NOT (~) not minus (-)
integer thisAvatarHasVotedAlready = ~llListFindList(listOfVoterNames, [avatarLegacyName]);
if (thisAvatarHasVotedAlready)
return FALSE;
// else
// {
listOfVoterNames += [avatarLegacyName];
numberOfVotes = llGetListLength(listOfVoterNames);
update_floattext();
return TRUE;
// }
}
default
{
on_rez(integer start_param)
{
llResetScript();
}
state_entry()
{
update_floattext();
}
touch_start(integer num_detected)
{
key id = llDetectedKey(0);
if( added_vote(id) && thankYouMessage != "" )
llInstantMessage(id, thankYouMessage);
}
}