Версия v0.3.0
Графическая модификация для игры WarCraft III.
287 87K
13

Обновление 0.1.0a

Возможны вылеты во время загрузки карты!
  • Реализовано корректное получение информации из jass строки (поддержка всех языков, а не только английского);
  • Изменено название функции CtrlCreateInstance на CtrlNew;
  • Изменена функция CtrlSetText(int id, bool autoResize, string text) на CtrlSetText(int id, string text, bool bWrap);
  • Изменена функция CtrlGetFromMousePoint() на CtrlGetFromPoint(int x, int y);
  • Добавлена новая native функция GUISetFont;
  • Добавлена новая native функция CtrlIsText;
  • Функция IsMouseOverUI теперь работает корректно;
  • Удалена функция CtrlSetSolidColor, вместо этого используйте белую текстуру ("Textures\\white.blp") и функцию CtrlSetColor(int argb);
  • Исправлена проблема, связанная с невозможностью запустить RenderEdge после переустановки Warcraft по другому пути;
  • Добавлена поддержка TTF шрифтов (FreeType);
  • Добавлена поддержка многострочного текста и форматирования ("|n" (на новую строку), "|cAARRGGBB" (изменить цвет), "|b" (полужирный шрифт), "|i" (наклонный шрифт), "|r" (сброс к стандартному цвету текста и обычному шрифту));
  • Уменьшена задержка отдачи приказов юнитам в одиночной игре;
  • Добавлен логотип проекта;
  • Уменьшен размер RenderEdge.mpq;
  • Улучшен debug log.
native void CtrlSetText(int id, string text, bool bWrap) // bWrap: если текст заходит за пределы ширины, заданной при создании элемента GUI, то происходит переход на новую строку
native int CtrlGetHeight(int id) // Используется, чтобы узнать высоту элемента GUI после применения функции CtrlSetText с аргументом "bWrap" == true
native int CtrlGetFromPoint(int x, int y) // Возвращает элемент, расположенный по заданным координатам (если такого нет, возвращает -1)
native bool CtrlIsText(int id) // Является ли элемент GUI текстом?
native void GUISetFont(string name, int size) // Устанавливает шрифт для всех текстовых элементов GUI (по умолчанию используется "Consolas" с размером 13)


Полноценный Widescreen fix!

У меня только что получилось реализовать фикс для широкоформатных мониторов, теперь экран не выглядит растянутым на мониторах с отношением сторон равным 16:9!
Сейчас буду дорабатывать фикс, например, нужно немного отдалить камеру и добавить поддержку любого отношения сторон монитора (16:10, 21:9), динамическую подстройку под текущий размер окна.
13

Новости

Реализовал загрузчик .ttf шрифтов, правда, только системных (по умолчанию использую Consolas). Загружать из файлов тоже можно, но только не со всеми это проходит успешно. Например, после загрузки стандартного шрифта варкрафта FRIZQT__.TTF, он оказывается пустым, а при загрузке других шрифтов варкрафта игра вообще вылетает. Постараюсь решить эту проблему в будущем.


Также добавил поддержку многострочного текста (при ограничении ширины) и форматирования (регистр не имеет значения):
  • Переход на новую строку - "|n";
  • Смена цвета текста - "|cAARRGGBB";
  • Полужирный шрифт - "|b";
  • Курсив - "|i";
  • Сброс к стандартному цвету текста, обычному шрифту - "|r".
Осталось реализовать выравнивание текста (справа / по центру / по всей ширине) и корректное вращение многострочного текста.
Загруженные файлы
7
ENAleksey, пробовал, но еще попробую. И нативки использовать тоже не получается.
ENAleksey, извиняюсь, теперь все вижу, видимо сам где-то затупил)
13
ELB359, в смысле пустая? Возможно произошёл сбой при скачивании карты, попробуйте скачать заново.
7
Карта, при открытии в редакторе, пустая, а в игре вообще нельзя запустить. При этом установилось все нормально, надпись есть.
3
Тогда добавь возможность считывать время реальное
Условие юнит находится на суша/мелководье/глубоководье
7
Vitalik8:
И кстати если можешь увеличь количество игроков с 12 на 24 или больше
И вот как это относится к рендерингу? Но, если надо больше игроков, то в этих ваших интернетах полно других движков, некоторые из которых предоставляют возможность подключения до 10к игроков одновременно.
3
Сделай, возможность изменять иконку мини карты во время игры
И кстати если можешь увеличь количество игроков с 12 на 24 или больше
13
такой вопрос в будущем будет ли возможность вывода текста на любом языке
Она уже есть, но только внутри самой библиотеки. Единственная проблема - корректное получение информации из jass'овской строки
Готово. Строка jass представлена в UTF-8 кодировке, я добавил функцию конвертации массива символов из UTF-8 в ASCII, теперь можно без проблем получить jass строку на исходном языке, а не только на английском.
Сейчас буду добавлять поддержку TTF формата шрифтов. Огромное спасибо пользователю d.m.k с сайта gamedev.ru за предоставленный пример использования FreeType, это позволит мне быстрее реализовать загрузчик TTF шрифтов и новый визуализатор текста для GUI системы.
После этого можно будет переходить ко второму этапу работы над RenderEdge - добавлять HDR Rendering и пост-эффекты.
Загруженные файлы