Перейти к содержанию

Kimapr

Пользователи
  • Публикаций

    24
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

Kimapr стал победителем дня 31 января

Kimapr имел наиболее популярный контент!

Репутация

9 Обычный

Контакты

  • Сайт
    idonthaveanywebsite.com

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. И помоему мы далеко отошли от математического сеттинга. Пауки тут какие-то появились, да и знак интеграла куда убежал?
  2. А ты уже потестил новую версию (номер версии я не менял)? Мне интересно твоё мнение о том, как хорошо (/плохо/ужасно/идеально и т.д) всё реализовано.
  3. Я решил добавить красоты. Запилил частицы, кто-нибудь вообще играть в эту игру будет? Помоему, никто не видит этого шума.
  4. Лицензия у игры забавная... Делайте что хотите, пока ваши измененные копии также имеют другое имя.
  5. Уже перестали что ли? Жаль, думал будет что-то годное... ☹️ P.s. [offtopic] Может мне тоже туда что-нибудь запилить? Врагов, например [/offtopic]
  6. Добавил заставку при запуске. Открыл репозиторий на gitlab. Сейчас выложу туда то что есть. Одному скучно программировать!
  7. Нет, я действительно говорил про /boot/, но сам я сделал через /lib/core/boot.lua. Помоему если уж ты и ставишь свой скрипт в /boot/, ты должен назвать его так, чтобы он выполнялся последним, т.е. ПОСЛЕ других бутскриптов. Например, название "zz_tprotect_init.lua" прекрасно подойдет, т.к. z - последняя (или одна из таковых) буква английского алфавита. В своей библиотеке я нарочно допустил брешь, так что если в метатаблице защищаемой таблицы (не зеркальной!) объявлена функция __newindex, то вместо ошибки будет выполнена она. Учитывая это, в __newindex можно реализовать защиту некоторых полей тем, что если их ключ совпадает с поданным в функцию ключём, то ничего не делать, или кинуть эррор.
  8. А можно скриншот ошибки? Я патчил OpenOS 1.7.3, изменив /lib/core/boot.lua: ... local package = dofile("/lib/package.lua") local tprotect = dofile("/lib/tprotect.lua") do -- Unclutter global namespace now that we have the package module and a filesystem _G.component = nil _G.computer = nil _G.process = nil _G.unicode = nil -- Inject the package modules into the global namespace, as in Lua. _G.package = package -- Initialize the package module with some of our own APIs. package.loaded.tprotect = tprotect package.loaded.component = component package.loaded.computer = computer package.loaded.unicode = unicode package.loaded.buffer = dofile("/lib/buffer.lua") package.loaded.filesystem = dofile("/lib/filesystem.lua") package.loaded.color = dofile("/lib/color.lua") -- Inject the io modules _G.io = dofile("/lib/io.lua") end ... status("Initializing system...") package.loaded.component = tprotect.protect(component) package.loaded.computer = tprotect.protect(computer) package.loaded.unicode = tprotect.protect(unicode) do local loaded=package.loaded local unloadable={component=true,computer=true,unicode=true,tprotect=true,filesystem=true} local raw_type=type function package.unload(name) assert(raw_type(name)=="string","bad argument #1 to package.unload (string expected, got "..raw_type(name)..")") if not unloadable[name] then package.loaded[name]=nil end end end package.loaded=tprotect.protect(package.loaded) _G.package=tprotect.protect(package) computer.pushSignal("init") -- so libs know components are initialized. require("event").pull(1, "init") -- Allow init processing. _G.runlevel = 1 if gpu and screen then gpu.setResolution(gpu.maxResolution()) end Здесь после всех бутскриптов запускается процесс защиты дефолтных либ OpenComputers, а также package. Сам tprotect уже себя защитил.
  9. И вообще, какого чёрта мы опустились до старта системы? Я вообще просто библиотечку для защиты таблиц сделал, а как её использовать - не моё дело (если я не являюсь пользователем, при разработке Kion - я являюсь им)
×
×
  • Создать...