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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
26
что появляется во втором триггере? какие объекты?
11
Hate:
вам написали про юнита, вы продолжаете долбиться в таймер
у каждого объекта на карте есть свой хэндл, это уникальный номер, будь то таймер, юнит, или разрушаемая декорация, разница на кого сохранять нулевая
Понимаю. Ну вот представьте: в первом триггере вы жмёте абилку. Во втором триггере она срабатывает при условии, что вы атакованы. Через что вы юнита запишите таким образом, чтобы второи триггер понял, по какому ключу загружать? Для того, чтоб когда 100 человек юзали одновременно абилку, она срабатывала у каждого правильно.
Hate:
что появляется во втором триггере? какие объекты?
Во втором есть спецэффекты. Которых нет в первом
26
вы на ключ юнита пишете все данные, и достаете с его же ключа. что непонятного то, с таймера вы достаете, а юнит непреодолимая стена?
11
И позиция кастера есть во втором триггере. А в первом только позиция точки-цели заклинания
А юнита с какого ключа достать тогда?
26
а кастует значит не юнит, да? а кто же? мммм?)
30
DopaMine, можно выделять курсором (или пальцем) часть сообщения, тогда цитироваться будет только она. Невозможно же простыни эти читать!
11
а кастует значит не юнит, да? а кто же? мммм?)
Он кастует в первом триггере, а во втором не кастует.
Какая команда сработает сразу в двух триггерах? Вот пример щас напишу
local unit caster = GetSpellAbilityUnit()
local location point = GetSpellTargetLoc()
local integer h = GetHandleId(caster)
call SaveUnitHandle(udg_hash,h,StringHash("caster"),caster)
call SaveLocationHandle(udg_hash,h,StringHash("point"),point)
Это был триггер номер 1
А это второи:
Мне нужно зафиксировать того же юнита. Пробую так:
local unit u = LoadUnitHandle(udg_hash,h,StringHash("caster"))
И варкрафт спрашивает: ЧТО ТАКОЕ h??
26
потому что это локальная переменная. сами же написали это, и сами удивляетесь?
11
local unit u = LoadUnitHandle(udg_hash,h,StringHash("caster"))
И варкрафт спрашивает: ЧТО ТАКОЕ h??
А чтоб мне указать, что такое h, мне нужно взять от того же юнита(уже из хэша), и его хэндлу присвоить h. Я не прав разве?
26
от чего срабатывает второй триггер? или это функция? как бы это разные вещи
11
Hate:
потому что это локальная переменная. сами же написали это, и сами удивляетесь?
Так я не понял, это я не понимаю, как сделать или сделать невозможно? Глобальная переменная отменит вариант с МУИ спеллом, нет разве?
Hate:
от чего срабатывает второй триггер? или это функция? как бы это разные вещи
Второи именно триггер. Срабатывает, когда после нажатия абилки(в первом триггере) кастер атакован.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.