Fix: factions crashes on tick

This commit is contained in:
Coder12a 2019-02-05 14:46:55 -06:00
parent dd88c61009
commit 464d68e6d9
1 changed files with 20 additions and 17 deletions

View File

@ -500,7 +500,7 @@ function factions.disband(name, reason)
if not faction.is_admin then if not faction.is_admin then
for i, v in pairs(factions.get_faction_list()) do for i, v in pairs(factions.get_faction_list()) do
local fac = factions.factions.get(v) local fac = factions.factions.get(v)
if fac.name ~= name then if fac ~= nil and fac.name ~= name then
if fac.enemies[name] then if fac.enemies[name] then
factions.end_enemy(fac.name, name) factions.end_enemy(fac.name, name)
end end
@ -1125,24 +1125,27 @@ function factions.faction_tick()
local now = os.time() local now = os.time()
for i, facname in pairs(factions.get_faction_list()) do for i, facname in pairs(factions.get_faction_list()) do
local faction = factions.factions.get(facname) local faction = factions.factions.get(facname)
if factions.is_online(facname) then
if factions_config.enable_power_per_player then if faction ~= nil then
local count = 0 if factions.is_online(facname) then
for _ in pairs(factions.onlineplayers[facname]) do count = count + 1 end if factions_config.enable_power_per_player then
factions.increase_power(facname, factions_config.power_per_player * count) local count = 0
else for _ in pairs(factions.onlineplayers[facname]) do count = count + 1 end
factions.increase_power(facname, factions_config.power_per_tick) factions.increase_power(facname, factions_config.power_per_player * count)
else
factions.increase_power(facname, factions_config.power_per_tick)
end
end end
end if now - faction.last_logon > factions_config.maximum_faction_inactivity or (faction.no_parcel ~= -1 and now - faction.no_parcel > factions_config.maximum_parcelless_faction_time) then
if now - faction.last_logon > factions_config.maximum_faction_inactivity or (faction.no_parcel ~= -1 and now - faction.no_parcel > factions_config.maximum_parcelless_faction_time) then local r = ""
local r = "" if now - faction.last_logon > factions_config.maximum_faction_inactivity then
if now - faction.last_logon > factions_config.maximum_faction_inactivity then r = "inactivity"
r = "inactivity" else
else r = "no parcel claims"
r = "no parcel claims" end
factions.disband(facname, r)
end end
factions.disband(facname, r) end
end
end end
end end