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

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

Ответ
 
I.Todd

offline
Опыт: 12,046
Активность:
Народ.. вы извращенцы.... Книги вам в руки... Делаешь нужные книги в РО и все!
Старый 04.08.2008, 10:27
Killer574
Временно присутствующий.
offline
Опыт: 3,373
Активность:
Причем тут книги? Нужно давать хп на время.
Старый 04.08.2008, 11:30
I.Todd

offline
Опыт: 12,046
Активность:
ну тогда Аватар горного короля ))
Старый 04.08.2008, 11:50
Killer574
Временно присутствующий.
offline
Опыт: 3,373
Активность:
Тебе бы понравилось что ты идешь, на тебя союзник кидает бафф (который кстати может быть не один), и тут раз аватар у тебя врубается? Меня бы лично это бесило.
Старый 04.08.2008, 11:55
alexkill

offline
Опыт: 18,872
Активность:
Цитата:
Сообщение от Jaffa
Вообщем мне нужно както добавить триггерно к макс хп. юнита еще +500 хп, как бы чтобы это было баффом, чтобы у него +500 хп было 20 секунд, и тоже самое с мп, как это зделать?


alexkill добавил:
Цитата:
Сообщение от Flareon
Добавляй/забирай предметную абилку 'Увеличение запаса здоровья(маны)'.


первая половина ответа.

alexkill добавил:
Цитата:
Сообщение от Jaffa
а(, а с атакой, скоростью атаки, все тоже самое?


То же самое. Для увеличения всего есть соотвествующая абила. + Создать дамми-бафф, висящий 20 секунд.

Первый триггер:
Код:
Событие - Юнит приводит способность в действие
Условие - (Ability being cast) равно (Бафф-пустышка)
Действия - Боевая единица - Add ability (...)
                запускаем таймер на N+0.01 секунд


Второй триггер:

Код:
Событие - Время таймера истекло
Действия - 
If UNIT HAS BUFF (...) then DoNothing() else Боевая единица - Remove ability (...) endif


вэйты втопку.

Собственно - и все. К чему искать альтернативные (читай: запутанные) пути решения?

Отредактировано alexkill, 04.08.2008 в 12:29.
Старый 04.08.2008, 12:06
Killer574
Временно присутствующий.
offline
Опыт: 3,373
Активность:
alexkill, как говорили выше если делать на неск-ко юнитов, то удалится последний (ну это 2 строки CS), но есть похуже трабла, если за это время на юнита кинут еще один этот бафф, то он удалится по прошествию предыдущего таймера, хотя должен обновлятся.
Старый 04.08.2008, 12:19
alexkill

offline
Опыт: 18,872
Активность:
И это ты называешь проблемой? Я обновил мой пост.
Старый 04.08.2008, 12:29
Killer574
Временно присутствующий.
offline
Опыт: 3,373
Активность:
Уахахаха, после того как 3 дня не спишь в голову лезет все подряд, кроме наипростейшего решения, кстати в этом случае нужно будет делать либо массивы для того чтобы убрать именно с этого юнита, хотя мб я опять не вижу более легкого решения не используя элементы джасса.
Старый 04.08.2008, 12:50
alexkill

offline
Опыт: 18,872
Активность:
Без жасса никак не обойтись. Тем более, какой смысл его обходить, если кулдаун спелла, как я понял, мал.

Не знаю, че там надо автору (гуи или жасс), но вот реализация спелла в коде:
Код:
function B_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A001' 
endfunction

function H2I takes handle h returns integer
    return h
    return 0
endfunction

function I2U takes integer i returns unit
 return i
 return null
endfunction

function get_object_iparam takes handle h, string key returns integer
 return GetStoredInteger(udg_cache, I2S(H2I(h)), key)
endfunction
function set_object_iparam takes handle h, string key, integer val returns nothing
 call StoreInteger(udg_cache, I2S(H2I(h)), key, val)
endfunction

function flush_object takes handle h returns nothing
 call FlushStoredMission(udg_cache, I2S(H2I(h)))
endfunction

function Go takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local unit target = I2U(get_object_iparam(t,"target"))
       if GetUnitAbilityLevel(target,'B000')<1 then
         call UnitRemoveAbility( target, 'A002' )
         call DestroyTimer(t)
         call flush_object(t)
       else 
         call DestroyTimer(t)
         call flush_object(t)
       endif
    set t = null
    set target = null
endfunction

function B_Actions takes nothing returns nothing
    local timer t = CreateTimer()
    local unit target = GetSpellTargetUnit()
    local integer l = GetUnitAbilityLevel(GetSpellAbilityUnit(), 'A001' )
    call SetPlayerAbilityAvailable( GetOwningPlayer(GetSpellAbilityUnit()), 'A002', false )
    call UnitAddAbility( target, 'A002' )
    call SetUnitAbilityLevel(target, 'A002', l )
    call set_object_iparam(t,"target", H2I(target))
    call TimerStart(t,20.01,false, function Go)
    set t = null
    set target = null
endfunction

//===========================================================================
function InitTrig_BlessingJass takes nothing returns nothing
    set gg_trg_BlessingJass = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_BlessingJass, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_BlessingJass, Condition( function B_Conditions ) )
    call TriggerAddAction( gg_trg_BlessingJass, function B_Actions )
endfunction


'А001' - спелл-пустышка, дающий бафф.
'А001' - спелл, увеличивающий статы и т.п.
'В000' - собственно, бафф-пустышка.

Отредактировано alexkill, 04.08.2008 в 15:02.
Старый 04.08.2008, 12:56
Killer574
Временно присутствующий.
offline
Опыт: 3,373
Активность:
Об этом я и говорю, хотя автор не сказал гуи ему надо или жасс, подождем его ответа, а то развели дискуссию между собой ))
Старый 04.08.2008, 13:08
alexkill

offline
Опыт: 18,872
Активность:
Траблой похуже может быть снятие чар определенным воином, когда бафф наложен (чародеем, привратником ада и т.п.).
Но и это решимо. Додумайтесь сами, как. )
Старый 04.08.2008, 13:18
Jaffa

offline
Опыт: 7,282
Активность:
Лучше бы было на гуи((, в джассе я мало что понимаю, ну я понял без лагов, на гуи не получится?
Старый 04.08.2008, 13:22
vit
кааааррл
offline
Опыт: 3,586
Активность:
Jaffa, товарищ alexkill отлично обьяснил
Jaffa, скажи что тебе конкретно не понятно, я обьясню
Старый 04.08.2008, 13:29
Ответ

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

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

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

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



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