View difference between Paste ID: s45vw8Nr and x1nqW58s
SHOW: | | - or go back to the newest paste.
1-
--[[
1+
load = fs.open("Config.lua", "r")
2-
	This is a Computercraft Security System, made by
2+
code,autoReset,waitTime,redstoneSide, deviceName = unpack(textutils.unserialize(load.readAll()))
3-
	FiMa_Coders. You are free to use the code wherever
3+
4-
	you want in your builds, but you are not allowed
4+
5-
	change the code in any way, except for the things 
5+
if deviceName == nil then
6-
	that are marked "CHANGABLE".
6+
	-- Determine where the modem is.   peripheral.wrap ("monitor_2")
7-
	
7+
	monitorSide = nil
8-
	If you want to share this program, you can by routing
8+
	local deviceName = "monitor"
9-
	people to:
9+
	print("Looking for monitor " .. deviceName )
10-
	http://turtlescripts.com/project/gjdi5q-Security-Code-Lock
10+
	-- local deviceName = 'monitor_0'
11-
]]
11+
	if peripheral.isPresent("left") and peripheral.getType("left")== deviceName  then
12
	monitorSide = "left"
13
	elseif peripheral.isPresent("right") and peripheral.getType("right")==deviceName then
14-
shell.openTab("lock2")
14+
	monitorSide = "right"
15
	elseif peripheral.isPresent("top") and peripheral.getType("top")==deviceName then
16
	monitorSide = "top"
17
	elseif peripheral.isPresent("back") and peripheral.getType("back")==deviceName then
18
	monitorSide = "back"
19-
m = peripheral.wrap("back")
19+
	elseif peripheral.isPresent("bottom") and peripheral.getType("bottom")==deviceName then
20
	monitorSide = "bottom"
21
	elseif peripheral.isPresent("front") and peripheral.getType("front")==deviceName then
22
	monitorSide = "front"
23
	else
24
		print("No Monitor Found!")
25-
load = fs.open("Config", "r")
25+
		monitorSide = false
26-
code,autoReset,waitTime,redstoneSide = unpack(textutils.unserialize(load.readAll()))
26+
		end 
27
28
	while monitorSide == false do
29
		print("No Monitor Found!")
30
		print("ERROR: "..math.random(1,300))
31
		sleep(5)
32
		shell.run("lock.lua")
33
	end
34
    m = peripheral.wrap( tostring(monitorSide))
35-
		[[  FiMa_Coders  ]],
35+
else
36
	m = peripheral.wrap(deviceName)
37
end
38
39
40
os.pullEvent = os.pullEventRaw
41
term.clear()
42
term.setCursorPos(1,1)
43-
		[[ | X | 0 | > | ]],
43+
shell.openTab("lock2.lua")
44
sleep(0.1)
45-
		}
45+
46
bundleErrorColor = colors.red
47
bundleSuccessColor = colors.lime
48
49
50
51
m.clear()
52
m.setTextScale(0.5)
53
m.setBackgroundColor(colors.black)
54
m.setTextColor(colors.white)
55
56-
	m.write(" X ")
56+
			    
57
inp = {}
58
sPos = 4
59-
	m.write(" > ")
59+
60
61-
	m.setBackgroundColor(colors.lightGray)
61+
62
	gui = {
63
		[[  ?John Dowe   ]],
64
		[[ Security INC. ]],
65
		[[ +-----------+ ]],
66
		[[ |           | ]],
67
		[[ +---+---+---+ ]],
68
		[[ | 1 | 2 | 3 | ]],
69-
		rs.setOutput(redstoneSide,false)
69+
70
		[[ | 7 | 8 | 9 | ]],
71
		[[ | ?? | 0 | > | ]],
72
		[[ +---+---+---+ ]],
73
	}
74
	m.setTextColor(colors.red)
75
	for i = 1,10 do
76
		m.setCursorPos(1,i)
77
		if i == 3 then
78-
		rs.setOutput(redstoneSide,false)
78+
79
		end
80
		m.write(gui[i])
81
	end
82
	m.setCursorPos(3,9)
83
	m.setBackgroundColor(colors.red)
84
	m.write(" >< ")
85
	m.setCursorPos(11,9)
86
	m.setBackgroundColor(colors.lime)
87
	m.write(" <> ")
88
	m.setCursorPos(3,4)
89
	m.setBackgroundColor(colors.blue)
90-
					m.write(" CORRECT!  ")
90+
91-
					rs.setOutput(redstoneSide,true)
