Jump to content

help - looping function to get players


xXMADEXx

Recommended Posts

Posted

Hey, im making an arrest point system, that sets your wanted level based on your wanted points, and this is what i got:

setTimer( 
    function (player) 
        for _, player in ipairs(getElementsByType("player")) do 
            local getPoints = getElementData(player,'arrestPoints') 
            if (getPoints>0) then 
                setPlayerWantedLevel(player,1) 
            elseif (getPoints>300) then 
                setPlayerWantedLevel(player,2) 
            elseif (getPoints>900) then 
                setPlayerWantedLevel(player,3) 
            elseif (getPoints>1500) then 
                setPlayerWantedLevel(player,4) 
            elseif (getPoints>2300) then 
                setPlayerWantedLevel(player,5) 
            elseif (getPoints>2750) then 
                setPlayerWantedLevel(player,6) 
            end 
        end 
    end, 1000, 0 
) 

The Error:

[2013-03-05 10:45:28] ERROR: [ROG]Arrestsystem\server.lua:121: attempt to compare number with string 

Posted
  
setTimer( 
    function (player) 
        for _, player in ipairs(getElementsByType("player")) do 
            local getPoints = tonumber(getElementData(player,'arrestPoints')) 
            if (getPoints>0) then 
                setPlayerWantedLevel(player,1) 
            elseif (getPoints>300) then 
                setPlayerWantedLevel(player,2) 
            elseif (getPoints>900) then 
                setPlayerWantedLevel(player,3) 
            elseif (getPoints>1500) then 
                setPlayerWantedLevel(player,4) 
            elseif (getPoints>2300) then 
                setPlayerWantedLevel(player,5) 
            elseif (getPoints>2750) then 
                setPlayerWantedLevel(player,6) 
            end 
        end 
    end, 1000, 0 
) 
  

getElementData returns a string so you have to convert it to a number.

Regards,

Cassandra - V:MP

Posted

Thank you for that, but now the player's wanted star will not go above 1, no matter how many arrest points they have....

\

function checkPlayerArrestPoints() 
    for _, player in ipairs(getElementsByType("player")) do 
        local getPoints = tonumber(getElementData(player,'arrestPoints')) 
        if (getPoints<0) then 
            setPlayerWantedLevel(player,0) 
        elseif (getPoints>0) then 
            setPlayerWantedLevel(player,1) 
        elseif (getPoints>1000) then 
            setPlayerWantedLevel(player,2) 
        elseif (getPoints>4000) then 
            setPlayerWantedLevel(player,3) 
        elseif (getPoints>6000) then 
            setPlayerWantedLevel(player,4) 
        elseif (getPoints>8000) then 
            setPlayerWantedLevel(player,5) 
        elseif (getPoints>10000) then 
            setPlayerWantedLevel(player,6) 
        end 
    end 
end 
setTimer(checkPlayerArrestPoints,500,0) 

Posted
Thank you for that, but now the player's wanted star will not go above 1, no matter how many arrest points they have....

\

function checkPlayerArrestPoints() 
    for _, player in ipairs(getElementsByType("player")) do 
        local getPoints = tonumber(getElementData(player,'arrestPoints')) 
        if (getPoints<0) then 
            setPlayerWantedLevel(player,0) 
        elseif (getPoints>0) then 
            setPlayerWantedLevel(player,1) 
        elseif (getPoints>1000) then 
            setPlayerWantedLevel(player,2) 
        elseif (getPoints>4000) then 
            setPlayerWantedLevel(player,3) 
        elseif (getPoints>6000) then 
            setPlayerWantedLevel(player,4) 
        elseif (getPoints>8000) then 
            setPlayerWantedLevel(player,5) 
        elseif (getPoints>10000) then 
            setPlayerWantedLevel(player,6) 
        end 
    end 
end 
setTimer(checkPlayerArrestPoints,500,0) 

Because greater than 0 equals any number which is greater than 0. Even 100000000. You have to set it less than or equals to.

Regards,

Cassandra - V:MP

Posted

I recommend you modifying that whole code.. especially that timer.

"[...] If you don’t love it, if you’re not having fun doing it, you don’t really love it, you’re going to give up." - Steve Jobs, 2007

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...