|
Форум Обсуждение аддонов Разработка аддонов WoW Таймер до пула |
Таймер до пула |
Всем привет! В эту пятницу мы будем делать рейдовый аддон, который дает отсчет до пула боса. Этот аддон я делал как для себя так и для нашей гильдии. С ним очень легко начать бой с боссом/мобами.
Полезные ссылки: Инструкция по созданию toc файла - тык Ссылка на предыдущие статью - тык Скачать notepad++ - тык API функции - тык Этот аддон делается очень легко, он содержит всего 2 файла. Создаем папку для аддона и 2 файла TOC и LUA. Сразу же в LUA файле меняем кодировку на UTF-8 (или делаем это при создании). Заполняем TOC файл как нам угодно, а в LUA файле пишем: Code local dtime = 7 -- Время по дефолту local chat = "RAID_WARNING" -- RAID_WARNING local attack = ">>>> ПУЛЛ!! <<<<" -- Текст аттаки local pulling = "Talandras: Пул через" -- Для тестов (оно вам не нуна) local name = UnitName("player"); -- Имя юзера SLASH_pull1 = "/pull" -- Енглиш команда SLASH_pull2 = "/пулл" -- Ру команда function Anounce(text) -- Создание функции отправки сообщения для приветствия. DEFAULT_CHAT_FRAME:AddMessage(text, 1.0, 0.0, 0.0, 1.0); UIErrorsFrame:AddMessage(text, 1.0, 1.0, 0, 1,10); end function timer(text) -- Обычная SendChatMessage SendChatMessage(text, "RAID_WARNING", nil,nil); end Anounce("Talandras: Привет,"..name.."!\nДля начала отсчета пулла введи /pull или /пулл ") -- Приветствие local frame = CreateFrame("frame", nil) -- Создание фрейма SlashCmdList['pull'] = function(newtime) -- Регистрируем слеш команду if newtime ~= "" then cdtime = newtime+1 else cdtime = dtime+1 -- дефолт тайм end local ending = false local start = floor(GetTime()) local throttle = cdtime frame:SetScript("OnUpdate", function() if ending == true then return end local pull = (start - floor(GetTime()) + cdtime) if (pull + 1) == throttle and pull >= 0 then if pull == 0 then -- на 0 timer(attack, channel) -- Сообщение пула throttle = pull ending = true else timer("Talandras: Пулл через "..pull.."", channel) -- Считаем... throttle = pull -- После отсчета включаем пулл. end end end) end Сразу смотрим локальное значение Code local dtime = 7 Это значит что отчет будет вестись от 7 до 0 после 0 будет включатся функция PULL, и анонсировать ">>>> ПУЛЛ!! <<<<" Code local attack = ">>>> ПУЛЛ!! <<<<" Локальное значение. Текст который выводится на цифре 0. Code local name = UnitName("player"); Получаем имя игрока использующего этот аддон. (это будет использоваться в приветствие) Code function Anounce(text) Создаем функцию анонса (приветствие) Code DEFAULT_CHAT_FRAME:AddMessage(text, 1.0, 0.0, 0.0, 1.0); Задаем параметр функции что она будет писать текст при загрузки и делать его красным. Code UIErrorsFrame:AddMessage(text, 1.0, 1.0, 0, 1,10); Задаем параметр функции которая выводит сообщение по среди экрана и делает его желтым end Code function timer(text) Делаем функцию таймер (Для чата... Мне так удобнее) Code SendChatMessage(text, "RAID_WARNING", nil,nil); Задаем SendChatMessage и сразу же задаем канал Рейд объявление ( RAID_WARNING ) end Code Anounce("Talandras: Привет,"..name.."!\nДля начала отсчета пулла введи /pull или /пулл ") Приветствие. (значение " \n" используется для переноса строки.) Code SlashCmdList['pull'] = function(newtime) Регистрируем слеш команду. Code timer("Talandras: Пулл через "..pull.."", channel) Через что мы выводим наш текст.
Маме беркута привет!
|
Ах да, чтобы работало
Code local pulling = "Talandras: Пул через" т.е чтобы задавать параметр текста там то в строки Code timer("Talandras: Пулл через "..pull.."", channel) Пишем так: Code timer(""..pulling..": "..pull.."", channel)
Маме беркута привет!
|
| |||
| |||