Перейти к содержимому

Лидеры


Популярный контент

Показан контент с высокой репутацией 19.10.2019 в Сообщения

  1. 5 баллов
    Не фигачь строку по одному символу. Используй string.find, чтобы найти позицию последовательности смены цвета. Паттерн — "%[0x(%x%x%x%x%x%x)]". Вернёт позицию начала, конца и цвет. local unicode = require("unicode") local s = "test[0x123456]testtest[0x654321]spameggs" local pattern = "%[0x(%x%x%x%x%x%x)]" local begin = 1 local x, y = 1, 1 while true do local b, e, color = s:find(pattern, begin) local precedingString = s:sub(begin, b and (b - 1)) if precedingString then gpu.set(x, y, precedingString) x = x + unicode.wlen(precedingString) end if not color then break end gpu.setForeground(tonumber(color, 16)) begin = e + 1 end
  2. 1 балл
    Обе вики не обновляются. Если хочешь что-то более-менее серьёзное делать, то читай код. В server/component, common/component находятся scala-файлы. Все методы, помеченные через @Callback, доступны из Lua-кода. Ещё стоит заглянуть в server/machine/Machine.scala, где есть методы компонента computer, integration, где лежат драйверы для разных штук из разных модов (в т. ч. OpenComputers) лежат, и в machine.lua, который запускается при старте компьютера, готовит песочницу и запускает в ней BIOS. Если что-то неясно, то задавай вопросы. Тут, в ирке, в дискорде — где угодно. (Когда @Asior спрашивает что-то по OpenComputers, то я обычно как раз прочитываю код и отвечаю.) Конечно, экспериментальное изучение тоже не запрещено, если не лень тыкать методы компонента (components -l robot, напоминаю). И учи английский. С гугл-переводчиком ты код не прочтёшь.
  3. 1 балл
    Всем ку, благодоря бессоной ночи изучение api opencomputers написал прогу для контроля за роботом через планшет. Благодаря возможно изменения разрешения удалось свернуть окно для обзора за роботом, сделать это можно по кнопке "R". Для работы этого приложения на компьютер или планшет нужно установить видеокарту карту 2 уровня или выше (из-за изменения разрешения) , и вайфай карту. На робота только вайфай карту. Из функционала доступно: Все функции движения Все swing() Все use() И моя любимая команда для робота вида : os.execute(msg)где msg это то что вы вписали при вызове отправки шела: Протокол передачи написан настолько по индусски и небезопастно, что для работы вам достаточно просто запустить эти программы на роботе и планшете. Вашего робота могут просто упереть этой же программой XD. Если вы одобрите эту программу, то я допилю её. Код для планшета: --tab local component = require("component") local term = require("term") local event = require("event") local m = component.modem --component.gpu.setResolution(1,1) term.clear() print("--------------------------------------------------------------") print("|Движение: Вперёд= ↑; Назад = ↓; Вниз = ctrl; Вверх = shift; |") print("|Поворот: Влево = ←; Вправо →; Выход из программы = '0' |") print("|Shell = 'O' - передать аргумент shell робота; |") print("|Левый клик: Вперёд = space; Вверх = 'E'; Вниз = 'D' |") print("|Правый клик: Вперёд = enter; Вверх = 'W'; Вниз = 'S' |") print("|Сворачивание окна планшета для слежения за роботом = 'R' |") print("|By http://vk.com/dencraft23 for http://computercraft.ru/ |") print("--------------------------------------------------------------") m.open(23) sr = 1 while true do _,_,key1,key2 = event.pull("key_down") z = key2 print(z) if (z==19) then if (sr==1) then term.clear() component.gpu.setResolution(2,2) sr = 0 else component.gpu.setResolution(80,25) print("--------------------------------------------------------------") print("|Движение: Вперёд= ↑; Назад = ↓; Вниз = ctrl; Вверх = shift; |") print("|Поворот: Влево = ←; Вправо →; Выход из программы = '0' |") print("|Shell = 'O' - передать аргумент shell робота; |") print("|Левый клик: Вперёд = space; Вверх = 'E'; Вниз = 'D' |") print("|Правый клик: Вперёд = enter; Вверх = 'W'; Вниз = 'S' |") print("|Сворачивание окна планшета для слежения за роботом = 'R' |") print("|By http://vk.com/dencraft23 for http://computercraft.ru/ |") print("--------------------------------------------------------------") sr = 1 end end if (z==200) then m.broadcast(66, "f") end if (z==208) then m.broadcast(66, "b") end if (z==203) then m.broadcast(66, "l") end if (z==205) then m.broadcast(66, "r") end if (z==42) then m.broadcast(66, "u") end if (z==29) then m.broadcast(66, "d") end if (z==57) then m.broadcast(66, "swing") end if (z==28) then m.broadcast(66, "use") end if (z==17) then m.broadcast(66, "useup") end if (z==31) then m.broadcast(66, "usedown") end if (z==18) then m.broadcast(66, "swingup") end if (z==32) then m.broadcast(66, "swingdown") end if (z==11) then m.broadcast(66,"exit") shell.execute("sh") end if (z==24) then m.broadcast(66,"shell") os.sleep(1) print("shell:") shellr = io.read() m.broadcast(66,shellr) end end end Код для робота: --robot term = require("term") r = require("robot") local component = require("component") local event = require("event") local m = component.modem term.clear() m.open(66) while true do local _, _, _, _, _, msg = event.pull("modem_message") z = tostring(msg) if (z=="f") then r.forward() end if (z=="b") then r.back() end if (z=="l") then r.turnLeft() end if (z=="r") then r.turnRight() end if (z=="u") then r.up() end if (z=="d") then r.down() end if (z=="swing") then r.swing() end if (z=="useup") then r.useUp() end if (z=="usedown") then r.useDown() end if (z=="swingup") then r.swingUp() end if (z=="swingdown") then r.swingDown() end if (z=="use") then r.use() end if (z=="exit") then shell.execute("sh") end if (z=="shell") then local _, _, _, _, _, msg = event.pull("modem_message") os.execute(msg) end end
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...