|
Форум Обсуждение аддонов Разработка аддонов WoW Замена грифонов |
Замена грифонов |
Здравствуйте. Сегодня мы будем делать аддон который будет заменять надоедливых нам "Грифонов" по бокам панели со скилами на нужную нам картинку. Картинка обязательно должна быть в TGA формате.
Инструкция по созданию toc файла - тык Ссылка на предыдущие статью - тык Скачать notepad++ - тык API функции - тык SetTexture Code Texture:SetTexture("texture") или Code Texture:SetTexture(red, green, blue [, alpha]) texture -- Путь до картинки(текстуры). Не забывайте что клиент не читает такие форматы как jpg, gif и т.д red - Красный цвет. (0.0 - 1.0) green - Зеленый цвет. (0.0 - 1.0) blue - Синий цвет. (0.0 - 1.0) alpha - Прозрачность. Работа с кодом Для начала создадим картинку которую будем использовать в аддоне. Так как у меня уже есть картинка (я приложу их к аддону в конце статьи) то я буду использовать свою, а вы свою. ВАЖНО: картинку называем так как хотим называть подкоманды аддона. Создаем документ lua, меняем кодировку на UTF-8 и пишем: Code function artic(msg) artic - Название функции msg - Аргумент Дальше создаем условие: Code if (msg == "frost") then print("Вы поставили картинку "..msg) elseif (msg == "blood") then print("Вы поставили картинку "..msg) elseif (msg == "shadow") then print("Вы поставили картинку "..msg) elseif (msg == "unholy") then print("Вы поставили картинку "..msg) end if - Задаем условие msg == "frost" - Если msg (то что пишем после слеш команды) равно frost то срабатывает. elseif - Приравниваем к if Ну и так далее. Хочу напомнить что параметр if обязательно закрывается. Идем дальше... Добавляем SetTexture к фрейме "Грифонов" Так как сама фрейма грифонов уже присутствует в игровом клиенте нам нужно всего лишь заменить текстуру. Code MainMenuBarLeftEndCap:SetTexture("Interface\\AddOns\\art\\art\\"..msg..".tga") MainMenuBarRightEndCap:SetTexture("Interface\\AddOns\\art\\art\\"..msg..".tga") MainMenuBarLeftEndCap:Show() MainMenuBarRightEndCap:Show() "..msg.." - Мы берем информацию из условий (Не не зря я сказал чтобы называли картинку так как назовете условие) Далее закрываем функцию Code end И переходим к добавлению слеш команды. Code SlashCmdList["ARTIC_COMMAND"] = artic; SLASH_ARTIC_COMMAND1 = "/art"; Вот весь то, что у нас получилось (код). Code function artic(msg) if (msg == "frost") then print("Вы поставили картинку "..msg) elseif (msg == "blood") then print("Вы поставили картинку "..msg) elseif (msg == "shadow") then print("Вы поставили картинку "..msg) elseif (msg == "unholy") then print("Вы поставили картинку "..msg) end MainMenuBarLeftEndCap:SetTexture("Interface\\AddOns\\art\\art\\"..msg..".tga") MainMenuBarRightEndCap:SetTexture("Interface\\AddOns\\art\\art\\"..msg..".tga") MainMenuBarLeftEndCap:Show() MainMenuBarRightEndCap:Show() end SlashCmdList["ARTIC_COMMAND"] = artic; SLASH_ARTIC_COMMAND1 = "/art"; Ну вот и все. То что у меня получилось я прикреплю ниже. Удачи вам в создании аддона! [download]Art - для WoW 3.3[/download]
Прикрепления:
7320595.png
(285.6 Kb)
Маме беркута привет!
|
Quote (Nyll) Вот весь то, что у нас получилось (код). Скорее всего,вот ВСЕ то,что у нас получилось =) А вообще аддон прикольный,и очень даже пригодится =) Тем более приятнее пользоваться,если сделал сам.
Сообщение # 10 написано 24.03.2012 в 09:57
|
Статья кул! ну делать нестал лень )))
Сообщение # 11 написано 25.03.2012 в 01:51
|
Мм интересная статья, но можно проделать сие изменение путем создания патча, да функции не все что в аддоне но проще и быстрее)) Кстати, Morgaz замену курсора тоже можно сделать патчем, если надо пиши в личку)
Сообщение # 12 написано 18.04.2012 в 13:31
|
Извиняюсь, а можно узнать, как можно сделать чтоб этих грифонов не было вообще, или хотяб их не было видно (были прозрачными). У меня эти птички закрывают аддон и мне невидно статистические данные, помогите а...
5.jpg Добавлено (19.04.2012, 23:14)
Сообщение # 14 написано 19.04.2012 в 23:14
|
Используя Действие, при нажатии на кнопку
Кнопка при нажатии изменяет грифонов. Code mybutton = CreateFrame("Button","mybutton",UIParent,"UIPanelButtonTemplate") --создание фрейма кнопки mybutton:SetPoint("CENTER",300,-20) -- позиция кнопки mybutton:SetWidth(80) -- установка ширины кнопки mybutton:SetHeight(23) -- установка высоты кнопки mybutton:SetText("Blood"); -- текст кнопки mybutton:SetScript("OnMouseDown", function(self,button,...) if (button=="LeftButton") then MainMenuBarLeftEndCap:SetTexture("Interface\\AddOns\\art\\art\\Blood.tga");MainMenuBarRightEndCap:SetTexture("Interface\\AddOns\\art\\art\\Blood.tga") end end); Прикрепления:
1458539.png
(202.1 Kb)
|
Долго мучался, но всё же получилось. Спасибо автору и gradinas за полезную инфу.
Сообщение # 20 написано 11.03.2013 в 12:41
|
| |||
| |||