Система угона техники
Всем привет!
Наверное, многие хотели чтобы в варике можно было ездить на технике. Вот и я этого не знаю как сделать.
Допустим юнит спеллит дирижаблю нейтрально-пассивных огненную стрелу, не другое заклинание, а именно огненную стрелу, и, при этом, дирижабль переходит на сторону игрока спеллителя. И будет работать если хоть любой юнит войдет в дирижабль. А когда в дирижабле никого не останется, то он снова станет нейтрально-пассивным.
P.S. Знаю что в дирижабле обитает безумный гоблин-хозяин. Я так написал чтобы было легче понять.

Без ответа.


Просмотров: 179

PT153 #1 - 2 месяца назад (отредактировано ) 0
Событие - юнит начинает эффект способности.
Условие - id способности равен Х
Действия
Изменить владельца цели на владельца кастера.
Загрузить кастера на борт цели.
8gabriel8 #2 - 2 месяца назад 1
Сейчас попробовал такую систему сделать, но там не всё так просто, вот заготовка:
Во-первых, если быстро выгружать войска, то последний рискует остаться в транспорте, который станет нейтрально-пассивным, в причине этого не разобрался. Во-вторых, приказ Выгрузить всех тоже не обработан, там надо по таймеру засекать, скольких юнитов выгрузил транспорт, если же он получил в это время другой приказ, то прерывать таймер, здесь легче на jass просто, чем GUI)
прикреплены файлы
PT153 #3 - 2 месяца назад (отредактировано ) 1
но там не всё так просто
Конечно, я привёл только 1 триггер. Ещё надо поставить проверку, что в технике никого уже нет, при покидании техники её нужно передавать нейтрально пассивному и так далее.
reaper1691 #4 - 2 месяца назад 0
PT153:
но там не всё так просто
Конечно, я привёл только 1 триггер. Ещё надо поставить проверку, что в технике никого уже нет, при покидании техники её нужно передавать нейтрально пассивному и так далее.
И вправду трудно работать с несколькими юнитами. А если твоим примером использовать на одного юнита, то одним или даже тремя триггерами закроет проблему? Просто мне необязательно больше 1 юнита загружать на борт, особенно если надо ввести проверку наличия последнего юнита в технике. Или количество не имеет значения?
Мне бы главное на GUI
8gabriel8:
Сейчас попробовал такую систему сделать, но там не всё так просто, вот заготовка:
Во-первых, если быстро выгружать войска, то последний рискует остаться в транспорте, который станет нейтрально-пассивным, в причине этого не разобрался. Во-вторых, приказ Выгрузить всех тоже не обработан, там надо по таймеру засекать, скольких юнитов выгрузил транспорт, если же он получил в это время другой приказ, то прерывать таймер, здесь легче на jass просто, чем GUI)
Кстати, как я помню способность ''Выгрузить всеэ'' у дирижабля по очереди.
А вот если изменить способность на ''Выгрузить всех'' как у транспортного судна (который моментально сбрасывает всех пассажиров), то можно исправить и оставить последнего юнита у себя?
8gabriel8 #5 - 2 месяца назад 0
Поправил баг в триггере, из-за которого иногда последний юнит мог остаться в дирижабле, если быстро выгружать. Там задержка 0.1 сек перед сменой владельца, просто чуть переставил её, всё стало хорошо.
Заодно подумал над Выгрузить всех и ещё одной проблемкой в такой реализации. Дело в том, что юнит не сразу забирается на борт нейтрально-пассивного судна, а сначала словно забивает его под себя, переводя под свой контроль, но оно без водителя на паузе, потом с более близкого расстояния забирается и делает транспорт управляемым. Мне это показалось хорошей идеей, если прямо рядом с дирижаблем, будет держаться, например, твой вертолёт, оберегая дирижабль от кражи, но потом прикинул, что так можно будет всю карту на вертолёте облететь, переведя под свой контроль все дирижабли, чтобы они не достались врагу, так как захватывать можно лишь нейтрально-пассивные дирижабли. Либо надо удалить эту первоначальную передачу игроку, либо сделать периодическую проверку на предмет находящихся рядом людей, чтобы избежать такой ситуации. А выгрузка всех мгновенно, конечно же, может помочь, вот только момент выгрузки как-то отловить надо, ведь приказ будешь издалека отдавать, с момента отдачи приказа до реальной выгрузки может много времени пройти. Только custom value транспорта после реальной выгрузки обнуляй, переводи под управление нейтрально-пассивного и ставь на паузу., а то получишь управляемый без водителя транспорт.
прикреплены файлы
8gabriel8 #6 - 2 месяца назад 0
Сейчас кое-что узнал в системе xgm.guru/p/wc3/transporting, а именно, что юнит при выходе из транспорта получает приказ stop. То есть не нужно с таймерами возиться, просто для каждого транспорта создаём группу, либо custom value для погруженных, которые при получении приказа stop будут вычитаться из custom value транспорта. Но только возиться с этим не хочу, тем более автору вроде как наплевать.