Общая идея проста. Есть к примеру юнит, Рыцарь, но для его обучения нужно построить алтарь (к примеру). Как скрыть его иконку до того момента, пока не появится возможность нанимать этих рыцарей?
Принятый ответ
В функции main по умолчанию есть вызов стандартной функции InitBlizzard, в которой есть вызов функции InitSummonableCaps.
function InitSummonableCaps takes nothing returns nothing
local integer index
set index = 0
loop
// upgraded units
// Note: Only do this if the corresponding upgrade is not yet researched
// Barrage - Siege Engines
if (not GetPlayerTechResearched(Player(index), 'Rhrt', true)) then
call SetPlayerTechMaxAllowed(Player(index), 'hrtt', 0)
endif
// Berserker Upgrade - Troll Berserkers
if (not GetPlayerTechResearched(Player(index), 'Robk', true)) then
call SetPlayerTechMaxAllowed(Player(index), 'otbk', 0)
endif
// max skeletons per player
call SetPlayerTechMaxAllowed(Player(index), 'uske', bj_MAX_SKELETONS)
set index = index + 1
exitwhen index == bj_MAX_PLAYERS
endloop
endfunction
Тут выставляется лимит на обычных скелетов, убираются иконки парового танка и берсерка.
Перед выполнением InitBlizzard выполняются все функции, что генерируются в настройках игроков, для этого в InitSummonableCaps стоят проверки.
8gabriel8:
Перед выполнением InitBlizzard выполняются все функции, что генерируются в настройках игроков, для этого в InitSummonableCaps стоят проверки.
8gabriel8:
А вот интересно, когда делаешь грейд на берсерков, то в бараке нанимаешь троллей или берсерков?
Достаточно взглянуть на грейд и становится ясно, что нанимаешь сразу берсерков.
Решение вопроса такое.
1. Во время инициализации ставим для всех игроков (как в функции InitSummonableCaps) разрешаемое кол-во рыцарей на 0.
2. Один триггер регистрирует появление алтаря на карте.
1. Во время инициализации ставим для всех игроков (как в функции InitSummonableCaps) разрешаемое кол-во рыцарей на 0.
2. Один триггер регистрирует появление алтаря на карте.
С: Юнит входит в область Вся карта
У: Тип Triggering unit равно Алтарь
Д: Поставить лимит на производство Рыцарь в -1 для Игрока-владельца Triggering Unit
3. Другой триггер регистрирует смерть алтаря.
С: Юнит умирает
У: Тип Умирающий юнит равно Алтарь
Д: Выбрать всех юнитов в группе (Юниты Игрока-владельца Умирающего юнита с условием (Тип Matching unit равно Алтарь))
Если первый юнит в последней созданной группе равно Нет юнита то (Поставить лимит на производство Рыцарь в 0 для Игрока-владельца
Умирающего юнита)
Уничтожить последнюю созданную группу.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован 8gabriel8
Отредактирован PT153
Перед выполнением InitBlizzard выполняются все функции, что генерируются в настройках игроков, для этого в InitSummonableCaps стоят проверки.
8gabriel8:
1. Во время инициализации ставим для всех игроков (как в функции InitSummonableCaps) разрешаемое кол-во рыцарей на 0.
2. Один триггер регистрирует появление алтаря на карте.
Отредактирован Extremator
Отредактирован PT153
Имя Chaos пошло от таких же способностей для орков, которые превращаются в одержимых в одной миссии, потому что паровые танки и берсеркеры были добавлены в TFT.