×
Меню
Индекс

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"
 
Я это еще не тестировал – думаю, это заставит вызывающего актера бросить камень, содержащий указанную душу.