EVENT_PLAYER_UNIT_DEATH
|
|
FatalBlade | Дата: Суббота, 03 Декабря 2011, 22:52:13 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| И так, мне очень нужно знать, на какие будет ли реагировать событие EVENT_PLAYER_UNIT_DEATH на следующие случаи: 1) - Абилка Possession у баньши у Андед (типа юнит "входит" в цель, и тот юнит становится за игрока баньши, а сама баньши изчезает) 2) - Суммон который призывается на время. По истечению времени он исчезает. Это считается смертью юнита?
|
|
|
|
YaNeZnauJass | Дата: Суббота, 03 Декабря 2011, 23:13:52 | Сообщение # 2 |
1 уровень
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 15
Блокировки:
| Quote (FatalBlade) 2) - Суммон который призывается на время. По истечению времени он исчезает. Это считается смертью юнита? нед
|
|
|
|
Trekonus | Дата: Воскресенье, 04 Декабря 2011, 12:59:05 | Сообщение # 3 |
6 уровень
Группа: Проверенные
Сообщений: 210
Награды: 0
Репутация: 23
Блокировки:
| Смертью(как бы странно это не звучало) является смерть.Т.е. когда юнит получает урон превышающий его здоровье или умирает по воле Бо.. эмм...триггера.
|
|
|
|
Ty3uK | Дата: Воскресенье, 04 Декабря 2011, 13:19:30 | Сообщение # 4 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Насколько я знаю, переселение баньши не смерть. Просто проигрывается анимация и юнит удаляется. С, епть
|
|
|
|
SirNikolas | Дата: Воскресенье, 04 Декабря 2011, 13:31:14 | Сообщение # 5 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Code function Trig_TestDeath_Actions takes nothing returns nothing call BJDebugMsg(GetUnitName(GetTriggerUnit()) + " " + I2S(GetHandleId(GetTriggerUnit())) + " умирает") endfunction
function InitTrig_TestDeath takes nothing returns nothing local trigger trig = CreateTrigger() local integer i = 0 loop call TriggerRegisterPlayerUnitEvent(trig, Player(i), EVENT_PLAYER_UNIT_DEATH, null) exitwhen i == 15 set i = i + 1 endloop call TriggerAddAction(trig, function Trig_TestDeath_Actions) set trig = null endfunction
|
|
|
|
Ty3uK | Дата: Воскресенье, 04 Декабря 2011, 13:33:31 | Сообщение # 6 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Ну да, можно и дебагом проверить
|
|
|
|
Hexing | Дата: Воскресенье, 04 Декабря 2011, 14:58:36 | Сообщение # 7 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (Сирниколас) function Trig_TestDeath_Actions takes nothing returns nothing call BJDebugMsg(GetUnitName(GetTriggerUnit()) + " " + I2S(GetHandleId(GetTriggerUnit())) + " умирает") endfunction
function InitTrig_TestDeath takes nothing returns nothing local trigger trig = CreateTrigger() local integer i = 0 loop call TriggerRegisterPlayerUnitEvent(trig, Player(i), EVENT_PLAYER_UNIT_DEATH, null) exitwhen i == 15 set i = i + 1 endloop call TriggerAddAction(trig, function Trig_TestDeath_Actions) set trig = null endfunction а ха ха наконецто я дождался этого момента, SirNikolas, написал не идеальный код!!! Code function Trig_TestDeath_Actions takes nothing returns nothing local unit u = GetTriggerUnit() call BJDebugMsg(GetUnitName(u) + " " + I2S(GetHandleId(u)) + " умирает") set u = null endfunction переменная 2 раза используется, 2 вызова одной функции - нехорошо
Сообщение отредактировал Hexing - Воскресенье, 04 Декабря 2011, 15:49:13 |
|
|
|
SirNikolas | Дата: Воскресенье, 04 Декабря 2011, 15:31:46 | Сообщение # 8 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (Hexing) 2 вызова одной функции - нехорошо Полностью согласен. Единственное исключение - native GetTriggerUnit takes nothing returns unit - самая быстрая функция в игре. Ха-ха.
P. S. Поправь автора цитаты.
|
|
|
|
Hexing | Дата: Воскресенье, 04 Декабря 2011, 15:49:00 | Сообщение # 9 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| SirNikolas как всегда лучше всех
|
|
|
|
FatalBlade | Дата: Воскресенье, 04 Декабря 2011, 22:25:38 | Сообщение # 10 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (SirNikolas) GetTriggerUnit Почему? И откуда ты это знаешь?)) Чем она отличается от GetSpellAbilityUnit, GetAttacker, GetDyingUnit, GetKillingUnit, GetSpellTargetUnit... ?
|
|
|
|
Slonick | Дата: Воскресенье, 04 Декабря 2011, 22:36:12 | Сообщение # 11 |
10 уровень
Группа: Проверенные
Сообщений: 1688
Награды: 0
Репутация: 247
Блокировки:
| Hexing, не дождешься чтобы он ошибся)
|
|
|
|
lawson | Дата: Воскресенье, 04 Декабря 2011, 22:54:07 | Сообщение # 12 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (FatalBlade) GetTriggerUnit Quote (FatalBlade) отличается от Quote (FatalBlade) GetSpellAbilityUnit Только при событии юнит использут способность.Quote (FatalBlade) GetAttacker Триггер юнит ни когда не может быть аттакером, так как есть только событие юнит атакован.Quote (FatalBlade) GetDyingUnit При событии юнит умирает.Quote (FatalBlade) GetKillingUnit Не может быть триггер юнитом.Quote (FatalBlade) GetSpellTargetUnit При событии юнит использует способность. ты это хотел узнать?
TriggerUnit наверное быстрей потому что ловит любые события которые может вызвать юнит.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Воскресенье, 04 Декабря 2011, 23:00:09 |
|
|
|
oleg_best_oleg | Дата: Воскресенье, 04 Декабря 2011, 23:05:12 | Сообщение # 13 |
Группа: Заблокированные
Сообщений: 1726
Награды: 0
Репутация: 654
Блокировки:
| Quote (FatalBlade) 1) - Абилка Possession у баньши у Андед (типа юнит "входит" в цель, и тот юнит становится за игрока баньши, а сама баньши изчезает) Вроде как считается, я сделал триггер, который выводил сообщение в игру: Игрок <имя> убил игрока <имя>.
При любых обстоятельствах писало нормально. А от этой способности писало:
|
|
|
|
FatalBlade | Дата: Воскресенье, 04 Декабря 2011, 23:26:05 | Сообщение # 14 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| lawson, Я знаю что значит каждая их тех функций что я написал. Мой вопрос о том, почему все советуют юзать именно GetTRiggerUnit, когда можно юзать GetSpellAbilityUnit?
|
|
|
|
lawson | Дата: Воскресенье, 04 Декабря 2011, 23:39:37 | Сообщение # 15 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (FatalBlade) почему все советуют юзать именно GetTRiggerUnit Quote (lawson) TriggerUnit Quote (lawson) ловит любые события которые может вызвать юнит. Quote (FatalBlade) GetSpellAbilityUnit Quote (lawson) При событии юнит использует способность. Понял?Добавлено (04 Декабрь 2011, 23:39:37) ---------------------------------------------
Quote (FatalBlade) Я знаю что значит каждая их тех функций что я написал Это не функции, а ссылки на юнитов.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
FatalBlade | Дата: Понедельник, 05 Декабря 2011, 00:21:05 | Сообщение # 16 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Допустим у меня событие юнит использует способность. В данном случае должно быть неважно как я ловлю юнита - GetTriggerUnit или GetSpellAbilityUnit. Результат тот же. Но всё равно все советуют В ДАННОМ СЛУЧАЕ юзать GetTriggerUnit. Why??Добавлено (05 Декабрь 2011, 00:21:05) ---------------------------------------------
Quote (oleg_best_oleg) Игрок убил игрока 1. Это как понимать? Что нулевой игрок, или "никакой" игрок убил игрока 1?
|
|
|
|
lawson | Дата: Понедельник, 05 Декабря 2011, 01:31:43 | Сообщение # 17 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (FatalBlade) советуют В ДАННОМ СЛУЧАЕ юзать GetTriggerUnit. Why?? Потому что первоисточником всех этих SpellTarget или других есть TriggerUnit. На оптимизации карты это не скажится аж никак.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Понедельник, 05 Декабря 2011, 01:32:35 |
|
|
|
Ty3uK | Дата: Понедельник, 05 Декабря 2011, 07:48:20 | Сообщение # 18 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Триггер юнит работает быстрее всех других ссылок, его можно и не заносить в переменную, если ты обращаешься к нему один или два раза (так же можно сразу сейвить в хэш через call SaveAgentHandle(hash, parent, child, GetTriggierUnit()). Тебе нужно просто запомнить, что это самая быстрая ссылка на события с юнитом
|
|
|
|
Hexing | Дата: Понедельник, 05 Декабря 2011, 08:13:24 | Сообщение # 19 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Ty3uK, пруууф ит!!!! где доказательства?
|
|
|
|
Ty3uK | Дата: Понедельник, 05 Декабря 2011, 08:21:10 | Сообщение # 20 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Это аксиома. Триггер юнит- родитель таких ссылкок, как GetAttackedUnit(), GetDyingUnit(), GetLearningHero() и прочие. Это как хэндл родитель агента, юнита, эффекта и прочего. Пруф? Добавлено (05 Декабрь 2011, 08:19:02) --------------------------------------------- Точнее хэндл -> агент -> юнит, эффект, молния, трекабл и прочее Добавлено (05 Декабрь 2011, 08:21:10) --------------------------------------------- Альтернатива из яваскрипт и jquery: object -> window, document и прочее
|
|
|
|
Hexing | Дата: Понедельник, 05 Декабря 2011, 08:27:58 | Сообщение # 21 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Ty3uK, нет, ты не прав. GetSpellTargetUnit() - съел? нефига это не родитель, и связывать их без соурс кода движка варика я тебе не дам, по крайней мере навязывать ложные доказательства мне. Ватсон, чтобы раскрыть это дело нам понадобится вся наша дедукция!
|
|
|
|
Ty3uK | Дата: Понедельник, 05 Декабря 2011, 08:31:10 | Сообщение # 22 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Я и не сказал, что таргетюнит родитель. Такая же ссылка, как и триггерюнит, и аттакер
|
|
|
|
Hexing | Дата: Понедельник, 05 Декабря 2011, 09:10:01 | Сообщение # 23 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Ty3uK, аттакер не тру - GetEventDamageSource - тру
|
|
|
|
Ty3uK | Дата: Понедельник, 05 Декабря 2011, 09:44:07 | Сообщение # 24 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Да ну? Смотря какой момент атаки тебе надо отловить- замах или нанесение урона. Замах отлично отлавливать для того, чтобы запретить атаку, ибо при нанесении урона еще придется пополнять здоровье, а это лишнее действие
|
|
|
|