Сейчас 10:45:40 Пятница, 29 марта, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Возвращение урона
[Вопрос] Возвращение урона
WakingTheDemonДата: Воскресенье, 26 Февраля 2012, 19:02:45 | Сообщение # 1
9 уровень
Группа: Проверенные
Сообщений: 821
Награды: 1
Репутация: 170
Блокировки:
сделал способность по возвращению дамага в течении 4 сек после каста способности. типа бм из доты.но возвращение дмг не прекращается. хелпаем

Code
function BM_Conditions takes nothing returns boolean

     if  ( GetSpellAbilityId() == 'A00D' )  then
       return true     
     endif
       
endfunction

function bm_damage takes nothing returns nothing

local unit caster=GetTriggerUnit()
local unit damager = GetEventDamageSource()
local real dam=GetEventDamage()
call UnitDamageTargetBJ( caster, damager, dam, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
endfunction

function BM_Actions takes nothing returns nothing

local trigger bm
set bm=CreateTrigger()
call TriggerRegisterUnitEvent(bm,GetTriggerUnit(),EVENT_UNIT_DAMAGED)
call TriggerAddAction(bm,function bm_damage)

endfunction

//===========================================================================
function InitTrig_blade_mail takes nothing returns nothing
        
      set gg_trg_blade_mail = CreateTrigger(  )
      call TriggerRegisterAnyUnitEventBJ( gg_trg_blade_mail, EVENT_PLAYER_UNIT_SPELL_EFFECT )
      call TriggerAddCondition( gg_trg_blade_mail, Condition( function BM_Conditions ) )
      call TriggerAddAction( gg_trg_blade_mail, function BM_Actions )
        
        
endfunction


походу не в том разделе...


Сообщение отредактировал WakingTheDemon - Воскресенье, 26 Февраля 2012, 19:10:06
 

oleg_best_olegДата: Воскресенье, 26 Февраля 2012, 19:18:14 | Сообщение # 2
Группа: Заблокированные
Сообщений: 1726
Награды: 0
Репутация: 654
Блокировки:
WakingTheDemon, сделай на основе Безумия или рева, и просто сравнивай, есть ли у TriggeringUnit наличие этого баффа.
 

WakingTheDemonДата: Воскресенье, 26 Февраля 2012, 20:22:40 | Сообщение # 3
9 уровень
Группа: Проверенные
Сообщений: 821
Награды: 1
Репутация: 170
Блокировки:
Quote (oleg_best_oleg)
WakingTheDemon, сделай на основе Безумия или рева, и просто сравнивай, есть ли у TriggeringUnit наличие этого баффа.

и потом удалить этого юнита?
 

DreiiДата: Воскресенье, 26 Февраля 2012, 20:24:56 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
WakingTheDemon, Юнит получает урон
Имеет баф БМ
Возврашаешь


 

oleg_best_olegДата: Воскресенье, 26 Февраля 2012, 20:25:16 | Сообщение # 5
Группа: Заблокированные
Сообщений: 1726
Награды: 0
Репутация: 654
Блокировки:
WakingTheDemon, нет, просто сделай так:
Событие: Hero[1] получает урон
Hero[2] получает урон
Hero[3] получает урон
...
Hero[11] получает урон
Hero[12] получает урон
Условие: Переключающий юнит имеет специальное волшебство типа Blade Mail
Источник урона не равно Здание
Действие: Приказать переключающий юнит атаковать Источник урона нанося Полученные повреждения
 

DreiiДата: Воскресенье, 26 Февраля 2012, 20:32:11 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
То что выше на джасс
Code
function Trig_ReturnDMG_Conditions takes nothing returns boolean
return GetUnitAbilityLevel(GetTriggerUnit(),'BAFF')>0 and GetEventDamage()>0
endfunction

function Trig_ReturnDMG_Actions takes nothing returns nothing
call UnitDamageTarget(GetTriggerUnit(),GetEventDamageSource(),GetEventDamage(),true,false,ATTACK_TYPE_HERO,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WOOD_HE  AVY_SLICE)
endfunction

//===========================================================================
function InitTrig_ReturnDMG takes nothing returns nothing
      local integer i=0
      set gg_trg_ReturnDMG = CreateTrigger(  )
      loop
      exitwhen i>11
      call TriggerRegisterUnitEvent( gg_trg_ReturnDMG,Hero[i], EVENT_UNIT_DAMAGED )
      set i=i+1
      endloop
      call TriggerAddCondition( gg_trg_ReturnDMG, Condition( function Trig_ReturnDMG_Conditions ) )
      call TriggerAddAction( gg_trg_ReturnDMG, function Trig_ReturnDMG_Actions )
endfunction





Сообщение отредактировал Dreii - Воскресенье, 26 Февраля 2012, 20:32:27
 

WakingTheDemonДата: Воскресенье, 26 Февраля 2012, 21:15:05 | Сообщение # 7
9 уровень
Группа: Проверенные
Сообщений: 821
Награды: 1
Репутация: 170
Блокировки:
Dreii, oleg_best_oleg, спс, все стало исправно работать. я решил сократить код, т он начал выдавать мне ошибку
Неверное колличество аргументов

в
Code

call TriggerAddAction( gg_trg_blade_mail, function bm_damage )


Добавлено (26 Февраль 2012, 21:15:05)
---------------------------------------------
Dreii, в твоем та же ошибка dunno

Сообщение отредактировал WakingTheDemon - Воскресенье, 26 Февраля 2012, 20:56:19
 

DreiiДата: Воскресенье, 26 Февраля 2012, 22:03:53 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
WakingTheDemon, триггер должен иметь имя ReturnDMG

 

SirNikolasДата: Понедельник, 27 Февраля 2012, 09:54:05 | Сообщение # 9
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (WakingTheDemon)
call TriggerRegisterUnitEvent( gg_trg_blade_mail, EVENT_UNIT_DAMAGED )
Отсутствует юнит, для которого добавляется событие. Вообще нужно ставить событие при выборе игроком героя.

Добавлено (27 Февраль 2012, 09:54:05)
---------------------------------------------
WakingTheDemon, часто Редактор выдает ошибку на строке, следующей после ошибочной.


 

WakingTheDemonДата: Понедельник, 27 Февраля 2012, 14:50:23 | Сообщение # 10
9 уровень
Группа: Проверенные
Сообщений: 821
Награды: 1
Репутация: 170
Блокировки:
заносил в массив и т.д.,не реагирует. вернул в итоге событие на каст спела и условие баффа. тему можно закрыть, спс всем кто отписался
 

SirNikolasДата: Понедельник, 27 Февраля 2012, 15:23:39 | Сообщение # 11
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (WakingTheDemon)
на каст спела и условие баффа
Требуется дополнительная проверка на многократное срабатывание, чтобы не добавлять несколько событий для одного юнита.


 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Возвращение урона
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz