- •Скрипты Морровинда для чайников
- •Предисловие к восьмому изданию
- •Вступление Как использовать это руководство.
- •Что такое скрипт?
- •Что могут скрипты?
- •Чего не могут скрипты:
- •Обучающий курс
- •Поехали!
- •Окно редактора скриптов
- •Чего мы хотим?
- •Написание скрипта
- •Имя для скрипта: Begin и End
- •Обнаружение действий игрока
- •Вывод текста и получение решений игрока
- •Как выполняются локальные скрипты
- •Ваш первый баг
- •Наложение заклинания на игрока
- •Как узнать больше?
- •Синтаксис
- •Начало и завершение скриптов
- •Общий синтаксис функций:
- •Общий синтаксис: запятые, скобки и пробелы.
- •Комментарии
- •Отступы / использование табуляторов
- •Переменные Типы переменных
- •Локальные переменные
- •Глобальные переменные
- •Использование переменных в других локальных скриптах и объектах
- •Использование переменных в функциях
- •Операторы / математические расчеты
- •Проверка условий Использование условий if… elseif
- •Условия While
- •Создание булевых операторов в скриптах tes
- •Список функций tes Объяснение формата
- •Работа с объектами Работа с вещами в инвентаре Добавление и удаление вещей из инвентаря
- •Сброс предмета на пол
- •Отслеживание активности инвентаря: Добавление, сброс и использование камней душ
- •Надевание предметов
- •Отслеживание, был ли надет предмет
- •Выключение возможности надеть предмет
- •Проверка присутствия предметов в инвентаре
- •Починка предметов
- •Информация о надетых объектах
- •Функция UsedOnMe
- •Движение и создание объектов
- •Движение вдоль оси объекта
- •Движение вдоль оси мира
- •Установка позиции (другой путь, чтобы сгенерировать движение)
- •Позиционирование объектов в мире или во внутренних ячейках
- •Перемещение объекта в его оригинальную позицию
- •Помещение предмета рядом с игроком
- •Создание предметов рядом с объектом
- •Создание копий объектов с помощью PlaceItem
- •Вращение и углы
- •Вращение объектов
- •Установка углов
- •Функции размеров
- •Определения локации, относительного положения и движения Определение нахождения игрока в интерьере или в экстерьере
- •Определения ячейки игрока
- •Расстояние от одного объекта до другого
- •Определяем позицию и поворот объекта
- •Линия видимости
- •Определяем, замечен ли один актер другим
- •Определяем, когда игрок покинул ячейку
- •Определяем, путешествует ли игрок
- •Триггеры для актеров, стоящих на объектах
- •Повреждение актера, стоящего на объекте
- •Функции сталкивания объектов
- •Проверка активации предмета и его активация
- •Запирание и отпирание дверей или сундуков
- •Анимирование объектов
- •Доступные и недоступные объекты
- •Полное удаление копии
- •Не сохранять изменений объекта
- •Скрипты для npc: ии и движение npc идет в новую локацию
- •Проверка, завершил ли npc свое движение
- •Поворачиваем актера в нужном направлении
- •Задание случайного перемещения Актера
- •Актеры активируют объекты
- •Следование и эскорт
- •Определение текущего пакета ии
- •Заставляем актера красться
- •Заставляем актера бегать и прыгать: Движения в Трибунале
- •Проверка действий игрока: бежит, прыгает, крадется?
- •Определение готовности к бою
- •Заставляем кого-то падать
- •Доля в экипировке и другие функции компаньонов
- •Раса, Фракция и Ранг Определение расы
- •Определение статуса игрока во фракции
- •Изменение реакции и положения во фракции
- •Определение и изменение реакции
- •Функции для оборотней Установка атрибутов оборотня
- •Специальные глобальные переменные для оборотней
- •Текст и Диалог Краткая инструкция по диалогам
- •Концепция диалогов в Морре
- •Как работает диалог
- •Несколько золотых правил
- •Диалог 101
- •Функции для диалогов
- •Показ сообщений
- •Показ переменных и предопределенного текста в окне сообщения
- •Пример: Дурацкий простой скрипт, демонстрирующий весь возможный синтаксис:
- •Добавление темы для диалога
- •Начало и окончание диалога
- •Инициация диалога с оборотнем (Bloodmoon)
- •Множественный выбор – как задавать вопросы
- •Добавление записей в журнал и тест записей журнала
- •Специальные диалоговые функции
- •Изменение значения Hello
- •Полезные диалоговые переменные
- •Изменяем и проверяем Навыки, Атрибуты и другие характеристики Get, Set, and Mod Stats – общие замечания
- •Определение и изменение характеристик игрока и актеров: Определение и изменение атрибутов:
- •Определение и изменение Здоровья, Магии и Усталости:
- •Определяем и изменяем скиллы:
- •Определение и изменение уровня
- •Начало и конец боя
- •Обнаружение атак
- •Функции Get/Mod/Set ии для Боя: Fight, Flee, Alarm
- •Отслеживание убийств и нокаутов
- •Воскрешение мертвого Актера
- •Преступления Определение и изменение уровня преступлений
- •Заключение игрока в тюрьму
- •Очистка игрока от преступлений
- •Уровень преступления игрока
- •Полезные глобальные переменные
- •Магия Ограничение на телепортацию
- •Ограничение левитации
- •Проверка и работа с душами и камнями душ
- •Id камней душ:
- •Добавление и удаление заклинаний и проклятий
- •Кастование заклинаний
- •Управление и тестирование заклинаний
- •Управление и тестирование эффектов заклинаний
- •Тестирование болезней
- •Функции Get/Mod/Set для магии:
- •Звук Пусть актеры говорят
- •Проигрывание музыки
- •Проигрывание звуков
- •Управление звуком
- •Форматы звуковых файлов:
- •Следим за временем
- •Глобальные переменные, зависящие от времени
- •Течение дней
- •Фазы лун
- •Погода Изменение погоды
- •Изменение установок погоды для региона
- •Определение текущей погоды
- •Определение скорости ветра
- •Средства управления игрока Игрок спит
- •Включение и выключение средств управления и интерфейса Отключение средств управления
- •Включение средств управления
- •Проверка статуса средств управления
- •Переключение в вид от первого и от третьего лица
- •Функции для меню генерации персонажа
- •Определение открыл ли игрок меню
- •Использование MenuTest, чтобы открыть и закрыть меню
- •Различные функции и переменные Прерывание выполнения скрипта
- •Управление глобальными скриптами
- •Уменьшение и увеличение яркости
- •Добавление локации на карту
- •Присваивание случайных значений переменным
- •Проигрывание видео
- •Функции Уровневых Списков
- •Квадратный корень
- •Функции уровня воды
- •Советы и трюки Маленькие помощники: поиск, копирование и вставка текста
- •Альтернативные скриптовые редакторы
- •Используйте стиль для написания нормальных скриптов
- •Чистка вашего мода
- •Ограничения редактора скриптов
- •Сохранение процессорного времени
- •Нацеленные скрипты: запуск «глобальных» скриптов, привязанных к объекту
- •Проверяем, когда игрок загружает игру
- •Использование переменной CharGenState – отключение сохранения и меню
- •Обнаружение использования свитков или книг
- •Заставляем Актеров переключать оружие
- •Магические и механические ловушки
- •Скриптовая телепортация
- •Тестируем на присутствие другого мода
- •Безопасный старт глобальных скриптов — избегая скрипт main
- •Использование звука для обнаружения событий
- •Большие сражения
- •Руководство по созданию объектов для езды
- •Выбор объектов
- •Создание/Удаление объектов
- •Падение с объектов
- •Обнаружение столкновений
- •Проблема с сохранением
- •Скрипт по тригонометрии – быстрый синус и косинус
- •Манекены
- •Она на меня смотрит?
- •Кинематическая последовательность
- •Решение проблем Основные советы
- •Консоль Использование консоли для проверки переменных:
- •Использование консоли для быстрой проверки скриптов:
- •Сообщения об ошибках, неправильная работа и обычные причины в игре, когда исполняется скрипт: в редакторе
- •Внутриигровые сообщения:
- •AiTravel не работает
- •Вылет при исполнении скрипта
- •Вылет при загрузке плагина
- •Приложение Новые функции Трибунала
- •Изменения / исправления скриптов Морровинда:
- •Список новых функций Трибунала:
- •Новые функции Бладмуна
- •Список новых функций и переменных Бладмуна:
- •Ранее недокументированные функции
- •Единицы измерения:
- •Список магических эффектов
- •Список консольных команд
- •Игровые установки
- •Алфавитный указатель
Алфавитный указатель
A
Activate 57
AddItem 31
Addition 25
AddSoulGem 111
AddSpell 111
AddToLevCreature 132
AddToLevItem 132
AddTopic 90
AiActivate 69
AIEscort 71
AIEscortCell 71
AiFollow 70
AiFollowCell 70
AiTravel 65
AiWander 67
AllowWereWolfForceGreeting 91, 181
AND 28
B
BecomeWerewolf 81
C
Cast 111
CellChanged 54
CellUpdate 41
CenterOnCell 186
CenterOnExterior 186
ChangeWeather 123
Choice 91
ClearForceJump 72
ClearForceMoveJump 72
ClearForceRun 72
ClearForceSneak 71
ClearInfoActor 92
coc 186
coe 186
Commands 9
companion 75
console commands 186
CreateMaps 186
CrimeGoldDiscount 106
CrimeGoldTurnIn 106
D
Day 121
DaysPassed 121
Disable 61
DisableLevitation 109
DisablePlayerControls 126
DisablePlayerFighting 126
DisablePlayerJumping 126
DisablePlayerLooking 126
DisablePlayerMagic 126
DisablePlayerViewSwitch 126
DisableTeleporting 108
DisableVanityMode 126
Division 25
DontSaveObject 64
Drop 32
DropSoulgem 111
E
Else 26
Elseif 26
Enable 61
EnableBirthMenu 127
EnableClassMenu 127
EnableInventoryMenu 128
EnableLevelUpMenu 127
EnableLevitation 109
EnableMagicMenu 128
EnableMapMenu 128
EnableNameMenu 127
EnablePlayerControls 127
EnablePlayerFighting 127
EnablePlayerJumping 127
EnablePlayerLooking 127
EnablePlayerMagic 127
EnablePlayerViewSwitch 127
EnableRaceMenu 127
EnableRest 127
EnableStatsMenu 128
EnableTeleporting 108
EnableVanityMode 127
Endif 26
EndWhile 28
Equal 26
Equip 34
ExplodeSpell 115
EXPRESSION 177
F
Face 67
FadeIn 130
FadeOut 131
FadeTo 131
FixMe 186
Float 23
ForceGreeting 90
ForceJump 72
ForceMoveJump 72
ForceRun 72
ForceSneak 71
Friend Hit (dialogue) 94
Functions 9
G
Get/Mod/SetAcrobatics 98
Get/Mod/SetAgility 97
Get/Mod/SetAlarm 102
Get/Mod/SetAlchemy 98
Get/Mod/SetAlteration 98
Get/Mod/SetArmorBonus 116
Get/Mod/SetArmorer 98
Get/Mod/SetAthletics 98
Get/Mod/SetAttackBonus 116
Get/Mod/SetAxe 98
Get/Mod/SetBlindness 116
Get/Mod/SetBlock 98
Get/Mod/SetBluntWeapon 98
Get/Mod/SetChameleon 115
Get/Mod/SetConjuration 98
Get/Mod/SetDefendBonus 116
Get/Mod/SetDestruction 98
Get/Mod/SetDisposition 80
Get/Mod/SetEnchant 98
Get/Mod/SetEndurance 97
Get/Mod/SetFatigue 97
Get/Mod/SetFight 101
Get/Mod/SetFlee 102
Get/Mod/SetFlying 116
Get/Mod/SetHandToHand 98
Get/Mod/SetHealth 97
Get/Mod/SetHeavyArmor 98
Get/Mod/SetHello 94
Get/Mod/SetIllusion 98
Get/Mod/SetIntelligence 97
Get/Mod/SetInvisibile 116
Get/Mod/SetInvisible 116
Get/Mod/SetLevel 98
Get/Mod/SetLightArmor 98
Get/Mod/SetLongBlade 98
Get/Mod/SetLuck 97
Get/Mod/SetMagicka 97
Get/Mod/SetMarksman 98
Get/Mod/SetMediumArmor 98
Get/Mod/SetMercantile 98
Get/Mod/SetMysticism 98
Get/Mod/SetPCCrimeLevel 105
Get/Mod/SetPersonality 97
Get/Mod/SetReputation 80
Get/Mod/SetResistBlight 115
Get/Mod/SetResistCorprus 115
Get/Mod/SetResistDisease 115
Get/Mod/SetResistFire 115
Get/Mod/SetResistFrost 115
Get/Mod/SetResistMagicka 115
Get/Mod/SetResistNormalWeapons 115
Get/Mod/SetResistParalysis 115
Get/Mod/SetResistPoison 115
Get/Mod/SetResistShock 115
Get/Mod/SetRestoration 98
Get/Mod/SetSecurity 98
Get/Mod/SetShortBlade 98
Get/Mod/SetSilence 116
Get/Mod/SetSneak 98
Get/Mod/SetSpear 98
Get/Mod/SetSpeechcraft 98
Get/Mod/SetSpeed 97
Get/Mod/SetStrength 97
Get/Mod/SetSuperJump 115
Get/Mod/SetSwimSpeed 115
Get/Mod/SetUnarmored 98
Get/Mod/SetWaterBreathing 115
Get/Mod/SetWaterWalking 115
Get/Mod/SetWillpower 97
GetAIPackageDone 65
GetAngle 52
GetArmorType 37
GetAttacked 100
GetBlightDisease 114
GetButtonPressed 88
GetCollidingActor 56
GetCollidingPC 56
GetCommonDisease 114
GetCurrentAIPackage 71
GetCurrentWeather 123
GetDeadCount 103
GetDetected 53
GetDisabled 61
GetDistance 50
GetEffect 113
GetFactionReaction 186
GetForceJump 72
GetForceMoveJump 72
GetForceRun 72
GetForceSneak 71
GetHealthGetRatio 97
GetInterior 49
GetItemCount 36
GetJournalIndex 93
GetLineOfSight 52
GetLocked 59
GetLOS 52
GetMasserPhase 121
GetPCCell 50
GetPCCrimeLevel 106
GetPCFacRep 78
GetPCInJail 106
GetPCJumping 73
GetPCRank 77
GetPCRunning 73
GetPCSleep 125
GetPCSneaking 73
GetPCTraveling 54
GetPlayerControlsDisabled 127
GetPlayerFightingDisabled 127
GetPlayerJumpingDisabled 127
GetPlayerLookingDisabled 127
GetPlayerMagicDisabled 127
GetPlayerViewSwitch 127
GetPos 51
GetRace 77
GetScale 48
GetSecondsPassed 120
GetSecundaPhase 121
GetSpell 113
GetSpellEffects 113
GetSpellReadied 74
GetSquareRoot 133
GetStandingActor 55
GetStandingPC 55
GetStat 96
GetTarget 100
GetVanityModeDisabled 127
GetWaterLevel 133
GetWeaponDrawn 74
GetWeaponType 37
GetWerewolfKills 81
GetWindSpeed 124
Global scripts 19
global variables 24
Goodbye 91
GotoJail 105
Greater 27
H
HasItemEquipped 38
HasSoulgem 110
Help 186
HitAttemptOnMe 101
HitOnMe 101
HurtCollidingActor 56
HurtStandingActor 56
I
If 26
INFIX to POSTFIX 178
IsWerewolf 81
J
Journal 92
L
LeftEval 178
Local scripts 19
local variables 23
Lock 59
Long 23
LoopGroup 60
LowerRank 78
M
Mathematical calculations 25
MenuMode 75, 128
MenuTest 128
MessageBox 87
minimumprofit 75
ModCurrentFatigue 97
ModCurrentHealth 97
ModCurrentMagicka 97
ModFactionReaction 79
ModHealth 96
ModPCFacRep 79
ModRegion 123
ModScale 48
ModStat 96
ModWaterLevel 133
moto 186
Move 40
MoveOneToOne 186
MoveWorld 40
Multiplication 25
O
Objects 9
OnActivate 57
OnDeath 102
OnKnockout 103
OnMurder 103
OnPCAdd 33
OnPCDrop 33
OnPCEquip 34
OnPCHitMe 99, 106
OnPCRepair 37
OnPCSoulGemUse 33, 111
OnRepair 37
OR 29
P
PayFine 105
PayFineThief 105
PC Clothing Modifier (dialogue) 94
PC Sex (dialogue) 93
PCClearExpelled 79
PCExpell 79
PCExpelled 78
PCForce1stPerson 127
PCForce3rdPerson 127
PCGet3rdPerson 127
PCHasGoldDiscount 107
PCJoinFaction 78
PCLowerRank 78
PCRaiseRank 78
PCSkipEquip 35
PlaceAtMe 45
PlaceAtPC 45
PlaceItem 46
PlaceItemCell 46
PlayBink 132
Player Controls 125
PlayGroup 60
PlaySound 118
PlaySound3D 118
PlaySound3DVP 118
PlaySoundVP 118
Position 44
PositionCell 44
PT 186
R
RaiseRank 78
Random 131
Rank Requirement (dialogue) 94
References persist 140
RemoveEffects 114
RemoveFromLevCreature 132
RemoveFromLevItem 132
RemoveItem 31
RemoveSoulgem 110
RemoveSpell 111
RepairedOnMe 37
Resurrect 104
Return 130
RightEval 177
Rotate 47
RotateWorld 47
S
SA 187
SameFaction 78
Say 117
SayDone 117
scripting window 6
ScriptRunning 130
SCT 186
Set … to 24
SetAngle 48
SetAtStart 45
SetDelete 62
SetFactionReaction 80
SetJournalIndex 92
SetPCFacRep 79
SetPos 42
SetScale 48
SetStat 96
SetWaterLevel 133
SetWerewolfAcrobatics 80
SetWillpower 96
SG 187
Short 23
Show 186
Show Animation 187
ShowGroup 187
ShowMap 131
ShowRestMenu 125
ShowScenegraph 187
ShowVars 186
SkipAnim 60
Smaller 27
SSG 187
ST 187
StartCombat 99
StartScript 130
StayOutside 76
StopCellTest 186
StopCombat 99
StopScript 130
StopSound 118
StreamMusic 117
Subtraction 25
sv 186
Syntax 21
T
T3D 187
TA 187
Talked to PC (dialogue) 93
TB 187
TCB 187
TCG 187
TCL 187
TCS 187
TDS 187
TDT 187
TestCells 186
TestInteriorCells 187
TestModels 187
Text defines 89
TFH 187
TFOW 187
TG 187
TGM 187
TKS 187
TM 187
TMS 187
ToggleAI 187
ToggleBorders 187
ToggleCollision 187
ToggleCollisionBoxes 187
ToggleCollisionGrid 187
ToggleCombatStats 187
ToggleDebugText 187
ToggleDialogueStats 187
ToggleFogOfWar 187
ToggleFullHelp 187
ToggleGodMode 187
ToggleGrid 187
ToggleKillStats 187
ToggleLights 187
ToggleLoadFade 187
ToggleMagicStats 187
ToggleMenus 187
TogglePathGrid 187
ToggleScriptOutput 187
ToggleScripts 187
ToggleSky 187
ToggleStats 187
ToggleTextureString 187
ToggleVanityMode 187
ToggleWater 187
ToggleWireframe 187
ToggleWorld 187
TPG 187
Troubleshooting 176
TS 187
TSO 187
TST 187
TTS 187
TurnMoonRed 80
TurnMoonWhite 80
tutorial 6
TVM 187
TW 187
TWF 187
U
UndoWerewolf 81
Unequal 27
Unlock 59
UsedOnMe 39
W
WakeUpPC 125
While 28
[
[no fix] 30
^
^Cell 89
^Class 89
^Faction 89
^Gamehour 89
^Global 89
^Name 89
^NextPCRank 89
^PCClass 89
^PCName 89
^PCRace 89
^PCRank 89
^Race 89
^Rank 89
1 Помимо этого, если вы написали, но не смогли откомпилировать скрипт, а затем сохранили плагин, то написанный вами текст сохраняется, хотя и не компилируется. Так что сообщение “Complied script not saved” – небольшая ложь. В следующий раз, когда вы зайдете в CS, вам выдадут сообщение, что такой-то скрипт не откомпилирован. Открывайте его, исправляйте и компилируйте - все, что вы написали до этого, было сохранено.(Прим. Gwathlobal)
2 Лично я рекомендую перед именем скрипта ставить знак _ (подчеркивание). Тогда ваши скрипты всегда будут первыми в списке. Можно также писать в имени скрипта сокращенное имя плагина (например BloodMoon - BM) или ваш сокращенный ник (напр. Gwathlobal - GW). Это практически со 100% вероятностью сделает имена ваших скриптов уникальными. А нужно это потому, что из двух скриптов с одинаковыми названиями выполняется тот, который сохранен позже, а не оба вместе. (прим. Gwathlobal)
3 Самое интересное, что объект, который неактивен, невозможно изменять с помощью стрелки. Функции получения информации об объекте работают (вы можете узнать, сколько здоровья у Вивека, когда находитесь в Балморе), а функции, изменяющие объект, - нет (то есть убить Вивека из Балморы вы не сможете). (Прим. Gwathlobal)
4 А вот теперь появился мод MWE_Writing, там есть возможность писать собственные книги. Правда, делается это отнюдь не с помощью скриптов. (Прим. Gwathlobal)
5 Это как посмотреть. Желающие попробовать несомненно заметили резкое увеличение тормозов. Вот вам наука – все скрипты, которые хоть как-то взаимодействую с внешним миром (выводят сообщения, добавляют предметы и т.п.) в большинстве случаев, не должны делать этого при каждом исполнении. (Прим. Gwathlobal)
6 Еще совет. Пишите скрипты – всегда отделяйте табуляцией все вложенные команды, то есть команды внутри if-endif, while-endwhile и т.д. Читать потом ваши скрипты будет легче и вам и другим людям. (Прим. Gwathlobal)
7 В большинстве случаев не важно как вы завершаете скритп End или End “Script_ID”. Вообще, лично я всегда использовал End. (Прим. Gwathlobal).
8 Позволю себе не согласиться. Лично я использовал и все работало как часы. (Прим. Gwathlobal).
9 Никогда не использовал, проблем замечено не было. (Прим. Gwathlobal)
10 То же самое, если используете ID, начинающийся с подчеркивания. Нужно использовать кавычки. (Прим. Gwathlobal)
11 Насчет пробелов перед и после стрелки – не знаю. Один раз использовал и это породило ошибку при компиляции. Убрал – все заработало. В другой раз – без пробелов не работало. Так что когда как. С остальным согласен. (Прим. Gwathlobal)
12 Ну, естественно. В первом случае, объект с подчеркиванием заключен в кавычки, а во втором – нет. Вот редактор и ругается. Чтобы все работало, нужно закавычить и объект перед «стрелкой». То же самое и с переменными. (Прим. Gwathlobal)
13 Почему-то при установке GFM 4.00 глобальные переменные в игре не устанавливаются в то значание, которое вы поставили в редакторе. Так что рекомендую использовать стартовый глобальный скрипт и уже в нем явно указать начальное значение переменной. (Прим. Gwathlobal)
14 От себя могу добавить, что, например, такая конструкция – if ( local_var1 / local_var2 > 10 ) – не проходит. Но подробной информации по данному вопросу у меня нет. Пробуйте сами. (Прим. Gwathlobal)
15 Вообще, я бы отсоветовал вам пользоваться while. Компьютер действительно «повисает», что чрезвычайно непрятно. Лучше пользоваться вторым примером. (Прим. Gwathlobal)
16 Но лучше все же активировать соответсвующее дополнение, когда используете функции из него во избежание непонимания – «Как же, Трибунал не указан, а плагин при загрузке пишет ошибки. Что такое?» (Прим. Gwathlobal)
17 НО: если вы при удалении тут же добавите какой-нибудь предмет в инвентарь, то порчи данных не будет. (Прим. Gwathlobal)
18 Только при этом сам объект не снимется, а останется надетым. (Прим. Gwathlobal)
19 В таблицах сохранены английские названия, так как в CS присутствуют именно они. (Прим. Gwathlobal)
20 Дико извиняюсь, если перевод выглядит коряво – в доспехах не специалист (Прим. Gwathlobal)
21 Не знаю, не видел. Это утверждение требует проверки. Иначе все давно бы щеголяли телепортацией в любое место. (Прим. Gwathlobal)
22 А также: если вы пытаетесь телепортировать NPC из ячейки, где игрок никогда не был (соответственно ни разу не видел этого NPC), туда, где игрок находится в данный момент, то при попытке поговорить с этим NPC Морр вылетит. (Прим. Gwathlobal)
23 Маленькое уточнение: похоже, если использовать RotateWorld, то объект быдет исправно вращаться, но GetAngle будет возвращать, что объект как был, так и остался неповернут. Rotate работает нормально (Прим. Gwathlobal)
24 Означает ли это, что стартовые скрипты исполняются каждый раз при загрузке игры, даже если они сами себя завершили до этого?
25 Очевидно, под загружаемыми дверьм понимается двери которые телепортируют игрока в другую ячейку. Если это так, то могу авторитетно заявить, что телепортация осуществляется. (Прим. Gwathlobal)
26 Какой из? Наверное, второй. (Прим. Gwathlobal)
27 Это означает, что Disable нужно всегда вызывать перед SetDelete. (Прим. Gwathlobal)
28 Где-то я читал, чуть ли не в хелпе, что на Актерах исполняются все пакеты, которые к ним были добавлены. После завершения исполнения всех пакетов, они начинают опять исполнятся заново в той же последовательности, в какой были добавлены. Потому то в диалогах, когда вы просите кого-то подождать вас, после того как этот непись за вами ходил, ему добавляется AIWander с нулевым временем, то есть чтоб этот пакет исполнялся бесконечно. (Прим. Gwathlobal)
29 То есть «вытащил руки», так сказать. (Прим. Gwathlobal)
30 Причем, крики из раздела Voice/Hit будут показываться только в том случае, если непися ударить оружием. Действия магии непись сносит молча. (Прим. Gwathlobal)
31 И еще. Если вы не создали приветствие для этого существа, то диалог с ним начинатся не будет, сколько бы тем у него не было. Также необходимо указывать ID вашего существа для каждого ответа, так как существа не говорят на обычные морровиндские темы, а только на те, которые были указаны специально для них. (Прим. Gwathlobal)
32 Причем хочу заметить, что в качестве объекта по умолчанию для этого глобального скрипта будет этот самый непись, с которым инициировали диалог. (Прим. Gwathlobal)
33 Вообще-то важно. ForceGreeting не будет работать, если до этого вы ни разу не говорили или хотя бы не были в одной ячейке с NPC, с которым хотите поговорить. Более того, если иметь копию NPC в какой-то удаленной ячейке, и поставить другую копию NPC перед игроком, а затем удалить ее, то ForceGreeting все рано не заработает. (Прим. Gwathobal)
34 Длинная – значит больше 512 символов. Таков лимит символов в одном ответе. (Прим. Gwathlobal)
35 Однако судя по всему, HitOnMe устанавливается даже тогда, когда игрок не попадает по Актеру. (Прим. Gwathlobal)
36 Однако, если на существе есть характериска с постоянным восстановленим здоровья, то здоровье будет восстанавливаться даже у трупа , хотя это его и не воскресит. (Прим. Gwathlobal)
37 При этом скрипт на актере продолжает исполнятся как ни в чем не бывало. (Прим. Gwathlobal)
38 На самом деле AddSpell добавляет заклинание (в том числе и проклятья) всем копиям объекта, но пока вы не сменили ячейку, показываться заклинание будет только на одной (на той самой, которой вы добавили заклинание). RemoveSpell убирает заклинание также со всех копий. (Прим. Gwathlobal)
39 Существует также функция RemoveSpellEffects “Spell_ID”, которая удаляет все эффекты принадлежащие заклинанию Spell_ID. При этом, даже если вы вызвали эту функцию, эффекты останутся висеть на объекте до начала следующего фрейма, то есть скрипт, следующий за тем, где RemoveSpellEffects была вызвана, все равно обнаружит заклинание Spell_ID с помощью GetSpellEffects. Кроме того, если вы удалите характеристику с помощью RemoveSpellEffects, то добавить ее снова уже не получиться. Так что для это цели используйте RemoveSpell (Прим. Gwathlobal)
40 Если в скрипте добавить существу болезнь, а оно не будет находится в одной и той же с вами ячейке, то при использовании этих функций будет возвращаться 0, пока ячейка существа не станет активной. (Прим. Gwathlobal)
41 Кстати, если у вас есть звук в mp3, то его можно проиграть без актера, точнее эту функцию нужно вызвать на игроке, чтобы проиграть звук. (Прим. Gwthlobal)
42 Вообще-то, это, похоже, относится к обычному изменению погоды. Если изменять погоду через функцию, то она начнет изменятся сразу и закончит максимум через 1 игровой час. (Прим. Gwathlobal)
43 Плюс: 8 – Снег и 9 – Вьюга на Солтсхейме (Прим. Gwathlobal)
44 Да ладно! X и Y можно использовать в качестве имен. (Прим. Gwathlobal)
45 Или просто напечатав и удалив какой-то символ в тех ответах, которые выше и ниже ваших ответов (Прим. Gwathlobal)
46 А полужится вот что – одновременно может исполняться только один глобальный скрипт с одним названием. То есть если запустить нацеленный скрипт на одном объекте, а затем на другом, то объект по-умолчанию для нацеленного скрипта сменится на второй. (Прим. Gwathlobal)
47 Вот что-то я этих перемещений в скрипте не обнаружил (Прим. Gwathlobal)
48 А вот этого вы не узнаете , если не присоедените скрипт к монстру. Тогда зачем вам звук, когда есть GetDistance? Дело в том, что звучит всегда определенная вещь – игрок, монстр, предмет и т.д. Стрелкой вы доберетесь до первого монстра, а не нужного вам. Также, похоже, для некотрых звуков есть объект, которого нет в игре (например, звуки региона, звук skillraise) и добраться до него нельзя. (Прим. Gwathlobal)
49 Кстати, не всегда :P Но даже когда ошибки нет, звучит похоже не игрок, а бутылка! С игрока вы до звука не доберетесь. (Прим.Gwathlobal)