Ну есть проверка на SlotState - т.е состояние слота игрока.
В цикле от 1 до 12 (макс) перебираешь всех игроков по принципу - Slot state = Играет и PlayerController == человек (как то так это в гуях выглядит)
От и все, заносишь игроков по 1 в таблицу.
При ливе игрока, изменяешь всю таблицу, уменьшаешь кол-во строк и пересчитываешь позиции всех игроков в таблице.
Ну а кто вам мешает, могу подкинуть карт.
Договариваемся с автором и получаем исходник или делаем как авторы Лод доты - тупо ломаем карту не спрашивая автора и пилим все как хотим (нужен скилл катеростроения выше среднего)
FrigatPlay, нет ну серьезно, как еще тут можно определить?
Ладно когда есть форум и под моделью срачь из коментов что не то пальто, автор пей яд и так далее...
Ну а если нет, то гадать...
pro100master, ГУИ это именно графический интерфейс, то что он преобразуется в Jass и есть самое корявое, поэтому нужно писать карту на jass без использования гуи. Ибо бж функции которые испольюзуются для гуи - багнуты, утечны, имеют в себя кучу мусора.
Clamp, до 1.27а работали случайно наборы координат с неверными значениями (меньше нуля и\или больше 4), это баг, только в след патчах близзарды сделали проверку на некорректные корды и так же проверку на 0-11, чтобы иконки таки скрывались.
У драколича эти координаты не раз фаталили.
Самый безопасный способ задание чисел типа -100500 редактируюя слк таблицы (редактор не дает такие числа вводить).
На сегодняшний момент работают без багов координаты -2147483648, -2147483648, но их нельзя задать через редактор.
Сделать кастомный фильтр, туман, светлячков. И наложить погодный эффект с лунными лучами.
А если руки из нужного места, сделать свою кастом модель погодного эффекта где тучи бы ползли по небу и затеняли землю, оставляя просветы.
Кстати на сайте вроде были кастом модели дня\ночи.
Ну в радиусе нужны координаты, центра окружности и её радиус...
Вам я так понял координаты не даются... KaneThaumaturge, не надо, это помедленнее в разы + пикать всех, включая дохлых плохая затея - могут быть баги.
Для этого делаются фильтры на все случаи жизни, штук 10, и используются во всех триггерах.
ага, а тебе кого нужно? В функции есть строчка - GetUnitTypeId(GetFilterUnit()) == 'hsor'
Ну то что после == это есть ро код юнита, смотри в редакторе объектов нажав Ctr + D
Достаточно посмотреть как устроены эти бж функции и все будет понятно.
function OnlyAliveSourcess takes nothing returns boolean // эту функция в кастом код карты, в самом вверху.
return GetUnitTypeId( GetFilterUnit( ) ) == 'hsor' and not ( GetWidgetLife( GetFilterUnit( ) ) < 0.405 or IsUnitType( GetFilterUnit( ), UNIT_TYPE_DEAD ) )
endfunction
//...
call GroupClear( udg_Group ) // это в кастом скрипт твоего триггера
call GroupEnumUnitsInRect( udg_Group, bj_mapInitialPlayableArea, Condition( function OnlyAliveSourcess )) // это в кастом скрипт твоего триггера
Вот без утечек и локейшинов и прочих ненужных действий.
Далее уже делай что хочешь с юнитами в группе
PT153, смотря для чего триггер, если будите юзать мемхак, то начнете делать кастом баффы для юнитов (бафф на самом деле это не иконка в статусе, её может и не быть, это всего лишь опция, а внутри игровой триггер который как правило ждет смерти, происшествие времени, каст диспела, если это предусмотрено) К примеру самопальный стан, а если его не снять до смрети юнита - будет бага, поэтому нужно событие EventWidgetDeath.
Триггеры часто незаменимы, но чрезмерная любовь к ним (яркий пример IceFrog) приведет к багам и проблемам, так что нужно стараться не плодить их бездумно, а так же не удалять если в этом нет необходимости (да и вовсе удалять триггер в его не оч. идея, ибо фрогу векс запилил систему утилизации триггеров не просто так, учитывая что дота жила годами с куда вроде бы более значимыми багами, вероятно задолбили репотами)..
ApoloZ2, да что ты говоришь, один только алгоритм говорит о том что ты ничего не учил и ничего не писал.
Периодически проверять (100 раз в сек) кол-во юниттов и плодить группы на гуях, ваще кулл.
Если хочешь сделать "Еще одну карту" в которую не будешь запускать даже сам, валяй... Наше дело предупредить.
У тебя 5 юнитов, представь что это 5 яблок на столе (как в школе учили), у тебя срабатывает код когда пропадает одно из яблок, как ты определишь что не осталось ни 1, обычным счетчиком... Целочисленная переменная, изначально равна 0, при каждом срабатывании триггера добавляй +1, если число выше или равно 5 или сколько там у тебя, делай что хочешь.
Твой код с группами кстати ищет в том числе и мертвых юнитов:
function LivingPlayerUnitsOfTypeIdFilter takes nothing returns boolean
local unit filterUnit = GetFilterUnit()
return IsUnitAliveBJ(filterUnit) and GetUnitTypeId(filterUnit) == bj_livingPlayerUnitsTypeId
endfunction
И еще одно но, не используйте эти готовые бж фильтры, они кривые и могут пикать мертвых юнитов, что уже было не раз...
» WarCraft 3 / Конкурс карт от 2kxaos продлён до 24-го августа
» WarCraft 3 / Общие войска
Используйте таймеры.
» WarCraft 3 / Защита карты
» WarCraft 3 / Как убрать созданный модификатор видимости?
» WarCraft 3 / Меню паузы
В цикле от 1 до 12 (макс) перебираешь всех игроков по принципу - Slot state = Играет и PlayerController == человек (как то так это в гуях выглядит)
От и все, заносишь игроков по 1 в таблицу.
При ливе игрока, изменяешь всю таблицу, уменьшаешь кол-во строк и пересчитываешь позиции всех игроков в таблице.
» WarCraft 3 / Насчет заброшенных карт/проектов
Договариваемся с автором и получаем исходник или делаем как авторы Лод доты - тупо ломаем карту не спрашивая автора и пилим все как хотим (нужен скилл катеростроения выше среднего)
» WarCraft 3 / Лив игрока при игре в мултиплеере
Карту в студию. Эти 2 триггера ни при чем.
» WarCraft 3 / Что делать с этим багом?
» WarCraft 3 / Стабилизация
Ладно когда есть форум и под моделью срачь из коментов что не то пальто, автор пей яд и так далее...
Ну а если нет, то гадать...
» WarCraft 3 / Утечки
» WarCraft 3 / Стабилизация
Не ну думаю ты пока она не фатальнет не узнаешь что она битая...
» WarCraft 3 / Кординаты иконки
У драколича эти координаты не раз фаталили.
Самый безопасный способ задание чисел типа -100500 редактируюя слк таблицы (редактор не дает такие числа вводить).
На сегодняшний момент работают без багов координаты -2147483648, -2147483648, но их нельзя задать через редактор.
» WarCraft 3 / Кординаты иконки
Прочие способы недоступны из редактора обьектов.
» WarCraft 3 / Утечки
Я вот честно хз, статей вроде много но никто не читает и некому не даются..
» WarCraft 3 / Утечки
Вот ссылка
» WarCraft 3 / Качественная ночь
» WarCraft 3 / Качественная ночь
А если руки из нужного места, сделать свою кастом модель погодного эффекта где тучи бы ползли по небу и затеняли землю, оставляя просветы.
Кстати на сайте вроде были кастом модели дня\ночи.
» WarCraft 3 / Выбор конкретной анимации
Ред. quq_CCCP
» WarCraft 3 / Утечки группы.
» WarCraft 3 / Утечки группы.
Вам я так понял координаты не даются...
KaneThaumaturge, не надо, это помедленнее в разы + пикать всех, включая дохлых плохая затея - могут быть баги.
Для этого делаются фильтры на все случаи жизни, штук 10, и используются во всех триггерах.
» WarCraft 3 / Утечки группы.
Ну то что после == это есть ро код юнита, смотри в редакторе объектов нажав Ctr + D
» WarCraft 3 / Выбор конкретной анимации
Ред. quq_CCCP
» WarCraft 3 / Утечки группы.
Далее уже делай что хочешь с юнитами в группе
» WarCraft 3 / Удаление события, созданного с помощью "Add New Event"
Триггеры часто незаменимы, но чрезмерная любовь к ним (яркий пример IceFrog) приведет к багам и проблемам, так что нужно стараться не плодить их бездумно, а так же не удалять если в этом нет необходимости (да и вовсе удалять триггер в его не оч. идея, ибо фрогу векс запилил систему утилизации триггеров не просто так, учитывая что дота жила годами с куда вроде бы более значимыми багами, вероятно задолбили репотами)..
» WarCraft 3 / Проблема с Every 0.01 seconds of game time
Периодически проверять (100 раз в сек) кол-во юниттов и плодить группы на гуях, ваще кулл.
Если хочешь сделать "Еще одну карту" в которую не будешь запускать даже сам, валяй... Наше дело предупредить.
У тебя 5 юнитов, представь что это 5 яблок на столе (как в школе учили), у тебя срабатывает код когда пропадает одно из яблок, как ты определишь что не осталось ни 1, обычным счетчиком... Целочисленная переменная, изначально равна 0, при каждом срабатывании триггера добавляй +1, если число выше или равно 5 или сколько там у тебя, делай что хочешь.
Твой код с группами кстати ищет в том числе и мертвых юнитов: