• Страница 1 из 1
  • 1
Аддон Autoreply
Buba123net
Скаут
Помогите пожалуйста разобраться с возникшей проблемой. В общем суть в том, что аддон не выводит в чат русские буквы, только английские.
Код

local Answer_EventFrame = CreateFrame("Frame")
Answer_EventFrame:RegisterEvent("CHAT_MSG_WHISPER")

local function OnEvent(self, event, msg, sender, ...)

if (event == "CHAT_MSG_WHISPER" and msg == "hello") then
SendChatMessage("I'm very bussy man. We will speak later", "WHISPER", nil, sender)
end
end
Answer_EventFrame:SetScript("OnEvent", OnEvent)

Аддон должен отвечать на виспы от других игроков заготовленными фразами. Причем он также не срабатывает, если ты пишешь слово рус. буквами, т.е. если я заменю hello на привет в if (event == "CHAT_MSG_WHISPER" and msg == "привет") - нулевой эффект.
Буду очень благодарен за помощь).
P.S.Вопрос касательно темы: как сделать так, что бы аддон отвечал на любые виспы от игроков а не только на опред. фразы?
Сообщение # 1 написано 15.07.2015 в 23:04
Kelwin
Сержант
Доброго времени суток Buba123net,

Цитата Buba123net ()
Причем он также не срабатывает, если ты пишешь слово рус. буквами, т.е. если я заменю hello на привет в if (event == "CHAT_MSG_WHISPER" and msg == "привет") - нулевой эффект.
Разберитесь с кодировкой LUA файла (для корректного отображения и распознавания русского языка используйте UTF-8).




Цитата Buba123net ()
P.S.Вопрос касательно темы: как сделать так, что бы аддон отвечал на любые виспы от игроков а не только на опред. фразы?
Код
if (event == "CHAT_MSG_WHISPER" and msg == "hello") then
меняем на
Код
if event == "CHAT_MSG_WHISPER" then
Сообщение # 2 отредактировано Kelwin - Пятница, 17.07.2015, 20:01
Buba123net
Скаут
Kelwin, спасибо что помогли, с текстом разобрался. А вот на счет if (event == "CHAT_MSG_WHISPER" and msg == "hello") then я убирал msg, но в таком случае перс начинает цикл ответов заготовленной фразой, пока я не получаю мут, не знаете почему так?
P.S. Адд без каких либо доп файлов - 1 lua и 1 toc
Сообщение # 3 отредактировано Buba123net - Пятница, 17.07.2015, 21:18
Kelwin
Сержант
Buba123net, это происходит только когда Вы пишете сам себе. Попробуйте использовать следующий код, чтобы избежать появление бесконечных циклов:

Вариант №1. Аддон не будет отвечать на все сообщения от себя.
Код
local Answer_EventFrame = CreateFrame("Frame")       
Answer_EventFrame:RegisterEvent("CHAT_MSG_WHISPER")       

local function OnEvent(self, event, msg, sender, ...)       

       if sender == GetUnitName("player") then
        return
       end
             
       if event == "CHAT_MSG_WHISPER"  then       
        SendChatMessage("I'm very busy man. We will speak later", "WHISPER", nil, sender)       
       end       
end       
Answer_EventFrame:SetScript("OnEvent", OnEvent)


Вариант №2. Аддон не будет отвечать на собственную фразу "I'm very busy man. We will speak later", предотвращая таким образом появление бесконечных циклов.
Код

local Answer_EventFrame = CreateFrame("Frame")       
Answer_EventFrame:RegisterEvent("CHAT_MSG_WHISPER")       
local msgText = "I'm very busy man. We will speak later"

local function OnEvent(self, event, msg, sender, ...)       

       if (sender == GetUnitName("player") and msg == msgText) then
        return
       end
             
       if event == "CHAT_MSG_WHISPER" then       
        SendChatMessage(msgText, "WHISPER", nil, sender)       
       end       
             
end       
Answer_EventFrame:SetScript("OnEvent", OnEvent)
Сообщение # 4 отредактировано Kelwin - Суббота, 18.07.2015, 21:50
Buba123net
Скаут
Kelwin, благодарю вас великодушно за помощь!) Все работает!
Сообщение # 5 написано 20.07.2015 в 00:24
  • Страница 1 из 1
  • 1
Поиск: