• Страница 1 из 1
  • 1
Гайд по созданию аддонов типа SayStun
Nyll
Решил рассказать как создаются аддоны типа SaySapped,CCReport и другие... Такие типы аддонов делаются очень легко и просто.. Без библиотек и т.д

Я для гайда возьму внутренности аддона SaySapped, так как он проще.

Создаем на рабочем столе или где вам удобно папку SayStun, или любое ваше название prof

После создания папки открываем ее и создаем файл SayStun.toc



Открываем SayStun.toc я советую открывать нотпадом!

Далее если вы будете использовать русский шрифт изменяем кодировку документа на UTF-8

Содержимое SayStun.toc, будет таким

Code
## Interface: 40200
## Title: SayStun
## Version: 1.1
## Notes: тяп ляп
## Author: Я
SayStun.lua


Разберем все это по частям

Code
## Interface: 40200


Версия клиента у нас 4.2.0

Code
## Title: SayStun


Название аддона которое будет отображаться в модификациях
(Можно по русски если стоит UTF-8)

Code
## Version: 1.1


Версия аддона

Code
## Notes: тяп ляп


Описание аддона которое будет отображаться в модификациях
(Можно по русски если стоит UTF-8)

Code
## Author: Я


Ваш милый ник yes

Code
SayStun.lua


Тук-тук сердечко нашего аддона

Редактируем наш SayStun.toc под себя и сохраняем.





SayStun.lua


На конец то закончили с SayStun.toc, переходим теперь к SayStun.lua

Создаем SayStun.lua, открываем его тем же нотпадом... и пишем туда текст

Code
local SayStun = CreateFrame("Frame")
SayStun.playername = UnitName("player")

SayStun:SetScript("OnEvent",function(...)
         local args = {...}

         if ((args[14]== 6770)
         and (args[11] == SayStun.playername)
         and (args[4] == "SPELL_AURA_APPLIED" or args[4] == "SPELL_AURA_REFRESH"))
         then
          SendChatMessage("Мать вашу меня застанили!", "SAY")
          DEFAULT_CHAT_FRAME:AddMessage("Застанил: "..(args[7] or "(unknown)"))
         end
end)

SayStun:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
DEFAULT_CHAT_FRAME:AddMessage("SayStun Включен (утячка)")


Каждую строку кода расписывать не буду т.к это очень долго да и нудно но основное я вам расскажу thumb

Code
SayStun:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
DEFAULT_CHAT_FRAME:AddMessage("SayStun Включен (утячка)")


При входе в игру вам будет писать SayStun Включен (утячка) - То есть это приветствие

Code
SendChatMessage("Мать вашу меня застанили!", "SAY")


Ну тут и вмг поймет что при сапе в чат будет писаться следующие "Мать вашу меня застанили!"

Code
DEFAULT_CHAT_FRAME:AddMessage("Застанил: "..(args[7] or "(unknown)"))


Вам и только вам пишет кто вас застанил...

Code
if ((args[14]== 6770)


Это самое главное! - это ид спела который включает всю функцию... То есть если на вас ударят спелом 6770 аддон напишет в чат "Мать вашу меня застанили!"
Вы можете изменить ид на любой другой стан...

Редактируем под себя и жмем сохранить



И в итоге мы получаем отличный аддон для арены!
Так же вы можете внести в аддон еще спелов и аддон будет реагировать на них...
Для этого вам нужно создать еще один файл например SayStun2.lua и скопировать в него код
Code
local SayStun = CreateFrame("Frame")
SayStun.playername = UnitName("player")

SayStun:SetScript("OnEvent",function(...)
         local args = {...}

         if ((args[14]== ид спела)
         and (args[11] == SayStun.playername)
         and (args[4] == "SPELL_AURA_APPLIED" or args[4] == "SPELL_AURA_REFRESH"))
         then
          SendChatMessage("Мать вашу меня застанили!", "SAY")
          DEFAULT_CHAT_FRAME:AddMessage("Застанил: "..(args[7] or "(unknown)"))
         end
end)



А

Code
if ((args[14]== ид спела)


за место "ид спела" вписуем туда ид который найдете на вовхеаде

После чего прописуем в SayStun.toc, после SayStun.lua, наш 2 файл SayStun2.lua,
Будет выглядить так

Code
## Interface: 40200
## Title: SayStun
## Version: 1.1
## Notes: тяп ляп
## Author: Я

SayStun.lua
SayStun2.lua


Ну вот и все snap the end ok

А вот то что мы с вами сделали

[download]SayStun - для WoW 4.2[/download]


Гайд написал nyll специально для WOWJP.net
Маме беркута привет!
Сообщение # 1 отредактировано Nyll - Пятница, 24.02.2012, 12:21
IIBlooderboYII
♬♩ Quiero la música☊
Nyll,Спасибо все подробно ))

А для вас я не кто , как и вы для меня .

******=Sandra - Around My Heart 3:41
Делаю любые фейки на ваш вкус , под ваш снифер ! Писать ICQ "626-335-400" , Skype "Chestoriko"
Сообщение # 2 написано 19.09.2011 в 00:48
ebjaiko
Командир
В самом низу ошибка :)Гад написал* А так хорошая вешь:)Сделал себе кричалку smile
Сообщение # 3 написано 19.09.2011 в 09:52
PashokRomanow
Скаут
спс Nyll у тебя оч хорошие гайды))
Сообщение # 4 написано 28.05.2012 в 21:56
nyar
Скаут
Не очерь рационально делать *.lua файл для каждого стана. Лучше создать ещё одну функцию.
Но намного Качественне написать функцию которая проверет "входящий" спел исли это стан то функция возвращает true и код функции с собщении выполняется.
Пример на псевдокоде:
// функция_сообщения() будет выполнятся если функция_проверки( ) вернёт true
функция_сообщения( функция_проверки(скилл) ) begin
печатаем( " меня застанил ", name )
end
функция_проверки(скилл) begin
if ( скилл == номеру_стуна_1 )
...
elif ( скилл == номеру_стуна_n )
// Можно возвартить скажем название спела! Тогда мы в функция_сообщения() можем немного её переделав выводить сообщение с название конкретного стана :)
return true
else
return false
end
Сообщение # 5 отредактировано nyar - Понедельник, 23.07.2012, 01:09
mmogrand
Скаут
Может можно проще? Я заметил только одно условие у нула... я думаю что если снизу подписать эльсеИФ, то я думаю оно будет работать) И второй луа файл никчему)
Сообщение # 6 отредактировано mmogrand - Четверг, 30.05.2013, 23:10
  • Страница 1 из 1
  • 1
Поиск: