• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
[Мануал] Как создать Login screen используя Lua&XML
Попрыгун
Главный Архитектор
Переведено с Modcraft'a

Привет парни!

Сегодня я хочу показать вам как сделать Логин меню только редактируя Lua и XML файлы.

Всё что понадобится вам для этого урока вы сможете найти по этой ссылке:
Ссылка

Код
1. Установка файлов
2. Изменение логин меню
         2.1 Фон
         2.2 Музыка
         2.3.1 Кнопки
         2.3.2 Позиции
3. Добавление M2 моделей
4. Пример


---------------------------------------------------------------------------------------------------

1. Установка файлов

Во-первых вам понадобится извлечь файлы из архива в папку с WoW
Грац! Первый шаг готов!

2. Изменение логин меню

2.1 Фон

Для установки фона, вам нужно буделт создать .png файл размером 1024х1024 который будет иметь 75% от 1024 пикселей (768px в высоту) для того чтобы заполнить экран ввода.

Закончив с редактированием изображения, сохраните его в директории:
WoW\Interface\LoginScreen\

И назовите ваш файл:
Background.png

Теперь всё что требудется это перетащить .png файл на программу BLP Converter и удалить .png картинку из папки.

2.2 Музыка

Если вы хотите нестандартную музыку, то нужно поместить файл (.mp3 или .wav) в папку:
WoW\Interface\LoginMusic\

и назвать его:
LoginScreen

Теперь вам надо узнать продолжительность музыкального файла в секундах.
Пример.: 2:25 -> 145

Теперь откройте vx_vars_init.lua
(находится в WoW\Interface\GlueXML\)
Нахмите CTRL + F и найдите строку:
VX_MUSICTIMER = GetTime() + <SECOUNDS>;

и замените <SECOUNDS> на продолжительность вашего муз файла.

Если же вы хотите поставить любую другую музыку из клиента WoW, то в строке
PlayMusic("Sound\\Music\\CityMusic\\Undercity\\undercityintro-moment.mp3");
укажите путь к файлу в .MPQ архиве.

2.3.1 Кнопки

Для кнопок, необходимо создать 6 файлов:

Код
Glues-BigButton-Up   -> Нормальная кнопка       
Glues-BigButton-Down   -> Нажатая кнопка
Glues-BigButton-Highlight   -> Кнопка, когда курсор находится над ней
Glues-Editbox-Background   -> Неактивная кнопка
Glues-BigButton-Glow   -> Свечение вокруг унопки
Glues-BigButton-Rays   -> Пульсирующие лучи вокруг кнопки


Вам необходимо сохранить .png файлы в папке:
WoW\Interface\GLUES\COMMON\

с указаными именами и перетащите .png файлы в программу BLP Converter.
Теперь удалите оставшиеся .png файлы и мы закончили.

2.3.2 Позиции

Теперь зададим позиции кнопкам и для этого откроем файл AccountLogin.XML
в папке:
WoW\Interface\GlueXML\

Нажмите CTRL + F для поиска:

Код
name="AccountLoginAccountEdit"          -> Поле имени аккаунта
name="AccountLoginPasswordEdit"         -> Поле пароля
name="AccountLoginLoginButton"          -> Кномка входа
name="AccountLoginExitButton"           -> Кнопка выхода
name="OptionsButton"                    -> Кнопка опций
name="AccountLoginManageAccountButton"  -> Кнопка учётной записи
name="AccountLoginCommunityButton"      -> Кнопка оффииального сайта
name="AccountLoginSaveAccountNameText"  -> Чекбокс "Запомнить имя учётной записи"


Для перемещения ищите текст как:

Код
<Anchor point="BOTTOM">
             <Offset>
             <AbsDimension x="..." y="..."/>
             </Offset>
</Anchor>


С опорными точками (Аnchor point) и установите данную точку на ваше усмотрение:
"TOP" ; "BOTTOMLEFT" ; "RIGHT"; "CENTER" ; ...

И собственно оси координат AbsDimension x и y.

3. Добавление M2 моделей

Для начала откройте vx_vars_init.lua...

Строки 4-9 -- определение модели.
Модели добавляются на экран в последних трёх строках.

В строках 5-9 вносите свои настройки, комментарии думаю понятны:
Код
-- light + light direction    ->   свет и направление света;
       -- position                       ->   позиция на экране  (x - вперёд/назад, y - влево/вправо, z - вниз/вверх);
       -- rotation                       ->   поворот (вращение)
       -- scale                           ->   размер модели;
       -- alpha                          ->    прозрачность.


(SetHeight и SetWidth используются в совокупности со scale если вы хотите каким либо образом ограничить модель (обрезать))

Если вы хоите более одной модели, то вам надо скопировать блок (4-9 строки) и заменить каждое Mod1 с скопированном блоке на Mod2 (если более 2-х, то проделать то же самое на Mod3, ...)
Ещё вам нужно будет добавить все задействованные модели в таблицу M = { }
В итоге у вас получится что то вроде:
M = {Mod<НОМЕР_МОДЕЛИ>,Mod<НОМЕР_МОДЕЛИ>,Mod<НОМЕР_МОДЕЛИ>}
Пример:
M = {Mod1,Mod2,Mod3}

Если вы не добавите модель в таблицу "M", моедль сбросит позицию при Логауте и возвращение на главный экран ввода логина и пароля.

Для поиска и устанвки модели запустим WoWModelViewer и найдём модель которая имеет только 1 скин (skin) (в противном случае мы получим абсолютно белую модель) Затем введём её полный путь во 2-ю последнюю строку с двойными обратными слэшами \\ и .m2 на конце.

PS.: Постарайтесь устанавливать координату Z+1, до тех пор пока не увидите модель.

