• Страница 1 из 1
  • 1
Кнопка у мини карты
Nyll


Приветствую всех сегодня вам расскажу, как сделать модуль к аддону который добавляет иконку к мини карте.

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

При наведении на кнопку у мини карты будет появляться GameTooltip с названием нашего аддона.

Начнем делать аддон с того что создадим переменную с названием нашего аддона.

Code
local addonname = "MynameAddon"


Возможно она у вас уже есть она нам понадобится для того чтобы при наведении на кнопку мини карты показывало название вашего аддона.

Дальше создаем основную, фрейму кнопки.

Code
local IconMiniMap = CreateFrame("Button", "MyIconMiniMapButton", Minimap)


Как вы могли заметить расположение фреймы кнопки будет на фрейме под названием «Minimap».

Теперь добавим эффектов к нашей кнопки. Эффект будет «Свечение» при наведении на кнопку.

IconMiniMap:SetHighlightTexture("Interface\\Minimap\\UI-Minimap-ZoomButton-Highlight");

Дальше указываем размер нашей кнопки.

Code
    IconMiniMap:SetWidth(32)
    IconMiniMap:SetHeight(32)
    IconMiniMap:SetFrameStrata("LOW")


Указываем позицию кнопки на мини карте.

Code
    IconMiniMap:SetPoint("CENTER", -12, -80)


Теперь создаем текстуру для кнопки.

Code
IconMiniMap.icon = IconMiniMap:CreateTexture(nil, "BACKGROUND")


Дальше указываем путь к текстуре.
Путь можно узнать тут

Code
  IconMiniMap.icon:SetTexture("interface\\FriendsFrame\\UI-Toast-ChatInviteIcon")


Указываем размер.

Code
               IconMiniMap.icon:SetWidth(22);
                      IconMiniMap.icon:SetHeight(22);


Указываем позицию текстуры на кнопке.

Code
IconMiniMap.icon:SetPoint("CENTER", 0, 0)


Дальше создаем еще одну текстуру для рамки кнопки.

Code
IconMiniMap.border = IconMiniMap:CreateTexture(nil, "ARTWORK")


Указываем путь к текстуре рамки для кнопки.

Code
  IconMiniMap.border:SetTexture("Interface\\Minimap\\MiniMap-TrackingBorder")


Указываем позицию.

Code
  IconMiniMap.border:SetTexCoord(0,0.6,0,0.6);
     IconMiniMap.border:SetAllPoints(IconMiniMap);


Дальше создаем событие, для кнопки которое, будет выполнять открытие фреймы при клике на кнопку.

Code
IconMiniMap:SetScript("OnClick", function(self)
        Frame:Show()
end)


Теперь создаем событие, которые будет выводить GameTooltip при наведении на кнопку у мини карты.

Code
IconMiniMap:SetScript("OnEnter",function(self)
       GameTooltip:SetOwner(self, "ANCHOR_LEFT")
       GameTooltip:AddLine(addonname)
       GameTooltip:Show()
     end)


Дальше создаем событие которое будет прятать нашу надпись после того как мы убрали курсор с кнопки.

Code
IconMiniMap:SetScript("OnLeave", function(self)    
     GameTooltip:Hide();
     self.icon:SetPoint("CENTER", 0, 0);
end)


Хотелось бы напомнить, что Lua код читается с верху в низ.
Если вы создадите сначала фрейму а потом текстуру для нее то будет ошибка потому-что фрейма будет посылать запрос к текстуре, которая еще не загрузилась и по этому будет ошибка.
Я это напомнил вам из-за того что мне задают много вопросов почему у них не работает аддон.

Вот и все у нас готова кнопка для мини карты.
Хочу сказать спасибо человеку Kante за идею для гайда.

[download]minimapicon.lua - для WoW 3.X, 4.X
[/download]
Маме беркута привет!
Сообщение # 1 отредактировано Nyll - Среда, 12.09.2012, 19:09
0niwone
WoW-Carnge <Dev>
Ну наконец хоть что то полезное. Хоть и не особо полезное, но и на том спасибо.
Quote (Nyll)
Вот оно что.. *Тот самый смайл*

именно)
Пользуюсь гарант услугами pwlvl.ru
Сообщение # 2 написано 12.09.2012 в 22:03
Zver107
Arcenal-Team|Admin
класс надо пробнуть

Сообщение # 3 написано 12.09.2012 в 22:22
Juline
!1
Да, полезно. И пунктуация душу радует ).
Сообщение # 4 написано 13.09.2012 в 01:47
Ascreed
•°•Very Nice•°•
нормально)
Сообщение # 5 написано 15.09.2012 в 19:00
Vladyxxa
Капрал
тема полезна, у меня есть предложение. Nyll советую сделай тему с цикличискими повторениями(циклами), думаю всем будет полезна такая тема;)
Сообщение # 6 написано 16.09.2012 в 02:39
Nyll
Quote (Vladyxxa)
тема полезна, у меня есть предложение. Nyll советую сделай тему с цикличискими повторениями(циклами), думаю всем будет полезна такая тема;)

маленькая статья будет.
Маме беркута привет!
Сообщение # 7 написано 17.09.2012 в 10:28
WoWCore
Скаут
А как заставить двигаться эту кнопку ?
Афоризм - изречение, выражающее с предельной лаконичностью в отточенной форме оригинальную мысль.
Сообщение # 8 написано 16.03.2014 в 21:40
  • Страница 1 из 1
  • 1
Поиск: