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

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

Ответ
 
UltimateFenix
Высший Эльф
offline
Опыт: 753
Активность: 12
Polled Wait и прочее
function Trig_CorTarFlamePrecast_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A05R' ) ) then
        return false
    endif
    return true
endfunction

function Trig_CorTarFlamePrecast_Actions takes nothing returns nothing
    call SetUnitAnimation( GetSpellAbilityUnit(), "stand channel" )
    set udg_p = GetUnitLoc(GetSpellAbilityUnit())
    call CreateNUnitsAtLoc( 1, 'u00M', GetOwningPlayer(GetSpellAbilityUnit()), udg_p, GetUnitFacing(GetSpellAbilityUnit()) )
    call SetUnitVertexColorBJ( GetLastCreatedUnit(), 100, 100, 100, 60.00 )
    call RemoveLocation( udg_p )
    local unit CorTarF
    set CorTarF = GetLastCreatedUnit()
    call SetUnitAnimation( CorTarF, "stand channel" )
    call PolledWait( 0.90 )
    call SetUnitAnimation( CorTarF, "spell" )
    call PolledWait( 0.40 )
    call RemoveUnit( CorTarF )
    set CorTarF = null
endfunction

//===========================================================================
function InitTrig_CorTarFlamePrecast takes nothing returns nothing
    set gg_trg_CorTarFlamePrecast = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_CorTarFlamePrecast, EVENT_PLAYER_UNIT_SPELL_CHANNEL )
    call TriggerAddCondition( gg_trg_CorTarFlamePrecast, Condition( function Trig_CorTarFlamePrecast_Conditions ) )
    call TriggerAddAction( gg_trg_CorTarFlamePrecast, function Trig_CorTarFlamePrecast_Actions )
endfunction
Сабж: имею вот такой простой триггер, пожалуйста укажите на мои ошибки и покажите, как нужно. Слышал, что PolledWait утечен, как устроить таймер внутри одной функции или же как проще переносить локальные переменные?
Что делает триггер: когда герой начинает кастовать, создаётся полупрозрачный кастующий паренёк CorTarF :)
________________
AmaZinG Friend of Xgm!
Старый 20.05.2014, 21:49
Hate
конь вакуумный
используется хеш таблица, или структуры, или массивы
Hate добавил:
function Trig_CorTarFlamePrecast_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A05R' 
endfunction
Hate добавил:
следует заносит в локалки те предметы которые вы часто используете что бы не вызывать по n раз функции
________________
новичек в картостроении Warcraft 3? загляни сюда http://xgm.ru/p/wc3/articles
Костыльно-ориентированное программирование (ц)
Старый 20.05.2014, 22:12
Srezi
Kicked by Extravert
offline
Опыт: 1,233
Активность: 80
Хеш-таблиця самый удобный вариант для создания различных спеллов. Это очень удобно и практично.
Старый 20.05.2014, 23:33
ScorpioT1000
Indaxia
offline
Опыт: 127,556
Активность: 27496
опять начинается, почему каждый думает, что он самый умный из всех и нужно создать еще одну тему про поллед вейт?

Отредактировано ScorpioT1000, 21.05.2014 в 13:19.
Старый 21.05.2014, 13:00
UltimateFenix
Высший Эльф
offline
Опыт: 753
Активность: 12
Hate, насколько я понял речь идёт о вызове GetSpellAbilityId() несколько раз) хм, думаю если вызовов меньше 5, то можно и так оставить, мне кажется это очень незначительно влияет на быстродействие.
Srezi, да уж, думаю и мне пора вникнуть
ScorpioT1000, "и прочее" ;)
________________
AmaZinG Friend of Xgm!
Старый 21.05.2014, 15:11
Hate
конь вакуумный
уже более 2 раз следует лучше занести в локалку
вам же от этого проще ориентироваться в коде
________________
новичек в картостроении Warcraft 3? загляни сюда http://xgm.ru/p/wc3/articles
Костыльно-ориентированное программирование (ц)
Старый 21.05.2014, 16:33
nvc123
new status
UltimateFenix, почитай статьи
а то даже не понятно это джасс или просто гуи со вставленной локалкой
Старый 21.05.2014, 19:05
Srezi
Kicked by Extravert
offline
Опыт: 1,233
Активность: 80
UltimateFenix:
Hate, насколько я понял речь идёт о вызове GetSpellAbilityId() несколько раз) хм, думаю если вызовов меньше 5, то можно и так оставить, мне кажется это очень незначительно влияет на быстродействие.
Srezi, да уж, думаю и мне пора вникнуть
ScorpioT1000, "и прочее" ;)
Советую работать на чистом Jass, а не на кривом конвертированным в Jass GUI. Ведь этот Jass очень прост в обращении, это не С+100 и прочие языки программирования)
К тому же Jass расширит твою магию(картостроительские возможности).
Старый 21.05.2014, 20:40
Ответ

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

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

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

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



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