Есть у меня карета, на которую я сажаю персонажей через создание спецэффектов. И всё бы ничего, но вот в некоторых случаях, они не хотят потом удаляться на Гуи. Для такой просто вещи, нужно вникать в такой сложный Jass=) После прочтения статей понял следующее, можно разобраться с проблемой сочетанием Jass и Гуи.
То есть, сначала я объявляю локальную переменную типа спецэффект. Затем я создаю перса на крыше кареты, это можно оставить на Гуи. Затем мне надо занести в локальную переменную этот спецэффект. Первый вопрос - какой командой это сделать? Ясно, что где-то должен быть список этих команд, но я не знаю где=) Просто черкните мне, как на jass занести последний созданный спецэффект, а я скопирую. Фактически, после этого дело будет в шляпе, и тут второй вопрос, мне нужно будет так же через кастом скрипт, написать команду удаления спецээфекта. С этим аналогично как и с первым вопросом, вы пишите - я копирую себе в триггер=) Думаю, что на такой простой вопрос, мне ответит любой среднестатический джассер. После прочтения статьи я понял только как создавать локальные переменные, а в поиске, для спецэффектов, нет такой инфы, был даже на мёртвом нынче форуме.
Так, дело не в локалках и глобалках, будем разбираться дальше. Вот, само видео. А вот сам триггер:
Я только начал размечать, значит - сама идея, триггер сажает в начале персов на карету, через спецэффекты, конкретно, нам нужен перс на крыше. После того, как карета приземляется, его нужно удалить с крыши, по сюжету, они уходят от погони, карета приземляется, персы выгружаются из неё и пугало улетает на карете, уводя погоню за собой. У нас получается, что ни через глобалку, ни через локалку, перс с крыши - удаляться не хочет, надо ему помочь=) Есть у кого-нибудь идеи?

Принятый ответ

koloff, только что проверил, если нет анимации death у эффекта, то он исчезает спустя несколько секунд после вызова функции DestroyEffect
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
20
8 лет назад
0
Просто переведи в текст и посмотри.
или напиши custom script e = get last created effect
0
28
8 лет назад
Отредактирован nvc123
0
там всё про работу с переменными
работа с эффектами ничем не отличается от работы с другими объектами
присваивание переменной идёт через set
например этот код создаёт и заносит в переменную e эффект который будет прикреплён к юниту target
set e=AddSpecialEffectTarget("путь к модели эффекта", target, "head")
так же можно совместить создание локальной переменной с созданием эффекта
local effect e=AddSpecialEffectTarget("путь к модели эффекта", target, "head")
0
7
8 лет назад
0
занести в твою локальную переменную (e) последний созданный эффект
set e = bj_lastCreatedEffect
удалить локалку
call DestroyEffect(e)
и не забудь обнулить переменную, чтобы не было утечки
set e = null
Этот комментарий удален
0
24
8 лет назад
0
Парни, вы будете смеяться, но не работает=) Скопировал обе строчки в посте Ige, выдаёт ошибку синтаксиса, а при попытке проверить карту - бескомпромиссный фатал=)
Это может быть связанно с тем, что объявляю я локальную переменную и пишу в неё спецэффект в одном триггере, а удаляю в другом?
Загруженные файлы
0
7
8 лет назад
0
koloff:
Это может быть связанно с тем, что объявляю я локальную переменную и пишу в неё спецэффект в одном триггере, а удаляю в другом?
локальная на то и локальная, что работает только внутри одной функции. Так что используй глобалки.
0
24
8 лет назад
0
Нет, я перепишу сейчас в один, вопрос нескольких строчек. Чуть позже отпишусь.
0
20
8 лет назад
0
koloff:
Нет, я перепишу сейчас в один, вопрос нескольких строчек. Чуть позже отпишусь.
Карту в студию!
Так не поймем
0
24
8 лет назад
0
Так, переписал в один триггер, карта работает, но, блин, перс не удаляется=) Тут, видно, дело не в этом, и придётся опять баламутить вас.
Так, я думаю, проще всего видео будет записать сейчас. Парни, минут через 10 всё оформлю.
0
33
8 лет назад
0
Если у тебя спецэффект создаётся при одном событии, а удаляется при другом, то нужно записывать его в глобалку, имхо.
0
24
8 лет назад
0
Дооформил пост, читаем в шапке и смотрим видео.
Так, есть одна идея, она связана с тем, что, возможно, в движении нельзя удалить спецээфект. Сейчас с собакой погуляю и проверю её.
0
28
8 лет назад
0
koloff, я хз что у тебя не так
у меня всё нормально удаляет
0
7
8 лет назад
0
koloff, Есть один вариант. В общем, DestroyEffect() не удаляет модель моментально. Сначала проигрывается анимация death, и спустя какое-то время удаляется сама модель. Можно сделать анимацию death модели эффекта, которая будет скрывать ее.
0
24
8 лет назад
0
Так дело в том, что у меня они с анимками стэнд атачаться. Эти модельки имеют только её одну для корректной работы, нет других вообще. Я уже удалял так кучера, рядом с пугалом сидел ещё один перс. Удалял через глобалку. Всё работает. Что здесь не так - ума не приложу. Сейчас проверил, движение не влияет на результат. Всё один в один, там работает, здесь нет. Мистика.
Перс именно удаляться не хочет. Я уже придумал, как обойтись без этого удаления и снимать дальше, но, чёрт возьми, ведь всё правильно, а не работает.
0
7
8 лет назад
0
koloff, только что проверил, если нет анимации death у эффекта, то он исчезает спустя несколько секунд после вызова функции DestroyEffect
Принятый ответ
0
24
8 лет назад
0
Ige, Ну тогда отлично, выставлю с расчётом на эту задержку и дело в шляпе. Сейчас затестим.
0
7
8 лет назад
0
koloff:
Ige, Ну тогда отлично, выставлю с расчётом на эту задержку и дело в шляпе. Сейчас затестим.
халтура :D
0
24
8 лет назад
0
Ige, Да ты прав, всё именно так и обстоит. В первом случае карета с кучером летела в замок, я его удалил, а потом, минут через 15 сюжета, они обратно летели, поэтому там и сработало. Всё, разобрались. Твой ответ сейчас закреплю. Всем спасибо.
Всё отлично, просто запомню с какой задержкой исчезает спецээфект, это гораздо быстрее будет и проще, чем я сейчас начну вникать в их устройство и переделывать модельки. К тому же, в этой серии, эта вещь больше не понадобится.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.