Добавлен
call IssueImmediateOrder( GetLastCreatedUnit(), "stomp" ) вот эта команда меняет значение в нутри глобалиной переменой как это возможно и почему Тип Unit

мне это не нужно я и сам могу это написать всё мне нужен был ответ на мой вопрос
проблема была решена но я не понимаю почему она смогла лешыца тригер который не как не взаимодействуеть с другим тригерам поменял в нём кое что то что не взаимодействуеть и всё стало норм
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
18
MATRITSA:
происходить следушия
if ( Trig_Kenpatchi_Rivok_1_Func001Func005C() ) then
call TriggerExecute( gg_trg_Stan2 )
call DisplayTextToForce( GetPlayersAll(), GetUnitName(udg_TrigerUnit) )
call UnitDamageTargetBJ( udg_TrigerUnitMass[udg_Index], udg_Target0[udg_Index], ( I2R(GetHeroStatBJ(bj_HEROSTAT_STR, udg_TrigerUnitMass[udg_Index], true)) * 30.00 ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC )
call RemoveUnit( udg_TrigerUnit )
Вот на этом куске кода udg_Target0[Index] становица перезаписоваеца в udg_TrigerUnit
не совсем понял что делает этот триггер (код нечитабелен), но одно я нашёл. Ты убиваешь юнита сразу как даешь приказ кастовать стомп.
Увеличь в UnitApplyTimedLifeBJ с 0.01 хотябы до 3.00
14
в этот куске кода как тока выполнелоси вот это условие
if ( Trig_Kenpatchi_Rivok_1_Func001Func005C() ) then
стартует стан наносица дамаг и удаляеца Пустышка Исполизуещися как Двигатели для ЮНита в переменой TrigerUnitMass
18
MATRITSA:
в этот куске кода как тока выполнелоси вот это условие
if ( Trig_Kenpatchi_Rivok_1_Func001Func005C() ) then
стартует стан наносица дамаг и удаляеца Пустышка Исполизуещися как Двигатели для ЮНита в переменой TrigerUnitMass
ох... Кинь скрины триггеров в GUI, не надо переводить триггеры в JASS
18
MATRITSA:
я так и не понял что именно не работает? Сижу смотрю и не могу разобраться в этой путанице
MATRITSA:
короче, скажи что должны делать все эти триггеры. Я напишу одну функцию
14
мне нужно что юнит не удалялся в переменой udg_Targer 0
Я выше написал магия ве какимто раком юнит из Target 0 в TrigerUnit перекачевряжылся
я могу лешыть проблему добавлением еше одного отряда но я хочю в проблеме разабраца
кастыли могут и помочи отсрочить неизбежное которое потом тока усилица
18
MATRITSA:
мне нужно что юнит не удалялся в переменой udg_Targer 0
Я выше написал магия ве какимто раком юнит из Target 0 в TrigerUnit перекачевряжылся
я могу лешыть проблему добавлением еше одного отряда но я хочю в проблеме разабраца
кастыли могут и помочи отсрочить неизбежное которое потом тока усилица
здесь всё очень запутанно, лучше такие вещи писать на jass
14
Окей если для тебя кажеца удобние пишы я лично Испытовую болишы трудности в запоминание написание команд
18
MATRITSA:
что вообще должна делать эта способность триггерная? Чтобы я знал что делать
14
Двигает TriggerUnitMass к целе и как тока до цели докаснуласи даёца стан и наносица урон
18
MATRITSA:
чтобы вызвать прыжок нужно написать "call jump (прыгающий юнит, юнит-цель)"
Не забудь поставить равкод твоего дамми юнита для стомпа (я там комментарий оставил)
Для сохранения нужен JNGP
Саму наработку кидай в кастом код карты
globals
    hashtable hash = InitHashtable()
    real jumpSpeed = 400 //Здесь можно задавать скорость прыжка
    real jumpDamage = 100 //Наносимый урон
endglobals

function RemoveStomp takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local unit u = LoadUnitHandle(hash, GetHandleId(t), StringHash("stomp"))
    call RemoveUnit(u)
    call FlushChildHashtable(hash, GetHandleId(t))
    call DestroyTimer(t)
    set t = null
    set u = null
endfunction

function jumpMove takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local unit u = LoadUnitHandle(hash, GetHandleId(t), StringHash("u"))
    local unit target = LoadUnitHandle(hash, GetHandleId(t), StringHash("target"))
    local unit stomp
    local location pU = GetUnitLoc(u)
    local location pTarget = GetUnitLoc(target)
    local real x = GetLocationX(pU) + jumpSpeed*0.02 * Cos(AngleBetweenPoints(pU, pTarget) * bj_DEGTORAD)
    local real y = GetLocationY(pU) + jumpSpeed*0.02 * Sin(AngleBetweenPoints(pU, pTarget) * bj_DEGTORAD)
    call SetUnitFacing(u, AngleBetweenPoints(pU, pTarget))
    if ((IsUnitInRange(u, target, 72) == true) or (GetUnitState(u, UNIT_STATE_LIFE) <= 0)) then
        //Там где 'hfoo' это равкод твоего дамми юнита который будет стомп юзать
        set stomp = CreateUnitAtLoc(GetOwningPlayer(u), 'hfoo', pU, 0)
        call IssueImmediateOrder(stomp, "stomp")
        call UnitDamageTargetBJ( u, target, jumpDamage, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL )
        call SetUnitTimeScale(u, 1)
        call SaveUnitHandle(hash, GetHandleId(t), StringHash("stomp"), stomp)
        call DestroyEffect(LoadEffectHandle(hash, GetHandleId(t), StringHash("effect")))
        call TimerStart(t, 5.00, false, function RemoveStomp)
    else
        call SetUnitPosition(u, x, y)
    endif
    call RemoveLocation(pU)
    call RemoveLocation(pTarget)
    set t = null
    set u = null
    set stomp = null
    set target = null
    set pU = null
    set pTarget = null
    set x = 0
    set y = 0
endfunction

function jump takes unit u, unit target returns nothing
    local timer t = CreateTimer()
    local effect e
    //Это спеэффект который прикрепится к твоему юниту
    set e = AddSpecialEffectTarget("Abilities\\Spells\\Undead\\Darksummoning\\DarkSummonTarget.mdl", u, "origin")
    //================================================
    call SaveEffectHandle(hash, GetHandleId(t), StringHash("effect"), e)
    call SetUnitTimeScale(u, 0)
    call SaveUnitHandle(hash, GetHandleId(t), StringHash("u"), u)
    call SaveUnitHandle(hash, GetHandleId(t), StringHash("target"), target)
    call TimerStart(t, 0.02, true, function jumpMove)
    set t = null
    set e = null
endfunction
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.