One Vote by Day

De DigiWiki.

// One Vote by Day v0.2 by dj phil (Fixed for OpenSim) (BY-NC-SA)
// One Vote by Day v0.1 by Cardinia & Senior Helper
 
string g_THANKS_MSG = "Merci pour ton vote";
string g_ALERT_MSG  = "Un vote par jour";
string g_HOVER_TEXT = "[Cliquez pour Voter]";
string g_VOTES_TEXT = "votes";
integer g_VOTES     = 0;
list g_VOTERS;
list gTimes;
 
update()
{
    integer too_old = llGetUnixTime() - 86400;
    integer i;
 
    for(i = llGetListLength(gTimes); i >= 0; --i)
    {
        if (llList2Integer(gTimes,i) < too_old)
        {
            g_VOTERS = llDeleteSubList(g_VOTERS,i,i);
            gTimes = llDeleteSubList(gTimes,i,i);
        }
        else llSay(PUBLIC_CHANNEL, g_ALERT_MSG);
    }   
}
 
integer addVote(key id)
{
    if (llGetFreeMemory() < 1000)
    {
        g_VOTERS = [];
    }
 
    update();
 
    if (llListFindList(g_VOTERS, [id]) == -1)
    {
        g_VOTES++;
        g_VOTERS = [];
        g_VOTERS += [id];
        gTimes += [llGetUnixTime()];
        llSetText(g_HOVER_TEXT + "\n(" + g_ALERT_MSG + ")\n" + (string)g_VOTES + " " + g_VOTES_TEXT, <1.0, 1.0, 1.0>, 1.0);
        return TRUE;
    }
    return FALSE;
}
 
default
{
    state_entry()
    {
        llSetText(g_HOVER_TEXT, <1.0, 1.0, 1.0>, 1.0);
        update();
    }
 
    touch_start(integer total_number)
    {
        integer i;
        for( i = 0; i < total_number; i++ ) {
           if( addVote( llDetectedKey(i))) {
                if( g_THANKS_MSG != "" ) {
                    // llInstantMessage(llDetectedKey(i), g_THANKS_MSG);
                    llSay(PUBLIC_CHANNEL, g_THANKS_MSG);
                }
            }
        }
    }
}
Outils personnels
  • Cette page a été consultée 706 fois.
donate
Google Ads