IgnorGTO 0 Опубликовано: 10 февраля, 2023 Подскажите пожалуйста простенький кодик для использования BiometricReader Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oleshe 38 Опубликовано: 10 февраля, 2023 (изменено) 25 минут назад, IgnorGTO сказал: BiometricReader В чем должен быть смысл кода? Изменено 10 февраля, 2023 пользователем Oleshe 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
IgnorGTO Автор вопроса 0 Опубликовано: 11 февраля, 2023 9 часов назад, Oleshe сказал: В чем должен быть смысл кода? Просто считать uid пользователя не как не получается сделать это на версии 1.12.2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
serafim 272 Опубликовано: 11 февраля, 2023 10 часов назад, IgnorGTO сказал: Подскажите пожалуйста простенький кодик для использования BiometricReader Что за мод ? 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
IgnorGTO Автор вопроса 0 Опубликовано: 11 февраля, 2023 36 минут назад, serafim сказал: Что за мод ? opensecurity Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oleshe 38 Опубликовано: 11 февраля, 2023 6 часов назад, IgnorGTO сказал: Просто считать uid пользователя не как не получается сделать это на версии 1.12.2 Запятые бы ставил... Ну тоесть ты запускаешь программу, тыкаешь на блок и выводит на экран uid і конец? 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
IgnorGTO Автор вопроса 0 Опубликовано: 11 февраля, 2023 3 часа назад, Oleshe сказал: Запятые бы ставил... Ну тоесть ты запускаешь программу, тыкаешь на блок и выводит на экран uid і конец? + Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oleshe 38 Опубликовано: 11 февраля, 2023 Прога: Скрытый текст while true do a = {require('event').pull('bioReader')} print('Адрес считывателя: '..a[2]..' '..'вроде айди игрока: '..a[3]) end Специально максимально укоротил, если надо могу и расписать. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
IgnorGTO Автор вопроса 0 Опубликовано: 12 февраля, 2023 (изменено) 8 часов назад, Oleshe сказал: Прога: Скрыть содержимое while true do a = {require('event').pull('bioReader')} print('Адрес считывателя: '..a[2]..' '..'вроде айди игрока: '..a[3]) end Специально максимально укоротил, если надо могу и расписать. Большое спасибо очень помогли чуток модифицировал все работает пока что ) print("Server started :", os.date("%a-%b-%Y %H:%M:%S")) rolldoor = require("component").os_rolldoorcontroller userlist={ {"7e4132ac-0f0d-3e7a-b74d-015640e6419c7d","Саша"}, {"62416a97-e5e2-3172-95de-d0564698a36875","Артур"}, {"62416a97-e5e2-3172-95de-d0564446326874","Женя"} } -- function start() -- a = {require('event').pull('bioReader')} -- if a[2] == '09a7a689-5f1c-48f4-a7af-61203502f84a' then -- user_name = 'Неизвестный' -- user_uid = a[3] -- data = {user_name, user_uid} -- else -- data = bio() -- end -- return data -- end function bio() a = {require('event').pull('bioReader')} print(a[1], a[2], a[3]) for i,_ in ipairs(userlist) do user_name = userlist[i][2] user_uid = userlist[i][1] if a[3] == user_uid then data = {user_name, user_uid} door() end end return data end function door() --dorr = require("component").os_dorcontroller --dorr.toggle() rolldoor.toggle() os.sleep(3) rolldoor.toggle() end while true do bio() user_name = data[1] user_uid = data[2] print('Пользователь:',user_name,'ID:',user_uid,'OPEN',os.date("%a-%b-%Y %H:%M:%S")) end Изменено 12 февраля, 2023 пользователем IgnorGTO Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oleshe 38 Опубликовано: 12 февраля, 2023 (изменено) Зачем ты делаешь функций, которые вызываются 1 раз? для био предлагаю сделать проще: for i = 1,#userlist do if userlist == a[3] then door() end end А для print использовать наши параметры, и не переназначать на пустые переменные. print('Пользователь: '..userlist[a[3]]..' ID: '..a[3]..' Открылось в: '.. os.date('%a-%b-%Y %H:%M:%S')) Закомментированный старт() занимает место на диске, тебе-же она не нужна тебя уже есть био() Я только заметил какой-же узер лист плохой: local userlist = { ["7e4132ac-0f0d-3e7a-b74d-015640e6419c7d"] = 'Саша', ["62416a97-e5e2-3172-95de-d0564698a36875"] = 'Артур', ["62416a97-e5e2-3172-95de-d0564446326874"] = 'Женя' } тогда userlist[addres] = name, мы сможем сразу по адресу получить имя. Изменено 12 февраля, 2023 пользователем Oleshe 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
IgnorGTO Автор вопроса 0 Опубликовано: 15 февраля, 2023 В 12.02.2023 в 14:25, Oleshe сказал: Зачем ты делаешь функций, которые вызываются 1 раз? для био предлагаю сделать проще: for i = 1,#userlist do if userlist == a[3] then door() end end А для print использовать наши параметры, и не переназначать на пустые переменные. print('Пользователь: '..userlist[a[3]]..' ID: '..a[3]..' Открылось в: '.. os.date('%a-%b-%Y %H:%M:%S')) Закомментированный старт() занимает место на диске, тебе-же она не нужна тебя уже есть био() Я только заметил какой-же узер лист плохой: local userlist = { ["7e4132ac-0f0d-3e7a-b74d-015640e6419c7d"] = 'Саша', ["62416a97-e5e2-3172-95de-d0564698a36875"] = 'Артур', ["62416a97-e5e2-3172-95de-d0564446326874"] = 'Женя' } тогда userlist[addres] = name, мы сможем сразу по адресу получить имя. for i = 1,#userlist do if userlist == a[3] then door() end end К сожалению данный код не работоспособен вот проверка http://tpcg.io/MQYU53 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oleshe 38 Опубликовано: 15 февраля, 2023 (изменено) Ну, немного затупил, с кем не бывает. Теперь я удостоверился что работает, весь код: Скрытый текст print("Server started :", os.date("%a-%b-%Y %H:%M:%S")) local rd = require("component").os_rolldoorcontroller local database = { "7e4132ac-0f0d-3e7a-b74d-015640e6419c7d", "62416a97-e5e2-3172-95de-d0564698a36875", "62416a97-e5e2-3172-95de-d0564446326874" } local userlist={ ["7e4132ac-0f0d-3e7a-b74d-015640e6419c7d"] = "Саша", ["62416a97-e5e2-3172-95de-d0564698a36875"]= "Артур", ["62416a97-e5e2-3172-95de-d0564446326874"] ="Женя" } while true do local a = {require('event').pull('bioReader')} for i = 1, #database do if database[i] == a[3] then user = userlist[database[i]] rd.toggle() os.sleep(3) rd.toggle() end end print('Пользователь:',user,'ID:',a[3],'OPEN',os.date("%a-%b-%Y %H:%M:%S")) end вроде Изменено 15 февраля, 2023 пользователем Oleshe Очевидный косяк в коде 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
IgnorGTO Автор вопроса 0 Опубликовано: 17 февраля, 2023 (изменено) В 15.02.2023 в 22:46, Oleshe сказал: Ну, немного затупил, с кем не бывает. Теперь я удостоверился что работает, весь код: Скрыть содержимое print("Server started :", os.date("%a-%b-%Y %H:%M:%S")) local rd = require("component").os_rolldoorcontroller local database = { "7e4132ac-0f0d-3e7a-b74d-015640e6419c7d", "62416a97-e5e2-3172-95de-d0564698a36875", "62416a97-e5e2-3172-95de-d0564446326874" } local userlist={ ["7e4132ac-0f0d-3e7a-b74d-015640e6419c7d"] = "Саша", ["62416a97-e5e2-3172-95de-d0564698a36875"]= "Артур", ["62416a97-e5e2-3172-95de-d0564446326874"] ="Женя" } while true do local a = {require('event').pull('bioReader')} for i = 1, #database do if database[i] == a[3] then user = userlist[database[i]] rd.toggle() os.sleep(3) rd.toggle() end end print('Пользователь:',user,'ID:',a[3],'OPEN',os.date("%a-%b-%Y %H:%M:%S")) end вроде Спасибо Я тут немного подумал над сокращением а так будут правильно ? a = '62416a97-e5e2-3172-95de-d0564446326874' userlist = { ["7e4132ac-0f0d-3e7a-b74d-015640e6419c7d"] = "Саша", ["62416a97-e5e2-3172-95de-d0564698a36875"] = "Артур", ["62416a97-e5e2-3172-95de-d0564446326874"] = "Женя" } if userlist[a] then print(userlist[a]) else print("NO") end вроде работает Изменено 17 февраля, 2023 пользователем IgnorGTO Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oleshe 38 Опубликовано: 17 февраля, 2023 13 часа назад, IgnorGTO сказал: Я тут немного подумал над сокращением а так будут правильно ? Да, че нет то. Это еще лучше, более коротко. Я правда не понимаю зачем после ифа елсе? если оно не напечатало это уже значит что не подошло по условию. А так молодец. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
IgnorGTO Автор вопроса 0 Опубликовано: 18 февраля, 2023 если после ифа для ведения лога кто пытался открыть дверь спасибо за помощь теперь буду думать над конструкцией добавления 2 и более дверей Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oleshe 38 Опубликовано: 18 февраля, 2023 (изменено) 3 часа назад, IgnorGTO сказал: спасибо за помощь теперь буду думать над конструкцией добавления 2 и более дверей А че там думать? Есть список содержащий наше количество дверей (их адреса) с биосчитывателями также. Аля: Если этот адрес равен 1-му био значит открываем ту то дверь, если адрес равен 2-му био значит открываем другую дверь. local bio = {'123','sus'} -- первые 3 буквы адреса local doors= {'666','103'} -- первые 3 буквы адреса a= {'4fh498fj276goj3f'} -- адрес био входа евента for i = 1, #bio do -- для каждого биосканера if bio == a then -- если мы нажали на один из них cmp.invoke(cmp.get(doors),'toggle') -- обращаемся к соответствующему контроллеру двери end end а в данном случаи не уид игрока, а адрес био, он даётся при событий. cmp.invoke обращается именно к компоненту с n-ным адресов, cmp.get получаем полный адрес по сокращенному. В "таком" случаи 1-й био сканер должен находиться на 1-й позиций списка, как и его дверь, так-же со 2-ми. Эта конструкция универсальна, добавляй всего сколько хочешь. Изменено 18 февраля, 2023 пользователем Oleshe 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
IgnorGTO Автор вопроса 0 Опубликовано: 18 февраля, 2023 (изменено) 3 часа назад, Oleshe сказал: А че там думать? Есть список содержащий наше количество дверей (их адреса) с биосчитывателями также. Аля: Если этот адрес равен 1-му био значит открываем ту то дверь, если адрес равен 2-му био значит открываем другую дверь. local bio = {'123','sus'} -- первые 3 буквы адреса local doors= {'666','103'} -- первые 3 буквы адреса a= {'4fh498fj276goj3f'} -- адрес био входа евента for i = 1, #bio do -- для каждого биосканера if bio == a then -- если мы нажали на один из них cmp.invoke(cmp.get(doors),'toggle') -- обращаемся к соответствующему контроллеру двери end end а в данном случаи не уид игрока, а адрес био, он даётся при событий. cmp.invoke обращается именно к компоненту с n-ным адресов, cmp.get получаем полный адрес по сокращенному. В "таком" случаи 1-й био сканер должен находиться на 1-й позиций списка, как и его дверь, так-же со 2-ми. Эта конструкция универсальна, добавляй всего сколько хочешь. dorslist={ ['Био-1']="дверь-1", ['Био-2']="дверь-1", ['Био-1']="дверь-2", ['Био-2']="дверь-2", } Думал так попробовать так как у 1 двери стоит 2 био Ещё где-то видел пример dorslist={ {'био-1', ',био-2'}='дверь-1', {'био-1', ',био-2'}='дверь-2', } но не совсем понял как с ним работать Изменено 18 февраля, 2023 пользователем IgnorGTO Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oleshe 38 Опубликовано: 18 февраля, 2023 (изменено) 13 минуты назад, IgnorGTO сказал: dorslist={ ['Био-1']="дверь-1", ['Био-2']="дверь-1", ['Био-1']="дверь-2", ['Био-2']="дверь-2", } Думал так попробовать так как у 1 двери стоит 2 био Да, опять придумал как сделать короче. Хорош. 13 минуты назад, IgnorGTO сказал: dorslist={ {'био-1', ',bj-2'}='дверь-1', {'био-1', ',bj-2'}='дверь-2', } но не совсем понял как с ним работать Ну, я тоже ;Р. пазл бы сошелся если бы знал что за bj. Изменено 18 февраля, 2023 пользователем Oleshe 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
IgnorGTO Автор вопроса 0 Опубликовано: 18 февраля, 2023 3 минуты назад, Oleshe сказал: Да, опять придумал как сделать короче. Хорош. Ну, я тоже ;Р. пазл бы сошелся если бы знал что за bj. Сори чуток ошибся 'био-1', ',био-2' исправил Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oleshe 38 Опубликовано: 18 февраля, 2023 (изменено) 15 минут назад, IgnorGTO сказал: Сори чуток ошибся 'био-1', ',био-2' исправил Имел в виду что за bj-2, тип строка, рядом со этим био в списке. Изменено 18 февраля, 2023 пользователем Oleshe Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oleshe 38 Опубликовано: 19 февраля, 2023 17 часов назад, IgnorGTO сказал: Сори чуток ошибся 'био-1', ',био-2' исправил Тяк, ну смотри, тут у нас 2 био привязаны к 1-й дери. Не правильно построил список, список никак не может быть именем переменной. В общем: У нас есть список в котором био, у на сесть двери, по той схеме их никак не связать. Зачем искать 2-е решение проблемы если есть 1-е. Можно что-то такое: {{door1 = {bio1, bio2}, door2 = {bio2, bio3}| на пример. Тогда мы должны перебрать все дувери, и проверять привязан ли био к нашей двери: local address= {{'126','102'},{'abc','hui'}} -- адресса local cmp = require('component') local a = '3r6i45g-1fefrh24-tr2hh2rtg-2wkkkosg-23yhqfg2' -- 2-й аргумент события for i = 1, #address do -- для каждой двери for e = 1, #address[i] do -- для каждого био от двери if cmp.get(address[i][e]) == a then -- если они одинаковые cmp.invoke(cmp.get(address[i]),'toggle') -- открываем дверь деверь првязаную к био end end end Тогда в 1-м списке адресов будет 1-я дверь, к ней относятся био, их может быть сколько угодно. Это даже оптимизирование и быстрее редактируется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Подскажите пожалуйста простенький кодик для использования BiometricReader
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах