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

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

Ответ
 
StoneHeartis
Kicked by ScorpioT1002
offline
Опыт: 1,009
Активность:
Итак, новый код. Уже рабочий. Но есть 2 момента...При первом запуске спела - подвисает вк3 на долю секунду. - Дело в ИФах? Второй момент: использовал ауры, после удаления аур, есественно остаются некоторое время бафы аур и соответственно их действие. Можно ли исправить эти проблемы?

» Код

Код:
function Spell_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A000'
endfunction

function t1 takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local unit u = LoadUnitHandle(udg_Hash, GetHandleId(t), 0)
    local real mana = GetUnitState(u, UNIT_STATE_MANA)
    local effect e
    set udg_i=udg_i+1
        if mana >= 10 then
            set udg_a = udg_a +1
            call SetUnitState(u, UNIT_STATE_MANA, (mana-10))
            call AddSpecialEffectTarget("Abilities\\Spells\\Undead\\FrostNova\\FrostNovaTarget.mdl", u, "overhead")
            set e = GetLastCreatedEffectBJ()
                if udg_a >1 then
                    call SetUnitAbilityLevel(u, 'A002', udg_a )
                    call SetUnitAbilityLevel(u, 'A004', udg_a )
                    else
                    call UnitAddAbility(u, 'A003')
                endif
        endif
        if udg_i > 9 then
            call UnitRemoveAbility(u, 'A003')
            call DestroyTimer(t)
            call FlushChildHashtable(udg_Hash, GetHandleId(t))
        endif
        call DestroyEffect(e)
        set t=null
        set e=null
endfunction

function Spell_Actions takes nothing returns nothing
    local timer t=CreateTimer()
    local unit u=GetTriggerUnit()
    set udg_a=0
    set udg_i=0
    call SaveUnitHandle(udg_Hash, GetHandleId(t), 0, u)
    call TimerStart(t, 1.00, true, function t1)
    
    set t=null
    set u=null
endfunction

function InitTrig_b takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition(t, Condition(function Spell_Conditions))
    call TriggerAddAction( t, function Spell_Actions )
set t=null
endfunction



Notes: A003 - SpellBook; A002, A004 - Auras; A000 - Channel

Отредактировано StoneHeartis, 21.03.2010 в 14:35.
Старый 21.03.2010, 14:20
XOR

offline
Опыт: 38,159
Активность:
Различий не увидел 0_0 bj, эффекты нужно подгружать в таком случае. Preload
Старый 21.03.2010, 14:25
StoneHeartis
Kicked by ScorpioT1002
offline
Опыт: 1,009
Активность:
*XimikS*, не дай бог сейчас пошлешь меня в поиск или куда-нибудь... Каким образом делается прелоад эффектов?

ЗЫ Нативку эффекта на цель ток сча увидел, поменял... Всё равно осталось подвисание...
Старый 21.03.2010, 14:29
XOR

offline
Опыт: 38,159
Активность:
пригодилась закладка
Старый 21.03.2010, 14:36
StoneHeartis
Kicked by ScorpioT1002
offline
Опыт: 1,009
Активность:
XimikS, при чем тут прелоад? Там он вообще рассматривался какдля сейва, что и реализовал Ануфис... Мне прелоад же по сути ничего не даст. время на загрузку прелоада тоже ведь нужно будет, я так понимаю...
И кстати, видел я в действии прелоад. Там тоже определенная задержка есть.
Старый 21.03.2010, 14:45
XOR

offline
Опыт: 38,159
Активность:
Ну тт не хотите сильных лагов с таким кодом- выделите пару секунд вначале карты для прелоада.
Старый 21.03.2010, 14:49
StoneHeartis
Kicked by ScorpioT1002
offline
Опыт: 1,009
Активность:
Ок. Химикс. А теперь конкретный пример на основе какого-нибудь эффекта. Как можно подгружать. Нативки глянул, не совсем понял как работает прелоад.
Старый 21.03.2010, 14:53
XOR

offline
Опыт: 38,159
Активность:
Ссылку дал, принцип тот же + пошел в ..поиск
Старый 21.03.2010, 14:59
StoneHeartis
Kicked by ScorpioT1002
offline
Опыт: 1,009
Активность:
Ладно-ладно... Остался только вопрос с аурами... Удалением бафа удаляется действие ауры?
Старый 21.03.2010, 15:10
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
StoneHeartis, баффы удалай дополнительно раз они медленно удаляются для твоего кода
Старый 21.03.2010, 15:42
XOR

offline
Опыт: 38,159
Активность:
ну дык удали и посмотри..
Старый 21.03.2010, 15:42
StoneHeartis
Kicked by ScorpioT1002
offline
Опыт: 1,009
Активность:
Последений вопрос. Эффект не дестрится. Что я не так сделал?
Старый 21.03.2010, 16:33
Ответ

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

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

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

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



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