Asummonster
-
Публикации
420 -
Зарегистрирован
-
Посещение
-
Победитель дней
12
Сообщения, опубликованные пользователем Asummonster
-
-
Ну, таймер это не совсем параллельные программы. Таймер просто позволяет вызвать одну функцию несколько раз с определенным периодом. А функцию, конечно, описывать до запуска таймера. А иначе, что таймер будет вызывать?
ну, не обязательно до таймера
можно же
event.timer(1, function() print("Hello world!") end)-
1
-
-
Звёздные войны
Разрешить вставлять в дронов селф-дестрак, и посылать их вражеские "корабли" уничтожать) -
Господи, Рид это тыщу лет назад делал.
-
В опеннет, вроде, и так встроен пинг
Ты не прав.
У меня стоит Debian, я знаю чем он занят, и все важные операции он делает с моего ведома. (Не знаю, как там у вас, виндузятников
)Что касается пинг-понга - это особенность реализации TCP/IP сетей. А не железа.
Вот если ты поднимешь OpenNet, ты можешь реализовать там команду ping, которая будет определять доступность узла сети.
А встраивать в мод, по сути в само "железо" сетевых передатчиков - это не правильно. Железо делает то, на что мы его программируем и не должно делать ничего постороннего.
-
Я не говорил прослушку. Всего навсего : сканер, что прощупывает каналы, от 0 до 65535 и выдаёт список открытых. Вот и всё.

В жизни, тоже не ставят - 100500 миллионов приёмников.

З.Ы. Можно даже 4 стойки поставить. И пускай каждая, гоняет по кругу свой диапазон(по-типу : 0x0000 - 0x3FFF, 0x4000 - 0x7FFF, 0x8000 - 0xBFFF, 0xC000 - 0xFFFF). Ну вы меня - думаю поняли.

Всмысле - список открытых портов?
-
То есть, отключаешь реген воды, ставишь мод на сито. Отсеял себе 2 меди, и пошёл афкашить на десять часов, ждать дождя
-
pastebin.lua глянь

pastebin.lua тоже идёт не в openos, а в интернет карте
-
1
-
-
Ты же понимаешь, что твоя "безопасная прогрузка" не будет работать хотя бы потому, что ты в самом начале загружаешь либу "internet", а она встроена в интернет карту, а не в опенось
-
Не все игроки в сингле программируют. Мне,например, хочется ещё и в чатик что-то иногда писать, друзьям показать, что я там накодил, или помощи попросить.
-
1
-
-
Может, вместо термалки иммерсив поставите? Там и поддержка компьютерная лучше, чем во всех других индустриальных модах, и куча красивых структур, экскаваторы всякие, дробилки, движки дизельные, печки дуговые и тому подобное. А что там, в той термалке? Ячейки какие-то да сервомеханизмы, которые халявно качают всё под ряд. Один плюс термалки - аддон для компов, который позволяет роботу тессаракт с собой возить. Да и разнообразие какое-то будет. Этот ИТ уже полтора года перерождаете, сколько можно?
-
А разве нет флага "public-blocks", для взаимодействия с определёнными блоками в привате?
-
-
ну ты и губу раскатал. А ты где-то раньше такое видел раньше в каких-то чатбоксах?
Как оказалось, это делает админский чатбокс.
-
А разве ОТ чатбокс не возвращает позицию игрока, который что-то напишет чат?
-
Как же вы надоели. То они жалуются, что руд нет, то им "хардкорности" не хватает.
Если дёшево - сиди неделю в шахте.
Если нет времени сидеть в шахте - иди и покупай.
Сколько можно ныть?
-
4
-
-
Ага, ююид другого телепорта.
А, ок, спасибо)
Было бы удобно давать им имена, что бы потом можно было к ним телепортироваться
-
Зачем?
Телепортер требует ююид, а не ник. Или я что-то не понял?
-
Ещё вопрос.
Как узнать ююид игрока? -
Здесь в переменную запишется только то, что функция выполнится, т.е. true в примере на скриншоте. Хотелось бы получить именно результат выполнения (из скриншота - 80 и 25).
res={pcall(load("return "..any))}
res[1]>>true
res[2]>>80
res[3]>>25
res={pcall(load("return "..any))} tmp="" for id=2, #res do tmp=tmp.." | "..res[id] end modem.broadcast(port, tmp)-
1
-
-
Вероятно, так и есть

