|
Форум Обсуждение аддонов Разработка аддонов WoW Сообщения дня гильдии |
Сообщения дня гильдии |
Здравствуйте. Сегодня мы будем делать аддон, который выводит сообщение дня гильдии. Сообщение обновляется в реальном времени, нам не нужно писать /reload и т.д.
Полезные ссылки: Инструкция по созданию toc файла - тык Ссылка на предыдущие статью - тык Скачать notepad++ - тык API функции - тык Создаем папку для аддона, в ней 2 файла 1 toc 2 lua. В toc нечего примечательного нету. Вот мой toc файл: Code ## Interface: 40302 ## Title: GuildMessage ## Notes: Сообщение дня GuildMessage.lua Я не старался его забивать всяким хламом так что если вам нужно будет что-то дописать, то дорисуйте Теперь открываем наш lua документ и меняем кодировку на UTF-8. Меняем мы кодировку для того, чтобы в игре не отображались иероглифы. Теперь в нашем Lua документе пишем код самого аддона: Code GuildM = "" local GuildMessage = CreateFrame("Frame", nil, UIParent) -- Создаем фрейму GuildMessage:SetPoint("CENTER", 0, GetScreenHeight()/5) -- Указываем месторасположение фреймы GuildMessage:SetWidth(300) -- Толщина GuildMessage:SetHeight(65) -- Высота GuildMessage:SetToplevel(true) GuildMessage:SetMovable(true) GuildMessage:EnableMouse(true) GuildMessage:SetScript("OnMouseDown", GuildMessage.StartMoving) GuildMessage:SetScript("OnMouseUp", GuildMessage.StopMovingOrSizing) GuildMessage:SetBackdrop( { bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", insets = { left = 5, right = 5, top = 5, bottom = 5 } }); -- Текстуры GuildMessage:SetBackdropColor(1,0,1,0.8); -- Цвет GuildMessage.button = CreateFrame("Button", nil, GuildMessage, "UIPanelCloseButton") -- Фрейма закрытия GuildMessage.button:SetPoint("TOPRIGHT",-7,-7) -- Указываем месторасположение фреймы GuildMessage.button:SetScript("OnClick", function() -- Что делаем при клики: GuildMessage:Hide() -- Закрываем фрейм end) GuildMessage.header = GuildMessage:CreateFontString(nil, "OVERLAY", "GameFontNormal") -- Делаем надпись GuildMessage.header:SetPoint("TOPLEFT", GuildMessage, "TOPLEFT", 0, -20) -- Позиция GuildMessage.header:SetWidth(GuildMessage:GetRight() - GuildMessage:GetLeft()) GuildMessage.header:SetText("Сообщение дня") -- Текст GuildMessage.text = GuildMessage:CreateFontString(nil, "OVERLAY", "GameFontWhite") -- Делаем надпись GuildMessage.text:SetPoint("TOPLEFT", GuildMessage, "TOPLEFT", 22, -42) -- Позиция + текст GuildMessage.text:SetWidth(GuildMessage:GetRight() - GuildMessage:GetLeft() - 40) GuildMessage.text:SetJustifyH("LEFT") GuildMessage:SetScript("OnEvent", function(self, event, arg1) -- Делаем эвент if (event == "GUILD_MOTD") then -- Эвент GUILD_MOTD (сморим на api.wowjp.net) GuildM = arg1 else GuildM = IsInGuild() and GetGuildRosterMOTD() or "" end if (GuildM ~= "") then GuildMessage.text:SetText(GuildM) GuildMessage:SetHeight(GuildMessage.text:GetHeight() + 65) GuildMessage:Show() else GuildMessage:Hide() end end) GuildMessage:RegisterEvent("PLAYER_LOGIN") -- Как мы логинимся >> GuildMessage:RegisterEvent("GUILD_MOTD") -- Загружается эвент GUILD_MOTD (сморим на api.wowjp.net) Я уже расставил комментарии к коду, но напишу сюда важные элементы кода которые вам будут нужны Code local GuildMessage = CreateFrame("Frame", nil, UIParent) Создаем фрейму Code GuildMessage:SetBackdrop( { bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", insets = { left = 5, right = 5, top = 5, bottom = 5 } }); Текстуры Code GuildMessage:SetBackdropColor(1,0,1,0.8); Цвет Code GuildMessage.button = CreateFrame("Button", nil, GuildMessage, "UIPanelCloseButton") Фрейма закрытия Code GuildMessage.button:SetPoint("TOPRIGHT",-7,-7) Указываем месторасположение фреймы Code GuildMessage.button:SetScript("OnClick", function() Что делаем при клики: Code GuildMessage:Hide() Закрываем фрейм Code GuildMessage.header = GuildMessage:CreateFontString(nil, "OVERLAY", "GameFontNormal") Делаем надпись Code GuildMessage.header:SetPoint("TOPLEFT", GuildMessage, "TOPLEFT", 0, -20) Позиция Code GuildMessage.header:SetText("Сообщение дня") Текст Вот и все ) Ссылка для скачки ниже. УДАЧИ! Прикрепления:
2908599.jpg
(364.9 Kb)
·
2046040.png
(1.15 Mb)
Маме беркута привет!
|
Quote (EnerGO) Спасибо за труд.НО адон целиком и полностью актуален бесполезен. п.с Лично мое мнение. Здесь не на аддон смотреть нужно, а на используемые методы. Понятное дело, что данной аддон мало где можно применить, но используя описанные подходы и АПИ можно сделать то, что нужно конкретно тебе.
Сообщение # 3 написано 04.02.2012 в 04:00
|
Денчик =) сделай уже что-нибудь полезное а не всякую извините фигню........ =)а так все ок
Сообщение # 6 написано 04.02.2012 в 18:07
|
спасибо!
Сообщение # 7 написано 08.02.2012 в 17:28
|
| |||
| |||