Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Zone editable du programme--
- local blacklist = {PseudoExemple=true}
- local whitelist = {}
- local channel1 = 200
- local channel2 = 201
- --Ne pas toucher au programme apres cette ligne--
- local sensor = {}
- function myperipheral(name)
- local function inlist(item,list)
- for n,m in pairs(list) do
- if m == item then
- return true
- end
- end
- return false
- end
- local side
- for k,v in pairs(peripheral.getNames()) do
- if string.find(v,name) then
- side = v
- elseif inlist(v,rs.getSides()) then
- if peripheral.getType(v) == name then
- side = v
- end
- end
- end
- if side ~= nil then
- print("Found "..name.." as "..side)
- return side
- else
- print("ERROR:"..name.." don't found")
- return nil
- end
- end
- function screen()
- local function enter()
- posx,posy = m.getCursorPos()
- m.setCursorPos(2,posy+1)
- end
- while true do
- m.setBackgroundColor(0x8000)
- m.clear()
- m.setCursorPos(2,2)
- for i,j in pairs(sensor) do
- m.setBackgroundColor(0x100)
- m.write(i.." :")
- enter()
- m.setBackgroundColor(0x8000)
- for o,p in pairs(j) do
- if blacklist[p] then
- m.setTextColor(0x4000)
- end
- m.write(" - "..p)
- enter()
- m.setTextColor(0x1)
- end
- end
- sleep(2)
- end
- end
- function init()
- r.transmit(channel1,channel2,"init")
- local count = 0
- local timerID = os.startTimer(5)
- local event = ""
- while event ~= "timer" do
- event, side, sender, reply, msg = os.pullEvent()
- if event == "modem_message" and reply == "init" then
- sensor[msg]={}
- count = count + 1
- end
- end
- print(tostring(count).." sensor trouver")
- for i,j in pairs(sensor) do
- print(i)
- end
- end
- function mylog(text)
- mydate = http.get("http://philipperydin.com/time2.php").readAll()
- mytime = http.get("http://philipperydin.com/time.php").readAll()
- if not fs.isDir("log") then
- fs.makeDir("log")
- end
- file = fs.open("log/"..mydate,"a")
- file.writeLine("["..mytime.."] "..text)
- file.close()
- end
- function myfind(list,item)
- for n,m in pairs(list) do
- if m == item then
- return n
- end
- end
- return nil
- end
- function event()
- while true do
- e, side, sender, reply, msg = os.pullEvent("modem_message")
- message = textutils.unserialize(msg)
- if not whitelist[message.player] then
- if message.entrer then
- table.insert(sensor[message.name],message.player)
- print(message.player.." entre dans la zone de "..message.name)
- mylog(message.player.." entre dans la zone de "..message.name)
- else
- nb = myfind(sensor[message.name],message.player)
- table.remove(sensor[message.name],nb)
- print(message.player.." sort de la zone de "..message.name)
- mylog(message.player.." sort de la zone de "..message.name)
- end
- if blacklist[message.player] then
- rs.setOutput("bottom",true)
- end
- end
- end
- end
- print("-------Check Peripheral-------")
- r = peripheral.wrap(myperipheral("modem"))
- m = peripheral.wrap(myperipheral("monitor"))
- print("-------End Check Peripheral-------")
- r.open(channel2)
- init()
- parallel.waitForAny(screen,event)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement