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

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

Ответ
 
Issidda
Начинающий Мапер
offline
Опыт: 1,871
Активность:
Урон вокруг цели на GUI
Возник вопрос: каким образом нанести целям вокруг юнита урон (допустим в радиусе 150) равным колличество интеллекта героя разделённого на 5? И возможно ли это сделать на GUI?
Старый 23.12.2012, 19:57
Romeno

offline
Опыт: 3,167
Активность:
Можно, если Вейтов нет ... но будет лучше используя джасс.
Пикаешь всех юнитов вокруг цели, делаешь нужные проверки, заносишь подходящих в глобальный массив групп и используя Боевая Единица - Damage Target наносишь всем урон, получить ителлект, разделить на 5 всё можно сделать в ГУИ. Вот смотри соседнюю тему на тему групп
Старый 23.12.2012, 20:10
Issidda
Начинающий Мапер
offline
Опыт: 1,871
Активность:
Romeno, Можешь скинуть ссылочку на определение что такое Вейт?
Старый 23.12.2012, 20:17
youtube
сктыщь
offline
Опыт: 8,025
Активность:
ну вот как то так
ну плюс еще локалки против утечек, и будет норм
Старый 23.12.2012, 20:21
Киря

offline
Опыт: 769
Активность:
scope Spell initializer Event

include "cj_types.j"

define
{
    idSpell = 'A00Z'
    AOE = 300
}

private bool GFilter(unit u, unit f)
{
    return ( IsPlayerEnemy(GetOwningPlayer(u), GetOwningPlayer(f)) and (GetUnitState(f, UNIT_STATE_LIFE) > 0.405) )
}

private real getDamage(unit u)
{
    return I2R( GetHeroInt(u, true) / 5 )
}

private bool Conditions()
{
    return GetSpellAbilityId() == idSpell
}

private void Actions()
{
    unit u = GetSpellAbilityUnit()
    group g = CreateGroup()
    unit f
    
    GroupEnumUnitsInRange(g, GetUnitX(u), GetUnitY(u), AOE, null)
    loop
    {
        f = FirstOfGroup(g)
        exitwhen (f == null)
        if ( GFilter(u, f) )
        {
            UnitDamageTarget(u, f, getDamage(u), false, false, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
        }
        GroupRemoveUnit(g, f)
    }
    
    DestroyGroup(g)
    u = null
    g = null
    f = null
}

//===========================================================================
private void Event()
{
    gg_trg_spell = CreateTrigger(  )
    TriggerRegisterAnyUnitEventBJ( gg_trg_spell, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    TriggerAddCondition( gg_trg_spell, Condition( function Conditions ) )
    TriggerAddAction( gg_trg_spell, function Actions )
}

endscope
Issidda, Вэйт - Wait - Ждать - call TriggerSleepAction(real duration)
Старый 23.12.2012, 20:39
Issidda
Начинающий Мапер
offline
Опыт: 1,871
Активность:
Спасибо за ответы =)! youtube, скинь пожалуйста сделаный триггер сюда разберу по полочкам =)
Старый 23.12.2012, 21:53
youtube
сктыщь
offline
Опыт: 8,025
Активность:
Киря, дурачок? мне кажется, или автор написал, что именно на ГУИ
показал он свои знания называется...
Прикрепленные файлы
Тип файла: w3x EASY.w3x (12.0 Кбайт, 6 просмотров )

Отредактировано youtube, 24.12.2012 в 12:03.
Старый 24.12.2012, 11:50
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,476
Активность:
youtube, про
((код jass
set bj_wantDestroyGroup = true
))
надеюсь вы упомнить не забыли, а так же про удаление локейшенов?
quq_CCCP добавил:
Киря, далеко не лутьший пример на cjass, темболее плодить и удалять группы не лучшая идея, не говоря о цикле, проще ForGroup() и пору глобалок...
Старый 24.12.2012, 12:34
Issidda
Начинающий Мапер
offline
Опыт: 1,871
Активность:
Согласен что сделать все на jass было бы лучше и качественнее, но пока я плохо разбераюсь в jass. Всё же спасибо за советы тему можно закрыть =)
Старый 24.12.2012, 13:23
Киря

offline
Опыт: 769
Активность:
quq_CCCP, интересно, а если спелл МУИ, ты тоже будешь глобалки создавать?
youtube, был пост, что на джассе лучше, я показал пример. В чем проблема твоя?
Старый 24.12.2012, 15:17
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,476
Активность:
Киря, да, как раз плюнуть, на 12 игроков в переодике для ауры, работает как часы, поэтому я написал что твой cJass пример, не лучший пример для подражания.
Старый 25.12.2012, 02:46
Киря

offline
Опыт: 769
Активность:
quq_CCCP, ну.) может так.
мне удобнее использовать такой метод.))
Старый 25.12.2012, 02:50
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,476
Активность:
Киря, я конечно понимаю что так удобнее и глобалок не надо объявлять, но удобно это ровно 1 раз, в какойнибуть наработке, или единственной функции с группой...
Но когда дйёствий с группами много то не плодят локальные группы как ты а используют 1 глобальную группу, и 2 глобальные переменные типа Юнит (источник урона) и реальная (кол-во урона по цели) кстати мало кто знает что для этих целей прекрасно подходят BJ глобалки близзов, типа bj_lastCreatedUnit, работают он не быстрее обычных глобалок, но их не нужно объявлять в скрипте...
Так что приводи хотя бы 2 примера и объясняй почему так, он же нуб, ему фиолетово, простой бы jass освоить...
Старый 25.12.2012, 05:28
Ответ

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

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

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

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



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