• Страница 1 из 1
  • 1
Форум » Обсуждение аддонов » Разработка аддонов WoW » Таймер до пула
Таймер до пула
Nyll
Всем привет! В эту пятницу мы будем делать рейдовый аддон, который дает отсчет до пула боса. Этот аддон я делал как для себя так и для нашей гильдии. С ним очень легко начать бой с боссом/мобами.



Полезные ссылки:
Инструкция по созданию 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)

Через что мы выводим наш текст.


[download]Talandras - 4.3
[/download]
Маме беркута привет!
Сообщение # 1 отредактировано Nyll - Пятница, 24.02.2012, 12:08
EnerGO
Скаут
Подпись увидит весь рейди или онли тот у кого аддон ?
И возможно ли сделать под 3.3.5.
Сообщение # 2 отредактировано EnerGO - Суббота, 11.02.2012, 15:57
Nyll
Quote (EnerGO)
Подпись увидит весь рейди или онли тот у кого аддон ?

Канал стоит RAID_WARNING т.е объявление рейду.

Quote (EnerGO)
И возможно ли сделать под 3.3.5.

в аддоне нету критических функций. Да можно.
Маме беркута привет!
Сообщение # 3 написано 11.02.2012 в 17:25
Nyll
Ах да, чтобы работало
Code
local pulling = "Talandras: Пул через"

т.е чтобы задавать параметр текста там то в строки
Code
timer("Talandras: Пулл через "..pull.."", channel)

Пишем так:
Code
timer(""..pulling..": "..pull.."", channel)
Маме беркута привет!
Сообщение # 4 отредактировано Nyll - Суббота, 11.02.2012, 17:29
EnerGO
Скаут
Спасибо.
Сообщение # 5 написано 11.02.2012 в 20:15
RazArt
Тазовод
мне одному кажется или луа дико похож на жасс?)
DumpMe v1.0 - система автоматического переноса персонажей

Вышла в свет первая стабильная версия. Писать в скайп - razart8
Сообщение # 6 написано 12.02.2012 в 14:27
4elovekk
Скаут
етот аддон можно поставить на любой патч к примеру мне нужно к 4.3.2 че мне менять там илии все как есть?
Сообщение # 7 написано 13.02.2012 в 20:34
EnerGO
Скаут
4elovekk, в файле тос
Сообщение # 8 написано 13.04.2012 в 10:55
Форум » Обсуждение аддонов » Разработка аддонов WoW » Таймер до пула
  • Страница 1 из 1
  • 1
Поиск: