|
Форум Обсуждение аддонов Разработка аддонов WoW Кнопка в меню игры |
Кнопка в меню игры |
Привет, сегодня мы будем делать кнопку в главном меню игры, которая будет открывать настройки аддона.
Такие кнопки делаются через библиотеки, и не только, есть люди которым лень писать эту кнопку, по этому они берут и ставят либы(библиотеки) Мы постараемся с вами сделать такую кнопку без использывания библиотек. Полезные ссылки: Инструкция по созданию toc файла - тык Ссылка на предыдущие статью - тык Скачать notepad++ - тык API функции - тык Как и всегда создаем папку для аддона, в папке создаем 2 файла. Первый файл toc и второй файл lua. Тос файл называем так же как и папку с аддоном(если назвать по другому вы можете столкнутся с неработоспособностью аддона) Теперь открываем тос документ и заполняем его.. После того как заполнили тос файл, открываем наш lua файл и изменяем кодировку на UTF-8 (Это нужно для того чтобы отображался русский текст) После того как изменили кодировку пишем туда: Code wowjp = {} wowjp.Menu = {} wowjp.Menu.Object = GameMenuFrame wowjp.Menu.Buttons = {} function wowjp.AddButton(text, pos, func) if not text then table.insert(wowjp.Menu.Buttons, 0) return nil end local button; if type(text) == "table" then button = text button:SetParent(wowjp.Menu.Object) else button = CreateFrame("BUTTON", nil, wowjp.Menu.Object, "GameMenuButtonTemplate") button:SetText(text or "") end if func then button:SetScript("OnClick", func) end if pos then table.insert(wowjp.Menu.Buttons, pos, button) else table.insert(wowjp.Menu.Buttons, button) end if wowjp.Menu.Object:IsVisible() then wowjp.OnShow() end return button end function wowjp.OnShow() wowjp.orig_OnShow() local extra_yoffset = 0 local prev_button = nil local menu_height = 70 for index, button in ipairs(wowjp.Menu.Buttons) do if button == 0 then extra_yoffset = extra_yoffset - 15; else button:ClearAllPoints() if index == 1 then button:SetPoint("TOP", button:GetParent(), "TOP", 0, -37) else button:SetPoint("TOP", prev_button, "BOTTOM", 0, -1 + extra_yoffset) end menu_height = menu_height + button:GetHeight() + 1 + math.abs(extra_yoffset) prev_button = button extra_yoffset = 0 end end wowjp.Menu.Object:SetHeight(menu_height) end local addonOptionsButton = wowjp.AddButton("|cff8888FFWoWJP|r", 7, function() DEFAULT_CHAT_FRAME:AddMessage("Опции аддона") end) wowjp.AddButton(GameMenuButtonOptions) wowjp.AddButton(GameMenuButtonSoundOptions) wowjp.AddButton(GameMenuButtonUIOptions) wowjp.AddButton(GameMenuButtonKeybindings) wowjp.AddButton(GameMenuButtonMacros) wowjp.AddButton(GameMenuButtonLogout) wowjp.AddButton(GameMenuButtonQuit) wowjp.AddButton() wowjp.AddButton(GameMenuButtonContinue) wowjp.orig_OnShow = wowjp.Menu.Object:GetScript("OnShow") wowjp.Menu.Object:SetScript("OnShow", wowjp.OnShow) Весь код вам расписывать не буду, так как он очень большой Я вам распишу части кода, чтобы вы поняли из чего состоит этот аддон. Code local addonOptionsButton = wowjp.AddButton("|cff8888FFWoWJP|r", 7, function() DEFAULT_CHAT_FRAME:AddMessage("Опции аддона") end) Это наша кнопка, при нажатии на кнопку в чат будет писать "Опции аддона" т.к мы пока не будем не к чему присоединять ее, в следующем гайде я постараюсь вам рассказать как сделать "Настройки аддона" в вкладки "Интерфейс" Code wowjp.AddButton("|cff8888FFWoWJP|r", 7, function() Название кнопки и место расположения, у нас написано WoWJP синим цветом. В кнопки вы можете использовать любые скрипты, на цвета и т.д Code wowjp.AddButton(GameMenuButtonOptions) wowjp.AddButton(GameMenuButtonSoundOptions) wowjp.AddButton(GameMenuButtonUIOptions) wowjp.AddButton(GameMenuButtonKeybindings) wowjp.AddButton(GameMenuButtonMacros) wowjp.AddButton(GameMenuButtonLogout) wowjp.AddButton(GameMenuButtonQuit) wowjp.AddButton() wowjp.AddButton(GameMenuButtonContinue) Стандартные пункты в меню игры. Вот и все, в в следующей статьи мы будем делать настройки аддона в "Интерфейсе" [download]Скачать - 3.3[/download]
Прикрепления:
3225805.jpg
(274.5 Kb)
Маме беркута привет!
|
Неплохо,под ту кнопку можно поставить кучу интересных прибомбасов)
Сборка 3.3.5a FUN Core Готова.
http://wowjp.net/forum/123-184824-1 30.11.2011:Looked the last series of the Book of Death,anime super,that's only in the end it was a great pity Kira.Who did not look look =)
Сообщение # 2 написано 02.12.2011 в 17:00
|
| |||
| |||