import Bladex
import Auras
wpn=Bladex.CreateEntity('Sword_1','Gladius', 0,0,0, 'Weapon'
# создаем меч
aura=Auras.MakeAura (wpn.Name,-1,(80, 1, 1, 0, 0, 0), (),(),(2, 0.8, 0.1, 0.1, 0.2, 0.0, 0.4, 0.0, 0.0, 0.0, 0.6)) # Наделяем его аурой как у QueenSword
У этой функции 8 аргументов, рассмотрим их:
MakeAura(EntityName, time2live, AuraParams, AuraGradient0=(), AuraGradient1=(), AuraGradient2=(), Active=1, XtraParam=())
EntityName - Параметр Name объекта, к которому нужно прикрепить ауру
time2live - Время жизни ауры в секундах. -1 чтобы аура была вечной.
AuraParams - Список из шести элементов (Size, Alpha, ColorIntensity, HideFrontFaces, HideBackFaces, AdditiveMode)
__________ Size - Толщина ауры, видимо в миллиметрах
__________ Alpha - Альфа (степень прозрачности) ауры. Значения от 0.0 (невидимая) до 1.0 (непрозрачная)
__________ ColorIntensity - Думаю понятно. Значения от 0.0 до 2.0 (хз почему 2.0, а не 1.0, но это так)
__________ HideFrontFaces - Значения 0 либо 1. При значении 1 скрывает внешние полигоны ауры
__________ HideBackFaces - Тоже самое для внутренних полигонов
__________ AdditiveMode - Значения 0 либо 1. При значении 1 аура приобретает дополнительную неравномерную яркость.
AuraGradient0,AuraGradient1,AuraGradient2 - Три однотипных списка параметров. В большинстве аур игры (а может и во всех, не проверял) используется только последний список, а первые два оставляются пустыми. (Margin, r1, g1, b1, a1, InitDistance, r2, g2, b2, a2, EndDistance)
__________ Margin - Номер градиента, для последнего это 2
__________ r1, g1, b1 - Компоненты цвета первого слоя, значения от 0.0 до 2.0
__________ a1 - Альфа первого слоя
__________ InitDistance - Расстояние от модели объекта до нижней границы ауры. Видимо в долях параметра Size. Если > 0.0, то между аурой и моделью есть зазор. Значение должно быть не больше чем EndDistance
__________ r2, g2, b2 - Компоненты цвета второго слоя
__________ a2 - Альфа второго слоя
__________ EndDistance - Расстояние до верхней границы ауры. Видимо в долях параметра Size. Если задать >1.0, то аура будет толще, чем задано параметром Size.
# Использование двух слоёв не является обязательным. Можно один из них задать по нулям. Но с двумя гораздо красивее.
Active - Будет ли аура активна сразу после создания. 1 - да. Оставляем по умолчанию
XtraParam - Даёт возможность прикрепить вызов функции либо другую операцию к моменту создания ауры. В случае перманентной ауры оружия оставляем по умолчанию.
Если аура должна изменяться со временем, то тут нужно обратиться к объекту-ауре, который нам возвратила функция Auras.MakeAura
Метод AddEvent переназначает параметры ауры в определённый момент времени, например
aura=Auras.MakeAura (wpn.Name,-1,(80, 1, 1, 0, 0, 0), (),(),(2, 0.8, 0.1, 0.1, 0.2, 0.0, 0.4, 0.0, 0.0, 0.0, 0.6)) # Создаём красную ауру
aura.Data.AddEvent(Bladex.GetTime()+4.0,(80, 1, 1, 0, 0, 0), (),(),(2, 0.0, 0.0, 0.8, 0.2, 0.0, 0.0, 0.0, 0.4, 0.0, 0.6)) # Через 4 секуны она станет синей
aura.Data.AddEvent(Bladex.GetTime()+6.0,(280, 1, 1, 0, 0, 0), (),(),(2, 0.0, 0.0, 0.8, 0.2, 0.0, 0.0, 0.0, 0.4, 0.0, 0.6)) # а ещё через 2 секунды станет толще
Метод SetAuraActive позволяет включать/выключать ауру, например
aura.SetAuraActive(0) # выключаем
aura.SetAuraActive(1) # включаем обратно