91+
92
93
function open()
94
	if autoReset then
95
		if waitTime == 0 then waitTime = 2 end
96
		sleep(waitTime)
97
		rs.setBundledOutput(redstoneSide,0)
98-
				sleep(3)
98+
99
	else
100
		m.setBackgroundColor(colors.black)
101
		m.clear()
102
		m.setTextScale(5)
103
		m.setCursorPos(1,1)
104
		m.write("<")
105
		ev, side, xPos, yPos = os.pullEvent("monitor_touch")
106-
		sleep(3)
106+
		rs.setBundledOutput(redstoneSide,0)
107
		os.reboot()
108
	end
109
end
110
111
function checkInp()
112
	if #inp == #code then
113
		for f = 1,#code do
114
			if inp[f] == code[f] then
115
				if f == #code then
116
					m.setCursorPos(3,4)
117
					m.setBackgroundColor(colors.lime)
118
					m.write(" WELCOME!  ")
119
					rs.setBundledOutput(redstoneSide,bundleSuccessColor)
120
					open()
121
				end
122
			else
123
				m.setCursorPos(3,4)
124
				m.setBackgroundColor(colors.red)
125
				m.write("WRONG CODE!")
126
				rs.setBundledOutput(redstoneSide,bundleErrorColor)
127
				sleep(10)
128
				os.reboot()
129
			end
130
		end
131
	else
132
		m.setCursorPos(3,4)
133
		m.setBackgroundColor(colors.red)
134
		m.write("WRONG CODE!")
135
		rs.setBundledOutput(redstoneSide, bundleErrorColor)
136
		sleep(10)
137
		os.reboot()
138
	end
139
end
140
141
function input()
142
	mGUI()
143
	while true do
144
		ev, side, xPos, yPos = os.pullEvent("monitor_touch")
145
		print(xPos..":"..yPos)
146
		if ev == "monitor_touch" then
147
			if xPos > 2 and xPos < 6 and yPos == 6 then
148
				table.insert(inp,1)
149
				m.setCursorPos(sPos,4)
150
				m.write("*")
151
				sPos = sPos+1
152
			elseif xPos > 6 and xPos < 10 and yPos == 6 then
153
				table.insert(inp,2)
154
				m.setCursorPos(sPos,4)
155
				m.write("*")
156
				sPos = sPos+1
157
			elseif xPos > 10 and xPos < 14 and yPos == 6 then
158
				table.insert(inp,3)
159
				m.setCursorPos(sPos,4)
160
				m.write("*")
161
				sPos = sPos+1
162
			elseif xPos > 3 and xPos < 5 and yPos == 7 then
163
				table.insert(inp,4)
164
				m.setCursorPos(sPos,4)
165
				m.write("*")
166
				sPos = sPos+1
167
			elseif xPos > 7 and xPos < 9 and yPos == 7 then
168
				table.insert(inp,5)
169
				m.setCursorPos(sPos,4)
170
				m.write("*")
171
				sPos = sPos+1
172
			elseif xPos > 11 and xPos < 13 and yPos == 7 then
173
				table.insert(inp,6)
174
				m.setCursorPos(sPos,4)
175
				m.write("*")
176
				sPos = sPos+1
177
			elseif xPos > 3 and xPos < 5 and yPos == 8 then
178
				table.insert(inp,7)
179
				m.setCursorPos(sPos,4)
180
				m.write("*")
181
				sPos = sPos+1
182
			elseif xPos > 7 and xPos < 9 and yPos == 8 then
183
				table.insert(inp,8)
184
				m.setCursorPos(sPos,4)
185
				m.write("*")
186
				sPos = sPos+1
187
			elseif xPos > 11 and xPos < 13 and yPos == 8 then
188
				table.insert(inp,9)
189
				m.setCursorPos(sPos,4)
190
				m.write("*")
191
				sPos = sPos+1
192
			elseif xPos > 3 and xPos < 5 and yPos == 9 then
193
				inp = {}
194
				m.setCursorPos(3,4)
195
				m.write("           ")
196
				sPos = 4
197
			elseif xPos > 7 and xPos < 9 and yPos == 9 then
198
				table.insert(inp,0)
199
				m.setCursorPos(sPos,4)
200
				m.write("*")
201
				sPos = sPos+1
202
			elseif xPos > 11 and xPos < 13 and yPos == 9 then
203
				checkInp()
204
			end
205
		end
206
	end
207
end
208
209
input()