jah Posted July 8, 2016 Share Posted July 8, 2016 Well i have problems with timers in last time when i made function it works when i add timer it doesn't work function minutes() local thePlayer = getPlayerAccount ( source ) setAccountData(thePlayer,"Minutes",tonumber(getAccountData(thePlayer,"Minutes"))+1) end setTimer ( minutes, 60000, 0 ) doesnt work then i tried addEventHandler ( "onResourceStart" , resourceRoot , function ( ) local timer = setTimer ( minutes , 6000 , 0 , player ) end ) function minutes() local thePlayer = getPlayerAccount ( source ) setAccountData(thePlayer,"Minutes",tonumber(getAccountData(thePlayer,"Minutes"))+1) end error is lua:65: attempt to perform arithmetic on a nil value 65: setAccountData(thePlayer,"Minutes",tonumber(getAccountData(thePlayer,"Minutes"))+1) Link to comment
Bean666 Posted July 8, 2016 Share Posted July 8, 2016 remove all of that and add this, this timer already starts when resource starts, i suggest using elementdatas tho...: try this: function minutes() local thePlayer = getPlayerAccount ( source ) local Minutes = getAccountData(thePlayer,"Minutes") if Minutes then setAccountData(thePlayer,"Minutes",tonumber(getAccountData(thePlayer,"Minutes"))+1) end end setTimer ( minutes, 60000, 0 ) element data: i might have missing / non-needed ends here, you edit it if wrong. function minutes() for i, thePlayer in ipairs(getElementsByType("player")) do local Minutes = getElementData(thePlayer,"Minutes") if Minutes then setElementData(thePlayer,"Minutes",tonumber(getElementData(thePlayer,"Minutes"))+1) end end setTimer ( minutes, 60000, 0 ) Link to comment
jah Posted July 10, 2016 Author Share Posted July 10, 2016 remove all of that and add this, this timer already starts when resource starts, i suggest using elementdatas tho...:try this: function minutes() local thePlayer = getPlayerAccount ( source ) local Minutes = getAccountData(thePlayer,"Minutes") if Minutes then setAccountData(thePlayer,"Minutes",tonumber(getAccountData(thePlayer,"Minutes"))+1) end end setTimer ( minutes, 60000, 0 ) element data: i might have missing / non-needed ends here, you edit it if wrong. function minutes() for i, thePlayer in ipairs(getElementsByType("player")) do local Minutes = getElementData(thePlayer,"Minutes") if Minutes then setElementData(thePlayer,"Minutes",tonumber(getElementData(thePlayer,"Minutes"))+1) end end setTimer ( minutes, 60000, 0 ) both doesn't work for the first one i have error [2016-07-10 12:51:44] WARNING:.lua:53: Bad argument @ 'getPlayerAccount' [Expected element at argument 1, got nil] [2016-07-10 12:51:44] WARNING:.lua:54: Bad argument @ 'getAccountData' [Expected account at argument 1, got boolean] secound one just dont work and yes needed 1 more end before i had no problems with scripting at all but now i can't even do simple scripts like +1 Minute i dont get it why it is not working... and in all scripts i have made in last time where i had to use timer nothing worked... it is some new update or i am getting old? Link to comment
Bean666 Posted July 10, 2016 Share Posted July 10, 2016 remove the onResourceStart, etc ,etc and just replace it with this. function minutes() local thePlayer = getPlayerAccount ( source ) local Minutes = getAccountData(thePlayer,"Minutes") if Minutes then setAccountData(thePlayer,"Minutes",tonumber(Minutes)+1) end end setTimer ( minutes, 60000, 0 ) Link to comment
jah Posted July 10, 2016 Author Share Posted July 10, 2016 remove the onResourceStart, etc ,etc and just replace it with this. function minutes() local thePlayer = getPlayerAccount ( source ) local Minutes = getAccountData(thePlayer,"Minutes") if Minutes then setAccountData(thePlayer,"Minutes",tonumber(Minutes)+1) end end setTimer ( minutes, 60000, 0 ) still it dont want to work same errors as before Link to comment
Walid Posted July 10, 2016 Share Posted July 10, 2016 @Shaman123 , source is not defined in your code more than that you can't use it with setTimer so you need get a table of all the players that exist and loop through it. Example: function minutes() for i, thePlayer in ipairs(getElementsByType("player")) do local account = getPlayerAccount(thePlayer) if account and not isGuestAccount(account) then local Minutes = getAccountData(account,"Minutes") if Minutes then setAccountData(account,"Minutes",tonumber(Minutes)+1) end end end end setTimer ( minutes, 60000, 0 ) Link to comment
jah Posted July 10, 2016 Author Share Posted July 10, 2016 @Shaman123 , source is not defined in your code more than that you can't use it with setTimer so you need get a table of all the players that exist and loop through it. Example: function minutes() for i, thePlayer in ipairs(getElementsByType("player")) do local account = getPlayerAccount(thePlayer) if account and not isGuestAccount(account) then local Minutes = getAccountData(account,"Minutes") if Minutes then setAccountData(account,"Minutes",tonumber(Minutes)+1) end end end end setTimer ( minutes, 60000, 0 ) Thanks Walid! Thank you Shaman123 for trying to help me! 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