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

Поиск по сайту

Результаты поиска по тегам 'guide'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Блоги

Нет результатов для отображения.

Нет результатов для отображения.

Категории и разделы

  • Программирование
    • База знаний
    • Библиотеки
    • Робототехника
    • Сетевые технологии
    • Игры
    • Операционные системы
    • Графика
    • Инфраструктура
    • Программы новичков
    • За пределами Minecraft
    • Всякое-Разное
    • Чулан
    • Стол заказов
    • Конкурсы
  • Игровой раздел
    • Игровые сервера
    • Предложения игроков по улучшению игрового процесса
    • Моды и плагины
    • Гайды, обзоры по модам
    • Жалобы на игроков
    • Заявки на разбан
    • Ивенты
  • Общение
    • Ответы на частые вопросы
    • Вопрос-ответ
    • Вопросник по Lua и модам Opencomputers и ComputerCraft
    • Беседка для программистов
    • Беседка-флудилка
    • Шкатулка
  • Технический раздел
    • Новости проекта
    • Предложения по улучшению работы форума и игровых серверов
    • Проблемы в работе игрового сервера, клиента, форума и их решение
    • Дубль аккаунты
    • Обратная связь
    • Архив
  • Новости Независимое государство
  • Беседка Независимое государство

Категории

Нет результатов для отображения.

Нет результатов для отображения.


Искать результаты в...

Искать результаты, содержащие...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

Зарегистрирован

  • Начать

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Gtalk


Facebook


Twitter


Город


Интересы

