Попытался избавится от bj и написал
function Trig_____________________________________105_____________________u_Conditions takes nothing returns boolean
if ( not ( GetUnitState(udg_ShooteR,UNIT_STATE_LIFE) <= 0 ) ) then
return false
endif
if ( not ( GetUnitState(udg_ShooteR,UNIT_STATE_MANA) >= 10.00 ) ) then
return false
endif
return true
endfunction
function Trig_____________________________________105_____________________u_Actions takes nothing returns nothing
call GetUnitState(udg_ShooteR,UNIT_STATE_MANA - 5.00)
endfunction
===========================================================================
function InitTrig_____________________________________105_____________________u takes nothing returns nothing
set gg_trg_____________________________________105_____________________u = CreateTrigger( )
call DisableTrigger( gg_trg_____________________________________105_____________________u )
call TriggerRegisterTimerEvent( gg_trg_____________________________________105_____________________u, 1.00, true )
call TriggerAddCondition( gg_trg_____________________________________105_____________________u, Condition( function Trig_____________________________________105_____________________u_Conditions ) )
call TriggerAddAction( gg_trg_____________________________________105_____________________u, function Trig_____________________________________105_____________________u_Actions )
endfunction
Исправил базовый
call SetUnitManaBJ( udg_ShooteR, ( GetUnitStateSwap(UNIT_STATE_MANA, udg_ShooteR) - 5.00 ) )
endfunction
Не пойму, почему не правильно call GetUnitState(udg_ShooteR,UNIT_STATE_MANA - 5.00)
То есть имя переменной юнита и указанная манна -5, что не верно ?!

  1. не называй триггеры по-русски
  2. SetUnitState(udg_ShooteR,UNIT_STATE_MANA, GetUnitState(udg_ShooteR,UNIT_STATE_MANA) - 5.00)
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
У тебя событие в триггере неверное. Ты указал, что юнит атакован, а необходимо событие, что юнит получает урон.
ответ
function PolarProjectionX takes real x, real dist, real angle returns real
    return x + dist * Cos(angle * bj_DEGTORAD)
endfunction

function PolarProjectionY takes real y, real dist, real angle returns real
    return y + dist * Sin(angle * bj_DEGTORAD)
endfunction

function Trig_Hit_Actions takes nothing returns nothing
    local unit caster = GetTriggerUnit()
    local real face = GetUnitFacing(caster)
    local real x = PolarProjectionX(GetUnitX(caster), 100., face)
    local real y = PolarProjectionY(GetUnitY(caster), 100., face)
    local group targets = CreateGroup()
    local unit target
    call GroupEnumUnitsInRange(targets, x, y, 100., null)
    set target = FindClosestToXY(targets, x, y)
    if target != null then
        call UnitDamageTargetBJ(caster, target, 100., ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL)
        set target = null
    endif
    set caster = null
    call DestroyGroup(targets)
    set targets = null
endfunction
DopaMine, у тебя нет вызова FindClosestUnitXY.
ответ
VinerX, посмотри гуи функцию "пропустить остальные действия" по факту это слово "return" в коде, то есть после ретурна ты никак не поставишь set newUnit = null, и правильно это делать после set bj_lastReplacedUnit = newUnit, а возвращать не newUnit, а bj_lastReplacedUnit, вот код если непонятно
set bj_lastReplacedUnit = newUnit
set newUnit = null
set oldUnit = null
set indexItem = null
return bj_lastReplacedUnit

7
  1. не называй триггеры по-русски
  2. SetUnitState(udg_ShooteR,UNIT_STATE_MANA, GetUnitState(udg_ShooteR,UNIT_STATE_MANA) - 5.00)
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.