Можешь глянуть, как я это реализовал. Тут правда используются предметы в качестве индикатора кд.
У башни есть крит, у которого кд 10 секунд. АА башни уменьшает кд на 1 секунду. Текущее кд отображается в иконке предмета. Там можно немного улучшить систему: таймер в 0.25 с 40 раз работает дольше, чем просто таймер 10 с.
Есть способность ANso, которой можно наложить немоту. Когда юнит использует способность, создаёшь даммика со способностью ANso, который кастует последнюю на юнита.
Можно просто удалять способности и добавлять их по истечению определённого времени с помощью таймера.
Так создай 2 предмета, 1 активный, другой неактивный... А события при нажатие предмета меняй на активную а также проверка маны чтобы вернуть в неактивный предмет.... Это даже ребенок может нарисовать алгоритм
Я так и сделал, спрашивал на тот случай, если всё-таки можно сделать по-другому.
Редактор объектов > Войска > Правой кнопкой мыши на воина/героя > Создать нестандартную боевую единицу. И редактируешь её.. Скилы,урон,имя и тд.
Сегодня делал так, создал так героя, для проверки добавил на карту, сохранил карту, зашел в варик вроде норм, но когда я опять зашел в World Editor у меня пропал этот герой
Делай все баффы и дебаффы и давай триггерно разные на основе ауры торнадо, она стакается разная
Это да, но ведь чтобы удалить, когда нужно, необходимо создавать таймер. А я хотел бы без них.
Сами баффы мне не нужны, мне нужно лишь сохранять некоторые значения в хеш-таблицу на время действия способности.
Делаешь глобальный массив логических PlayerInGame и на инициализации пишешь в него true, если игрок есть.
Номера игроков начинаются с нуля.
local integer a=0
loop
exitwhen a>7
set p=Player(a)
if GetPlayerSlotState(p)==PLAYER_SLOT_STATE_PLAYING then
set PlayerInGame[a]=true
endif
set a=a+1
endloop
После этого создаёшь массив целых числел и записываешь туда действующих игроков.
local integer array players
local integer a=0
local integer n=-1
local integer vampireplayer=0
loop
exitwhen a>7
if PlayerInGame[a] then
set n=n+1
set players[n]=a
endif
set a=a+1
endloop
После выбираешь рандомного.
set vampire=players[GetRandomInt(0,n)] Как распространить форматирование на несколько строк?
» WarCraft 3 / Как сделать пассивку с перезарядкой?
У башни есть крит, у которого кд 10 секунд. АА башни уменьшает кд на 1 секунду. Текущее кд отображается в иконке предмета.
Там можно немного улучшить систему: таймер в 0.25 с 40 раз работает дольше, чем просто таймер 10 с.
Отредактирован PT153
» WarCraft 3 / Быстрый импорт
Так, разобрался, спасибо.
» WarCraft 3 / Быстрый импорт
» WarCraft 3 / Немота
Можно просто удалять способности и добавлять их по истечению определённого времени с помощью таймера.
» WarCraft 3 / Способность с указанием цели, без анимации каста
» WarCraft 3 / Разница в объявлении real
» WarCraft 3 / Лучший способ отправить юнитов в атаку
» WarCraft 3 / Изменяемая иконка у предмета
» WarCraft 3 / Почему иконка зеленая?
» WarCraft 3 / Удаление юнита
» WarCraft 3 / Башня-герой?
А где-то писали, что из обычного юнита нельзя сделать героя.
Отредактирован PT153
» WarCraft 3 / Hashtable или array
» WarCraft 3 / Как создать своего героя и добавить его в свою карту?
» WarCraft 3 / Управление уровнем рельефа и водой
Там есть то, что ищешь. Если нужно, конвертируешь в JASS.
» WarCraft 3 / Критические ошибки
» WarCraft 3 / Таргетные способности с таймером
Сами баффы мне не нужны, мне нужно лишь сохранять некоторые значения в хеш-таблицу на время действия способности.
» WarCraft 3 / Критические ошибки
Из-за хеш-таблицы могут быть утечки?
» WarCraft 3 / Критические ошибки
» WarCraft 3 / Критические ошибки
» WarCraft 3 / Критические ошибки
Отредактирован PT153
» WarCraft 3 / Как сделать триггер на рандом выбор.
Номера игроков начинаются с нуля.
loop
exitwhen a>7
set p=Player(a)
if GetPlayerSlotState(p)==PLAYER_SLOT_STATE_PLAYING then
set PlayerInGame[a]=true
endif
set a=a+1
endloop
local integer a=0
local integer n=-1
local integer vampireplayer=0
loop
exitwhen a>7
if PlayerInGame[a] then
set n=n+1
set players[n]=a
endif
set a=a+1
endloop
set vampire=players[GetRandomInt(0,n)]
Как распространить форматирование на несколько строк?
» WarCraft 3 / Массивы
Отредактирован PT153
» WarCraft 3 / Как увеличить урон боевой единице с помощью триггера?