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

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

Ответ
 
Rizen

offline
Опыт: 2,126
Активность:
Damage detection
Значит, так. Нашел вот эту замечательную систему, установил, все работает.
Поставил, запустил. Теперь моя пассивная способность работает нормально (шанс нанести дополнительный урон от ИНТ при атаке). Но теперь у меня другая проблема, которая выглядит хуже предыдущей) Скрипт фиксирует любой урон и разделить урон по типам нельзя (насколько я знаю, это недостаток любой системы обнаружения урона). То есть, если юнит получает урон от AOE-спелла 10 секунд каждую секунду происходит реальный замес)
Что же делать? Приказывать дамми-юниту наносить повреждения вместо кастера, чтобы триггер не срабатывал? А как быть с предметами, к примеру, который атакуют каждую секунду?) Тоже делать через триггеры?) Как вы делаете?
Хмм... идея с даммиком может быть неплоха еще в одной вещи - не будет идти обратный урон на триггерные заклинания. :)
Старый 07.11.2012, 18:00
youtube
сктыщь
offline
Опыт: 8,025
Активность:
обычно делают через отлов баффов
Старый 07.11.2012, 18:03
Rizen

offline
Опыт: 2,126
Активность:
youtube, как? У меня сейчас стоит условие "дамажащий юнит имеет бафф". Мне не нужно расписывать триггеры, только последовательность.
Старый 07.11.2012, 18:05
Doc

offline
Опыт: 63,163
Активность:
Rizen, весь магический урон наносится даммиками да и все, абилки если стандартные то можно даммиком кастить.
Отлов баффов тоже возможен, но это для лохов =(
Старый 07.11.2012, 18:07
Rizen

offline
Опыт: 2,126
Активность:
Doc:
Rizen, весь магический урон наносится даммиками да и все
Похоже, это лучший вариант в моем случае, тем более мои персонажи задолбали умирать после каста заклинания на волнах с обратным уроном. Спасибо, думаю, это вполне подойдет :)
Старый 07.11.2012, 18:10
Sladkoegka
Забыл что хотел...
offline
Опыт: 7,477
Активность:
Rizen, эта система-гавнецо.Делается это
обычно делают через отлов баффов
Старый 07.11.2012, 19:05
Anufis

offline
Опыт: 6,290
Активность:
Код:
function Damage takes unit u,unit target,real dmg,integer modif returns real
  ...
  if autoattack then
    temp=dmgout-dmg
    if temp>0 then
      SetUnitState(target,UNIT_STATE_LIFE,GetUnitState(target,UNIT_STATE_LIFE)-temp)
    else
      if GetUnitState(target,UNIT_STATE_LIFE)>dmgout then
        BlockDamage(target,-temp,dmg)
      endif
    endif
  else
    SetUnitState(target,UNIT_STATE_LIFE,GetUnitState(target,UNIT_STATE_LIFE)-dmgout)
  endif
  return dmgout
endfunction


У себя сделал так, все работает, как часы. Обычный урон наносится только от автоатак, абсолютно весь остальной урон через вызов этой функции.
Точнее урон автоатак отлавливается триггером и посылается сюда.
Старый 07.11.2012, 19:15
Doc

offline
Опыт: 63,163
Активность:
Anufis, бредово.
  1. SetUnitState, nuff said.
  2. Нет различных типов урона итд итп.
Старый 07.11.2012, 19:26
Rizen

offline
Опыт: 2,126
Активность:
Sladkoegka, в чем суть и преимущество перед атакой дамми? При том, что мне в любом случае придется атаковать через дамми по причине, описанной выше.
Старый 07.11.2012, 19:36
Doc

offline
Опыт: 63,163
Активность:
Rizen, делай через дамми, да и все, это реально надежный путь и не настолько ресурсоемкий, в целом, я везде его использовал, например.
Старый 07.11.2012, 19:58
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
бафы ресурсоёмкие?
Старый 07.11.2012, 20:14
Sladkoegka
Забыл что хотел...
offline
Опыт: 7,477
Активность:
Rizen, мдааа.С такой системой никакие дамми-мамми тебе не понадобятся.У тебя будет 3 тригера,2 из которых в 15 строчек.В общем объясняю суть
создаем спеллбук с 1-ой способностью-яд дриады(ночных эльфов). Чистим поля,заменяем баффы,убираем ненужное и добавляем наш яд в спеллбук.
Теперь создаем 3 триггера и 1 глобалку - отряд

1тригер) инит карты- для всех игроков запрещаем спеллбук.Теперь выбираем всех юнитов на карте(не зданий,не даммиков и т.д.) и добавляем им спеллбук,а также добавляем на этих самых юнитов в 3-ий триггер событие - "Получает урон" и добавляем в отряд(во избежание багов)
2тригер) юнит входит в зону игровой карты-если юнит не в отряде и если он не даммик,то добавляем ему спеллбук с ядом,заносим его в группу и добавляем в 3-ий триггер событие- "Получает Урон"
3тригер) События сюда добавляются из тригеров 1 и 2.В условии - юнит имеет бафф яда. В действиях-удалить бафф яда и дальше все что хочешь.Например если GetRandomInt(1,5)==1 то call UnitDamageTarget(damager,damaged,GetHeroInt(damager).........
На самом деле все просто и удобненько.Но есть свой минусок-тебе придется отказаться от некоторых баффов
Старый 07.11.2012, 22:07
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,324
Активность:
Sladkoegka, необязательно, уровень яда делаеш больше уровня орба (у предмета всегда 1) ну сделаеш 2, и добовляеш только когда надо (если способность шансовая), яд будет перебивать орб на момент срабатывания триггерной пассвивки, не так уж и страшно что при триггерном баше или крите небудет работать сфера проклятия....
Старый 08.11.2012, 10:29
Sladkoegka
Забыл что хотел...
offline
Опыт: 7,477
Активность:
quq_CCCP, мм простите но как сделать так чтобы
добовляеш только когда надо (если способность шансовая)
???
P.S. твоя система check damage system баганная до смерти.
Старый 08.11.2012, 13:08
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,324
Активность:
Sladkoegka, ну не догадался чтоли, если GetRandomInt(0,100) <= 15 то даём спелл бук с ядом, в это самый удар у нас небудут работать другие орбы, ну а после будут...
Про систему, правдо? ну а баги пожалуйста перечисли, я давным давно её написал, и выложил, в теме так никто не отписался про баги
Старый 08.11.2012, 14:33
Ответ

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

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

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

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



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