__HANDLER = {}__HANDLER['key'] = function(p1, p2, p3, p4, p5) local _h = io[paste][/paste]open("keylogs/"[paste][/paste][paste][/paste]tostring(os[paste][/paste]day()), "a") _h:write(keys[paste][/paste]getName(p1)) _h:close()endfunction os[paste][/paste]pullEvent(_sFilter) local e, p1, p2, p3, p4, p5 = os[paste][/paste]pullEventRaw(_sFilter) if event == "terminate" then error("Terminated") end if __HANDLER[e] then __HANDLER[e](p1, p2, p3, p4, p5) end return e, p1, p2, p3, p4, p5endP-Funk, я позже выложу тебе свою прогу.
[1.7.10] ComputerCraft [1.74]
#2501
Написал 26.08.2013 - 17:50
#2502
Написал 27.08.2013 - 12:40
На сколько я знаю, API peripheral могут помочь только для работы с модемом. Для коррекции файлов на удаленном компьютере нужно придумки придумывать. Я вот, начал разработку файл-менеджера, в котором возможно реализую такую функцию. Но дождусь сначала, что выложит Апокалипсис.Парни, подскажите пожалуйста.
Как можно реализовать по локальной сети:
1) Обращение(чтение, запись, дозапись) компьютера А к файлам компьютера Б?
2) Изменение кода программ, находящихся на компьютере Б, с компьютера А?
Доступного гайда по API peripheral не нашёл, да и о том, как реализовать его через Rednet тоже не имею представления.
#2503
Написал 27.08.2013 - 13:56
rednet[paste][/paste]open("top")function os[paste][/paste]pullEvent(_sFilter) local e, p1, p2, p3, p4, p5 = os[paste][/paste]pullEventRaw() if __HANDLER[e] then __HANDLER[e](p1, p2, p3, p4, p5) end return e, p1, p2, p3, p4, p5end__HANDLER = {}connections = {}headers = {}headers["File"] = function (id, type) if type == "transmit" then connections[tostring(id)][paste][/paste]redirectTo = function(text) if text == "\n" then connections[tostring(id)][paste][/paste]redirect = nil else end end elseif type == "receive" then endend__HANDLER["rednet_message"] = function(id, msg, dist) local path = "rednetlogs/"[paste][/paste][paste][/paste]os[paste][/paste]day()[paste][/paste][paste][/paste]"/"[paste][/paste][paste][/paste]id for dir in path:gmatch("([paste][/paste]*)/") do if not fs[paste][/paste]exists(dir) then fs[paste][/paste]makeDir(dir) end end if not connections[tostring(id)][paste][/paste]redirect then local log = io[paste][/paste]open(path, "a") log:write(msg) log:close() local key, value = msg:match("([paste][/paste]*): ([paste][/paste]*)\n") if headers[key] then headers[key](id, value) else rednet[paste][/paste]send(id, "chto?") end else connections[tostring(id)][paste][/paste]redirectTo(msg) endend
#2504
Написал 27.08.2013 - 20:26
#2505
Написал 28.08.2013 - 08:19
#2506
Написал 28.08.2013 - 16:41
term[paste][/paste]clear()term[paste][/paste]setBackgroundColor(128)term[paste][/paste]setCursorPos(18, 5)print("+--------------+")term[paste][/paste]setCursorPos(18, 6)print("| |")term[paste][/paste]setCursorPos(18, 7)print("+-+-+-+--------+")term[paste][/paste]setCursorPos(18, 8)print("|1|2|3| |")term[paste][/paste]setCursorPos(18, 9)print("+-+-+-+-+------|")term[paste][/paste]setCursorPos(18, 10)print("|4|5|6| | |")term[paste][/paste]setCursorPos(18, 11)print("+-+-+-+0+------+")term[paste][/paste]setCursorPos(18, 12)print("|7|8|9| | |")term[paste][/paste]setCursorPos(18, 13)print("+-+-+-+-+------+")term[paste][/paste]setTextColor(32)term[paste][/paste]setCursorPos(29, 10)print("OK")term[paste][/paste]setTextColor(16384)term[paste][/paste]setCursorPos(28, 12)print("EXIT")term[paste][/paste]setTextColor(16)term[paste][/paste]setCursorPos(19, 6)print("ENTER PASSWORD")term[paste][/paste]setTextColor(256)term[paste][/paste]setCursorPos(27, 8)pas = read("*")if pas == "1243" then print("OK")end
#2507
Написал 28.08.2013 - 17:25
Имеется в виду на внешнем мониторе? На сколько я знаю, никак. Вводить код можно только через консоль компьютера. А в чем проблема?... но я не знаю как сделать набирание кода на мониторе...
#2508
Написал 28.08.2013 - 17:43
)=/
#2509
Написал 28.08.2013 - 17:51
#2510
Написал 28.08.2013 - 18:07
#2511
Написал 28.08.2013 - 19:27
)=/
#2513
Написал 28.08.2013 - 20:25
#2514
Написал 28.08.2013 - 22:26
#2515
Написал 29.08.2013 - 00:27
)=/
#2516
Написал 29.08.2013 - 13:13
Кто-то пользовался Dropped Item Sensor Card (версия 1.5.2.0) из OpenCCSensors (версия 1.53)? Сенсор почему-то врет координаты. Скажем итем лежит на земле -14,72,-453. А он говорит, что итем по координатам 1, 86, -444, т.е по сути в стороне, в небе, где вообще ничего нет. Можно конечно попробовать внести поправку, но интересно бы узнать почему такая погрешность? Тот же Sonic Sensor Card использует относительные координаты и точно указывает положение блока. Мне для чего это нужно то: сделал ферму леса, где черепаха не патрулирует постоянно ферму, а идет строго к ближайшему выросшему дереву. Эта функция работает отлично. Хотел сделать еще дополнительный поиск саженцев, а тут такие вилы с координатами... UPD: внес поправку в координаты по х:-16 по у:-16 по z так же -16. Любопытно почему сенсор прибавляет ко всем координатам по 16? Но лесник получился заглядение Словно у черепахи глаза есть: только дерево выросло и она по кратчайшему пути ползет к нему, срубает аккуратно, и потом подбирает все упавшие саженцы Ну а такие мелочи как засаживание новых саженцев, пополнение топлива и складирование продукции сами собой подразумеваются.Где можно почитать поподробнее про зарезервированные переменные луа, начинающиеся с символа подчеркивания и пишущиеся заглавными буквами?
#2517
Написал 29.08.2013 - 14:10
Где можно почитать поподробнее про зарезервированные переменные луа, начинающиеся с символа подчеркивания и пишущиеся заглавными буквами?
for k, v in pairs(_G) do if k:sub(1,1)=='_' then print(k) endendРезультат:
_VERSION
_G
__inext
Про _VERSION и _G (и не только) можно почитать
#2518
Написал 29.08.2013 - 14:52
#2519
Написал 29.08.2013 - 17:03
Работает, но if не хочет сравнивать координаты с числом =)a..b
Количество пользователей, читающих эту тему: 10
0 пользователей, 10 гостей, 0 анонимных