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


Фотография

OC+AE2, или автокрафт по-компьютерному

lua AE2 Автокрафт Костыли

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 43

#1 Оффлайн   MineUbuntu

MineUbuntu
  • Пользователи
  • Сообщений: 185
  • Уровень сигнала: 4,76%
  • В игре: 35 час. 33 мин.

Награды

     

Отправлено 07 Июнь 2015 - 20:51

Автокрафт в МЭ посредством OpenComputers.

Пока Алекс переворачивает сервер с ног на голову, мне вдруг в голову стукнула мысль, что неплохо будет сделать автокрафт в AE, но без лагодрома (artem211, привет). Короче, свой автокрафт с компами и роботами. Пока что программа не готова для всеобщего обозрения, но скоро она будет доведена до нормального уровня.

Да-да, я видел систему автокрафта Алекса, но всё-таки матрица из over9000 сундуков -- неудобно.

Как это работает:

  • Комп с помощью таблицы рецептов и апгрейда-базы данных настраивает МЭ-интерфейс
  • Робот берёт из интерфейса предметы и крафтит то, что нужно
  • ...
  • И... всё, собственно

Что моя прога (мои проги -- на комп и робота) умеет:

  • Комп -- настраивать МЭ-интерфейс по рецепту, сохранённому локально при идеальных условиях (всего хватает).
  • Робот -- крафтить по рецепту, который сохранён на роботе локально, и опять же, при идеальных условиях.

Что она не умеет:

  • Защита от дурака
  • двойной крафт (например, нужен факел, а палок не хватает)
  • Пересылка рецепта с компа на робота.

О третьем отдельно. Мне, собственно, нужна помощь тех, кто хорошо разбирается в сетях. Мне нужно переслать таблицу. Внутри таблицы. Внутри ещё одной таблицы! Да, я говнокодер.

О развитии проги буду сообщать в эту тему.



#2 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 1 999
  • Уровень сигнала: 171,24%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 07 Июнь 2015 - 20:53

Ну, сериализацию юзай для таблиц.



#3 Оффлайн   MineUbuntu

MineUbuntu
  • Автор темы
  • Пользователи
  • Сообщений: 185
  • Уровень сигнала: 4,76%
  • В игре: 35 час. 33 мин.

Награды

     

Отправлено 07 Июнь 2015 - 20:56

Ну, сериализацию юзай для таблиц.

А я же тебя хотел спросить в xmpp, да ты убежал. У меня же в таблице таблица! А в ней ещё одна! С этим сериализация не справится! Или справится?



#4 Оффлайн   Krutoy

Krutoy
  • Гуру
  • Сообщений: 499
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 07 Июнь 2015 - 21:17

Или справится?

Попробовал бы сначала, или хотя бы доки почитал

http://ocdoc.cil.li/...n?s[]=serialize


Сообщение отредактировал Krutoy: 07 Июнь 2015 - 21:17


#5 Оффлайн   Asummonster

Asummonster
  • Пользователи
  • Сообщений: 570
  • Уровень сигнала: 49,34%
  • В игре: 368 час. 28 мин.
  • ГородКиев

Награды

                    

Отправлено 07 Июнь 2015 - 21:21

А просто по модема пересылать идшники?=)(Я дурак и вообще не юзаю таблицы, по крайней мере в других таблицах, которые находятся в таблицах.)Ты не можешь просто modem.broadcast(port, "Факел", 0, 0, 0, 0, уголь, 0, 0, палка, 0)?

#6 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 735
  • Уровень сигнала: 52,61%
  • В игре: 392 час. 51 мин.

Награды

                 

Отправлено 07 Июнь 2015 - 21:35

Если юзается АЕ, то это уже дороговатая система.

И АЕ может и не быть в сборке какой-то где-то, а если он там есть, то как правило, есть и автокрафт. Это только безумный Алекс автокрафты отключает :D , чтобы мы начинали все вместе включать мозги и придумали, как автокрафтить роботом. Уходи от АЕ. Сундук и робот есть всегда!

 

