lokin135
Пользователи-
Публикации
58 -
Зарегистрирован
-
Посещение
-
Победитель дней
4
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя lokin135
-
Снова привет! Когда-то давным-давно увидел я дома у Fingercomp'a очень интересную хреновину на мониторе, которая показывала расход/прирост энергии в системе. И вот тогда я захотел накодить нечто подобное. НО! Был я тогда еще тем говнокодером, по этому подобное я не мог сделать. Но время шло, учился кодить и вдруг внезапно вспомнил я о той штуке. Закодил, поставил и забыл. Но вот еще время прошло! И снова смотрев на свою папочку с программами наткнулся на свой теперешний говнокод. Ну и переписал с новыми фичами (в виде поддержки полупиксилов, что принесло более красивый вид и точность графика) и адекватным кодом (хотя в некоторых моментах я все-же не знал как лучше поступить, и возможно сделал не совсем правильно) : Слева - старая версия проги, а справа - новая. График показывает процент энергии от объема, выделяя цветом разницу доступной энергии прошлой точки графика: Point.Y = math.ceil((energy / capacity) * ((ResY-BarY) * 2)) Пройдемся по настройкам: Цвета настраиваются ровно так-же, как и в прошлой проги. local ResX, ResY = 100, 50 local TimeSleep = 2 local BarY = 3/1.5 local lastX = -1 local drawBar = true local nameComponent = "mfsu" Первые переменные ResX и ResY - разрешение экрана. Можно спокойно настраивать, но только отключив бар сверху. TimeSleep - время ожидания после прорисовки столбца. В общем скорость движения графика. BarY и lastX лучше не трогать) drawBar - отвечает за отображение графика сверху. nameComponent - а вот эта переменная позволяет подключить не только MFSU'шки (да-да, можно подключить хоть 60 их к серверу), но и другие энергохранилища из IC2. Ссылочки на программу: https://lokin135server.ru/PublicRepository/mfsuDrawerEU/mfsu4M.lua (да да, я так и не разобрался с кодировкой) pastebin get XygafBBK Прошлые версии можете глянуть на сервере, но сразу предупреждаю: вы можете получить психическую травму от моего старого кода лучше не смотрите :P Жду конструктивной критики. Не, ну идеального кода не бывает, верно?
-
Там мои прожки валяются, но далеко не все) Основную массу стоит переписать - кол-во говнокода многовато относительно последних прог))
-
В сетевых технологиях я конечно нуб, по этому могу совсем чутка дать конструктивной критики: 1. В некоторых местах нужно использовать Логические выражения. (51 строка) 2. Почему переменные для настройки не локальные? 3. Я бы сделал отдельные функции "init" и "main", а не вызывал функции где попало. 4. Ну и обработка ошибок тоже сделана не в лучшем виде. Я бы предпочел занести все ошибки в массив, пробегался по ошибкам через for и предпринимал действия исходя от порядкового номера ошибки. (Хотя... думаю есть способ лучше)
-
Хелло computercraft! Хочу поделится своей программой по мониторингу состояния 54 (максимум) реакторов (6 блоков по 9 реакторов), которую меня попросили закодить. Вот как все это выгдядит (немного промахнулся с разрешением, по этому по краям не симметрично, но вроде не так сильно в глаза бросается): Цвет напряжения который выдает реактор и текст "Реактор №1" выделяется красным или зеленым, в зависимости от состояния активности: если реактор выдает 1 и больше EU/t (другими словами - он работает) - цвет зеленый, в противном случае - красный. Так-же в другом углу окна отображается нагрев: если он больше 50% - цвет текста становится оранжевым, но если менее - зеленый. Стоит сказать, что вся программа работает без дополнительных библиотек (я имею в виду библиотеку от ECS, например. т.е. сторонние), т.к. я ну прям очень не люблю таскать с собой не нужный хлам. Да и еще нужен будет установщик для всего этого. Обошелся только тремя requir'ами: component, term и event. Так-же я сделал отдельный массив для удобного редактирования цветов: ИМХО это лучший вариант для хранения цветов программы. (Дал название переменной color для более логичного кода: "color.UpBar" лучше выглядит чем "colors.UpBar". Но опять-же, ИМХО) С этой штукой будет не проблема сделать графику программы под цвет стены, например. Да и я не дизайнер или художник, что-бы идеально подбирать цвета)) Теперь счет настройки программы. Для коннекта реактора нужно поставить вплотную адаптер к нему и ввести 3 (можно больше или меньше, но мне по душе именно так) первых символа адреса адаптера (нужно тыкнуть по нему анализатором, что-бы узнать полный адрес) в спец. массив с этими адресами. Можно было-бы автоматически распределять реакторы по блокам, но заказчику нужно было индексировать самому. Ну, вроде все рассказал. В коде (и в сообщении, ага) могут быть грамматические (не давно узнал, что английское слово "адрес" пишется как "address", а не "adress"... я раньше постоянно так писал и допускал ошибку), так и логические ошибки (имею в виду бесполезную проверку на nil, например). Помидорами не кидайтесь, но советами и конструктивной критики я буду очень рад. Ну и код выложил на свой сервак и на пастебин: https://lokin135server.ru/PublicRepository/ReactorStatusAndMFSU/ReactorStatus.lua https://pastebin.com/JUKJXK97 Команда для загрузки: pastebin get JUKJXK97 MonitReactors.lua На основе этой проги я еще сделал рендеринг состояния MFSU'шек, но эта совсем другая история.. (код там-же найдете)
-
Дану, чем ближе к реальному OC - тем лучше.
-
Слушай... а как на счет белых IP? У тебя он ванишом стиран? Мой провайдер говнюГ, у роутера и конечного пользователя (меня) апишки не совпадают, и по этому мне открыть сервачек на прямую, так скажем, никак((((((((((
-
все-же другим новичкам будет полезно.
- 9 ответов
-
- 1
-
-
- Замок
- OpenSecurity
-
(и ещё 1 )
Теги:
-
Не совсем с тобой согласен (зачем так?!) Да, все через pcall() делать совсем убого, но подключать библиотеки Я считаю нужно вот так: local computer = require("computer") Хоть программа может быть и в дроне, но local никогда не крашила проги
-
Ну что-ж, все мы с чего-то начинали. Давай я тебе подскажу твои ошибки: 1. Объявляй локальные переменные и давай им четкие названия: c = require'component' gpu = require'component'.gpu -> local comp = require("component") local gpu = comp.gpu 2. Используй локальные функции. При программировании больших программ (я например: 200+ строк) это очень сильно поможет: local function Draw() gpu.setBackground(0xFFFF00) gpu.fill(1,1,24,5," ") gpu.setBackground(0xBDBDBD) gpu.set(5,3," ") gpu.setForeground(0xFFFF00) gpu.set(5,3,"Проведите карту.") end 3.Используй отступления (пример не очень, т.к. лучше использовать логические выражения. кто-то писал на форуме): ... if type == "magData" then h = 1 else h = 0 end ... -> if type == "magData" then h = 1 else h = 0 end Ну и на последок: лучше избегать бесконечные циклы. Так-же лучше выносить в отдельную переменную числа, строки и т.п. (в данной программе, пароль, т.е. string) в начало кода программы, что-бы конечному пользователю было проще ее настроить.
- 9 ответов
-
- Замок
- OpenSecurity
-
(и ещё 1 )
Теги:
-
не актуально, вот полу-рабочий вариант (часы/минуты подкоректировать нужно) https://pastebin.com/vCihbKm1
-
спасибо
-
нашел api_post.php. не понял что за что отвечает. (разжуй мне и подай на блюдце)
-
ого а там даже комменты есть
-
Ребята, нужна помощь с заливкой логов на pastebin. можно просто отрывок кода-примера заливки файла (лог-файл) на определенный ID. Возился с internet API, но ничего не получилось, т.к. с всякими HTTP протоколами и прочим никогда не возился. А вообще можно реализовать вышеописанное?
-
и кодь в sublime text 3, а не в редакторе текста OpenOS'ки. http://www.sublimetext.com/3
-
такое чувство, что ты не знаешь что нужно компоненты подключать... require('component').redstone.setOutput(2,15) а не или же: local com = require('component') local rs = com.redstone rs.setOutput(2,15)
-
хм... на счет звуков не знаю, но тебе еще работать и работать . http://imgur.com/a/mcT8p
-
А что такое EEPROM и где оно живет?
lokin135 прокомментировал Totoro запись в блоге в Totoro Cookies
name, _, sender, _, _, message = computer.pullSignal(2) А зачем нам 'отправитель'? Он-же нигде не используется...- 21 комментарий
-
- eeprom
- контроллер
-
(и ещё 1 )
Теги:
-
хорошо, спасибо.
- 16 ответов
-
- Server
- OpenComputers
-
(и ещё 1 )
Теги:
-
понял
- 16 ответов
-
- 1
-
-
- Server
- OpenComputers
-
(и ещё 1 )
Теги:
-
Спасибо вам друзья! все, понял. Многое исправил. Но что сделать мне с этим постом-то? или Администраторы сами эту бяку удалят?
- 16 ответов
-
- Server
- OpenComputers
-
(и ещё 1 )
Теги:
-
Все-же, я выложил сюда потомучто все "это", как я считаю, нужно доработать. Хотя стоило в раздел библеотек выкладывать... ну даладно)
- 16 ответов
-
- Server
- OpenComputers
-
(и ещё 1 )
Теги:
