28

» WarCraft 3 / Приватность предмета

Принятый ответ
SetItemPlayer подойдёт. Сохраняем игроку, при подборе предмета сравнивает хозяина предмета и юнита. Если не совпадают, то выкидываем предмет.
В лучшем случае запрет буде нативным, но я в этом сильно сомневаюсь.
А UserData лучше для других вещей оставить.
28

» WarCraft 3 / Юнит цель стандартной телепортации

Вот этого юнита то и надо отследить.
Понял, но пробовал GetSpellAbilityTarget()? Вполне возможно, что выбранный юнит всё же записывается, не смотря на то, что каст в точку. Главное смотреть в триггере с событиями на начало или эффект способности. В событиях на конец каста юнит не записывается.
28

» WarCraft 3 / Смерть в лаве

Надо будет проверить.
Если уж и проверять, то только то, что полностью разложившиеся юниты удаляются, но я так не думаю.
28

» WarCraft 3 / Юнит цель стандартной телепортации

Принятый ответ
Я так понимаю телепорт на цель, тогда всё просто GetSpellAbilityTarget().
28

» WarCraft 3 / Предмет: Божественный Щит

Либо ковырять скрипт руками
Я же сказал тебе (страница 1), как использовать эту функцию, не смотря на то, что она в common.ai. Ничего качать не надо.
Даже JNGP необязателен, достаточно иметь JassHelper и уметь им пользоваться.
Загруженные файлы
28

» WarCraft 3 / Выпадение предметов после смерти

Принятый ответ
Нужно чтобы они НЕ выпадали.
А, в таком случае только триггерно.
28

» WarCraft 3 / Предмет: Божественный Щит

Лично я предлагаю сделать так: делаем предмет со способностью на основе спеллшилда. Если урон не смертельный, то удаляем предмет и даём новый (чтобы кд обнулить). Если урон смертельный и кд нет, то даём руну. Наличие кд можно проверять с помощью таймера+хеш, при каждом срабатывании стартуем таймер (главное, на паузу его не ставить).
28

» WarCraft 3 / Предмет: Божественный Щит

Ты ничего не путаешь? Или ты специально вводишь всех в заблуждение?
Открываем common.ai и смотрим. Чтобы использовать в обычных картах, её нужно определить после блока глобалок. Если есть vJass, то в любом удобном месте.
Речь о том что юнит мёртв, а игра сообщает обратное. И это так.
В момент перед получением урона (то есть пока триггер на получение урона работает) он ещё считается живым.

И я так и не понял самые первые придирки к реализации, они же ни о чём. Был бы полный комментарий, как сделать лучше, то и разговор был бы другой.
28

» WarCraft 3 / Предмет: Божественный Щит

При этом есть такой факт, что ХП юнита может быть БОЛЬШЕ 1 ед., в тот момент времени когда юнит по факту является МЁРТВЫМ
Это не так, юнит умирает только если хп меньше 0.405, доказанный тестами факт. Такие приколы возникают только в момент получения урона, ведь урон ещё не был нанесён, потому и хп больше 1.
функция IsUnitAliveBJ возвращает ответ функции IsUnitDeadBJ с приставкой not
функция IsUnitDeadBJ возвращает - ( ХП юнита <= 0 )
используя GetUnitState(whichUnit, UNIT_STATE_LIFE)
ты же говорить - про эффективность числа 0.405 в том же сравнении
И к чему это? Тут кто-то говорил про использование этих функций? Зачем их вообще их использовать, если есть IsUnitType, GetWidgetLife и UnitAlive, которые ТОЧНО лучше этих BJ?

Так что их можно суммировать и написать мегафункцию
Тоже самое делает UnitAlive.

Вот нормальные функции на все случаи жизни.
раскрыть
UnitDead и UnitIsAlive определённо сомнительные функции.
native UnitAlive takes unit id returns boolean

function UnitDead takes unit u returns boolean
    return not UnitAlive(u)  // returns true, if unit does not exist.
endfunction

function UnitExists takes unit u returns boolean
    return GetUnitTypeId(u) != 0
endfunction

