Taruu
-
Публикации
62 -
Зарегистрирован
-
Посещение
-
Победитель дней
4
Сообщения, опубликованные пользователем Taruu
-
-
Вот универсальный варик
https://ru.stackoverflow.com/questions/884410/Создание-рандома-с-шансом-выпадения-
1
-
-
А да. Чет проморгал )
-
А можно ли лаги сервера ловить при помощи реального времени?
Или же там тоже будут жуткие неточности?Просто программа може проверять TPS после сна, перед выполнением программы.
Запросить текущее реальное время, поспать N число тиков и посмотреть сколько времени прошло и сравнить с ожидаемым результатом. -
3 минуты назад, Bs0Dd сказал:Я пытался это сделать еще на этапе написания кода, но увы, ужать все нужные функции (библиотек то у нас нету без OpenOS) + код самого замка до 4Кб не вышло. Может конкретный садо-мазо и смог бы
Да и в любом случае, где-то нужно хранить настройки и список доверенных пользователей (которые могут войти по отпечатку), а области в 256 байт у биоса для этого будет маловато
Вообще, если туго с жесткими дисками, никто не мешает записать кодовый замок на дискету и грузиться с нее. Но тогда при доступе к диску, дисковод, конечно же, будет жужжать.
Если проблема с дисками,
то можно вообще твою шнягу с сетевыми дисками взять.
И будет прям едина сеть терминалов доступа.
Не пробовал так?
И еще наверно можно написать порогу инициализатор которая работает тупо с дискеты или же хранить на дискете список пользователей(тогда не будет проблем с местом и можно ставить только биос). Ну фич можно много сделать при желании...
Хотя в итоге дешевле жесткий диск сделать :/ -
А сие программу есть шансы ужать до биоса? Или уже сада-маза получается?
-
1
-
-
@Asior В доках дискорда все описано. Читаешь раздел где написано про ботов ихмо API у юзера и у бота одна и та же, главное сказать что ты якобы через браузер ихмо дискорд не любит самописанные клиенты.
https://discord.com/developers/docs/intro -
8 часов назад, nikitaaaaa сказал:При запуске или когда? И да в дисе отправил запрос.
-
[23:43:29] [Server thread/ERROR] [org.tlauncher.skin.cape.util.PreparedProfileManager]: couldn't calculate size of the cape java.lang.NoClassDefFoundError: net/minecraft/client/renderer/texture/DynamicTextureТак что вопрос откуда ты взял моды если тут явно мод для клиента... Который лаунчер скорее всего сам и впихнул
"TLSkinCapeHookLoader (tlskincape1.12.2-1.4.jar)" Попробуй его удалить -
@Totoro А почему разная реакция на запуск программы через ./ и просто напрямую ?_?
Если запускать напрямую то он говорит что нет компонентов. и это nil значение если через палку то все норм :/-
1
-
-
1 час назад, Totoro сказал:Спасибо за отзыв!
Добавлять компоненты можно уже и сейчас.
Дело в том, что ядро эмулятора - это Scala-библиотека. (Теоретически можно подключить и к Java-проекту.)
Как раз в ядре компоненты и определены.
Подключаете ядро к своему проекту, как обычную библиотеку, и пишете любые компоненты какие хотите.
Там довольно простая система классов и можно брать как пример уже готовые компоненты (лежат в пакете entity).
Разумеется для этого придётся знать Java или Scala.
Я не уверен что имеет смысл делать какой-то другой механизм, так как помимо ядра вам в любом случае понадобятся и какие-то интерфейсы к вашему компоненту, то есть надо ещё и специальную разметку придумывать... Так что "моддинг" эмулятора без использования Java или Scala грозит быть слишком сложным.
Я кстати несколько багов нашел только я не проверял на Linux и на 11 жабе. Как проверю кину на gitlab.
-
Просто респект. Теперь смогу всякие упорные шняги писать
без отвлечения на тяжелый майн. Отдельный респект за возможности виртуальной сетки.-
1
-
-
В коде OpenOS Есть вообще упоротый парсер для аргументов :/
Скрытый текстfunction internet.request(url, data, headers, method) checkArg(1, url, "string") checkArg(2, data, "string", "table", "nil") checkArg(3, headers, "table", "nil") checkArg(4, method, "string", "nil") if not component.isAvailable("internet") then error("no primary internet card found", 2) end local inet = component.internet local post if type(data) == "string" then post = data elseif type(data) == "table" then for k, v in pairs(data) do post = post and (post .. "&") or "" post = post .. tostring(k) .. "=" .. tostring(v) end end local request, reason = inet.request(url, post, headers, method) if not request then error(reason, 2) end return setmetatable( { ["()"] = "function():string -- Tries to read data from the socket stream and return the read byte array.", close = setmetatable({}, { __call = request.close, __tostring = function() return "function() -- closes the connection" end }) }, { __call = function() while true do local data, reason = request.read() if not data then request.close() if reason then error(reason, 2) else return nil -- eof end elseif #data > 0 then return data end -- else: no data, block os.sleep(0) end end, __index = request, }) end
Но Headers вообще никто не трогает ...
Так то еще есть выбор метода вот может его нужно и указать.
-
В 29.08.2020 в 09:23, ov3rwrite сказал:И как же вы проверяли?Лично у меня возник код 400(Bad Request) при отправке запроса, и я ТОЧНО знаю что дело именно в Content-Type.Тем более, я отправлял одни и те же данные с программы на Python и на Lua, где питон возвращал все корректно, а луа опять же возвращал 400(проверял на ocelot desktop).
инфа из непроверенных источников:
В коде самого мода есть строка на тему что headers выкл или вкл.
Может дело в настройках?
@Callback(doc = """function(url:string[, postData:string[, headers:table]]):userdata -- Starts an HTTP request. If this returns true, further results will be pushed using `http_response` signals.""") def request(context: Context, args: Arguments): Array[AnyRef] = this.synchronized { checkOwner(context) val address = args.checkString(0) if (!Settings.get.httpEnabled) { return result(Unit, "http requests are unavailable") } if (connections.size >= Settings.get.maxConnections) { throw new IOException("too many open connections") } val post = if (args.isString(1)) Option(args.checkString(1)) else None val headers = if (args.isTable(2)) args.checkTable(2).collect { case (key: String, value: AnyRef) => (key, value.toString) }.toMap else Map.empty[String, String] if (!Settings.get.httpHeadersEnabled && headers.nonEmpty) { return result(Unit, "http request headers are unavailable") } val request = new InternetCard.HTTPRequest(this, checkAddress(address), post, headers) connections += request result(request) }Хотя в таком случае он должен сказать фи... и не делать запрос...
Стоит прочекать... -
10 часов назад, ArtHacker сказал:Могу попробовать реверс инженеринг магазина и переписать сервер (с открытым исходным кодом. Хотя хост мне оплачивать трудно, так что понадобится помощь коммунити.
Могу захостить если много не кушает. Ибо для себя держу веб сервер и явно будет не жалко поднять.
-
2
-
1
-
-
Мне одному кажется что можно просто взять либу на XML to tables написанную на Lua.
Засунуть ее в компы и после тупо сделать браузер по типу Lynx. Он и JS не могет и вроде CSS тоже не особо читает
(хотя кто то к компам прикрутил JS).
Зато просто открыть и попытаться прочитать текст уже можно будет. Что явно лучше чем читать голый html.
Так то если сделать такую основу то можно и до уровня Elinks допилить.-
1
-
-
8 часов назад, eu_tomat сказал:Сервер можно положить с помощью как CC, так и OC. CC немного облегчает задачу, но и OC тоже имеет достаточный потенциал. Для этого не нужны даже 8 человек, достаточно и одного игрока, если тот поставит перед собой такую задачу. И проблема не столько в количестве самих компов, сколько в количестве и качестве лагодромав, запущенных на компах.
Те из разряда те ошибки которые я со своими часами делал?
-
Вопрос прост. Что лучше ставить на сборку на Майн 1.12.2 версии? Ибо идёт вопрос может ли нормально сервер терпеть кучу компов на OC? Ибо друг узнавал и ему сказал что 8 человек взяло и убило серв очень быстро. Буду рад узнать опыт от админов.
-
39 минут назад, Teen_Romance сказал:А вот второй метод request возвращает объект у которого есть метод isDone который говорит готов ли предмет и в моем случае он говорит, что не готово и причину(нет ресурсов), но каких именно, не говорит
сейчас сам гляну... надо AE2 поставить
-
Вроде на официальных доках есть функция getItemStack и она свойственна объекту Craftable и в нем кажись таблица чего нам нужно. Но стоит проверить.
Я еще потом сам попозже гляну.
https://ocdoc.cil.li/component:applied_energistics#craftable -
22 часа назад, eu_tomat сказал:Не совсем. Так файл не закроется. Вот API для компонента Filesystem. Можно закрывать, например, таким кодом:
fs.close(fs.open("/time", "w"))
хм сейчас проверю
-
Исправил код вроде теперь все правильно...
-
3 часа назад, eu_tomat сказал:В программе присутствует ошибка. Из-за неё 96% попыток обновлений времени являются холостыми, и поэтому фактические обновления происходят со средней частотой примерно 4 раза в секунду. При этом интервалы обновления неравномерны, они заданы случайными факторами.
Если не закрывать открытый файл, то последующие попытки его открытия будут безуспешными до тех пор, пока файл не будет закрыт сборщиком мусора.
Закрытие файла + задержка между обновлениями в 1/4 секунды дадут гораздо более приятный глазу эффект. И нагрузка на сервер снизится раз в 30.
Когда освобожусь поправлю.
-
Только что, eu_tomat сказал:Какие именно механики?
C тактированием компов. И обновления их элементов.
-
2 минуты назад, eu_tomat сказал:Без задержки эти часы будут пытаться обновить показания с частотой около 120 раз в секунду. А сервер сможет обновить картинку на мониторе с частотой не более 20 раз в секунду. Значит, добавив задержку всего в один тик, можно без заметного ухудшения снизить нагрузку на сервер в 6 раз. Да и 20 раз в секунду нет особого смысла обновлять часы. Уже при частоте около 4 раз в секунду обновление перестаёт играть заметную роль.
У меня есть код где один экран и его обновление на миллисекунды работает нормально...
Можно мне умный текст где все эти механики описаны? Буду очень признателен.


Сундучно-траспозерное хранилище
в Программирование
Опубликовано: · Изменено пользователем Taruu
Можно ли это заменить на Database upgrade?
Или фича с computerHash тут не применима?