Модификации:События: различия между версиями
Shtompel (обсуждение | вклад) |
Shtompel (обсуждение | вклад) |
||
Строка 432: | Строка 432: | ||
|- | |- | ||
| <tt>move {{t|actor}} {{t|x}} {{t|y}} {{t|facing}} {{t|continue}}</tt> | | <tt>move {{t|actor}} {{t|x}} {{t|y}} {{t|facing}} {{t|continue}}</tt> | ||
− | | | + | | Смещает NPC (вдоль ''только'' одной оси), поворачивает лицом в заданном [[#Направления|направлении]]. Чтобы перемещаться по нескольким осям, необходимо указать несколько <tt>move</tt> команд. По умолчанию событие приостанавливается во время выполнения команды перемещения, но если {{t|continue}} равно ''true'', перемещение происходит асинхронно и будет выполняться одновременно с другими командами события. |
|- | |- | ||
| <tt>pause {{t|duration}}</tt> | | <tt>pause {{t|duration}}</tt> | ||
− | | | + | | Приостанавливает игру на заданное количество миллисекунд. |
|- | |- | ||
| <tt>playMusic {{t|track}}</tt> | | <tt>playMusic {{t|track}}</tt> | ||
− | | | + | | Воспроизводит музыкальную дорожку с указанным ID. Если трэк равен 'samBand', воспроизводимый трек будет меняться в зависимости от определенных диалоговых ответов (76-79). |
|- | |- | ||
| <tt>playSound {{t|sound}}</tt> | | <tt>playSound {{t|sound}}</tt> | ||
− | | | + | | Воспроизводит звук с заданным ID из звукового банка игры. |
|- | |- | ||
| <tt>playerControl</tt> | | <tt>playerControl</tt> | ||
− | | | + | | Вернуть игроку контроль. |
|- | |- | ||
| <tt>positionOffset {{t|actor}} {{t|x}} {{t|y}}</tt> | | <tt>positionOffset {{t|actor}} {{t|x}} {{t|y}}</tt> | ||
− | | | + | | Смещение положения NPC на заданное количество пикселей. Происходит мгновенно, без анимации ходьбы. |
|- | |- | ||
| <tt>proceedPosition {{t|actor}}</tt> | | <tt>proceedPosition {{t|actor}}</tt> | ||
− | | TODO: | + | | TODO: Описание |
|- | |- | ||
| <tt>question null "{{t|question}}#{{t|answer1}}#{{t|answer2}}"</tt> | | <tt>question null "{{t|question}}#{{t|answer1}}#{{t|answer2}}"</tt> | ||
− | | | + | | Показать диалоговое окно с некоторыми ответами и необязательным вопросом. Когда игрок выбирает ответ, сценарий события продолжается без какого-либо другого эффекта. |
|- | |- | ||
| <tt>question fork{{t|answer index}} "{{t|question}}#{{t|answer 0}}#{{t|answer 1}}#..."</tt> | | <tt>question fork{{t|answer index}} "{{t|question}}#{{t|answer 0}}#{{t|answer 1}}#..."</tt> |
Версия 14:38, 16 августа 2021
← Индекс
![]() |
Неполный перевод Эта статья или её часть до сих пор не переведены на русский язык.
Вы можете оказать помощь в переводе путем ее редактирования. |
На этой странице объясняется, как игра хранит и анализирует данные о событиях. Это расширенное руководство для разработчиков модов.
Источник
События хранятся по в 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> #..."
|
Show a dialogue with some answers and an optional question. When the player chooses the answer matching the fork<answer index> (like fork0 for the first answer), the specialEventVariable1 variable is set. Usually followed by a fork command.
|
quickquestion "#<question1> #<question2> #<question3> (break)<command> #<answer1 script> (break)<answer2 script> (break)<answer3 script> \\"
|
Show a dialogue box with some answers and an optional question. When the player chooses an answer, the event script continues with no other effect. |
removeItem <object ID>
|
Remove the first of an object from a player's inventory. |
removeObject <x> <y>
|
Remove the prop at a position. |
removeQuest <quest ID>
|
Remove the specified quest from the quest log. |
removeSprite <x> <y>
|
Remove the temporary sprite at a position. |
removeTemporarySprites | Remove all temporary sprites. |
removeTile <x> <y> <layer>
|
Remove a tile from the specified layer. |
resetVariable | Set the first event variable to false. |
rustyKey | Gives the player the rusty key. (Sewer key) |
screenFlash <alpha>
|
Flashes the screen white for an instant. An alpha value from 0 to 1 adjusts the brightness, and values from 1 and out flashes pure white for x seconds. |
setRunning | Set the player as running. |
shake <actor> <duration>
|
Shake the named NPC for the given number of milliseconds. |
showFrame farmer flip | Flip the farmer's current sprite along the Y axis. TODO: Behavior with farmer looks strange? |
showFrame <actor> <frame ID>
|
Set the named NPC's current frame in their Content\Characters\*.xnb spritesheet. Note that setting the farmer's sprite only changes parts of the sprite (some times arms, some times arms and legs and torso but not the head, etc). To rotate the whole sprite, use faceDirection farmer <0/1/2/3> first before modifying the sprite with showFrame. Frame ID starts from 0. If farmer is the one whose frame is being set, "farmer" can be eliminated, i.e. both showFrame farmer <frame ID> and showFrame <frame ID> would work.
|
showRivalFrame <frame>
|
Set the 'rival' actor's sprite to a specific frame. |
skippable | Allow skipping this event. |
speak <character> "<text> "
|
Show dialogue text from a named NPC; see dialogue format. |
specificTemporarySprite <sprite> [other params]
|
Shows the given temporary sprite. Parameters change depending on the sprite. |
speed farmer <modifier>
|
Add a speed modifier to the farmer. Is persistent and you will have to use the command again to return to normal speed. |
speed <actor> <speed>
|
Sets the named NPC's speed (default speed is 3). Not applicable to the farmer. Applies only through the end of the next movement or animation on that NPC. |
splitSpeak <actor> "<text> "
|
Dialogue, but chosen based on previous answer. ('~' is the separator used.) |
startJittering | Make the player start jittering. |
stopAdvancedMoves | Stop movement from advancedMove. |
stopAnimation farmer | Stop the farmer's current animation. |
stopAnimation <actor> <end frame>
|
Stop the named NPC's current animation. Not applicable to the farmer. |
stopGlowing | Make the screen stop glowing. |
stopJittering | Make the player stop jittering. |
stopMusic | Stop any currently playing music. |
stopRunning | Make the farmer stop running. |
stopSwimming <actor>
|
Make an actor stop swimming. |
swimming <actor>
|
Make an actor start swimming. |
switchEvent <event ID>
|
Changes the current event (ie. event commands) to another event in the same location. |
taxvote | Trigger voting for or against a 3% shipping tax. (No effect on game?) |
temporarySprite <x> <y> <row in texture> <animation length> <animation interval> <flipped> <layer depth>
|
Create a temporary sprite with the given parameters, from the resource TileSheets/animations. |
textAboveHead <actor> "<text> "
|
Show a small text bubble over the named NPC's head with the given text; see dialogue format. |
tutorialMenu | Show the tutorial menu if no other menu is open. |
updateMinigame <event data>
|
Send an event to the current minigame. |
viewport move <x> <y> <duration>
|
Pan the the camera in the direction (and with the velocity) defined by x/y for the given duration in milliseconds. Example: "viewport move 2 -1 5000" moves the camera 2 pixels right and 1 pixel up for 5 seconds. |
viewport <x> <y> [true [unfreeze]|clamp [true|unfreeze]]
|
Instantly reposition the camera to center on the given X, Y tile position. TODO: explain other parameters. |
waitForKey <key> <message on finish>
|
TODO: Explain |
waitForOtherPlayers | Wait for other players (vanilla MP). |
warp <actor> <x> <y>
|
Warp the named NPC to a position to the given X, Y tile coordinate. This can be used to warp characters off-screen. |
weddingSprite <frame>
|
Sets the actor known as 'WeddingOutfits' to a particular frame. |
Некоторые команды не работают или непригодны для использования:
Команда | Описание |
---|---|
grabObject <object ID>
|
Сломано. Запускает общую анимацию. Идентификатор элемента игнорируется, и элемент не добавляется. |
end busIntro | Предполагалось начать сцену вступления в автобус, предположительно ту, которая была вырезана перед выпуском. |
Если команда начинается с двух символов '--', она игнорируется. Это можно использовать для вставки комментариев или временного отключения команд во время отладки события.
Направления
Когда команды событий ссылаются на направление, обращенное лицом, они будут использовать одно из этих значений:
Значение | Описание |
---|---|
0 | Смотрит вверх |
1 | Смотрит вправо |
2 | Смотрит вниз |
3 | Смотрит влево |
Заставки
cutscene
команда примет следующие значения:
Значение | Внутриигровая сцена |
---|---|
AbigailGame | Sets up Journey of the Praire King mini-game with Abigail |
addSecretSantaItem | Сцена Праздника Зимней звезды |
balloonChangeMap | Changes to the "in the balloon" map for Harvey's 10 heart event |
balloonDepart | Balloon taking off in Harvey's 10 heart event |
bandFork | Plays correct scene for Sam's 8 heart event, based on response given in 2 heart event |
boardGame | Sets up Solarion Chronicles mini-game |
clearTempSprites | Removes all temporary sprites from map |
eggHuntWinner | Egg Hunt winner scene |
governorTaste | Luau soup scene |
greenTea | Caroline sunroom scene from her 2 heart event |
haleyCows | Haley meeting the cows from her 8 heart event |
iceFishingWinner | Festival of Ice fishing contest winner scene |
iceFishingWinnerMP | Sets up text message displayed when leaving Festival of Ice |
linusMoneyGone | ??? (seems to be unused) |
plane | Plane flying by from Harvey's 8 heart scene |
robot | MarILDA taking off from Maru's 10 heart scene |
Формат диалога
Смотри Модификации:Диалоги#Формат.