![]() CATEGORIES: BiologyChemistryConstructionCultureEcologyEconomyElectronicsFinanceGeographyHistoryInformaticsLawMathematicsMechanicsMedicineOtherPedagogyPhilosophyPhysicsPolicyPsychologySociologySportTourism |
Get/Mod/Set ИИ для Боя: Fight, Flee, Alarm 3 pageBegin TribunalMain
; проверка на телепортацию if ( GetPCCell "Sotha Sil," == 1 ) DisableTeleporting else EnableTeleporting endif
; проверка на левитацию if ( GetPCCell "Sotha Sil," == 1 ) DisableLevitation elseif ( GetPCCell "Mournhold" == 1 ) DisableLevitation else EnableLevitation ; Потосу можно телепортироваться везде кроме части Морнхолда endif
end Вот не тестировавшееся предложение для исправления. Последняя версия выглядит так: Begin TribunalMain short disablestate ;по умолчанию, включить телепортауию и левитацию ;проверять только интерьеры ;если состояие изменилось end
Примечание: DinkumThinkum предложил следующий способ запрета телепортации. Проверяется, находится ли игрок в определенной ячейке. Если нет, то его скриптом телепортируют, допустим, в начало мода. Begin DT_Test_BalmoraTrap If ( GetPCCell, "Balmora" == 1 ) MessageBox "Давай назад в Балмору!" End DT_Test_BalmoraTrap Ограничение левитации [no fix] EnableLevitation [no fix] DisableLevitation
Эти функции используются для разрешения и запрещения левитации. Когда вызывается DisableLevitation, все существующие эффекты левитации отменяются. Когда игрок пытается скастоваться заклинание с эффектом Левитации, когда она отключена, будет показано следующие сообщение, хранящееся в sLevitateDisabled, - «Levitation magic does not work here».
Примеры: Это скрипт установлен на объект в комнате с выключенной левитацией.
Begin clampstone
short turnedoff short gavemessage
if ( turnedoff == 0 ) DisableLevitation if ( gavemessage == 0 ) set gavemessage to 1 MessageBox "Странный камень на крыше не дает левитеировать." Endif else EnableLevitation if ( gavemessage == 1 ) set gavemessage to 0 MessageBox "Камень отключен. Теперь можно левитировать." Endif endif
if ( OnActivate == 1 ) if ( turnedoff == 0 ) set turnedoff to 1 else set turnedoff to 0 endif endif
end
Этот скрипт на двери, ведущий из комнаты.
Begin enable_lev_on_exit
if ( OnActivate == 1 ) MessageBox "Покидаете комнату с камнем..." EnableLevitation Activate endif
end Проверка и работа с душами и камнями душ 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
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 "You У вас не камней душ с Золотыми Святошами." endif endif
AddSoulGem"creature ID", "soulgem ID"
AddSoulGem "atronach_storm", Misc_Soulgem_Grand
AddSoulGem добавляет камень душ указанного типа и с указанной душой в инвентарь игрока. Не уверен, что здесь можно указать количество камней.
DropSoulgem, "Creature ID" DropSoulGem "atronach_storm"
Я это еще не тестировал – думаю, это заставит вызывающего актера бросить камень, содержащий указанную душу.
[no fix] OnPCSoulGemUse (is short variable) Объект – это камень душ и он был использован или для перезарядки или для создания предмета.
Камни душ в игре имеют следующие ID: ID камней душ: Misc_SoulGem_Azura Misc_SoulGem_Grand Misc_SoulGem_Greater Misc_SoulGem_Common Misc_SoulGem_Lesser Misc_SoulGem_Petty
Эта функция не использовалась в оригинальной игре. Добавление и удаление заклинаний и проклятий AddSpell, "SpellID" RemoveSpell, "SpellID"
"Actor_ID" -> AddSpell "Absorb Speed"
Функция AddSpell добавит заклинание вызывающему объекту. Это означает следующее: обычные заклинания добавятся в список заклинаний игрока. Проклятья, болезни и т.д. будут наложены на вызывающий объект. То же верно для функции RemoveSpell: обычные заклинания удаляться из списка, проклятья и болезни уберутся как эффект. Примечание: Нельзя удалять расовые характеристики этой функцией (информация с форумов). Кастование заклинаний
Cast, SpellID, "TargetID"
Object_ID -> Cast, "flame", Player
Функция Cast заставляет вызывающий объект кастовать заклинание "SpellID" в цель "TargetID", и на цель будут влиять положительные или отрицательные эффекты заклинания.
Примечание: Считается, что функция Cast работает только для игрока. По крайней мере, с Трибуналом (не уверен насчет ранних версий), вы можете использовать Cast для того, чтобы «метать» заклинание с активатора на актера – возможно, другие комбинации также работают.
Пример: Функция Cast может использоваться для ловушек, как в следующем скрипте, прикрепленном к Контейнеру. Учтите, что здесь есть однократное условие, так что эффект не будет накладываться на игрока постоянно.
Следующий пример использует функцию AddSpell:
Добавленное заклинание — это самодельное проклятье, поражающее огнем на одно очко здоровья каждую секунду. Заметьте, что здесь снова есть условие do once, встроенное в скрипт. Если условия do once не будет, то это может привести к краху игры! Также, похоже, что существо, убитое заклинанием типа проклятие, добавит ко всем таким существам это проклятие. Этого можно избежать, вызывая RemoveSpell в секции OnDeath[38]. (Информация с форумов / Argent)
Некоторая информация по различным типам заклинаний: Характеристика, отнимающая здоровье, повреждает МАКСИМАЛЬНОЕ здоровье, а Проклятие нет. Это, похоже, не относится к увеличивающим и уменьшающим эффектам (Информация с форумов / ManaUser). Date: 2015-12-17; view: 917
|