Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Город Мастеров _ Neverwinter Nights Aurora Toolset _ Ураганная атака

Автор: Existor Jul 27 2006, 04:56

Собственно, нужна помощь опытных скриптеров... Ничего по этому вопросу я на форуме не нашел...
Сначала опишу ситуацию.
Нужно, чтобы чар выполнял ураганную атаку с определенным шансом хоть под каждый удар в раунде.
void DoWhirlwindAttack(
int bDisplayFeedback = TRUE,
int bImproved = FALSE
); позволяет хоть каждую атаку в раунде делать ураганной, НО. После того, как проходит серия ураганных атак, накапливается "время затупления", равное раунд(6 сек) * кол-во ураганных атак-1, это примерно. Причем, просто отбежать и пробегать это время нельзя - это время проходит только в стойке перед противником, когда чар тупо стоит и ничего не делает. Когда это время заканчивается, чар продолжает нормальные атаки.
Собственно, это время нужно нейтрализовать. Еще лучше было бы сделать так, чтобы исполняя ураганную атаку, чар продолжал свои нормальные(т.е. хотя анимация УА еще не закончилась, чар должен проводить регулярные атаки). Скрипта УА я не нашел...
Буду благодарен за советы и предложения...

Автор: Zirrex Jul 27 2006, 08:56

Ищи скрипт под этим именем файла "x2_s2_whirl". Можно попробовать после завершения Ураганной атаки затереть все действия персонажу, но не просто действия, а лишить его режима боя. Т.е. "ClearAllActions(TRUE)". Игроку придется лишь после завершения еще раз указать на врага, что его надо атаковать.

Автор: Existor Jul 27 2006, 12:01

Этот, с позволения сказать, скрипт, я нашел...
Вот он.

NSS
void main()
{
    int bImproved = (GetSpellId() == 645);// improved whirlwind
    /* Play random battle cry */
    int nSwitch = d10();
    switch (nSwitch)
    {
        case 1: PlayVoiceChat(VOICE_CHAT_BATTLECRY1); break;
        case 2: PlayVoiceChat(VOICE_CHAT_BATTLECRY2); break;
        case 3: PlayVoiceChat(VOICE_CHAT_BATTLECRY3); break;
    }
    // * GZ, Sept 09, 2003 - Added dust cloud to improved whirlwind
    if (bImproved)
    {
      effect eVis = EffectVisualEffect(460);
      DelayCommand(1.0f,ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,OBJECT_SELF));
    }
    DoWhirlwindAttack(TRUE,bImproved);
    // * make me resume combat
}

Все попытки очистки действий ни к чему не привели, время копится, и это движковое...
Складывается такое впечатление, что УА это есть нечто такое движковое, что не поменять и не посмотреть... Как вариант можно попробовать написать аналог ураганной атаки с нуля, да гемор это... Хотя, видимо, так и придется делать...
Может, подправить 2даху, чтобы убрать эту задержку, сделать ураганную атаку мгновенной, не требующей времени на каст, которое теоретически может копится и стековаться? Кто-нибудь когда-нибудь работал в подобном направлении?
К своему стыду, я даже не знаю, что дает улучшенная ураганная атака, пойду проверю...
Увеличивает радиус удара в 2 раза и создает пыльное облако под ногами. Мда.
Но нет худа без добра... Зато я вспомнил про круговой удар, нужно покопать с ним.

Автор: 9988 Jul 29 2006, 23:11

spells.2da -> 561 строка, столбец CastTime (определяющий время в миллисекундах, затрачиваемое на вызов спеллов, спеллайк фитов).
Я не сильно понял в чем проблема с дефолтными настройками фита, но если не поможет, то тогда только свой фит делать, скорее всего.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)