Lgmrszd
-
Публикации
105 -
Зарегистрирован
-
Посещение
-
Победитель дней
1
Сообщения, опубликованные пользователем Lgmrszd
-
-
Сделал конвертацию таблицы рецепта в строку, отдачу команды компом роботу. Завтра буду искать баги, после чего выложу в эту тему.
-
Спасибо, но я уже придумал другой способ ¯\_(ツ)_/¯--PC local serialization = require("serialization") local m = require("component").modem m.open(229) -- pc port local table = { a = {1,2,3,4, { 1, 1, 1}}, b = {1,2,3,"a",1} } local ser = serialization.serialize(table) local pc = component.modem.address m.broadcast(228,"secretPassWord111") local robot local _, _, from, _, _, message = event.pull("modem_message") if message == "secretPassWord111" then robot = from else robot = "access denied" end m.send(robot,228,ser) print("Отправлено!") -- ROBOT local serialization = require("serialization") local m = require("component").modem m.open(228) -- robot port m.broadcast(229,"secretPassWord111") local pc local _, _, from, _, _, message = event.pull("modem_message") if message == "secretPassWord111" then pc = from else pc = "access denied" end local _, _, from, _, _, message = event.pull("modem_message") local table = serialization.unserialize(message) print("Таблица получена!")Do not mention itP.S Потом могу помочь с интерфейсиком.

(переводится как не стоит благодарности)
-
Ага, конечно.А просто по модема пересылать идшники?=)(Я дурак и вообще не юзаю таблицы, по крайней мере в других таблицах, которые находятся в таблицах.)Ты не можешь просто modem.broadcast(port, "Факел", 0, 0, 0, 0, уголь, 0, 0, палка, 0)?
Во-первых, разные предметы иногда имеют одинаковые id-шники, но разные теги (которые почему-то определяются как damage)
Например, "IC2:itemCable" - это и медный провод, и золотой в изоляции. Хотя да, что-то я затупил, роботу не нужно знать рецепт, если в интерфейсе всё разложено.
Как сказал Фингер, эта прога специально для сервера.Если юзается АЕ, то это уже дороговатая система.
И АЕ может и не быть в сборке какой-то где-то, а если он там есть, то как правило, есть и автокрафт. Это только безумный Алекс автокрафты отключает
, чтобы мы начинали все вместе включать мозги и придумали, как автокрафтить роботом. Уходи от АЕ. Сундук и робот есть всегда!Лучше придумать, как роботом брать из АЕ нужный предмет и возить куда-то, например стержни в реактор или семена на огород. Не через шину с сундуком, а именно через запрос к базе сервера (ПК, который может получить доступ к хранилищу АЕ и дать АЕ команду что-то выплюнуть роботу, айтем или целый набор) Естественно, так же само ты можешь и автокрафт делать, сразу по базе и проверяй свой факел. Если палок нет в АЕ, то и уголь АЕ тебе не плюнет для робота. Сервер сразу проверяет, можно ли такой предмет скрафтить или нет и то количество, которое нужно юзеру. ПК по идее, имеет всю инфу того, что есть в АЕ, с ней и работай.
Можно даже роботу, по идее, сказать, мол, эй, дружок, езжай-ка наруби-ка дров сначала, да печку растопи, потом я тебе и рецепт для пирожников дам.
К тому же автокрафт роботом и компом гораздо дешевле, чем "родные" шаблоны, процессоры создания и сопроцессоры всякие, которые к тому же каналы лишние занимают.
Пара строк или пара кристаллов - решать не мне.
Насчёт пирожков... Да, возможно, я "научу" робота не только крафтить, но и, к примеру, ездить к дробилке. Опять же, эти шины всякие занимают каналы.
-
Ну, сериализацию юзай для таблиц.
А я же тебя хотел спросить в xmpp, да ты убежал. У меня же в таблице таблица! А в ней ещё одна! С этим сериализация не справится! Или справится?
-
Автокрафт в МЭ посредством OpenComputers.
Пока Алекс переворачивает сервер с ног на голову, мне вдруг в голову стукнула мысль, что неплохо будет сделать автокрафт в AE, но без лагодрома (@artem211, привет). Короче, свой автокрафт с компами и роботами. Пока что программа не готова для всеобщего обозрения, но скоро она будет доведена до нормального уровня.
Да-да, я видел систему автокрафта Алекса, но всё-таки матрица из over9000 сундуков -- неудобно.
Как это работает:
- Комп с помощью таблицы рецептов и апгрейда-базы данных настраивает МЭ-интерфейс
- Робот берёт из интерфейса предметы и крафтит то, что нужно
- ...
- И... всё, собственно
Что моя прога (мои проги -- на комп и робота) умеет:
- Комп -- настраивать МЭ-интерфейс по рецепту, сохранённому локально при идеальных условиях (всего хватает).
- Робот -- крафтить по рецепту, который сохранён на роботе локально, и опять же, при идеальных условиях.
Что она не умеет:
- Защита от дурака
- двойной крафт (например, нужен факел, а палок не хватает)
- Пересылка рецепта с компа на робота.
О третьем отдельно. Мне, собственно, нужна помощь тех, кто хорошо разбирается в сетях. Мне нужно переслать таблицу. Внутри таблицы. Внутри ещё одной таблицы! Да, я говнокодер.
О развитии проги буду сообщать в эту тему.
-
Фигасе ты быстрый O-o=)
-
А ты знаешь, как Алекса заинтересовать.да и придётся роботов в шахты отправлять,так как в шахтах почти все мобы агрессивные, и убивают нанщика с 1-го удара.
-
Эм, меня идея создать междусерверный чат не интересует. Я свою прогу в сингле пишу. Пока что мотивацией служит неработающий сервер.тогда давай скайп или в RC, делаем отдельные клиент только с OC и го =D
Только пинание, и ничего другого.
Если что, я в мамбле.
И да, вот пинок: как создание проги?
-
Буду помощником на равных правах - меня тоже периодически пинать надо.Мне срочно нужен помощник.
Его обязанности ==> Пинать меня, что бы не ленился. Остальное - по желанию XD
А то, зная себя, напишу через 5 лет эту прогу, а она не актуальна будет.
-
1
-
-
Повезло вчера с Байтом, ерунду обменял на 27 слаймболов!
-
Итак, вот результат небольшого теста.
Как известно, у нас на сервере есть PIM из OpenPeripheral, который может управлять инвентарем, включая выдергивание предметов из инвентаря игроков...
Именно поэтому я всё кинул рядом и наступил на кнопку с одной землёй в карманах.
Запрещать, думаю, не нужно. В лаву тоже можно наступить и умереть.
-
Если лагов не будет, то я за.
(Интересно, можно ли в одной руке держать лазер, а в другой - бластер?)
-
Можно. По идее можно запихать лазер в задницу и отстреливаться от криперов и пауков, пока код отлаживаешь.

