|
Форум Обсуждение аддонов Разработка аддонов WoW Гайд по созданию аддонов типа SayStun |
Гайд по созданию аддонов типа SayStun |
Решил рассказать как создаются аддоны типа SaySapped,CCReport и другие... Такие типы аддонов делаются очень легко и просто.. Без библиотек и т.д
Я для гайда возьму внутренности аддона SaySapped, так как он проще. Создаем на рабочем столе или где вам удобно папку SayStun, или любое ваше название После создания папки открываем ее и создаем файл 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: Я Ваш милый ник 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 Включен (утячка)") Каждую строку кода расписывать не буду т.к это очень долго да и нудно но основное я вам расскажу 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 Ну вот и все the end А вот то что мы с вами сделали [download]SayStun - для WoW 4.2[/download] Гайд написал nyll специально для WOWJP.net
Маме беркута привет!
|
В самом низу ошибка :)Гад написал* А так хорошая вешь:)Сделал себе кричалку
Продам ключи,dc hook,time breaker|dota2| (Не брут)
Сообщение # 3 написано 19.09.2011 в 09:52
|
Не очерь рационально делать *.lua файл для каждого стана. Лучше создать ещё одну функцию.
Но намного Качественне написать функцию которая проверет "входящий" спел исли это стан то функция возвращает true и код функции с собщении выполняется. Пример на псевдокоде: // функция_сообщения() будет выполнятся если функция_проверки( ) вернёт true функция_сообщения( функция_проверки(скилл) ) begin печатаем( " меня застанил ", name ) end функция_проверки(скилл) begin if ( скилл == номеру_стуна_1 ) ... elif ( скилл == номеру_стуна_n ) // Можно возвартить скажем название спела! Тогда мы в функция_сообщения() можем немного её переделав выводить сообщение с название конкретного стана :) return true else return false end |
| |||
| |||