×
Меню
Индекс

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