• Страница 1 из 1
  • 1
Работа с эвентами часть 2
Nyll
Здравствуйте. Сегодня мы будем делать аддон, который будет делать "Скриншот" при поднятии левела. Это продолжение моей предыдущей статьи.

Инструкция по созданию toc файла - тык
Ссылка на предыдущие статью - тык
Скачать notepad++ - тык
API функции - тык

Создаем папку для аддона, toc файл и lua файл.
Открываем lua файл и меняем кодировку на UTF-8 (Это нужно для того, чтобы клиент нормально читал русские символы)

Для начала создадим функцию по типу print, которая будет его заменять. Через нее в чат будет писать, что скриншот сохранен.

Code
function sys(text)
DEFAULT_CHAT_FRAME:AddMessage(text, 1.0, 1.0, 0, 0);
end

Называтся она у нас будет "sys".
После значение "text" задаем цвет текста: у нас он будет желтым.

Далее, как я рассказывал в прошлом уроке, делаем фрейм.
Code
events = CreateFrame("Frame") -- Делаем фрейм  
  local frame = events -- Переводим название фреймы из events в frame  
  frame:RegisterEvent("PLAYER_LEVEL_UP") -- Регистрируем эвент приема сообшений  
  frame:SetScript("OnEvent", function() -- Назначаем значение с условием "Если эвент включен"  
  Screenshot() -- Делаем скрин
  message_sys("Скриншот сохранен")
  end)


Значение строк я рассказывал в предыдущей статье.
Как вы заметили, я поставил эвент PLAYER_LEVEL_UP
И добавил функцию Screenshot()
Эвент PLAYER_LEVEL_UP включается в тот момент, как ваш левл повышается или понижается (Подробнее можно увидеть, введя игровую команду /eventtrace)
Функция Screenshot() делает скриншот. Эта функция запускается, как эвент PLAYER_LEVEL_UP регистрируется.
Данную функцию можно запустить так же слеш командой /run Screenshot()

В итоге у нас получился такой "мини - аддон", который очень полезный.
Вот то что получилось:
Code
function message_sys(text)
DEFAULT_CHAT_FRAME:AddMessage(text, 1.0, 1.0, 0, 0);
  end

events = CreateFrame("Frame") -- Делаем фрейм  
  local frame = events -- Переводим название фреймы из events в frame  
  frame:RegisterEvent("PLAYER_LEVEL_UP") -- Регистрируем эвент приема сообшений  
  frame:SetScript("OnEvent", function() -- Назначаем значение с условием "Если эвент включен"  
  Screenshot() -- Делаем скрин
  message_sys("Скриншот сохранен")
  end)

Эту статью я написал из-за того, что много людей не поняло первый урок. На подобии этого урока можно сделать аддоны, как Автоответчик, скриншот ачив и т.д
Маме беркута привет!
Сообщение # 1 написано 09.03.2012 в 21:50
deadsock
Скаут
Сделал,очень полезный аддон для циркуля,ведь там требуют скрины прокачки в случае чего) thumb
Сообщение # 2 отредактировано deadsock - Суббота, 10.03.2012, 09:44
Chehultе
Beautiful Сat
Nyll, очень полезно, а можно ли сделать что бы он каждые 30 минут делал скрин?
Сообщение # 3 написано 10.03.2012 в 16:14
Kante
Born To be Free
1

Добавлено (12.03.2012, 12:57)
---------------------------------------------
Nyll, очень полезно, а можно ли сделать что бы он каждые 30 минут делал скрин?
Он делает скрин при новом лвл. Можно поменять PLAYER_LEVEL_UP" на другой ивент и он будет делать скрин при другом значении.
Сообщение # 4 отредактировано Kante - Понедельник, 12.03.2012, 23:45
Nyll
Quote (Kante)
Nyll, очень полезно, а можно ли сделать что бы он каждые 30 минут делал скрин?

Можно.
Маме беркута привет!
Сообщение # 5 написано 13.03.2012 в 18:35
N1NT3ND0_o
Скаут
Довольно таки интересная статья.
Попытаюсь на досуге поработать с аддонами.
Сообщение # 6 написано 16.03.2012 в 16:48
Insurgente
Скаут
Nyll какой надо регистрировать эвент что бы при смене облика (овца мага и т.д) автоматически делался скриншот?
Сообщение # 7 написано 21.07.2012 в 23:07
  • Страница 1 из 1
  • 1
Поиск: