--Sender
--Id of the reciver
id = 4
--True if you want that a password is necessary to change the output
pwnecessary = true
--Password (4 symbols)
code = 1234
--Wireless modem (currently at the top)
rednet.open("top")
--Monitor (currently at the back)
monitor = peripheral.wrap("back")
function clrmonitor()
for i=1,7 do
for o=1,5 do
monitor.setCursorPos(i,o)
monitor.setTextColor(1)
monitor.setBackgroundColor(32768)
monitor.write("O")
end
end
monitor.clear()
monitor.setCursorPos(1,1)
end
function question()
choose = false
rednet.send(id,"question")
event, id, message, distance = os.pullEvent("rednet_message")
while choose == false do
clrmonitor()
monitor.write("Status:")
for i=2,6 do
for o=2,4 do
if message == "on" then
monitor.setCursorPos(i,o)
monitor.setBackgroundColor(8192)
monitor.setTextColor(8192)
monitor.write("O")
else
monitor.setCursorPos(i,o)
monitor.setBackgroundColor(16384)
monitor.setTextColor(16384)
monitor.write("O")
end
end
end
--monitor.setBackgroundColor(32768)
monitor.setTextColor(1)
monitor.setCursorPos(3,3)
monitor.write(message)
event, side, x, y = os.pullEvent("monitor_touch")
if y >= 2 or y <= 4 then
if x >= 2 and x <= 6 then
choose = true
end
end
end
end
function setnumber()
clrmonitor()
monitor.setCursorPos(3,2)
monitor.write("1")
monitor.setCursorPos(4,2)
monitor.write("2")
monitor.setCursorPos(5,2)
monitor.write("3")
monitor.setCursorPos(3,3)
monitor.write("4")
monitor.setCursorPos(4,3)
monitor.write("5")
monitor.setCursorPos(5,3)
monitor.write("6")
monitor.setCursorPos(3,4)
monitor.write("7")
monitor.setCursorPos(4,4)
monitor.write("8")
monitor.setCursorPos(5,4)
monitor.write("9")
monitor.setCursorPos(4,5)
monitor.write("0")
monitor.setCursorPos(1,1)
end
function getinput()
repeat
if x == 3 and y == 2 then
input = 1
elseif x == 4 and y == 2 then
input = 2
elseif x == 5 and y == 2 then
input = 3
elseif x == 3 and y == 3 then
input = 4
elseif x == 4 and y == 3 then
input = 5
elseif x == 5 and y == 3 then
input = 6
elseif x == 3 and y == 4 then
input = 7
elseif x == 4 and y == 4 then
input = 8
elseif x == 5 and y == 4 then
input = 9
elseif x == 4 and y == 5 then
input = 0
else
input = 10
event, side, x, y = os.pullEvent("monitor_touch")
end
until input ~= 10
end
while true do
clrmonitor()
question()
if pwnecessary == true then
setnumber()
output = 0
for i=1,4 do
event, side, x, y = os.pullEvent("monitor_touch")
if event == "monitor_touch" then
getinput()
monitor.setTextColor(2048)
monitor.setCursorPos(i+2,1)
monitor.write(input)
monitor.setCursorPos(i+1+2,1)
monitor.write(" ")
monitor.setCursorPos(i+2+2,1)
monitor.write(" ")
monitor.setTextColor(1)
if i == 1 then
output = output + input * 1000
elseif i == 2 then
output = output + input * 100
elseif i == 3 then
output = output + input * 10
elseif i == 4 then
output = output + input
end
end
end
if output == code then
if message == "off" then
rednet.send(id,"on")
else
rednet.send(id,"off")
end
end
print(output)
else
if message == "off" then
rednet.send(id,"on")
else
rednet.send(id,"off")
end
end
sleep(0.5)
clrmonitor()
end
Comments