ладно, ты наверное не разобрался либо занят, в общем я решил сделать пример
вот основной код
globals
constant hashtable H = InitHashtable( )
constant group TempGroup = CreateGroup( )
endglobals
function addEff takes nothing returns nothing
local timer t = GetExpiredTimer( )
local unit u = LoadUnitHandle( H, GetHandleId( t ), 0 )
local EffectS A = LoadInteger( H, GetHandleId( u ), EffectStructKey )
set A.eff = AddSpecialEffectTarget( "Abilities\\Weapons\\FarseerMissile\\FarseerMissile.mdl", u, "weapon" )
set A.eff2 = AddSpecialEffectTarget( "Abilities\\Weapons\\ZigguratMissile\\ZigguratMissile.mdl", u, "weapon" )
call FlushChildHashtable( H, GetHandleId( t ) )
call DestroyTimer( t )
set t = null
set u = null
endfunction
function poisonDamage takes nothing returns nothing
local timer t = GetExpiredTimer( )
local integer i = GetHandleId( t )
local unit attacker = LoadUnitHandle( H, i, 0 )
local unit damaged = LoadUnitHandle( H, i, 1 )
local real r = LoadReal( H, i, 3 ) - 1.00
call UnitDamageTarget( attacker, damaged, 20.00, false, false, null, null, null )
if r <= 0.00 or not UnitAlive( damaged ) then
call RemoveSavedHandle( H, GetHandleId( attacker ), GetHandleId( damaged ) )
call DestroyEffect( LoadEffectHandle( H, i, 2 ) )
call DestroyTimer( t )
call FlushChildHashtable( H, i )
else
call SaveReal( H, i, 3, r )
endif
set t = null
set attacker = null
set damaged = null
endfunction
function FlamingAttacks_Actions takes nothing returns nothing
local unit attacker = GetEventDamageSource( )
local unit damaged = GetTriggerUnit( )
local real damage = GetEventDamage( )
local unit u
local timer t
local EffectS A
if GetUnitAbilityLevel( damaged, 'Bssd' ) > 0 then
call UnitRemoveAbility( damaged, 'Bssd' )
// потужні удари
if GetUnitAbilityLevel( attacker, 'A002' ) > 0 then
call GroupEnumUnitsInRange( TempGroup, GetUnitX( damaged ), GetUnitY( damaged ), 300.00, null )
loop
set u = FirstOfGroup( TempGroup )
exitwhen u == null
call GroupRemoveUnit( TempGroup, u )
if IsUnitEnemy( u, GetOwningPlayer( attacker ) ) and UnitAlive( u ) then
call UnitDamageTarget( attacker, u, damage, false, false, null, null, null )
endif
endloop
set t = CreateTimer( )
set A = LoadInteger( H, GetHandleId( attacker ), EffectStructKey )
call DestroyEffect( A.eff )
call DestroyEffect( A.eff2 )
call DestroyEffect( AddSpecialEffect( "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl", GetUnitX( damaged ), GetUnitY( damaged ) ) )
call SaveUnitHandle( H, GetHandleId( t ), 0, attacker )
call TimerStart( t, 1.00, false, function addEff )
set t = null
elseif GetUnitAbilityLevel( attacker, 'A003' ) > 0 then
// вогняна атака
call GroupEnumUnitsInRange( TempGroup, GetUnitX( damaged ), GetUnitY( damaged ), 150.00, null )
loop
set u = FirstOfGroup( TempGroup )
exitwhen u == null
call GroupRemoveUnit( TempGroup, u )
if u != damaged and IsUnitEnemy( u, GetOwningPlayer( attacker ) ) and UnitAlive( u ) then
call UnitDamageTarget( attacker, u, damage / 2.00, false, false, null, null, null )
endif
endloop
set t = LoadTimerHandle( H, GetHandleId( attacker ), GetHandleId( damaged ) )
if t == null then
set t = CreateTimer( )
call SaveTimerHandle( H, GetHandleId( attacker ), GetHandleId( damaged ), t )
call SaveUnitHandle( H, GetHandleId( t ), 0, attacker )
call SaveUnitHandle( H, GetHandleId( t ), 1, damaged )
call SaveEffectHandle( H, GetHandleId( t ), 2, AddSpecialEffectTarget( "Abilities\\Spells\\Other\\BreathOfFire\\BreathOfFireDamage.mdl", damaged, "origin" ) )
call TimerStart( t, 1.00, true, function poisonDamage )
endif
call SaveReal( H, GetHandleId( t ), 3, 5.00 )
call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Spells\\Items\\AIfb\\AIfbSpecialArt.mdl", damaged, "chest" ) )
call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Weapons\\RedDragonBreath\\RedDragonMissile.mdl", damaged, "chest" ) )
set t = null
endif
endif
set damaged = null
set attacker = null
endfunction
//===========================================================================
//function InitTrig_FlamingAttacks takes nothing returns nothing
//set gg_trg_FlamingAttacks = CreateTrigger( )
//endfunction
смотришь есть ли у атакованного дебафф яда, если есть - снимаешь его и делаешь триггерные операции (доп. урон, свой собственный яд и так далее, всё что связанно в автоатакой)
саму абилку яда выдать всем юнитам, чья атака должна отлавливаться
JIEGEND, перестань юзать капс, это больше раздражает и сбивает с толку чем приносит пользы в принцип обмена информации, попробуй просто порыться в гуи, всё есть
Meddin, всё у тебя работает, как я и сказал, орб не даёт наложить эффект яда, просто сделай либо триггерный яд, либо триггерный орб, второе предпочтительнее ибо с помощью яда можно отлавливать урон с руки
EugeAl, краш, что же ещё. Когда-то был вопрос с этой темой, там древо ночных эльфов стояло или что, короче стабильно крашило из-за координат, я продемонстрировать не смогу потому что попросту не помню, если тебя и вправду это так парит, удели время для поиска вопросов/тем по крашу Вара из-за иконки
Похоже, это касается темы варкрафта, а не технических проблем сайта, так что отвечу на вопрос
Ро - редактор объектов, гуи - графический пользовательский интерфейс триггеров, джасс - язык придуманный близзардами, на 1.26 имеет так же различные диалекты, вроде сджасса, вджасса, зинка, вурста и так далее, помимо этого есть возможность использовать даже луа
при замахе проверять цель, если это твой конкретный герой, то заблочить абилку смертельного удара, если не он, то разблочить
помимо этого можно сделать кастомный крит через отлов урона
» Администрация XGM / Теперь комментарии вообще не склеиваются
» WarCraft 3 / Проблема с ядом
» Администрация XGM / Рекомендации
» Администрация XGM / Рекомендации
» WarCraft 3 / Проблема с ядом
» WarCraft 3 / Проблема с ядом
» WarCraft 3 / Проблема с ядом
https://www.xgm.guru/p/wc3/114895
саму абилку яда выдать всем юнитам, чья атака должна отлавливаться
» WarCraft 3 / Помогите сделать грамотый триггер
» WarCraft 3 / Помогите сделать грамотый триггер
» WarCraft 3 / Помогите сделать грамотый триггер
» WarCraft 3 / Проблема с ядом
» WarCraft 3 / Помогите сделать грамотый триггер
» WarCraft 3 / Проблема с ядом
» WarCraft 3 / Несколько свойств в одной способности
» WarCraft 3 / Снаряды заклинаний
» WarCraft 3 / Условие на движение
» WarCraft 3 / Это чё?
» WarCraft 3 / Это чё?
Ро - редактор объектов, гуи - графический пользовательский интерфейс триггеров, джасс - язык придуманный близзардами, на 1.26 имеет так же различные диалекты, вроде сджасса, вджасса, зинка, вурста и так далее, помимо этого есть возможность использовать даже луа
» WarCraft 3 / Блокировка получения опыта
» WarCraft 3 / Как запретить работать способность на конкретного героя
» WarCraft 3 / Условие на движение
» WarCraft 3 / Как запретить работать способность на конкретного героя
помимо этого можно сделать кастомный крит через отлов урона
» WarCraft 3 / Блокировка получения опыта
» Администрация XGM / склейка сообщений
» WarCraft 3 / Канал, таймер и анимация. Адская смесь