При больших багах в коде можно в принципе без лазера обойтись. И без гравика
-
3
-
-
Эм... какое сегодня число?Как бэ мод уже на сервере

Не крашит, всё работает.
Днём заходил, не было... вроде.
-
АП
Говорят, что выходят новые версии. Возможно, починили дюп и крэш с terminal bridge или как его там.
Так что... да чего уж там, поставьте скорее!
-
Дададададада!!! Правда, ещё не запускал, попробую потом.Беда одна: MagicaVoxel нет на Линуксе, а через Вино лагаааааееееееееееееееееееет... Придётся вбивать по-старинке.
-
Досжимаетесь

-
Долой старьё, будущее за новыми технологиями! За революцию (в мире техники)!Совет Вам даю — уходите подальше от computercraft. Будущее за OpenComputers!
-
Э... Эмммм... какое отношение они имеют к компам?Мелкий патч в догонку предыдущему. Основное добавление - летучие ботинки.

-
Можно перед роботом нажимную плиту деревянную поставить, а в робота вставить красную плату. Тогда можно не гонять прогу в бесконечном цикле, а ожидать сигнал реда - плита ведь предметами активируется, а для защиты от наступания игроком достаточно поставить блок над нажимной плитой.
-
Ок, я почти неделю назад залил свою библиотеку moving (которая, по сути, бессмысленна с апгрейдом-картой) и залил видео с первой (самой кривой) версией дровосека. Видимо, кража дисков АЕ популярней.Главное, что форум начал петь что-то про роботов, их возможности и свойства.
Были времена, когда неделями ни слова на форуме не проскакивало про программирование и роботов. Одни грегомоды обсуждались с харвестами, или взрыв пукана на крипере и улетание нано-трусов на орбиту. Вот это ЖОПА, а не ваш гриф солярки несчастной.
-
Ура, Морф вернулся! Давай ко мне, как раз новый дом строю.принты это конечно круто, там можно почти все что угодно напечатать,
-
Если для проникновения в наш бывший дом нужна была хитрость, то для борьбы с откровенным нубством (дома без крыш и панельки без стекла) нужно в справке по привату написать БОЛЬШИМИ КРАСНЫМИ БУКВАМИ: "РОБОТЫ МОГУТ ИСПОЛЬЗОВАТЬ ИНСТРУМЕНТЫ В ЧУЖИХ ПРИВАТАХ. ПОЖАЛУЙСТА, НЕ ОСТАВЛЯЙТЕ ПРИБОРЫ БЕЗ ЗАЩИТЫ."
Мне почему-то казалось, что Алекс поощряет не воров, а робогриф в поучительных целях. Мол, увидели у новичка такое, показали, он прикрыл панель и воры не страшны.
Но поощрение самих воров, которые делают это ради выгоды? Это чересчур. Давайте вообще GriefPrevention удалим, "нуачо, это же пвп сервер, пусть выживают, как хотят".
-
А создание и программирование беспилотника, часы и дни наблюдения, составление плана, осуществление тихого налета, хитрость и программирование, это как раз то ИТ. Не понимаешь ты фичи совсем
Серега, 3,5 калеки, как ты их называешь, если не смогут солярки закрыть стеклом и не шарят в ОС вообще запустить просто прогу, а в доме не оставлять дыр, то да, названия они такого заслуживают.
Алекс сам себе противоречит. То строится хитрый план, как у Салата, то вдруг оказывается, что панельки не прикрыты и их стырить может хоть Петя из 2 "а".
cyber01, похоже, говорил не про всех робогриферов в целом, которые охотятся на нубов, а про Салата и его деяния, которые не ограничиваются поучительной частью.
Пусть он меня поправит, если не так сказал.

