Увидел тему по поводу фреимов. Типо как создать свои фреимы. Там был такои ответ:
"Разумеется не забудьте импортировать fdf и создать toc файл". Я там вчера задал вопрос, мне не ответили. Подскажите подробно, куда и что вставлять? Вот ссылки на темы:

Принятый ответ

Ток файл, это просто текстовый файл, но с одним нюансом..
раскрыть
в конца файла должна быть пустая новая строка
main.fdf
newsupercustomFDF.fdf
Этот файл должен быть помещен в карту через импорт или через режим папки
Чтобы этот файл сработал и подтянул кастомные fdf?которые прописаны внутри него
нужно выполнить код
BlzLoadTOCFile("Main.toc") 
лучше использоваться как
if not BlzLoadTOCFile("Main.toc") then
		print("errloadtoc")
end
Чтобы получить сообщение об ошибке, если мы что-то делаем не так
если хотите больше узнать о fdf , то читаем тут
или вот тут
Но это всё не нужно если честно
стандарт позволяет покрыть 99% всех задач, дело всё всё в том, что внутри самого движка варика есть свой toc и свои fdf, там функционал ниже, наверное 80% всего что есть, но и этого уже достаточно
Вот пример
Для создания фреймов и конок с рамочками при наведении не использовался ни toc ни fdf
я бы ещё скинул сюда пеонов
где так же этого ничего нет, но я совру, при борьбе с десинхами, я всё таки использовал кастомные fdf, но это оказалось ошибкой, десинхи были в другом, но назад я уже не стал переделывать ибо это пару килобайт веса
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
32
3 года назад
2
Ток файл, это просто текстовый файл, но с одним нюансом..
раскрыть
в конца файла должна быть пустая новая строка
main.fdf
newsupercustomFDF.fdf
Этот файл должен быть помещен в карту через импорт или через режим папки
Чтобы этот файл сработал и подтянул кастомные fdf?которые прописаны внутри него
нужно выполнить код
BlzLoadTOCFile("Main.toc") 
лучше использоваться как
if not BlzLoadTOCFile("Main.toc") then
		print("errloadtoc")
end
Чтобы получить сообщение об ошибке, если мы что-то делаем не так
если хотите больше узнать о fdf , то читаем тут
или вот тут
Но это всё не нужно если честно
стандарт позволяет покрыть 99% всех задач, дело всё всё в том, что внутри самого движка варика есть свой toc и свои fdf, там функционал ниже, наверное 80% всего что есть, но и этого уже достаточно
Вот пример
Для создания фреймов и конок с рамочками при наведении не использовался ни toc ни fdf
я бы ещё скинул сюда пеонов
где так же этого ничего нет, но я совру, при борьбе с десинхами, я всё таки использовал кастомные fdf, но это оказалось ошибкой, десинхи были в другом, но назад я уже не стал переделывать ибо это пару килобайт веса
Принятый ответ
0
11
3 года назад
0
main.fdf
Спасибо, фаил создал и импортировал. А как мне узнать теперь, что менять и где, чтобы убрать какую-то конкретную панель? Миникарту/верхнее меню. Где и как создать свою панель, чтоб можно было по-своему реализовать меню паузы?
Я вижу только готовые решения на форуме, типо скрыть весь интерфеис.
Где есть база с командами для интерфеиса и пояснения, через что эти команды реализовывать? Типо через триггеры или в самом фаиле?
0
32
3 года назад
Отредактирован Берги
0
Подгуглить, в целом почти любой элемент можно скрыть по отдельность используя ORIGIN_FRAME_ всё это доступно в подсветке любого внешнего редактора
названия там супер мега логичные
есть кусок статьи он Назара
или просто идём на хайв
>> чтоб можно было по-своему реализовать меню паузы?
Меню паузы - скорее всего никак, забейте на это
>> Типо через триггеры или в самом фаиле?
Всё делается кодом, смотрим примеры
>> Типо через триггеры или в самом фаиле?
Триггеры как таковые вообще не нужны, забудьте об этом
Начните вот с этого, если не понимаете меня
Там создание простейшего фрейма, если совсем всё плохо, то
//Create a "GLUEBUTTON" named "Facebutton" inheriting "ScoreScreenTabButtonTemplate", the clickable Button, for game UI
    local framehandle buttonFrame = BlzCreateFrameByType("GLUEBUTTON", "FaceButton", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "ScoreScreenTabButtonTemplate", 0)
//Create a BACKDROP named "FaceButtonIcon", the visible image, for buttonFrame.
    local framehandle buttonIconFrame = BlzCreateFrameByType("BACKDROP", "FaceButtonIcon", buttonFrame, "", 0)
