「模组:对话」修訂間的差異
Margotbean(對話 | 貢獻) 小 (文本替换 - 替换“<br/>”为“<br />”) |
Margotbean(對話 | 貢獻) 小 (文本替换 - 替换“乔家社区发展申请书”为“Joja社区发展申请书”) |
||
第1,063行: | 第1,063行: | ||
| <samp>joja_Begin</samp> | | <samp>joja_Begin</samp> | ||
| 七天 | | 七天 | ||
− | | 当玩家第一次打开[[ | + | | 当玩家第一次打开[[Joja 社区发展申请书]]。 |
|- | |- | ||
| <samp>movieTheater</samp> | | <samp>movieTheater</samp> |
於 2022年3月31日 (四) 19:27 的最新修訂
← 目錄
這個頁面解釋了遊戲如何存儲對話文本,它的格式,以及遊戲如何解析它。它將會是一個提供給模組製造者的高級指南。
數據
這些對話文本存儲在四組文件中。
角色-特殊對話
Characters\Dialogue\*.xnb 包含了大部分角色對話里 (一個文件夾對應一個角色). 遊戲將從下面的一部分內容中選擇對話,依照這裏排列好的指令順序來讀取對話。
*指越往下的對話格式,讀取優先度會比上面的對話還要低。*
特殊對話
以下是一些針對特定情況的預設鍵(Key):
- 請注意是使用英文,中文只是方便大家理解*
密鑰格式(key format) | 描述(description) |
---|---|
邀請跳舞拒絕 danceRejection |
用來顯示邀請NPC跳舞花舞節時被拒絕的對話。(如果是在多人聯機,已被其他玩家邀請且同意的NPC會使用其他對話來拒絕玩家。*不過大部分自製NPC是沒有做出這個對話*) |
離婚 divorced |
和NPC離婚之後會觸發的對話。 |
<地點> _入口<location> _Entry
|
玩家在指定的地方<location> 從入口進來有50%的幾率讓你的NPC說特定的話,這個對話可以使用多個對話,只需使用 / 隔開對話與對話;遊戲會隨機讀取其中對話。例子: SeedShop_Entry: "嗨,皮埃爾!/現在,我需要的是.../啊!看起來真不錯!/今晚準備做我的特製醬料!/皮埃爾!今天的新品是什麼?/皮埃爾!今天要一起出門玩嗎?" |
等會再來吧 ComeBackLater 打呼嚕 Snoring |
*一般NPC不需要,所以可以跳過這段* 當你還未達成佈告欄上的擊殺怪物的任務,吉爾就會觸發這些對話。 ComeBackLater 只會顯示一次,後續的對話就會觸發Snoring。 |
地點對話
依照順序,除了上面的對話以外,接下來將會依照順序讀取以下對話。
*指上面四個danceRejection、divorced、<location>
_Entry、ComeBackLater和Snoring的優先度大於以下的對話*
變化/變體:
- 每一個特定鍵(Key)可以選擇性的使用 季節來作出季節變化, 比如 springMountain_47_23,即春天在山上地圖的某個坐標會觸發此對話。
遊戲會依照以下順序來讀取變體: <season>
<key>
, and <key>
. 為了方便大家理解,下面沒有列出這些變體。
密鑰格式(key format) | 描述(description) |
---|---|
<地點> _<x軸坐標> _<y軸坐標> <location> _<x> _<y>
|
當NPC站在<x> , <y> 的某個你所填充的地點,就會觸發這個對話.例子: Mountain_47_23: "這裏很安靜,又有風可以吹,為什麼我不能來這裏?" |
<地點> _<星期幾> <location> _<dayName>
|
當NPC在指定地點的指定一天星期幾. 例子: Saloon_Fri: "星期五的酒吧總會很熱鬧,我不討厭這樣的氣氛。" |
<地點> <好感> <location> <hearts>
|
當你和NPC的好感有指定<hearts> 以上,將會觸發這個對話。指定好感<hearts> 將會讀取10,8,6,4,2這幾個數值(不填任何數字則為0),優先度為10>8>6>4>2>0(除此之外的數值無法被讀取,比如說1)例子: Saloon8: "歡迎光臨,@。我很高興今天也能看到你過來這裏!酒吧的大門永遠為你而開。*當然,酒吧永遠都是中午12點開門。*" |
<地點> <location>
|
當NPC身處在指定地點,就會觸發此對話。 例子: Saloon: "呼哇~終於可以在酒吧盡情放鬆了~" |
雨天對話
Characters\Dialogue\rainy.xnb文件里每一個NPC都有對應的一個對話。如果你的情況是:還未結婚或者離婚、當天是雨天、並且上述的對話條件沒有達成,你將會有50%幾率讀取這個雨天對話。*由於是50%,所以你可能會觸發平時的對話然後說出「今天天氣真好」這種詭異的對話……*
雨天對話需要使用content的EditData來添加在遊戲裏,以下為麻薯君的例子:
{
"Action": "EditData",
"Target": "Characters/Dialogue/rainy",
"Entries": {
"Mochi":"下雨啦!$1#$e#农作物不用浇水真是太棒了!$1#$b#不过我已经有了洒水器,所以无论是晴天雨天都没关系。#$e#所以你的洒水器都有了吗?$1"
}
},
{
"Action": "EditData",
"Target": "Characters/Dialogue/rainy",
"Entries": {
"Mochi":"下雨了你却没有避雨吗?#$b#你也是辛苦了。$8#$b#你过来我这里吧。#$b#着凉了可不好。$1"
},
"When": {
"Hearts:Mochi": "4, 5, 6, 7"
}
},
{
"Action": "EditData",
"Target": "Characters/Dialogue/rainy",
"Entries": {
"Mochi":"你看看你!#$b#不带伞还淋湿了全身上下。$6#$b#我帮你擦擦头发。$1#$b#%麻薯君拿出毛巾帮你擦干头发#$b#嗯,擦干了!$1#$e#喝点咖啡吧!$1[395]#$e#快喝吧!$1"
},
"When": {
"Hearts:Mochi": "8, 9, 10"
}
}
一般對話
除上面以外,遊戲將選擇使用以下其中一個關鍵格式的對話(按優先順序來讀取):
<季節>
_<密鑰>
_inlaw_<伴侶名字>
<season>
_<key>
_inlaw_<spouseName>
<季節>
_<密鑰>
<season>
_<key>
<密鑰>
_inlaw_<伴侶名字>
<key>
_inlaw_<spouseName>
<密鑰>
<key>
關於以上各個變體: <season>
是指季節 (比如說 spring_14); 如果玩家和對應NPC_inlaw_<伴侶名字>
結婚,這個對話將會不顧其他對話並先讀取這個對話。(比如說 Sat_inlaw_Abigail,就是在星期六與伴侶「阿比蓋爾」對話將觸發此對話。); 以及 <key>
指的是以下密鑰格式。
密鑰格式(key format) | 描述(description) |
---|---|
<1到28日> <dayOfMonth>
|
第一年的設定好的某一日會觸發此對話。 注意: 這個第一年限定的對話和其他的密鑰格式是不一樣的,這點常常把模組製造者搞亂了。 例子: 10: "你昨晚有看那個體育頻道嗎?#$b#等會,你有電視嗎……?" |
<1到28日> _<1或2年> <dayOfMonth> _<firstOrLaterYear>
|
根據你所填的1或2年觸發指定日期的對話。填的是「1」的話,第一年以後(即第二、三年)不會再觸發;「2」則第一年以後觸發。 例子: 2_1: "我的丈夫肯特在國外工作。這也是為什麼你沒看到他在這裏。#$b#我堅信只要我家肯特的旅途結束了,就會安全回家的!!#$e#需要什麼東西嗎?" |
<星期幾> <幾心> _<1或2年> <dayOfWeek> <hearts> _<firstOrLaterYear>
|
在1或2年的某一年,根據你所填的星期幾並且你與NPC至少有<hearts> 心好感將會觸發此對話。指定好感<hearts> 將會讀取10,8,6,4,2這幾個數值(不填任何數字則為0),優先度為10>8>6>4>2>0(除此之外的數值無法被讀取,比如說1)Bug: 僅當一個等效的 <dayOfWeek> <hearts> 密鑰也存在時才顯示。例子: Thu2_2: "好吧,我爸回來了。你們見過了嗎?#$b#我很高興他能安然無恙地回來。" |
<星期幾> <幾心> <dayOfWeek> <hearts>
|
根據你所填的星期幾 並且你與NPC至少有<hearts> 心好感將會觸發此對話。指定好感<hearts> 將會讀取10,8,6,4,2這幾個數值(不填任何數字則為0),優先度為10>8>6>4>2>0(除此之外的數值無法被讀取,比如說1)例子: Sun4: "嘿,@.#$e#今天過得怎麼樣?" |
<星期幾> _<1或2年> <dayOfWeek> _<firstOrLaterYear>
|
在1或2年的某一年,根據你所填的星期幾將觸發此對話。 Bug:只有當等效的 <dayOfWeek> 密鑰存在時才顯示。例子: Sat_1: "爸爸快要回來了!#$b#我希望爸爸能給我帶些玩具回來。$u" |
<星期幾> <dayOfWeek>
|
根據你所填的星期幾將會觸發此對話。 例子: Mon: "嗨嗨!你正在休息嗎?" |
備用方案
如果以上對話都不存在,那麼遊戲會從Strings\StringsFromCSFiles.xnb自動讀取密鑰為NPC.cs.4061的對話. (我去查了,結果是: "嗨。"……好吧,作者偷懶我懂。)
為了讓大家方便,我這裏就直接提供我個人整理過的一般對話模板,當天節日對話是需要通過CP的content載入+TMXL的節日站位搭配使用,以下為麻薯君(感謝貼吧@你的麻糬君丫*我謝我自己*)提供的模板:
{
//SPECIAL DIALOGUE
"Introduction": "",//介绍
"danceRejection": "",//有人邀请或者好感没到的拒绝跳舞对话
"divorced": "",//分手之后的对话
"breakUp": "",//离婚之后的对话
"dumped_girls": "",//触发修罗场(女之后的对话
"secondChance_girls": "",修罗场7天后的原谅对话
"dumped_guys": "",//同上(男修罗场
"secondChance_guys": "",//同上(男修罗场
"stardrop_gift": "",//14心伴侣送星之果实对话
"give_flowersA": "",//送花的对话
"give_flowersB": "",//同上,为版本2
"give_pendant": "",//求婚
"rejectNPCA": "",//交往被拒绝
"rejectNPCB": "",//同上,为版本2
"reject_two_heartA": "",//同上,二心以上
"reject_two_heartB": "",//同上,二心以上,为版本2
"reject_four_heartA": "",//同上,四心以上
"reject_four_heartB": "",//同上,四心以上,为版本2
"engageA": "",//与别人订婚时求婚
"engageB": "",//同上,为版本2
"marriedA": "",//与别人结婚后求婚
"marriedB": "",//同上,为版本2
"refusal_knownA": "",不可攻略的角色被求婚的对话
"refusal_knownB": "",//同上,为版本2
"refusal_botherA": "",不可攻略的角色被求婚的对话(不要问我差别,我也不懂
"refusal_botherB": "",//同上,为版本2
"refusal_no_heartsA": "",不可攻略的角色被求婚的对话(为0心
"refusal_no_heartsB": "",//同上,为版本2
//节日对话
"spring_1": "",//新年
"spring_12":"",//蛋蛋节前一天
"Spring_23":"",//花舞节前一天
"summer_10":"",//宴会前一天
"summer_27":"",//月光水母前一天
"fall_15":"",//展览会前一天
"fall_26":"",//万灵节前一天
"winter_7":"",//冰雪节前一天
"winter_24":"",//冬日星节日前一天
//春季和一般对话
"Mon":"",
"Mon2":"",
"Mon4":"",
"Mon6":"",
"Mon8":"",
"Mon10":"",
"Tue":"",
"Tue2":"",
"Tue4":"",
"Tue6":"",
"Tue8":"",
"Tue10":"",
"Wed":"",
"Wed2":"",
"Wed4":"",
"Wed6":"",
"Wed8":"",
"Wed10":"",
"Thu":"",
"Thu2":"",
"Thu4":"",
"Thu8":"",
"Thu10":"",
"Fri":"",
"Fri2":"",
"Fri4":"",
"Fri6":"",
"Fri8":"",
"Fri10":"",
"Sat":"",
"Sat2":"",
"Sat4":"",
"Sat6":"",
"Sat8":"",
"Sat10":"",
"Sun":"",
"Sun2":"",
"Sun4":"",
"Sun6":"",
"Sun8":"",
"Sun10":"",
//夏季对话~
"summer_Mon":"",
"summer_Mon2":"",
"summer_Mon4":"",
"summer_Mon6":"",
"summer_Mon8":"",
"summer_Mon10":"",
"summer_Tue":"",
"summer_Tue2":"",
"summer_Tue4":"",
"summer_Tue6":"",
"summer_Tue8":"",
"summer_Tue10":"",
"summer_Wed":"",
"summer_Wed2":"",
"summer_Wed4":"",
"summer_Wed6":"",
"summer_Wed8":"",
"summer_Wed10":"",
"summer_Thu":"",
"summer_Thu2":"",
"summer_Thu4":"",
"summer_Thu6":"",
"summer_Thu8":"",
"summer_Thu10":"",
"summer_Fri":"",
"summer_Fri2":"",
"summer_Fri4":"",
"summer_Fri6":"",
"summer_Fri8":"",
"summer_Fri10":"",
"summer_Sat":"",
"summer_Sat2":"",
"summer_Sat4":"",
"summer_Sat6":"",
"summer_Sat8":"",
"summer_Sat10":"",
"summer_Sun":"",
"summer_Sun2":"",
"summer_Sun4":"",
"summer_Sun6":"",
"summer_Sun8":"",
"summer_Sun10":"",
//秋季对话~
"fall_Mon":"",
"fall_Mon2":"",
"fall_Mon4":"",
"fall_Mon6":"",
"fall_Mon8":"*",
"fall_Mon10":"",
"fall_Tue":"",
"fall_Tue2":"",
"fall_Tue4":"",
"fall_Tue6":"",
"fall_Tue8":"",
"fall_Tue10":"",
"fall_Wed":"",
"fall_Wed2":"",
"fall_Wed4":"",
"fall_Wed6":"",
"fall_Wed8":"",
"fall_Wed10":"",
"fall_Thu":"",
"fall_Thu2":"",
"fall_Thu4":"",
"fall_Thu6":"",
"fall_Thu8":"",
"fall_Thu10":"",
"fall_Fri":"",
"fall_Fri2":"",
"fall_Fri4":"",
"fall_Fri6":"",
"fall_Fri8":"",
"fall_Fri10":"",
"fall_Sat":"",
"fall_Sat2":"",
"fall_Sat4":"",
"fall_Sat6":"",
"fall_Sat8":"",
"fall_Sat10":"",
"fall_Sun":"",
"fall_Sun2":"",
"fall_Sun4":"",
"fall_Sun6":"",
"fall_Sun8":"",
"fall_Sun10":"",
//冬季对话
"winter_Mon":"",
"winter_Mon2":"",
"winter_Mon4":"",
"winter_Mon6":"",
"winter_Mon8":"",
"winter_Mon10":"",
"winter_Tue":"",
"winter_Tue2":"",
"winter_Tue4":"",
"winter_Tue6":"",
"winter_Tue8":"",
"winter_Tue10":"",
"winter_Wed":"",
"winter_Wed2":"",
"winter_Wed4":"",
"winter_Wed6":"",
"winter_Wed8":"",
"winter_Wed10":"",
"winter_Thu":"",
"winter_Thu2":"",
"winter_Thu4":"",
"winter_Thu6":"",
"winter_Thu8":"",
"winter_Thu10":"",
"winter_Fri":"",
"winter_Fri2":"",
"winter_Fri4":"",
"winter_Fri6":"",
"winter_Fri8":"",
"winter_Fri10":"",
"winter_Sat":"",
"winter_Sat2":"",
"winter_Sat4":"",
"winter_Sat6":"",
"winter_Sat8":"",
"winter_Sat10":"",
"wintar_Sun":"",
"winter_Sun2":"",
"winter_Sun4":"",
"winter_Sun6":"",
"winter_Sun8":"",
"winter_Sun10":"",
}
婚後對話
在遊戲文件里Characters\Dialogue\MarriageDialogue.xnb是放置所有NPC的婚後對話,每個NPC可以選擇屬於自己的對話文件,比如阿比蓋爾的Characters\Dialogue\MarriageDialogueAbigail.xnb。當遊戲查找對話時,它會使用NPC文件中的Key/對話(如果有這個格式的對話存在的話),否則會使用預設婚後對話或者默認對話(不過默認對話基本上都是空的)。 每一個對話里擁有的密鑰格式來自於以下其中一個格式:
密鑰格式(key format) | 描述(description) |
---|---|
<季節> _<1到28日> <season> _<day>
|
根據你所填的季節<season> 日子<day> 將會觸發此對話。例子: fall_1: "這個氣氛……我不會感覺錯的,角落的蘑菇、散落的枯葉、橘色的南瓜……是只有在秋天才看得到的景色。就在今天,秋季降臨了,我說的沒錯吧?親愛的?" |
露台_<伴侶> patio_ <spouse>
|
當你的伴侶在你出貨箱右上的平台刷新時,就會觸發此對話。*通常是在非雨天/非雪天會刷新。* |
<天氣> _<白天或晚上> _<隨機> <weather> _<dayOrNight> _<random>
|
婚後日常對話。<weather> 可以填充Rainy或者Indoor,前者是下雨天的情況,後者是除雨天以外的天氣。(雖然不知道為什麼指令是Indoor「室內」,但指令就是這樣……) <dayOrNight> 可以填充Night或者Day,前者是遊戲時間為下午6點以後會觸發的對話,後者為下午6點以前觸發。<random> 可以填寫的內容是0,1,2,3,4,所以你會有五個對話且隨機觸發。例子: Rainy_Night_3: "每當夜幕降臨,我很喜歡把家裏的燈光調暗一點,然後好好地聆聽那份寂靜……$8" |
好玩/快樂/有趣離去_<伴侶名字> funLeave_ <spouse>
|
未完成的指令,當你的伴侶在家裏準備出門去鵜鶘鎮逛逛時會觸發的對話。(但是原文只是給出了TODO*task yet to be done*未完成的指令。) |
工作離去_<伴侶> jobLeave_ <spouse>
|
未完成的指令,當你的伴侶在家裏準備出門回到ta們的工作崗位時會觸發的對話。(只限原版NPC即潘妮、瑪魯和哈維。不確定未來會不會更完善。) |
好玩/快樂/有趣回家_<伴侶名字> funReturn_ <spouse>
|
當你的伴侶在下午一點之後回到家裏但還未抵達ta們的目標坐標,會觸發這個對話, 只限星期一觸發 (給任何NPC)或者星期五(如果不是瑪魯/哈維/潘妮)。 例子: funReturn_Abigail: "嘿!今天你過得好嗎?我過得很好哦。散步果然使人精神振奮呢。$h" |
工作回家_<伴侶> jobReturn_ <spouse>
|
當你的伴侶在下午一點之後回到家裏但還未抵達ta們的目標坐標,但只限於funReturn不被顯示。 例子: jobReturn_Penny: "#$c .5#晚上好。我今天很好,感謝!那你過得怎麼樣?$h#$e#賈斯和文森特今天表現不太好。我還是很擔心…" |
<季節> _<伴侶> <season> _<spouse>
|
當你和伴侶有達到9心以上的好感,將會有5%概率觸發此對話。 例子: fall_Abigail: "我是不是聞到了你身上的南瓜味?或者事實是我在發白日夢……$h" |
戶外_<伴侶> Outdoor_ <spouse>
|
有20%的概率觸發伴侶在家外面站着時會觸發此對話。 例子: Outdoor_Abigail: "我就呆在這裏,好嗎?#$e#這裏有好多稀奇古怪的昆蟲和東西在!*咯咯笑*$h" |
戶外_<隨機> Outdoor_ <random>
|
有80%的概率觸發伴侶在家外面站着時會觸發此對話。<隨機> 可以填寫的內容是0,1,2,3,4,所以你會有五個對話且隨機觸發。例子: Outdoor_3: "我們的地產包含了洞穴可真是太贊了!那是我夢寐以求的事情!$h" |
伴侶房_<伴侶> spouseRoom_ <spouse>
|
當伴侶位於ta們的伴侶房時會觸發的對話。 例子: spouseRoom_Abigail: "$c .5#我比你起得早,我就去餵了小大衛。它整個早晨都很興奮呢。#$e#我希望你不介意豚鼠的味道。" |
一個孩子_<隨機> OneKid_ <random>
|
如果你有一個孩子,並且你的伴侶位於廚房,將會觸發此對話。<隨機> 可以填寫的內容是0,1,2,3,4,所以你會有五個對話且隨機觸發。OneKid_1: "我在想,%kid1會不會長大以後變成和你一樣的農夫?" |
兩個孩子_<隨機> TwoKids_ <random>
|
如果你有兩個孩子,並且你的伴侶位於廚房,將會觸發此對話。<隨機> 可以填寫的內容是0,1,2,3,4,所以你會有五個對話且隨機觸發。TwoKids_2: "我夢到了關於%kid2長大之後變成了著名的怪物獵人。我甚至開始想着小小裝備套裝了。" |
<感情> _<隨機> <affection> _<random>
|
當伴侶在家裏並且是早上11點到下午6點時或者當天的對話並沒有達成以上情況時,會觸發此對話。<感情> 隨機的內容為當伴侶好感為9心以下,50%概率觸發感情不和Bad 或者 感情平淡Neutral的對話; 10心以上50%概率觸發感情美滿Good的對話或者11心以上75%概率觸發感情美滿Good的對話;除此之外的概率將會觸發感情平淡Neutral的對話。<隨機> 可以填寫的內容是0,1,2,3,4,5,6,7,8,9,所以你會有10個對話且隨機觸發。例子: Good_5: "我只是在好好欣賞一下我的美人魚吊墜……直到死亡,我會很自豪地讓它陪伴我身邊。$l" |
為了讓大家方便,我這裏就直接提供我親友整理過的婚後對話模板,以下為萌新(感謝貼吧@萌新不萌新-)提供的模板:
{
"Rainy_Day_0": "",//下雨天白天
"Rainy_Day_1": "",
"Rainy_Day_2": "",
"Rainy_Day_3": "",
"Rainy_Day_4": "",
"Rainy_Night_0": "",//下雨天晚上
"Rainy_Night_1": "",
"Rainy_Night_2": "",
"Rainy_Night_3": "",
"Rainy_Night_4": "",
"Indoor_Day_0": "",//室内白天
"Indoor_Day_1": "",
"Indoor_Day_2": "",
"Indoor_Day_3": "",
"Indoor_Day_4": "",
"Indoor_Night_0": "",//室内晚上
"Indoor_Night_1": "",
"Indoor_Night_2": "",
"Indoor_Night_3": "",
"Indoor_Night_4": "",
"Outdoor_0": "",//门口
"Outdoor_1": "",
"Outdoor_2": "",
"Outdoor_3": "",
"Outdoor_4": "",
"OneKid_0": "%kid1",//第一个孩子
"OneKid_1": "",
"OneKid_2": "",
"OneKid_3": "",
"OneKid_4": "",
"TwoKids_0": "%kid2",//第二个孩子
"TwoKids_1": "",
"TwoKids_2": "",
"TwoKids_3": "",
"TwoKids_4": "",
"Good_0": "",//高心几率对话
"Good_1": "",
"Good_2": "",
"Good_3": "",
"Good_4": "",
"Neutral_0": "",
"Neutral_1": "",
"Neutral_2": "",
"Neutral_3": "",
"Neutral_4": "",
"Bad_0": ".",//低心几率触发
"Bad_1": "",
"Bad_2": "",
"Bad_3": "",
"Bad_4": "",
"spring_1": "",//每年春1对话
"spring_12": "",//复活节前一天对话
"spring_23": "",//花舞节前一天对话
"summer_1": "",//每年夏1对话
"summer_10": "",//夏威夷宴会前一天对话
"summer_28": "",//水母节当天对话
"fall_1": "",//每年秋1对话
"fall_15": "",//展览会前一天对话
"fall_26": "",//万灵节当天对话
"winter_1": "",//每年冬1对话
"winter_7": "",//冰雪节前一天对话
"winter_23": "",//冬日星前一天对话
"winter_28": "",//当年最后一天对话
"patio_Michael": "",//在外面天井的对话(Michael记得改为你自己的崽的名字)
"spouseRoom_Michael": "",//在配偶房的对话(Michael记得改为你自己的崽的名字)
}
事件文件
Data\Events\*.xnb包含了事件腳本,事件里也有全部的對話。(看看 使用模組:事件數據).
動畫描述
Data\animationDescriptions.xnb包含了簡短的動畫描述,以配合行程上所顯示的動作。(這裏我來說明一下,行程有兩種方式可以顯示對話/描述,一種是行程對話scheduledialogue,另外的就是動畫描述animationDescriptions,如果你想要NPC在行程里有顯示動畫和對話,需要額外給animation加上描述才能同時擁有動畫和對話,行程對話在動畫時是無法顯示的,這點請各位注意一下。)
Strings from CS 文件
Strings\StringsFromCSFiles.xnb包含了各種各樣的預設對話。這個文件里有着預設好的對話、大部分NPC共同使用的對話(比如NPC會說ta們的XXX喜歡/討厭什麼東西)、硬核事件(比如婚禮的致辭)等等。
這個文件的條目格式為"<key>": "對話字符串" "<key>": "dialogue string",它可以是任意的特殊標識符。這些鍵必須完全匹配遊戲裏所需要的鍵,但這些鍵只是遊戲專屬的特殊標識符— 即使這些鍵看起來就像<file name>
.<line number>
,這最初只是用於分配IDs的,並且這些IDs沒有任何意義或者作用。(甚至它也不需要匹配當前的文件名或行號)。*說句一般人看得懂的話,其實就是StringsFromCSFiles這個文件里的對話全部都是無法被我們添加進入遊戲代碼里,最多只能通過某些小手段把dialogue string改成你想要的句子*
NPC-specific通用對話
- 如果你使用的是上面對話模板的"give_flowersA"和"give_flowersB",你還需要額外去下載Canon-Friendly Dialogue Expansion for All Friend-able Characters來運行這個對話,唯一缺點就是如果有其他NPC模組是沒有這些對話,會陷入死循環。*
用點小聰明,你可以讓每個NPC做出不同的反應,而不是使用常規的預設對話。打個比方,你可以使用CP模組Content Patcher來改變NPC.cs.3962 和NPC.cs.3963 (送花交往對話反應),與NPC.cs.3980 (送吊墜求婚對話反應):
{
"Action": "EditData",
"Target": "Strings/StringsFromCSFiles",
"Entries": {
"NPC.cs.3962": "$q 10001 give_flowersA#?!...#$r 10001 0 give_flowersA# [送出花束]",
"NPC.cs.3963": "$q 10001 give_flowersB#?!...#$r 10001 0 give_flowersB# [送出花束]",
"NPC.cs.3980": "$q 10001 give_pendant#?!...#$r 10001 0 give_pendant# 你愿意和我结婚吗?"
}
}
以這個為例子,每一個NPC會從角色對話文件里的give_flowersA, give_flowersB, 和 give_pendant 讀取對應的反應對話. (看看以下格式的信息可以了解更多的語法)記得要把全部可婚NPC都要加上,否則會有BUG。例子,你可以給海莉加上這個:
{
"Action": "EditData",
"Target": "Characters/Dialogue/Haley",
"Entries": {
"give_flowersA": "噢,这花束真漂亮。$1#$b#...什么?你想要成为我的男朋友?$8^...什么?你想要成为我的女朋友?$8#$b#....我以为我们已经在一起了。$1",
"give_flowersB": "哦哦哦,@! 我愿意成为你人生中的真命天子。$1",
"give_pendant": ".....$8#$b#@,我不知道我现在该说什么……$8#$b#...$7#$b#好...我接受了...$4#$b#我等不及要告诉镇长这个消息了... 我想全部计划得花上3天就能准备好。$1"
}
}
這個可以添加其他通用對話,你甚至可以通過已經回答問題的IDs來避免「送花束」的重複問答。*原文直譯不太行,我來解釋一下,使用$q指令的問答對話會有對應的ID,比如上面使用的是$q 10001(作為問題ID)和$r 10001(作為回答ID),回答後的回答ID會被遊戲存檔記錄,所以也有可能會導致向其他NPC求婚時會出現BUG。總結一下就是,建議使用這個對話格式而不是上面有問答ID的*
運算法
從遊戲裏發現下列對話:
- 事件對話從適當的事件命令中讀取 (看看模組目錄:事件數據).
- 特定位置的對話從 StringsFromCSFiles
<location>
.cs讀取。 - 其他角色對話文件將從角色-特定文件讀取。
- 如果找不到對話,遊戲就訴諸於 StringsFromCSFiles 文件硬編碼的對話(特殊鍵的前置為 NPC.cs NPC.cs).
格式
對話內容包含了可以改變對話框的tokens和commands, 改變內容(比如說根據玩家當前性別讀取對應性別的對話),注入值等等。這些都被解析為Dialogue分類。
特殊tokens:
密鑰格式(key format) | 描述(description) |
---|---|
# | 把兩個對話指令隔開的符號。 |
{ | 未完成的指令,用於"breakSpecialCharacter"指令。*反正我們現在沒有用到就是了* |
^ | 根據玩家性別切換對話的指令。這個符號的前面句子是男性玩家可見,符號後面為女性玩家可見。 例子: 早上好,@先生!^早上好,@小姐!
|
% | 把帶有人物肖像的對話框變成旁邊式對話框。 例子: "%阿比盖尔沉迷于她的歌曲里"
|
* | 未完成的指令,用於"quickResponseDelineator"指令。*不過大部分人用於表示某些情緒或者動作,比如說*笑*、*嘀咕*、*打哈欠*、*打噴嚏*等等,某種意義上是偷懶專用* |
肖像指令
下列指令是用於切換對話框右側的NPC表情的。表情指令通常放在句子的最後一個:
"fall_Fri6": "在我很小的时候,爸爸就领养了我。$s#$b#抱歉,我可能又说了让你不舒服的话了……$u#$e#算了……今天你的农场打理得怎么样?",
密鑰格式(key format) | 描述(description) |
---|---|
$neutral | 切換角色表情為默認/一般表情。 |
$h | 切換角色表情為開心表情。 |
$s | 切換角色表情為傷心表情。 |
$u | 切換角色表情為特殊表情。 |
$l | 切換角色表情為臉紅/喜歡表情。 |
$a | 切換角色表情為生氣表情。 |
$<id>
|
根據id的數字切換對應位置的表情。這些肖像ID順序從左到右,從上到下並以$0開始計算。全部角色都有固定6個基礎表情: $0 (默認/一般), $1 (開心), $2 (傷心), $3 (特殊), $4 (臉紅/喜歡), and $5 (生氣)。你可以為角色創造自製表情以用在對話或者事件劇情里。 注意: $1不能放在對話的最前面,因為會和以下的指令衝突(參考下面的$1)。 |
對話指令
$q <回答ID> <回饋> #<內容> $q <response IDs> <fallback> #<text>
|
提出問題的對話格式(問答對話指令的前綴)。如果<response IDs> (根據你是選擇了前面的回答ID或者後者的ID,這個/ 是用來隔開回答ID)已經在之前回答問題時已經觸發過,那麼問題將會直接讀取你對應的回答反應(或者這段對話的其他部分),除此之外,如果你上一次已經回答過這個問答,<fallback> 可以搭配$p指令來製作下一次遇到這個問題時會說的話。注意: 問答ID需要是獨一無二的,和事件一樣,以防止和其他NPC的問答ID衝突而導致對話被跳過。可以去看看這個事件的界面以得到更多資訊。
|
$r <回答ID> <增加多少好感度> <反應> #<答案1的內容> $r <response ID> <friendship> <reaction> #<answer text>
|
為$q問答對話添加回答選項。 <answer text> 是你想要給玩家選擇的回答。<response ID> 是將對應的回答歸類為你所填充的ID,以此讓你能在以後的某些指令使用(同一個ID可以同時被多個回答歸類)。 <friendship> 是玩家選擇這個答案之後可以讓NPC的好感度產生變化,正數會增加好感,負數為減少好感。<reaction> 是玩家回答後根據答案所填充的<reaction> 讀取對應NPC反應,基本上是在Content\Characters\Dialogue\*.xnb文件里讀取這個對話(事件也是一樣,反應的對話在Dialogue)。
|
$p <回答ID> #<達成ID的內容> |<沒有達成的內容> $p <response ID> #<match text> |<no-match text>
|
p代表"對話的先決條件"(dialoguePrerequisite)。根據之前玩家所回答的ID而顯示不同的對話。如果之前玩家選擇的回答和這個<response ID> 是一樣的,那麼<match text> 將會被顯示;相反的,如果沒有選擇到對應ID,<no-match text> 就會被顯示. 這些對話內容是使用| 這個符號分開不同內容。可以使用# 來搞出多個內容(雖然目前我只看到兩個內容,不知道三個以上的內容是否存在)。這並不需要是對話字符串中的第一個命令(就是你可以在一般對話之後放<$p> 指令,雖然,這樣的變化我也沒試過……希望有個好人可以幫忙驗證真假)。
|
$b | 暫時停止對話,直到玩家點一下對話框就可以延續<$b> 以後的對話。(這裏舉個明顯可以看到差別的例子,那就是對話框右下方或者人物肖像的左下方,會出現向下的箭頭。)
|
$e | 結束當前對話,並且關閉對話框使玩家可以恢復行動。再次與NPC對話才能觸發$e以後的對話。(這裏舉個明顯可以看到差別的例子,那就是對話框右下方或者人物肖像的左下方,會出現中間有X的小方格,並且你可以看到對話框縮小並消失。) |
$k | 未完成的指令。代表"對話殺死"(dialogueKill)。(貌似至今為止是沒有看過作者使用,看看未來有沒有被賦予意義) |
$c <概率> #<內容1> #<內容2> $c <probability> #<text1> #<text2>
|
根據<probability> 0到1以內的概率顯示<text1> 的對話內容;除此之外,將觸發<text2> 的對話內容。比如:$c 0.9 是90%概率會觸發<text1> 並且剩餘的10%概率會觸發<text2> 。 注意: 替代器命令(在下方可見)不能在<text1> 正常運行。這並不需要是對話字符串中的第一個命令(指可以放在正常對話的後面)。這個完全不看遊戲內的運氣。(警告:由於不看遊戲內運氣且星露谷的概率不是一般抽卡遊戲的偽隨機*指有保底*,所以如果要搞這個隨機對話最好不要像我把條件弄得太嚴苛*我的條件是限第一年夏季星期二6心好感50%概率觸發*如果不是想要搞個小彩蛋真的沒必要……)
|
$d <bus|joja|cc|kent>
|
"根據世界狀態而顯示的對話"(dialogueDependingOnWorldState)
|
$y | 未完成的指令。代表"對話快捷反應"(dialogueQuickResponse):一個簡單的問答對話。類似$q指令的運作,但是是一個且都是在同一個文本里。它並沒有"對話的先決條件"(dialoguePrerequisite)$p或者好感度變化。它可以直接被觸發。(注意:你只能放置在對話字符串的最後一個,否則你的問題、回答和反應都會亂成一團糟。如果不信邪可以嘗試複製壞例子的那個對話並且粘貼到隨便一個NPC,然後進入遊戲測試會發生什麼事) 例子1: Penny: "$y '要來份早飯嗎?_是的,謝謝。_好,給你。_不了,我感覺很好。_那額外的就給我吃啦!'" 例子2: Sun4: "嗨,@先生。^嗨,@小姐。#$b#今天天氣不錯……#$b#$y '要來我家吃飯嗎?_當然。_那就那麼說定了!_抱歉,我今天很忙。_沒關係,下次再來吧'" 壞例子: Sun4: "嗨,@先生。^嗨,@小姐。#$b#今天天氣不錯……#$b#$y '要來我家吃飯嗎?_當然。_那就那麼說定了!_抱歉,我今天很忙。_沒關係,下次再來吧'#$e#今天要招待什麼料理呢~" |
$1 <信件ID> #<第一次看到的內容> #$e# <第N次以後的內容> $1 <letter ID> #<1st-time text> #$e# <nth-time text>
|
創造一個玩家(幾乎)只能看到一次該NPC的對話。<1st-time text> 只會在<letter ID> 還沒被標記(並且沒有被標記後送出去);相反的, <nth-time text> 將被觸發。<letter ID> 不應該對應於實際的郵件(因為它不會被寄出),但是它可以被事件或其他對話線引用。
|
%fork | 設置specialEventVariable1變量,可以通過後面的fork事件命令來檢查。主要用於事件期間$q問題的反應對話。(總結:新手不要先接觸,變量說來話長,在 事件指令里看看詳細用法吧) |
[# # #] | 根據格子所填充的三個物品ID,隨機給出一樣物品。(一個格子一次性只能隨機三樣物品)如果是[231][120]分開放置物品ID,那麼你可以一次性得到兩個物品。(當然,兩個格子各放三個物品ID也是可以的,只需要記得最多只能放三個物品ID) |
問答例子
為了能夠更了解$q、$r和$p如何運作,看這裏的例子作為參考可以幫助你。請注意如何格式化腳本更容易閱讀:
summer_Fri:
"我想我明天会去海滩玩!
#$q 305/306 beachquestion_followup#你想要跟我来吗?
#$r 305 15 beachquestion_yes#当然,我超喜欢!
#$r 306 0 beachquestion_sorry#噢,对不起,我已经和别人约好了……
#$r 306 -10 beachquestion_no#不用了,谢谢。
",
beachquestion_yes: "好耶!是约会!$h",
beachquestion_sorry: "淦,好吧。$6",
beachquestion_no: "哦,呃,我很抱歉。$s",
beachquestion_followup:
"$p 305
#明天一定可以玩得很开心!$h
|哎,要是有个人能陪我,那该有多好……$s
",
summer_Sat:
"每年这个时候的海滩都很赞……
#$p 305
#谢谢你今天陪我来这里。$h
|哦,你好,@,今天过得怎么样?
",
以上對話在夏季的任何星期五觸發。NPC的對話開頭總是觸發: "我想我明天會去海灘玩!"
之後,ta會開始問你問題
#$q 305/306 beachquestion_followup#你想要跟我来吗?
$q 開始提問。 305/306檢查這個問題是否在以前觸發過,如果有就會直接把你的對話送到beachquestion_followup這個對話密鑰。(你可以隨意你的對話密鑰以方便你找到/知道/運作/檢查)
之後,就是玩家可以回答的答案。你可以增加多少個 $r都沒問題;這裏,我們則是三個:
#$r 305 15 beachquestion_yes#当然,我超喜欢!
#$r 306 0 beachquestion_sorry#噢,对不起,我已经和别人约好了……
#$r 306 -10 beachquestion_no#不用了,谢谢。
如果你表示同意(指第一個回答),遊戲將會記錄 ID 305作為你回答問題的答案。之後,你和那個角色的好感度增加了15點數。 beachquestion_yes就會被觸發並延續剛剛問答對話。
如果你表示拒絕(指第二和第三個回答)遊戲將會記錄ID 306 作為你回答問題的答案,然後根據你選擇的回答保持不變,0或者減少好感,-10。之後會讀取beachquestion_sorry或者beachquestion_no來繼續你的對話。
現在我們需要給對話密鑰加上反應:
beachquestion_yes: "好耶!是约会!$h",
beachquestion_sorry: "淦,好吧。$6",
beachquestion_no: "哦,呃,我很抱歉。$s",
beachquestion_followup:
"$p 305
#明天一定可以玩得很开心!$h
|哎,要是有个人能陪我,那该有多好……$s
",
這裏需要注意的是beachquestion_followup。當玩家再一次觸發這個對話時,$q 305/306會被檢測以判定是開始問問題或者直接讀取這個對話。
$p 305開啟了一個變量反應,意思是"如果玩家選擇的是同意,那麼會觸發前者的對話。相反則觸發後者的對話"。如果玩家回答的是同意,那個NPC會表現開心。相反,ta會說ta需要找人陪ta一起去。
這裏隔天會觸發另外一個變量反應:
summer_Sat:
"每年这个时候的海滩都很赞……
#$p 305
#谢谢你今天陪我来这里。$h
|哦,你好,@,今天过得怎么样?
",
依舊是第一行,每一次玩家與NPC對話的第一句都會是(每年這個時候……),但是下一行是根據昨天玩家所選擇的答案來顯示出對應對話內容。
這裏是另一個從海莉的對話文件里拿出來的例子。注意一下,即使腳本格式很難讀懂,但遊戲能夠同時處理這兩種格式。
summer_Sat: "农场的活好像很无聊的样子……#$q 42/43 summer_Sat_old#一天都干什么呢?#$r 42 10 summer_Sat_12#护理植物#$r 42 10 summer_Sat_12#探索山洞#$r 43 -10 summer_Sat_13#在你的房间里面转#$r 42 10 summer_Sat_12#挖宝藏" #!String
summer_Sat_old: "#$p 43#嘿,你最好别在我房间里偷偷摸摸的!!$a|不过我估计你没准能练出个好身材。" #!String
summer_Sat_12: "嗯……听起来是个大工程。" #!String
summer_Sat_13: "什么?你最好别有这个想法!$a" #!String
第一回觸發的summer_Sat
,將會觸發42或者43的反應(因為這個問題是唯一有它們作為回答的問題),所以海莉會說 "農場的活好像很無聊的樣子……一天都幹什麼呢?" 玩家可以選擇以下其中一個回答:
- 護理植物
- 探索山洞
- 在你的房間裏面轉
- 挖寶藏
第三個回答,$r 43 -10 summer_Sat_13#在你的房间里面转
,回答被記錄為ID 43,減少10點海莉的好感度並且觸發這個對話summer_Sat_13
(海莉說 "什麼?你最好別有這個想法!")。其他回答則被記錄為ID 42,增加10點海莉的好感度並且觸發這個對話summer_Sat_12
("嗯……聽起來是個大工程。").
下一次觸發的summer_Sat
,將給出$q
命令中列出的一個回答ID(42或43)。因此,$q
和以後的內容被廢棄,並且對話summer_Sat_old
會代替這個空缺的位置。這個新對話使用了$p
指令來改變海莉的對話,根據你上次回答ID是43或者是42來觸發對應對話。如果你之前回答的是"在你的房間裏面轉",在這個符號|
之前的對話會被觸發,所以海莉將會說"農場的活好像很無聊的樣子……嘿,你最好別在我房間裏偷偷摸摸的!!" 如果不是ID 43被記錄(在這個情況下,你一定是給出反應42的ID,打個比方,上次問答對話所選擇的三個里其中一個回答),在這個符號|
之後的對話會被觸發,所以海莉反而會說 "農場的活好像很無聊的樣子……不過我估計你沒準能練出個好身材。"
替代器命令
替換器命令將被替換為相關字符串。注意只有@在信件條目能夠運作。(目前來看好像只有事件里的message不能使用@,望補充)
@ | 玩家的名字。 例子: 嗨,@!
|
%adj | 隨機形容詞。 (從Content/Strings/StringsFromCSFiles.xnb讀取) |
%noun | 隨機名詞。(從Content/Strings/StringsFromCSFiles.xnb讀取) |
%place | 隨機地點名字。(從Content/Strings/StringsFromCSFiles.xnb讀取) |
%spouse | 玩家伴侶名字。 |
%name | 一個隨機生成的名稱。(雖然,不太情況多隨機) |
%firstnameletter | 玩家名字的前半部分(四捨五入),比如 Nat如果玩家名字是Natalie。(不清楚其他語言是怎麼運作,望補充) |
%time | 當前遊戲時間。 |
%band | 山姆和賽巴斯的樂隊名字。 |
%book | 艾利歐特寫的書的標題。 |
%rival | 根據玩家性別並從StringsFromCSFiles.xnb隨機生成一個姓名。(從Utility.cs.5499到Utility.cs.5560) 不會和農夫的名字匹配。 |
%pet | 玩家寵物的名字。 |
%farm | 農場的名字。比如:聽聞%farm農場的農場主是位年輕人…… |
%favorite | 玩家在開頭填寫的喜歡的東西。(建議不要亂填,要不然對話會很搞笑) |
%kid1 | 玩家第一個孩子的名字。 |
%kid2 | 玩家第二個孩子的名字。 |
價值Values
遊戲在一些對話里使用這些預定義的值。這個部分是需要和上面的東西連接使用。
星期里的某天/星期幾Days of week
- Mon 星期一
- Tue 星期二
- Wed 星期三
- Thu 星期四
- Fri 星期五
- Sat 星期六
- Sun 星期日
季節Seasons
- spring 春天
- summer 夏天
- fall 秋天
- winter 冬天
第一/第一以後的年份
雖然在遊戲裏的對話使用了"first/later year"這個值,但是它只有兩個是有效的:
密鑰格式(key format) | 描述(description) |
---|---|
1 | 發生在第一年。 |
2 | 發生在第一年以後的任何一年(就算不是第2年)。 |
回答IDs
回應ID標識了玩家在回應問題對話時所選擇的答案。在某些情況下,一個問題裏面可能會有多個答案具有相同ID的情況(比如各種各樣的"yes"),或者每個問題都使用一樣的ID(在這種情況下,ID只是顯示玩家已經回答或者還沒回答的問題)。
任何模組裏都可以使用自填ID,不過這裏提供了原版遊戲IDs,以1.3.36為準:
- 對話
NPC 問題 回答 阿比蓋爾 Sun2
@你覺得我們死後會變成什麼樣?17: 我不知道。
18: 我們會變成鬼魂。
17: 我們會上天堂。
18: 我們的能量體會進入靈界。
17: 什麼都不會發生。我們就是不存在了而已。阿比蓋爾 summer_Sun
好吧……假設你得到了一個帶薪假期。你會去哪兒?25: 海灘
26: 漆黑的山洞
26: 古老茂密的森林
25: 喬家購物廣場阿比蓋爾 fall_Sun
我想給我的頭髮重新染個色……你覺得什麼顏色好?27: 染成黑色吧。
27: 不妨試試金色吧?
27: 粉紅怎麼樣?
28: 我喜歡你現在的樣子!阿比蓋爾 winter_Sun
我畫了兩幅畫。你覺得怎麼樣?29: 我喜歡叢林海島和老虎這一幅。
30: 我喜歡拿着戰斧的獸人這一幅。
29: 我哪幅都不喜歡。亞歷克斯 Wed
我還想叫你一起投投球,但你好像不怎麼喜歡運動。^如果你不是女孩子,我就約你打球了。6: 我站在旁邊看就好了。
5: 我想和你打球!
5: (憤怒)你到底是什麼意思?亞歷克斯 summer_Wed
你覺得我能成為職業選手嗎?52: 你一定會成為運動場上的傳奇
52: 可能吧,你畢竟練習了那麼久
53: 別做夢了,你還是老老實實去做推銷員吧亞歷克斯 fall_Wed
你覺得女孩子會喜歡我的髮型嗎?^你覺得我的髮型怎麼樣?54: 看起來挺時尚的。
55: 像頭上長了蘑菇一樣。克林特 Mon
你一定猜不到我的曾祖父以前是一名……9: 鐵匠。
9: 一個糊塗的小丑
9: 一個尖酸刻薄的混蛋。海莉 summer_Sat
一天都幹什麼呢?42: 護理植物
42: 探索山洞
43: 在房子裏面轉
42: 挖寶藏海莉 fall_Sat
*唉*……你覺得我今天做點什麼好呢?44: 水彩畫
44: 閱讀雜誌
44: 安安靜靜的呆着(原文翻譯:快停止成為一個自私的愛哭鬼)莉亞 Mon
所以你為什麼要做一個農夫呢?21: 我想要賺很多很多的錢。
22: 住在這裏比住在城市裏要更「真實」。
211132: 為了追隨爺爺的腳步。
22: 我想要逃離我原來的生活。瑪魯 Sun
你在農場工作得開心嗎?3: 開心。
4: 不開心。瑪魯 summer_Thu
我下了決心,以後一定要自己做個機械人出來。35: 對你來說,應該是小菜一碟。
36: 你可別眼高手低了
35: 聽起來應該挺難的吧潘妮 Mon4
但果然還是不要總想着消極的一面吧?7: 沒錯。還是保持樂觀比較好哦!
8: 還是現實一點比較好吧。山姆 Wed
嘿……你覺得我的新歌該是什麼主題的?20: 耕種、挖礦和砍柴。
8820: 海中之城。
8821: 火車。
19: 隨便吧。反正都是難聽死的。賽巴斯 Fri2
那麼你是如何打發空閒時間的?15: 繼續耕種
16: 漫畫書
15: 採購
15: 運動賽巴斯 fall_Fri
你平時讀書嗎, @?62: 嗯。看些經典名著。
63: 只看科幻與奇幻作品。
62: 我喜歡言情作品。
63: 不,我不看書的。
- 事件
事件 問題 回答 阿比蓋爾四心事件 @!你怎麼站在雨里啊?$7 32: 我在幹活兒
32: 我在享受這種天氣
32: 我還想問你呢阿比蓋爾六心事件 你以前用過劍對麼? 847951: 沒錯,我覺得很刺激!
847951: 是的,但只是自衛而已
847951: 沒錯,但是太危險了。你不應該冒險。
847951: 沒有阿比蓋爾十心事件 *吸氣*$s 776589: 發生了什麼?
776589: 你還好嗎?阿比蓋爾十心事件 我可能沒有自己想像的那麼勇敢……$8 34: 和我在一起,你就安全了。
34: 我也害怕。
34: 你哭得就像個三歲小孩兒。別說了。亞歷克斯五心事件 我真沒用……$s 57: 才不是。你明明是個天才!
57: 我們都有自己的長處和短處。
57: 沒用?對,總結得很精闢。克林特三心事件 你有什麼秘訣嗎?^你能給我一些建議嗎? 211: 靠你的能力和魅力打動女性
211: 做些瘋狂的事情,讓別人猜不透你
211: 表現得正常一點兒……做你自己就好
211: 把女人當男人一樣對待德米特里厄斯六心事件 你覺得西紅柿算什麼? 59: 蔬菜
59: 水果艾利歐特二心事件 問個問題……你喜歡什麼樣的書, @? 958699: 懸念
958700: 浪漫
958701: 科幻艾利歐特四心事件 等等。讓我們舉杯慶祝一下!為了…… 28376: 鵜鶘鎮!
28376: 我們的友誼!
28376: 我們的健康!
28376: 你的命運!艾米麗六心事件 所以……*喘氣*……你感覺怎麼樣?$h 213: 這太奇妙了!
213: 真尷尬……
213: (保持沉默並緩緩鼓掌)艾芙琳四心事件 您覺得如何? 51: 很美味!
51: 就像在嚼冰球格斯四心事件 @,你有什麼事兒嗎? 207: 你現在就得把賒的賬給結了!
208: 酒吧在經濟上有些困難海莉二心事件 那是因為上周是我打掃的!$a 46: 少廢話,趕緊打掃!
45: 海莉,何不每周固定打掃一次呢?
46: 艾米麗,這次就去打掃吧。海莉四心事件 話說……你挺有勁的,對吧? 47: 是
47: 不是海莉六心事件 這東西現在已經買不到了……$s 48: 別擔心,我給你買個新的!
48: 太遺憾了……哈維二心事件 @你覺得喬治該怎麼做? 84: 喬治應該聽從哈維醫生的建議。
85: 喬治知道怎麼做對他的身體最好。哈維四心事件 嗯……你的心跳有點兒快。$u 86: 我有點緊張。
86: 我剛才在農場裏幹活,現在還沒喘過來氣。
86: 你真的是醫生嗎?我的心跳很正常!肯特三心事件 (跟肯特聊聊)$s 215: 這事怪喬迪……她本該知道的!
215: 我知道你內心很痛苦……但這也不能怨你老婆啊。
215: (撒謊)這事怪我……是我說要吃爆米花的。莉亞四心事件 我是不是太自私了 @?$s 83: 不,你只是做了必須做的事情。
83: 不,是你的前任太蠢了。
83: 不,但你其實應該待在城裏。
83: 對,有那麼一點兒。
83: 對,但人不為己天誅地滅。劉易斯六心事件 @……你什麼都聽到了,是麼?$s 200: 是的……但是我會保密的。
201: 是的……我要告訴大家。瑪魯二心事件 我說的沒錯吧, @? 15933: (什麼也不說)
15933: 其實,你爸剛剛可神秘了。瑪魯四心事件 @我應該怎麼辦? 38: 從地板上鏟起來就好。他不會發現的。
39: 告訴哈維是我的錯。
38: 告訴哈維,這純屬意外。瑪魯六心事件 你看到的是什麼? 40: 一顆美麗的星球。
40: 一片漆黑的深淵。瑪魯八心事件 真是對不起。$8 41: 沒關係,根本不疼的。
41: 抱歉就對了。簡直疼死人了!瑪魯十心事件 那麼,你覺得怎麼樣呢, @? 18981: 我認為你的發明很厲害。
18981: 我很失望……你不該讓那機械人成為你的奴隸的。
18981: 看來你爸對我們在一起是沒意見咯?
18981: (盯着瑪魯,什麼也不說)瑪魯十心事件 你會那麼說,肯定有原因……$a 18982: 瑪麗爾達就是一台設計用來模仿人類的機器。
18982: 我剛才是在開玩笑。瑪麗爾達應該享有自由的權力。
18982: 我會讓她去農場裏工作。潘妮二心事件 @?你看到了? 71: 沒錯,你做的很好,潘妮。
71: 你應該不管他的,現在他倒惱羞成怒了。
71: 我就散個步,不用管我。潘妮六心事件 ……怎麼樣? 72: (說謊)嗯嗯!真好吃!
73: 呃……我能把剩下的帶走嗎?
73: 真是特別的味道……你是怎麼把它做得那麼耐人尋味的?皮埃爾六心事件 發誓你不會把這事兒告訴任何人。 50: 我會為你保守秘密的。
50: 這事兒應該讓你太太知道。羅賓六心事件 你有沒有用木頭做過東西呢, @? 66: 有
66: 沒有山姆二心事件 說, @…… 你喜歡什麼樣的音樂? 76: 令人愉悅的流行樂。
77: 實驗性質的硬搖滾。
78: 極富能量的舞曲。
79: 氣氛活躍的鄉村音樂。山姆四心事件 ……告訴她吧, @。$s 80: 山姆把零食遞給我的時候掉到了地上。
80: 山姆把零食遞給我的時候被我弄掉了。
81: 山姆故意弄掉的。他覺得這樣很好玩。
對話主題
一個對話主題是一個可以在事件的先決條件中檢入的臨時flag並且可以觸發一次性NPC對話(如果它有一個達標的對話密鑰)。激活後,它們將被儲存到Game1.player.activeDialogueEvents里。
啟動對話主題可以通過使用addConversationTopic事件指令,%item conversationTopic 信件指令,或在代碼中添加它到Game1.player.activeDialogueEvents。
遊戲定義了這些事件:
id | 持續時間 | 觸發條件 |
---|---|---|
收集包 | ||
cc_Begin | 四天 | 在社區中心閱讀了第一條祝尼魔筆記後,在法師的過場動畫中設置。 |
cc_Complete | 四天 | 社區中心完成。(不適用於JoJa路線) |
cc_Boulder | 七天 | 深山的巨石被移除。 |
cc_Bridge | 七天 | 採石場的橋樑被修護。 |
cc_Bus | 七天 | 巴士站被修復好了。 |
cc_Greenhouse | 三天 | 溫室建好了。 |
cc_Minecart | 七天 | 礦車被解鎖了。 |
joja_Begin | 七天 | 當玩家第一次打開Joja社區發展申請書。 |
movieTheater | 三天 | 電影院建好了。 |
伴侶事件 | ||
elliottGone | 六天 | 當艾利歐特十四心事件開啟時設置。 |
ElliottGone1 ElliottGone2 ElliottGone3 ElliottGone4 ElliottGone5 ElliottGone6 ElliottGone7 |
一樣天數 | 艾利歐特十四心事件的一部分。第一個flag是在開始時設置的;隨後的flag是由艾利歐特隨後的信件設置的。 |
emilyFiber | 二心 | 艾米麗十四心事件的一部分。完成委託之後設置的。 |
haleyCakewalk1 haleyCakewalk2 |
一樣天數 | 海莉十四心事件的一部分。 |
leahPaint | 一樣天數 | 當莉亞十四心事件開啟時設置。 |
pennyRedecorating | 兩天 | 潘妮十四心事件的一部分。 |
samJob1 samJob2 |
兩天 | 山姆十四心事件的一部分。 |
samJob3 | 三天 | 山姆十四心事件的一部分。 |
sebastianFrog | 一樣天數 | 當塞巴斯蒂安十四心事件開啟時設置。 |
sebastianFrog2 | 六天 | 塞巴斯蒂安十四心事件的一部分。 |
shaneSaloon1 shaneSaloon2 |
一樣天數 | 謝恩十四心事件的一部分。 |
其他事件 | ||
dumped_Guys dumped_Girls |
七天 | 設置在對應的小組10心事件之後。(看阿比蓋爾#小組十心事件). |
secondChance_Girls secondChance_Guys |
十四天 | 設置在對應的小組10心事件之後。(看阿比蓋爾#小組十心事件). |
pamHouseUpgrade | 四天 | 設置在潘姆家修復事件之後,並且當時玩家選擇承認自己是贊助者。 |
pamHouseUpgradeAnonymous | 四天 | 設置在潘姆家修復事件之後,並且當時玩家選擇保密自己的身份。 |
willyCrabs | 四天 | 設置在威利六心事件之後。 |
其他 | ||
Introduction | 六天 | 玩家被創建時。(開始新的存檔或者第一次加入多人遊戲伺服器時) |
FullCrabPond | 十四天 | 任何第一次魚塘擁有十個螃蟹。 |