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

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

Ответ
 
Scud123

offline
Опыт: 72
Активность:
Таймер на способность
Способность заключается в том, что герой применяет ее на противника и мне нужно чтоб эта способность действовала на него через определенное время. Проблема не во всем этом, а в том чтоб это время показывалось на противником (что-то в виде таймера). Я это все могу сделать, но получается очень длинный триггер, а я хочу вместить это в 1 короткий триггер. Вот что получилось, но время показывает во время произнесения способности, как и должно быть по условию:
function Trig_GranadeS_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A001' ) ) then
        return false
    endif
    return true
endfunction

function Trig_GranadeS_Actions takes nothing returns nothing
    local unit u
    local effect e
    call StartTimerBJ( udg_GranadeTimer, false, ( 7.00 - I2R(GetUnitAbilityLevelSwapped('A001', GetTriggerUnit())) ) )
    set udg_unit = GetSpellTargetUnit()
    set u = udg_unit
    call PolledWait( ( DistanceBetweenPoints(GetUnitLoc(GetSpellAbilityUnit()), GetUnitLoc(GetSpellTargetUnit())) / 1000.00 ) )
    set udg_unit = u
    call AddSpecialEffectTargetUnitBJ( "origin", udg_unit, "Abilities\\Weapons\\FlyingMachine\\FlyingMachineMissile.mdl" )
    set udg_se = GetLastCreatedEffectBJ()
    call CreateTextTagLocBJ( R2S(TimerGetRemaining(udg_GranadeTimer)), GetUnitLoc(udg_unit), 0, 10, 100, 100, 100, 0 )
    call SetTextTagVelocityBJ( GetLastCreatedTextTag(), 42.00, 90 )
    call ShowTextTagForceBJ( false, GetLastCreatedTextTag(), GetPlayersEnemies(GetOwningPlayer(GetKillingUnitBJ())) )
    call SetTextTagPermanentBJ( GetLastCreatedTextTag(), false )
    call SetTextTagLifespanBJ( GetLastCreatedTextTag(), 2.00 )
    call TriggerSleepAction( TimerGetRemaining(udg_GranadeTimer) )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( GetUnitLoc(udg_unit), "Abilities\\Spells\\Orc\\WarStomp\\WarStompCaster.mdl" )
    call UnitDamagePointLoc( GetTriggerUnit(), 0, 300.00, GetUnitLoc(udg_unit), ( 25.00 + ( 50.00 * I2R(GetUnitAbilityLevelSwapped('A001', GetTriggerUnit())) ) ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE )
    call PauseUnitBJ( true, udg_unit )
    call TriggerSleepAction( 1.00 )
    call PauseUnitBJ( false, udg_unit )
    set e = udg_se
    call PolledWait( 3.00 )
    set  udg_se = e
    call DestroyEffect( GetLastCreatedEffectBJ() )
endfunction

//===========================================================================
function InitTrig_GranadeS takes nothing returns nothing
    set gg_trg_GranadeS = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_GranadeS, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_GranadeS, Condition( function Trig_GranadeS_Conditions ) )
    call TriggerAddAction( gg_trg_GranadeS, function Trig_GranadeS_Actions )
endfunction
[+] замечание от Nerevar: Используйте теги форматирования кода

Отредактировано Nerevar, 31.05.2013 в 23:27.
Старый 31.05.2013, 17:29
youtube
сктыщь
offline
Опыт: 8,025
Активность:
юзай таймер, а не вейты
Старый 31.05.2013, 17:43
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
и зачем этот конверт тупой из гуи? да и без форматирования? хотите делать хорошо и коротко - выкиньте гуи
Старый 31.05.2013, 17:45
Scud123

