1kovand1 0 Опубликовано: 10 апреля, 2016 Почему не работает фильтрация , например event.pull("chat_message") все равно пропускает все эвенты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 10 апреля, 2016 Что значит "пропускает"? Возвращает любой, не возвращает вообще ничего? Подробнее объясните. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
1kovand1 Автор вопроса 0 Опубликовано: 10 апреля, 2016 Что значит "пропускает"? Возвращает любой, не возвращает вообще ничего? Любой возвращает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 722 Опубликовано: 10 апреля, 2016 Любой возвращает Код в студию! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
1kovand1 Автор вопроса 0 Опубликовано: 10 апреля, 2016 event = require("event") com = require("component") while true do local f,s,t, fo, fi, si = event.pull(60) event = require("event") com = require("component") while true do local f,s,t, fo, fi, si = event.pull("touch") if si == nil then si = "nil" end if fi == nil then fi = "nil" end if fo == nil then fo = "nil" end if t == nil then t = "nil" end if s == nil then s = "nil" end if f == nil then f = "nil" end if f ~= "nil" then print(f.."\n"..s.."\n"..t.."\n"..fo.."\n"..fi.."\n"..si.."\n") end end si = "nil" end if fi == nil then fi = "nil" end if fo == nil then fo = "nil" end if t == nil then t = "nil" end if s == nil then s = "nil" end if f == nil then f = "nil" end if f ~= "nil" then print(f.."\n"..s.."\n"..t.."\n"..fo.."\n"..fi.."\n"..si.."\n") end end Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 722 Опубликовано: 10 апреля, 2016 (изменено) <<много буковок>> Теперь я с уверенностью могу сказать что видел всё! Нет отступов, это ещё цветочки. event.pull(60) Это вообще лишнее. Весь код сплошной ужас. Попробую написать как надо и догадаться для каких целей тебе это нужно: local event = require("event") local com = require("component") --вообще не знаю зачем в данном коде эта библиотека, ну раз тебе она так нужна пусть будет while true do local out = {event.pull("touch")} --евент ожидается пока не будет получины данные --local out = {event.pull(60,"touch")} --если евент должен срываться при достижении в данном случае 60 сек без отклика, то ставим эту строку вместо предыдущей if out[1] then print(out[1].."\n"..out[2].."\n"..out[3].."\n"..out[4].."\n"..out[5].."\n"..out[6].."\n") --отображаем 6 значений из таблицы else --если захочешь поставить второй вариант евента, который срывает его, то его срыв вызовет выход из цикла break --вместо выхода из цикла можем написать любой код end end Вот такой короткий и чёткий код получился. Изменено 12 апреля, 2016 пользователем qwertyMAN Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
1kovand1 Автор вопроса 0 Опубликовано: 12 апреля, 2016 (изменено) Теперь я с уверенностью могу сказать что видел всё!Нет отступов, это ещё цветочки. Это вообще лишнее. Весь код сплошной ужас. Попробую написать как надо и догадаться для каких целей тебе это нужно: local event = require("event") local com = require("component") --вообще не знаю зачем в данном коде эта библиотека, ну раз тебе она так нужна пусть будет while true do local out = {event.pull("touch")} --евент ожидается пока не будет получины данные --local out = {event.pull(60,"touch")} --если евент должен срываться при достижении в данном случае 60 сек без отклика, то ставим эту строку вместо предыдущей print(out[1].."\n"..out[2].."\n"..out[3].."\n"..out[4].."\n"..out[5].."\n"..out[6].."\n") --отображаем 6 значений из таблицы if not out[1] then --если захочешь поставить второй вариант евента, который срывает его, то его срыв вызовет выход из цикла break --вместо выхода из цикла можем написать любой код end end Вот такой короткий и чёткий код получился. А если какой-нибудь аргумент будет nil Изменено 12 марта, 2017 пользователем 1kovand1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 12 апреля, 2016 (изменено) Попробую написать как надо и догадаться для каких целей тебе это нужно: print(out[1].."\n"..out[2].."\n"..out[3].."\n"..out[4].."\n"..out[5].."\n"..out[6].."\n") --отображаем 6 значений из таблицыВот такой короткий и чёткий код получился. ужасный говнокод. как минимум циклом перебрать значения for _, v in ipairs(out) do print(v) end лень циклом? print(table.concat(out, "\n")) хочешь через табы написать? print(table.unpack(out)) через запятую? print(table.concat(out, ", ")) Изменено 12 апреля, 2016 пользователем LeshaInc 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 722 Опубликовано: 12 апреля, 2016 (изменено) А если какой-нибудь аргумент будет nil Он будет nil только если преждевременно прервать евент, например по истечению времени вот так: local out = {event.pull(60,"touch")} В обычном же случае без прерывания по времени, он просто не будет реагировать на ненужные евенты. Ну а если всё же в нашем случае код прерывается по времени, то для этого случая я написал вот такую часть кода: if out[1] then --обрабатываем случай когда выходит значение print(out[1].."\n"..out[2].."\n"..out[3].."\n"..out[4].."\n"..out[5].."\n"..out[6].."\n") else --обрабатываем случай когда выходит nil break --здесь может быть любой код, но я решил написать break чтобы выйти из цикла. end Изменено 12 апреля, 2016 пользователем qwertyMAN Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 12 апреля, 2016 Для общего развития — неограниченные по времени пуллы тоже могут как-то иногда возвращать nil и прерываться преждевременно. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 722 Опубликовано: 12 апреля, 2016 Для общего развития — неограниченные по времени пуллы тоже могут как-то иногда возвращать nil и прерываться преждевременно. Каким способом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 12 апреля, 2016 Каким способом? Написано же: "как-то". Без понятия. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 722 Опубликовано: 12 апреля, 2016 Написано же: "как-то". Без понятия. Привёл бы пример такого кода хоть. А то какой то Чайник Рассела получается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 12 апреля, 2016 Привёл бы пример такого кода хоть. А то какой то Чайник Рассела получается. Оно прерывается только когда одновременно планеты встают в ряд, на экваторе танцует шаман, а в шмандерсбурге упал будтердром маслом вверх. Короче, без понятия. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Почему не работает фильтрация , например
все равно пропускает все эвенты.
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах