#code-snippets #irc #mirc
#фрагменты кода #irc #mirc
Вопрос:
простой вопрос, я думаю, но я довольно новичок в этом, так что, возможно, вы сможете мне помочь. Я создал бота для чата, которым хочу поделиться с людьми. Итак, моей первой мыслью было: я добавлю команду (!join), которая затем позволит боту присоединиться к определенному каналу. По какой-то причине (я думаю, это связано с операторами) мое объединение не будет работать.
Вот фрагмент:
on *:TEXT:!join:#: {
var %name = $nick
;/msg $chan joining channel %name
/join #%nick
}
Но он просто не будет подключаться. Есть идеи?
Если я просто использую / kick $ nick (или%name), это работает, так что, я думаю, этот # все портит.
Заранее спасибо
Комментарии:
1. вам не нужно использовать команды события / on, поскольку все будет интерпретироваться как команда внутри событий, кстати, поскольку %name = $nick вы можете использовать $ ($chr(35),$nick)
Ответ №1:
Попробуйте следующее:
/join $chr(35) $ %nick
Объяснение: Имя переменной должно быть отдельным словом в вашей строке кода, чтобы оно было распознано как имя переменной. Следовательно, #%nick
будет интерпретироваться как строка #%nick
, тогда как %nick
будет интерпретироваться как имя пользователя, выдающего команду.
Чтобы добавить значение переменной или идентификатора, вы можете использовать идентификатор $
, который объединяет строки вместе. Например, a $ b
вернет ab
.
Другая проблема возникает при использовании # $ %nick
, потому что #
это псевдоним для идентификатора $chan
. Это означает, что если бы я набрал!подключитесь #test
, он попытается присоединиться #testPatrickdev
. Вместо использования #
я использую $chr(35)
(который, в свою очередь, вернет символ #
). Это добавляется к значению переменной %nick
.
Комментарии:
1. Раньше mIRC был забавным! 😀
Ответ №2:
Используйте $eval
функцию mIRC, например: $($ (#, %nick))
Комментарии:
1. нет необходимости использовать $eval, и # будет распознан как канал, в котором произошло событие, в котором было запущено