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 --set up to run other code and events
require("mod-gui") require("mod-gui")
credit_loop(require("locale/StdLib/event")) 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) --this is the main code that starts the softmod
local function init() if not global.credits then Event.dispatch({name = Event.core_events.init, tick = 0}) end end 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_player_joined_game,init)
Event.register(defines.events.on_tick,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 --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) Event.register(defines.events.on_tick, function(event)
-- +(15/2) splits it into two events every 15 minutes if (event.tick/(3600*game.speed)) % 15 == 0 then
if (game.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 local online_players = #game.connected_players
for i,player in pairs(game.connected_players) do 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=event.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})
end 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 for i,player in pairs(game.connected_players) do
sudo(find_new_rank,{player}) sudo(find_new_rank,{player,event.tick})
end end
end 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
end end
--Give the user their new rank and raise the Event.rank_change event --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 by_player = by_player or 'server'
local rank = string_to_rank(rank) or rank or string_to_rank_group('User').lowest_rank local rank = string_to_rank(rank) or rank or string_to_rank_group('User').lowest_rank
local old_rank = get_rank(player) 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.permission_group = game.permissions.get_group(rank.name)
player.tag = get_rank(player).tag player.tag = get_rank(player).tag
if old_rank.name ~= 'Jail' then global.old_ranks[player.index]=old_rank.name end 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 end
--Revert the user's rank to what it was before the lastest change --Revert the user's rank to what it was before the lastest change
function revert_rank(player,by_player) function revert_rank(player,by_player)
@@ -110,7 +111,7 @@ function revert_rank(player,by_player)
give_rank(player,rank,by_player) give_rank(player,rank,by_player)
end end
--Give the player a new rank based on playtime and/or preset ranks --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) debug_write({'RANK','NEW-RANK','START'},player.name)
local function loop_preset_rank(players,rank) local function loop_preset_rank(players,rank)
debug_write({'RANK','NEW-RANK','LOOP-PRESET'},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 if player.name:lower() == p:lower() then return rank end
end end
end end
local tick = group_tick or game.tick
local current_rank = get_rank(player) local current_rank = get_rank(player)
local old_rank = get_rank(player) local old_rank = get_rank(player)
local possible_ranks = {current_rank} 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) debug_write({'RANK','NEW-RANK','GIVE','VIA-SERVER'},player.name..' '..highest_rank.name)
player.tag = highest_rank.tag player.tag = highest_rank.tag
player.permission_group=game.permissions.get_group('Guest') 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 else
debug_write({'RANK','NEW-RANK','GIVE','VIA-GIVE-RANK'},player.name..' '..highest_rank.name) 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 end
debug_write({'RANK','NEW-RANK','GIVE','END'},player.name) debug_write({'RANK','NEW-RANK','GIVE','END'},player.name)
end end