Andrew2070 Posted June 12, 2016 Share Posted June 12, 2016 Overview: In the upcoming Post Blast server, missiles both nuclear and conventional are legal. Thus i took a long time experimenting with ComputerCraft to safeguard everyone! In the process i invented code to intercept incoming missiles about to destroy you. Now that i have made it 99% Working, i am here today to release it to the world! It features a peripheral/wireless/rednet based algorithim using a radar block. It works just like any server-client program, through a peripheral connection. 1. Missile Detected by Powered Radar Source Block. 2. Radar Block outputs coordinates/redstone signal to a server computer. 3. Server Computer generates coordinates for interception of the missile. 4. Server Computer messages all active Anti-Ballistic Missile silo clients. 5. Anti-Ballistic Missile clients then launch chronologically at each missile. 6. Until all incoming threats are destroyed, it will keep firing the client/silos. Radar => Anti-Ballistic Missile (ABM) Server => Client PC => ABM silo => Intercept *Basically just shoots down incoming missiles with a Anti-Ballistic Missile* ABM Server: --[[Skynet Nuclear ABM Defense Program by Andrew2060]]-- --[ABM Server, use with http://pastebin.com/aNsduCem]]-- --[System requires atleast 5 CC's with Modems and ABMs]]-- --[System has 5% chance of failure in killing missiles]]-- --[[Settings]]-- local waitDelay = 2 local countersPerMissile = 1 local missileDelay = 3 --[[Initialization]]-- local silos, curSilo = {}, 1 peripheral.find("modem", rednet.open) term.setBackgroundColor(colors.blue) local function red() term.setBackgroundColor(colors.red) print(" ") term.setBackgroundColor(colors.blue) end rednet.broadcast("ABM1") repeat local id, msg = rednet.receive(waitDelay) if msg == "ABM" then table.insert(silos, id) end until not id --[[Main Programs]]-- while true do if not redstone.getInput("back") then term.clear() term.setCursorPos(1, 1) red() print(" SKYNET DEFENSE SYSTEMS ACTIVATED ") red() print(" ANTI-BALLISTIC MISSILE SHIELD ONLINE ") red() red() print(" [STANDBY ABM Silos] ") for k, v in ipairs(silos) do print(" silo #" .. k .. " id = "..v) end red() repeat os.pullEvent("redstone") until redstone.getInput("back") end term.clear() term.setCursorPos(1, 1) term.setTextColor(colors.red) print("Incoming Missiles:") print("Firing CounterMeasures\n") maptab = peripheral.call("back","getEntities") maptxt = textutils.serialize(maptab) if maptxt ~= "{}" then allDat = 0 for num in pairs(maptab) do allDat = allDat+1 end targets = allDat/3 for i=0,targets-1 do local msg = {["x"] = math.floor(maptab["x_"..i]), ["y"] = math.floor(maptab["y_"..i]), ["z"] = math.floor(maptab["z_"..i])} print("Incoming Missile Threat #" .. i .. " at X:" .. msg.x .. " Y:" .. msg.y .. " Z:" .. msg.z) print("Launching " .. countersPerMissile .. " ABM Missile CounterMeasures...\n") for i = 1, countersPerMissile do rednet.send(silos[curSilo], msg) curSilo = (curSilo == #silos) and 1 or (curSilo + 1) sleep(missileDelay) end sleep(0) end sleep(0) end sleep(2) end sleep(1) ABM Client: --Silo Launch PC, [working] [By Andrew2060] --[[Settings]]-- local icbmSide = "back" local armed = true --set armed to false to disarm silo. --[[Init]]-- local icbm = peripheral.wrap(icbmSide) local masterID peripheral.find("modem", rednet.open) --[[Functions]]-- local function clear() term.clear() term.setCursorPos(1, 1) end --[[Main program]]-- clear() while true do print("Waiting for Threat Message") id, msg, distance = rednet.receive(masterID) if (msg == "ABM1") then print(" master=", id) masterID = id; rednet.send(masterID, "ABM") elseif type(msg) == "table" and id == masterID then if type(msg.x) == "number" and type(msg.y) == "number" and type(msg.z) == "number" then print(" launching CounterMeasures At x=" .. msg.x .. ", y=" .. msg.y .. ", z=" .. msg.z) icbm.setTarget(msg.x, msg.y, msg.z) if (armed) then peripheral.call("back","launch") end else print(" invalid table command") end else print(" invalid msg '", msg, "' from '", id, "', distance=", distance) end end This code is meant to be used with mekanism/DefenseTech Mods. Such as found in my ModPack: http://www.technicpack.net/modpack/nuclear-revolution.689897 It is meant for peaceful purposes only, and only for base defense. ~Hope this helps! hey_joe 1 Link to comment Share on other sites More sharing options...
StarFaded (ShadowEvolve) Posted June 13, 2016 Share Posted June 13, 2016 Skynet will rule all! PS: Nice program Link to comment Share on other sites More sharing options...
cmyk Posted June 13, 2016 Share Posted June 13, 2016 Wow I feel less special now. Link to comment Share on other sites More sharing options...
Roefel Posted June 13, 2016 Share Posted June 13, 2016 Wow I feel less special now. you've always been special to me Portal cmyk 1 Link to comment Share on other sites More sharing options...
Andrew2070 Posted June 14, 2016 Author Share Posted June 14, 2016 Wow I feel less special now. So special that you are the only person to get banned by me in weeks Link to comment Share on other sites More sharing options...
cmyk Posted June 15, 2016 Share Posted June 15, 2016 Technically uneek banned me, you just dragged him on a leash DonVanhugenstyn and Slit 2 Link to comment Share on other sites More sharing options...
Maxstripe Posted June 29, 2016 Share Posted June 29, 2016 So special that you are the only person to get banned by me in weeks Technically uneek banned me, you just dragged him on a leash What did you even do port Link to comment Share on other sites More sharing options...
Andrew2070 Posted July 7, 2016 Author Share Posted July 7, 2016 T/C please. Link to comment Share on other sites More sharing options...
Recommended Posts