EugeAl, и чем это отличается от официальной документации? Ну и изначально был тейк про доступность для идиотов. Чёт вот ниразу не сомневаюсь что любой идиот поймёт как работает тот же приоритет.
Arthas080801, если память не изменят, то можно или импортировать в каждую карту отдельно, или глобально для всех карт кампании. Я давно редактор не клацал, так что не совсем помощник.
ScorpioT1000, я бы по другому сделал. На каждый генератор повесил бы событие UnitEntresRange. И запускал бы таймер, который бы выибрал всех юнитов вокруг генератора, проверял условия и считал прогресс.
SharrKnen, держи на грязножассе. Думаю триггер установки SetUnitUserData осилишь написать.
native UnitAlive takes unit id returns boolean
library FoodQuery initializer Init
globals
private group Group = CreateGroup()
private integer array Counter
private integer dummyId = 'dumy' // Равкод даммика
private integer abilId = 'abil' // Равкод абилки с отрицательным регеном
endglobals
private function periodic takes nothing returns nothing
local integer i = -1
local unit target = null
local unit found = null
local integer count = 0
loop
set i = i + 1
exitwhen i > bj_MAX_PLAYER_SLOTS
call GroupClear(Group)
call GroupEnumUnitsOfPlayer(Group, Player(i), null)
loop
set target = FirstOfGroup(Group)
exitwhen target = null
call GroupRemoveUnit(Group, target)
if UnitAlive(target) and GetUnitTypeId(target) == dummyId then
// Считаем юнитов с абилкой
if GetUnitAbilityLevel(target, abilId) > 0 then
count = count + 1
endif
// Сразу выбираем юнита с максимальным значением
if found == null or GetUnitUserData(target) > GetUnitUserData(found) then
set found = target
endif
endif
endloop
// Если никто не найден, то выдаём абилку юниту
if count == 0 and found != null then
call UnitAddAbility(found, abilId)
endif
endloop
endfunction
private function Init takes nothing returns nothing
local trigger t = CreateTrigger()
call TriggerRegisterTimerEventPeriodic(t, 1.00)
call TriggerAddAction(t, function periodic)
// Здесь нужно дописать триггор, который присвоит SetUnitUserData
set t = null
endfunction
endlibrary
Тупое решение в лоб - делаешь абилку с отрицательным регеном. Каждую секунду перебираешь всех живых даммиков. Если ни у одного из них нет абилки на Реген, то выдаёшь одному из даммиков эту абилку.
Если нужно от последнего созданного, то так же в лоб создаешь переменную DummyEatCounter. При каждом появлении нового дам Мика увеличиваешь её на единицу и пишешь в CustomValue юнита. Потом при выборе нужного даммика просто выбираешь того, у кого наибольший CustomValue.
» WarCraft 3 / Триггерная проверка
» WarCraft 3 / Hashtable - работаем с хеш-таблицей
» WarCraft 3 / Сетка строительства (тайлы) как в Editor
» WarCraft 3 / Hashtable - работаем с хеш-таблицей
» WarCraft 3 / Hashtable - работаем с хеш-таблицей
» WarCraft 3 / Hashtable - работаем с хеш-таблицей
» WarCraft 3 / Hashtable - работаем с хеш-таблицей
» WarCraft 3 / Hashtable - работаем с хеш-таблицей
» WarCraft 3 / Hashtable - работаем с хеш-таблицей
» WarCraft 3 / Hashtable - работаем с хеш-таблицей
» WarCraft 3 / Как изменить инконку у способности во время игры?
» WarCraft 3 / Как изменить инконку у способности во время игры?
» WarCraft 3 / [Lua] Инжект функций
» WarCraft 3 / Как изменить инконку у способности во время игры?
» WarCraft 3 / Как быстро прописать всем моделям путь?
» WarCraft 3 / Как быстро прописать всем моделям путь?
» WarCraft 3 / Как быстро прописать всем моделям путь?
» WarCraft 3 / Сборка предметов
» WarCraft 3 / Захват генератора с помощью точки/области
» WarCraft 3 / Сборка предметов
» WarCraft 3 / Редактор: Очередь юнитов на смерть
Ред. nazarpunk
» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4
» WarCraft 3 / Заклинание дух воды
» Блог им. rsfghd / Случайная точка в треугольнике
Ред. nazarpunk
» WarCraft 3 / Редактор: Очередь юнитов на смерть