Home Random Page


CATEGORIES:

BiologyChemistryConstructionCultureEcologyEconomyElectronicsFinanceGeographyHistoryInformaticsLawMathematicsMechanicsMedicineOtherPedagogyPhilosophyPhysicsPolicyPsychologySociologySportTourism






Get/Mod/Set ИИ для Боя: Fight, Flee, Alarm 4 page

Управление и тестирование заклинаний

GetSpell, "Spell_ID" (returns Boolean/short)

 

If ( Player -> GetSpell, "heal companion" == 1 )

 

Возвращает «истину», если у объекта есть Spell_ID в инвентаре. Тем не менее, это, похоже, работает не для всех типов заклинаний. Способности и другие заклинания, относящиеся к расе/знаку рождения, не регистрируются этой функцией, а только те, что располагаются в главной части окна заклинаний. Пример смотри ниже.

 

GetSpellEffects, "Spell_ID" (returns Boolean/short)

 

if ( Player -> GetSpellEffects, "flame" == 1 )

 

Возвращает «истину», если Spell_ID наложен на вызывающий объект[39]. Следующее может быть добавлено в скрипт "trap_script", обсуждавшийся в главе "Кастование заклинаний" выше:



 

if ( Player -> GetSpellEffects, "flame" == 1 )

MessageBox "Вас подожгли."

endif

 

Это любимая возможность добавлять новые эффекты ("spell effects"). Создается простенькое заклинание, дающее минимальный эффект, например поднимающее удачу на 1 пункт в секунду. Функция GetSpellEffects используется, чтобы определить, наложено ли заклинание на игрока, и скрипт берет на себя все остальное. Смотри пример ниже.

 

Управление и тестирование эффектов заклинаний

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

 

Тестирование болезней

GetBlightDisease (returns Boolean/short)

GetCommonDisease (returns Boolean/short)

 

If ( Actor -> GetBlightDisease == 1 )

 

Обе функции возвращают 1, если вызывающий актер поражен либо Моровой болезнью, либо обычной, иначе возвращают 0[40]. Они используются в скриптах болезни, которые дают больным или моровым животным их болезни:

 

Пример:

Begin diseaseBlackHeart

 

DontSaveObject

 

if ( CellChanged == 0 )

return

endif

 

if ( GetBlightDisease == 0 )

AddSpell "black-heart blight"

endif

 

End

 

Взрыв

ExplodeSpell“spellName”

 

ExplodeSpell "proj_trap_spell"

 

ExplodeSpell заставляет копию кастовать данное заклинание с дальностью касание на себя. Если при этом у заклинания есть зона поражение, то заклинание «взорвется». См TrapProjScript в секции Советов и Трюков.

Функции Get/Mod/Set для магии:

Большинство из этих функций применяются к определенным эффектам, которые можно получить от заклинаний. Эти эффекты можно сделать постоянными или изменить их. Часть функций использует значения от –100 до 100 (%), хотя и примут любое число, другие только 1 или 0. Так что можно сделать существо, снимающее 100% ResistBlight с Нереварина – хороший сюрприз для него?

 

Get/Mod/SetResistMagicka

Get/Mod/SetResistFire

Get/Mod/SetResistFrost

Get/Mod/SetResistShock

Get/Mod/SetResistDisease

Get/Mod/SetResistBlight

Get/Mod/SetResistCorprus

Get/Mod/SetResistPoison

Get/Mod/SetResistParalysis)

Get/Mod/SetChameleon

Get/Mod/SetResistNormalWeapons

Get/Mod/SetWaterBreathing

Установка в 1 позволяет дышать под водой.

Get/Mod/SetWaterWalking

Установка в 1 позволяет ходить по воде.

Get/Mod/SetSwimSpeed

Get/Mod/SetSuperJump

Это относится к эффектам Быстрый пловец и Прыгать, они обычно находятся в пределе 0-100, но могут принимать отрицательные значения и значения больше 100.

Get/Mod/SetFlying

Я нашел эту инфу на UESP: игрок может летать. Этот чит заработает, когда игрок наберет команду, а затем скастует заклинание Левитации. Эффект должен пропасть, когда вы отключите команду в консоли (Спасибо Dave Humphrey).

Get/Mod/SetArmorBonus

относится к эффекту щита

Get/Mod/SetCastPenalty

относится к эффекту Звук? (<0 – кастовать труднее, >0 – легче?)

Get/Mod/SetSilence

Get/Mod/SetBlindness

Get/Mod/SetParalysis

Каждый эффект паралича увеличивает счетчик на один. Когда вы его снимаете, счетчик уменьшается на один. Если он равен 0, то актер может двигаться. Так что можно парализовать отдельных актеров в скрипте, как если бы вы кастовали на них заклинание. Такая парализация длится до тех пор, пока не сброшена в 0, или вы не были в ячейке с актером более 3 дней (Информация с форумов / Cortex).

Get/Mod/SetInvisibile

(Оригинальный Морр: sic! Не invisible!)

Get/Mod/SetInvisible

(Поздние версии Морра, частично написание было исправлено (Информация с форумов / Cortex))

Get/Mod/SetAttackBonus

относится к эффекту Увеличить атаку

Get/Mod/SetDefendBonus

относится к эффекту Светоч


Звук

Пусть актеры говорят

Say, “file name”, “text”

 

Actor -> say, "vo\Misc\CharGenBoat1.wav", "This is where they want you."

 

Заставляет субъекта "сказать" звуковой файл, работает только на анимированных объектах. Голосовые звуковые файлы формата .mp3 находятся в папке "Data files\Sound\Vo\" и упорядочены в подпапках по расам и полу. Вы также можете просмотреть их все по команде Dialogue/voice. Текст — это то, что отображается как субтитры во время проигрывания файла[41].

 

SayDone

Возвращает истину, если объект больше ничего не говорит.

 

Пример: из создания персонажа.

 

begin CharGenBoatNPC

;это страж с лодки который говорит «проходите»

 

short state

float timer

 

if ( menumode == 1)

return

endif

 

if ( GetDisabled == 1 )

return

endif

 

if ( OnActivate == 1 )

return

endif

 

if ( GetDistance, Player < 180 )

if ( SayDone == 1)

;first greeting

if ( state == 0 )

if ( timer == 0 ) ;используем таймер, чтобы он не говорил все время

say, "vo\Misc\CharGenBoat1.mp3", "Вот нужное место. Направляйтесь в док и вам покажут как пройти в Канцелярию."

set state to 10

endif

;all other times after first

else

set timer to timer + GetSecondsPassed

if ( timer > 6 )

set timer to 0

say, "vo\Misc\CharGenBoat2.mp3", "Пошли. Шевели костями."

endif

endif

endif

endif

 

end CharGenBoatNPC

 

Проигрывание музыки

[no fix] StreamMusic, “filename.ext”

 

Проигрывает звуковой файл "имя_файла.ext", обычно файл mp3, как текущий музыкальный файл. Он должен находится в папке data files/music/. Можно также проигрывать файлы MIDI (JOG).


Date: 2015-12-17; view: 825


<== previous page | next page ==>
Get/Mod/Set ИИ для Боя: Fight, Flee, Alarm 3 page | Get/Mod/Set ИИ для Боя: Fight, Flee, Alarm 6 page
doclecture.net - lectures - 2014-2024 year. Copyright infringement or personal data (0.012 sec.)