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


Фотография

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

lua opencomputers computronics

Лучший Ответ Alex , 18 Август 2017 - 23:33

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

 

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

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
Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 Оффлайн   Koteyk0o

Koteyk0o
  • Пользователи
  • Сообщений: 31
  • Уровень сигнала: 0%
  • В игре: 0 ч. 0 мин.

Отправлено 18 Август 2017 - 21:20

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

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

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

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

 

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

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



#2 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 452
  • Уровень сигнала: 0%
  • В игре: 0 ч. 0 мин.

Отправлено 18 Август 2017 - 23:07

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

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

 

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


  • Koteyk0o это нравится

#3 Оффлайн   Koteyk0o

Koteyk0o
  • Автор темы
  • Пользователи
  • Сообщений: 31
  • Уровень сигнала: 0%
  • В игре: 0 ч. 0 мин.

Отправлено 18 Август 2017 - 23:10

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

 

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

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

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

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

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


Сообщение отредактировал Koteyk0o: 18 Август 2017 - 23:11


#4 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 452
  • Уровень сигнала: 0%
  • В игре: 0 ч. 0 мин.

Отправлено 18 Август 2017 - 23:33   Лучший Ответ

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

 

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

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


#5 Оффлайн   Koteyk0o

Koteyk0o
  • Автор темы
  • Пользователи
  • Сообщений: 31
  • Уровень сигнала: 0%
  • В игре: 0 ч. 0 мин.

Отправлено 19 Август 2017 - 00:41

 

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

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

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

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







Темы с аналогичным тегами lua, opencomputers, computronics

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных