N1ghtSiren, сейчас проверил, проблема действительно в этом "квадрате", сдвинул седьмую кнопку чуть правее, и она заработала. Вроде бы сдвинул циклом все кнопки вниз на 0.14, но не помогло :C
Что подразумевается под "Moving ConsoleUI a little bit down"?
Забыл добавить, если кнопки находятся где-нибудь в области от 0.0 до 0.6, они полноценно функционируют.
За левую границу 4:3 я их вынес функцией setAbsPoint с аргументами FRAMEPOINT_LEFT и 0.0
Есть подозрения, что область 4:3 начинается намного левее центра
Ну, данные можно сохранять в файл и считывать с файла. В принципе, можно написать сайт так, чтобы все действия на сайте конвертировались в файл, который варкрафт мог бы прочитать, а потом этот файл загружать непосредственно вовремя игры. Насчет автоматизации. Например, прописать сайту, чтобы тот сохранял файл с параметрами игры по определенному пути, а вакрафт оттуда их считывал. Возможна десинхронизация.
Насчет переноса данных между картами. Существуют SaveLoad системы, обычно они работают в пределах одной карты, но если несколько карт обладают одинаковыми игровыми объектами, то можно без проблем переносить данные между ними с помощью таких систем.
Мне помнится наоборот писали, что структуры быстрее будут, не уверен, что это так
Но в случае, если прикрепить нужно не одну цифру, а большее количество различных данных, хранить их в структуре будет эффективнее
Создать структуру, в которой будет храниться два int'а. Первый инт это ваше число, второй инт это тип юнита.
Имея тип юнита, вы можете перебором структур найти нужную структуру, а потом оттуда достать инт.
Примерный код:
struct UnitType
int typeid
int number
int func()
local id = GetTriggerUnit().GetTypeId()
i = 0
while (i < 100)
if i.typeid == id
return i.number
quq_CCCP, нет, мне конкретно нужен именно SIMPLESTATUSBAR, это такой тип фреймов, которому можно дать две текстуры и определенное значение. В зависимости от этого значения (от 1 до 100) часть верхней текстуры исчезает справа налево. И вопрос был в том, можно ли это изменить, чтобы, например, исчезновение происходило сверху вниз. Может какой-то строчкой в FDF файле, не знаю.
Про модель кулдауна я в курсе, и она не подойдет, т.к. там проигрывается анимация, и чтобы останавливать ее на определенном проценте, придется каждый раз проигрывать ее заново с повышенной скоростью и останавливать в нужный момент (вычисляя его математически). Это опять таки слишком костыльный костыль (ну и кд не вертикальное)
quq_CCCP, ну, я понимаю принцип работы, но именно анимация мне не нужна. Я хотел сделать вертикальный хп-бар, т.е. как-то повернуть фрейм что ли.. либо изменить вектор "исчезания" верхнего фрейма. Думаю, менять каждый раз текстурку, заранее заготовив по одной на каждый процент, слишком муторно, и явно того не стоит
Bergi_Bear, www.hiveworkshop.com/threads/ui-creating-a-bar.316254
Чтобы создать вышеприведенное нет необходимости создавать 20 иконок, существует встроенный функционал, но работает он только в одну сторону, т.е. справа налево. quq_CCCP, сижу на официальном варкрафте, полученном с предзаказа рефоржеда. 1.31 или 1.32, не помню точно. Функционала, действительно нет, хотелось бы узнать о возможных костылях.
Absolute, у меня базовая горка ограничена в высоте, и плато, соответственно, получается низким, чтобы сделать горку выше приходится вокруг нее тоже поднимать уровень, в итоге получается что-то вроде пирамиды. Иначе говоря, дела обстоят в точности как с клифами.
8gabriel8, не думаю, что зависит от этого, с помощью плато пытался сделать похожий склон на карте снарта, не вышло, как будто его склон просто делался другим инструментом. Obelick, экспортировал MiscData, отредактировал Slope и MaxHeight, импортировал в карту с соответствующим путем, рельеф все также упирается в предел. Absolute, почему-то никак не получается сделать как у тебя на скриншоте :c
Через периодический таймер постоянно меняешь угол поворота камеры в зависимости от угла поворота героя. Что-то вроде:
SetCameraField(CAMERA_FIELD_ROTATE_ANGLE, GetUnitFacing(герой))
Написал приблизительно.
UPD. Для локального игрока, равного владельцу героя.
Для каждого юнита в группе будет вызвана функция TES.
GetEnumUnit() возвращает боевую единицу, для которой была вызвана функция, иначе говоря, сначала это первый юнит в группе, потом второй, потом третий и т.д.
Три параллельных массива: массив торговцев, ректов и групп. Каждому торговцу соответствует рект, то есть область, в которой он торгует, и группа, назовем ее черный список, - юниты, на которых торговец агрится. Четвертый клан, агрессивный красному игроку.
Юнит входит в область торговца, если юнит в черном списке, торговец становится четвертым кланом.
Вошедший юнит из черного списка покидает область, торговец снова становится торговцем.
В итоге: если к торговцу зайдет юнит красного, вне черного списка, торговец будет продавать предметы. Если зайдет юнит, до этого атаковавший его, торговец сагрится. Если менять владельца не меняя цвет игрока, то в игре будет выглядеть, будто четвертого клана и нет вовсе. Единственное, если к торговцу зайдут два юнита, один в черном списке, другой нет, торговец все равно сагрится. Но, ИМХО, это даже хорошо, потому что логично. Какой смысл торговцу работать с человеком, который пришел вместе с тем, кто пытался его убить. Чтобы не было абуза, можно при входе "черного" юнита дать торговцу приказ атаковать его.
Способность пустышка, при использовании которой для всех локальных игроков, кроме хозяина, выполняется функция ShowUnit(u, false)
Тестировал в одиночной игре, скрыл юнита от синего игрока, сам же мог управлять им и атаковать юнитов синего, насчет мультиплеера не знаю, да и в целом в методе не уверен, но выглядит просто и десинхрона, вроде, быть не должно. Стоит протестировать в мульти.
Способность на основе спеллбука с названием, например, "Передать юнита игроку". В спеллбуке несколько направленных способностей на основе канала, количество зависит от количества игроков, которым можно отдать юнита. В зависимости от того, какая абилка была использована, меняется владелец выбранного юнита. Триггер:
Юнит использует способность
Если способность == передать красному
Изменить владельца цели способности на красного
Если способность == передать синему
Изменить владельца цели способности на синего
и т.д.
При правильных описаниях способностей будет очень user friendly
Отредактирован Haikyo
» WarCraft 3 / Экспорт файлов игры
» WarCraft 3 / Экспорт файлов игры
Изначально думал, что теперь так у всех, поэтому к самому вопросу скриншот не прикладывал
» WarCraft 3 / Экспорт файлов игры
Отправляйте сюда, людям с аналогичным вопросом будет проще найти ответ :)
» WarCraft 3 / Simple Button & 4:3 Screen
» WarCraft 3 / Simple Button & 4:3 Screen
Что подразумевается под "Moving ConsoleUI a little bit down"?
» WarCraft 3 / Simple Button & 4:3 Screen
За левую границу 4:3 я их вынес функцией setAbsPoint с аргументами FRAMEPOINT_LEFT и 0.0
Есть подозрения, что область 4:3 начинается намного левее центра
Отредактирован Haikyo
» WarCraft 3 / Мгновенное,триггерное перемещение героя в ту сторону,где обращен
a = угол поворота героя
x = heroX() + d * cosa
y = heroY() + d * sina
setUnitLoc(x, y)
» WarCraft 3 / Костыльные технологии
Насчет переноса данных между картами. Существуют SaveLoad системы, обычно они работают в пределах одной карты, но если несколько карт обладают одинаковыми игровыми объектами, то можно без проблем переносить данные между ними с помощью таких систем.
» WarCraft 3 / Как прицепить integer к типу юнита
Но в случае, если прикрепить нужно не одну цифру, а большее количество различных данных, хранить их в структуре будет эффективнее
» WarCraft 3 / Как прицепить integer к типу юнита
» WarCraft 3 / Simple Status Bar
Отредактирован Haikyo
» WarCraft 3 / Как прицепить integer к типу юнита
Имея тип юнита, вы можете перебором структур найти нужную структуру, а потом оттуда достать инт.
Примерный код:
» WarCraft 3 / Simple Status Bar
Про модель кулдауна я в курсе, и она не подойдет, т.к. там проигрывается анимация, и чтобы останавливать ее на определенном проценте, придется каждый раз проигрывать ее заново с повышенной скоростью и останавливать в нужный момент (вычисляя его математически). Это опять таки слишком костыльный костыль (ну и кд не вертикальное)
» WarCraft 3 / Simple Status Bar
Отредактирован Haikyo
» WarCraft 3 / Simple Status Bar
Чтобы создать вышеприведенное нет необходимости создавать 20 иконок, существует встроенный функционал, но работает он только в одну сторону, т.е. справа налево.
quq_CCCP, сижу на официальном варкрафте, полученном с предзаказа рефоржеда. 1.31 или 1.32, не помню точно. Функционала, действительно нет, хотелось бы узнать о возможных костылях.
» WarCraft 3 / Иконки атаки и движения
» WarCraft 3 / Иконки атаки и движения
» WarCraft 3 / Уровень рельефа
Obelick, экспортировал MiscData, отредактировал Slope и MaxHeight, импортировал в карту с соответствующим путем, рельеф все также упирается в предел.
Absolute, почему-то никак не получается сделать как у тебя на скриншоте :c
Отредактирован Haikyo
» WarCraft 3 / Как сделать поворот камеры
SetCameraField(CAMERA_FIELD_ROTATE_ANGLE, GetUnitFacing(герой))
Написал приблизительно.
UPD. Для локального игрока, равного владельцу героя.
Отредактирован Haikyo
» WarCraft 3 / Сломалась карта
Как закрыть вопрос?)0
» WarCraft 3 / Вопрос по Jass
GetEnumUnit() возвращает боевую единицу, для которой была вызвана функция, иначе говоря, сначала это первый юнит в группе, потом второй, потом третий и т.д.
» WarCraft 3 / Вопрос по JNGP
» WarCraft 3 / По поводу Агро ботов на игроков.
Юнит входит в область торговца, если юнит в черном списке, торговец становится четвертым кланом.
Вошедший юнит из черного списка покидает область, торговец снова становится торговцем.
В итоге: если к торговцу зайдет юнит красного, вне черного списка, торговец будет продавать предметы. Если зайдет юнит, до этого атаковавший его, торговец сагрится. Если менять владельца не меняя цвет игрока, то в игре будет выглядеть, будто четвертого клана и нет вовсе. Единственное, если к торговцу зайдут два юнита, один в черном списке, другой нет, торговец все равно сагрится. Но, ИМХО, это даже хорошо, потому что логично. Какой смысл торговцу работать с человеком, который пришел вместе с тем, кто пытался его убить. Чтобы не было абуза, можно при входе "черного" юнита дать торговцу приказ атаковать его.
» WarCraft 3 / Можно ли убрать эффект у невидимости?
Тестировал в одиночной игре, скрыл юнита от синего игрока, сам же мог управлять им и атаковать юнитов синего, насчет мультиплеера не знаю, да и в целом в методе не уверен, но выглядит просто и десинхрона, вроде, быть не должно. Стоит протестировать в мульти.
» WarCraft 3 / Способность передачи юнита игроку
Юнит использует способность
Если способность == передать красному
Изменить владельца цели способности на красного
Если способность == передать синему
Изменить владельца цели способности на синего
и т.д.
При правильных описаниях способностей будет очень user friendly