LUA, пишем адоны сами

Часть вступительная.
В которой автор пишет то что к прочтению не обязательно.

Приветствую, первое что нужно знать я нуб, но через это проходят все. Хотя конечно на сколько далеко от этого состаяния уходят варируется очень сильно.
Второе что нужно знать я не разу не програмист.
Вообщем с одной стороны я в той стадии которую проходят все, и обладаю той не хваткой знаний которой обладает большинство игроков. Резюмируя — обыватель.
И как любой обыватель я лучше всего разбираюсь в том как нужно снимать кино, играть в футбол, и противореча грекам с их «Там где ты не на что не способен ты не должен ни чего хотеть» я хочу именно там где я ну вот совсем ни на что не способен. И если конкретизировать в данный момент я хочу писать аддоны под себя.
Хотя конечно, писать, это слишком сильно сказанно. Скорее заниматся компиляжем, и коректировкой, с надутыми щечками от осознания своей не реальной крутости.
Но в силу того что вот это:

local function ImportOldConfigs()
if (XPerlConfig_Global) then
— Convert old global configs
XPerlConfigNew = {}
for realm,realmList in pairs(XPerlConfig_Global) do
XPerlConfigNew[realm] = {}
for player,settings in pairs(realmList) do
XPerlConfigNew[realm][player] = XPerl_ImportOldConfig(settings)
end

Для меня совсем не чего не значит, придется разбиратся с самых азов. Тоесть от «Хеллоу Ворлд» до чего-то что захочится использовать не одному мне.

И поскольку я всеравно бы делал эти записи для себя, так как воввики большая, тема для меня очень сложная, и информацию так или иначе нужно былобы структурировать и закреплять. Ну а коли так, то почему бы и не поделится этими записями. И если у такого технодауна как я получится хотябы поверхностно разобратся в Lua и XML до написания скажем панельки с ловушками охота. То возможно заметки о моем пути помогут остальным гораздо больше чем мне самому. Вообщем как было сказанно о поисках приключений на свою задницу: «Искать и бороться, найти и не сдаваться».

Шаг первый: «Привет жестокий мир вер 1.01″

Итак, поскольку адоны у нас лежат в папке «Interface», идем туда и создаем папку «Hello_world». Далее запускаем клиент, и жимкаем «Модификации», странно адона «Hello_world» нет. Окей, выходим из вов, идем в нашу папочку и создаем там текстывай фаил «Hello_world.toc» в который пишем две строчки:

## Interface: 30200
## Title: Hello_world

Замечательно, теперь запускаем вов, смотрим в модификации, ура, игра видет наш адон. Так теперь допишем наш фаил проверем его работоспособность и разберем по строчно.

## Interface: 30200
## Title: Hello_world
## Title-ruRU: Привет жестокий мир
## Author: Ekva
## Notes: «Hello world»
## Notes-ruRU: «Хелоу ворлд»

Проверяем… Хм.. скорее всего у вас как и у меня после этого не появится в окне модификацей аддона «Привет жестокий мир» а на его месте будут знаки вопроса, хотя у картографа, Хперла нормально работают русские надписи. Окей, опять выходим из игры. Идем в папку любого адона у которого было русское описание и смотрим в чем разница, ага у них кодировка UTF-8, а у нас ANSI. Хорошо пересохраняем наш фаил но уже выбрав кодировку UTF-8. Фуф работает ) Еще пара штрихов:

## Interface: 30200
## Title: |cFF0000FF Hello world
## Title-ruRU: |cFF0000FF Привет жестокий мир
## Author: Ekva
## Notes: «Hello world»
## Notes-ruRU: «Хелоу ворлд»

Замечательно теперь разбираем построчно.
1. Эта строчка, цифорками сообщает сообщает игре что она дружет с последней версией клиента. Какие именно цифры вбивать можно посмотреть тут: http://wowcompares.com/
2. Эта строка выводит название мода в списке модификаций, а вот это «|cFF0000FF» отображает наше название зеленым цветом.
3. Эта строчка также вывод название мода но только в русском клиенте.
4. Кто автор )
5. Описание для англоязычного клиента, показывается при наведение на название мода.
6. Описание для русскоязычного клиента.

Ну чтож вот собственно и все на сегодня, кто хочет может самостоятельно продолжить изучение темы на английском тут: http://www.wowwiki.com/AddOn_programming_tutorial/Introduction
Или попробывать понять матерьял на русском тут: http://forum.woh.ru/archive/index.php/t-76437.html

Вообщем ждите следующий серии…