|
Форум Обсуждение аддонов Разработка аддонов WoW Меню текстур |
Меню текстур |
Всем привет. Сегодня я вам расскажу, как создать меню смены текстур для фреймы. Такое меню очень может разнообразить ваш аддон. В этом гайде я буду использовать 2 кнопки, 1 фрейму и функцию с двумя условиями
Инструкция по созданию toc файла - клик Ссылка на предыдущие статью - Обновление аддона Скачать notepad++ - Скачать API функции - WoWJP API Создадим фрейму над которой будем эксперементить. Code myframes = CreateFrame("FRAME","my_Frame",UIParent); Мы создали фрейму приравняли ее к переменной "myframes". Дальше указываем размер фреймы, я указал 460 на 150 вы указывайте какой хотите размер. Code myframes:SetWidth(460); myframes:SetHeight(150); Теперь создаем текстуру фрейме которая будет по умолчанию. Code myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Border",}); Логичней было бы в массив ее засунуть но можно и так. (А зачем в массив? - Ну, допустим, у нас очень много фрейм, и чтобы не писать эту строчку легче было бы просто написать название массива *Злобная ухмылка*) Дальше указываем где будет наша фрейма. В моем случаи она будет по среди экрана Code myframes:SetPoint("CENTER"); Такс... фрейму мы создали. (Передвиг фреймы делаем сами если нужно) Теперь перейдем к кнопкам (но лучше сделать это все на выдвигающемся меню... но так как я про него не говорил не разу, делать будем на кнопках) Code testure = CreateFrame("Button",nil,myframes,"OptionsButtonTemplate") testure:Enable(true) testure:SetWidth(67) testure:SetHeight(30) testure:SetText("Применить") testure:SetPoint("CENTER",myframes,-125,0) testure:SetScript("OnClick",function() testuring("1") end) Первая кнопка. Первая кнопка будет нужна нам для активации новых текстур. Как вы заметили, она включает функцию "testuring". После название функции я пишу название условия в скобках, это нужно чтоб запустить его. (Это можно сделать без условий, просто в 2х функциях. Ну мы же не из индии *Смех*, так что сделаем через условие.) Создаем вторую кнопку которая будет делать текстуру по умолчанию. Code retesture = CreateFrame("Button",nil,myframes,"OptionsButtonTemplate") retesture:Enable(true) retesture:SetWidth(67) retesture:SetHeight(30) retesture:SetText("Отмена") retesture:SetPoint("CENTER",myframes,125,0) retesture:SetScript("OnClick",function() testuring("2") end) Теперь перейдем к самой функции с условиями: Название функции, как вы уже поняли будет "testuring". Создаем функцию testuring с аргументом MSG. Code function testuring(msg) Конечно, вместо MSG, можно сунуть туда что угодно но я сделал как делаю всегда Дальше делаем условие под названием "1" Code if msg == "1" then Теперь делаем то что это условие будет выполнять Первое, что я туда засунул это сообщение что текстура установлена. Code print("Текстура 1 установлена.") Второе это сама текстура на которую мы будем менять. Code myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",}); Второе условие возвращает оригинальную текстуру. Code elseif msg == "2" then print("Текстура отменена") myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Border",}); Теперь закрываем функцию двумя ендами. Code end end И все наш скрипт готов! Весь код: Code myframes = CreateFrame("FRAME","my_Frame",UIParent); myframes:SetWidth(460); myframes:SetHeight(150); myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Border",}); myframes:SetPoint("CENTER"); testure = CreateFrame("Button",nil,myframes,"OptionsButtonTemplate") testure:Enable(true) testure:SetWidth(67) testure:SetHeight(30) testure:SetText("Применить") testure:SetPoint("CENTER",myframes,-125,0) testure:SetScript("OnClick",function() testuring("1") end) retesture = CreateFrame("Button",nil,myframes,"OptionsButtonTemplate") retesture:Enable(true) retesture:SetWidth(67) retesture:SetHeight(30) retesture:SetText("Отмена") retesture:SetPoint("CENTER",myframes,125,0) retesture:SetScript("OnClick",function() testuring("2") end) function testuring(msg) if msg == "1" then print("Текстура 1 установлена.") myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",}); elseif msg == "2" then print("Текстура отменена") myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Border",}); end end Спасибо за внимание, простите за задержку. Удачной работы.
Маме беркута привет!
|
1. А скриншоты будут?
Пару десятков ошибок в пунктуации. Понимаю, что у тебя сломалась кнопка с запятой, но скопировать и вставить можно ведь? Quote (Nyll) Второе это сама текстура на которую мы будем менять. , которую Quote (Nyll) Теперь делаем то что это условие будет выполнять , что это Quote (Nyll) Первое что я туда засунул это сообщение что текстура установлена. Первое, что Quote (Nyll) Конечно за место MSG, можно сунуть туда что угодно но я сделал как делаю всегда Конечно, ВМЕСТО можно сунуть туда что угодно, но я сделал как делаю всегда Quote (Nyll) Название функции как вы уже поняли будет "testuring". , как вы уже поняли Quote (Nyll) Как вы заметили она включает как вы заметили, Quote (Nyll) Это можно сделать без условий просто в 2х функциях ну мы же не из индии *Смех* так что сделаем через условие без условий, просто в 2х функциях. Ну мы же не из индии *Смех*, так что сделаем через условие. Quote (Nyll) но так как я про него не говорил не разу делать будем на кнопках но так как я про него не говорил не разу, делать будем на кнопках Quote (Nyll) Ну допустим у нас очень много фрейм и чтобы не писать Ну, допустим, у нас очень много фрейм, и чтобы не писать Quote (Nyll) Сегодня я вам расскажу как создать меню смены текстур для фреймы. Сегодня я вам расскажу, как создать Quote (Nyll) Инструкция по созданию toc файла - тык Ссылка на предыдущие статью - тык Скачать notepad++ - тык API функции - тык Вместо "тык" хорошо бы заголовок страницы, на которую ведет ссылка...
Сообщение # 2 написано 03.08.2012 в 12:58
|
Quote (Nyll) Но я запишу видео а не скриншот Да, это еще лучше будет. Quote (Nyll) Передвиг фреймы делаем сами если нужно Передвигаем? Quote (Nyll) В моем случаи Случае? Quote (Nyll) я указал 460 на 150 вы указывайте какой хотите размер. , вы указывайте... Quote (Nyll) Мы создали фрейму приравняли ее к переменной "myframes". Мы создали фрейму, приравняли Сейчас хоть более-менее человеческий вид. Quote (Nyll) Логичней было бы в массив ее засунуть но можно и так
Сообщение # 5 написано 03.08.2012 в 13:33
|
Quote (Vladyxxa) я конечно прошу прощение за оффтоп, но нулл ты занялся балаболией(без обид)? насколько я помню(вижу в данный момент) ты обещал в следующей теме совершенно другое, или я ошибаюсь? Уважаемый, я думал что то можно реализовать на пиратке, но потом я узнал что нельзя А только для оффы я думаю смысла делать нету.
Маме беркута привет!
Сообщение # 10 написано 05.08.2012 в 10:30
|
Quote (Nyll) Уважаемый, я думал что то можно реализовать на пиратке, но потом я узнал что нельзя А только для оффы я думаю смысла делать нету. понятно, извините за наезд. Quote (Forumwowjpp) Про что он хочет про то и делает гайды. вас не спрашивали. Прошу вас не влазить, веть это не красиво с вашей стороны. |
| |||
| |||