Лучше придумать, как роботом брать из АЕ нужный предмет и возить куда-то, например стержни в реактор или семена на огород. Не через шину с сундуком, а именно через запрос к базе сервера (ПК, который может получить доступ к хранилищу АЕ и дать АЕ команду что-то выплюнуть роботу, айтем или целый набор) Естественно, так же само ты можешь и автокрафт делать, сразу по базе и проверяй свой факел. Если палок нет в АЕ, то и уголь АЕ тебе не плюнет для робота. Сервер сразу проверяет, можно ли такой предмет скрафтить или нет и то количество, которое нужно юзеру. ПК по идее, имеет всю инфу того, что есть в АЕ, с ней и работай.

 

Можно даже роботу, по идее, сказать, мол, эй, дружок, езжай-ка наруби-ка дров сначала, да печку растопи, потом я тебе и рецепт для пирожников дам.


  • Doob и davial это нравится

#7 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 1 999
  • Уровень сигнала: 171,24%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 07 Июнь 2015 - 21:47

Если юзается АЕ, то это уже дороговатая система.

И АЕ может и не быть в сборке какой-то где-то. Уходи от АЕ. Сундук и робот есть всегда!

Это специально для АЕ автокрафт, так как он будет отключен на ИТ, а на Мир Сундуков попросту может не хватить места.


  • MineUbuntu это нравится

#8 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 735
  • Уровень сигнала: 52,61%
  • В игре: 392 час. 51 мин.

Награды

                 

Отправлено 07 Июнь 2015 - 22:00

Это специально для АЕ автокрафт, так как он будет отключен на ИТ, а на Мир Сундуков попросту может не хватить места.

Это то да, согласен. Сундуков может и не хватить, если все рецепты майна забить. Но нам же не это важно, а сама идея. Как себе из 50-100 видов айтемов что-то автоматически крафтить самое часто нужное.  

 

Что такое сундук, по идее, для сервера - табла  с индексами, да и еще с одинаковыми айтемами в нашем случае. Что оно лежит на диске, что в сундучаре, разницы там не много, наверно. Это все лишь какие-то таблицы, в которых записаны теги айтема и его количество. ГУИ только работает по иному, вот и вся разница, как по мне.



#9 Оффлайн   MineUbuntu

MineUbuntu
  • Автор темы
  • Пользователи
  • Сообщений: 185
  • Уровень сигнала: 4,76%
  • В игре: 35 час. 33 мин.

Награды

     

Отправлено 07 Июнь 2015 - 22:37

А просто по модема пересылать идшники?=)(Я дурак и вообще не юзаю таблицы, по крайней мере в других таблицах, которые находятся в таблицах.)Ты не можешь просто modem.broadcast(port, "Факел", 0, 0, 0, 0, уголь, 0, 0, палка, 0)?

Ага, конечно.
Во-первых, разные предметы иногда имеют одинаковые id-шники, но разные теги (которые почему-то определяются как damage)
Например, "IC2:itemCable" - это и медный провод, и золотой в изоляции. Хотя да, что-то я затупил, роботу не нужно знать рецепт, если в интерфейсе всё разложено.

Если юзается АЕ, то это уже дороговатая система.
И АЕ может и не быть в сборке какой-то где-то, а если он там есть, то как правило, есть и автокрафт. Это только безумный Алекс автокрафты отключает :D , чтобы мы начинали все вместе включать мозги и придумали, как автокрафтить роботом. Уходи от АЕ. Сундук и робот есть всегда!

Лучше придумать, как роботом брать из АЕ нужный предмет и возить куда-то, например стержни в реактор или семена на огород. Не через шину с сундуком, а именно через запрос к базе сервера (ПК, который может получить доступ к хранилищу АЕ и дать АЕ команду что-то выплюнуть роботу, айтем или целый набор) Естественно, так же само ты можешь и автокрафт делать, сразу по базе и проверяй свой факел. Если палок нет в АЕ, то и уголь АЕ тебе не плюнет для робота. Сервер сразу проверяет, можно ли такой предмет скрафтить или нет и то количество, которое нужно юзеру. ПК по идее, имеет всю инфу того, что есть в АЕ, с ней и работай.

Можно даже роботу, по идее, сказать, мол, эй, дружок, езжай-ка наруби-ка дров сначала, да печку растопи, потом я тебе и рецепт для пирожников дам.

