MSFD Запрет возможности надеть предмет
[no fix] PCSkipEquip (локальная переменная типа short)
Short PCSkipEquip
Set PcSkipEquip to 1
Задайте значение 1, чтобы пропустить надевание предмета.
Подходит для всплывающих сообщений об опечатанной книге и прочего.
Для расширенного примера смотрите скрипт SealedTreasuryReport в редакторе.
Также может быть использовано на одежде как триггер скриптов связанных с OnPCEquip.
Примечание: Надевание книги в инвентаре устанавливает эту переменную в 1 (вместо установки OnPCEquip, как надо).
Есть баг, связанный с удвоением предметов, имеющий функцию SkipEquip.
Я его видел и, используя горячие клавиши, и, надевая предмет через инвентарь, когда используется OnPCEquip.
Чтобы избежать этого, добавляйте и удаляйте пробный предмет (из той секции скрипта, где проверяется OnPCEquip).
Не удаляйте сам предмет со скриптом, игра вылетит (см RemoveItem).
Если у вас много предметов со SkipEquip, используйте отдельный скрипт, вызывая его через StartScript:
Begin doubling_fix
Player -> Additem "Item ID", 1
Player -> RemoveItem "Item ID", 1
StopScript doubling_fix
End
Пример: Вот короткий скрипт, который я сделал для мода с оборотнями, он делает предмет не надеваемым при определенных условиях:
Begin non_equippable
; не позволяет игроку-оборотню надевать предметы охотника на оборотней по причине баланса
; если игрок надел их до того, как стал оборотнем, он будет носить их, пока не снимет сам.
; но после не сможет надеть их. Так что после первой трансформации он не сможет надеть их снова
short PCSkipEquip
short OnPCEquip
if ( PCWerewolf != 1); если игрок не оборотень, он может использовать эту броню
set PCSkipEquip to 0
return
else
set PCSkipEquip to 1
endif
if ( OnPCEquip == 1 )
MessageBox " Этот предмет зачарован заклинанием, отгоняющим оборотня. Ты не можешь надеть его!"
set OnPCEquip to 0
endif
End