//buttonIconFrame will mimic buttonFrame in size and position
    call BlzFrameSetAllPoints(buttonIconFrame, buttonFrame)
//Set a Texture
    call BlzFrameSetTexture(buttonIconFrame, "ReplaceableTextures\\CommandButtons\\BTNSelectHeroOn", 0, true)
// Place the buttonFrame to the center of the screen
    call BlzFrameSetAbsPoint(buttonFrame, FRAMEPOINT_CENER, 0.4, 0.3)
// Give that buttonFrame a size
    call BlzFrameSetSize(buttonFrame, 0.05, 0.05)
Код выше, создаёт кнопку в центре экрана, каждая строка прокомментирована и разжевана, даже не джасе, а то я луа кида, ну на луа тоже самое всё только без call/set и без типа данных у локалок
Вспомните по аналогии, как вы создавали текстаг?
Была функция CreateTerxtag? потом мы задавали размер, сам текст, время жизни, движение и т.д.
тут всё тоже самое, это такое жасс апи как было:
  1. Создаём фрейм указанного типа
  2. Указываем размеры фрейма
  3. Указываем координаты где он будет на экране
  4. Указываем иконку которая будет у фрейма
  5. Если нужно чтобы фрейм был кликабельный или с событием наведения, то создаём триггеры. Тут ничего сложно то нет, тыкаем как мартышка по примерам и преисполняемся знаниями
Загруженные файлы
0
11
3 года назад
Отредактирован DopaMine
0
Подгуглить, в целом почти любой элемент можно скрыть по отдельность используя ORIGIN_FRAME_ всё это доступно в подсветке любого внешнего редактора
Где скрывать эти элементы? Куда писать ORIGIN_FRAME_GAME_UI? Какого формата должен быть фаил, чтобы подсвечивалось во внешнем редакторе? Как заставить этот фаил сработать? Вот самые простые деиствия опишите:
ЗАДАЧА:
Скрыть верхнее меню на пустои только что созданнои карте и создать в центре экрана кнопку, на которую можно навести мышь(чтоб высветилось описание, как у абилки, путь такое "ВЫ МОЖЕТЕ НАЖАТЬ НА КНОПКУ") и которую можно нажать, чтоб проигрался стандартныи звук и при нажатии к примеру просто высветилось сообщение в чат "ВЫ НАЖАЛИ КНОПКУ".
Если я поиму логику создания такои кнопки и скрытия меню на пустои карте(которая пока не имеет никаких триггеров и импортированных фаилов и вообще пока нет нигде никаких fdf или toc), то я смогу создать любые кнопки. ПЛИЗ, ПОМОГИТЕ!
Что для этого надо сделать? Я если не начну пробовать на практике все эти команды, я вообще не поиму, мне надо как бы с самого нуля на пустои карте это опробовать, чтоб суть понять. Я пока вижу в общем: как скрыть любую панель, как создать кнопку.
Но непонятно, что вот именно сделать надо для этого на абсолютно пустои карте.
Я не хочу, чтоб за меня кто-то сделал мои кнопки или скиллы, или интерфеис. Мне просто именно таким образом уже будет ясно, что гуглить, куда что писать, чтоб проверить, работает ли у меня способ.
Чтоб я мог не тупо скопировать чеи-то код и обрадоваться, мол, "О, РАБОТАЕТ!", а именно увидеть, как работает у другого чела, прочитать его код и создать своё похожее, но написанное своими руками!
ЗАРАНЕЕ СПАСИБО!))

Ибо я пробую вставить в свою карту код из уроков, которые вы предлагаете - и у меня выдаёт ошибки какие-то и я даже не могу разобраться, так как неясно, как для написания кода вообще "подготовить" карту.


Это ошибка, которая возникает, если я на пустую карту пишу в новыи триггер текстом:
//Create "HeroSelectorButton", for game UI
    local framehandle buttonFrame = BlzCreateFrame("HeroSelectorButton", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), 0, 0)
//By Having created "HeroSelectorButton" also its children are created, this children are accessed using BlzGetFrameByName right after the creation or later one if the slots were not taken by other frames.
    local framehandle buttonIconFrame = BlzGetFrameByName("HeroSelectorButtonIcon", 0)
//Set a Texture
    call BlzFrameSetTexture(buttonIconFrame, "ReplaceableTextures\\CommandButtons\\BTNSelectHeroOn", 0, true)
// Place the buttonFrame to the center of the screen
    call BlzFrameSetAbsPoint(buttonFrame, FRAMEPOINT_CENER, 0.4, 0.3)
// Give that buttonFrame a size
    call BlzFrameSetSize(buttonFrame, 0.05, 0.05)
