Lua wow програмирование

Итак 4я часть в которой мы наконец таки выводим сообщение во фрейм :)

Для начала создаем папку «Hello_world_4», в ней с темже названием .toc фаил с содержанием:
## Interface: 30300
## Title: |cFF0000FF Hello world 4
## Title-ruRU: |cFF0000FF Привет жестокий мир 4
## Author: Ekva
## Notes: «Hello world 4″
## Notes-ruRU: «Хелоу ворлд 4″
Hello_world_4.lua

И соответственно создаем одноименный .lua фаил. В котором создадим фрейм 250 на 300, с заливкой черным фоном.

HelloWorld4Frame = CreateFrame(«Frame», HelloWorldFrame);
HelloWorld4Frame:SetHeight(250);
HelloWorld4Frame:SetWidth(350);
HelloWorld4Frame_X = 200;
HelloWorld4Frame_Y = 0;
HelloWorld4Frame:SetPoint(«CENTER», HelloWorld4Frame_X, HelloWorld4Frame_Y);
HelloWorld4Frame.texture = HelloWorld4Frame:CreateTexture();
HelloWorld4Frame.texture:SetAllPoints(HelloWorld4Frame);
HelloWorld4Frame.texture:SetTexture(0,0,0);

Теперь от сюда (внизу темы), возьмем готовый вариант для вставки текста, за авторством ALZA и изменив имя фрейма добавим к нашему коду, на выходе получим:

local text = HelloWorld4Frame:CreateFontString(«HelloWorld4FrameText», «OVERLAY»);
text:SetFont(«Fonts\\FRIZQT__.TTF», 20, «OUTLINE»);
text:SetText(«Хелоу ворлд 4″);
text:SetPoint(«CENTER»);

Не буду комментировать эти строки так как у автора кода явно больший багаж знаний, так что настоятельно рекомендую прочитать его объяснения. В принцепе все работает… Но мы пойдем другим путем возмем отсюда код фрейма, заменем бекграунд на более темный, перепишим названия, и на выходе получим:

HelloWorld4Frame = CreateFrame(‘SimpleHTML’);
HelloWorld4Frame:SetHeight(100);
HelloWorld4Frame:SetWidth(300);
HelloWorld4Frame_X = 200;
HelloWorld4Frame_Y = 0;
HelloWorld4Frame:SetPoint(«CENTER», HelloWorld4Frame_X, HelloWorld4Frame_Y);
HelloWorld4Frame:SetBackdrop({bgFile = «Interface/Tooltips/ChatBubble-Background»,
edgeFile = «Interface/Tooltips/UI-Tooltip-Border»,
tile = true, tileSize = 16, edgeSize = 16,
insets = { left = 3, right = 3, top = 3, bottom = 3 }});

Я думаю с первой строки понятно куда нас понесло, прально в HTML, язык разметки гипертекста, основа основ интернета :) Собственно уже сам факт что вовка способна понимать html радует до одурения… но… к сожалению он лишь весьма ограниченно его понимает, так что намуть интерфейс в в стиле хотябы веба 1.0 не выйдет ) Так как даже табличную верстку он не воспримет… ну да ладно у меня пока и нет цели сделать чтото огого с интерфейсом, мнебы текст вывести я уже рад буду по уши. Так что идем дальше. Добавляем строчку с HTML:

HelloWorld4Frame:SetText(‘<html><body><h3>Привет жестой мир</h3><p>Адон «Привет
жестокий мир»</p><p>версия 4.01</p></body></html>’);

Проверяем… нефига :) глупый, глупый wow не способен на то на что способен браузер в котором бы это все нормально отображалось, ему еще походу нужно объяснить параметры текста, добавляем строчку:

HelloWorld4Frame:SetFont(‘Fonts\\FRIZQT__.TTF’, 12);

Проверяем, работает, но забавно он не правильно интерпритирует тег
<h3> , тоесть смысла в тегах заголовков нет вообще. Да и не нравится мне в каком это месте выводится. Децл правим…. между предыдущий строчкой кода и этой прошло пару часов:

HelloWorld4Frame:SetText(‘<html><body><br/><p align=»center»>|cFFFFFF00 Привет
жестокий мир|r</p><br/><p align=»center»>|cFF0000FF Самый жестокий адон во всем
мире</p><p align=»center»>|cFF0000FF Версия для служебного использования</p></body></html>’);

Часов без результатных попыток, вставить ссылку, картинку и т.д. Вообщем хоть както заюзать возможности html… и нифига… либо я кривой либо порезали это нафиг… все что получилось это раскрашивать текст в разные цвета, да и то не средствами html… Вообщем в расстроеных чувствах я на сегодня прекращаю мучить wow. Текст мы вывели и ладно :(