electronic_steve 344 Опубликовано: 7 ноября, 2015 (изменено) краткое введение в курс наномашин : наномашины дают случайные эффекты и частицы. при неосторожном использовании могут убить.есть только 2 способа их убить:1. да поможет вам бог.2. быть пиратом (пить grog). После моего ужасного эксперимента надо мной, меня пришлось спасать админам. Я решил что хватит это тепеть! и написал прогу которая выдаёт все доступные для ваших нанороботов эффекты. Просто пьём наномашины,запускаем эту прогу и ждём. Во время сканирования желательно стоять на месте и выпить зелье регенерации. После завершения сканирования программа выдаст вам список эффектов и их индексов. Далее можете включать и выключать понравившиеся вам эффекты используя эту программу. видеоВНИМАНИЕ! есть эффект мгновенного урона. он может убить вас при сканировании. Изменено 7 ноября, 2015 пользователем electronic_steve 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Krutoy 1 169 Опубликовано: 7 ноября, 2015 О, я даже не знал, что так возможно. Думал, всё перепробовать нужно вручную. А ты можешь сделать немного другую прогу - выпил нанитов, запустил прогу и получил копку 3х3 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
electronic_steve Автор темы 344 Опубликовано: 7 ноября, 2015 (изменено) @Krutoy я так и не понял как сделать 3^3. это не эффект. я получил эту способность когда тестил прогу, однако когда я перезапустил тест 3^3 исчез. Изменено 7 ноября, 2015 пользователем electronic_steve Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 8 ноября, 2015 (изменено) Как-то все слишком сложно, можно все через один цикл сделать. Вот более простая версия: local event = require('event') local modem = require('component').modem local port = 1 local head = 'nanomachines' local tot = 18 --getTotalInputCount local msg = nil modem.open(port) modem.broadcast(port, head, 'setResponsePort', port) print('input', 'effects') for i = 1, tot do os.sleep(0.1) modem.broadcast(port, head, 'setInput', i, true) msg = {event.pull('modem_message')} if msg[6] == head and msg[7] == 'input' and msg[8] == i and msg[9] == true then modem.broadcast(port, head, 'getActiveEffects') msg = {event.pull('modem_message')} if msg[6] == head and msg[7] == 'effects' then print(i, msg[8]) modem.broadcast(port, head, 'setInput', i, false) end end end А это экстренный выключатель: local event = require('event') local modem = require('component').modem local port = 1 local head = 'nanomachines' local tot = 18 --getTotalInputCount local msg = nil modem.open(port) modem.broadcast(port, head, 'setResponsePort', port) os.sleep(0.1) for i = 1, tot do modem.broadcast(port, head, 'setInput', i, false) msg = {event.pull('modem_message')} if msg[6] == head and msg[7] == 'input' and msg[8] == i and msg[9] == false then print(i) end end При тестировании не обойтись без молока, пары зелий и желательно, иметь полную пирамиду для регенерации. Копка 3x3 это один из безымянных эффектов, поэтому их надо будет потом проверить вручную. Изменено 10 ноября, 2015 пользователем Doob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BarBoss 89 Опубликовано: 10 ноября, 2015 (изменено) я так и не понял как сделать 3^3. это не эффект. я получил эту способность когда тестил прогу, однако когда я перезапустил тест 3^3 исчез. Возможно некоторые эффекты проявляется при включении комбинации из нескольких setInput? Тогда количество возможных эффектов возрастает на порядки. В инете ничего вразумительного не нашел по этому поводу. Можно модифицировать программу, чтоб перебрала, например, все возможные пары входов. Изменено 10 ноября, 2015 пользователем BarBoss Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
electronic_steve Автор темы 344 Опубликовано: 10 ноября, 2015 Возможно некоторые эффекты проявляется при включении комбинации из нескольких setInput? Тогда количество возможных эффектов возрастает на порядки. В инете ничего вразумительного не нашел по этому поводу. Можно модифицировать программу, чтоб перебрала, например, все возможные пары входов. вот тут написано про это. буду пилить прогу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 10 ноября, 2015 (изменено) Если бы так и было, то названия эффектов бы появлялись, но кто хочет - может попробовать.Вот прога перебора всех пар, жмем любую кнопку, дожидаемся звукового сигнала и идем пробовать пробить собой стену. local event = require('event') local component = require('component') local modem = component.modem local computer = component.computer local port = 1211 local head = 'nanomachines' local tot = 18 --getTotalInputCount local msg = nil modem.open(port) modem.broadcast(port, head, 'setResponsePort', port) local function get() modem.broadcast(port, head, 'getActiveEffects') msg = {event.pull('modem_message')} if msg[6] == head and msg[7] == 'effects' then print(msg[8]) end end local function test(n, st) modem.broadcast(port, head, 'setInput', n, st) msg = {event.pull('modem_message')} if msg[6] == head and msg[7] == 'setInput' and msg[8] == n and msg[9] == st then print(n, st) end end for i = 1, tot do for j = 1, tot do if i ~= j then print('Press any key to continue.') event.pull('key_down') computer.beep() test(i, true) test(j, true) get() print('Activated: '.. i ..' and '.. j .. '\n') computer.beep(900) event.pull('key_down') test(i, false) test(j, false) end end end Изменено 2 января, 2016 пользователем Doob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Krutoy 1 169 Опубликовано: 10 ноября, 2015 Если бы так и было, то названия эффектов бы появлялись, но кто хочет - может попробовать. Вот прога перебора всех пар, жмем любую кнопку, дожидаемся звукового сигнала и идем пробовать пробить собой стену. И стена сразу будет пробиваться? А если не будет, то что? С молоком понятно, а зелья какие и зачем нужны? У меня например зелей нет и не предвидится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 10 ноября, 2015 (изменено) И стена сразу будет пробиваться? А если не будет, то что? С молоком понятно, а зелья какие и зачем нужны? У меня например зелей нет и не предвидится. Чтобы найти волбастер, можно стоять с алмазной лопатой перед блоком с песком, запустить перебор сканер и смотреть одним глазом в монитор, другим на песок. Когда блок исчезнет, смотрим на мониторе номер активированного слота. Правда я не знаю, какая там вероятность выпадения, так что придется несколько банок с нанитами выпить, чтобы найти этот эффект. Вот, кстати его код: https://github.com/MightyPirates/OpenComputers/blob/master-MC1.7.10/src/main/scala/li/cil/oc/common/nanomachines/provider/DisintegrationProvider.scala Несколько взырвных на реген, потому-что с вероятностью 3% может попасться эффект урона на 6 едениц. Изменено 10 ноября, 2015 пользователем Doob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
cyber01 1 704 Опубликовано: 10 ноября, 2015 А еще получается вот так: Когда у машинок нет энергии - они добавляют по 5 голода (или урона) Список возможных зелий (эффектов зелий) берется из http://puu.sh/lgdz4/4aa64207ac.png Список возможных Particle(частицы) эффектов: http://puu.sh/lgdAR/adfdb8defa.png Есть еще такой эффект как магнит Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 10 ноября, 2015 Кстати, да, в стандартном конфиге партиклы занимают 41%, положительные эффекты - 31%, отрицательные - 28%. Следовательно, можно предположить, что этот дезинтегратор выпадает с вероятностью 0.21%, если учитывать, что в среднем, после каждой съеденной банки нанитов эффекты занимают 7 слотов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Belzebub 0 Опубликовано: 10 февраля, 2018 Как-то все слишком сложно, можно все через один цикл сделать. Вот более простая версия: local event = require('event') local modem = require('component').modem local port = 1 local head = 'nanomachines' local tot = 18 --getTotalInputCount local msg = nil modem.open(port) modem.broadcast(port, head, 'setResponsePort', port) print('input', 'effects') for i = 1, tot do os.sleep(0.1) modem.broadcast(port, head, 'setInput', i, true) msg = {event.pull('modem_message')} if msg[6] == head and msg[7] == 'input' and msg[8] == i and msg[9] == true then modem.broadcast(port, head, 'getActiveEffects') msg = {event.pull('modem_message')} if msg[6] == head and msg[7] == 'effects' then print(i, msg[8]) modem.broadcast(port, head, 'setInput', i, false) end end end А это экстренный выключатель: local event = require('event') local modem = require('component').modem local port = 1 local head = 'nanomachines' local tot = 18 --getTotalInputCount local msg = nil modem.open(port) modem.broadcast(port, head, 'setResponsePort', port) os.sleep(0.1) for i = 1, tot do modem.broadcast(port, head, 'setInput', i, false) msg = {event.pull('modem_message')} if msg[6] == head and msg[7] == 'input' and msg[8] == i and msg[9] == false then print(i) end end При тестировании не обойтись без молока, пары зелий и желательно, иметь полную пирамиду для регенерации. Копка 3x3 это один из безымянных эффектов, поэтому их надо будет потом проверить вручную. Годно) Надо бы еще сделать прогу для перевода всех этих эффектов в читаемый текст и сохранение в отдельный файл для удобства) Попробую что нибудь наколдовать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 10 февраля, 2018 oppm install nn Правда не стабильно работает это дело на лагающем севере. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах