Difference between revisions of "Vote Simple"

From Second Life Wiki
Jump to navigation Jump to search
m (minor fix)
m (some more minor readability improvements)
Line 38: Line 38:
     if (thisAvatarHasVotedAlready)
     if (thisAvatarHasVotedAlready)
         return FALSE;
         return FALSE;
//  else
//  {
        listOfVoterNames += [avatarLegacyName];
        numberOfVotes = llGetListLength(listOfVoterNames);


    listOfVoterNames += [avatarLegacyName];
        update_floattext();
    numberOfVotes = llGetListLength(listOfVoterNames);


    update_floattext();
        return TRUE;
 
//  }
    return TRUE;
}
}



Revision as of 14:30, 18 October 2012

Simple voting script. One avi, one vote with a click.

<lsl> // 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);
   }

} </lsl>