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

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

Закрытая тема
 
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Как оттолкнуть юнита более реалистичнее
Вот проблема: Делаю чтобы при каждой атаке цель отскакивала назад.
Но вот в чем проблема, как сделать так, чтобы это было плавно, а не просто установка координат?
» раскрыть
Код:
function KnocbackMob_Conditions takes nothing returns boolean
    return IsUnitType(GetAttackedUnitBJ(), UNIT_TYPE_HERO) == true and GetUnitTypeId(GetAttacker()) == 'u000'
endfunction

function KnocbackMob_Actions takes nothing returns nothing
    local unit un=GetAttackedUnitBJ()
    local unit un2=GetAttacker()
    local real x=GetLocationX(GetUnitLoc(un)) + 40.00 * Cos(GetUnitFacing(un2) * bj_DEGTORAD)
    local real y=GetLocationY(GetUnitLoc(un)) + 40.00 * Sin(GetUnitFacing(un2) * bj_DEGTORAD)
    
    if not IsTerrainPathable(x,y, PATHING_TYPE_WALKABILITY) then
        call SetUnitX(un, x)
        call SetUnitY(un, y)
        call DestroyEffect(AddSpecialEffectLocBJ( GetUnitLoc(un), "Abilities\\Spells\\Undead\\FrostNova\\FrostNovaTarget.mdl" ))
    else
        call SetUnitLifeBJ( un, ( GetUnitStateSwap(UNIT_STATE_LIFE, un) - ( GetUnitStateSwap(UNIT_STATE_MAX_LIFE, un) / 4.00 ) ) )
    endif
    
    set un=null
    set un2=null
endfunction

//===========================================================================
function InitTrig_KnocbackMob takes nothing returns nothing
    set gg_trg_KnocbackMob = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_KnocbackMob, EVENT_PLAYER_UNIT_ATTACKED )
    call TriggerAddAction( gg_trg_KnocbackMob, function KnocbackMob_Actions )
    call TriggerAddCondition( gg_trg_KnocbackMob, Condition( function KnocbackMob_Conditions ) )
endfunction


знаю есть такие заклинания, но смотря на них я не понял...
Старый 20.07.2012, 18:00
Doc

offline
Опыт: 63,163
Активность:
У тебя весь код бред. Смотри другие системы/спеллы лучше. Тысячи их. Серьезно.
Старый 20.07.2012, 18:10
ScorpioT1000
Работаем
offline
Опыт: отключен
плавно - это экспонента или сплайн ? усложнять тоже можно нехило =)
Старый 20.07.2012, 18:39
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Xipxop, почитай статью Ханабиши про хеш-таблицы
При атаке(если хочешь не на замах,а на удар,то смотришь эту тему)
Проверяешь есть ли в хеше на атакуемом юните таймер
если нет - создаешь,сохраняешь,запускаешь,по тикам таймера двигаешь юнита
если есть - удаляешь,создаешь новый,сохраняешь,запускаешь,по тикам таймера двигаешь юнита
В итоге даже если юнита ударят по очереди несколько других юнитов,то он будет двигаться только от тычки последнего

Отредактировано Nerevar, 20.07.2012 в 20:59.
Старый 20.07.2012, 18:56
Закрытая тема

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

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

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

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



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