• Страница 1 из 1
  • 1
Пишем аддон "MangAdmin" №2
Nyll
Здравствуйте дорогие друзья, сегодня мы продолжим писать MangAdmin. Я решил оставить остальные xml файлы на следующею неделю, а щас мы изучим lua файл mangadmin*a. В lua файле много интересного, чего вы можете использовать в последующих аддонах.

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

Вот lua документ мангадмина.

Тык

Разъясню вам не большие фрагменты текста, дабы вы знали с чем работаете.

Code
function out(text)
DEFAULT_CHAT_FRAME:AddMessage(text);
end

function outHUD(text)
UIErrorsFrame:AddMessage(text, 1.0, 1.0, 0, 1,10);
end

function outERROR(text)
DEFAULT_CHAT_FRAME:AddMessage(text, 1.0, 0.0, 0.0, 1.0);
UIErrorsFrame:AddMessage(text, 1.0, 1.0, 0, 1,10);
end

function outPM(text,recipient)
SendChatMessage(text, "WHISPER", nil,recipient);
end

function outPMSET(text,lang, recipient)
SendChatMessage(text, "WHISPER", lang ,recipient);
end

function outSAY(text)
SendChatMessage(text, "SAY", nil,nil);
end

function outSYS(text)
DEFAULT_CHAT_FRAME:AddMessage(text, 1.0, 1.0, 0, 0);
end

function outNotes(text)
SendChatMessage(text, "CHANNEL", nil, chanNum);
end

function outMESS(text,name)
MessengerMainFrame:AddMessage(text);
end


Создания а точнее замена функций типа sendchatmessage и т.д

Code
function MangAdmin_SlashCommandHandler(msg)
if (msg == "reload") then
ReloadUI();
elseif (msg == "mark" or msg=="back") then
MangAdmin_Mark(msg);
out("Returning to your bookmarked location.");
elseif (msg == "pm") then
MangAdminForm4:Show();
elseif (msg == "tele" or msg=="teleport") then
MangAdminForm6:Show();
elseif (msg == "item") then
MangAdminForm7:Show();
elseif (msg == "help") then
MangHelp();
elseif (msg == "info") then
MangAdminForm2:Show();
elseif (msg == "options") then
MangAdminForm1:Show();
elseif (msg == "menu") then
MangAdminForm:Show();
elseif (msg == "reset") then
MangReset();
elseif (msg == "gm") then
MangAdminForm11:Show();
elseif (msg == "easter") then
Secret();
out("What have you found???!");
else
MangAdminFrames_Toggle(msg);
end
end

Открытие окошек, при помощи слеш команды.

function GMBuddy(fxn)
if (fxn=="lang")then
outSAY(".learn all_lang");

elseif (fxn=="armor")then
for i=1, table.getn(GMArray["Armor"]) do
outSAY(".learn "..GMArray["Armor"][i]);
end

elseif (fxn=="black1")then
for i=1, table.getn(GMArray["Black1"]) do
outSAY(".learn "..GMArray["Black1"][i]);
end

elseif (fxn=="black2")then
for i=1, table.getn(GMArray["Black2"]) do
outSAY(".learn "..GMArray["Black2"][i]);
end

elseif (fxn=="black3")then
for i=1, table.getn(GMArray["Black3"]) do
outSAY(".learn "..GMArray["Black3"][i]);
end

elseif (fxn=="black4")then
for i=1, table.getn(GMArray["Black4"]) do
outSAY(".learn "..GMArray["Black4"][i]);
end

elseif (fxn=="black5")then
for i=1, table.getn(GMArray["Black5"]) do
outSAY(".learn "..GMArray["Black5"][i]);
end

elseif (fxn=="ming1")then
for i=1, table.getn(GMArray["Ming1"]) do
outSAY(".learn "..GMArray["Ming1"][i]);
end

elseif (fxn=="ming2")then
for i=1, table.getn(GMArray["Ming2"]) do
outSAY(".learn "..GMArray["Ming2"][i]);
end

