View difference between Paste ID: L6NhAYT7 and exnN5se5
SHOW: | | - or go back to the newest paste.
1-
--[[   opencomputers nano на русском
1+
-- pastebin get -f L6NhAYT7 term.lua
2-
Программа для включения эффектов нанитов.
2+
-- GPU Tier 2, Interner card, Wifi card, Tablet Tier 2
3-
3+
4-
требования: планшет или компьютер с wi-fi картой
4+
local computer = require("computer")
5-
примечание: могут одновременно активны только 2 эффекта
5+
6-
6+
local colors = require("colors")
7-
4 назначить вход 
7+
local unicode = require("unicode")
8-
номер входа 1-18
8+
9-
состояние вкл(1) выкл(2)
9+
local sides = require("sides")
10-
 ]]--
10+
local gpu = component.gpu
11-
11+
12
local shell = require("shell")
13
a = 0
14
shell.execute("oppm install nn")
15-
15+
term.clear()
16-
local lastResponse = ""
16+
shell.execute("nn init 53453") -- тут менять порт на свой
17
ports = 53454 -- и тут и еще ниже в функции 28
18-
modem.open(1)
18+
function funcButton1()
19-
modem.broadcast(1, "nanomachines", "setResponsePort", 1)
19+
if buttons.button1.buttonPressed == true then
20-
20+
modem.broadcast(ports,"nanomachines","setInput",1,true)
21-
local function printResponse()
21+
else
22-
  local w, h = component.gpu.getResolution()
22+
modem.broadcast(ports,"nanomachines","setInput",1,false)
23-
  component.gpu.fill(1, h, w, h, " ")
23+
24-
  component.gpu.set(1, h, lastResponse)
24+
25
function funcButton2()
26-
26+
if buttons.button2.buttonPressed == true then
27-
local function handleModemMessage(_, _, _, _, _, header, command, ...)
27+
modem.broadcast(ports,"nanomachines","setInput",2,true)
28-
  if header ~= "nanomachines" then return end
28+
else
29-
  lastResponse = "последний ответ: " .. command
29+
modem.broadcast(ports,"nanomachines","setInput",2,false)
30-
  for _, v in ipairs({...}) do
30+
31-
    lastResponse = lastResponse .. ", " .. tostring(v)
31+
32-
  end
32+
function funcButton3()
33-
  printResponse()
33+
if buttons.button3.buttonPressed == true then
34
modem.broadcast(ports,"nanomachines","setInput",3,true)
35-
35+
else
36-
event.listen("modem_message", handleModemMessage)
36+
modem.broadcast(ports,"nanomachines","setInput",3,false)
37-
37+
38-
local function send(command, ...)
38+
39-
  component.modem.broadcast(1, "nanomachines", command, ...)
39+
function funcButton4()
40
if buttons.button4.buttonPressed == true then
41-
41+
modem.broadcast(ports,"nanomachines","setInput",4,true)
42-
local function readNumber(name, validator)
42+
else
43-
  local index
43+
modem.broadcast(ports,"nanomachines","setInput",4,false)
44-
  while not index do
44+
45-
    io.write(name..": ")
45+
46-
    index = tonumber(io.read())
46+
function funcButton5()
47-
    if not index or validator and not validator(index) then
47+
if buttons.button5.buttonPressed == true then
48-
      index = nil
48+
modem.broadcast(ports,"nanomachines","setInput",5,true)
49-
      io.write("такого входа не существует\n")
49+
else
50-
    end
50+
modem.broadcast(ports,"nanomachines","setInput",5,false)
51-
  end
51+
52-
  return index
