Не совсем понял: если у меня таких групп будет неизвестно сколько много по всей карте одновременно, то надо в хеш? Иначе дичь. Но логика ясна biridius:
мб тебе нужно найти ближайшего юнита к кастеру или тип того?
Именно так!
То есть, типо надо скорее наименьший вектор найти из всех, что ведут к кастеру от каждого в группе.
Спасибо! А куда я могу сохранить данные из функции для каждого из юнитов, чтоб потом выбрать к примеру юнита с самым большим ХП? Если я к примеру сохраню в хэш каждого или ещё куда-то. Как мне потом получить эту базу данных?
действия — скрыть кастера, создать таймер, сохранить на этот таймер кастера и целевые координаты применённой способности, затем запустить его с задержкой 1.5 секунды на функцию, в которой из таймера будут выгружены координаты с юнитом, юнит будет в них перемещён (кстати, перемещать ничто не мешает сразу, разницы в игре не будет, а данных меньше таскать/хранить) и раскрыть кастера.
Да, так меньше данных сохранять придётся, спасибо за совет) так и сделаю щас
integer i = 0
loop
CreateTrigger()
exitwhen (i > 8000)
endloop
Ок, тогда я начинаю с нуля писать карту...чтоб эта моя абилка в одном триггере уместилась Clamp:
Настоятельно советовал бы так и сделать при первой же возможности. LUA, в отличии от JASS2, используется далеко не только в проприетарном редакторе одной-единственной игры.
Слышал об этом) а в новом редакторе точно будет LUA? Или никто не знает/слухи?
Или луа только в jass new gen pack есть:D Clamp:
Можешь посмотреть вот эту карту, чтобы понять, вещи какого уровня возможно нормально реализовывать в редакторе.
По скринам видно, что какая-то дичь(в хорошем смысле) сделана)) Хотя, думаю, даже скачать можно, только не понял, как. Жаль, что интерфейс пока нельзя менять:D
Если есть анимация у скилла, то можно пикать всех юнитов в атакованной зоне не сразу, как юнит нажал, а через время анимации, к примеру. И обмен от этого будет работать так же: типо я жму обмен и дальше включается триггер: если я пикнут такой-то абилкой,(всем пикнутым задаётся какое-то значение прямо перед нанесением урона), то работает обмен и я типо исчезаю и доджу абилку.
Пока это неактуально, как я понимаю, а когда станет актуально — ты и сам поймёшь, что не всё так просто =)
К тому времени уже рефорджеж выйдет(которого, как я понял, весь сайт ждёт только для нового редактора)). Там видно будет, может, на луа перейду, может, инструкция будет встроенная, ходили слухи.
Если на триггерах можно сделать, то разве это не значит, что на джассе тоже можно? Или типо так как муи, то сложнее в разы?
Я думаю, может просто много оперативки жрать карта, где на каждую абилку куча проверок кучи юнитов. Но я не имею представления, как сильно это влияет, сколько обычно операций в секунду на карте и каких именно, сколько это памяти.
Я, по-моему, уже щас могу реализовать уклон он абилки на конструкторе триггеров без джасса, на глобальных переменных. Без глобальных сложнее, конечно))) Но по-моему, только тем, что можно запутаться, ибо слишком много проверок, но логика-то та же, а это главное) Clamp:
DopaMine, просто попробуй их сделать тупо по тексту, там на самом деле строк 20-30 от силы получится.
Вообще чуть не забыл сказать, что идея конкретной механики этой абилки просто отличная.
Я просто в детстве наруто смотрел. Верил, что в жизни тоже есть такие ниндзя и умеют такие техники, поэтому я просто спёр оттуда.)
И странно, почему в картах наруто я такой механики не видел. Обычно просто невидимые становятся применяющие.
Спасибо! У меня ещё куча нестандартных(для карт варкрафт) механик на основе наруто в голове:D Clamp:
DopaMine, просто попробуй их сделать тупо по тексту, там на самом деле строк 20-30 от силы получится.
Главный вопрос, кстати тогда: это всё можно засунуть в один триггер? Удобнее, когда на одну абилку 1 триггер. В конструкторе триггеров не получилось. А на джассе? Если к тому же можно несколько событий в один триггер пихать.
Кстати, нужно чтобы этот таймер был только один на юнита или иметь дополнительную логику проверки таймингов, чтобы не получилось подобной ситуации:
Так у меня планируется один таймер. Так разве не проще? Чтоб именно разрешалось уже телепортироваться, если бьют, а не получать тру на условие, из-за которого типо можно нажать, нельзя нажать, пол секунды прошло- бить начали и сразу перестали. Значит, что через 0.1 секунды уже нельзя применить обмен, как я понял. В общем, сложно вы описали. Два таймера...(
Ничего, я планирую вообще без автоатак сделать. А чтоб это была кнопка "нанести удар" и имела перезарядку, у всех разную. Условный сасуке имеет перезарядку удара - 0.3 сек, а наруто - 1 секунду. МИКРОКОНТРОЛЬ рулит)
Ещё думать буду. Всё решаемо, я думаю)
Прямо с ходу в голову не пришло изящных решений насчёт триггера уклонения от абилок. Тебе придётся каждый раз чекать зону нанесения урона несколько раньше, чем фактически наносить в ней урон, чтобы для всех противников в ней переключить разрешающие применение флаги и дать игрокам время на отреагировать.
Если есть анимация у скилла, то можно пикать всех юнитов в атакованной зоне не сразу, как юнит нажал, а через время анимации, к примеру. И обмен от этого будет работать так же: типо я жму обмен и дальше включается триггер: если я пикнут такой-то абилкой,(всем пикнутым задаётся какое-то значение прямо перед нанесением урона), то работает обмен и я типо исчезаю и доджу абилку.
действия — сохранить на юнита-цель флаг "сейчас можно применить Каварими но Дзюцу" (как я понимаю, это ты и делаешь в коде в посте), затем создать таймер и запустить его на функцию, в которой этот флаг поменяется на обратное значение/удалится (больше ничего).
Так таймер должен запуститься, именно когда я нажал кнопку, а не когда я её могу нажать.
событие — юнит атакован (то есть был отдан приказ атаки с этим юнитом в качестве цели и он находится в пределах дальности атаки атакующего)
Если юнит начал быть атакованным, то через 10 секунд после того, как его начали атаковать, всё ещё будет проверяться условие, что у атакованного есть абилка обмена?
(то есть был отдан приказ атаки с этим юнитом в качестве цели и он находится в пределах дальности атаки атакующего)
И да, здесь что, надо расписывать, что именно значит "юнит атакован"? Я вообще буду потом сложнее делать, чтоб автоатаки не было, а был скилл у всех с кулдауном, который наносит урон ближайшему юниту в области перед применившим(это видимо через угол поворота юнита и косинус для Y и синус для X этого угла надо будет использовать). Но пока сделал просто при срабатывании от автоатаки, а не от урона и не от абилок. Так как абилки я хочу делать направленными не на юнита, а на область или ненаправленные.
Не совсем правильно я описал. Юнит может применить способность в любой момент. Но если он применил и после этого в течение секунды атакован, то сработает обмен. А если он применил и не атакован, то идёт кулдаун и чакра потрачена впустую)
Условие тоже является функцией (на 3 скрине самая верхняя)
Если функция-условие вернет true - значит триггер начнет вызывать функции-действия
Если вернет false - значит не будет вызывать
Я правильно понимаю, что это TRUE из любой функции, которая возвращает тип булин, является глобальной для всего триггера. И если этот глобальный булин равен фолс, то вообще ни одна функция не сработает. То есть триггер сначала смотрит на условие и затем на протяжении всего триггера - на булевское значение всего триггера? Hodor:
Ща примеры подгоню
Буду ждать. Но я вот, что хотел всегда понять ещё: несколько событий могут быть написаны на одного юнита? То есть, чтоб что-то сработало, когда юнит и атакованный, к примеру, и входящий в зону.
Иными словами, опиши что должно происходить при применении юнитом абилки с целью-точкой? В чём механика способности заключается-то?
Пока я до этого не дошёл. Я сначала на триггерах сделал - всё идеально работало. Потом понял, что работает только для одного кастера. И пока эффекты после применения способности и получения удара у меня на jasse не прописаны. Но там будет несколько таймеров, так как бревно появляется не сразу, спецефекты удаляются, но не сразу. Так что надеюсь, щас разберусь и без ошибок буду делать дальше с таймерами
В верхнем методе у тебя caster всегда null будет, если он вызывается только таймером, потому что GetSpellAbilityUnit() возвращает реакцию на событие, а оно к моменту вызова уже целую секунду как прошло.
Не очень понял. Но то, что в действиях по истечении таймера нельзя писать ..GetUnit.. - понял. Clamp:
» WarCraft 3 / Получение координат каждого юнита в группе
biridius:
» WarCraft 3 / Получение координат каждого юнита в группе
biridius:
То есть, типо надо скорее наименьший вектор найти из всех, что ведут к кастеру от каждого в группе.
» WarCraft 3 / Получение координат каждого юнита в группе
» WarCraft 3 / Получение координат каждого юнита в группе
» WarCraft 3 / Получение координат каждого юнита в группе
» WarCraft 3 / Получение координат каждого юнита в группе
» WarCraft 3 / Где взять норм варкрафт
» WarCraft 3 / Где взять норм варкрафт
» WarCraft 3 / Что за ошибка?
PT153: Лол, убрал, сохранилось. А разве я не устраняю утечки таким образом?((
» WarCraft 3 / Что за ошибка?
» WarCraft 3 / CreateTimer
» WarCraft 3 / CreateTimer
» WarCraft 3 / CreateTimer
Clamp:
Или луа только в jass new gen pack есть:D
Clamp: Пасиб))
» WarCraft 3 / CreateTimer
» WarCraft 3 / CreateTimer
Если на триггерах можно сделать, то разве это не значит, что на джассе тоже можно? Или типо так как муи, то сложнее в разы?
Я думаю, может просто много оперативки жрать карта, где на каждую абилку куча проверок кучи юнитов. Но я не имею представления, как сильно это влияет, сколько обычно операций в секунду на карте и каких именно, сколько это памяти.
Я, по-моему, уже щас могу реализовать уклон он абилки на конструкторе триггеров без джасса, на глобальных переменных. Без глобальных сложнее, конечно))) Но по-моему, только тем, что можно запутаться, ибо слишком много проверок, но логика-то та же, а это главное)
Clamp:
Clamp: Я просто в детстве наруто смотрел. Верил, что в жизни тоже есть такие ниндзя и умеют такие техники, поэтому я просто спёр оттуда.)
И странно, почему в картах наруто я такой механики не видел. Обычно просто невидимые становятся применяющие.
Спасибо! У меня ещё куча нестандартных(для карт варкрафт) механик на основе наруто в голове:D
Clamp: Главный вопрос, кстати тогда: это всё можно засунуть в один триггер? Удобнее, когда на одну абилку 1 триггер. В конструкторе триггеров не получилось. А на джассе? Если к тому же можно несколько событий в один триггер пихать.
» WarCraft 3 / CreateTimer
» WarCraft 3 / CreateTimer
Ещё думать буду. Всё решаемо, я думаю)
» WarCraft 3 / CreateTimer
» WarCraft 3 / CreateTimer
» WarCraft 3 / CreateTimer
» WarCraft 3 / CreateTimer
» WarCraft 3 / CreateTimer
» WarCraft 3 / CreateTimer
Hodor:
» WarCraft 3 / CreateTimer
» WarCraft 3 / CreateTimer
Clamp: ДА)