Кет, на данный момент использую bitmap font (название шрифта не знаю), так как чтение из него намного легче реализовать, чем писать целую систему для загрузки .ttf. FistBlooD, да, у данного метода полно недостатков, и ситуация никак не изменится, пока я не реализую поддержку .ttf. Появилась идея использовать стандартные функции отрисовки текста, завтра буду пробовать реализовать вывод текста данным способом.
Кстати, полезна ли будет функция вращения элементов GUI? Просто я уже давно сделал такую возможность, осталось только добавить соответствующую нативку. И на данный момент контролы вращаются только относительно левой верхней вершины, надо будет исправить.
Кажется, я нашёл способ чтения русских символов из jass String, завтра проверю.
FistBlooD, можете скинуть карту? Всё должно корректно работать, а может и нет... На данный момент текстом крайне неудобно пользоваться: нельзя изменить размер шрифта, нельзя писать на русском (хотя сам GUI поддерживает русский язык, вся проблема в преобразовании jass string в char*), нет поддержки форматирования строки.
Исправлена ошибка с загрузкой RenderEdge.mpq (теперь мод можно без проблем размещать в любой папке);
Исправлен баг в функции CtrlSetText, при котором все элементы GUI, использующие текстуру шрифта, имели одинаковый текст;
Изменена функция CtrlSetText - убран аргумент "argb", отвечающий за цвет создаваемого текста, вместо этого используйте функцию CtrlSetColor (текст по умолчанию белый);
Изменена функция CtrlSetDepth - тип аргумента "depth" изменён на real.
native void CtrlSetText(int id, bool autoResize, string text) // autoResize: если true, то элемент GUI подгоняется под введённую строку текста, иначе текст растягивается по размеру элемента GUI.
native void CtrlSetDepth(int id, float fDepth) // Определяет порядок поиска элементов GUI функцией CtrlGetFromMousePoint. Чем значение fDepth меньше, тем элемент расположен ближе к экрану (1.0 по умолчанию).
Не должен, часы вообще поверх всего рендерятся, кроме курсора.
Ещё один вариант (для мазохистов) - с помощью ретурн бага вызвать код, меняющий цвет нужной строки, предварительно найденной в game.dll при помощи IDA, либо OllyDbg (хотя, если нужно изменить только цвет, то и Cheat Engine подойдет).
Как вариант, можно сделать заглушку чёрного цвета, модифицировав модель индикатора времени суток.
Или покопаться в .fdf файлах, сдвинув строку здоровья за границу экрана (я пробовал менять цвет шрифта, но никаких изменений не видел, хотя и это может не сработать).
Может отображение текста требует каких либо редистрибутивов?
Нет, текст рендерится точно так же, как и картинки. Скорее всего я где-то накосячил, и теперь мод не может найти и загрузить RenderEdge.mpq, в котором и лежит текстура шрифта. Решить проблему может перемещение всех файлов из папки RenderEdge в папку с варкрафтом. FistBlooD:
GetMouseTerrainX() и его аналоги не обновляются если курсор находится над кастомным UI
Это я сделал специально для того, чтобы при нажатии на элементы кастомного гуи не выделялись юниты под ними. Чтобы это отключить, нужно найти в методах OnMouseMove, OnMouseDown и OnMouseUp функцию BlockMouse и закомментировать её.
native BlockMouse(bool bBlock) - блокирует входные сообщения от мыши (перемещение, нажатия), передаваемые в игру. Например, при наведении на иконки стандартного интерфейса, не будет появляться их описание.
А с функцией IsMouseOverUI() действительно какая-то проблема. Хотя, если использовать её в библиотеке RenderEdge.dll, а не из игры, то всё работает правильно. И вообще что-то странное творится:
IceFog, сам не понимаю, но, кажется, я понял: до внедрения библиотеки нужно снимать ограничения на доступ. Это также должно решить проблему с запуском со второго раза. Сейчас не смогу проверить, через недельку посмотрю.
Нарисовать свой поверх старого - запросто, а со скрытием стандартного - не помню точно, вроде бы, если скрыть его функцией EnableInterface, то и новый не будет рендерится, но лучше проверить (просто я сам не могу посмотреть - в поезде, на неделю в Питер еду).
А если лень качать 3dsMax, то можно скачать маленький GMAX, NeoDex работает и с ним.
Главное помнить об этом:
раскрыть
GMAX README!
Feutures NOT supported by GMAX:
-Animated Textures
-Multi Layered Materials.
-SuperSpray (Particle Emitters 1)
GMAX has an extra step when exporting, compared to 3dsmax. When you hit export, the model will be printed to the listener. After that you must use an export grabber. I suggest using YAGG: yagg.doubleshadow.wz.cz
The method is simple: click "Export" and once it's finished, run YAGG and click GRAB, then save it as <Your model's name>.mdl Afterwards just open it with magos or guesst's mdl->mdx converter. I strongly recommend you use Guesst's MDLX Convertor Version 1.04 [look at the link below]
If you are downloading 2.65, get the Scene Manager.ms. It's a NeoDex Extra Tool, it will help you browse if your scene easierly. Specialy, in GMAX
А вот ссылка на его исходники: svn.code.sf.net/p/w3grimoire/code/source/wehack.cpp
Если не сделали фикс на большее увеличения размера карты, значит на то есть какая-то причина. Позже попробую самостоятельно увеличить размер, но, думаю, ничего получится.
Андреич, да, совсем забыл об отвязке костей при применении модификатора Edit Mesh, в этом и была вторая проблема с которой я сталкивался, приходилось вручную прикреплять их обратно (но позднее я, вроде бы, начал делать по-другому, но всё-равно были какие-то проблемы). Андреич:
добавив в modifier list "mesh select" смог экспортнуть модельку с анимками и привязанными костями...
Эх, если бы раньше узнал, столько времени бы сэкономило... Андреич:
пока что удалось экспортировать только такую "неполную анимацию..."
Да, у меня раньше так же получалось, потом решил просто добавлять Edit Mesh и прикреплять кости самостоятельно.
Хотя нет, это происходило тогда, когда я поворачивал меш с закрепленным костями на 180 градусов.
Кристофер, это происходит из-за того, что в материале травы стоит галочка "Незатуманенный" (в переводе ошибка, следовательно, нужно читать "Незатеннёный"). Просто сними галочку и всё заработает.
Андреич, у меня всё нормально было, когда я конвертировал .smd модели из Mount&Blade, анимации корректно извлекались (проблема была лишь в том, что все анимации были в своих файлах, приходилось в максе собирать их и прибавлять значение для старого таймкода каждой анимации). Скинь свой .fbx файл, точно не помню как я раньше делал, посмотрю - вспомню.
Андреич, давно уже с этим не работал, но помню, что там геометрию нужно конвертировать в editable mesh, без этого не выходе получается пустая модель. По настройке анимаций есть две статьи на хайве, но при конвертации модели, в которой все анимации в одном файле, ни каких проблем не должно возникнуть.
Alexander12, круто! То есть её нужно импортировать в карту? Как делал, через SFileReadFile?
А, хотя нет, так всё-равно бы понадобилась библиотека в папке с варкрафтом, либо запуск игры через специальный лончер.
» RenderEdge / [RenderEdge] Графическая модификация для WarCraft III
Обновление v0.0.2b
Скачать тестовую карту.
Ред. ENAleksey
» RenderEdge / [RenderEdge] Графическая модификация для WarCraft III
Обновление v0.0.2a (без изменения версии)
Ред. ENAleksey
» RenderEdge / [RenderEdge] Графическая модификация для WarCraft III
FistBlooD, да, у данного метода полно недостатков, и ситуация никак не изменится, пока я не реализую поддержку .ttf. Появилась идея использовать стандартные функции отрисовки текста, завтра буду пробовать реализовать вывод текста данным способом.
Ред. ENAleksey
» RenderEdge / [RenderEdge] Графическая модификация для WarCraft III
Обновление v0.0.2a
Скачать тестовую карту.
Ред. ENAleksey
» WarCraft 3 / Убрать отображение здоровья
Ещё один вариант (для мазохистов) - с помощью ретурн бага вызвать код, меняющий цвет нужной строки, предварительно найденной в game.dll при помощи IDA, либо OllyDbg (хотя, если нужно изменить только цвет, то и Cheat Engine подойдет).
Ред. ENAleksey
» WarCraft 3 / Убрать отображение здоровья
Или покопаться в .fdf файлах, сдвинув строку здоровья за границу экрана (я пробовал менять цвет шрифта, но никаких изменений не видел, хотя и это может не сработать).
Ред. ENAleksey
» RenderEdge / [RenderEdge] Графическая модификация для WarCraft III
FistBlooD:
Ред. ENAleksey
» RenderEdge / [RenderEdge] Графическая модификация для WarCraft III
Ред. ENAleksey
» RenderEdge / [RenderEdge] Графическая модификация для WarCraft III
» RenderEdge / [RenderEdge] Графическая модификация для WarCraft III
Ред. ENAleksey
» RenderEdge / [RenderEdge] Графическая модификация для WarCraft III
» RenderEdge / [RenderEdge] Экспериментальная версия
Ред. ENAleksey
» WarCraft 3 / Невидимые платформы.
» Game Dev / Релиз новой версии Unreal Engine 4.12
Ред. ENAleksey
» WarCraft 3 / Экспорт в WarCraft3 из blender3d
Главное помнить об этом:
-Animated Textures
-Multi Layered Materials.
-SuperSpray (Particle Emitters 1)
Ред. ENAleksey
» WarCraft 3 / Увеличение размера карты
Если не сделали фикс на большее увеличения размера карты, значит на то есть какая-то причина. Позже попробую самостоятельно увеличить размер, но, думаю, ничего получится.
Ред. ENAleksey
» WarCraft 3 / //!textmacro
» WarCraft 3 / 3DS MAX .DAE to MDL? Встречайте: xlDataConverter (alpha)
Андреич:
Андреич:
Хотя нет, это происходило тогда, когда я поворачивал меш с закрепленным костями на 180 градусов.
» WarCraft 3 / Освещение не влияет на траву
» WarCraft 3 / 3DS MAX .DAE to MDL? Встречайте: xlDataConverter (alpha)
» WarCraft 3 / Интерфейс черный
» WarCraft 3 / Освещение не влияет на траву
» WarCraft 3 / 3DS MAX .DAE to MDL? Встречайте: xlDataConverter (alpha)
» WarCraft 3 / 3DS MAX .DAE to MDL? Встречайте: xlDataConverter (alpha)
» WarCraft 3 / Отлов клавиш
А, хотя нет, так всё-равно бы понадобилась библиотека в папке с варкрафтом, либо запуск игры через специальный лончер.