elseif (fxn=="ming3")then
for i=1, table.getn(GMArray["Ming3"]) do
outSAY(".learn "..GMArray["Ming3"][i]);
end

elseif (fxn=="ming4")then
for i=1, table.getn(GMArray["Ming4"]) do
outSAY(".learn "..GMArray["Ming4"][i]);
end

elseif (fxn=="ming5")then
for i=1, table.getn(GMArray["Ming5"]) do
outSAY(".learn "..GMArray["Ming5"][i]);
end

elseif (fxn=="jew1")then
for i=1, table.getn(GMArray["Jew1"]) do
outSAY(".learn "..GMArray["Jew1"][i]);
end

elseif (fxn=="jew2")then
for i=1, table.getn(GMArray["Jew2"]) do
outSAY(".learn "..GMArray["Jew2"][i]);
end

elseif (fxn=="jew3")then
for i=1, table.getn(GMArray["Jew3"]) do
outSAY(".learn "..GMArray["Jew3"][i]);
end

elseif (fxn=="jew4")then
for i=1, table.getn(GMArray["Jew4"]) do
outSAY(".learn "..GMArray["Jew4"][i]);
end

elseif (fxn=="jew5")then
for i=1, table.getn(GMArray["Jew5"]) do
outSAY(".learn "..GMArray["Jew5"][i]);
end

elseif (fxn=="leath1")then
for i=1, table.getn(GMArray["Leath1"]) do
outSAY(".learn "..GMArray["Leath1"][i]);
end

elseif (fxn=="leath2")then
for i=1, table.getn(GMArray["Leath2"]) do
outSAY(".learn "..GMArray["Leath2"][i]);
end

elseif (fxn=="leath3")then
for i=1, table.getn(GMArray["Leath3"]) do
outSAY(".learn "..GMArray["Leath3"][i]);
end

elseif (fxn=="leath4")then
for i=1, table.getn(GMArray["Leath4"]) do
outSAY(".learn "..GMArray["Leath4"][i]);
end

elseif (fxn=="leath5")then
for i=1, table.getn(GMArray["Leath5"]) do
outSAY(".learn "..GMArray["Leath5"][i]);
end

elseif (fxn=="fira1")then
for i=1, table.getn(GMArray["Fira1"]) do
outSAY(".learn "..GMArray["Fira1"][i]);
end

elseif (fxn=="fira2")then
for i=1, table.getn(GMArray["Fira2"]) do
outSAY(".learn "..GMArray["Fira2"][i]);
end

elseif (fxn=="fira3")then
for i=1, table.getn(GMArray["Fira3"]) do
outSAY(".learn "..GMArray["Fira3"][i]);
end

elseif (fxn=="fira4")then
for i=1, table.getn(GMArray["Fira4"]) do
outSAY(".learn "..GMArray["Fira4"][i]);
end

elseif (fxn=="fira5")then
for i=1, table.getn(GMArray["Fira5"]) do
outSAY(".learn "..GMArray["Fira5"][i]);
end

elseif (fxn=="alch1")then
for i=1, table.getn(GMArray["Alch1"]) do
outSAY(".learn "..GMArray["Alch1"][i]);
end

elseif (fxn=="alch2")then
for i=1, table.getn(GMArray["Alch2"]) do
outSAY(".learn "..GMArray["Alch2"][i]);
end

elseif (fxn=="alch3")then
for i=1, table.getn(GMArray["Alch3"]) do
outSAY(".learn "..GMArray["Alch3"][i]);
end

elseif (fxn=="alch4")then
for i=1, table.getn(GMArray["Alch4"]) do
outSAY(".learn "..GMArray["Alch4"][i]);
end

elseif (fxn=="alch5")then
for i=1, table.getn(GMArray["Alch5"]) do
outSAY(".learn "..GMArray["Alch5"][i]);
end

