• Страница 1 из 1
  • 1
Сообщения дня гильдии
Nyll
Здравствуйте. Сегодня мы будем делать аддон, который выводит сообщение дня гильдии. Сообщение обновляется в реальном времени, нам не нужно писать /reload и т.д.



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

Создаем папку для аддона, в ней 2 файла 1 toc 2 lua. В toc нечего примечательного нету. Вот мой toc файл:

Code
## Interface: 40302
## Title: GuildMessage
## Notes: Сообщение дня

GuildMessage.lua


Я не старался его забивать всяким хламом так что если вам нужно будет что-то дописать, то дорисуйте smile

Теперь открываем наш 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)


Я уже расставил комментарии к коду, но напишу сюда важные элементы кода которые вам будут нужны smile

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("Сообщение дня")

Текст

Вот и все ) Ссылка для скачки ниже. УДАЧИ!


[download]GuildMessage - 4.3
[/download]
Прикрепления: 2908599.jpg (364.9 Kb) · 2046040.png (1.15 Mb)
Маме беркута привет!
Сообщение # 1 отредактировано Nyll - Пятница, 24.02.2012, 12:09
EnerGO
Скаут
Спасибо за труд.НО адон целиком и полностью актуален бесполезен.
п.с
Лично мое мнение.
Сообщение # 2 написано 04.02.2012 в 02:11
Juline
!1
Quote (EnerGO)
Спасибо за труд.НО адон целиком и полностью актуален бесполезен.
п.с
Лично мое мнение.

Здесь не на аддон смотреть нужно, а на используемые методы. Понятное дело, что данной аддон мало где можно применить, но используя описанные подходы и АПИ можно сделать то, что нужно конкретно тебе.
Сообщение # 3 написано 04.02.2012 в 04:00
skyline_pr0
Скаут
Впринципе норм, лови +)
http://www.siti.kiev.ua/no_klik.html
Сообщение # 4 написано 04.02.2012 в 10:45
respectboy
Скаут
Cпасибо большое +
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
Сообщение # 5 написано 04.02.2012 в 11:38
Poбот
Король железяк.
Денчик =) сделай уже что-нибудь полезное а не всякую извините фигню........ =)а так все ок
Сообщение # 6 написано 04.02.2012 в 18:07
winmaster52
Капрал
Сообщение # 7 написано 08.02.2012 в 17:28
  • Страница 1 из 1
  • 1
Поиск: