Kartograf 55 Опубликовано: 20 декабря, 2015 (изменено) Нужна программка для сервера с 12 адаптерами которые подсоединены к энергохранителям. Что должна делать программа: 1.Проверять текущий заряд энергохранителей и выводить их показания по порядку. 2.Возможность избирательно отключить тот или иной энергохранитель. Награда: 32 золотых слитка Комплектация: Серверная стойка с подсоединёнными снизу 12 адаптерами, сервер T1 с деталями Т1 и платой красного камня Т1. Вроде всё. Изменено 23 декабря, 2015 пользователем Kartograf Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 20 декабря, 2015 Заказ №11 [ожидание] Программа для сервера. → Заказ №012 [ожидание] Управление энергохранилищами Учитесь подбирать заголовки! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
evgkul 571 Опубликовано: 20 декабря, 2015 Могу хоть сейчас сделать на чистом энтузиазме(эти 32 слитка мне...) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 21 декабря, 2015 (изменено) 12 адаптеров? Может быть 12 хранилищ? Потому-что 60 компонентов ни один сервер не потянет. Сделал небольшой скрипт вывода информации, можно добавлять компоненты в определенном порядке, воспользовавшись функцией 'add' local component = require('component') local event = require('event') local term = require('term') local e local tType = { 'batbox', 'cesu', 'mfe', 'mfsu', 'chargepad_batbox', 'chargepad_cesu', 'chargepad_mfe', 'chargepad_mfsu' } local tStore = {} local function add() while 1 do e = {event.pull()} for i = 1, #tType do if e[1] == 'component_added' and tType[i] == e[3] then table.insert(tStore, e[2]) print('added', e[2]) elseif e[1] == 'key_down' then return true end end end end local function status() tStore = {} for i = 1, #tType do for j in pairs(component.list(tType[i])) do table.insert(tStore, j) end end print('#', 'type', 'address', 'stored', 'output') for s = 1, #tStore do print(s, component.proxy(tStore[s]).getInventoryName(), string.sub(tStore[s], 1, 7), string.sub((component.proxy(tStore[s]).getEUStored()/component.proxy(tStore[s]).getEUCapacity())*100, 1, 4) .. '%', component.proxy(tStore[s]).getEUOutputPerTick()) end end local function main() term.clear() status() while 1 do print('Команды: [L]ist, [A]dd') local cmd = io.read() if cmd:upper() == 'L' or cmd:upper() == 'LIST' then term.clear() status() elseif cmd:upper() == 'A' or cmd:upper() == 'ADD' then print('Press any key to continue.') add() end end end main() Чтобы включать и выключать произвольные хранилища, придется сделать фиксированную конструкцию, поэтому абы как хранилища не расставить, могу дать инструкции, как это сделать. Изменено 21 декабря, 2015 пользователем Doob Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 21 декабря, 2015 12 адаптеров? Может быть 12 хранилищ? Потому-что 60 компонентов ни один сервер не потянет. 4 алмазные шины в сервере = 64 компонента же. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 21 декабря, 2015 -7 базовых компонентов, итого: 57 батбоксов максимум Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Kartograf Автор темы 55 Опубликовано: 22 декабря, 2015 Что-то много компонентов насчитали. Всего 12 хранилищ и столькоже адаптеров, хотя планирую побольше. Включение выключение идёт через цветные провода(слева) желательно сделать на все цвета. Добавлю 5 алмазов, если сделаете поддержку реактора адаптером. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Kartograf Автор темы 55 Опубликовано: 23 декабря, 2015 В общем Doob спасибо за программку, с включением/выключением сам уже разобрался. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах