Модификации:События

Материал из Stardew Valley Wiki
Перейти к навигации Перейти к поиску

Индекс

Robin building.png
“Предстоит ещё много работы...”
— Робин

Неполный перевод

Эта статья или её часть до сих пор не переведены на русский язык. Вы можете оказать помощь в переводе путем ее редактирования.
Последний раз редактировалось Margotbean в 2021-11-04 18:40:25.

На этой странице объясняется, как игра хранит и анализирует данные о событиях. Это расширенное руководство для разработчиков модов.

Источник

События хранятся по в Content\Data\Events\*.xnb (один файл на локацию), которые могут быть распакованы для редактирования. Исходные данные для локации трейлера Пэм в версии 1.5.1 для примера:

Данные 
{
  "35/f Penny 1000/p Penny": "50s/-1000 -1000/farmer -30 30 0 Penny 12 7 0 Pam -100 -100 0/skippable/specificTemporarySprite pennyMess/viewport 12 7 true/pause 1000/speak Penny \"Ughh... It's so dirty in here.$s\"/pause 500/warp farmer 12 9/playSound doorClose/pause 500/faceDirection Penny 2/pause 500/emote Penny 16/pause 300/speak Penny \"@! Um... Sorry that it's such a mess. I was about to clean up.$u\"/pause 500/move farmer 0 -1 0/pause 600/emote Penny 32/pause 300/speak Penny \"You'll help me? You really mean it?$h\"/pause 500/faceDirection Penny 1/faceDirection farmer 1/speak Penny \"Okay, you can get started over there. I'll clean the kitchen.\"/move farmer 2 0 1/move farmer 0 -2 1/move farmer 1 0 1/move Penny -1 0 0/animate Penny false true 100 24 25/animate farmer false true 100 35/pause 200/playSound dwop/removeSprite 16 6/pause 200/move Penny -1 0 0/animate Penny false true 100 24 25/stopAnimation farmer/faceDirection farmer 0/pause 1200/stopAnimation Penny/removeSprite 10 5/playSound dwop/move Penny -1 0 0/animate Penny false true 100 24 25/pause 900/animate farmer false true 100 41/pause 300/playSound dwop/removeSprite 15 5/stopAnimation farmer/pause 1400/stopAnimation Penny/move Penny 1 0 0/pause 800/warp Pam 12 9/playSound doorClose/stopMusic/move Pam 0 -1 0/faceDirection Penny 2/faceDirection farmer 3/faceDirection Pam 1/pause 500/faceDirection Pam 3/speak Pam \"Whaddya think you're doing?!$u\"/faceDirection Pam 1/faceDirection Pam 3/faceDirection Pam 0/speak Pam \"Stop it! I had everything just the way I like it!$u\"/move Penny 2 0 2/pause 500/emote Penny 28/pause 500/speak Penny \"Mom, the house is a total mess. @ and I were just trying to tidy things up a bit.#$b#*sniff* *sniff*... Were you at the saloon just now? You smell like beer...$s\"/pause 300/move Pam -1 0 3/emote Pam 12/pause 400/speak Pam \"It's none of your damn business where I go!$4\"/pause 500/speak Penny \"It IS my business! I don't want you destroying yourself!$a#$b#Don't you realize your choices have an effect on me? Stop being so selfish!$a\"/faceDirection Pam 0/shake Pam 5000/pause 600/speak Pam \"Selfish? I put a roof over your head and clothes on your back and you call me selfish!? You ungrateful little...$u\"/pause 500/emote farmer 28/pause 500/faceDirection Pam 1/faceDirection Penny 1/move farmer -2 0 2/move farmer 0 2 3/pause 500/speak Pam \"You'd better go. I'm sorry you had to see this, kid.$4\"/pause 500/move farmer -1 0 2/move farmer 0 1 2/pause 500/faceDirection farmer 0/faceDirection Penny 2/pause 700/faceDirection farmer 2/pause 500/warp farmer -40 -40/playSound doorClose/pause 500/move Pam 0 -1 1/pause 300/faceDirection Penny 3/speak Pam \"He's a nice young man...^She's a nice young lady...\"/speak Pam \"But I don't want you tellin' others to clean up my house! It's embarrassing! You understand?$4\"/pause 300/faceDirection Penny 2/pause 600/showFrame Penny 23/pause 700/speak Penny \"...Yes, mother.$s\"/pause 1000/mail PennyCleanTrailer/end warpOut",
  "36/f Penny 1500/p Penny": "musicboxsong/9 7/farmer -30 30 0 Penny 9 7 0/skippable/pause 1000/playSound doorClose/warp farmer 12 9/pause 400/faceDirection Penny 2/pause 300/speak Penny \"@, you came at a good time!#$b#I'm just about finished cooking a new recipe I invented!$h\"/pause 400/move farmer 0 -2 3/faceDirection Penny 1/move farmer -2 0 3/speak Penny \"Let me just finish up real quick.\"/pause 200/faceDirection Penny 0/pause 200/animate Penny false true 120 29 30/playSound crafting/pause 320/playSound crafting/pause 320/playSound crafting/pause 320/playSound crafting/pause 320/stopAnimation Penny/pause 500/playSound openBox/showFrame Penny 29/pause 400/playSound furnace/showFrame Penny 30/pause 1500/playSound clank/faceDirection Penny 0/pause 500/faceDirection Penny 1 true/showFrame Penny 28/speak Penny \"Here, give that a little taste.\"/pause 800/faceDirection farmer 2/farmerEat 200/showFrame Penny 4/pause 2500/stopAnimation farmer/pause 500/playSound gulp/animate farmer false true 350 104 105/pause 500/specificTemporarySprite pennyCook/pause 1500/faceDirection farmer 2/pause 500/speak Penny \"$q 72 null#...well?#$r 72 50 event_cook1#(Lie) Mmm! That was delicious!#$r 73 -50 event_cook2#Uh... can I get the rest to go?#$r 73 0 event_cook3#Well it's definitely unique... how did you get it so rubbery?\"/pause 500/speak Penny \"$p 72#Hey, since you're the first person to try it, I'm going to name this one 'Chili de @'.$h|Well, I guess this recipe was a failure...$s\"/stopAnimation farmer/faceDirection farmer 3/pause 600/speak Penny \"Um... so how about we watch a movie or something?\"/pause 500/move farmer 5 0 0 true/move Penny 5 0 0 true/globalFade/viewport -1000 -1000/end dialogue Penny \"Thanks for being my taste-tester.$h\"",
  "963313/n pamPotatoJuice": "playful/10 7/farmer -100 -100 0 Pam 10 7 0/mail pamNewChannel/skippable/pause 3000/speak Pam \"Heheh... I see the delivery came in.$h\"/pause 500/speak Pam \"Let's have a little taste.$h\"/pause 1000/playSound coin/showFrame Pam 32/pause 2000/animate Pam false true 400 33 34/playSound glug/pause 800/playSound glug/pause 800/playSound glug/pause 800/playSound glug/pause 790/stopAnimation Pam/showFrame Pam 32/pause 400/emote Pam 40/pause 800/showFrame Pam 35/textAboveHead Pam \"Ptooey!\"/playSound slimedead/shake Pam 2000/pause 2000/animate Pam false true 400 28 29/speak Pam \"I said potato, not fermented baboon kidney!$u\"/pause 2000/end dialogue Pam \"The juice? Yeah, I tried it, kid. $4#$b#How'd it taste? ...Some things are better left unsaid. Let's just leave it at that.$4\""
}

Предварительные условия события

Каждое событие имеет ключ, который включает ID события и любые предварительные условия. ID событий состоят максимум из 10 цифр с максимальным значением 2147483647 (в зависимости от кодировки игры).

Вы можете использовать любой ID для тестирования НО когда вы будете готовы к публикации, вам рекомендуется использовать вместо префикса четырехзначный ID мода, полученный от Nexus (указан в URL-адресе страницы мода).. Обратите внимание, что любой другой ID (например, последняя четырехзначная цифра идентификатора пользователя не гарантируется как уникальный ID в других модах). Вы так же можете зарезервировать ID для своего мода в Nexus, создав страницу без нажатия кнопки "Опубликовать". Конечно, это не правило, но хороший тон, чтобы предотвратить столкновение модов. Если вместо этого вы загружаете данные на Moddrop или другой сайт, измените префикс ID в соответствии с количеством цифр, найденных в идентификаторах этого сайта.

Предварительные условия события включают любое количество следующих аргументов (разделённых /). Например, Предпосылками для сердечного события в салуне Клинта являются 97/f Clint 750/t 1900 2300/d Tue Wed Thu Fri Sat Sun, что (согласно приведённым ниже таблицам) означает событие #97, требует 3 сердца дружбы с Клинтом, между 7 и 11 вечера в понедельник.

Примечания:

  • 'NPC name' означает их внутреннее английское имя, а не переводимое отображаемое имя.
  • Большинство текстов чувствительны к регистру (т.е. Mon не то же самое, что mon).
  • Логика игры для этих кодов находится в GameLocation::checkEventPrecondition.

Контекст

Проверяет текущие время, дату, погоду и т.д. Не зависит от игрока.

Синтаксис Предварительные условия
A <dialogue ID> Специальное событие по диалогу с данным ID не выполняется. Это может быть пользовательский ID события, но это стандартные ID в игре: cc_Begin, cc_Boulder, cc_Bridge, cc_Bus, cc_Complete, cc_Greenhouse, cc_Minecart, dumped_Girls, dumped_Guys, Introduction, joja_Begin, pamHouseUpgrade, pamHouseUpgradeAnonymous, secondChance_Girls, secondChance_Guys, shaneSaloon1, shaneSaloon2, willyCrabs.
F Сегодня не день фестиваля.
U <day count> В течение указанного количества дней с сегодняшнего дня фестивалей не будет.
d <day of week> Сегодня не один из указанных дней (можно указать несколько дней). Доступные значения: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
r <number> Проверка случайной вероятности, где <number> число между 0 и 1 (т.е. 0.2 соответствует 20% шансу).
v <name> Указанный NPC не невидимый (независимо от того, находятся ли они на экране).
w <weather> Текущие погодные условия соответствуют <weather>. Доступные значения: rainy, sunny.
y <year> Если <year> - 1, то событие должно произойти в первый год. В противном случае, год должен быть не менее этого значения.
z <season> Текущий сезон не <season>.

Текущий игрок

Проверяет текущего игрока (того, кто играет в этот экземпляр игры).

Синтаксис Предварительное условие
D <name> Текущий игрок встречается с данным NPC.
J Текущий игрок построил Склад Джоджа.
L Мероприятие проходит в фермерском доме, и фермерский дом был модернизирован по крайней мере дважды (есть детская, но не обязательно подвал).
M <number> У нынешнего игрока есть по крайней мере такое количество денег.
O <name> Текущий игрок женат на этом NPC.
S <secret note ID> Текущий игрок видел Секретную заметку с данным ID.
a <x> <y> Текущий игрок находится на этой позиции.
b <number> Текущий игрок достиг нижнего этажа Шахты как минимум столько раз.
c <number> У текущего игрока есть по крайней мере столько свободных слотов для инвентаря.
e <event ID> Текущий игрок видел указанное событие (может содержать несколько ID событий).
f <name> <number> У текущего игрока есть по крайней мере <number> дружбы с <name> NPC. Можно указать несколько пар имен и номеров, и в этом случае игрок должен соответствовать всем из них.
g <gender> Текущий игрок имеет указанный пол (male или female).
h <pet> У текущего игрока еще нет домашнего животного, и их свойство совпадает <pet> ("cat" или "dog").
i <item ID> Текущий игрок имеет указанный предмет в своем инвентаре.
j <number> Текущий игрок сыграл больше чем <number> дней.
k <event ID> Текущий игрок не видел это событие (может содержать несколько идентификаторов событий).
l <letter ID> Текущий игрок не получил письмо по почте или не по почте.
m <number> Текущий игрок заработал по крайней мере такое количество денег (независимо от того, сколько у него в данный момент есть).
n <letter ID> Текущий игрок получил письмо по почте или не по почте.
o <name> Текущий игрок не женат на NPC.
p <name> Указанный NPC находится рядом с текущим игроком.
q <dialogue ID> Текущий игрок выбрал данный ответ в диалоге. Может содержать несколько идентификаторов диалога, в этом случае все они должны быть выбраны.
s <item ID> <number> Текущий игрок отправил по крайней мере <number> указанного товара. Можно указать несколько пар элементов и номеров, и в этом случае все они должны быть выполнены.
t <min time> <max time> Текущее время находится между указанными значениями. Может варьироваться от 600 до 2600.
u <day of month> Текущий день месяца является одним из указанных значений (может содержать несколько дней).
x <letter ID> Для текущего игрока: отметьте это событие как просмотренное, добавьте указанное письмо в завтрашнюю почту, затем верните false (чтобы больше ничего не произошло). Используйте формат "x letterid true", чтобы отправить письмо немедленно.

Ведущий игрок

Проверяет ведущего игрока (того, у которого есть многопользовательская ферма, не обязательно текущего игрока). Если вы играете в одиночном режиме, это всегда текущий игрок.

Синтаксис Предварительное условие
C Host player has not finished the community center, or has not seen the grand reopening yet.
H Current player is the host player.
Hl <letter ID> Host player has not received that mail letter or non-mail flag.
Hn <letter ID> Host player has received that mail letter or non-mail flag.
*l <letter ID> Host player and current player have not received that mail letter or non-mail flag.
*n <letter ID> Host player and current player have received that mail letter or non-mail flag.

Сценарии событий

Базовый формат

Каждое событие имеет значение, которое является сценарием события. Сценарий определяет, что происходит в событии — все, от освещения и музыки до движения и диалога NPC. Сценарий состоит из нескольких команд, разделенных символами /.

Каждый сценарий должен начинаться с трех команд именно в таком порядке:

Индекс Синтаксис Описание
0 <music ID> Фоновая музыка или фоновая дорожка для воспроизведения. Может быть изменен позже с помощью PlayMusic <newmusic> или полностью остановлен с помощью stopMusic. Также может имет значение none (который останавливает любую существующую музыку и использует фоновый шум по умолчанию для местоположения) или continue (который продолжает воспроизводить текущую фоновую песню).
1 <x> <y> Координаты, на которых должна быть сосредоточена камера, в начале события.
2 [<character ID> <x> <y> <direction>]+ Инициализирует начальные позиции одного или нескольких персонажей и их направления. ID персонажа может быть farmer или NPC, например, Abigail.

За этими тремя командами может следовать любая последовательность следующих команд:

Команда Описание
addBigProp <x> <y> <object ID> Добавляет объект на указанные координаты из таблицы листов \Craftables.png спрайт-листа.
addConversationTopic <ID> [length] Запускает тему для разговора с указанным ID и продолжительностью дня (или 4 дня, если продолжительность не указана).
addCookingRecipe <recipe> Добавляет указанный рецепт приготовления игроку.
addCraftingRecipe <recipe> Добавляет указанный рецепт изготовления игроку.
addFloorProp <prop index> <x> <y> [solid width] [solid height] [display height] Добавляет нетвердую опору из текущей текстуры фестиваля. По умолчанию ширина/высота равны 1. Высота дисплея по умолчанию равна высоте.
addLantern <row in texture> <x> <y> <light radius> Добавляет светящийся временный спрайт на указанные координаты с листа спрайтов Maps\springobjects.png. Радиус света 0 просто помещает спрайт.
addMailReceived <letter ID> Устанавливает статус письма на "полученное".
addObject <x> <y> <sprite index> [layer] Добавляет временный спрайт на указанные координаты из листа спрайтов Maps\springobjects.png.
addProp <prop index> <x> <y> [solid width] [solid height] [display height] Добавьте твёрдую опору из текущей текстуры фестиваля. По умолчанию сплошная ширина/высота равна 1. Высота дисплея по умолчанию равна высоте.
addQuest <quest ID> Добавьте указанный квест в журнал заданий.
addTemporaryActor <character> <sprite width> <sprite height> <tile x> <tile y> <facing> [breather] [Character|Animal|Monster] [animal name] Добавьте временного участника. 'breather' - это логическое значение. Категория определяет, откуда будет загружена текстура, по умолчанию используется Символ. Название животного относится только к животному.
addToTable <x> <y> <object ID> Размещает предмет на мебели в определенном положении. Если местоположение - фермерский дом, то предмет всегда будет размещен на начальном столе.
addTool <Sword|Wand> Добавляет либо Потрепанный Меч, либо Скипетр в инвентарь игрока. Потрепанный меч недоступен в ванильной версии, он неполон и не реализован.
advancedMove <npc> <loop> <x y>... Установите несколько направлений для NPC. Вы можете установить значение True, чтобы NPC непрерывно шел по пути. Пример: /advancedMove Robin false 0 3 2 0 0 2 -2 0 0 -2 2 0/
ambientLight <r> <g> <b> Изменяет уровень окружающего освещения со значениями RGB от 0 до 255. Обратите внимание, что он работает, "удаляя" цвета из существующей световой среды, поэтому AmbientLight 1 80 80 уменьшит зеленый и синий цвета и оставит свет с красноватым оттенком.
animalNaming Показывает меню для названия животных, если другое меню не открыто. Использует текущее местоположение в качестве курятника. Работает только для 'вылупившихся' животных.
animate <actor> <flip> <loop> <frame duration> <frames...> Анимирует именованного актера, используя один или несколько <frames> из спрайт-листа, в течении <frame duration> миллисекунд на кадр. <frames> индексируются численно, на основе 16x32 пикселей на кадр. Этот индекс увеличивается по мере продвижения слева направо, начиная с 0. <flip> указывает, следует ли переворачивать спрайты вдоль оси Y; <loop> указывает, следует ли повторять анимацию до тех пор, пока не будет использована функция stopAnimation.
attachCharacterToTempSprite <actor> Прикрепляет актера к самому последнему временному спрайту.
awardFestivalPrize Присуждает приз фестиваля победителю конкурса охота за пасхальными яйцами и подледная рыбалка.
awardFestivalPrize <item type> Награждает игрока указанным предметом. Возможные типы предметов: "pan", "sculpture", "rod", "sword", "hero", "joja", "slimeegg", "emilyClothes", и "jukebox".
beginSimultaneousCommand Эта команда указывает, что все команды следующего события будут выполняться одновременно. Также должна быть команда endSimultaneousCommand после команд, необходимых для одновременного выполнения.
broadcastEvent TODO: Описывает broadcastEvent.
catQuestion Диалоговое окно с вопросом об усыновлении вашего питомца.
cave Диалоговое окно для типа пещеры фермы. Это снова сработает позже, однако переход от летучих мышей к грибам не приведет к удалению объектов, порождающих грибы.
changeLocation <location> Перейти в другое место и запустить там оставшийся сценарий события.
changeMapTile <layer> <x> <y> <tile index> Изменяет указанный тайл на определенное значение.
changePortrait <npc> <portrait> Изменяет портрет NPC на "Portraits/<actor>_<portrait>".
changeSprite <actor> <sprite> Изменяет спрайт актёра на "Characters/<actor>_<sprite>".
changeToTemporaryMap <map> [pan] Измените местоположение на временное, загруженное из файла карты, указанного в <map>. Если аргумент [pan] опущен, также переместите на плитку координаты 0, 0 на новой карте. Если для [pan] задано какое-либо значение, панорамирование не выполняется.
changeYSourceRectOffset <npc> <offset> Изменяет смещение текстуры NPC по вертикали. Например: changeYSourceRectOffset Abigail 96 будет смещать ее спрайт-лист, показывая, что она смотрит влево, а не вниз. Сохраняется до конца события. Работает только в событии Эмили Костюмная терапия чтобы правильно отображать разные наряды.
characterSelect Вроде бы не используется. Устанавливает Game1.gameMode до 5 и Game1.menuChoice = 0.
cutscene <cutscene> Активирует заставку. Смотри список заставок.
doAction <x> <y> Действует так, как если бы игрок щелкнул по указанной координате x/y, и запускает любое соответствующее действие. Он обычно используется для открытия дверей изнутри событий, но его можно использовать и для других целей. Если вы используете его на NPC, вы поговорите с ними, и если игрок держит предмет, он передаст его в подарок. doAction активирует объекты в основном игровом мире (их фактическое местоположение вне события), поэтому активировать NPC подобным образом очень сложно, и их реакция варьируется в зависимости от того, что держит игрок.
dump <group> Starts the special "cold shoulder" and "second chance" dialogue events for the given group (women if group is girls and men if it is anything else.) The cold shoulder event has an id of dumped_Girls or dumped_Guys and lasts 7 days; the second chance event has an id of secondChance_Girls or secondChance_Guys and lasts 14 days. During open beta testing of version 1.3 there was a second parameter which determined the amount of hearts lost, but support for that parameter was removed before release.
endSimultaneousCommand Устанавливает окончание всех команд, которые должны выполняться одновременно. Формат: beginSimultaneousCommand/<Event Commands>.../endSimultaneousCommand
elliotbooktalk Разговор о книге Эллиота.
emote <actor> <emote ID> Заставьте NPC выполнить эмоцию, которая представляет собой маленькую иконку, показанную над головой NPC. Эмоции хранятся в Content\TileSheets\emotes.xnb (смотри list of emotes).
end Завершает текущее событие исчезновением, затем возобновляет игровой мир и помещает игрока на квадрат, в котором он вошел в зону. Все параметры end делают это по умолчанию если не указано иное.
end bed Тоже самое, что и end, но переносит игрока в кровать. Не привязывает к фермерскому дому, а к координатам x/y на которых расположена кровать.
end beginGame Используется только во время последовательности введения в событии автобусной остановки. Устанавливает режим игры в playingGameMode, переносит игрока на ферму (9, 9), завершает текущее событие и начинает новый день.
end credits Не используется ни в каких обычных событиях Очищает погоду, меняет музыку на свадебную, устанавливает режим игры на creditsMode и завершает текущее событие.
end dialogue <NPC> <"Text for next chat"> То же, что и end, так же дополнительно очищает существующий диалог NPC за день и заменяет его строкой(строками), указанными в конце команды. Пример использования: end dialogue Abigail "It was fun talking to you today.$h"
end dialogueWarpOut <NPC> <"Text for next chat"> Смотри end dialogue и end warpOut.
end invisible <NPC> То же, что и end, и дополнительно делает указанного NPC невидимым (с ним нельзя взаимодействовать до следующего дня).
end invisibleWarpOut <NPC> Смотри end invisible и end warpOut.
end newDay Заканчивает событие и день (укладывание игрока в постель, сохраняет игру, продаёт всё в коробке для доставки и т.д.).
end position <x> <y> То же, что и end, и дополнительно перемещает игрока к координатам карты, указанным в x y.
end warpOut То же, что и end, и дополнительно находит первую warp-зону вне текущего местоположения (вторая warp-зона, если мужчина и в бане), и перемещает игрока к его конечной точке.
end wedding Используется только в жестко закодированном свадебном мероприятии. Меняет одежду персонажа на обычную, устанавливает чат Льюиса после события на "Это была прекрасная церемония. Поздравляю!$h", и переносит игрока на ферму.
extendSourceRect <actor> reset Сбрасывает спрайты актеров.
extendSourceRect <actor> <horizontal> <vertical> [ignoreUpdates] TODO: Описывает Character.extendSourceRect
eyes <eyes> <blink> Измените глаза игрока. Глаза представлены целым числом от 0 до 5 (открытые, закрытые, правый, левый, полузакрытые, широко открытые). Моргание - таймер, который представлен отрицательным числом. -1000 таймер по умолчанию.
faceDirection <actor> <direction> [continue] Столкнуть NPC с направлением. Если параметр не указан для [continue], игра будет приостановлена.
fade [unfade] Становится черным, если параметр не указан. Если параметр равен unfade (не true), исчезает в чёрный.
farmerAnimation <anim> Кратко устанавливает спрайт фермера в <anim> для переменного (в зависимости от спрайта) интервала. Используется только один раз в ванильных событиях. Использование showFrame farmer <sprite> дважды (чтобы установить новый кадр и переключить обратно) является более целесообразным, так как позволяет управлять интервалом с помощью pause n.
farmerEat <object ID> Заставляет игрока съесть предмет.
fork [req] <event ID> Завершите текущий командный сценарий и запустите другой сценарий с заданным ID, но только в том случае, если [req] условие выполнено. (Например: /fork choseWizard finalBossWizard в сценарии 6-сердечного события Себастьяна.) [req]условием может быть ID письма или ID ответа в диалоге; если не указано, проверяет, соответствует ли specialEventVariable1 переменная была установлена (т.е. от question команды события или %fork команды диалога). Новый сценарий должен иметь тот же формат, что и обычный сценарий событий, но без обязательных трех начальных полей.
friendship <npc> <amount> Добавьте заданное количество очков дружбы с NPC. (На каждое сердце приходится 250 очков.)
globalFade [speed] Исчезает до черного с определённой скоростью (по умолчанию 0,007). Если скорость не указана, событие продолжится немедленно; в противном случае оно продолжится после завершения затухания. Эффект затухания исчезает после выполнения этой команды; чтобы избежать этого, используйте команду viewport для перемещения камеры за пределы экрана.
globalFadeToClear [speed] Очищает затемнение с определённой скоростью (по умолчанию 0.007). Если скорость не указана, событие продолжится немедленно; в противном случае оно продолжится после завершения затухания.
glow <r> <g> <b> <hold> Заставьте экран светиться один раз, растворяясь в и появляясь из <r> <g> <b> значений в течении секунды. Если <hold> равна true экран поблекнет и сохранит этот цвет до тех пор, пока не будет использована команда stopGlowing.
grandpaCandles Do grandpa candles.
grandpaEvaluation Do grandpa evaluation.
grandpaEvaluation2 Do grandpa evaluation (manually resummoned).
halt Make everyone stop.
hospitaldeath
ignoreCollisions <character ID> Заставьте персонажа игнорировать столкновения при перемещении в течение оставшейся части события. Например, персонаж пройдёт сквозь стены, если потребуется, чтобы добраться до места назначения. ID персонажа может быть равен farmer или имя NPC, например, Abigail.
itemAboveHead [type] Показать предмет над головой игрока. [type] Может быть равен "pan", "hero", "sculpture", "joja", "slimeEgg", "rod", "sword", или "ore". Если ни один элемент не указан, то игроку будет нечего "держать"?
jump <actor> [intensity] Заставить NPC подпрыгнуть. По умолчанию intensity равна 8.
loadActors <layer> Загрузить актеров из указанного слоя в файле карты.
makeInvisible <x> <y> [x-dimension] [y-dimension] Временно скрывает выбранные объекты: плитка станет проходимой на время события. Полезно для расчистки пешеходной зоны во время мероприятий, особенно в фермерском доме.(Например: /makeInvisible 8 14 скрывает любой объект на плитках 8, 14 текущей карты.) Необязательные аргументы [x-dimension] и [y-dimension]позволяет указать большую область, подлежащую очистке. (Например: /makeInvisible 68 36 13 7 в событии Лии 14 сердец очищается прямоугольная область размером 13 × 7 плиток с верхним левым углом в координатах 68, 36.)
mail <letter ID> Установить очередь письма на завтра (смотри Content\Data\mail.xnb для просмотра доступных писем).
message "<text>" Показать диалоговое окно (без персонажа). Смотри формат диалога для форматирования <text>.
minedeath TODO.
move <actor> <x> <y> <facing> <continue> Смещает NPC (вдоль только одной оси), поворачивает лицом в заданном направлении. Чтобы перемещаться по нескольким осям, необходимо указать несколько move команд. По умолчанию событие приостанавливается во время выполнения команды перемещения, но если <continue> равно true, перемещение происходит асинхронно и будет выполняться одновременно с другими командами события.
pause <duration> Приостанавливает игру на заданное количество миллисекунд.
playMusic <track> Воспроизводит музыкальную дорожку с указанным ID. Если трэк равен 'samBand', воспроизводимый трек будет меняться в зависимости от определенных диалоговых ответов (76-79).
playSound <sound> Воспроизводит звук с заданным ID из звукового банка игры.
playerControl Вернуть игроку контроль.
positionOffset <actor> <x> <y> Смещение положения NPC на заданное количество пикселей. Происходит мгновенно, без анимации ходьбы.
proceedPosition <actor> TODO: Описание
question null "<question>#<answer1>#<answer2>" Показать диалоговое окно с некоторыми ответами и необязательным вопросом. Когда игрок выбирает ответ, сценарий события продолжается без какого-либо другого эффекта.
question fork<answer index> "<question>#<answer 0>#<answer 1>#..." Показать диалог с некоторыми ответами и необязательным вопросом. Когда игрок выбирает ответ, соответствующий fork<answer index> (fork0 для первого ответа),specialEventVariable1 заданной переменной.Обычно за этим следует fork команд.
quickquestion "#<question1>#<question2>#<question3>(break)<command>#<answer1 script>(break)<answer2 script>(break)<answer3 script>\\" Показать диалоговое окно с некоторыми ответами и необязательным вопросом. Когда игрок выбирает ответ, сценарий события продолжается без какого-либо другого эффекта.
removeItem <object ID> Удалить первый предмет из инвентаря игрока.
removeObject <x> <y> Удалить опору в указанных координатах.
removeQuest <quest ID> Удалить указанный квест из журнала заданий.
removeSprite <x> <y> Удалить временный спрайт в указанных координатах.
removeTemporarySprites Удалить все временные спрайты.
removeTile <x> <y> <layer> Удалить плитку на указанном слое.
resetVariable Установить для первой переменной события значение false.
rustyKey Дать игроку ржавый ключ. (Ключ от канализации)
screenFlash <alpha> На мгновение экран становится белым. Альфа-значение изменяется от 0 до 1 регулируя яркость, вспыхивает чистым белым светом за x секунд.
setRunning Заставить игрока бежать.
shake <actor> <duration> Встряхивает указанного NPC в течение заданного количества миллисекунд.
showFrame farmer flip Перевернуть текущий спрайт игрока вдоль оси y. TODO: Поведение игрока выглядит странно?
showFrame <actor> <frame ID> Установить текущий кадр NPC из его Content\Characters\*.xnb спрайт-листа. Обратите внимание, что настройка спрайта игрока изменяется только частями (иногда руки, ноги и туловище, но не голова и т.д.). Чтобы повернуть весь спрайт, используйте faceDirection farmer <0/1/2/3>, прежде чем изменять спрайт с помощьюshowFrame. ID кадров начинаются с 0. Если изменяется кадр игрока, "farmer" может быть исключен, т.е. будут работать как showFrame farmer <frame ID>, так и showFrame <frame ID>.
showRivalFrame <frame> Установить 'rival' спрайт актера в определённый кадр.
skippable Разрешить пропустить это событие.
speak <character> "<text>" Показать текст диалога от NPC; смотри формат диалога.
specificTemporarySprite <sprite> [other params] Показывает текущий временный спрайт. Параметры меняются в зависимости от спрайта.
speed farmer <modifier> Добавьте модификатор скорости к фермеру. Модификатор является постоянным, чтобы вернуться к нормальной скорости необходимо снова использовать команду.
speed <actor> <speed> Задает скорость NPC (по умолчанию скорость равна 3). Не применимо к игроку. Применяется только до конца следующего движения или анимации NPC.
splitSpeak <actor> "<text>" Диалог, выбранный на основе предыдущего ответа. ('~' используется как разделитель.)
startJittering Заставить игрока дрожать.
stopAdvancedMoves Остановить advancedMove.
stopAnimation farmer Остановите текущую анимацию игрока.
stopAnimation <actor> <end frame> Остановить текущую анимацию NPC. Не применимо к фермеру.
stopGlowing Заставить экран перестать светиться.
stopJittering Заставить игрока перестать дрожать.
stopMusic Остановите любую воспроизводимую в данный момент музыку.
stopRunning Остановить бег игрока.
stopSwimming <actor> Заставить актера перестать плавать.
swimming <actor> Заставить актера плавать.
switchEvent <event ID> Изменяет текущее событие (т. е. команды событий) на другое событие в том же месте.
taxvote Инициируйте голосование за или против налога на доставку в размере 3%. (Не влияет на игру?)
temporarySprite <x> <y> <row in texture> <animation length> <animation interval> <flipped> <layer depth> Создайте временный спрайт с заданными параметрами из ресурса TileSheets/animations.
textAboveHead <actor> "<text>" Покажите небольшой текстовый пузырь над головой указанного NPC с заданным текстом; смотри формат диалога.
tutorialMenu Показать меню обучения, если другое меню не открыто.
updateMinigame <event data> Отправить событие в текущую мини-игру.
viewport move <x> <y> <duration> Переместите камеру в направлении (и со скоростью), определяемом "x/y", в течение заданной продолжительности в миллисекундах. Например: "viewport move 2 -1 5000" перемещает камеру на 2 пикселя вправо и на 1 пиксель вверх в течение 5 секунд.
viewport <x> <y> [true [unfreeze]|clamp [true|unfreeze]] Мгновенно переместить камеру в центр заданной плитки, указанной координатами x, y. TODO: описание других параметров.
waitForKey <key> <message on finish> TODO: Описание
waitForOtherPlayers Ожидание других игроков (ванила мультиплеер).
warp <actor> <x> <y> Перемещает NPC в положение, соответствующее заданным координатам x, y. Может быть использовано для изменения символов за пределами экрана.
weddingSprite <frame> Устанавливает спрайт актёра 'WeddingOutfits' в указанный кадр.

Некоторые команды не работают или непригодны для использования:

Команда Описание
grabObject <object ID> Сломано. Запускает общую анимацию. Идентификатор элемента игнорируется, и элемент не добавляется.
end busIntro Предполагалось начать сцену вступления в автобус, предположительно ту, которая была вырезана перед выпуском.

Если команда начинается с двух символов '--', она игнорируется. Это можно использовать для вставки комментариев или временного отключения команд во время отладки события.

Направления

Когда команды событий ссылаются на направление, обращенное лицом, они будут использовать одно из этих значений:

Значение Описание
0 Смотрит вверх
1 Смотрит вправо
2 Смотрит вниз
3 Смотрит влево

Заставки

cutscene команда примет следующие значения:

Значение Внутриигровая сцена
AbigailGame Настройка мини-игры Путешествие короля Прерий с Абигейл
addSecretSantaItem Сцена Праздника Зимней звезды
balloonChangeMap Сцена 10-ти сердец Харви
balloonDepart Сцена 10-ти сердец Харви
bandFork Событие 8-ми сердце с Сэмом, на основе ответов из события 2-х сердец
boardGame Настройка мини-игры Solarion Chronicles
clearTempSprites Удаляет все временные спрайты с карты
eggHuntWinner Сцена победителя охоты за яйцами
governorTaste Сцена с супом Луау
greenTea Сцена 2-х сердец Кэролайн
haleyCows Сцена 8-ми сердец Хейли
iceFishingWinner Сцена победителя конкурса "Соревнование по подлeдному лову"
iceFishingWinnerMP Настройка текстового сообщения, отображаемого при выходе с Ледового праздника
linusMoneyGone ??? (кажется, не используется)
plane Самолет, пролетающий мимо со сцены 8-го сердца Харви
robot MarILDA из сцены 10-ти сердец Мару

Формат диалога

Смотри Модификации:Диалоги#Формат.

Смотри также