MSFD Работа с камнями душ
AddSoulGem "creature ID", "soulgem ID"
AddSoulGem "atronach_storm", Misc_Soulgem_Grand
AddSoulGem добавляет камень душ указанного типа и с указанной душой в инвентарь игрока.
Не уверен, что здесь можно указать количество камней.
RemoveSoulgem, "CreatureID", number_enum
If ( Actor->RemoveSoulGem, "golden saint", 1 )
Удаляет камень с указанной душой из инвентаря игрока.
Пример: это дополнительная часть скрипта RemoveStrongSoul для примера, описанного выше:
if ( counter > 0 )
if ( Player->HasSoulGem "atronach_storm" > 0 )
Player->RemoveSoulGem "atronach_storm" 1
Set counter to ( counter - 1 )
endif
endif
Заметьте, что у игрока можно таким образом отнять Звезду Азуры. Вот решение:
short StarCount ;не может быть больше одной.
if ( OnActivate )
if ( Player->HasSoulGem "Golden Saint" > 0 )
set StarCount to ( Player->GetItemCount "Misc_Soulgem_Azura" )
Player->RemoveSoulGem "Golden Saint" 1
if ( ( Player->GetItemCount "Misc_Soulgem_Azura" ) < StarCount )
Player->AddItem "Misc_Soulgem_Azura" 1
endif
Player->AddItem Gold_001, 10000
MessageBox "Спасибо, заходите еще."
else
MessageBox "У вас не камней душ с Золотыми Святошами."
endif
endif
HasSoulgem, "CreatureID"
If ( Actor->HasSoulGem, "golden saint" )
Эта функция проверяет, есть ли у игрока камень душ, содержащий указанную душу.
Маленькая полезная функция, которая может дать какое-нибудь интересное задание или новую область использования камней душ.
Пример:
Это часть скрипта StrongSoulCheck:
if ( Player->HasSoulGem "atronach_storm" > 1 )
Set counter to ( counter + 2 )
elseif ( Player->HasSoulGem "atronach_storm" > 0 )
Set counter to ( counter + 1 )
endif
DropSoulgem, "Creature ID"
DropSoulGem "atronach_storm"
Я это еще не тестировал – думаю, это заставит вызывающего актера бросить камень, содержащий указанную душу.