XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
I.Todd

offline
Опыт: 12,046
Активность:
Неуязвимость на цель
Нужен спел "Неуязвимость" который можно кинуть на любого юнита. Интересны способы реализации. Вариант дать бутылку/способность и приказать выпить/применить не устраивают.(
Старый 11.09.2008, 10:07
Gres
Кораэлестраз
offline
Опыт: 18,575
Активность:
Юнит применяет пустышку на цель и ту делать неуязвимой на нужное нам кол-во времени. Че сложного то? 0о
Или это ты так просто ради интереса спросил чтоли?
Старый 11.09.2008, 10:11
I.Todd

offline
Опыт: 12,046
Активность:
хм.. либо я что-то не понял.. либо до сих пор не проснулся.
я пока не понимаю как сделать цель неуязвимой!
Старый 11.09.2008, 10:13
Gres
Кораэлестраз
offline
Опыт: 18,575
Активность:
Триггерно!
Создаеш спос пустышку на основе канала.
Затем когда юнит применяет эту спос, то делать цель спосы неуязвимой действием:
Код:
call SetUnitInvulnerable( GetSpellTargetUnit(), true )
Старый 11.09.2008, 10:18
I.Todd

offline
Опыт: 12,046
Активность:
о! что-то я забыл про такую функцию.. спасибо )

Код:
call SetUnitInvulnerable( GetSpellTargetUnit(), true )
call TriggerSleepAction ( ( 10.00 * I2R(GetUnitAbilityLevel(GetSpellAbilityUnit(), 'A000' )) ) ) 
call SetUnitInvulnerable( GetSpellTargetUnit(), false )

Примерно так должен код выглядеть или я все еще не проснулся?
Старый 11.09.2008, 10:26
NETRAT

offline
Опыт: 83,712
Активность:
ваще-то в таком триггере GetSpellTargetUnit() нужно в локалку занести
Старый 11.09.2008, 10:31
I.Todd

offline
Опыт: 12,046
Активность:
NETRATда с локалкой понятно. Это я вкратце накидал.

I.Todd добавил:
Всем спасибо, все понятно.

I.Todd добавил:
ааа, стоп. проблема.. Кулдаун у абилки должен быть меньше чем время действия. если до того как функция закончит свою работу, она будет вызвана повторно с другими входными данными, я получу то, что хочу все равно, или бред выйдет?

Отредактировано I.Todd, 11.09.2008 в 10:46.
Старый 11.09.2008, 10:49
J
expert
offline
Опыт: 48,447
Активность:
выйдет бред, можно атачицо на юнита булевую переменую - применен на него сейчас спел или нет
можно использовать костум велью юнита, как 31 булевые переменые

Отредактировано Jon, 11.09.2008 в 11:13.
Старый 11.09.2008, 10:51
I.Todd

offline
Опыт: 12,046
Активность:
да не проблема и баф на него повесить, и отслеживать баф, а не переменную. Как сделать лучше? отслеживать баф или создавать динамический тригер?
Старый 11.09.2008, 11:09
NETRAT

offline
Опыт: 83,712
Активность:
эээ, нахЪ переменная? дб проверка типа IsUnitVulnerable
Старый 11.09.2008, 11:12
J
expert
offline
Опыт: 48,447
Активность:
у, есть такая функция, незнал, ну можно и так =)
Старый 11.09.2008, 11:14
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Как альтернативный вариант, заставить цель юнита самостоятельно применить щит:
Код:
function DivineShield takes nothing returns nothing
  local unit u = GetSpellTargetUnit()
  if GetUnitAbilityLevel(u, 'A000') == 0 then
    call UnitAddAbility(u, 'A000')
  endif
  call SetUnitAbilityLevel(u, 'A000', GetUnitAbilityLevel(u, GetSpellAbilityId()))
  call SetPlayerAbilityAvailable(GetOwningPlayer(u), 'A000', true)
  call IssueImmediateOrderById(u, 852090)  // == "divineshield"
  call SetPlayerAbilityAvailable(GetOwningPlayer(u), 'A000', false)
  set u = null
endfunction

'A000' - дамми способность на основе способности "Божественный щит"
Старый 11.09.2008, 11:17
J
expert
offline
Опыт: 48,447
Активность:
а запрещеные абилки могут быть активироваными? (я неговорю что нельзя, посто незнаю)
Старый 11.09.2008, 11:19
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Jon, нет, запрещенные абилки не активируются, равно как и абилки в спеллбуке. (Проверено)
Старый 11.09.2008, 11:25
NETRAT

offline
Опыт: 83,712
Активность:
помойму эффект дивайна исчезнет вместе с абилой...
каст спеллов через приказ подконтрольному юниту - никогда не есть гуд, приказ легко прервать.
Старый 11.09.2008, 11:26
J
expert
offline
Опыт: 48,447
Активность:
кстате, есть изьян у предложеных способов
т.к. по логике нужно обвновлять счетчик времени, а его обноить не получится, т.к. там используется ваит

Jon добавил:
ну млин нехачу щас думать голова болит, короче если заюзать кеш
создать переменую int IndexSpell = 0, и наращивать ее на 1, каждый раз когда происходит каст спела
и при каждом кссте обнулять ключ хендла юнита и атачить на юнита булевую переменую с ключами (хендл юнита, IndexSpell)
и когда надо будет убрать неуязвимость проверять если на юните (хендл юнита, IndexSpell) == true то убрать неуязвимость, если нет то не убирать

PS
ну это естестено в том случае если медов swdn незаработает
Старый 11.09.2008, 11:32
NETRAT

offline
Опыт: 83,712
Активность:
ну, гм, лично я triggersleepaction не использую - это не по жидайски
куда более правильно юзать метод swdn, однако у мя есть подозрения что оно будет глючить, и я их уже высказал
а я не понимаю почему спелл должен кулдаунится быстрее чем время аго действия? как это и нафиг? может проще сделать перманеуязвимость?
Старый 11.09.2008, 11:34
J
expert
offline
Опыт: 48,447
Активность:
NETRAT ну имеется виду если у 2-ух юнитов этот спел и они костуют его на третего
Старый 11.09.2008, 11:35
Gres
Кораэлестраз
offline
Опыт: 18,575
Активность:
Цитата:
ааа, стоп. проблема.. Кулдаун у абилки должен быть меньше чем время действия. если до того как функция закончит свою работу, она будет вызвана повторно с другими входными данными, я получу то, что хочу все равно, или бред выйдет?

Всмысли используешь на другого когонить чтоли? ... ведь на неуязвимого незя накостовать спэллы!
Старый 11.09.2008, 11:36
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
NT, нет, не исчезнет.
Насчет приказов прав. Но довольно странно, что у паладина при включении щита прежний приказ сохраняется.
Собственно, можно дополнить вышеуказанный вариант сохранением приказа и его последующим продолжением, но, опять же, если наложить на юнита во время чаннелинг каста - будет нехорошо.
Либо поиграться с выделением юнитов и нажатием хоткея, что более проблемно.
Старый 11.09.2008, 11:39
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 20:19.