Control.lua clean

This commit is contained in:
Cooldude2606
2017-10-14 22:44:21 +01:00
parent 0396cb4a94
commit ffc9f85c72
2 changed files with 19 additions and 17 deletions

View File

@@ -21,26 +21,26 @@ local function credit_loop(reg) for _,cred in pairs(reg) do table.insert(credits
--set up to run other code and events
require("mod-gui")
credit_loop(require("locale/StdLib/event"))
--allows the code to be ran on a map where the code has just been added (ie init after init)
local function init() if not global.credits then Event.dispatch({name = Event.core_events.init, tick = 0}) end end
--this is the main code that starts the softmod
Event.soft_init = script.generate_event_name()
local function init() if not global.soft_init then script.raise_event(Event.soft_init,{tick=game.tick}) global.soft_init = true global.credits = credits end end
Event.register(defines.events.on_player_joined_game,init)
Event.register(defines.events.on_tick,init)
--loads all the other scripts
Event.gui_update = script.generate_event_name()
credit_loop(require("locale/file-header"))
--below 'game.tick/(3600*game.speed)) % 15 == 0' raises the gui_update event every 15 minutes - feel free to change the update time
Event.gui_update = script.generate_event_name()
Event.register(defines.events.on_tick, function(event)
-- +(15/2) splits it into two events every 15 minutes
if (game.tick/(3600*game.speed)) % 15 == 0 then
if (event.tick/(3600*game.speed)) % 15 == 0 then
-- updates the guis for every player (if gui is linked to gui_update)
local online_players = #game.connected_players
for i,player in pairs(game.connected_players) do
script.raise_event(Event.gui_update,{tick=game.tick,player=player,player_loop_index=i,players_online=online_players})
-- script.raise_event(Event.gui_update,{tick=game.tick,player=game.player,player_loop_index=1,players_online=#game.connected_players})
script.raise_event(Event.gui_update,{tick=event.tick,player=player,player_loop_index=i,players_online=online_players})
end
elseif ((game.tick/(3600*game.speed))+(15/2))% 15 == 0 then
elseif ((event.tick/(3600*game.speed))+(15/2))% 15 == 0 then
-- this is the system to auto rank players
for i,player in pairs(game.connected_players) do
sudo(find_new_rank,{player})
sudo(find_new_rank,{player,event.tick})
end
end
end)
Event.register(-1,function() global.credits = credits end)
--loads all the other scripts
credit_loop(require("locale/file-header"))

View File

@@ -80,7 +80,8 @@ function rank_print(msg, rank, inv)
end
end
--Give the user their new rank and raise the Event.rank_change event
function give_rank(player,rank,by_player)
function give_rank(player,rank,by_player,group_tick)
local tick = group_tick or game.tick
local by_player = by_player or 'server'
local rank = string_to_rank(rank) or rank or string_to_rank_group('User').lowest_rank
local old_rank = get_rank(player)
@@ -102,7 +103,7 @@ function give_rank(player,rank,by_player)
player.permission_group = game.permissions.get_group(rank.name)
player.tag = get_rank(player).tag
if old_rank.name ~= 'Jail' then global.old_ranks[player.index]=old_rank.name end
script.raise_event(Event.rank_change, {player=player, by_player=by_player, new_rank=rank, old_rank=old_rank})
script.raise_event(Event.rank_change, {tick=tick, player=player, by_player=by_player, new_rank=rank, old_rank=old_rank})
end
--Revert the user's rank to what it was before the lastest change
function revert_rank(player,by_player)
@@ -110,7 +111,7 @@ function revert_rank(player,by_player)
give_rank(player,rank,by_player)
end
--Give the player a new rank based on playtime and/or preset ranks
function find_new_rank(player)
function find_new_rank(player,group_tick)
debug_write({'RANK','NEW-RANK','START'},player.name)
local function loop_preset_rank(players,rank)
debug_write({'RANK','NEW-RANK','LOOP-PRESET'},rank)
@@ -118,6 +119,7 @@ function find_new_rank(player)
if player.name:lower() == p:lower() then return rank end
end
end
local tick = group_tick or game.tick
local current_rank = get_rank(player)
local old_rank = get_rank(player)
local possible_ranks = {current_rank}
@@ -157,10 +159,10 @@ function find_new_rank(player)
debug_write({'RANK','NEW-RANK','GIVE','VIA-SERVER'},player.name..' '..highest_rank.name)
player.tag = highest_rank.tag
player.permission_group=game.permissions.get_group('Guest')
script.raise_event(Event.rank_change, {player=player, by_player='server', new_rank=string_to_rank_group('User').lowest_rank, old_rank=string_to_rank_group('User').lowest_rank})
script.raise_event(Event.rank_change, {tick=tick, player=player, by_player='server', new_rank=string_to_rank_group('User').lowest_rank, old_rank=string_to_rank_group('User').lowest_rank})
else
debug_write({'RANK','NEW-RANK','GIVE','VIA-GIVE-RANK'},player.name..' '..highest_rank.name)
if highest_rank ~= current_rank then give_rank(player,highest_rank) end
if highest_rank ~= current_rank then give_rank(player,highest_rank,nil,tick) end
end
debug_write({'RANK','NEW-RANK','GIVE','END'},player.name)
end