Вопрос следующий.
Имеются визуальный эффекты, под них необходимо сделать заклинание и заскриптить его.
Визуальная часть состоит из трех моделей - эффект каста (на руках мага), снаряд, взрыв на цели. Первые две модели прописываются прямо в описании заклинания (spells.2da), а взрыв - в файле visualeffects.2da и затем вызывается из скрипта. Выглядит это примерно так:
Neverwinter Script
effect eExplode = EffectVisualEffect(VFX_MY_NEW);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eExplode, oTarget);
Новый эффект - VFX_MY_NEW, корректно прописан в visualeffects.2da и закинут в хак, подключенный к модулю, но. Компилятор отказывается собирать скрипт. Как раз по причине этого эффекта.
Если взять любой из стандартных эффектов - все соберется. Новый - никак, неопознанная переменная. Причина этого явления, очевидно, лежит в том, что тулсет запрашивает список констант эффектов
из ресурсов игры, игнорируя оверрайд и хаки.
Подумав, я наметил три общих решения ситуации.
1)Выполнить условия компилятора.
Как вариант, для этого надо занести обновленный visualeffects.2da напрямую в .bif архив игры. Минус этого способа очевиден.
2)Заставить компилятор отказаться от его условий.
Здесь предусматривается обход компиляторской проверки. Как вариант, вмешательство в файл тулсета и написание соответствующего патча, минус этого способа в том, что реализовать его знаний у меня явно не хватает.
3)Запросить визуальный эффект другим способом.
Константы визуальных эффектов - это ID целочисленного типа, за которым закрепленно определенное слово. То есть, вместо константы можно напрямую запросить эффект по его номеру. Теоретически. На практике это сделать не удается, хотя запросив константу через IntToString() мы получаем то же число, соответствующее 2da.
Какие будут предложения?