Как сказал Фингер, эта прога специально для сервера.
К тому же автокрафт роботом и компом гораздо дешевле, чем "родные" шаблоны, процессоры создания и сопроцессоры всякие, которые к тому же каналы лишние занимают.
Пара строк или пара кристаллов - решать не мне.
Насчёт пирожков... Да, возможно, я "научу" робота не только крафтить, но и, к примеру, ездить к дробилке. Опять же, эти шины всякие занимают каналы.

#10 Оффлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 204
  • Уровень сигнала: 15,61%
  • В игре: 116 час. 32 мин.
  • ГородЛуна

Награды

                       

Отправлено 07 Июнь 2015 - 23:07

--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 it


P.S Потом могу помочь с интерфейсиком.  ;)

(переводится как не стоит благодарности)


Сообщение отредактировал LeshaInc: 07 Июнь 2015 - 23:16

  • MineUbuntu это нравится

#11 Оффлайн   MineUbuntu

MineUbuntu
  • Автор темы
  • Пользователи
  • Сообщений: 185
  • Уровень сигнала: 4,76%
  • В игре: 35 час. 33 мин.

Награды

     

Отправлено 08 Июнь 2015 - 06:07

--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 it

P.S Потом могу помочь с интерфейсиком. ;)
(переводится как не стоит благодарности)
Спасибо, но я уже придумал другой способ ¯\_(ツ)_/¯

#12 Оффлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 204
  • Уровень сигнала: 15,61%
  • В игре: 116 час. 32 мин.
  • ГородЛуна

Награды

                       

Отправлено 08 Июнь 2015 - 09:57

Эхх. Ладно. :)

#13 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,88%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 08 Июнь 2015 - 12:45

Это то да, согласен. Сундуков может и не хватить, если все рецепты майна забить. Но нам же не это важно, а сама идея. Как себе из 50-100 видов айтемов что-то автоматически крафтить самое часто нужное.

Что такое сундук, по идее, для сервера - табла с индексами, да и еще с одинаковыми айтемами в нашем случае. Что оно лежит на диске, что в сундучаре, разницы там не много, наверно. Это все лишь какие-то таблицы, в которых записаны теги айтема и его количество. ГУИ только работает по иному, вот и вся разница, как по мне.


Там лежат не теги, а объекты Item от которого наследуються другие ItemStone, это для примера, так что теоретически сундук с вещами может с ними делать все что угодно.

Сообщение отредактировал NEO: 08 Июнь 2015 - 12:46


#14 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 735
  • Уровень сигнала: 52,61%
  • В игре: 392 час. 51 мин.

Награды

                 

Отправлено 08 Июнь 2015 - 18:55

Там лежат не теги, а объекты Item от которого наследуються другие ItemStone, это для примера, так что теоретически сундук с вещами может с ними делать все что угодно.

не понял тебя. Сундук с вещами может делать с ними (с КЕМ?) все что угодно?  Что можете делать сундук? Переведи.

 

 

П.С. У всех лончер отпал?  У меня его нет в процессах даже. Он просто закрывается  после авторизации? Это так у всех сейчас?



#15 Оффлайн   Asummonster

Asummonster
  • Пользователи
  • Сообщений: 570
  • Уровень сигнала: 49,34%
  • В игре: 368 час. 28 мин.
  • ГородКиев

Награды

                    

Отправлено 08 Июнь 2015 - 19:02

не понял тебя. Сундук с вещами может делать с ними (с КЕМ?) все что угодно?


Почти.У сундука очень интересный апи.он может уничтожать предметы, перекладывать их и т.п.

#16 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 735
  • Уровень сигнала: 52,61%
  • В игре: 392 час. 51 мин.

Награды

                 

Отправлено 08 Июнь 2015 - 19:08

Почти.У сундука очень интересный апи.он может уничтожать предметы, перекладывать их и т.п.

Чего чего? У сундука АПИ? Это где?



#17 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 1 999
  • Уровень сигнала: 171,24%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 08 Июнь 2015 - 19:16

Чего чего? У сундука АПИ? Это где?

Ерунду он наговорил :)

Если я правильно понял, имелся в виду драйвер от OpenPeripherals для сундука. Но причём здесь это — один визер ведает.


  • Alex это нравится

#18 Оффлайн   MineUbuntu

MineUbuntu
  • Автор темы
  • Пользователи
  • Сообщений: 185
  • Уровень сигнала: 4,76%
  • В игре: 35 час. 33 мин.

Награды

     

Отправлено 08 Июнь 2015 - 21:10