Отдельно уточнить хотел, как можно вывести результат в броадкаст? Попробовал :
res=pcall(load(any))
Но броадкаст передал nil.
На сколько я понял,pcall возвращает результат выполнения(true/false) и ответ от load
И надо прикрепить return
Что то вроде result, res = pcall(load("return "..any))
-
file:flush в обычной записи файлов, насколько я знаю - не требуется. file:write и так все записывает.
Записывать-то он записывает, но не сохраняет.
file:close автоматом сохраняет файл и закрывает его
file:flush нужен, если ты не хочешь закрывать файл, но хочешь сохранить его(например, при логировании чего либо).
-
Никакого прелоада не нужно
Это vcomponent
local component = require("component") local computer = require("computer") local proxylist = {} local proxyobjs = {} local typelist = {} local doclist = {} local oproxy = component.proxy function component.proxy(address) checkArg(1,address,"string") if proxyobjs[address] ~= nil then return proxyobjs[address] end return oproxy(address) end local olist = component.list function component.list(filter, exact) checkArg(1,filter,"string","nil") local data = {} for k,v in olist(filter, exact) do data[#data + 1] = k data[#data + 1] = v end for k,v in pairs(typelist) do if filter == nil or (exact and v == filter) or (not exact and v:find(filter, nil, true)) then data[#data + 1] = k data[#data + 1] = v end end local place = 1 return function() local addr,type = data[place], data[place + 1] place = place + 2 return addr,type end end local otype = component.type function component.type(address) checkArg(1,address,"string") if typelist[address] ~= nil then return typelist[address] end return otype(address) end local odoc = component.doc function component.doc(address, method) checkArg(1,address,"string") checkArg(2,method,"string") if proxylist[address] ~= nil then if proxylist[address][method] == nil then error("no such method",2) end if doclist[address] ~= nil then return doclist[address][method] end return nil end return odoc(address, method) end local oslot = component.slot function component.slot(address) checkArg(1,address,"string") if proxylist[address] ~= nil then return -1 -- vcomponents do not exist in a slot end return oslot(address) end local omethods = component.methods function component.methods(address) checkArg(1,address,"string") if proxylist[address] ~= nil then local methods = {} for k,v in pairs(proxylist[address]) do if type(v) == "function" then methods[k] = true -- All vcomponent methods are direct end end return methods end return omethods(address) end local oinvoke = component.invoke function component.invoke(address, method, ...) checkArg(1,address,"string") checkArg(2,method,"string") if proxylist[address] ~= nil then if proxylist[address][method] == nil then error("no such method",2) end return proxylist[address][method](...) end return oinvoke(address, method, ...) end local ofields = component.fields function component.fields(address) checkArg(1,address,"string") if proxylist[address] ~= nil then return {} -- What even is this? end return ofields(address) end local componentCallback = { __call = function(self, ...) return proxylist[self.address][self.name](...) end, __tostring = function(self) return (doclist[self.address] ~= nil and doclist[self.address][self.name] ~= nil) and doclist[self.address][self.name] or "function" end } local vcomponent = {} function vcomponent.register(address, ctype, proxy, doc) checkArg(1,address,"string") checkArg(2,ctype,"string") checkArg(3,proxy,"table") if proxylist[address] ~= nil then return nil, "component already at address" elseif component.type(address) ~= nil then return nil, "cannot register over real component" end proxy.address = address proxy.type = ctype local proxyobj = {} for k,v in pairs(proxy) do if type(v) == "function" then proxyobj[k] = setmetatable({name=k,address=address},componentCallback) else proxyobj[k] = v end end proxylist[address] = proxy proxyobjs[address] = proxyobj typelist[address] = ctype doclist[address] = doc computer.pushSignal("component_added",address,ctype) return true end function vcomponent.unregister(address) checkArg(1,address,"string") if proxylist[address] == nil then if component.type(address) ~= nil then return nil, "cannot unregister real component" else return nil, "no component at address" end end local thetype = typelist[address] proxylist[address] = nil proxyobjs[address] = nil typelist[address] = nil doclist[address] = nil computer.pushSignal("component_removed",address,thetype) return true end function vcomponent.list() local list = {} for k,v in pairs(proxylist) do list[#list + 1] = {k,typelist[k],v} end return list end function vcomponent.resolve(address, componentType) checkArg(1, address, "string") checkArg(2, componentType, "string", "nil") for k,v in pairs(typelist) do if componentType == nil or v == componentType then if k:sub(1, #address) == address then return k end end end return nil, "no such component" end local r = math.random function vcomponent.uuid() return string.format("%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", r(0,255),r(0,255),r(0,255),r(0,255), r(0,255),r(0,255), r(64,79),r(0,255), r(128,191),r(0,255), r(0,255),r(0,255),r(0,255),r(0,255),r(0,255),r(0,255)) end return vcomponent-
3
-
-
@@Asummonster,"селф дестракта" вместе с роботом разносит клочок чужого привата?С роботом -- не знаю, но если на границе привата поставить микроконтроллер с селфдестрактом, разнесет кусок привата
-
Карта селф дестракта игнорит приваты

Константы
в Библиотеки
Опубликовано:
Может, я что-то не так делаю, но не работает.
Ещё перестаёт работать интерпретатор