Перейти к публикации
Форум - ComputerCraft

TEMP BLOG

  • записей
    269
  • комментарий
    41
  • просмотров
    468

Записи в этом блоге

 

Component API.

Здравствуйте с вами Fenixrus и я начинаю серию гайдов по API мода OpenComputers.   Начнем мы с Component API.   Вообщем смотрим, изучаем, пробуем, комментируем!   http://www.youtube.com/watch?v=hStnB3hCpFs

Гость Fenixrus

Гость Fenixrus

 

Как добыть огромное количество ресурсов в майнкрафт?

Универсальная программа "Титан" или как правильно "шахтерить". Как же добыть много ресурсов автоматизированным способом? Как решить проблему дефицита ресов? Для этой цели можно использовать программу для мода Computercraft. В этом видео Вы можете посмотреть обзор универсальной многофункциональной программы "ТИТАН" для черепашек-роботов и сможете ее в дальнейшем использовать в игре. меню
автовозобновление работы при перезагрузках сервера
полный мониторинг процесса выполнения
большой выбор стоительных работ
несколько видов режимов карьера, в том числе поиск только ценных руд
автоматическая постройка GPS
стабильная работа
функция обновления программы
встроенный файловый браузер
и множество др. функций
Pastebin программы "ТИТАН": http://pastebin.com/depewW4j - код depewW4j

Pastebin программы "Контроль ПК": http://pastebin.com/R8xtbPTk - код R8xtbPTk (программа для контроля на ПК)

Pastebin программы "Контроль ЭКРАН": http://pastebin.com/D5ih1eQe - код D5ih1eQe (программа для контроля на внешнем мониторе 3х6 блоков)
    https://www.youtube.com/watch?v=fC58sKtfXRo

Гость AlexCC

Гость AlexCC

 

Новый лаунчер ver.0.2b

Уважаемые игроки! Администрация сайта рада сообщить о выходе нового долгожданного универсального лаунчера ver.0.2b для наших игровых серверов!
Для входа в игру вам необходимо зарегистрироваться на сайте. Имя на сайте и будет вашим ником в игре. При запуске лаунчер сам проверит и скачает необходимые файлы. Этот лаунчер будет универсальным для всех игровых серверов.

Лаунчер корректно работает с сервером v1.6.4 Computers & Science.  В ближайшее время после  полных настроек конфигурации сервера Hi-tech v1.5.2 и отключениием плагина авторизации вы сможете комфортно играть с ним и на версии 1.5.2

Администрация сайта выражает признательность и огромную благодарность игроку Legion_D за огромную проделанную работу при создании лаунчера.

 

Гость AlexCC

Гость AlexCC

 

Открытие второго сервера версии 1.6.4

Уважаемые игроки и участники проекта!   Администрация сайта сообщает об официальном открытии второго сервера версии 1.6.4   Концепция сервера - только технические моды. Основа сборки, это мод Computercraft и новый мод OpenComputers на базе индустриальных модов. Подробнее о сборке читайте на форуме в дневниках разработчиков.   Скачать архив клиента с лаунчером можно в разделе сайта "Начать игру".     Ваша задача, выжить на заброшенной планете, наполненной враждебными и агрессивными монстрами. Пройти путь развития от примитивных ручных инструментов до компьютерных, ядерных и нано- технологий. Поговаривают, что когда-то эту планету посещала раса разумных существ. Возможно, обрывки знаний и технологий помогут вам. Также ищите тайники и артефакты. Пришельцы могли забыть на планете свои высокотехнологичные машины.   Вдруг именно Вам повезет, и вы найдете их костюмы или прибор, который мог превращать одни предметы в другие с помощью солнца. Прадеды поговаривали, что видели у инопланетян такие машины.   Удачи вам и успехов в завоевании мира и развитии высоких технологий.   Внимание: отключение вайт-листа 21.06.2014 в 12:00 МСК. Администрация сайта выражает огромную благодарность игроку Legion_D, который предоставил проекту хостинг для второго сервера!   Администрация.

Гость AlexCC

Гость AlexCC

 

Программа заливки KrutoyTurtle

