From c1e32b384990fea6b4d108eb0d2e365a667e847d Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Sun, 23 Jul 2017 22:14:19 +0100 Subject: [PATCH] Sudo Speed increase --- .../ExpGaming - Server Interface.lua | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/locale/ExpGaming-Core/ExpGaming - Server Interface.lua b/locale/ExpGaming-Core/ExpGaming - Server Interface.lua index 987b2538..c3372363 100644 --- a/locale/ExpGaming-Core/ExpGaming - Server Interface.lua +++ b/locale/ExpGaming-Core/ExpGaming - Server Interface.lua @@ -30,15 +30,19 @@ define_command('server-interface','For use of the highest staff only',{'command' else game.write_file('log.txt', '\n Ran by: '..player.name..'\n Code: '..event.parameter..'\n $£$ '..tostring(value), true, 0) player.print(value) end end end) ---this is used when changing permsion groups when the person does not have permsion to +--this is used when changing permsion groups when the person does not have permsion to, can also be used to split a large event accross mutilple ticks function sudo(command,args) table.insert(global.sudo,{fun=command,var=args}) end ---runs one sudo command every second if one is present +--runs at most five sudo commandd every five ticks if one is present Event.register(defines.events.on_tick, function(event) - if game.tick % 60 == 0 and global.sudo and #global.sudo > 0 then - command=table.remove(global.sudo) - if command and command.fun and type(command.fun) == 'function' then - local args = command.var or {} - command.fun(unpack(args)) + if game.tick % 5 == 0 and global.sudo and #global.sudo > 0 then + local lenth = nil + if #global.sudo > 5 then lenth = 5 else lenth = #global.sudo end + for i = 1,lenth do + command=table.remove(global.sudo) + if command and command.fun and type(command.fun) == 'function' then + local args = command.var or {} + command.fun(unpack(args)) + end end end end)