Kevin_Glitch Posted June 8, 2019 Share Posted June 8, 2019 (edited) I have found a, hopefully, working function for sleeping, and it is almost done, finally. It is only this part that is failing. Everything else is working perfectly. The error reads as the following. ":90: Unexpected symbol near '>' " I have underlined the line with the error, and boldified <(Yes I did just do that) where the problem lies, but I am lost from here. The code works fine when this is not here. The numbers are there just to say what line it is. [89] inst:ListenForEvent("sanitydelta", function(inst, data)[90] if inst.components.sanity.current < 10 and > 20 then [91] v:PushEvent("yawn", {grogginess = 20}) [92] end [93] else if inst.components.sanity.current < 10 then [94] v:PushEvent("yawn", {grogginess = 60, knockoutduration = 120}) [95] end [96] end) Surrounding code \/ Update: Found something that maybe worked a bit better? inst:ListenForEvent("sanitydelta", function(inst, data) if inst.components.sanity.current < 10 and > 20 then v:PushEvent("yawn", {grogginess = 20}) else if inst.components.sanity.current < 10 then v:PushEvent("yawn", {grogginess = 60, knockoutduration = 120}) end end end) Edited June 8, 2019 by Kevin_Glitch Possible found something. Link to comment Share on other sites More sharing options...
CarlZalph Posted June 8, 2019 Share Posted June 8, 2019 It's because you're using a compare operator without an operand. inst:ListenForEvent( "sanitydelta", function(inst, data) local cursanity = inst.components.sanity.current if cursanity < 10 then v:PushEvent("yawn", {grogginess = 60, knockoutduration = 120}) elseif cursanity < 20 then v:PushEvent("yawn", {grogginess = 20}) end end ) This will make it such that if the sanity is on the range of [0,10) that they get knocked out, and with [10,20) they get groggy. You may need to compare an old sanity value to make it fire on edge trigger rather than continuously sending the event "yawn", but that's on you. Link to comment Share on other sites More sharing options...
Kevin_Glitch Posted June 8, 2019 Author Share Posted June 8, 2019 Can you explain an edge trigger and how to do it? I am a basic at all of this. Link to comment Share on other sites More sharing options...
CarlZalph Posted June 9, 2019 Share Posted June 9, 2019 13 hours ago, Kevin_Glitch said: Can you explain an edge trigger and how to do it? I am a basic at all of this. You store the old value and compare to it with the new value, then apply your changes if the 'edge' changes, either on rising or falling. -- Game provided a = {} a.current = 15 -- Post init a.old = a.current -- Event callback if a.current < threshold1 then if not (a.old < threshold1) then print("falling edge threshold1") end elseif a.current < threshold2 then if a.old < threshold1 then print("rising edge threshold1") end if not (a.old < threshold2) then print("falling edge threshold2") end elseif a.old < threshold2 then print("rising edge threshold2") end a.old = a.current Link to comment Share on other sites More sharing options...
Kevin_Glitch Posted June 9, 2019 Author Share Posted June 9, 2019 Can you explain each part a bit for me please? I am still a little lost. I am sorry to keep bugging you. <_> Link to comment Share on other sites More sharing options...
Kevin_Glitch Posted June 9, 2019 Author Share Posted June 9, 2019 I think I figured something out. But now I am lost. Help please? asriel.lua Link to comment Share on other sites More sharing options...
. . . Posted June 9, 2019 Share Posted June 9, 2019 (edited) i think this would work good inst:ListenForEvent("sanitydelta",function(inst, data) if inst.components.sanity.current < 10 then if inst.yawn_cd == nil then inst:PushEvent("yawn", {grogginess = 60, knockoutduration = 120}) end inst.yawn_cd = true inst:DoTaskInTime(10, function() inst.yawn_cd = nil end) --(can replace 10 with cooldown time of when this happens) elseif inst.components.sanity.current < 20 then if inst.yawn_cd == nil then inst:PushEvent("yawn", {grogginess = 20}) end inst.yawn_cd = true inst:DoTaskInTime(10, function() inst.yawn_cd = nil end) --(can replace 10 with cooldown time of when this happens) end end) Edited June 9, 2019 by Warbucks Link to comment Share on other sites More sharing options...
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