52+
53
function funcButton6()
54-
54+
if buttons.button6.buttonPressed == true then
55-
local running = true
55+
modem.broadcast(ports,"nanomachines","setInput",6,true)
56-
local commands = {
56+
else
57-
  { "питание нанитов",
57+
modem.broadcast(ports,"nanomachines","setInput",6,false)
58-
    function()
58+
59-
      send("getPowerState")
59+
60-
    end
60+
function funcButton7()
61-
  },
61+
if buttons.button7.buttonPressed == true then
62-
  { "активные эфекты",
62+
modem.broadcast(ports,"nanomachines","setInput",7,true)
63-
    function()
63+
else
64-
      send("getActiveEffects")
64+
modem.broadcast(ports,"nanomachines","setInput",7,false)
65-
    end
65+
66-
  },
66+
67-
  { "состояние входа",
67+
function funcButton8()
68-
    function()
68+
if buttons.button8.buttonPressed == true then
69-
      local index = readNumber("номер входа")
69+
modem.broadcast(ports,"nanomachines","setInput",8,true)
70-
      send("getInput", index)
70+
else
71-
    end
71+
modem.broadcast(ports,"nanomachines","setInput",8,false)
72-
  },
72+
73-
  { "установить состояние входа",
73+
74-
    function()
74+
function funcButton9()
75-
      local index = readNumber("номер входа")
75+
if buttons.button9.buttonPressed == true then
76-
      io.write("1. влючить                                       \n")
76+
modem.broadcast(ports,"nanomachines","setInput",9,true)
77-
      io.write("2. выключить\n")
77+
else
78-
      local value = readNumber("состояние", function(x) return x == 1 or x == 2 end)
78+
modem.broadcast(ports,"nanomachines","setInput",9,false)
79-
      send("setInput", index, value == 1)
79+
80-
    end
80+
81-
  },
81+
function funcButton10()
82-
  { "количество входов",
82+
if buttons.button10.buttonPressed == true then
83-
    function()
83+
modem.broadcast(ports,"nanomachines","setInput",10,true)
84-
      send("getTotalInputCount")
84+
else
85-
    end
85+
modem.broadcast(ports,"nanomachines","setInput",10,false)
86-
  },
86+
87-
  { "количество безопасных входов",
87+
88-
    function()
88+
function funcButton11()
89-
      send("getSafeActiveInputs")
89+
if buttons.button11.buttonPressed == true then
90-
    end
90+
modem.broadcast(ports,"nanomachines","setInput",11,true)
91-
  },
91+
else
92-
  { "сколько всего активных входов",
92+
modem.broadcast(ports,"nanomachines","setInput",11,false)
93-
    function()
93+
94-
      send("getMaxActiveInputs")
94+
95-
    end
95+
function funcButton12()
96-
  },
96+
if buttons.button12.buttonPressed == true then
97-
  { "зодоровье игрока",
97+
modem.broadcast(ports,"nanomachines","setInput",12,true)
98-
    function()
98+
else
99-
      send("getHealth")
99+
modem.broadcast(ports,"nanomachines","setInput",12,false)
100-
    end
100+
101-
  },
101+
102-
  { "голод игрока",
102+
function funcButton13()
103-
    function()
103+
if buttons.button13.buttonPressed == true then
104-
      send("getHunger")
104+
modem.broadcast(ports,"nanomachines","setInput",13,true)
105-
    end
105+
else
106-
  },
106+
modem.broadcast(ports,"nanomachines","setInput",13,false)
107-
  { "возраст игрока",
107+
108-
    function()
108+
109-
      send("getAge")
109+
function funcButton14()
110-
    end
110+
if buttons.button14.buttonPressed == true then
111-
  },
111+
modem.broadcast(ports,"nanomachines","setInput",14,true)
112-
  { "имя игрока",
112+
else
113-
    function()
113+
modem.broadcast(ports,"nanomachines","setInput",14,false)
114-
      send("getName")
114+
115-
    end
115+
116-
  },
116+
function funcButton15()
117-
  { "опыт игрока",
117+
if buttons.button15.buttonPressed == true then
118-
    function()
118+
modem.broadcast(ports,"nanomachines","setInput",15,true)
119-
      send("getExperience")
119+
else
120-
    end
120+
modem.broadcast(ports,"nanomachines","setInput",15,false)
121-
  },
121+
122-
  { "выход",
122+
123-
    function()
123+
function funcButton16()
124-
      running = false
124+
if buttons.button16.buttonPressed == true then
125-
    end
125+
modem.broadcast(ports,"nanomachines","setInput",16,true)
126-
  }
126+
else
127-
}
127+
modem.broadcast(ports,"nanomachines","setInput",16,false)
128-
128+
129-
function main()
129+
130-
  while running do
130+
function funcButton17()
131-
    term.clear()
131+
if buttons.button17.buttonPressed == true then
132-
    for i = 1, #commands do
