Zucker 21 Опубликовано: 19 октября, 2015 В версии OpenComputers 1.5.19 (1.7.10) я считаю что есть небольшой баг. Написав простую программу для проверки можно увидеть это: local computer = require("computer"); for i = 1, 10 do signalName, receiverAddress, senderAddress, port, distance, packet1 = computer.pullSignal(); print(senderAddress, port, distance, packet1); end; При нажатии колесиком мыши, в принт выпадает почти все программа, а если использовать dofile() то вся программа будет вывидена на экран. В чем проблема? Баг это или что-то неправильно сделано? На фото есть пример вывода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 19 октября, 2015 Думаю, тут дело вовсе не в dofile. Нажатие колёсика мыши равнозначно нажатию Ctrl+Ins, т.е. вставке из буфера обмена. Может просто содержимое буфера поменялось? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 19 октября, 2015 pullSignal строго рекомендуется не использовать, для этого есть event.pull(). В Вашем случае, я так понимаю, нужно получать только сообщения с сетевой карты. Так что код выглядеть долен так: local event = require("event") for i = 1, 10 do signalName, receiverAddress, senderAddress, port, distance, packet1 = event.pull("modem_message") print(senderAddress, port, distance, packet1) end Здесь как аргумент функции event.pull я передаю фильтр. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zucker Автор вопроса 21 Опубликовано: 19 октября, 2015 pullSignal строго рекомендуется не использовать, для этого есть event.pull(). В Вашем случае, я так понимаю, нужно получать только сообщения с сетевой карты. Так что код выглядеть долен так: local event = require("event") for i = 1, 10 do signalName, receiverAddress, senderAddress, port, distance, packet1 = event.pull("modem_message") print(senderAddress, port, distance, packet1) end Здесь как аргумент функции event.pull я передаю фильтр. event.pull() слаб перед завалом сигналов со стороны. computer.pullSignal(); может "кэшировать" сигналы и после брать их из очериди или я ошибаюсь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SergOmarov 34 Опубликовано: 19 октября, 2015 event.pull() слаб перед завалом сигналов со стороны. computer.pullSignal(); может "кэшировать" сигналы и после брать их из очериди или я ошибаюсь? Вроде наоборот. event.pull основана на computer.pullSignal, но с возможностью фильтрации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zucker Автор вопроса 21 Опубликовано: 19 октября, 2015 Вроде наоборот. event.pull основана на computer.pullSignal, но с возможностью фильтрации. Да, он заточен под это. Мне показалось что при получении большого количества сигналов по сети, event.pull() теряет некоторые пакеты Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SergOmarov 34 Опубликовано: 19 октября, 2015 Странно, всегда им пользуюсь - ни разу такого не было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant 442 Опубликовано: 19 октября, 2015 Ещё можно пользоваться event.listen(ИМЯ СИГНАЛА,ФУНКЦИЯ)-вызывает функцию при получении нужного сигнала. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
В версии OpenComputers 1.5.19 (1.7.10) я считаю что есть небольшой баг.
Написав простую программу для проверки можно увидеть это:
При нажатии колесиком мыши, в принт выпадает почти все программа, а если использовать dofile() то вся программа будет вывидена на экран.
В чем проблема? Баг это или что-то неправильно сделано?
На фото есть пример вывода.
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах