Jump to content
Boopadoopdoop

Float Text High Score Script

You are about to reply to a thread that has been inactive for 107 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Friend helped me do this, but I can't for the life of me figure out how to sort the scores, how I need it to work, is anyone with a higher number score be sorted to the top of the list, I also need to script in a limit of 5 scores to be shown at once [tho keeping that limit changeable would be nice too]

 

Quote

//format is [User UUID, score, User UUID, score, ...]
list scores;

add_Key_and_Score(string user)
{
    //find their index in the list
    //it is important that if we put STRINGS in the list we search for STRINGS
    //if you put a KEY in your list instead of a STRING, the STRING search won't find it
    //this is why the function takes an input of string as the argument
    
    integer find_in_list = llListFindList(scores,[user]);
    
    //if they are in the list, update their score
    if( ~ find_in_list )
    {
        //extract old score
        integer score = llList2Integer(scores, find_in_list + 1);
        
        //update it
        score += 1;
        
        //replace the old score with the new one in the list (using the same index)
        scores = llListReplaceList( scores, [score], find_in_list + 1, find_in_list + 1 );
    }
    
    //if they are not in the list, add them to it
    else
    {
        scores += [user, 1];
    }
}
display_score()
{
    //iterate over the scores list and generate ssome formatted output
    list output;
    integer x;
    integer n = llGetListLength(scores);
    for(x=0;x<n;x+=2)
    {
        string name = llGetDisplayName(llList2String(scores,x));
        if( name == "" )
        name = "NOT IN REGION";
        
        string score = llList2String(scores,x+1);
        
        string entry = name + " : [" + score + "]";
        output += entry;
    }
    llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_TEXT,llDumpList2String(output,"\n"),<llFrand(1),llFrand(1),llFrand(1)>,1]);
}

default
{
    touch_start(integer n)
    {
        while(~--n) { add_Key_and_Score(llDetectedKey(n)); }
        display_score();
    }
}

 

I tried using llListSort, but I'm either using it wrong, or am not sure how to implement it correctly.

 

Any pointers would be appreciated!

Share this post


Link to post
Share on other sites
You are about to reply to a thread that has been inactive for 107 days.

Please take a moment to consider if this thread is worth bumping.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...