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

Вся активность

Этот поток обновляется автоматически     

  1. Последний час
  2. Не силён в программирований на луа в опен компуктерс но вот пример навыков и я знаю что я нуб в этом test.lua
  3. Думаю Сделать Свою новую ОС На основе моей настоящей только она на виндовс 98 а эта будет типо того же только Для Опен Компьютерс Пока Идёт Разработка ядра В планах GUI оболочка Редакторы и магазин приложений
  4. Вчера
  5. Пытаясь написать свою версию функции print(), я тоже интуитивно применил ipairs({...}). И т.к. функция предполагалась универсальной, я для теста подал в неё аргументы разных типов. В том числе и nil. На нём-то обработка и завершилась, хотя после nil были и другие аргументы. Я подсмотрел код print из openOS, и там обработка аргументов выглядит примерно так: function print(...) local args = table.pack(...) for i = 1, args.n do str = args[i] end end Решение показалось мне недостаточно красивым, и я попытался найти что-то более приятное глазу. Лучшего решения найти не удалось, но поиск привёл меня сюда. Полагаю, универсальное решение пригодится читателям этой темы.
  6. Я в одном блоке от дрона стоял
  7. Я неудачно задал вопрос. Он заключался в том, как далеко твой планшет находился от дрона в тот момент, когда программа просила подойти ближе.
  8. Оно не пишет, но я уже понял что проблема в том, что у меня разные сетевые карты
  9. А на каком расстоянии от планшета до дрона просит подойти?
  10. Что делать если при сопряжении выдаёт ошибку. Пишет что надо подойти ближе
  11. Последняя неделя
  12. BrightYC

    Командная строка

    это решил я достаточно кардинально
  13. ECS

    Командная строка

    Во магия, а! У меня даже инсталлер вылетал при инициализации event-либы из-за постоянных конфликтов с местными "потоками", которые дергают pullSignal почём зря. Хотя это было на старых версиях опеноси, возможно, сейчас что-то фиксанули. Ну и мелочи типа отсутствия глобальных component/computer/unicode, которые опеноська зачем-то скрывает из _G, тоже изрядно напрягали
  14. BrightYC

    Командная строка

    а они должны были быть? прямо openos'овский пуллсигнал внутрь и пробросил..
  15. ECS

    Командная строка

    Кек, зашибенски. А как ты решил проблемы вылетов подмененного опеносевского computer.pullSignal в песочнице?
  16. @eu_tomat Ок. Глянь что у тебя было в наработках. Посмотрим что было и что можно придумать. А так я хз стоит ли лезть так глубоко. Ибо может оказаться что результат будет тот же.
  17. ECS

    Командная строка

    Нет, т.к. оська уже установлена. Тут полная аналогия с реальными компами: ставишь несколько осей на несколько загрузочных томов, а потом через биос выбираешь приоритетный том для загрузки. А биос можно использовать либо штатный, либо сторонний - в зависимости от предпочтений
  18. Lex

    Командная строка

    после перепрошивки, опять pastebin run 0nM5b1jU ? Сори за глупые вопросы, не все в мозайку собрал еще.
  19. Осталось лишь решить проблему шума. Интервалы времени длительностью 1.6629999990414e-06 вообще ни о чём не говорят на фоне шума измерений. Надо повторять эксперимент в цикле с достаточным количеством итераций. Например, для проверки одноразового вызова math.sin я бы использовал такие циклы: for i=1,1e6 do local sin = math.sin x = sin(3) end for i=1,1e6 do x = math.sin(3) end Но этого тоже недостаточно. Есть разброс значений. Поэтому надо повторять эксперимент какое-то количество раз. Какое именно? Надо вспоминать основы статистики. И если у кого-то эти воспоминания достаточно свежи, дайте совет. Для дальнейших рассуждений по теме я порылся в своих прошлых наработках, но оказалось, что там я застрял, не дойдя до конца. Но какая-то информация есть. Сервер нагружен неравномерно. И для выравнивания замеров имеет смысл чередовать циклы экспериментов: Выполнили в цикле один код, сделали короткую паузу, выполнили цикл со вторым кодом, сделал паузу, выполнили цикл с третим, и т.д., по кругу. Сервер бывает нагружен настолько неравномерно, что некоторые замеры аномально отличаются от среднего значения в болшьую сторону, и их надо бы отбрасывать. Мы же не характеристики сервера измеряем, а сравниваем эффективность кода. Но тут снова нужно аккуратно применять статистику. В своих прошлых экспериментах я пришёл к выводу, что итоговый код окажется достаточно сложным, что его проще будет вынести в отдельную библиотеку, аккуратно выполняющую замеры. Один я не готов оценивать глубину этой кроличьей норы, но @Taruu, мы можем попробовать написать такую библиотеку вместе. Также я прошу откликнуться и других форумчан. В тонкой сфере измерений аудит кода никогда не будет лишним. Также нужны идеи. Возможно, всё можно сделать проще, чем мне кажется. А я попробую в ближайшие дни найти все старые наработки и скомпилировать их во что-то определённое.
  20. Небольшое обновление: добавлен автоматический скейлинг. Работает "на лету".
  21. Asior, спасибо еще раз, буду ждать, пока админы поднимут сервер и профиксят что-то
  22. а, точно, компьютер будет недоступен, и жрать он будет энергии в разы больше, 100 рф на радар кушается при скане. Обозначений о том что все работает увы я не поставил, дальше уже сам
  23. Спасибо за оперативность! Пока нет возможности попробовать, как только скрафтил детектор и подключил к системе, она наглухо завис
  24. Для сбавления нагрузки на сервер некоторые проекты уменьшают число тиков для прогруженных, но без игрока чанков. Лично я сталкивался с убавлением тиков пополам на 2 чанке от игрока и полной заморозкой на 3 чанке.
  25. local c = require("component") local red = c.redstone local chat = c.chat_box local radar = {} local temp = 0 local sideRed = 1 --сторона куда подать редстоун local admin = {'User', 'Asior'} --список админов local zp = c.invoke red.setOutput(sideRed, 0) for k, p in pairs(c.list("radar")) do radar[#radar+1] = k end local function seachAdmin(name) for i=1, #admin do if name == admin[i] then return true end end return false end local function scan(num) return zp(radar[num], "getPlayers") end while true do for i = 1, #radar do err, temp = pcall(scan, i) if err then if temp[1] ~= nil then for j=1,#temp do if seachAdmin(temp[j].name) then red.setOutput(sideRed, 255) chat.say('Приветик, '..temp[j].name..'! Выходи не бойся, я не кусаюсь :D') print('Засек админа!') break end end end end end os.sleep(10) red.setOutput(sideRed, 0) end Поддерживает мультирадары, тоесть эти радары чуют в радиусе 8 метров, соответственно можно натыкать кучу радаров, так чтоб их зоны работы не пересекались (можно и пересекать) чтоб захватить больший объем на скан. Если начнут уничтожать радары, то программа продолжит работать дальше, просто пропуская уничтоженные. Ну все настройки я вроде прокомментировал
  1. Загрузить больше активности
×
×
  • Создать...