Можно dummy-unit отдать приказ строить здание. Если недостаточно ресурсов, то нативка приказа сразу вернет false. Либо сразу проверяй ресурсы: золото, древо, пища
А вот с проверкой - можно ли строить здание сложнее. По идее у вас в фейковом должен отображать. Можно написать функцию проверки на предмет возможности стройки ссылка
Недостроенное здание сделать легко. Ставится dummy-unit, главное чтобы у него был указан в build list здание. Лучше брать раба хумана, ибо
у андедов строится само и процесс не остановить,
у эльфов светлячок внутри стройки и процесс не прервать,
у орков тоже внутри стройки
Раб хумана строит с помощью абилки ремонта. Сделай копию абилки ремонта. В целях этой абилки укажи тип таргета. Например, не самоубийца. Можно здание указать тип самоубийца. Когда раб хумана поставит это здание, дальше он уже не будет строить. Просто без абилки ре онта он не будет ниче делать
Я такой вопрос решал с растениями. Мне надо было, чтобы фермер сажал картошку. И потом через таймер растил картоху до 100%
Можно сделать, но на фреймах. Иначе, берете итем, суете в нее активную пустышку без кд и маны, которая активируется при нажатии.
Щас есть нативки добавления и удаления абилок из итемов.
Отмечу, что иначе без активной абилы вам не отследить нажатие. Ивенты активации не работают без способности
Real60Hz, перемещение только пкм, а клики обычно делаются лкм
TNT, в рефе отлов координат экрана не работает, только мировые коорды. Можно нахождение курсора мыши внутри фрейма - велосипед изобрести. и работает, то медленно через ивент. Все, что вы описали очень не понятно и сложно осуществить без нужного функционала.
stapler, это для фреймов. можно сделать свою анимированную кнопку:
при выделении на кнопку, высвечивается рамка (пример инвентарь из статьи)
авто-каст. Там та же самая кнопка, только с рамочкой. Статичная и анимированная. При вкл у вас отображается анимация, что значит автокаст вкл (хотел бы сделать свою автокастовую абилку. Она будет вкл и выкл по твоему желанию. Это можно будет отследить, нежели в дефолт кнопки)
Можно много чего сделать похожего. Как позволит фантазия
есть другой способ (то, что ты используешь)
Кратко: у вам могут быть созданы очень много фреймов с одного шаблона. Но доступ к нему можно получить один раз - при создании. Обычно мы указываем в нативках создания имя шаблона. О чем я говорю? О том, что BlzGetFrameByName получает фрейм только в момент создания.
local backdrop = BlzCreateFrame("MyBackdropTemplate", gameUI, 0, 0)
local my_text = BlzGetFrameByName("MyTEXT") //потомок
обратиться к MyTEXT не просто. Поэтому нужно записывать все фреймы в переменные.
Мне показалась, что функция GetFrameByName странной, у нее еще в аргументах индекс откуда-то берется. В рефе такого не было. Попробуй другую функцию. Тут море функц. Наверн какая особенность рефа
У симплфрейм нельзя менять текстуру динамично, как только пропишешь в fdf backdrop. Они уже становятся пермаментными. Аналогично, это будет string, BarTexture и др. К сожалению, никак. Не знаю, есть ли рабочие функц к Unryze
Обычно было сложно получить texture, string. Они никогда не создаются отдельно, и явлюятся телом родителя (simplebutton, simlestatusbar, simpleframe). Их найти то можно было, но часто фаталило, если что-то изменяешь, или хочешь сделать триггером. Часто это как часть родителя, если и нужно кому менять, то это родителю нужно изменить string, texture, если получится
Было решение. Ты не прописывай фон (рамку) в fdf, только полоску BarTexture оставь. Триггером создавать текстуру отдельно, вот и решение.
Что мешает создать точно такой симплстатус бар в fdf, но с другой рамкой?
rsfghd,
Это с регионами было точно также. Там на клеточки 32×32 разбивает. Верхние и правые крайние квадратики не учитывает. Но суть та же.
Если у вас рект лежит между коордами 30-56
size = 56-30=26 - размер ректа. Там ширина или длина у пряугольника
minx=30 => программа будет брать 0. Если бы там был 35, то взял бы ближайший шаг 32.
maxx=minx+size=26 => преобразует 32. Сдвигает
Там сдвиг. То есть рект сдвигается на 32 влево и вниз. Поэтому проверка так багуется. Тут ивенты работают, если в эту клеточку попадаешь. Хер знает что так неудобно сдела близзард
Короче, тут как с иконками, от нижнего левого расширяется в правый верхний.
Тут просто ясное дело, что юнит попадает раньше слева или снизу (он уже фактически уже там, ивент опоздывает). И ивент с условием тоже срабатывает.
А сверху или справа, там ивент видимо срабатывает. Но само условие нет, так как самого юнита еще нет в ректе.
Если раскрыть функц ректа, смотреть в условие, там вроде сравнивают координаты. Не в них дело, значит.
А в проверках региона или ивента, как вот они работают. В регионах раьотают по клеткам, ивент входа в рект наверн также на клетки оперирует
minx=30 => программа будет брать 0. Если бы там был 35, то взял бы ближайший шаг 32.
Даже, когда у меня было minx или miny=32, то равен шагу 32. Он все равно берет 0. Будет 64, возмет 32. Будет 256, будет 224.
Ну, кто сказал, что их не любят? Есть разные произведения. Где то мир, где каждый житель владеет магией (маг на полную ставку, эпоха адептов, чернокнижник => в перечисленных романах есть и обычные люди, но их так мало или совсем не уделяют им времени. Что кажется, что только маги) , а где то магия как нечто особенное и редкое, загадка и тайна (в этом тоде есть свои плюсы. Как герой приобрел маг способности).
Мне кажется, что магия должна быть только у способных. Это может овладеть каждый, но возможность маг расы наверн зависят от условии, в которых живут. Если я рисовал мир. Но конечно вы сами автор, и сами решается как вам хочется. Если я напишу, это будет не то.
» WarCraft 3 / Инвентарь
» WarCraft 3 / Как с помощью триггера на гуи создать недостроенное здание
» Книга Опыта (E) / Вопрос к милишникам
» WarCraft 3 / Скрыть определённый предмет в анимациях
Ред. MpW
» Книга Опыта (E) / Вопрос к милишникам
» WarCraft 3 / Двойной клик по предмету.
Щас есть нативки добавления и удаления абилок из итемов.
Ред. MpW
» WarCraft 3 / Как отследить находится ли курсор в поле интерфейса?
Ред. MpW
» Администрация XGM / Вместо видео ссылки
» WarCraft 3 / Рамки для фреймов из Steam
» WarCraft 3 / Рамки для фреймов из Steam
» WarCraft 3 / Рамки для фреймов из Steam
Ред. MpW
» Администрация XGM / Вместо видео ссылки
Одно видно, другое нет
Ред. MpW
» Администрация XGM / Вместо видео ссылки
» WarCraft 3 / Смена интерфейса во время игры
» Книга Опыта (E) / Идея для карты #4: Гоблин-контрабандист
Ред. MpW
» Книга Опыта (E) / Кал импакт
» WarCraft 3 / Замена текстур героя
Ред. MpW
» WarCraft 3 / Как получить фрейм и изменить "Texture" ?
Кратко: у вам могут быть созданы очень много фреймов с одного шаблона. Но доступ к нему можно получить один раз - при создании. Обычно мы указываем в нативках создания имя шаблона. О чем я говорю? О том, что BlzGetFrameByName получает фрейм только в момент создания.
Ред. MpW
» WarCraft 3 / Как получить фрейм и изменить "Texture" ?
Ред. MpW
» WarCraft 3 / Сделать вражеского героя видимым (Волшебный огонь)
Ред. MpW
» WarCraft 3 / Триггер активируется со второго раза
Это с регионами было точно также. Там на клеточки 32×32 разбивает. Верхние и правые крайние квадратики не учитывает. Но суть та же.
Если у вас рект лежит между коордами 30-56
size = 56-30=26 - размер ректа. Там ширина или длина у пряугольника
minx=30 => программа будет брать 0. Если бы там был 35, то взял бы ближайший шаг 32.
maxx=minx+size=26 => преобразует 32. Сдвигает
» WarCraft 3 / Склянка
Ред. MpW
» WarCraft 3 / Склянка
» Литература / Маги в фэнтези
» WarCraft 3 / Пак моделей для ORPG