[1.7.10] ComputerCraft [1.74]
#2441
Написал 19.08.2013 - 09:33
#2442
Написал 19.08.2013 - 10:25
#2444
Написал 19.08.2013 - 10:57
while true do os[paste][/paste]pullEvent("redstone") --вкл rs[paste][/paste]setOutput("front", not rs[paste][/paste]getOutput("front")) --инвертируем os[paste][/paste]pullEvent("redstone") --выклend
#2445
Написал 19.08.2013 - 11:23
while true doos[paste][/paste]pullEvent("redstone")if rs[paste][/paste]getInput("back") then -- если на входе активный уровень rs[paste][/paste]setOutput("front",not rs[paste][/paste]getInput("front")) -- инвертируем выходendend
#2446
Написал 19.08.2013 - 11:58
#2447
Написал 19.08.2013 - 12:51
rs[paste][/paste]setOutput("front",not rs[paste][/paste]getInput("front"))Dimus, rs.getInput возвращает состояние входа. Нужен rs.getOutput. Lexor, os.pullEvent конкретно в коде Dimus'а, чтобы регистрировать моргания, а то получиться клок-генератор при включеном редстоне.
#2448
Написал 19.08.2013 - 13:15
Верно. А os.pullEvent("redstone") случайно не возвращает сторону и значение сигнала?Dimus, rs.getInput возвращает состояние входа. Нужен rs.getOutput.
#2449
Написал 19.08.2013 - 13:25
#2450
Написал 19.08.2013 - 14:17
Возможно не только из-за косяка. Сложение может дать перенос в 32-й разряд.Значит мне в bit.blshift передалось число 8589924203, только из-за моего косяка, который я потом исправил, но продолжал делать битовые функции. Отлично, зато теперь алгоритм что надо.
Надо в пользовательские проекты добавить. Вещь в хозяйстве нужная.
К стати, куда то делась функция bit.add (выдает ошибку md5:62: attempt to call nil)
Предлагаю для рассмотрения такой вариант
local function add([paste][/paste][paste][/paste][paste][/paste]) local z = 0 for i,v in pairs({[paste][/paste][paste][/paste][paste][/paste]}) do z = z + v if z>=4294967296 then z=z-4294967296 end end return zendlocal function rol(number, count) return bit[paste][/paste]bor(bit[paste][/paste]blshift(number, count), bit[paste][/paste]blogic_rshift(number, (32 - count)))endlocal function X(a, b, c, x, s, t) return add( rol(add(b, a, x, t), s), c)end
#2451
Написал 19.08.2013 - 22:30
local function add(x, y) return x + y > 4294967296 and x + y - 4294967296 or x + y -- x + y > 4294967296 ? x + y -4294967296 : x + iend
#2452
Написал 20.08.2013 - 16:46
#2453
Написал 20.08.2013 - 16:51
#2454
Написал 20.08.2013 - 19:26
)=/
#2455
Написал 20.08.2013 - 19:57
os[paste][/paste]pullEvent = os[paste][/paste]pullEventRawprint("HAHAHA")while true do sleep(1)endОт ребута ничего не спасает.
#2456
Написал 20.08.2013 - 20:05
)=/
#2457
Написал 20.08.2013 - 20:52
Каждый компьютер - это поток, события поступают в комп с помощью coroutine.yield( filter ), вызванной из главной нити компа. Java запускает нить, передавая аргументами событие. (поэтому coroutine.resume генерирует события внутри дочерней нити). Но если по Ctrl+T в компьютер выбрасывается событие "terminate", то по Ctrl+S или по Ctrl+R java обрабатывает их внутри и события не выбрасывает. (а зачем? поток уже остановлен, событие выбросится при его запуске). Я снабжением не пользовался, не знаю. В описании написанно: link() - соеденяет черепаху со станцие спереди. true - удачно, false - нет. resupply(slot) - заполняет стак предметов в слоте slot, должен быть хоть 1 предмет. true - удачно, false - нет. getError() - если функции выше вернули false, эта вернет ошибку с описанием в виде строки.Редактирование кода, залезая в сейвы/КомпуторКрафт
#2458
Написал 21.08.2013 - 02:12
Не совсем так. Можно написать вредоносную программку, которая неплохо будет защищена от ребута. Т.е по сути то комп будет перезагружаться, но это ничего не даст. Принцип такой: название программы разумеется startup, кроме того она перехватывает попытку завершить сочетанием ctrl+t и отслеживает пулл-эвент вставки дискеты (у дисковода ведь больший приоритет и стартап при перезагрузке компа сперва грузится оттуда) при обнаружении таковой копирует туда свою копию, удаляя оттуда другой стартап. Ну и label присваивает компу, чтобы при его физическом демонтаже сохраниться. Способов победить такую программу средствами minecraft/CC я не знаю. Только физическое удаление ее средствами винды из папки сейвов.Скрытый текст
У DW20 где-то был старый обзор на тему мискперифералс, поищи, он подробно рассказывал и наглядно показывал, большого знания английского не нужно. А вообще я лично никогда не пользовался станцией снабжения - эндерсундук рулитКак использовать станцию снабжения со снабженой модулем снабжения черепашкой?
#2459
Написал 21.08.2013 - 10:14
1. Ctrl+S. Чтобы он не увидел свою смерть в виде дискеты. 2. Ставим дисковод. 3. Вставляем дискету с файлом "startup" любого содержания. 4. ПКМ на компе. 5. Удаляем вирус. Есть еще непобедимые вирусы?Способов победить такую программу средствами minecraft/CC я не знаю.
#2460
Написал 21.08.2013 - 10:37
Количество пользователей, читающих эту тему: 3
0 пользователей, 3 гостей, 0 анонимных