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.
Мнением большинства для работы был выбран JNGP: Rebuild от PT153. Главное не забудьте после установки удалить папку AdicHelper в корне редактора.
GUI
Братьев наших меньших мы тоже не забыли и добавили поддержку GUI для UjAPI. А так же все нативки из common.j, что позволит их использовать в проектах, не расчитанных на UjAPI.
Для установки просто поместите umswe.mpq с заменой в
Jass New Gen Pack\umswe\umswe.mpq
JetBrains
Если у вас есть одна из ниже перечисленных IDE, то можете установить JASS. В недавнем обновлении был добавлен автокомплит, кстати.
Нижеперечисленные IDE
IntelliJ IDEA (Ultimate, Community)
Android Studio
AppCode
Aqua
CLion
Code With Me Guest
DataGrip
DataSpell
GoLand
JetBrains Client
JetBrains Gateway
MPS
PhpStorm
PyCharm (Professional, Community)
Rider
RubyMine
RustRover
WebStorm
Writerside
VSCode
Все плагины к ней являются форком jass. Можете просто руками заменить common.j и пользоваться новыми нативками.
ujass форк jass, в котором добавлена подстветка нативок и BJ.
ScorpioT1000, там оказалось всё проще. Если пердать itemExtent, то будет использован упрощённый механизм рендера, где элементы одного размера по главной оси. Только вот сортировка построена на том, что исходному элементу задаётся нолевой размер, а его копия помещается поверх всех слоёв. Только вот, при itemExtent любое указание размера элемента будет проигрнорировано. Отсюда и дырка справа.
Dark_Son, если им можно задать цвет, то сделай прозрачный. Если нет, то сделай периодический таймер на десять минут и чтоб он не впустую молотил выдавай по истечении немного голды.
» 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 / Редактор: Очередь юнитов на смерть
» Unryze Jass API / [UjAPI] Конкурс Наработок 2024
» Unryze Jass API / [UjAPI] Конкурс Наработок 2024
» WarCraft 3 / 2-3. Локальные переменные
» WarCraft 3 / 2-3. Локальные переменные
Ред. nazarpunk
» Unryze Jass API / [UjAPI] Конкурс Наработок 2024
Документация
Редактор
GUI
JetBrains
VSCode
» Программирование / Flutter - странное поведение ReorderableList при itemExtent != n
Ред. nazarpunk
» Программирование / Flutter - странное поведение ReorderableList при itemExtent != n
» Программирование / Flutter - странное поведение ReorderableList при itemExtent != n
» WarCraft 3 / JNGP: Rebuild от PT153
» WarCraft 3 / Карта не позволяет расширить свой размер
» WarCraft 3 / Как выразить число в процентах?
» WarCraft 3 / как создать окошко?
» WarCraft 3 / как создать окошко?
» WarRaft / IntelliJASS