offline
Опыт: 72
Активность:
Hate, я конвертировал для тех кто шарит в джасе, если нужно могу залить скрин триггера
youtube, я юзал вейт через таймер, с твоих слов я понял что ты имеешь ввиду в 2 тирггера, где во втором условие - Таймер истек?
Старый 31.05.2013, 22:58
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
для тех кто шарит в жассе это помойка, и после того как увидишь такое из глаз течет кровь.
Старый 31.05.2013, 23:19
Scud123

offline
Опыт: 72
Активность:
Hate, ОМГ, я не шарю в нем и мне не важно что оно для тебя значит, я всего лишь попросил помощи, если тебе кроме чуши не по теме нечего сказать, то пожалуйста не засоряй форум
Старый 01.06.2013, 01:16
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
не шарите - не выкладывайте. все просто. по теме я уже сказал.
Старый 01.06.2013, 01:32
MegaBlax

offline
Опыт: 2,352
Активность:
Эмм... Триггер просто бред, смотреть страшно.
Старый 01.06.2013, 08:27
Scud123

offline
Опыт: 72
Активность:
Hate:
не шарите - не выкладывайте. все просто. по теме я уже сказал.
обычно выкладывают, потому что не шарят, а по теме только youtube один написал, могу сформулировать иначе (возможно уже не по теме) - помогите сделать триггерный скил на гуи/джасс, геой бросает гранату в противника, которая через n-лвл способности сек. взрывается и наносит n+50*лвл способности ед. урона, при этом анимация броска - "бросить камень" с другой текстурой, все это я сделал сам, но получился огромный триггер с вейтами, если кроме "ужасный триггер" или т.п. никакой помощи, то пожалуйста не пишите лучше ничего, если желаете помочь, то очень буду благодарен, могу скинуть сам триггер на гуи скринами либо прикрепить карту со скилом, если кто желает помочь
Старый 01.06.2013, 12:41
Goodie

offline
Опыт: 2,825
Активность:
либо прикрепить карту со скилом
Кабриолет купить, пиццу привезти домой, уложить в постель...мхм
Мы помогаем только, а не делаем.

Ты сказал, что у тебя огроомный триггер. Гдето триггеров 10?. Если это гуи, то ничем помочь не могу насчет сокращения кода.
Максимум триггеров на эту способность - два триггера в гуи если
1 триг- каст
2 триг- полет и время истекающее
при этом анимация броска - "бросить камень" с другой текстурой,
как это понять? Анимация броска с текстурой? (оО) Типа баганный спелл? :D (текстура летит)
Либо сделай так...
Юзаешь молот бурь, отслеживаешь таймером бафф(0.10 сек заддержка). Если есть, то на сколько тебе надо секунд ждешь (в другом триггере где отслеживается бафф переменную отнимай по 0.10) и делаешь взрыв
Ну там через boolean сто пудов будет...короче гемор
Вывод такой. Пиши на джасс

Отредактировано Goodie, 01.06.2013 в 18:56.
Старый 01.06.2013, 18:49
Scud123

offline
Опыт: 72
Активность:
у меня 4 триггера на гуи на каждый уровень скила (можно сделать и 1 триггер без проблем, но триггер выходит длинный), по поводу анимации, то анимация скила "бросить камень", но бросает что-то типо ракеты. По сути у меня триггер готовый и робочий, но я хочу сделать его коротким и без утечек. Если мне кто-то поможет на джасс написать, будет супер, т.к. я на джасс не шарю, а только осваиваю
Старый 03.06.2013, 00:52
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
дык вы выкладывайте попытки написания на жассе, и описывайте что не получилось.
Старый 03.06.2013, 00:59
Goodie

offline
Опыт: 2,825
Активность:
Scud123, Пиши в лс. потыкаю, помогу, пока время есть
Старый 03.06.2013, 12:37
Scud123

offline
Опыт: 72
Активность:
Hate, все что я знаю о джассе вычитино из статей, а в практике 0 и даже не знаю с чего начать, как писать на нем, что писать
Старый 03.06.2013, 17:47
Ответ

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

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

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

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



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