elseif (fxn=="ench1")then
for i=1, table.getn(GMArray["Ench1"]) do
outSAY(".learn "..GMArray["Ench1"][i]);
end

elseif (fxn=="ench2")then
for i=1, table.getn(GMArray["Ench2"]) do
outSAY(".learn "..GMArray["Ench2"][i]);
end

elseif (fxn=="ench3")then
for i=1, table.getn(GMArray["Ench3"]) do
outSAY(".learn "..GMArray["Ench3"][i]);
end

elseif (fxn=="ench4")then
for i=1, table.getn(GMArray["Ench4"]) do
outSAY(".learn "..GMArray["Ench4"][i]);
end

elseif (fxn=="ench5")then
for i=1, table.getn(GMArray["Ench5"]) do
outSAY(".learn "..GMArray["Ench5"][i]);
end

elseif (fxn=="cok1")then
for i=1, table.getn(GMArray["Cok1"]) do
outSAY(".learn "..GMArray["Cok1"][i]);
end

elseif (fxn=="cok2")then
for i=1, table.getn(GMArray["Cok2"]) do
outSAY(".learn "..GMArray["Cok2"][i]);
end

elseif (fxn=="cok3")then
for i=1, table.getn(GMArray["Cok3"]) do
outSAY(".learn "..GMArray["Cok3"][i]);
end

elseif (fxn=="cok4")then
for i=1, table.getn(GMArray["Cok4"]) do
outSAY(".learn "..GMArray["Cok4"][i]);
end

elseif (fxn=="cok5")then
for i=1, table.getn(GMArray["Cok5"]) do
outSAY(".learn "..GMArray["Cok5"][i]);
end

elseif (fxn=="engi1")then
for i=1, table.getn(GMArray["Engi1"]) do
outSAY(".learn "..GMArray["Engi1"][i]);
end

elseif (fxn=="engi2")then
for i=1, table.getn(GMArray["Engi2"]) do
outSAY(".learn "..GMArray["Engi2"][i]);
end

elseif (fxn=="engi3")then
for i=1, table.getn(GMArray["Engi3"]) do
outSAY(".learn "..GMArray["Engi3"][i]);
end

elseif (fxn=="engi4")then
for i=1, table.getn(GMArray["Engi4"]) do
outSAY(".learn "..GMArray["Engi4"][i]);
end

elseif (fxn=="engi5")then
for i=1, table.getn(GMArray["Engi5"]) do
outSAY(".learn "..GMArray["Engi5"][i]);
end

elseif (fxn=="tail1")then
for i=1, table.getn(GMArray["Tail1"]) do
outSAY(".learn "..GMArray["Tail1"][i]);
end

elseif (fxn=="tail2")then
for i=1, table.getn(GMArray["Tail2"]) do
outSAY(".learn "..GMArray["Tail2"][i]);
end

elseif (fxn=="tail3")then
for i=1, table.getn(GMArray["Tail3"]) do
outSAY(".learn "..GMArray["Tail3"][i]);
end

elseif (fxn=="tail4")then
for i=1, table.getn(GMArray["Tail4"]) do
outSAY(".learn "..GMArray["Tail4"][i]);
end

elseif (fxn=="tail5")then
for i=1, table.getn(GMArray["Tail5"]) do
outSAY(".learn "..GMArray["Tail5"][i]);
end

elseif (fxn=="weap")then
out(table.getn(GMArray["Weapons"]));
for i=1, table.getn(GMArray["Weapons"]) do
outSAY(".learn "..GMArray["Weapons"][i]);
outSAY(".learn 674");
end
for i=1, 5 do
outSAY(".learn "..GMArray["Spells"][i]);
end

elseif (fxn=="pimp")then
for i=1, table.getn(GMArray["Pimp"]) do
outSAY(".learn "..GMArray["Pimp"][i]);
end

elseif (fxn=="skill")then
outSAY(".learn all_myclass");

elseif (fxn=="talents")then
outSAY(".learn all_mytalents");

