Перейти к содержимому
  • 0
Koteyk0o

Chatbox и считывание команд для него

Вопрос

В общем есть чат бокс из Computronics

И надо сделать добавление юзера в вайт-лист командой из чата

допустим $$adduser НИК

Как считать ник?

 

Допустим отправляем в чат $$adduser Koteyk0o и получаем сообщение "$$adduser Koteyk0o"

Как из этого сообщения считать ник?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

А как разобрать сообщение на отдельные слова и проверить ник? В инете не нашел инфы

 

по идее как-то так

string.gmatch(s, pattern)
​s:gmatch(pattern)

то есть есть стринги какие-то, которые летят из чата, а комп их в цикле принимает 

local e, adr, ...,  msg = event.pull("chat_command")

и обрабатывает строку msg

 

 

Попробуй так:

local function split(str)
  local data = {}
  for word in str:gmatch("%a+") do 
    table.insert(data, word) 
  end
  return data
end

words = split('Hello Bob')
print(words[1])  --> Hello
print(words[2])  --> Bob

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В общем есть чат бокс из Computronics

чатбокс юзера в вайт-лист сам по себе не добавит. Нужен, видимо, еще и комблок какой-нибудь к компу прикрутить. То есть, этой системой должен обладать админ какой-то. Но зачем тогда этот компутронис, если админ может просто набрать /whitelist add nick

 

Ну а так-то,  сообщения из чата  нужно просто распарсить на слова отдельные и проверить: если первое слово == adduser, то проверим, есть ли второе слово, и если есть, то это и есть ник.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

чатбокс юзера в вайт-лист сам по себе не добавит. Нужен, видимо, еще и комблок какой-нибудь к компу прикрутить. То есть, этой системой должен обладать админ какой-то. Но зачем тогда этот компутронис, если админ может просто набрать /whitelist add nick

 

Ну а так-то,  сообщения из чата  нужно просто распарсить на слова отдельные и проверить: если первое слово == adduser, то проверим, есть ли второе слово, и если есть, то это и есть ник.

Да, забыл написать, есть компик с прогой, прога чекает чат чатбоксом

А как разобрать сообщение на отдельные слова и проверить ник? В инете не нашел инфы

И забыл написать, вайт-лист в проге, не на сервере

То-есть список тех игроков, на сообщения которых чатбокс будет реагировать 

Изменено пользователем Koteyk0o

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

по идее как-то так

string.gmatch(s, pattern)
​s:gmatch(pattern)

то есть есть стринги какие-то, которые летят из чата, а комп их в цикле принимает 

local e, adr, ...,  msg = event.pull("chat_command")

и обрабатывает строку msg

 

 

Попробуй так:

local function split(str)
  local data = {}
  for word in str:gmatch("%a+") do 
    table.insert(data, word) 
  end
  return data
end

words = split('Hello Bob')
print(words[1])  --> Hello
print(words[2])  --> Bob

Спасибо большое, все работает

И как раз понял как это все работает :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 19.08.2017 в 06:10, Koteyk0o сказал:

Да, забыл написать, есть компик с прогой, прога чекает чат чатбоксом

А как разобрать сообщение на отдельные слова и проверить ник? В инете не нашел инфы

И забыл написать, вайт-лист в проге, не на сервере

То-есть список тех игроков, на сообщения которых чатбокс будет реагировать 

Копипаст из официальной документации OpenComputers Event API

Ссылка: https://ocdoc.cil.li/api:event

 

Чтобы получать клики только от игрока «Steve», вы должны сделать:
local _, x, y = event.pull("touch", nil, nil, "Steve")

Разжёвывание:

_,   - Означает отбрасыватель или discard. Используется, когда возвращается или генирируется значение, которое не нужно.

x, y - Переменные в которые записываются координаты, куда тыкнул игрок по монитору. В нашем случае 'nil, nil'

После объявления переменной 'y' можно добавить запятую и объявить переменную в которую будет возвращаться ник игрока.

"Steve" - Означает что событие "touch" будет приниматься только в том случае если у игрока ник "Steve"

 

Пример в интерпретаторе с использованием чат бокса и события "chat_message":

image.png.806fba242a6bc88641268e45fce57762.png

 

С объявлением переменных:

 

image.png.3dbe97b4c3ec252ce94fa82ed9d2e96a.png

 

Мягко говоря в программировании я ещё нуб, по этому пояснять некоторые термины могу не точно.

Если кто-то ищет взаимный обмен опытом, общение на тему программирование и гейм дев, вот мой дискорд: dispeloff#7807

Изменено пользователем dispeloff

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, dispeloff сказал:

local _, x, y = event.pull("touch", nil, nil, "Steve")

Разжёвывание:

_,   - Означает отбрасыватель или discard. Используется, когда возвращается или генирируется значение, которое не нужно.

x, y - Переменные в которые записываются координаты, куда тыкнул игрок по монитору. В нашем случае 'nil, nil'

Никакой это не отбрасыватель. В данном случае _ является таким же именем переменной, как x и y.

 

1 час назад, dispeloff сказал:

Если кто-то ищет взаимный обмен опытом, общение на тему программирование и гейм дев, вот мой дискорд: dispeloff#7807

Добро пожаловать на сервер ComputerCraft.RU в Discord!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 08.01.2023 в 09:03, dispeloff сказал:

Копипаст из официальной документации OpenComputers Event API

Ссылка: https://ocdoc.cil.li/api:event

 

Чтобы получать клики только от игрока «Steve», вы должны сделать:
local _, x, y = event.pull("touch", nil, nil, "Steve")

Разжёвывание:

_,   - Означает отбрасыватель или discard. Используется, когда возвращается или генирируется значение, которое не нужно.

x, y - Переменные в которые записываются координаты, куда тыкнул игрок по монитору. В нашем случае 'nil, nil'

После объявления переменной 'y' можно добавить запятую и объявить переменную в которую будет возвращаться ник игрока.

"Steve" - Означает что событие "touch" будет приниматься только в том случае если у игрока ник "Steve"

 

Пример в интерпретаторе с использованием чат бокса и события "chat_message":

image.png.806fba242a6bc88641268e45fce57762.png

 

С объявлением переменных:

 

image.png.3dbe97b4c3ec252ce94fa82ed9d2e96a.png

 

Мягко говоря в программировании я ещё нуб, по этому пояснять некоторые термины могу не точно.

Если кто-то ищет взаимный обмен опытом, общение на тему программирование и гейм дев, вот мой дискорд: dispeloff#7807

Ого какую тему ты раскопал))

За эти 5 лет я успел выучить не только Lua :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...