OC+AE2, или автокрафт по-компьютерному
в Инфраструктура
Опубликовано: · Изменено пользователем MineUbuntu
Итак, первая версия программы готова!
Для её работы нужен стандартный компьютер с беспроводным модемом, а также робот с модемом и апгрейдами: верстак и контроллер инвентаря.
Затем ставим МЭ-интерфейс, адаптер, зарядник и робота как на картинке:
После этого берём апгрейд-базу данных и настраиваем её на те предметы, которые используются в крафте (пока что у меня только один рецепт):
Базу кладём в адаптер.
Затем на компьютер закидываем два файла: ME.lua и recipes.lua
ME.lua
local component=require('component') local event=require('event') local interface=component.me_interface local base=component.database local modem=component.modem local recipes=require('recipes') local robAddr="d9c29b1f-d308-4fb7-bf69-d7291346cef6" local baseSize=81 modem.open(1337) function readyInterface(name) needItems=recipes[name] for i=1,#needItems do needItem=needItems[i] print('Recipe item number '..tostring(i)..' is '..tostring(needItem['name'])..' : '..tostring(needItem['tag'])) n=0 found=false while not(found) and n<baseSize do n=n+1 local baseItem=base.get(n) if baseItem then print('Base item number '..tostring(n)..' is '..tostring(baseItem['name'])..' : '..tostring(baseItem['damage'])) if needItem['name']==baseItem['name'] and needItem['tag']==baseItem['damage'] then print('Was found!') found=true interface.setInterfaceConfiguration(i,base.address,n) end end end end end function convertRecipe(recipe) line='' for n=1,#recipe do for i=1,#recipe[n]['slots'] do line=line..tostring(recipe[n]['slots'][i]) end if n~=#recipe then line=line..':' end end return line end readyInterface('IC2:itemPartCircuit') r=convertRecipe(recipes['IC2:itemPartCircuit']) cont=true repeats=0 while cont do repeats=repeats+1 modem.send(robAddr,1337,r) _, _, sender, _, _, text=event.pull(3,'modem_message') if sender==robAddr and text=='ok' then print('Робот принял заказ') os.sleep(0.5) _, _, sender, _, _, text=event.pull(30,'modem_message') print(text) if sender==robAddr and text=='crafted' then print('Предмет создан') elseif sender==robAddr and text=='error' then print('Ошибка во время создания') end cont=false end if repeats==5 then cont=false print('Ошибка: робот не работает') end end modem.close()recipes.lua
recipes={} recipes['IC2:itemPartCircuit']={ {name='IC2:itemCable', tag=0, slots={1,2,3,7,8,9} }, {name='minecraft:redstone', tag=0, slots={4,6} }, {name='IC2:itemPlates', tag=4, slots={5} } } return recipesНа робота скидываем файл crafter.lua :
local component=require('component') local event=require('event') local inv_c=component.inventory_controller local modem=component.modem local robot=require('robot') local crafting=component.crafting local owner="5e07230a-17bb-4c20-b518-a2986093f86f" modem.open(1337) function craft(recipe) n=1 for i=1,#recipe do s=string.sub(recipe,i,i) if ':'==s then n=n+1 else s=tonumber(s) if s>3 and s<7 then s=s+1 elseif s>6 then s=s+2 end robot.select(s) inv_c.suckFromSlot(0,n) end end robot.select(4) toReturn=crafting.craft() robot.dropDown() return toReturn end a='123789:46:5' while true do _, _, sender, _, _, text=event.pull(2,'modem_message') if sender==owner then print('receive, ',text) os.sleep(0.5) modem.send(owner,1337,'ok') print('send ok') os.sleep(0.5) if craft(text) then modem.send(owner,1337,'crafted') else modem.send(owner,1337,'error') end end end craft(a)В файле ME.lua измените переменные: robAddr -- адрес модема робота, baseSize -- размер базы. В файле crafter.lua измените переменную owner -- адрес модема компа.
Приступим к запуску. На роботе запустим файл crafter.lua, после чего наш
рабробот будет ждать сообщения.После этого на компе запустим файл ME.lua. Сейчас программа настроена так, чтобы сделать одну базовую электросхему IC2. Данная версия не проверяет МЭ сеть на наличие предметов, поэтому положите их заранее.
Если вы всё сделали правильно и я не допустил косяков при написании этого сообщения, в вашей МЭ сети появится одна электросхема. Тестируйте на здоровье!