yurembo Posted 14 hours ago Posted 14 hours ago The WaitEvent event slows down the game significantly. I added this code to Update function: if player:GetPosition().y < -5 and self.enabled == true then self.enabled = false gTimerReborn = CreateTimer(2000) --self:Kill(player) --self:Start() end event = WaitEvent() if event.source == gTimerReborn and event.id == EVENT_TIMERTICK then player:SetPosition(initialLocation) gTimerReborn:Stop() end And my game started to slow down a lot. Quote
Josh Posted 4 hours ago Posted 4 hours ago Yeah, you are constantly creating timers, and you are waiting for an event inside the update loop! You probably want to do this: function MyScript:Update() if player:GetPosition().y < -5 and self.enabled == true then self.enabled = false if self.gTimerReborn == nil then self.gTimerReborn = CreateTimer(2000) self:ListenEvent(EVENT_TIMERTICK, self.gTimerReborn) end --self:Kill(player) --self:Start() end end function MyScript:ProcessEvent(event) if event.id == EVENT_TIMERTICK and event.source == self.gTimerReborn then player:SetPosition(initialLocation) self.gTimerReborn:Stop() self.gTimerReborn = nil end end 1 Quote Let's build cool stuff and have fun.
Solution yurembo Posted 4 hours ago Author Solution Posted 4 hours ago Simple I do that: local now = self.world:GetTime() local timebetweenshoots = 500 if now - self.lastfiretime > timebetweenshoots then ... self.lastfiretime = self.world:GetTime() end 1 Quote
Josh Posted 4 hours ago Posted 4 hours ago Yes, this is much better. 1 Quote Let's build cool stuff and have fun.
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.