Сделал конвертацию таблицы рецепта в строку, отдачу команды компом роботу. Завтра буду искать баги, после чего выложу в эту тему.

#19 Оффлайн   MineUbuntu

MineUbuntu
  • Автор темы
  • Пользователи
  • Сообщений: 185
  • Уровень сигнала: 4,76%
  • В игре: 35 час. 33 мин.

Награды

     

Отправлено 09 Июнь 2015 - 13:26

Итак, первая версия программы готова!

Для её работы нужен стандартный компьютер с беспроводным модемом, а также робот с модемом и апгрейдами: верстак и контроллер инвентаря.

Затем ставим МЭ-интерфейс, адаптер, зарядник и робота как на картинке:

BcwcOPd.png

После этого берём апгрейд-базу данных и настраиваем её на те предметы, которые используются в крафте (пока что у меня только один рецепт):5oBSv9j.png

Базу кладём в адаптер.

Затем на компьютер закидываем два файла: ME.lua и recipes.lua

ME.lua

Спойлер

recipes.lua

Спойлер

На робота скидываем файл crafter.lua :

Спойлер

В файле ME.lua измените переменные: robAddr -- адрес модема робота, baseSize -- размер базы. В файле crafter.lua измените переменную owner -- адрес модема компа.

Приступим к запуску. На роботе запустим файл crafter.lua, после чего наш раб робот будет ждать сообщения.

После этого на компе запустим файл ME.lua. Сейчас программа настроена так, чтобы сделать одну базовую электросхему IC2. Данная версия не проверяет МЭ сеть на наличие предметов, поэтому положите их заранее.

Если вы всё сделали правильно и я не допустил косяков при написании этого сообщения, в вашей МЭ сети появится одна электросхема. Тестируйте на здоровье!


Сообщение отредактировал MineUbuntu: 09 Июнь 2015 - 13:26


#20 Оффлайн   Asummonster

Asummonster
  • Пользователи
  • Сообщений: 570
  • Уровень сигнала: 49,34%
  • В игре: 368 час. 28 мин.
  • ГородКиев

Награды

                    

Отправлено 09 Июнь 2015 - 13:47

Итак, первая версия программы готова!
Для её работы нужен стандартный компьютер с беспроводным модемом, а также робот с модемом и апгрейдами: верстак и контроллер инвентаря.
Затем ставим МЭ-интерфейс, адаптер, зарядник и робота как на картинке:
BcwcOPd.png
После этого берём апгрейд-базу данных и настраиваем её на те предметы, которые используются в крафте (пока что у меня только один рецепт):5oBSv9j.png
Базу кладём в адаптер.
Затем на компьютер закидываем два файла: ME.lua и recipes.lua
ME.lua

Спойлер

recipes.lua
Спойлер

На робота скидываем файл crafter.lua :
Спойлер

В файле ME.lua измените переменные: robAddr -- адрес модема робота, baseSize -- размер базы. В файле crafter.lua измените переменную owner -- адрес модема компа.
Приступим к запуску. На роботе запустим файл crafter.lua, после чего наш раб робот будет ждать сообщения.
После этого на компе запустим файл ME.lua. Сейчас программа настроена так, чтобы сделать одну базовую электросхему IC2. Данная версия не проверяет МЭ сеть на наличие предметов, поэтому положите их заранее.
Если вы всё сделали правильно и я не допустил косяков при написании этого сообщения, в вашей МЭ сети появится одна электросхема. Тестируйте на здоровье!


Класс! Только меня смутила переменная robAddr...Почему бы не просто computer.address?

#21 Оффлайн   MineUbuntu

MineUbuntu
  • Автор темы
  • Пользователи
  • Сообщений: 185
  • Уровень сигнала: 4,76%
  • В игре: 35 час. 33 мин.

Награды

     

Отправлено 09 Июнь 2015 - 13:52

Класс! Только меня смутила переменная robAddr...Почему бы не просто computer.address?

