diff --git a/config.lua b/config.lua index 76344f39..98fcbac6 100644 --- a/config.lua +++ b/config.lua @@ -11,5 +11,5 @@ Event.register(-1, function() global.scenario.config.mapsettings.spiral_land_width = 70 -- width of land in spiral global.scenario.config.mapsettings.spiral_water_width = 70 -- width of water in spiral global.scenario.custom_functions = {} + global.scenario.config.nuke_min_time_hours = 3 --how long a player must be on the server to be allowed to use the nuke end) - diff --git a/control.lua b/control.lua index 6f8f81ad..c4c041cd 100644 --- a/control.lua +++ b/control.lua @@ -13,13 +13,14 @@ require "train_station_names" require "score" require "map_layout" require "custom_commands" +require "nuke_control" function player_joined(event) local player = game.players[event.player_index] player.insert { name = "raw-fish", count = 4 } - player.insert { name = "iron-gear-wheel", count = 8 } + player.insert { name = "iron-gear-wheel", count = 8 } player.insert { name = "iron-plate", count = 16 } --player.insert { name = "pistol", count = 1 } --player.insert { name = "firearm-magazine", count = 8 } @@ -28,7 +29,7 @@ function player_joined(event) --player.insert { name = "construction-robot", count = 16 } --player.insert { name = "solar-panel", count = 16 } --player.insert { name = "substation", count = 16 } - --player.insert { name = "logistic-chest-passive-provider", count = 16 } + --player.insert { name = "logistic-chest-passive-provider", count = 16 } --player.insert { name = "power-armor", count = 1 } player.print("Welcome to our Server. You can join our Discord at: discord.me/redmew") player.print("And remember.. Keep Calm And Spaghetti!") @@ -41,7 +42,7 @@ function walkabout(player_name, distance) distance = math.random(5000, 10000) return end - + if distance == "close" then distance = math.random(3000, 7000) else @@ -69,18 +70,18 @@ function walkabout(player_name, distance) local distance_min = distance * 0.95 distance_max = round(distance_max, 0) distance_min = round(distance_min, 0) - + --while r <= repeat_attempts do x = math.random(distance_min, distance_max) if 1 == math.random(1, 2) then - x = x * -1 + x = x * -1 end - + y = math.random(distance_min, distance_max) if 1 == math.random(1, 2) then y = y * -1 end - + if 1 == math.random(1, 2) then z = distance_max * -1 x = math.random(z, distance_max) @@ -88,11 +89,11 @@ function walkabout(player_name, distance) z = distance_max * -1 y = math.random(z, distance_max) end - + --r = r + 1 --local tile = surface.get_tile(x,y) --game.print(tile.name) - --if tile.name == "deep-water" or tile.name == "water" then + --if tile.name == "deep-water" or tile.name == "water" then --if r >= repeat_attempts then --game.print(player_name .. " tried to go on a walkabout, but could only find water.") --return @@ -101,7 +102,7 @@ function walkabout(player_name, distance) local pos = {x, y} player.teleport(pos) game.print(player_name .. " went on a walkabout, to find himself.") - return + return --end --end end diff --git a/nuke_control.lua b/nuke_control.lua new file mode 100644 index 00000000..cfe37c5e --- /dev/null +++ b/nuke_control.lua @@ -0,0 +1,18 @@ + + + +local function allowed_to_nuke(player) + return player.admin or(player.online_time / 216000) > global.scenario.config.nuke_min_time_hours +end + + +local function ammo_changed(event) + local player = game.players[event.player_index] + if allowed_to_nuke(player) then return end + local nukes = player.remove_item({name="atomic-bomb", count=1000})--.remove_item("atomic-bomb") + if nukes > 0 then + game.print(player.name .. " tried to use a nuke, but instead dropped it on his foot.") + player.character.health = 0 + end +end +Event.register(defines.events.on_player_ammo_inventory_changed, ammo_changed)