Загруженные файлы
0
32
3 года назад
0
Не вставляйте код, скачайте карту, там карта пример
как скрыть верхнюю панель? это уже отдельная тема для разговора, верхняя панель это
4 кнопки Меню, квесты, союзники
Открываем API варика в своём редакторе, вводим слова
что у нас тут, ага нативочка
---@param frame framehandle
---@param visible boolean
function BlzFrameSetVisible(frame, visible) end    -- (native)
Берёт фрейм, типа framehandle как первый параметр и второй boolean, наш обычный переключатель, значит для того чтобы отдельно скрыть какой-то элемент, достаточно прописать
BlzFrameSetVisible(BlzGetFrameByName("ResourceBarFrame", 0), false)
чтобы скрыть панель ресурсов
или же вот так
BlzFrameSetVisible(BlzGetOriginFrame(ORIGIN_FRAME_SYSTEM_BUTTON, 0), false)
Чтобы скрыть кнопку меню
Следовательно этого кода должно быть уже достаточно чтобы убрать всю верхнюю панель, может ещё что-то
раскрыть
BlzFrameSetVisible(BlzGetFrameByName("ResourceBarFrame", 0), false)
BlzFrameSetVisible(BlzGetOriginFrame(ORIGIN_FRAME_SYSTEM_BUTTON, 0), false)
BlzFrameSetVisible(BlzGetOriginFrame(ORIGIN_FRAME_SYSTEM_BUTTON, 1), false)
BlzFrameSetVisible(BlzGetOriginFrame(ORIGIN_FRAME_SYSTEM_BUTTON, 2), false)
BlzFrameSetVisible(BlzGetOriginFrame(ORIGIN_FRAME_SYSTEM_BUTTON, 3), false)
На этом лавочка по азам WC3 API закрывается, дальше сами, удачи
Загруженные файлы
0
11
3 года назад
0
Не вставляйте код, скачайте карту, там карта пример
Где там?(

как скрыть верхнюю панель? это уже отдельная тема для разговора, верхняя панель это
4 кнопки Меню, квесты, союзники
Не понял, куда вписывать. Ну блин, допустим просто хоть один пункт скрыть. Что за API Варкрафта? Где мне его взять? Это фаил?

Вы про этот пример с картою? Ок, как скрыть я тут наиду, но там столько сразу всего. Ничего проще я не наиду?
2
32
3 года назад
2
Где там?(
Ну.. у этого карты примера не оказалось, соре, но чаще он есть, вот ресурсы у которых есть карта пример
Не понял, куда вписывать. Ну блин, допустим просто хоть один пункт скрыть
Минимум в кастом скрипт вписывать, максимум, в свой редактор, на гуи фреймов нет, код который кидаю я всегда на луа, карта должна быть в режиме луа, если у вас на любую строчку ругается pjass, то вы не перевели карту в режим луа, его вообще не должно быть, благо на хайве на двух языка всё, поэтому разберётесь
DopaMine:
Что за API Варкрафта? Где мне его взять?
API варкрафта, это набор нативок-функций для работы, он зашит в движок, чтобы узнать что же конкретно туда зашито, можно посмотреть отдельно
Если использовать нормальный редактор это уже зашито
Есть поддержка Tesh подсветка для рефа, минимум надо это установить, чтобы не в отдельном файле смотреть
Максимум установить вот это
или вот это

Вот держите, карта пример на луа, пропало 4 кнопки и панель ресурсов, осталось только рамка и циферблат, а это вам уже домашнее задание
и гуи триггер, чтобы уже проще некуда
Загруженные файлы
0
11
3 года назад
0
Вот держите, карта пример на луа, пропало 4 кнопки и панель ресурсов, осталось только рамка и циферблат, а это вам уже домашнее задание
Ок, как скрывать, я разберусь, СПАСИБО!
Как с помощью триггеров создать кнопку? Ну которая имеет иконку, на которую можно навести мышь и которую можно нажать и прозвучит звук и к примеру выведется сообщение на экран "ВЫ НАЖАЛИ КНОПКУ"
0
32
3 года назад
0
Это уже не касается данного вопроса, это тема про toc и fdf.
Есть даже вот такой изврат, где кнопки можно создавать на гуи
0
11
3 года назад
0
Вот держите, карта пример на луа, пропало 4 кнопки и панель ресурсов, осталось только рамка и циферблат, а это вам уже домашнее задание
Спасибо! А можете плз показать, как это чистым кодом на LUA написать? Ибо у меня карта не на гуи будет, мне нужно будет прописывать условия. У меня на Jass будет карта, но с вашего луа на джасс я смогу перевести логически. Хочу увидеть, как именно кодом выглядит скрипт целиком.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.