Найдено 32 результата

  1. Перенос статьи Эта тема была перенесена из блока "Статьи". Автор оригинала: Krutoy. Как известно, чем лучше инструмент, тем выше скорость работы. Я программирую на Lua больше года, и перепробовал множество инструментов. В этой статье я покажу, какие есть инструменты для успешного программирования на Lua для двух модов Minecraft'а: ComputerCraft и OpenComputers. 1. Внутриигровой редактор Умеет уйму недостатков и неудобен в работе, за то всегда под рукой. Для ComputerCraft есть программа "LuaIDE", которая входит в состав операционки OneOS (второй скрин) Для OpenComputers пока редакторов кроме стандартного нет. Пара советов для редактора OC: Для быстрого поиска существующего файла в консоли введите первые символы и жмите TAB, например edit i [TAB] --> edit /init.lua Для удаления всей строки нажмите CTRL+DELETE 2. Текстовые редакторы Их несколько: Notepad++ Стандарт скриптовика. Прост и легок в обращении. Плюсы - малый размер, куча плагинов и расширений. Лучшее средство для начинающего программиста Lua. Sublime Text Более продвинутый инструмент. Плюсы - расширенный интерфейс, выбор из разнообразных тем, поддержка плагинов, включая подсветку ошибок при написании кода. Сам пользуюсь этим редактором на компе, расширив плагинами Corona Editor, Lua Love, Sublime Linter - lua SciTE, Atom Для хипстеров. По функционалу такие же как выше. Для удобной работы с компьютерными модами есть несколько приемов: - Через папку сохранения в одиночной игре: В Windows это папка, примерно C:\Users\UserName\AppData\Roaming\.MC\ServerName\saves\Computers\opencomputers\address-address-add-addrs Сохраненные файлы в папке жесткого диска игрового компьютера будут тут же там обновляться. Не забудьте изменить в конфиге \config\OpenComputers.cfg значение bufferChanges на false: - Через Pastebin: Пишете код в редакторе Вставляете его на Pastebin Вписываете код для запуска в игре (заменив XXXXXX на код пасты): pastebin get XXXXXX name - Через облачное хранилище с прямыми ссылками: Сохраняйте и работайте с файлами прямо в папке облачного хранилища, с возможностью доступа по прямым ссылкам. Например, в дропбоксе это папка Public (в новых аккаунтах ее нет) Загружайте обновленные файлы на ОС компьютер через интернет-плату программой wget, получив прямую ссылку на файл, например: wget -f https://dl.dropboxusercontent.com/u/12345678/file.lua Для удобства вы можете написать короткую программу, которая при нажатии клавиши, например F5, будет выполнять такую загрузку автоматически 3. IDE IDE - Интегрированная среда разработки. Это мощное средство редактирования и отладки кода. Сильно упрощает работу с большими проектами, но более сложен в освоении. Основное преимущество IDE - отладка кода посредством точек останова и отображения значений переменных при работе программы. Рассмотрим по отдельности: ZeroBrane Studio Суперлегкая (у меня занимает 17мб оперативки) и быстрая кроссплатформенная IDE. Визуальные темы, мониторинг переменных, выделение локальных и глобальных переменных, проверка на неиспользуемые переменные и прочие ништяки. Lua Development Tools Преимуществ от ZeroBrane практически нет, скорее минусы в роде отсутствие темной темы и требовательности к оперативке. Cloud 9 Облачное браузерное IDE. По стандарту отсутствует отладка. Ее нужно устанавливать в проект самостоятельно. Плюс - вам не нужно ничего устанавливать на компьютер. Но самое приятное, что к каждому файлу в этой IDE можно обратиться по постоянной прямой ссылке, что крайне упрощает заливку файла в игру. Так же, вы можете раздавать ссылку на проект другим и совместно редактировать код. Сам я использую Sublime для быстрого редактирования файлов, LDT для больших проектов на стадии написания кода, Cloud9 для совместных проектов с другими программистами, и для отладки текущих проектов в игре. О ZeroBrane Studio узнал совсем недавно, поэтому планирую перейти на нее в ближайшее время, что и другим советую.
  2. Перенос статьи Эта тема была перенесена из блока "Статьи". Автор оригинала: ShuraGamer. Сначала выскажу огромное спасибо @Totoro, @Alex, @Fingercomp, @LeshaInc за их программы, благодаря которым более-менее смог разобраться в очках. Небольшая предыстория(кому неинтересно, основной текст ниже): Началось все с дверного замка Тоторо, в котором использовались неведомые мне до этого очки для вывода информации под названием Terminal Glasses. Мне захотелось побольше узнать о них, но увы-ни в каких, даже англоязычных источниках подробного гайда я не нашел. Спросил на форуме, может кто знает? Кибер предложил написать гайд самому, на халяву вайт получить. Тут-то , немного покопавшись в документации,я и осознал весь размер подложенной мне свинки... Я, наивная душа, подумал, а, фигня, тут же только вывод данных! OpenPeripheral оказался отдельным модом, и писать гайд только по одной его части не имеет особого смысла. Так что придется разбираться полностью. А пока что-держите первую часть гайда по моду OpenPeripheral - Terminal Glasses! Приятного ознакомления! Итак, начнем мы с физической части нашей парочки - Terminal Glasses и Terminal Glasses Bridge. В дальнейшем я буду называть их "очки" и "мост" для простоты. Методы API одинаковы как в ОС, так и в СС Начнем с принципа работы очков. Он достачно прост: информация передается с компьютера на мост, а с моста уже на очки(прим. Можно подключить несколько очков). Если честно, я хз, как данные передаются на очки, видимо тут квантовая зависимость поиграла... Итак, мы ставим мост рядом с компьютером. Далее мы подключаем очки к мосту, просто райткликнув ими по блоку. Готово! Все подготовления завершены, можем начинать программировать! Сначала подключаем мост к компу: OC -- com = require('component') bridge = com.openperipheral_bridge CC -- bridge = peripheral.wrap(сторона подключения к компьютеру) Или bridge=peripheral.wrap("bridge") Теперь мы разбираемся с API: brige.addBox([X-координата], [Y-координата] , [Размер по вертикали] , [Размер по горизонтали], [Хексадецимальный код*], [Прозрачность**]) -- добавляет прямоугольник по заданным параметрам. *Хексадецимальный код - цветовой код, подробнее - гугл. Малая таблица цветов: Черный #000000 Белый #FFFFFF Красный #FF0000 Зеленый #00FF00 Синий #0000FF Желтый #FFFF00 Морская волна #00FFFF Розовый #00FF00 Подробная таблица цветовых кодов:Тык! Цвета подаются в программу в виде 0xКОД, например 0x000000 **Прозрачность: 1 - полностью видимый; 0 - еле заметный(Дробные числа работают) bridge.addText([X-координата], [Y-координата] , [Строка] , [Хексадецимальный код]) - выводит строку в нужных координатах. bridge.clear() - сбрасывает все данные в мосте. Итак, вы все еще помните принцип передачи данных? Так вот, сами собой данные в очках не появятся, мы должны вручную "отправлять" картинку с моста на очки(При отправлении данных с моста на очки вся предыдущая информация сбрасывается) В этом нам поможет bridge.sync(). Для ясности мы напишем небольшую программку, которая показывала бы нам точное время(Напишем ее на OC): --TIMEONGLASSES-- com = require('component') bridge = com.openperipheral_bridge function addbox() bridge.addBox(1,1,80,10,0xFFFFFF,0.2) end function addtime() datetime = os.date("!*t",os.time()) time ="TIME"..datetime.hour..":"..datetime.min bridge.addText(5,2,time,0xFF0000) end --MAIN-- while true do bridge.clear() addbox() addtime() bridge.sync() os.sleep(0.1) end Итак, господа, разберем по полочкам вышенаписанную программу Функция addbox() создает почти прозрачный прямоугольник слева сверху на экране Функция addtime() выводит текущее время, кому интересна строчка: datetime = os.date("!*t",os.time()), прошу по ссылке: Тык! Далее мы смотрим на главный цикл. Разберем его построчно while true do и end - бесконечный цикл bridge.clear() - очищаем мост для новой информации addbox(),addtime() - добавляем табличку со временем bridge.sync() - отсылаем табличку на очки os.sleep(0.1) - ждем десятую секунды Всем спасибо за внимание, надеюсь, помидоры будут не сильно тухлыми :/ P.S. BB-зло!
  3. Стороны: side, top, bottom, front, back, right, left. Minecraft 1.2.5 ComputerCraft 1.3.2 Полезные ссылки: Гайд игрока Dside (К сожалению ссылка на урок умерла...)
  4. Типы данных(переменных) с примерами значений: integer = 1234567890 float = 1.5022 double = 1.502226525896 char = 'a' string = "Hello world" boolean = true Погуглить, что такое: Программа, Алгоритм, Переменная, Тип данных, Функция, Компилятор, Машинный код, Язык программирования высокого уровня. Домашнее задание для закрепления материала: 1 - Напишите программу, которая имеет ряд переменных. Значения этих переменных суммируются и складываются в отдельную переменную, которая в свою очередь "выписывается на экран". 2 - напишите программу которая выводит на экран следующую строку string integer+integer string (integer/8)+(32*2) string string - текст, который может быть любым integer любые числа, можете поставить любые не целые числа типа float/double
  5. 1 == 1 вернет true -Проверка на равенство 0 == 1 вернет false -Проверка на равенство 0 ~= 1 вернет true -Проверка на НЕ равенство 1 ~= 1 вернет false -Проверка на НЕ равенство if statement then ****** end if statement then ***** else ***** end if statement then ***** elseif statement then ****** end if not statement then ***** end
  6. write() - так же как и print() печатает то, что в скобках. Однако не переходит на новую строчку. read() - получение данных от пользователя. Тип string.
  7. while условие do XXXXXX end for начало, конец, шаг do XXXXXX end break - прерывает цикл Х - внешний -Х - средний цикл --Х - внутренний цикл --Х - внутренний цикл -Х - средний цикл Х - внешний цикл
  8. array[index] array = {значение, значение, значение} значений может быть до 1000 штук PS в новых версиях мода лимит элементов массива убран print(array[index]) - принтим значение массива под нужным номером.
  9. local function *имя*(*аргументы*) *тело* end Ключевые слова: function, local, return.
  10. rs.setOutput(side, boolean) rs.getInput(side) rs.setBundledOutput(side, id) rs.getBundledInput(side) Возвращает сумму id проводов. К примеру если идет сигнал с белого и оранжевого провода, то сумма их id 1+2=3. Вернет вам 3. Айди проводов: White = 1 Orange = 2 Magenta = 4 Light Blue = 8 Yellow = 16 Lime = 32 Pink = 64 Gray = 128 Light Gray = 256 Cyan = 512 Purple = 1024 Blue = 2048 Brown = 4096 Green = 8192 Red = 16384 Black = 32768 Интересные ссылки: Rs API
  11. rednet.open(side) - включение модема на определенной стороне rednet.close(side) - отключение модема на определенной стороне rednet.broadcast(string text) - посылка сообщения на все компьютеры в зоне досягаемости rednet.send(id, string text) - посылка сообщения на определенный компьютер/черепашку id, string text = rednet.receive(timeLimit) - ловит сообщения из эфира os.computerID() - возвращает айди компьютера/черепашки Интересные ссылки: Rednet API
  12. Дополнительно: Если в файле нет строк и вы пытаетесь его считать, то вернется значение nil. В некоторых случаях это бывает полезным Интересные ссылки: Fs API Fs.open
  13. Интересные ссылки: Term API Textutils API Peripheral API
  14. Интересные ссылки: 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
  15. Интересные ссылки: Wiki ООП
  16. Можно так же прописать в файл startup, для автозапуска хоста shell.run("gps", "host", x, y, z) Находим наши координаты x, y, z = gps.locate(5) print(x, y, z)
  17. 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
  18. Компьютер: 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
  19. 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
  20. Компьютер-пешка: 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
×