Ломаю голову: хочу сделать так, чтоб в зону входил юнит, и выводился на экран в типе string, к примеру, ID этого юнита(не ID типа юнита, а ID юнита!). Не знаю, как к нему обратиться. И я не понял, в каком типе данных оно хранится. Как я понял - integer. На скринах просто показано, как по дефолту работает отображение уровня юнита при входе в зону. Думаю, должно быть похоже чем-то. Если тема заезженная, подскажите, где искать плз.
screen0 - на триггерах(с конвертированием to string).
screen1 - просто конвертировал в текст на jass. Утечки не устранял.

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

Мне в итоге неоткуда брать этот h - ключ, по которому я всё записал...
Это будет юнит, которого атаковали т.е. GetTriggerUnit(). Вся задача шаринга между несколькими триггерами в том, чтобы определить какие данные между этими триггерами у нас уже есть общие и отталкиваясь от них записать другие данные в хеш. В данном случае мы вешаем данные на GetSpellAbilityUnit() и загружаем по GetTriggerUnit(). Самого кастера, как я понимаю, здесь записывать никуда не нужно.
А некоторым комментаторам советую постыдиться, редкий случай, когда человек сам что-то пытается понять и пробует что-то делать, а вам лишь бы эго потешить.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
11
5 лет назад
0
local unit u = LoadUnitHandle(udg_hash,h,StringHash("caster"))
И варкрафт спрашивает: ЧТО ТАКОЕ h??
А чтоб мне указать, что такое h, мне нужно взять от того же юнита(уже из хэша), и его хэндлу присвоить h. Я не прав разве?
0
26
5 лет назад
0
от чего срабатывает второй триггер? или это функция? как бы это разные вещи
0
11
5 лет назад
0
Hate:
потому что это локальная переменная. сами же написали это, и сами удивляетесь?
Так я не понял, это я не понимаю, как сделать или сделать невозможно? Глобальная переменная отменит вариант с МУИ спеллом, нет разве?
Hate:
от чего срабатывает второй триггер? или это функция? как бы это разные вещи
Второи именно триггер. Срабатывает, когда после нажатия абилки(в первом триггере) кастер атакован.
0
26
5 лет назад
Отредактирован PT153
0
вы полностью покажите код, скринами или скопируйте с соответствующим форматированием, а не думайте что "это неважно"
DopaMine:
Так я не понял, это я не понимаю, как сделать или сделать невозможно? Глобальная переменная отменит вариант с МУИ спеллом, нет разве?
Второи именно триггер. Срабатывает, когда после нажатия абилки(в первом триггере) кастер атакован.
ну так Кастер - юнит, и тот кто атакован - юнит! в чем ваша проблема??
0
11
5 лет назад
Отредактирован PT153
0
цитата
Не до конца понял, но тогда опишу и покажу триггеры, на которых это сделано.
Способность сделана по аниме Наруто(заезженная тема...)) и называется "Техника обмена". Если не знаете, что это такое, то вот логика: если юнита бьют, он может нажать кнопку и заменит себя на бревно, исчезнет(hide), появится бревно, эффекты и звук, и через 1.5 секунды появится(unhide) в точке, которая указана, как цель заклинания. А если не бьют, то ничего не произоидёт. Так же эффект работает всего 1 секунду(то есть применять типо надо прям перед ударом), а не весь кулдаун.
У способности "Техника обмена" кулдаун 5 секунд. Направленная на точку.
Есть два триггера, "CastOfObmen" включается и выключается в "Attacked".
Attacked:
Когда юнит юзает способность "Техника обмена", записываются в глобалы(а надо в хеш, видимо), а потом в локалки: кастер, точка-цель заклинания.
Включается "CastOfObmen", ждём секунду, выключается "CastOfObmen".
CastOfObmen:
Если кастер(из глобала, а надо из хеша, видимо) атакован, то:
записываются в переменные: атакованныи юнит, звук и эффекты, которые сработают, точка-позиция атакованного юнита, точка-цель заклинания из первого триггера.
Соответственно, дальше прячу юнита, создаю эффекты в его местоположении, жду 1.5 секунды(в целом, они разбиты на несколько отрезков для постепенного появления эффектов), перемещаю нашего шиноби в точку-цель заклинания и перестаю прятать его.
По логике я понимаю, что все эти данные, которые у меня в глобальных переменных - мне нужно в хеш сохранять. Хочу понять, как это сделать. И желательно переписать с триггеров на Jass, а я не особо шарю, позавчера начал делать.
На скрине1- Первыи триггер, на скринах2-3 - Второи триггер. На втором я выделил строку, чтоб было ясно, откуда читать 3 скрин.
Чтоб было понятнее, я выше описывал, в чём суть. Но там ещё на гуи, а щас ещё и на джассе есть варинт
Hate:
вы полностью покажите код, скринами или скопируйте с соответствующим форматированием, а не думайте что "это неважно"
ну так Кастер - юнит, и тот кто атакован - юнит! в чем ваша проблема??
В том, что они в разных триггерах и это один и тот же юнит. И себя через себя он не может вызвать.
0
26
5 лет назад
0
почему это он не может? я выше чем вписал что юнит объект и имеет номер как таймер. так что не может?
вам указывали писать данные на юнита, я вы вцепились в таймер.
0
11
5 лет назад
0
почему это он не может?
Щас код скину
0
33
5 лет назад
Отредактирован Кет
0
А чтоб мне указать, что такое h, мне нужно взять от того же юнита(уже из хэша), и его хэндлу присвоить h. Я не прав разве?
DopaMine, если второй триггер запускается событием «Юнит атакован», то h в первом триггере нужно записать на юнита, который будет атакован. Типа перекрёстную ссылку сделать.
В целом с логикой работы что-то не так.
0
11
5 лет назад
0
Я ВСЁ ПОНЯЛ, ВСЕМ СПАСИБО!
3
29
5 лет назад
Отредактирован Doc
3
Мне в итоге неоткуда брать этот h - ключ, по которому я всё записал...
Это будет юнит, которого атаковали т.е. GetTriggerUnit(). Вся задача шаринга между несколькими триггерами в том, чтобы определить какие данные между этими триггерами у нас уже есть общие и отталкиваясь от них записать другие данные в хеш. В данном случае мы вешаем данные на GetSpellAbilityUnit() и загружаем по GetTriggerUnit(). Самого кастера, как я понимаю, здесь записывать никуда не нужно.
А некоторым комментаторам советую постыдиться, редкий случай, когда человек сам что-то пытается понять и пробует что-то делать, а вам лишь бы эго потешить.
Принятый ответ
1
28
5 лет назад
1
Clamp, убрал все простыни.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.