robAddr -- это адрес модема робота, а owner -- адрес модема компа. Они нужны, чтобы робот и комп обменивались сообщениями только друг с другом, потому что я не могу в аутентификацию :(


Сообщение отредактировал MineUbuntu: 09 Июнь 2015 - 13:53


#22 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 1 999
  • Уровень сигнала: 171,24%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 09 Июнь 2015 - 14:49

Класс! Только меня смутила переменная robAddr...Почему бы не просто computer.address?

Сколько повторять нужно об удалении картинок в цитатах?


robAddr -- это адрес модема робота, а owner -- адрес модема компа. Они нужны, чтобы робот и комп обменивались сообщениями только друг с другом, потому что я не могу в аутентификацию :(

А связанная карта чем тебя не устраивает?



#23 Оффлайн   MineUbuntu

MineUbuntu
  • Автор темы
  • Пользователи
  • Сообщений: 185
  • Уровень сигнала: 4,76%
  • В игре: 35 час. 33 мин.

Награды

     

Отправлено 09 Июнь 2015 - 14:55

Сколько повторять нужно об удалении картинок в цитатах?

А связанная карта чем тебя не устраивает?

Она третьего уровня и жрёт дофига энергии. Для некоторых комп третьего уровня -- дорогое удовольствие, и они не могут крафтить их пачками.

Сообщение отредактировал MineUbuntu: 09 Июнь 2015 - 14:55


#24 Оффлайн   Asummonster

Asummonster
  • Пользователи
  • Сообщений: 570
  • Уровень сигнала: 49,34%
  • В игре: 368 час. 28 мин.
  • ГородКиев

Награды

                    

Отправлено 09 Июнь 2015 - 14:57

Сколько повторять нужно об удалении картинок в цитатах?


Было лень ссылки искать. А я вот сейчвс работаю над https файфаем и файфаем по ключу доступа

Она третьего уровня и жрёт дофига энергии. Для некоторых комп третьего уровня -- дорогое удовольствие, и они не могут крафтить их пачками.


Давай вместе заниматься https и session ключами?

#25 Оффлайн   MineUbuntu

MineUbuntu
  • Автор темы
  • Пользователи
  • Сообщений: 185
  • Уровень сигнала: 4,76%
  • В игре: 35 час. 33 мин.

Награды

     

Отправлено 09 Июнь 2015 - 15:02

Давай вместе заниматься https и session ключами?

Я в сетевых технологиях разбираюсь так же, как слушатель хореографических курсов разбирается в системах водоснабжения (то есть -- почти никак). Можешь в Мамбл зайти, договоримся.

Сообщение отредактировал MineUbuntu: 09 Июнь 2015 - 15:05


#26 Оффлайн   Asummonster

Asummonster
  • Пользователи
  • Сообщений: 570
  • Уровень сигнала: 49,34%
  • В игре: 368 час. 28 мин.
  • ГородКиев

Награды

                    

Отправлено 09 Июнь 2015 - 15:03

А он на ведро есть?

#27 Оффлайн   MineUbuntu

MineUbuntu
  • Автор темы
  • Пользователи
  • Сообщений: 185
  • Уровень сигнала: 4,76%
  • В игре: 35 час. 33 мин.

Награды

     

Отправлено 09 Июнь 2015 - 15:04

А он на ведро есть?

Есть plumble в гуглплей. Я как раз с него сижу в основном.

Сообщение отредактировал MineUbuntu: 09 Июнь 2015 - 15:06


#28 Оффлайн   Asummonster

Asummonster
  • Пользователи
  • Сообщений: 570
  • Уровень сигнала: 49,34%
  • В игре: 368 час. 28 мин.
  • ГородКиев

Награды

                    

Отправлено 09 Июнь 2015 - 15:08

ip and port, please

#29 Оффлайн   MineUbuntu

MineUbuntu
  • Автор темы
  • Пользователи
  • Сообщений: 185
  • Уровень сигнала: 4,76%
  • В игре: 35 час. 33 мин.

Награды

     

Отправлено 09 Июнь 2015 - 15:21

ip and port, please

В вики же написано, да ладно
server1.computercraft.ru
порт стандартный

#30 Оффлайн   Asummonster

Asummonster
  • Пользователи
  • Сообщений: 570
  • Уровень сигнала: 49,34%
  • В игре: 368 час. 28 мин.
  • ГородКиев

Награды

                    

Отправлено 09 Июнь 2015 - 15:27

В вики же написано, да ладно
server1.computercraft.ru
порт стандартный


Ты вообще там?=)





Темы с аналогичным тегами lua, AE2, Автокрафт, Костыли

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных