Asior
Пользователи-
Публикации
570 -
Зарегистрирован
-
Посещение
-
Победитель дней
70
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Asior
-
Как узнать адрес селектора Item Selector мода OpenPeripherals?
Asior ответил в вопрос whiskas в Компоненты
Похоже вы хотите создать какой-то магазин или что-то типа того. Тут могу только посоветовать создавать таблицу по которой будут проходить проверки нажатия на тот или иной предмет. Типа такого: listProducts = {['id1'] = {'товар1, товар2 ...'}, ['id1'] = {'товар1, товар2 ...'}...} -
Как узнать адрес селектора Item Selector мода OpenPeripherals?
Asior ответил в вопрос whiskas в Компоненты
Хмм, странное дело, на сервере данного проекта данный блок отключен и наверное не случайно. Я быстренько протестил данный блок и вот результаты: a,b,c = event.pull('slot_click') ss=component.proxy(component.get(c)) ss.getSlot(b) Выдает ошибку. Как не крутил, всеравно ошибка. Второй код: a,b,c = event.pull('slot_click') component.invoke(component.get(c), "getSlot", b) Не поверите, но это тоже не работает. Потыкал я анализатором по этому блоку, а он не выдает никаких данных, а адрес по которому обращаемся - это тот самый адаптер. -
OpenComputers Беспроводная клавиатура для троллинга.
Asior ответил в тему BadCoder в Программы новичков
Удаленный рабочий стол? Хмм, ну удачи. Ждем с нетерпением. -
OpenComputers Беспроводная клавиатура для троллинга.
Asior ответил в тему BadCoder в Программы новичков
Ну, ладно. И для чего еще можно его использовать? Как-то почитал код, судя по всему он кроме нажатия клавиш больше ничего не может передать. Странная как-то программа -
Выжить. Просто остаться на плаву прихватив с тонущего сервера все самое ценное
-
А насчет батареек согласен, как-то слабую прибавку они дают к заряду. По идее батарея 1 уровня должна хотя-бы удваивать количество энергии робота, 2 уровня утраивать ну и последнего уровня как минимум давать коэфициэнт х5. Спасибо кстати, за тему, пойду в конфигах подправлю уровни энергии
-
Так же и увеличивается емкость батареи, каждое улучшение прибавляет к роботу дополнительный заряд. А еще чем больше прокаченных апгрейдов, тем быстрее идет разрушение блоков и вроде как медленнее тратится кирка. На скорость передвижения увы количество улучшений опыта не влияет. Конечно будет. При сборке робота компонентам присваиваются их уникальные номера, и при разборке номера сохраняются. Жаль конечно что если достать улучшение опыта, весь заряд что успел туда накачаться моментально исчезает.
-
@@Alex, что даст незнаю, но надеюсь избавит от такого происходящего зависания, когда вообще все блокируется и сидишь думаешь как вытащить то, что долго набилал. Вот, что надеюсь даст новый движок.
-
У меня тут вопрос возник, а этот фрагмент кода вообще работает local component = require'component' Просто как-то привык что всегда вызывается в скобках local component = require('component')
-
Время то есть для тестов. Да и потом пригодится, уверен, что найдется сервер и будем дальше играть и создавать программы. Не огорчайся.
-
Ну я просто собирал для себя локальную сборочку и собственно решил разобраться, что это за такой аддон и с чем его есть. Разобрался, попутно гайд написал, долго и витиевато ругался на разработчика, который не доделал множество интересностей и как итог: В моде 14 разных предмета, из них работают в одиночке только 6. Как на мой выбор оно тогда того не стоит, так-что пока автор не починит аддон, ему увы не место в моей сборке. Благо для моих потребностей хватит апгрейдов с других модов. Про спрос и предложение - рекламируй, давай обзоры на ютубе, выложи на популярные сайты которые предлагают множество модов для майна, и наконец-то почини баги.
- 12 ответов
-
- opentechnology
- обзор
-
(и ещё 1 )
Теги:
-
Только в открытую альфу это чудо поступит в 2020 году, как обещают разработчики. Space Engineers - офигненный симулятор багов и пожиратель ресурсов компьютера. Я хз насколько нужен мощный компьютер, чтобы играть в эту игру, ужасная оптимизация, и никакущая сетевая игра. Программировать да, там можно, но это разве что в одиночке только делать. Kerbal Space Program - а вот это уже интересно, правда немного не понятно как там программировать. Играл в неё, но добраться смог максимум до муны, и то добрались только болтики от корабля. Насчет последней игры хз. Надо смотреть, но думаю это должно быть интересно.
-
Идея хорошая но скучно играть будет и игра закончится через часов 20, к тому времени у тебя будет куча рейсов и собственно все, в ваниле больше делать то нечего. А если хочешь моего мнения о теории, то да, такое вполне возможно и несложно реализуемо. Только сервер накроется быстро, если систему ретрансляторов ставить, а вот огромная антенна тут помогла бы, но увы она роняет сервер и вообще не работает. А так чего придумывать то, на спавне стоит главный компьютер с командным блоком и принимает по вафле команды, например на телепортацию васи в ад.
-
Не забыли. Починить бы его не мешало, а то из всего комплекта аддона работают только 5 компонентов.
- 12 ответов
-
- opentechnology
- обзор
-
(и ещё 1 )
Теги:
-
Привет всем механикам-технологам, и просто мимопроходящим. В этой небольшой статье я расскажу вам обо всех возможностях такого замечательного мода OpenTechnology. OpenTechnology является аддоном к всеми любимому моду OpenComputers. Автор мода известен как NEO. Тут Ссылка вы можете ознакомиться с его блогом, где он выкладывал обновления своего мода, делился мыслями и т.д. Данный аддон добавляет в игру некоторые новые структуры, предметы и блоки, которые сделают вашу игру более комфортной и расширят возможности роботов. Заранее предупреждаю, дистанция, сила атаки и расход энергии могут быть изменены в конфигурации мода. В этом обзоре я использую базовые настройки, которые идут с модом. Итак, коль упомянул роботов, начнем пожалуй с них. Довольно часто роботы сбегают от игроков и потом начинаются мученические поиски беглеца. Но OpenTechnology может вам помочь в поисках беглецов при помощи "Сканера роботов" :/. Он сканирует пространство радиусом в 40 метров и выводит в чат координаты беглеца. Выглядит это чудо продвинутых технологий, как собственно сканер, экран, маленькая клавиатура и полоса уровня заряда. Заряжается он в любом энергохранилище, если такового нету, можно затолкать в зарядник и он там зарядится. Тесла Апгрейд - оружие массового поражение для робота. Наносит сильный электрический разряд (10 урона) всем мобам окружающих робота в радиусе 10 метров. Урон распределяется равномерно между всеми мобами. После каждого разряда катушка уходит в долгий цикл перезарядки. Будьте бдительны, расход энергии на вспышку очень высок. Технический уровень апгрейда Т3. Поддерживает следующие методы: tesla --название апгрейда attack() --атакует всех сущностей равномерно распределяя между ними урон. После вспышки перегревается checkOverHeated() --возвращает состояние катушки перегрелась или нет getMaxRadius() --возвращает максимальный радиус атаки. getDamage() --возвращает силу урона. Он распределяется равномерно, пример: допустим наш урон 20, --если при атаке в зоне поражения находяться 5 сущностей, каждый получит 4 урона. getCoolingTicks()--возращает количество тиков требуемое для охлаждения катушки. Радар Апгрейд и Антенна радара :/ - приборы позволяющие узнать точное местоположение мобов, игроков, лежащих на земле предметов в радиусе 15 метров. Интересен тем, что возвращает много точной информации о каждом, кто попал в зону сканирования. Но расход энергии к сожалению нереально велик. Устанавливаются как на робота, так и как внешнее оборудование для компьютера. Технический уровень апгрейда Т1. Радар поддерживает следующие методы: radar --название апгрейда getPlayers() --возвращает таблицу со списком игроков что попали в зону скана. --Радиус сканирования можно задать, без значений сканирует на максимальную дистанцию getMobs() --возвращает таблицу со списком мобов, что попали в зону скана getItems() --возвращает таблицу со списком предметов которые лежат на земле, что попали в зону скана getEntities() -- полное сканирование. Возвращает таблицу всех существ (предметы тоже) содержимое таблицы: {{armor = <уровень брони>, distance = <дистанция от сканера до существа>, health = <уровень здоровья>, maxhealth = <максимальный уровень здоровья>, name = <имя существа>, x = <координата по x>,y = <координата по y>,z = <координата по z>}...n = <количество существ>} Реактор Апгрейд - генерирует энергию за счет распада урановых стержней. Принцип работы тот же, что и у базового улучшения "Генератор", только в виде топлива используются одинарные урановые стержни. Зато энергии вырабатывает нереально много и довольно продолжительное время. Затолкать сдвоенные и счетверенные урановые стержни не представляется пока возможности, похоже размеры реактора не позволяют разместить их в нем. Технический уровень апгрейда Т3. Реактор поддерживает следующие методы: reactor --название апгрейда activate() --запустить реактор deactivate() --заглушить реактор insert() --переместить из активного слота стержень в реактор count() --возвращает остаток времени работы уранового стержня. В тиках. На этом улучшения для роботов заканчиваются, но вот предметы мода еще нет. Контроллер АДД, Часть Антенны, Ячейка Антенны - это фрагменты огроменной вышки, которая позволяет передавать данные на огромное расстояние (2 км). Антенну строить довольно дорого, но если вы желаете дистанционно управлять роботами на большом расстоянии, это выбор для вас. К сожалению расход энергии на передачу данных довольно большой, а так-же невозможно открыть несколько каналов, но дистанцию можно еще сильнее увеличить, если задрать антенну еще выше. Для её постройки требуется соорудить следующую структуру: 1 блок Контроллера АДД, 14 блоков Частей Антенны, 1 блок Ячейки Антенны lde --название антенны События: ld_message --Агрументы - адрес отправителя, дистанция, сообщение :/ Антенна поддерживает следующие методы: getMaxDistance() --Возвращает максимальную дистанцию передачи данных getDistance() --Возвращает установленное расстояние отправки данных getRealDistance() --Возвращает реальное расстояние отправки данных. Оно рассчитывается так: Установленное Расстояние * (LDAControllerY + 16) / 256. Чем выше антенна - тем больше приближение к установленному расстоянию передачи getChannel() --Возвращает текущий канал передачи open(channel:int) --Открывает канал, очень долго, поэтому лучше не переключать часто setDistance(distance:int) --Устанавливает максимальное расстояние для передачи maxPacketSize() --Возвращает максимальный размер пакета broadcast(data:string) --Рассылает сообщение по каналу, услышат сообщение все кто к нему подключен :/ send(address:string, data:string) --Отправляет сообщение конкретному адресату. Оба должны работать на одном канале :/ Мировой интерфейс - креативный блок, который позволяет получать полную информацию по игроку, его показатели жизни, текущее местоположение, содержимое инвентаря и прочее. Фактически это урезанный командный блок, который помогает всячески отслеживать информацию по игрокам. Поддерживает следующие методы: world_interface --название компонента getOnlinePlayers() --выводит таблицу со списком игроков онланй getSpawnLocation(<Имя игрока>, <номер мира>) --выводит координаты точки воскрешения указанного игрока в указанном мире getActiveEffects(<Имя игрока>) --выводит таблицу наложенных на игрока эффектов, а также продолжительность действия и его цифровой код (Id) getPlayerHealth(<Имя игрока>) --выводит уровень текущего и максимального здоровья игрока getPlayerFoodStats(<Имя игрока>) --выводит показания запасов еды. Если используется какой-то мод, который добавляет сытости, то его параметры тоже выводятся в отдельную переменную getPlayerPosition(<Имя игрока>) --выводит поцицию игрока относительно глобальных координат в виде x,y,z,n где n-номер мира. getStackInSlot(<Имя игрока>, <номер ячейки инвентаря>) --выводит информацию по предмету что лежит в указанной ячейке инвентаря игрока destroyStackInSlot(<Имя игрока>, <номер ячейки инвентаря>) --уничтожает предмет находящийся в указанном слоте инвентаря игрока isFlying(<Имя игрока>) --проверяет летит игрок или нет. Возвращает true если летит или false иначе kill(<Имя игрока>) --убивает игрока :/ heal(<Имя игрока>, <ед исцеления>) --моментально вылечивает игрока на указанное количество единиц kick(<Имя игрока>, <Причина>) --отключает игрока от сервера по указанной причине Контроллер мощности - прибор предназначенный для прераспределения энергии между энергобуферами или проводами. Внешне выглядит как энергобуфер, имеет 5 сторон приема энергии и 1 сторону для вывода её. Имеет внутренний интерфейс в виде двух полос с энергией и цифровым обозначением. Принцип действия: принимает в первый буфер любое количество энергии, затем при помощи компьютера перемещает указанную часть энергии во второй буфер и благополучно выводит её из себя через порт вывода. Фактически это управляемый компьютером трансформатор. Взаимодействует только с модом IC2. Имеет довольно интересную особенность, энергия из выходного буфера перетекает в энергобуфер моментально, несмотря на все ограничения по уровням пропуска энергии, тоесть 1000 eu/t перемещается в базовый деревянный энергобуфер не со скоростью 32 eu/t, а моментально, как ни странно, но взрыва не следует. Поддерживает следующие методы: energy_controller --название компонента getInputBufferCapacity() --возвращает текущий уровень энергии входного буфера getOutputBufferCapacity --возвращает вместимость входного буфера getEnergyInputBuffer() --возвращает текущий уровень энергии выходного буфера getEnergyOutputBuffer --возвращает вместимость выходного буфера transform(<количество единиц энергии>) --перемещает указанное количество энергии из первого буфера во второй. Pid :/ - нажимная плита для взаимодействия компьютера с инвентарем игрока. Для взаимодейсвия с ней, надо встать на неё. Поддерживает следующие методы: pid --название компонента pullStackInSlot(<сторона где сундук>, <номер слота из инвентаря игрока>, <номер слота сундука>, <количество перемещаемых предметов>) --перемещает предмет из инвентаря игрока в сундук :/ pushStackInSlot(<сторона где сундук>, <<номер слота сундука>, <номер слота из инвентаря игрока>, <количество перемещаемых предметов>) --перемещает предмет из сундука в инвентарь игрока :/ getStackInSlot(<номер слота из инвентаря игрока>) --возвращает таблицу с информацией о содержимом слота из инвентаря игрока Связыватель инвентаря :/ - прибор который связывает инвентарь игрока с компьютером, то есть через него можно программно работать с инвентарем активировавшего его игрока. Работает независимо от местоположения игрока. Удобная штука для быстрой замены комплекта инструментов или например для быстрого очищения инвентаря от всякого хлама. Поддерживает следующие методы: pib --название компонента getTargetName() --возвращает ник привязанного игрока isConnected() --возвращает true/false если игрок доступен для работы, короче онлайн checkBinding() --проверяет привязку к игроку. Возвращает true/false pullStackInSlot(<сторона где сундук>, <номер слота из инвентаря игрока>, <номер слота сундука>, <количество перемещаемых предметов>) --перемещает предмет из инвентаря игрока в сундук :/ pushStackInSlot(<сторона где сундук>, <<номер слота сундука>, <номер слота из инвентаря игрока>, <количество перемещаемых предметов>) --перемещает предмет из сундука в инвентарь игрока :/ getStackInSlot(<номер слота из инвентаря игрока>) --возвращает таблицу с информацией о содержимом слота из инвентаря игрока :/ Чатбокс - прибор позволяющий отправлять и получать сообщения из игрового чата. Имеет ограничение по радиусу действия и не может отправлять личные сообщения. chatbox --название компонента События: chat_message --Агрументы - адрес чатбокса, Ник игрока, сообщение chat_command --Возращает данные те же что chat_message. Однако вызывается только в том случае, если первый символ в сообщении был #. Кроме того, такие сообщения не видны в чате (только в чатбоксах). Поддерживает следующие методы: getRadius() --возвращает установленный радиус передачи сообщения getMaxRadius() --возвращает максимальный радиус передачи сообщения setRadius(<дистанция>) --устанавливает радиус в котором будут видны сообщения say(<Текст>) --выводит в чат сообщение Креативный чатбокс - креативный прибор позволяющий отправлять и получать сообщения из игрового чата. Не имеет ограничения по радиусу действия, умеет отправлять личные сообщения. admin_chatbox --название компонента События: chat_message --Аргументы: адрес компонента, id измерения, playerPosX, playerPosY, playerPosZ, дистанция до игрока, имя игрока, сообщение. chat_command --Возращает данные те же что chat_message. Однако вызывается только в том случае, если первый символ в сообщении был #. Кроме того, такие сообщения не видны в чате (только в чатбоксах). Поддерживает следующие методы: say(message: string) --Отправляет всем игрокам сообщение message. tell(name: string, message: string) --Отправляет сообщение message игроку с ником name. Есть еще парочка блоков, но увы они отключены внутри мода, поэтому посмотреть на них не удастся. Кому интересно, это телепорт - который умеет отправлять не только существ, но и блоки(тех же роботов), большой конденсатор - просто батарейка с запредельной емкостью, она используется как накопитель энергии для телепорта. На момент написания статьи мод имеет версию OpenTechnology-0.6.17. Не все описанные блоки работают, не буду перечислять все проблемы этого мода, просто на каждой неработающей детали или функции поставлю знак ":/", надеюсь автор мода прочитает эту статью и постарается починить все, что неработает. Собственно программируйте, разрабатывайте новые интересные схемы и думаю мод OpenComputers вместе с аддоном OpenTechnology вам в этом очень помогут. А с вами был Asior и до скорых встреч на проекте Computercraft.ru
- 12 ответов
-
- 6
-
-
- opentechnology
- обзор
-
(и ещё 1 )
Теги:
-
Да как карьер он работет. Выведи к крайней угловой точке за приватом, заставь его слопать пару алмазных сундуков и поставить их (чтобы админ не засек тебя по логам), далее разворот и самый базовый карьер с указанием размера ямки, длины и ширины
-
Хмм, странно, раньше как-то работало. Похоже что-то изменили. Ну да ладно, поработаем тогда велосипедокостылестроением. local event = require("event") local modem = require("component").modem modem.open(225) --порт по которому идет прием function onChatMessage(mass, s1, s2, s3, s4, s5, s6) print(mass) print(s1) print(s2) print(s3) print(s4) print(s5) print(s6) end event.listen("modem_message", onChatMessage)
-
Кстати да, установи старую версию ОС какую-нибудь и радуйся тому что данная опция работает.
-
это не поможет. Вообще. Никак. Сказано же вырезали такую опцию. Так что крутись как-нибудь по другому, вон @@Fingercomp предлагает вариант свой, его пробуй. Или вообще не давай доступа шаловливым ручками пользователей к клавиатуре. Можно еще бесконечный цикл запустить без sleep тогда вообще фиг отрубишь. Или на версию постарее ОС откатиться.
-
@@kaka888, уже создают программу по вашему желанию. Функции конечно там другие, но программа в активной разработке, можете ознакомиться http://computercraft.ru/topic/2394-upravlenie-robotom-v-fone/ Насчет кода, он и правда не рабочий. Я просто вырвал его от нажатия на экран. Код поправил, там модем надо было подрубить и порт открыть
-
Вернее сказать вообще не сидит. Я пару лет тому назад разыскивал хоть один сервак с СС, итог - 3 сервера. Два из которых я и прогер уронили, один из них пришлось вообще вайпать, после моей шутки, а на последнем сервере, после того как я повторил его падение, просто усложнили крафт компьютеров, отложив падение сервера до того момента, как игроки до сложных крафтов дойдут. ОС теперь всем рулит!
-
код программы загружался через шелл и дальше робот пер крушить все и складывать в сундук, ну что за приватом. Как я уже говорил "ямка вместо дома" не запускалась, она так и осталась в планах ушедшего в небытиё сервера. Хотя в сингле все работало как надо. Добавляй туннельную. Но уже украсть робота не выйдет, карты то делаются парными, а я как-то не уверен что игрок сам отдаст её тебе.
-
А затем, что все все прям компоненты предусмотреть в своей программе не сможешь, там хоть бы основные прописать. А через шелл можно запустить все незадокументированные в программу модули робота, например тот же генератор энергии или чатбокс запустить. Или радар, если он стоит, чтобы потихому осмотреться есть рядом кто или как.
-
И еще одно улучшение, добавь в начало программы переменную содержащую номер порта. Это позволит управлять конкретным роботом, а то если программа установлена на 2-более роботах, то начинается парад роботов на 400 метров от оператора. Ну и в программу для планшета так-же добавь возможность запуска с указанным портом, думаю разберешься как это сделать. > Tablet.lua 45 И еще одна фишка, почитай вот эту тему, Как включить компьютер если заняты руки можно добавить разрешение на удаленный запуск. Так-же совсем забыли про редстоун, а как робот будет хозяина то запускать в дом? Вообще, как я думаю надо собрать своего рода универсальную программу, тоесть в роботе будет полная база по подключению тех или иных устройств, а на планшете доступ к ним. Например, в роботе есть красная плата, он передает данные на планшет, что такая карта есть и на планшете появляются опции разрешающие работу с ней. Или наоборот, красной платы нет, значит и опции для работы с ней вообще не нужны, следовательно не показываем их пользователю и все. Это конечно сложно, придется пересмотреть всю систему приема/передачи данных, но в разы удобнее. Далее рекомендую ознакомиться с темами: http://computercraft.ru/topic/982-biblioteka-dlia-raboty-s-mobilnym-mostom-klien/ http://computercraft.ru/topic/2028-internet-modem-dlia-openos-cherez-irc/ Это должно помочь в управлении роботом не только через wifi. Может добавить еще опцию управления роботом через шелл? Вот один из вариантов реализации такого http://computercraft.ru/topic/744-planshetnoe-upravlenie-robotom/ Или вот, можно вытащить из управления дроном, там вообще чисто на шелле управление https://hastebin.com/etulijoyox.cs P.S. Не обновляй код на пастебине, просто под описанием темы добавь список версий, в спойлеры внеси, что добавил/пофиксил. Так будет интереснее наблюдать за прогрессом развития программы.