elseif (fxn=="max")then
outSAY(".maxskill");

elseif (fxn=="allench")then
outSAY(".learn all_recipes enchanting");
elseif (fxn=="allalch")then
outSAY(".learn all_recipes alchemy");
elseif (fxn=="allblac")then
outSAY(".learn all_recipes blacksmithing");
elseif (fxn=="allleat")then
outSAY(".learn all_recipes leatherworking");
elseif (fxn=="allengi")then
outSAY(".learn all_recipes engineering");
elseif (fxn=="alltail")then
outSAY(".learn all_recipes tailoring");
elseif (fxn=="allmini")then
outSAY(".learn all_recipes mining");
elseif (fxn=="allfirs")then
outSAY(".learn all_recipes first aid");
elseif (fxn=="allcook")then
outSAY(".learn all_recipes cooking");
elseif (fxn=="alljew")then
outSAY(".learn all_recipes jewelcrafting");
end
end


Действия (не все) которые происходят при нажатии на кнопку например: когда жмешь на кнопку гм(включить гм мод) выполняется действие
Code
elseif (fxn=="gmon")then
outSAY(".gm on");
DEFAULT_CHAT_FRAME:AddMessage("|cffffff00Firestorm|r: Режим ГМ включен");


Вот и все. Остальную часть луа файлов, и xml файлов мы будем рассматривать в следующею пятницу.
Маме беркута привет!
Сообщение # 1 отредактировано Nyll - Пятница, 24.02.2012, 12:13
klones12
Скаут
гуд
Реальный заработок 900 руб. в месяц на кликах.
Правил не нарушаю, т.к. не прошу ничего взамен.
Сообщение # 2 написано 17.12.2011 в 20:38
Jahmаl
Скаут
Nyll, у тебя каждую пятницу выходят гайды по аддонам!?
Сообщение # 3 написано 18.12.2011 в 17:47
Juline
!1
Quote (Jahmаl)
Nyll, у тебя каждую пятницу выходят гайды по аддонам!?

Возьму на себя смелось ответить за Nyll. Каждую пятницу :).
Сообщение # 4 написано 18.12.2011 в 22:29
Nirn24
Капрал
Может стоило начать с хоть какого-то объяснения синтаксиса? Я например не могу понять за что отвечают некоторые скобки, запятые и двойные равенства. Я имею только смутные догадки из-за того что имеется небольшой опыт в простых языках как Delphi, Pascal etc. Просто если я правильно понял задумку, то цель этого несколько ознакомить людей с языком lua в частности для написания аддонов для вова и мне кажется что без синтаксиса и разъяснения некоторых операторов далеко не уедешь ; )
Я не прошу что бы вы обязательно разъяснили каждый, но хотя бы дали ссылку где можно о них прочитать, желательно на русском.
Сообщение # 5 написано 23.12.2011 в 19:53
Nyll
Маме беркута привет!
Сообщение # 6 написано 23.12.2011 в 20:40
Nirn24
Капрал
Nylll, спасибо, почитаю на выходных, а потом примусь за аддоны ;O.
Сообщение # 7 написано 24.12.2011 в 03:27
Goolden
Скаут
Quote (Nirn24)
не могу понять за что отвечают некоторые скобки

Quote (Nirn24)
но хотя бы дали ссылку где можно о них прочитать
Сообщение # 8 написано 04.01.2012 в 09:44
Parkours
Скаут
Nyll,можешь объяснить как сделать чтобы как в MangAdmine при нажатие на кнопку гм
Он то включал гм режим,то выключал?

Добавлено (18.03.2012, 10:02)
---------------------------------------------
А все не надо почитал твои прошлые статьи и нашел ответ на свой вопрос.

Сообщение # 9 написано 18.03.2012 в 10:02
PashokRomanow
Скаут
гуд

shades shades
Сообщение # 10 написано 28.05.2012 в 21:47
  • Страница 1 из 1
  • 1
Поиск: