Слышал, что с версии 1.31 можно менять интерфейс. Подскажите: как мне сделать, чтоб у способности типа "книга заклинаний" было не 11 свободных ячеек на панели(как это обычно), а на 3 больше, то есть всего 14? Без мемхака.

DopaMine, нельзя поменять кол-во ячеек в книге заклинаний.
Можно набросать в интерфейс кнопок и обрабатывать нажатия на них, без абилок юнитов. Но есть три нюанса
  1. нет визуального редактора интерфейса, все делается в коде и файлах разметки
  2. только жасс или луа, а гуй не справится с этой задачей
  3. это сложно
примерно алгоритм выглядит так
  1. разобраться в файлах разметки фреймов fdf
  2. запилить свой фрейм в fdf файле, засунуть этот файл в карту
  3. в нужный момент создать и отобразить фрейм триггером
  4. динамически добавить триггеры для обработки нажатий на кнопки фрейма после его создания
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
24
DopaMine, тебе нужен toc файл и fdf файл с твоим фреймом, оба импортированные в карту. А дальше триггерами сперва грузиш toc, потом создаеш фрейм по айдишнику.
11
тебе нужен toc файл и fdf файл с твоим фреймом, оба импортированные в карту
Что такое toc и откуда импортировать эти оба файла?
native BlzGetOriginFrame takes originframetype frameType, integer index returns framehandle
Эта функция импортирует?
prog:
fdf файл с твоим фреймом
И тут имеется в виду, что он уже изменён где-то или "твой фрейм" - это тот, который надо изменить уже в самом редакторе?
24
Что такое toc и откуда импортировать эти оба файла?
Что значит откуда, тебе нужно их создать, естественно, а потом засунуть в карту через импорт.
BlzLoadTOCFile для загрузки toc файла. Внутри должен быть список fdf файлов которые ты хочешь чтобы игра загрузила, пример toc файла смотри в архивах игры (в твоем toc файле должны быть только те fdf которые тебе нужны, не надо туда стандартные копировать).
А дальше создаешь фрейм функцией создания фрейма.
BlzGetOriginFrame - получает уже созданый стандартный фрейм и для твоей задачи не подходит.

Еще, для простых задач, можно в коде собирать то что нужно из стандартных фреймов по кусочкам, не создавая свой fdf, но это еще больший геморой, чем fdf файлы.
11
Оо~prog:
пример toc файла смотри в архивах игры
Не понял, toc файл - это папка с fdf файлами?
24
DopaMine, toc файл это список fdf файлов. В архивах игры есть war3.w3mod:ui\framedef\framedef.toc, в который можно заглянуть чтобы понять как должен выглядеть toc файл внутри.
11
DopaMine, toc файл это список fdf файлов. В архивах игры есть war3.w3mod:ui\framedef\framedef.toc, в который можно заглянуть чтобы понять как должен выглядеть toc файл внутри.
А, понял. А как мне понять, какой именно fdf файл отвечает за панель с заклинаниями?(
Если я константу знаю: "ORIGIN_FRAME_COMMAND_BUTTON"
Proshel_Doty:
А ещё можно заглянуть сюда xgm.guru/p/wc3/frame
Спасибо! Заглядывал, не поверите! т
Там начинается не с того, что я не знаю, а дальше...
24
DopaMine, я тебе уже говорил - нельзя просто поменять панель заклинаний... Тебе нужна своя отдельная панель, не связаная со способностями юнитов...
11
нельзя просто поменять панель заклинаний...
Ну хотя бы, как это всё описывается мне же надо знать? Чтоб сделать такую же, к примеру, но свою с нуля.
То есть, эта новая панель - просто картинка типо и любое взаимодействие с нею нужно писать? Типо если игрок - владелец юнита навёл мышь на такую-то ячейку, то вывести описание способности, если он нажал левую кнопку мыши, то...
Так?Оо
DopaMine:
Чтоб сделать такую же, к примеру, но свою с нуля.
Тут я имею в виду именно визуально такую же.
prog:
DopaMine, я тебе уже говорил - нельзя просто поменять панель заклинаний... Тебе нужна своя отдельная панель, не связаная со способностями юнитов...
В рефоргеде будет проще сделать или так же?:D
24
Ну хотя бы, как это всё описывается мне же надо знать? Чтоб сделать такую же, к примеру, но свою с нуля.
То есть, эта новая панель - просто картинка типо и любое взаимодействие с нею нужно писать? Типо если игрок - владелец юнита навёл мышь на такую-то ячейку, то вывести описание способности, если он нажал левую кнопку мыши, то...
Так?Оо
Именно. Я же предупреждал что это сложно...
Как понять какой fdf тебе нужен? Никак, перебирать пока найдешь нужный. Ну или найти кого-то кто уже находил нужный тебе фрейм. Более того, фреймы могут наследоваться друг от друга, а также могут быть вложены один в другой и все это добро может быть раскидано по отдельным файлам.
В рефоргеде будет проще сделать или так же?:D
99% что так-же. Может когда-нибудь в далеком будущем будут какие-то улучшения.
11
Ну или найти кого-то кто уже находил нужный тебе фрейм.
АХАХ, так и думал, что в итоге только гуглить по форумам:DDDDD
prog:
Именно. Я же предупреждал что это сложно...
Хмм, ну, у меня не то чтобы прям целые абилки были вставлены в эти ячейки...Но если есть команды на жассе, позволяющие получить координаты мыши или нажатие "горячих клавиш", то с этим попроще будет. Дичь в том, что искать, что за фрейм.
Proshel_Doty:
А ещё можно заглянуть сюда xgm.guru/p/wc3/frame
А здесь нет указаний, какой fdf файл за что отвечает? Я пока в понятиях не совсем разобрался. Константы, функции. Это, как я понял, для работы с отображением готовых фреймов в самом редакторе уже.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.