MSFD Управление и тестирование эффектов заклинаний
GetEffect, Effect_ID (returns short)
If ( GetEffect, sEffectRestoreHealth == 1)
Эта функция возвращает ИСТИНУ, если вызывающий актер «поражен» эффектом.
Внимание: эффекты, это не заклинания, а их составная часть!
В Приложении вы найдете список всех эффектов.
RemoveEffects, Effect_ID#_enum
Player -> RemoveEffects, 75
Удаляет все заклинания с актера, которые включают этот Эффект.
Для этой функции вам нужен номер ID-эффекта, в отличие от функции GetEffect, где вам нужен сам ID-эффекта (Браво, Bethesda!).
И то, и то вы найдете в Приложении.
Важно: Эффекты, это не заклинания, а их составные элементы.
Пример: Это демонстрационный скрипт, позволяющий вам проверить, есть ли заклинание у игрока в списке, активно ли оно на игроке, действует ли оно на игрока эффектом и тогда убирает этот эффект. Запустите его, набрав в консоли "StartScript Magicscript".
Begin Magictest
short var_1
short var_2
short var_3
if ( Player->GetSpell, "hearth heal" )
set var_1 to 1
else
set var_1 to 0
endif
if ( Player->GetSpellEffects, "hearth heal" )
set var_2 to 1
else
set var_2 to 0
endif
if ( Player->GetEffect, sEffectRestoreHealth )
Player->RemoveEffects, 75 ; удалите эту строку, чтобы увидеть, что происходит
; обычно
set var_3 to 1
else
set var_3 to 0
endif
MessageBox "GetSpell: %.0f GetSpellEffects, %.0f GetEffect: %.0f ", var_1, var_2, var_3
End