function UnitDoesNotExist takes unit u returns boolean
    return GetUnitTypeId(u) == 0
endfunction

function UnitIsAlive takes unit u returns boolean
    return not IsUnitType(u, UNIT_TYPE_DEAD)
endfunction

function UnitIsDead takes unit u returns boolean
    return IsUnitType(u, UNIT_TYPE_DEAD)  // returns false, if unit does not exist.
endfunction
28

» WarCraft 3 / Выпадение предметов после смерти

Редактор - После смерти предметы могут быть брошены
А заголовок ни о чём не говорит? Это настройка ТОЛЬКО для редактора.

Чтобы после смерти выпадали предметы, нужно изменить настройки в самой способности инвентаря.
теряет итемы
Вот только это не так, предметы остаются в инвентаре уже мёртвого юнита, и после его полного разложения (по стандарту через 88 секунд после смерти) предметы выпадают и остаются на месте смерти.
28

» WarCraft 3 / Предмет: Божественный Щит

то что есть проверка статус смерти юнита
Да какая разница, IsUnitType и GetWidgetLife в данной ситуации одинаковы, первая функция берёт 2 аргумента, а вторая требует сравнения с 0 или с .405, UnitAlive всё равно лучше обеих.
28

» WarCraft 3 / Приказ

очередь приказов обрабатывает?
Запоминает только последний отданный.
Но вообще эта система не нужна, есть морфы, там всё нативно сохраняется.
28

» WarCraft 3 / Приказ

Недавно писал одному товарищу систему сохранения приказов на ГУИ (почти), чтобы юнит продолжал выполнять предыдущий приказ после замены.
Нужен JNGP, ибо необходим JassHelper.
Загруженные файлы
28

» WarCraft 3 / Предмет: Божественный Щит

виджет лайф > .405 ............ серьёзно?
Ну а то тут не так, хотя UnitAlive гораздо лучше.
28

» WarCraft 3 / Спел похищение жизни!

Молнию можно создавать в абсолютных координатах и двигать по ним безо всяких даммиков.
Но для этого нужна бд для точки, откуда снаряд юнита вылетает.
28

» WarCraft 3 / Смерть в лаве

чтоб использовать Воскрешение
Насколько мне известно, воскрешение создаёт нового юнита, но вот это я не проверял, так как практически не работаю со стандартными способностями.

А так добротно сделано, особенно передвижение точки, я сначала подумал, что для передвижения точки тоже используется точка, но там X of Unit, а не X of Point.
Единственный минус, передвижения точки нет в стандартном WE.
28

» WarCraft 3 / Смерть в лаве

С чего бы это?
Вот поэтому, данный триггер указан в посте.

А в твоём примере сначала выполнится триггер, а уже только потом юнит умрёт, но так как из группы юнит не удалён, эффект будет проигрываться.

Карта из предыдущего комментария, но с триггером, что на скриншоте.
Загруженные файлы
28

» WarCraft 3 / Смерть в лаве

На юнитах тоже.
Как, если они удаляются они группы при смерти?
28

» WarCraft 3 / Смерть в лаве

Неправда, я когда тестил, то эффекты спамились на мёртвых юнитов.
На мёртвых героях, ведь они не удаляются.
28

» WarCraft 3 / Смерть в лаве

Имеете ввиду так?
Так, или после Or, суть особо не поменяется.
Проверка на мёртвость вообще немного бесполезна, ведь в группе не могут быть мёртвые юниты, они сразу из неё удаляются.
28

» WarCraft 3 / Смерть в лаве

Не совсем понятно, зачем в То условие, когда можно это условие запихнуть после Or. Да и само условие стоит заменить на встроенную проверку.
28

» WarCraft 3 / Проверка убийства героев

Я так понял, что если дерева меньше 100 и убийств 0, то предмет удаляем. Тогда условие верно.
Но вот в триггере с прибавлением убийств героев ты накосячил.
Надо такое действие.
set УбитоГероев[Player Number of Owner of Killing Unit] = УбитоГероев[Player Number of Owner of Killing Unit] + 1
Ну и проверку на мёртвость юнита надо убрать, ведь понятно, что если юнит умирает, то он мёртв.