Как лучше сделать одноразовый активатор, который после опр. события активирует 4 турели и отключится навсегда, ибо не нужен.
С таким скриптом подойдет?
scn 1TimeTurretActivatorScript
float fTimer
Begin GameMode
if SomeRef.GetOpenState == 1
if fTimer < 2
set fTimer to fTimer + GetSecondsPassed
else
Turret1Ref.enable
Turret2Ref.enable
Turret3Ref.enable
Turret4Ref.enable
disable
markfordelete
EndIf
EndIf
End
Скрипт вешаем как объектный на кубик-активатор, висящий за стенкой. По идее, после отработки скрипта он должен отключиться и его скрипт остановиться. Я прав?
Привет. А тут есть кто живой? Галко? Юпитер? Ипатов? Или слишком давно дело было? Ау!
Ну, на всякий случай...
Комп слабый, пытаюсь вспомнить Третий Фолл. Так что вопросы дурацкие - я не помню ничаво.
Как повесить на актора (player) постоянный эффект? Ну, у него же либо "no magnitude" (сразу и всё) либо длительность? А если надо, чтобы addSpell - и всё, актер навеки под этим эффектом?
"Костыль" я придумал: поставить магнитуду побольше, а в ScriptEffectFinish поставить addSpell. Но какой-то он неуклюжий, костыль-то, вдруг есть штатный метод?
CastImmediateOnSelf можно и на 3650 игровых дней поставить, что практически можно назвать вечностью whatsup
Привет.
Я слышу голос! Человеческий голос!
Так магнитуда ставится же в методе, а в окошке при создании эффекта, нет?
Я, собственно, посмотрел, как у других реализовано - и сделал с помощью перка. Как работает - не понимаю (но работает): у базового эффекта галка "No magnitude" НЕ стоит, при этом длительность - 0, но ScriptEffectUpdate исправно вызывается... Какая-то перковая магия, видимо...
Вот getSecondsPassed. Вроде, все понятно: каждую секунду прирастает на 1. А у меня, кажется, прирастает на 0.01.
Вот текстовый скрипт:
begin onActivate player
set sec to (sec + getSecondsPassed)
showMessage myMsg sec
end
Показывает 0.01, 0.05 и т.д. Если добавить множитель 100 (getSecondsPassed * 100) - будет показывать по единицам, да. Просто ни в каких руководствах про стократное увеличение не сказано...
Вроде, актор-эффекты вида Ability, Addiction и Desease постоянны. https://geckwiki.com/index.php?title=Actor_Effect
Цитата igelschmigel
каждую секунду прирастает на 1. А у меня, кажется, прирастает на 0.01
Дык всё верно, так и должно быть. Функция выдаёт время, прошедшее с предыдущего её, этой функции, срабатывания. За каждый оборот скрипта переменная прирастает на то время, которое прошло с момента прошлого срабатывания функции, то есть за сколько времени этот оборот случился. Объектные скрипты работают раз за фрейм (кадр), десятки раз в секунду, как раз и выходят сотые доли. https://geckwiki.com/index.php?title=GetSecondsPassed