PPS.: Запомните, что каждая модель может иметь разное примерение комманды SetPosition.
Пример: одни используют координаты x и y для перемещения в 2D поле другие используют y и z координаты.

4. Пример

Это примеры того, каким может получиться Логин Скрин:





Сообщение # 1 отредактировано Dinoza - Четверг, 14.03.2013, 23:53
Genocide_One
Скаут
Спасибо за рерайт!!!!!!! Буду лепить тоже)
Uwow x115 HORDE
Кохаку,Savinus,Denotar,Herohammer.
Сообщение # 2 написано 15.10.2012 в 16:36
Sivanv99
Сержант
Quote (Попрыгун)
Теперь всё что требудется это перетащить .png файл на программу BLP Converter и удалить .png картинку из папки.

Поподробнее можно?

Добавлено (06.11.2012, 17:37)
---------------------------------------------

Quote (Попрыгун)
с указаными именами и перетащите .png файлы в программу BLP Converter.
Теперь удалите оставшиеся .png файлы и мы закончили.

Тоже самое.

Добавлено (06.11.2012, 17:51)
---------------------------------------------
http://s018.radikal.ru/i506/1210/6d/281f0b573ac2.jpg
Ещё вопрос, как сделать такое расположение кнопок. Сори, я чайник :<
И можно ли как-то на кнопку Официальный сайт наложить ссылку на другой сайт?

Сообщение # 3 написано 06.11.2012 в 17:51
Попрыгун
Главный Архитектор
Есть программа в архиве BLP Converter.exe это консольная программа, чтоб её использовать требуется PNG картинку перетащить на значёк программы и отпустить над ним.

для позиции кнопок вроде всё доступно написано

Code
Для перемещения ищите текст как:  

Code
<Anchor point="BOTTOM">  
             <Offset>  
             <AbsDimension x="..." y="..."/>  
             </Offset>  
  </Anchor>

  С опорными точками (Аnchor point) и установите данную точку на ваше усмотрение:  
  "TOP" ; "BOTTOMLEFT" ; "RIGHT"; "CENTER" ; ...  

  И собственно оси координат AbsDimension x и y.


и для поиска написаны названия кнопок

Code
name="AccountLoginAccountEdit"          -> Поле имени аккаунта  
  name="AccountLoginPasswordEdit"         -> Поле пароля  
  name="AccountLoginLoginButton"          -> Кномка входа  
  name="AccountLoginExitButton"           -> Кнопка выхода  
  name="OptionsButton"                    -> Кнопка опций  
  name="AccountLoginManageAccountButton"  -> Кнопка учётной записи  
  name="AccountLoginCommunityButton"      -> Кнопка оффииального сайта  
  name="AccountLoginSaveAccountNameText"  -> Чекбокс "Запомнить имя учётной записи"
Сообщение # 4 написано 07.11.2012 в 17:52
Scriptolog
Завтра попробую. smile Спасибо большое. smile
Сообщение # 5 написано 07.11.2012 в 17:54
Sivanv99
Сержант
Quote (Попрыгун)
для позиции кнопок вроде всё доступно написано

Code
Для перемещения ищите текст как:  

Code
<Anchor point="BOTTOM">  
             <Offset>  
             <AbsDimension x="..." y="..."/>  
             </Offset>  
  </Anchor>

  С опорными точками (Аnchor point) и установите данную точку на ваше усмотрение:  
  "TOP" ; "BOTTOMLEFT" ; "RIGHT"; "CENTER" ; ...  

  И собственно оси координат AbsDimension x и y.

и для поиска написаны названия кнопок

Code
name="AccountLoginAccountEdit"          -> Поле имени аккаунта  
  name="AccountLoginPasswordEdit"         -> Поле пароля  
  name="AccountLoginLoginButton"          -> Кномка входа  
  name="AccountLoginExitButton"           -> Кнопка выхода  
  name="OptionsButton"                    -> Кнопка опций  
  name="AccountLoginManageAccountButton"  -> Кнопка учётной записи  
  name="AccountLoginCommunityButton"      -> Кнопка оффииального сайта  
  name="AccountLoginSaveAccountNameText"  -> Чекбокс "Запомнить имя учётной записи"

Поле логина передвинул, а вот поле пароля не хочет.. В чём может быть проблема? И да, когда я запускаю эту программу, через долю секунды она закрывается. Что я делаю не так?

Добавлено (07.11.2012, 18:55)
---------------------------------------------
И когда я перетягиваю на значок программы, эта картинка просто копируется в папку с программой..

Сообщение # 6 написано 07.11.2012 в 18:55
Попрыгун
Главный Архитектор
Sivanv99, мне видео что-ли снять на тему как пользоваться консольными программами? что не понятного в системе Драг-энд-дроп? Взял картинку, и перетащил на программу, отпустил, в папке с изображением появится одноимённый файл с расширением .блп (латыницей)
Сообщение # 7 написано 09.11.2012 в 17:13
Sivanv99
Сержант
Сообщение # 8 написано 17.11.2012 в 11:41
Noggit
Рыцарь
<Anchor point="BOTTOM">
<Offset>
<AbsDimension x="..." y="..."/>
</Offset>
</Anchor>
что-то мне html напоминает. А что если разметить логскрин как html документ?
Уроки по модификации клиента World of Warcraft
- Маппинг
- Операции с файлами
- Серверсайд
- UI etc.
Сообщение # 9 написано 27.11.2012 в 23:48
Попрыгун
Главный Архитектор
Noggit, думаю ничего, потому как это xml он чем-то похожно на штмл, но интерфейс читается именно xml-вский
Сообщение # 10 написано 28.11.2012 в 09:50
  • Страница 1 из 1
  • 1
Поиск: