xXMADEXx Posted March 5, 2013 Share Posted March 5, 2013 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 Link to comment
Cassandra Posted March 5, 2013 Share Posted March 5, 2013 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. Link to comment
xXMADEXx Posted March 5, 2013 Author Share Posted March 5, 2013 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) Link to comment
Cassandra Posted March 5, 2013 Share Posted March 5, 2013 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. Link to comment
Anderl Posted March 5, 2013 Share Posted March 5, 2013 I recommend you modifying that whole code.. especially that timer. Link to comment
Renkon Posted March 5, 2013 Share Posted March 5, 2013 use if var > x and var < y then Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now