httpv://youtu.be/3YHxwoJ_YOE Исходник: http://pastebin.com/YxWNp5bZ   Продвинутая программа строительства. Использует "паттерны", или, "текстуры" для заливки территории. Настраивается флагами. Удобное средство для строительства зданий, тоннелей или колонн.   NPaintPro   Обсуждение на форуме.

Гость Krutoy242

Гость Krutoy242

 

Программа заправки с озера лавы

Представляю вашему вниманию программу для заправки черепашки из озера лавы.   Демонстрация работы:   httpv://www.youtube.com/watch?v=OITml182qMA   Это - маленькая часть черепашки - мультиинструмента, которую я программирую уже почти месяц. Прыгните в ад (команда [b]/goto ad[/b] ) и поставьте черепашку возле лавы. Не забудьте дать ей имя командой "label", что бы не потерять заряд.
Загрузите в черепашку код и запустите его:  pastebin get wVjMPJrL LakeDry
Положите ведро с лавой в первый слот
Укажите размеры озера для высушки. Х - вправо, Y - вперед, Z - вниз.
Вот и всё, черепашка пошла "выпивать" указанную площадь. Скорость - 50 ведер\минута.   Исходники (не советую к просмотру, там не убрано) - http://pastebin.com/wVjMPJrL    

Гость Krutoy242

Гость Krutoy242

 

Чем редактировать код LUA ?

Как известно, чем лучше инструмент, тем выше скорость работы. В этой короткой статье я покажу, какие есть инструменты для успешного программирования на LUA.   1. Внутриигровой редактор         Умеет уйму недостатков и неудобен в работе, за то всегда под рукой. Лучше сразу качать N++ или IDE, и не использовать.   Кстати, для любителей поизвращаться советую попробовать программу "LuaIDE" из операционки OneOS (правый скрин)     2. Notepad++   Стандарт скриптовика. Прост и легок в обращении. Плюсы - подсветка синтаксиса, операции со строками вроде поиска\замены. Лучшее средство для начинающего программиста LUA.   Проще всего делать так: Пишете код в N++
Вставляете его на Pastebin
Вписываете код для запуска в игре (заменив код пасты):
pastebin run E1xftzLa   или   pastebin get 3mkeUzby programNape   Для тестирования кода на ошибки советую поискать нужные плагины к N++ для дебага.     3. IDE (Koneki LDT)   Это мощное средство редактирования и отладки кода. Сильно упрощает работу с большими проектами, но более сложен в освоении. Помимо всего что есть в N++, добавляет: Автозаполнение кода
Контекстные подсказки
Точки останова
Отображение значений переменных
Если кто то захочет воспользоваться, помогу с враппером для некоторых функций из CC. Это позволит эмулировать, скажем, поведение черепашки не открывая майнкрафта.     А где редактируете свой код ВЫ ?

Гость Krutoy242

Гость Krutoy242

 

[CC + MineFactory] Поршневые двери 3х3

У многих порой возникало желание построить в Minecraft дом, с нечетной длиной стен для нахождения ярко выраженного центра, но если Вы строите нечто глобальное, нечто внушающее, то обычные ванильные двери Вам не подойдут, ибо будут смотреться слишком мизерно на фоне. В таких случаях обычно большинство людей решает прибегнуть к установке поршневых дверей, но вот незадача - как же нам прятать центральные блоки? Это совершенно не сложно и в данной статье я объясню как можно построить дверь такого типа. Итак, чтобы не писать много букв, записал небольшое видео (~8 минут). Если после видео останутся какие-то вопросы, Вы всегда можете задать их здесь на сайте или же в комментариях на Ютубе.     Скачать ПО двери: - gLib - - gClose - - gOpen -  - Gate -  

Гость DUIIIES

Гость DUIIIES

 

Minecraft ComputerCraft Архиватор

httpv://www.youtube.com/watch?v=QNA7wGLR_IQ

tArgs = {...}
local FFormat = ".arch"
local nFile, nDir, size = 0, 0
if #tArgs < 3 then
print("Usage:"
.."\nTo zip folder and its files and subfolders use"
.."\narchive zip <DIR> <ZIPname> <DIRtoSkip> <DIRtoSkip>... "
.."\nIn <DIRtoSkip> you able to set folders that will be skipped, for example \"rom\" "
.."\n\nTo unzip zipped archive to selected folder use"
.."\narchive unzip <ZIPname> <DIR>"
.."\n\nThis app is useful with pastebin.\nProgrammed by 1Ridav")
end