132+
modem.broadcast(ports,"nanomachines","setInput",17,true)
133-
      local command = commands[i]
133+
else
134-
      io.write(i,"  ",command[1],"\n")
134+
modem.broadcast(ports,"nanomachines","setInput",17,false)
135-
    end
135+
136-
    printResponse()
136+
137-
137+
function funcButton18()
138-
    local command = readNumber("введите команду", function(x) return x > 0 and x <= #commands end)
138+
if buttons.button18.buttonPressed ==  true then
139-
    commands[command][2]()
139+
modem.broadcast(ports,"nanomachines","setInput",18,true)
140-
  end
140+
else
141
modem.broadcast(ports,"nanomachines","setInput",18,false)
142-
142+
143-
local result, reason = pcall(main)
143+
144-
if not result then
144+
function funcButton19()
145-
  io.stderr:write(reason, "\n")
145+
shell.execute("nn test")
146
term.clear()
147-
147+
drawButtons()
148-
event.ignore("modem_message", handleModemMessage)
148+
149-
149+
function funcButton20()
150-
term.clear()
150+
shell.execute("nn get")
151
drawButtons()
152
end
153
function funcButton21()
154
 shell.execute("nn combo")
155
 term.clear()
156
 drawButtons()
157
end
158
function funcButton22()
159
 shell.execute("nn getcombo")
160
 drawButtons()
161
end
162
function funcButton23()
163
shell.execute("nn copy")
164
drawButtons()
165
end
166
function funcButton24()
167
shell.execute("nn efon")
168
drawButtons()
169
end
170
function funcButton25()
171
shell.execute("nn clear")
172
term.clear()
173
drawButtons()
174
end
175
function funcButton26()
176
shell.execute("nn reset")
177
drawButtons()
178
end
179
function funcButton27()
180
a = 1
181
end
182
function funcButton28()
183
shell.execute("nn init 53454") -- ТУт порт меняй
184
term.clear()
185
drawButtons()
186
print("PORT SET:OK")
187
end
188
function funcButton29()
189
for i = 1, 18 do
190
modem.broadcast(ports,"nanomachines","setInput",i,false)
191
os.sleep(1)
192
end
193
print("OFF:OK")
194
end
195
buttons = {button1 = {x=48, y=2, text=".1", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton1, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
196
           button2 = {x=53, y=2, text=".2", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton2, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
197
		   button3 = {x=58, y=2, text=".3", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton3, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
198
		   button4 = {x=63, y=2, text=".4", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton4, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
199
		   button5 = {x=68, y=2, text=".5", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton5, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
200
		   button6 = {x=73, y=2, text=".6", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton6, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
201
		   button7 = {x=48, y=5, text=".7", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton7, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
202
		   button8 = {x=53, y=5, text=".8", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton8, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
203
		   button9 = {x=58, y=5, text=".9", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton9, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
204
		   button10 = {x=63, y=5, text="10", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton10, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
205
		   button11 = {x=68, y=5, text="11", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton11, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
206
		   button12 = {x=73, y=5, text="12", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton12, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
207
		   button13 = {x=48, y=8, text="13", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton13, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
208
		   button14 = {x=53, y=8, text="14", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton14, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
209
		   button15 = {x=58, y=8, text="15", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton15, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
210
		   button16 = {x=63, y=8, text="16", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton16, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
211
		   button17 = {x=68, y=8, text="17", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton17, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00},
212
		   button18 = {x=73, y=8, text="18", active=true, switchedButton = true, autoSwitch=false, buttonPressed = false, func = funcButton18, height=2, cFore = 0xFFFFFF, cBack = 0xFF0000, cFore1 = 0x000000, cBack1 = 0x00FF00}, 
213
		   button19 = {x=48, y=11, text="TEST", active=true, switchedButton = false, autoSwitch=false, buttonPressed = false, func = funcButton19, height=2, cFore = 0xFFFFFF, cBack = 0x0000FF},
214
           button20 = {x=56, y=11, text="GET.T", active=true, switchedButton = false, autoSwitch=false, buttonPressed = false, func = funcButton20, height=2, cFore = 0xFFFFFF, cBack = 0x0000FF},
215
           button21 = {x=64, y=11, text="COMBO", active=true, switchedButton = false, autoSwitch=false, buttonPressed = false, func = funcButton21, height=2, cFore = 0xFFFFFF, cBack = 0x0000FF},
216
		   button22 = {x=72, y=11, text="G.COM", active=true, switchedButton = false, autoSwitch=false, buttonPressed = false, func = funcButton22, height=2, cFore = 0xFFFFFF, cBack = 0x0000FF},
217
		   button23 = {x=48, y=14, text="COPY", active=true, switchedButton = false, autoSwitch=false, buttonPressed = false, func = funcButton23, height=2, cFore = 0xFFFFFF, cBack = 0x0000FF},
218
		   button24 = {x=56, y=14, text="EFFEC", active=true, switchedButton = false, autoSwitch=false, buttonPressed = false, func = funcButton24, height=2, cFore = 0xFFFFFF, cBack = 0x0000FF},
219
		   button25 = {x=64, y=14, text="CLEAR", active=true, switchedButton = false, autoSwitch=false, buttonPressed = false, func = funcButton25, height=2, cFore = 0xFFFFFF, cBack = 0x0000FF},
220
		   button26 = {x=72, y=14, text="RESET", active=true, switchedButton = false, autoSwitch=false, buttonPressed = false, func = funcButton26, height=2, cFore = 0xFFFFFF, cBack = 0x0000FF},
221
		   button27 = {x=72, y=17, text="EXIT", active=true, switchedButton = false, autoSwitch=false, buttonPressed = false, func = funcButton27, height=2, cFore = 0xFFFFFF, cBack = 0x0000FF},
222
		   button28 = {x=64, y=17, text="PORT", active=true, switchedButton = false, autoSwitch=false, buttonPressed = false, func = funcButton28, height=2, cFore = 0xFFFFFF, cBack = 0x0000FF},
223
		   button29 = {x=56, y=17, text="OFF", active=true, switchedButton = false, autoSwitch=false, buttonPressed = false, func = funcButton29, height=2, cFore = 0xFFFFFF, cBack = 0x0000FF}}
224
function initButtons()
225
for k,v in pairs(buttons) do
226
v.width = unicode.wlen(v.text) + 2
227
end
228
end 
229
initButtons()
230
function drawButtons()
231
 
232
for k,v in pairs(buttons) do
233
if v.active then
234
if not v.buttonPressed then -- если кнопка не нажата
235
gpu.setForeground(v.cFore)
236
gpu.setBackground(v.cBack)
237
else                      -- в ином случае
238
gpu.setForeground(v.cFore1)
239
gpu.setBackground(v.cBack1)
240
end
241
gpu.fill(v.x, v.y, v.width, v.height, " ") -- фон для кнопки
242
if v.height == 1 then         -- если высота кнопки равна 1
243
gpu.set(v.x+1, v.y, v.text)
244
elseif v.height%2 == 0 then   -- если высота кнопки равна четному числу
245
gpu.set(v.x+1, v.y + (v.height/2 - 1), v.text)
246
elseif v.height%2 == 1 then   -- если высота кнопки равна нечетному числу
247
gpu.set(v.x+1, v.y + (math.ceil(v.height/2) - 1), v.text)
248
end
249
if v.autoSwitch == true and v.buttonPressed == true then
250
v.buttonPressed = false
251
os.sleep(2)
252
drawButtons()
253
end
254
end
255
end
256
gpu.setForeground(0xFFFFFF)
257
gpu.setBackground(0x000000)
258
end
259
 
260
function searchButton()
261
 
262
while true do
263
if a == 1 then
264
term.clear()
265
break
266
end
267
local _,_,x,y = event.pull("touch")
268
for k,v in pairs(buttons) do
269
if x >= v.x and x < v.x + v.width+2 and y >= v.y and y < v.y + v.height and v.active then
270
if v.switchedButton == true then
271
if not v.autoSwitch then
272
if v.buttonPressed == false then
273
v.buttonPressed = true
274
else
275
v.buttonPressed = false
276
end
277
else
278
v.buttonPressed = true
279
end
280
term.clear()
281
drawButtons()
282
end
283
v.func()
284
end
285
end
286
end
287
 
288
end
289
 
290
drawButtons()
291
searchButton()