Fixed auto promote error

This commit is contained in:
Cooldude2606
2019-04-11 17:23:18 +01:00
parent 4ca1ba5c18
commit 5fd5de65e0
2 changed files with 20 additions and 9 deletions

View File

@@ -4,13 +4,16 @@ local Roles = require 'expcore.roles'
-- Use these to adjust for ticks ie game.tick < 5*minutes -- Use these to adjust for ticks ie game.tick < 5*minutes
local seconds, minutes, hours = 60, 3600, 216000 local seconds, minutes, hours = 60, 3600, 216000
local function playtime(time_required) --[[
return function(player) -- cant use a factory as it has upvalues ;-;
if player.online_time > time_required then local function playtime(time_required)
return true return function(player)
if player.online_time > time_required then
return true
end
end end
end end
end ]]
--- Role flags that will run when a player changes roles --- Role flags that will run when a player changes roles
Roles.define_flag_trigger('is_admin',function(player,state) Roles.define_flag_trigger('is_admin',function(player,state)
@@ -116,7 +119,11 @@ Roles.new_role('Veteran','Vet')
:set_parent('Member') :set_parent('Member')
:allow{ :allow{
} }
:set_auto_promote_condition(playtime(10*hours)) :set_auto_promote_condition(function(player)
if player.online_time > 3*hours then
return true
end
end)
--- Standard User Roles --- Standard User Roles
Roles.new_role('Member','Mem') Roles.new_role('Member','Mem')
@@ -133,7 +140,11 @@ Roles.new_role('Regular','Reg')
:allow{ :allow{
'command/kill' 'command/kill'
} }
:set_auto_promote_condition(playtime(3*hours)) :set_auto_promote_condition(function(player)
if player.online_time > 10*hours then
return true
end
end)
--- Guest/Default role --- Guest/Default role
Roles.new_role('Guest','') Roles.new_role('Guest','')

View File

@@ -715,8 +715,8 @@ end
Event.add(Roles.player_role_assigned,role_update) Event.add(Roles.player_role_assigned,role_update)
Event.add(Roles.player_role_unassigned,role_update) Event.add(Roles.player_role_unassigned,role_update)
Event.add(defines.events.on_player_joined_game,role_update) Event.add(defines.events.on_player_joined_game,role_update)
-- Every 5 seconds the auto promote check is preformed -- Every 60 seconds the auto promote check is preformed
Event.on_nth_tick(300,function() Event.on_nth_tick(3600,function()
local promotes = {} local promotes = {}
for _,player in pairs(game.connected_players) do for _,player in pairs(game.connected_players) do
for _,role in pairs(Roles.config.roles) do for _,role in pairs(Roles.config.roles) do