local function fopen(path, mode)
local f = fs.open(path, mode)
if not f then
print("ERROR: Could not open "..path.." with mode \""..mode.."\"")
exit()
end
return f
end

local function skip(df)
for i = 3, #tArgs do
if tArgs == fs.getName(df) then
return true
end
end
return false
end

local function zip(file)
print("zipping: ".. file)
local f = fopen(file, "r")
local z = textutils.serialize(f.readAll())
f.close()
return z
end

local function ZIP(path)
local list = fs.list(path)
local array = {}
local t, name, d = 0, "", 0

for i = 2, #list * 2, 2 do
t = i/2
local tpath = path.."/"..list[t]
if fs.isDir(tpath) then
if not skip(tpath) then
name = "D:"..list[t]
array = ZIP(tpath)
nDir = nDir + 1
end
else
name = "F:"..list[t]
array = zip(tpath)
nFile = nFile + 1
end
array[i - 1] = name
end

return textutils.serialize(array)
end

local function unzip(text, path)
print("unzipping: "..path)
local f = fopen(path, "w")
f.write(textutils.unserialize(text))
f.close()
end

local function UNZIP(text, path)
local array = textutils.unserialize(text)
local unz, dp
local d = 0
for i = 2, #array, 2 do
if string.sub(array[i-1], 1, 1) == "D" then
dp = string.sub(array[i-1], 3, #array[i-1])
fs.makeDir(path.."/"..dp)
UNZIP(array, path.."/"..dp)
nDir = nDir + 1
elseif string.sub(array[i-1], 1, 1) == "F" then
local p = string.sub(array[i-1], 3, #array[i-1])
unzip(array, path.."/"..p)
nFile = nFile + 1
end
end
end

local function result()
print("\nDone"
,"\n   size: "
,size, " B   "
,math.floor(size/1024), " KB"
,"\n   Files:   ", nFile
,"\n   Folders: ", nDir
)
end

if tArgs[1] == "zip" then
if fs.exists(tArgs[2]) and fs.isDir(tArgs[2]) then
local zipped = ZIP(shell.resolve(tArgs[2]))
local f = fs.open(tArgs[3]..FFormat, "w")
f.write(zipped)
f.close()
zipped = nil
size = fs.getSize(tArgs[3]..FFormat)
result()
end

elseif tArgs[1] == "unzip" then
local f = fopen(tArgs[2], "r")
if not fs.exists(tArgs[3]) then
fs.makeDir(tArgs[3])
end
UNZIP(f.readAll(), tArgs[3])
size = fs.getSize(tArgs[2])
result()
end

Гость 1Ridav

Гость 1Ridav

 

Minecraft ComputerCraft Передача файлов по RedNet

httpv://www.youtube.com/watch?v=FdfCQ7dRukY


-- lib
function write2file(path, array)

f = fs.open(path, "w")
for i = 1, #array do
f.writeLine(array[i])
end
f.close()
end

function readFromFile(path)
f = fs.open(path, "r")
local array = {}
local i = 1
local temp
while true do
temp = f.readLine()
if not temp then break end
array[i] = temp
i = i + 1
end
f.close()
return array
end

function array2String(array, d)
string = ""
for i = 1, #array do
string = string .. array[i] .. d
end
return string
end


-- send
local args = {...}
os.loadAPI("lib")

array = lib.readFromFile(args[1])
string = lib.array2String(array, "\n")
rednet.open("top")
rednet.send(tonumber(args[2]), string)

-- receive
os.loadAPI("lib")
rednet.open("top")
id, msg = rednet.receive()
print(msg)
array = {}
array[1] = msg
lib.write2file("test", array)
 

Гость 1Ridav

Гость 1Ridav

 

Minecraft Computercraft. Система датчиков

httpv://www.youtube.com/watch?v=G3v15PD4p2Y
Компьютер-пешка:

side = {"top", "right", "bottom", "left"}
host = 1
rednet.open("back")

local function bin(s)
if rs.getInput(s) then return 1 end
return 0
end

while true do
sender, msg = rednet.receive()
if sender == host then
concat = ""
for i = 1, #side do
concat = concat .. bin(side[i])
end
rednet.send(sender, concat)
end
end


Сервер-опросчик

id = {0, 3, 4}
rednet.open("back")

local function bin(element)
if element == "1" then return "true" end
return "false"
end

local function format(str)
local form = ""
for i = 1, string.len(str) do
form = form .. "#" .. i .. " - " .. bin(string.sub(str, i, i)) .. "\n"
end
return form
end

while true do
sender, msg = rednet.receive()
if msg == "batstat" then
concat = ""
for i = 1, #id do
rednet.send(id[i], "")
thisId, thisIdAnswer = rednet.receive(5)
concat = concat .. thisIdAnswer
end
rednet.send(sender, format(concat))
end
end
 

Гость 1Ridav

Гость 1Ridav

 

Minecraft Computercraft Кодовый замок

httpv://www.youtube.com/watch?v=9bEjbWuuWO4

pword = "123"
core = "9"

local function clear()
term.clear()
term.setCursorPos(1, 1)
end

local function pulse(side, freeze)
rs.setOutput(side, true)
sleep(freeze)
rs.setOutput(side, false)
end

function os.pullEvent()
local event, p1, p2, p3, p4, p5 = os.pullEventRaw()
if event == "terminate" then write("Nice try :D") end
return event, p1, p2, p3, p4, p5
end

while true do
clear()
write("Lock system\nPassword: ")
input = read("*")
if input == pword then pulse("left", 3)
elseif input == core then break end
end
 

Гость 1Ridav

Гость 1Ridav

 

Minecraft Computercraft Дистанционное управление

httpv://www.youtube.com/watch?v=4zxq-XvbsPY
Компьютер:

rednet.open("top")
while true do
event, key = os.pullEvent()
print("key = ", key)
rednet.send(2, tostring(key))
end
Черепашка:

rednet.open("right")
while true do
sender, command = rednet.receive()
if command == "17" then turtle.forward()
elseif command == "31" then turtle.back()
elseif command == "30" then turtle.turnLeft()
elseif command == "32" then turtle.turnRight()
elseif command == "42" then turtle.down()
elseif command == "57" then turtle.up()
elseif command == "18" then turtle.dig()
elseif command == "16" then turtle.place() end
end
 

Гость 1Ridav

Гость 1Ridav

 

Minecraft ComputerCraft. Часы

httpv://www.youtube.com/watch?v=sffSxB5QOQg
Из-за включения фрапса начала подлагивать игра, так что не удивляйтесь, что вместо нужной цифры иногда выходила какая то другая.  Без фрапса все работает нормально

Использовал 1 компьютер. Саму программу написал за 15 минут. Размер проги всего 14 строк

num1 = {119, 68, 61, 109, 78, 107, 123, 69, 127, 111}
num2 = {15232, 8704, 7808, 13952, 9984, 13696, 15744, 8832, 16256, 14208}
while true do
time = textutils.formatTime(os.time(), true)
len = string.len(time)
if len == 4 then h1 = 0
else h1 = string.sub(time, 1, 1) end
h2 = string.sub(time, len-3, len-3)
m1 = string.sub(time, len-1, len-1)
m2 = string.sub(time, len, len)
rs.setBundledOutput("back", num1[h1+1]+num2[h2+1])
rs.setBundledOutput("bottom", num1[m1+1]+num2[m2+1])
sleep(0.1)
end
 

Гость 1Ridav

Гость 1Ridav

 

Minecraft ComputerCraft. Урок 13. Золотые компьютеры

httpv://www.youtube.com/watch?v=gKN7OLBxH90
Интересные ссылки:
Colors API
Paintutils API
Исходник простенькой кнопочки:


--Кнопку лучше всего использовать при помощи АПИ parallel
local function draw(x, y, text, color)
paintutils.drawLine(x, y, (string.len(text)+x+1), y, color)
term.setCursorPos(x+1, y)
write(text)
end


function button(x, y, text, nColor, pColor)
draw(x, y, text, nColor)
while true do
local event, p1, p2, p3 = os.pullEvent("mouse_click")
if ((p2 >= x and p2 <= (x+string.len(text)+1) and (p3 == y))) then
draw(x, y, text, pColor)
sleep(0.1)
end
end
end


Гость 1Ridav

Гость 1Ridav

×