「模组:对话」修訂間的差異

出自Stardew Valley Wiki
跳至導覽 跳至搜尋
(文本替换 - 替换“乔家社区发展申请书”为“Joja社区发展申请书”)
 
(未顯示由 4 位使用者於中間所作的 16 次修訂)
行 1: 行 1:
 
 ← [[使用模组:目录|目录]]
 
 ← [[使用模组:目录|目录]]
  
 这个页面解释了游戏如何存储对话文本,它的格式,以及游戏如何解析它。它将会 是一个提供给模组制造者的高级指南。
+
 这个页面解释了游戏如何存储对话文本,它的格式,以及游戏如何解析它。它将会是一个提供给模组制造者的高级指南。
  
 
==数据==
 
==数据==
行 7: 行 7:
  
 
===角色-特殊对话===
 
===角色-特殊对话===
<tt>Characters\Dialogue\*.xnb</tt> 包含了大部分角色对话里 (一个文件夹对应一个角色). 游戏将从下面的一部分内容中选择对话,依照这里排列好的指令顺序来读取对话。<br /><small>*指越往下的对话格式,读取优先度会比上面的对话还要低。*
+
<samp>Characters\Dialogue\*.xnb</samp> 包含了大部分角色对话里 (一个文件夹对应一个角色). 游戏将从下面的一部分内容中选择对话,依照这里排列好的指令顺序来读取对话。<br /><small>*指越往下的对话格式,读取优先度会比上面的对话还要低。*</small>
  
 
====特殊对话====
 
====特殊对话====
 
 以下是一些针对特定情况的预设键(Key):
 
 以下是一些针对特定情况的预设键(Key):
 
*请注意是使用英文,中文只是方便大家理解*
 
*请注意是使用英文,中文只是方便大家理解*
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
 
! 密钥格式(key format)
 
! 密钥格式(key format)
 
! 描述(description)
 
! 描述(description)
 
|-
 
|-
| <tt>邀请跳舞拒绝<br />danceRejection</tt>
+
| <samp>邀请跳舞拒绝<br />danceRejection</samp>
 
| 用来显示邀请NPC跳舞[[花舞节]]时被拒绝的对话。(如果是在多人联机,已被其他玩家邀请且同意的NPC会使用其他对话来拒绝玩家。*不过大部分自制NPC是没有做出这个对话*)
 
| 用来显示邀请NPC跳舞[[花舞节]]时被拒绝的对话。(如果是在多人联机,已被其他玩家邀请且同意的NPC会使用其他对话来拒绝玩家。*不过大部分自制NPC是没有做出这个对话*)
 
|-
 
|-
| <tt>离婚<br />divorced</tt>
+
| <samp>离婚<br />divorced</samp>
 
| 和NPC离婚之后会触发的对话。
 
| 和NPC离婚之后会触发的对话。
 
|-
 
|-
| <tt>{{t|地点}}_入口<br />{{t|location}}_Entry</tt>
+
| <samp>{{t|地点}}_入口<br />{{t|location}}_Entry</samp>
| 玩家在指定的地方{{t|location}}从入口进来有50%的几率让你的NPC说特定的话,这个对话可以使用多个对话,只需使用 <code>/</code> 隔开对话与对话;游戏会随机读取其中对话。<br /><small>例子: <tt>SeedShop_Entry: "嗨,皮埃尔!/现在,我需要的是.../啊!看起来真不错!/今晚准备做我的特制酱料!/皮埃尔!今天的新品是什么?/皮埃尔!今天要一起出门玩吗?"</tt>
+
| 玩家在指定的地方{{t|location}}从入口进来有50%的几率让你的NPC说特定的话,这个对话可以使用多个对话,只需使用 <code>/</code> 隔开对话与对话;游戏会随机读取其中对话。<br /><small>例子: <samp>SeedShop_Entry: "嗨,皮埃尔!/现在,我需要的是.../啊!看起来真不错!/今晚准备做我的特制酱料!/皮埃尔!今天的新品是什么?/皮埃尔!今天要一起出门玩吗?"</samp></small>
 
|-
 
|-
| <tt>等会再来吧<br />ComeBackLater<br />打呼噜<br />Snoring</tt>
+
| <samp>等会再来吧<br />ComeBackLater<br />打呼噜<br />Snoring</samp>
| *一般NPC不需要,所以可以跳过这段*<br />当你还未达成布告栏上的击杀怪物的任务,[[吉尔]]就会触发这些对话。 <tt>ComeBackLater</tt> 只会显示一次,后续的对话就会触发<tt>Snoring</tt>。
+
| *一般NPC不需要,所以可以跳过这段*<br />当你还未达成布告栏上的击杀怪物的任务,[[吉尔]]就会触发这些对话。 <samp>ComeBackLater</samp> 只会显示一次,后续的对话就会触发<samp>Snoring</samp>。
 
|}
 
|}
  
 
====地点对话====
 
====地点对话====
 
 依照顺序,除了上面的对话以外,接下来将会依照顺序读取以下对话。
 
 依照顺序,除了上面的对话以外,接下来将会依照顺序读取以下对话。
<br /><small>*指上面四个<tt>danceRejection</tt>、<tt>divorced</tt>、<tt>{{t|location}}_Entry</tt>、<tt>ComeBackLater</tt>和<tt>Snoring</tt>的优先度大于以下的对话*
+
<br /><small>*指上面四个<samp>danceRejection</samp>、<samp>divorced</samp>、<samp>{{t|location}}_Entry</samp>、<samp>ComeBackLater</samp>和<samp>Snoring</samp>的优先度大于以下的对话*</small>
  
 
 变化/变体:
 
 变化/变体:
* 每一个特定键(Key)可以选择性的使用 [[#Seasons|季节]]来作出季节变化, 比如 <tt>springMountain_47_23</tt>,即春天在山上地图的某个坐标会触发此对话。
+
* 每一个特定键(Key)可以选择性的使用 [[# 季节|季节]]来作出季节变化, 比如 <samp>springMountain_47_23</samp>,即春天在山上地图的某个坐标会触发此对话。
  
 游戏会依照以下顺序来读取变体: <tt>{{t|season}}{{t|key}}</tt>, and <tt>{{t|key}}</tt>. 为了方便大家理解,下面没有列出这些变体。
+
 游戏会依照以下顺序来读取变体: <samp>{{t|season}}{{t|key}}</samp>, and <samp>{{t|key}}</samp>. 为了方便大家理解,下面没有列出这些变体。
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
 
! 密钥格式(key format)
 
! 密钥格式(key format)
 
! 描述(description)
 
! 描述(description)
 
|-
 
|-
| <tt>{{t|地点}}_{{t|x轴坐标}}_{{t|y轴坐标}}</tt><br /><tt>{{t|location}}_{{t|x}}_{{t|y}}</tt>
+
| <samp>{{t|地点}}_{{t|x轴坐标}}_{{t|y轴坐标}}</samp><br /><samp>{{t|location}}_{{t|x}}_{{t|y}}</samp>
| 当NPC站在{{t|x}}, {{t|y}}的某个你所填充的地点,就会触发这个对话.<br /><small>例子: <tt>Mountain_47_23: "这里很安静,又有风可以吹,为什么我不能来这里?"</tt></small>
+
| 当NPC站在{{t|x}}, {{t|y}}的某个你所填充的地点,就会触发这个对话.<br /><small>例子: <samp>Mountain_47_23: "这里很安静,又有风可以吹,为什么我不能来这里?"</samp></small>
 
|-
 
|-
| <tt>{{t|地点}}_{{t|星期几}}</tt><br /><tt>{{t|location}}_{{t|dayName}}</tt>
+
| <samp>{{t|地点}}_{{t|星期几}}</samp><br /><samp>{{t|location}}_{{t|dayName}}</samp>
| 当NPC在指定地点的指定一天[[#Days of week|星期几]].<br /><small>例子: <tt>Saloon_Fri: "星期五的酒吧总会很热闹,我不讨厌这样的气氛。"</tt></small>
+
| 当NPC在指定地点的指定一天[[#Days of week|星期几]].<br /><small>例子: <samp>Saloon_Fri: "星期五的酒吧总会很热闹,我不讨厌这样的气氛。"</samp></small>
 
|-
 
|-
| <tt>{{t|地点}}{{t|好感}}</tt><br /><tt>{{t|location}}{{t|hearts}}</tt>
+
| <samp>{{t|地点}}{{t|好感}}</samp><br /><samp>{{t|location}}{{t|hearts}}</samp>
| 当你和NPC的好感有指定{{t|hearts}}以上,将会触发这个对话。指定好感{{t|hearts}} 将会读取10,8,6,4,2这几个数值(不填任何数字则为0),优先度为10>8>6>4>2>0(除此之外的数值无法被读取,比如说1)<br /><small>例子: <tt>Saloon8: "欢迎光临,@。我很高兴今天也能看到你过来这里!酒吧的大门永远为你而开。*当然,酒吧永远都是中午12点开门。*"</tt></small>
+
| 当你和NPC的好感有指定{{t|hearts}}以上,将会触发这个对话。指定好感{{t|hearts}} 将会读取10,8,6,4,2这几个数值(不填任何数字则为0),优先度为10>8>6>4>2>0(除此之外的数值无法被读取,比如说1)<br /><small>例子: <samp>Saloon8: "欢迎光临,@。我很高兴今天也能看到你过来这里!酒吧的大门永远为你而开。*当然,酒吧永远都是中午12点开门。*"</samp></small>
 
|-
 
|-
| <tt>{{t|地点}}</tt><br /><tt>{{t|location}}</tt>
+
| <samp>{{t|地点}}</samp><br /><samp>{{t|location}}</samp>
| 当NPC身处在指定地点,就会触发此对话。<br /><small>例子: <tt>Saloon: "呼哇~终于可以在酒吧尽情放松了~"</tt></small>
+
| 当NPC身处在指定地点,就会触发此对话。<br /><small>例子: <samp>Saloon: "呼哇~终于可以在酒吧尽情放松了~"</samp></small>
 
|}
 
|}
  
 
====雨天对话====
 
====雨天对话====
<tt>Characters\Dialogue\rainy.xnb</tt>文件里每一个NPC都有对应的'''一个'''对话。如果你的情况是:还未结婚或者离婚、当天是雨天、并且上述的对话条件没有达成,你将会有50%几率读取这个雨天对话。*由于是50%,所以你可能会触发平时的对话然后说出“今天天气真好”这种诡异的对话……*
+
<samp>Characters\Dialogue\rainy.xnb</samp>文件里每一个NPC都有对应的'''一个'''对话。如果你的情况是:还未结婚或者离婚、当天是雨天、并且上述的对话条件没有达成,你将会有50%几率读取这个雨天对话。*由于是50%,所以你可能会触发平时的对话然后说出“今天天气真好”这种诡异的对话……*
</li>
+
 
 
 雨天对话需要使用content的EditData来添加在游戏里,以下为麻薯君的例子:
 
 雨天对话需要使用content的EditData来添加在游戏里,以下为麻薯君的例子:
<source lang="json">
+
<syntaxhighlight lang="json">
 
    {
 
    {
 
     "Action": "EditData",
 
     "Action": "EditData",
行 92: 行 92:
 
     }
 
     }
 
    }
 
    }
</source>
+
</syntaxhighlight>
  
 
====一般对话====
 
====一般对话====
 
 除上面以外,游戏将选择使用以下其中一个关键格式的对话(按优先顺序来读取):
 
 除上面以外,游戏将选择使用以下其中一个关键格式的对话(按优先顺序来读取):
# <tt>{{t|季节}}_{{t|密钥}}_inlaw_{{t|伴侣名字}}</tt> <tt>{{t|season}}_{{t|key}}_inlaw_{{t|spouseName}}</tt>
+
# <samp>{{t|季节}}_{{t|密钥}}_inlaw_{{t|伴侣名字}}</samp> <samp>{{t|season}}_{{t|key}}_inlaw_{{t|spouseName}}</samp>
# <tt>{{t|季节}}_{{t|密钥}}</tt> <tt>{{t|season}}_{{t|key}}</tt>
+
# <samp>{{t|季节}}_{{t|密钥}}</samp> <samp>{{t|season}}_{{t|key}}</samp>
# <tt>{{t|密钥}}_inlaw_{{t|伴侣名字}}</tt> <tt>{{t|key}}_inlaw_{{t|spouseName}}</tt>
+
# <samp>{{t|密钥}}_inlaw_{{t|伴侣名字}}</samp> <samp>{{t|key}}_inlaw_{{t|spouseName}}</samp>
# <tt>{{t|密钥}}</tt> <tt>{{t|key}}</tt>
+
# <samp>{{t|密钥}}</samp> <samp>{{t|key}}</samp>
  
 关于以上各个变体: <tt>{{t|season}}</tt> is a [[#Seasons|季节]] (比如说 <tt>spring_14</tt>); 如果玩家和对应NPC<tt>_inlaw_{{t|伴侣名字}}</tt> 结婚,这个对话将会不顾其他对话并先读取这个对话。(比如说 <tt>Sat_inlaw_Abigail</tt>,就是在星期六与伴侣“阿比盖尔”对话将触发此对话。); 以及 <tt>{{t|key}}</tt> 指的是以下密钥格式。
+
 关于以上各个变体: <samp>{{t|season}}</samp> 是指[[# 季节Seasons|季节]] (比如说 <samp>spring_14</samp>); 如果玩家和对应NPC<samp>_inlaw_{{t|伴侣名字}}</samp> 结婚,这个对话将会不顾其他对话并先读取这个对话。(比如说 <samp>Sat_inlaw_Abigail</samp>,就是在星期六与伴侣“阿比盖尔”对话将触发此对话。); 以及 <samp>{{t|key}}</samp> 指的是以下密钥格式。
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
 
! 密钥格式(key format)
 
! 密钥格式(key format)
 
! 描述(description)
 
! 描述(description)
 
|-
 
|-
| <tt>{{t|1到28日}}</tt><br /><tt>{{t|dayOfMonth}}</tt>
+
| <samp>{{t|1到28日}}</samp><br /><samp>{{t|dayOfMonth}}</samp>
| '''第一年'''的设定好的某一日会触发此对话。<br />'''注意: 这个第一年限定的对话和其他的密钥格式是不一样的,这点常常把模组制造者搞乱了。'''<br /><small>例子: <tt>10: "你昨晚有看那个体育频道吗?#$b#等会,你有电视吗……?"</tt></small>
+
| '''第一年'''的设定好的某一日会触发此对话。<br />'''注意: 这个第一年限定的对话和其他的密钥格式是不一样的,这点常常把模组制造者搞乱了。'''<br /><small>例子: <samp>10: "你昨晚有看那个体育频道吗?#$b#等会,你有电视吗……?"</samp></small>
 
|-
 
|-
| <tt>{{t|1到28日}}_{{t|1或2年}}</tt><br /><tt>{{t|dayOfMonth}}_{{t|firstOrLaterYear}}</tt>
+
| <samp>{{t|1到28日}}_{{t|1或2年}}</samp><br /><samp>{{t|dayOfMonth}}_{{t|firstOrLaterYear}}</samp>
| 根据你所填的[[#First/later year|1或2年]]触发指定日期的对话。填的是“1”的话,第一年以后(即第二、三年)不会再触发;“2”则第一年以后触发。<br /><small>例子: <tt>2_1: "我的丈夫肯特在国外工作。这也是为什么你没看到他在这里。#$b#我坚信只要我家肯特的旅途结束了,就会安全回家的!!#$e#需要什么东西吗?"</tt></small>
+
| 根据你所填的[[# 第一/ 第一以后的年份|1或2年]]触发指定日期的对话。填的是“1”的话,第一年以后(即第二、三年)不会再触发;“2”则第一年以后触发。<br /><small>例子: <samp>2_1: "我的丈夫肯特在国外工作。这也是为什么你没看到他在这里。#$b#我坚信只要我家肯特的旅途结束了,就会安全回家的!!#$e#需要什么东西吗?"</samp></small>
 
|-
 
|-
| <tt>{{t|星期几}}{{t|几心}}_{{t|1或2年}}</tt><br /><tt>{{t|dayOfWeek}}{{t|hearts}}_{{t|firstOrLaterYear}}</tt>
+
| <samp>{{t|星期几}}{{t|几心}}_{{t|1或2年}}</samp><br /><samp>{{t|dayOfWeek}}{{t|hearts}}_{{t|firstOrLaterYear}}</samp>
| 在[[#First/later year|1或2年]]的某一年,根据你所填的[[#Days of week|星期几]]并且你与NPC至少有{{t|hearts}}心好感将会触发此对话。指定好感{{t|hearts}} 将会读取10,8,6,4,2这几个数值(不填任何数字则为0),优先度为10>8>6>4>2>0(除此之外的数值无法被读取,比如说1)<br />'''Bug:''' 仅当一个等效的{{t|dayOfWeek}}{{t|hearts}}密钥也存在时才显示。<br /><small>例子: <tt>Thu2_2: "好吧,我爸回来了。你们见过了吗?#$b#我很高兴他能安然无恙地回来。"</tt></small>
+
| 在[[# 第一/ 第一以后的年份|1或2年]]的某一年,根据你所填的[[# 星期里的某天/星期几Days of week|星期几]]并且你与NPC至少有{{t|hearts}}心好感将会触发此对话。指定好感{{t|hearts}} 将会读取10,8,6,4,2这几个数值(不填任何数字则为0),优先度为10>8>6>4>2>0(除此之外的数值无法被读取,比如说1)<br />'''Bug:''' 仅当一个等效的{{t|dayOfWeek}}{{t|hearts}}密钥也存在时才显示。<br /><small>例子: <samp>Thu2_2: "好吧,我爸回来了。你们见过了吗?#$b#我很高兴他能安然无恙地回来。"</samp></small>
 
|-
 
|-
| <tt>{{t|星期几}}{{t|几心}}</tt><br /><tt>{{t|dayOfWeek}}{{t|hearts}}</tt>
+
| <samp>{{t|星期几}}{{t|几心}}</samp><br /><samp>{{t|dayOfWeek}}{{t|hearts}}</samp>
| 根据你所填的[[#Days of week|星期几]] 并且你与NPC至少有{{t|hearts}}心好感将会触发此对话。指定好感{{t|hearts}} 将会读取10,8,6,4,2这几个数值(不填任何数字则为0),优先度为10>8>6>4>2>0(除此之外的数值无法被读取,比如说1)<br /><small>例子: <tt>Sun4: "嘿,@.#$e#今天过得怎么样?"</tt></small>
+
| 根据你所填的[[# 星期里的某天/星期几Days of week|星期几]] 并且你与NPC至少有{{t|hearts}}心好感将会触发此对话。指定好感{{t|hearts}} 将会读取10,8,6,4,2这几个数值(不填任何数字则为0),优先度为10>8>6>4>2>0(除此之外的数值无法被读取,比如说1)<br /><small>例子: <samp>Sun4: "嘿,@.#$e#今天过得怎么样?"</samp></small>
 
|-
 
|-
| <tt>{{t|星期几}}_{{t|1或2年}}</tt><br /><tt>{{t|dayOfWeek}}_{{t|firstOrLaterYear}}</tt>
+
| <samp>{{t|星期几}}_{{t|1或2年}}</samp><br /><samp>{{t|dayOfWeek}}_{{t|firstOrLaterYear}}</samp>
| 在[[#First/later year|1或2年]]的某一年,根据你所填的[[#Days of week|星期几]]将触发此对话。<br />'''Bug:'''只有当等效的{{t|dayOfWeek}}密钥存在时才显示。<br /><small>例子: <tt>Sat_1: "爸爸快要回来了!#$b#我希望爸爸能给我带些玩具回来。$u"</tt></small>
+
| 在[[# 第一/ 第一以后的年份|1或2年]]的某一年,根据你所填的[[# 星期里的某天/星期几Days of week|星期几]]将触发此对话。<br />'''Bug:'''只有当等效的{{t|dayOfWeek}}密钥存在时才显示。<br /><small>例子: <samp>Sat_1: "爸爸快要回来了!#$b#我希望爸爸能给我带些玩具回来。$u"</samp></small>
 
|-
 
|-
| <tt>{{t|星期几}}</tt><br /><tt>{{t|dayOfWeek}}</tt>
+
| <samp>{{t|星期几}}</samp><br /><samp>{{t|dayOfWeek}}</samp>
| 根据你所填的[[#Days of week|星期几]]将会触发此对话。<br /><small>Example: <tt>Mon: "嗨嗨!你正在休息吗?"</tt></small>
+
| 根据你所填的[[# 星期里的某天/星期几Days of week|星期几]]将会触发此对话。<br /><small> 例子: <samp>Mon: "嗨嗨!你正在休息吗?"</samp></small>
 
|}
 
|}
  
 
====备用方案====
 
====备用方案====
 如果以上对话都不存在,那么游戏会从<tt>Strings\StringsFromCSFiles.xnb</tt>自动读取密钥为<tt>NPC.cs.4061</tt>的对话. (我去查了,结果是: "嗨。"……好吧,作者偷懒我懂。)
+
 如果以上对话都不存在,那么游戏会从<samp>Strings\StringsFromCSFiles.xnb</samp>自动读取密钥为<samp>NPC.cs.4061</samp>的对话. (我去查了,结果是: "嗨。"……好吧,作者偷懒我懂。)
<li>
+
 
 
 为了让大家方便,我这里就直接提供我个人整理过的一般对话模板,当天节日对话是需要通过CP的content载入+TMXL的节日站位搭配使用,以下为麻薯君(感谢贴吧@你的麻糬君丫*我谢我自己*)提供的模板:
 
 为了让大家方便,我这里就直接提供我个人整理过的一般对话模板,当天节日对话是需要通过CP的content载入+TMXL的节日站位搭配使用,以下为麻薯君(感谢贴吧@你的麻糬君丫*我谢我自己*)提供的模板:
<source lang="json">
+
<syntaxhighlight lang="json">
 
{
 
{
 
   //SPECIAL DIALOGUE
 
   //SPECIAL DIALOGUE
行 344: 行 344:
 
   "winter_Sun10":"",
 
   "winter_Sun10":"",
 
}
 
}
</source>
+
</syntaxhighlight>
</li>
 
  
 
===婚后对话===
 
===婚后对话===
 在游戏文件里<tt>Characters\Dialogue\MarriageDialogue.xnb</tt>是放置所有NPC的婚后对话,每个NPC可以选择属于自己的对话文件,比如阿比盖尔的<tt>Characters\Dialogue\MarriageDialogueAbigail.xnb</tt>。当游戏查找对话时,它会使用NPC文件中的Key/对话(如果有这个格式的对话存在的话),否则会使用预设婚后对话或者默认对话(不过默认对话基本上都是空的)。
+
 在游戏文件里<samp>Characters\Dialogue\MarriageDialogue.xnb</samp>是放置所有NPC的婚后对话,每个NPC可以选择属于自己的对话文件,比如阿比盖尔的<samp>Characters\Dialogue\MarriageDialogueAbigail.xnb</samp>。当游戏查找对话时,它会使用NPC文件中的Key/对话(如果有这个格式的对话存在的话),否则会使用预设婚后对话或者默认对话(不过默认对话基本上都是空的)。
 
 每一个对话里拥有的密钥格式来自于以下其中一个格式:
 
 每一个对话里拥有的密钥格式来自于以下其中一个格式:
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
 
! 密钥格式(key format)
 
! 密钥格式(key format)
 
! 描述(description)
 
! 描述(description)
 
|-
 
|-
| <tt>{{t|季节}}_{{t|1到28日}}</tt><br /><tt>{{t|season}}_{{t|day}}</tt>
+
| <samp>{{t|季节}}_{{t|1到28日}}</samp><br /><samp>{{t|season}}_{{t|day}}</samp>
| 根据你所填的季节{{t|season}}日子{{t|day}}将会触发此对话。<br /><small>例子: <tt>fall_1</tt>: "''这个气氛……我不会感觉错的,角落的蘑菇、散落的枯叶、橘色的南瓜……是只有在秋天才看得到的景色。就在今天,秋季降临了,我说的没错吧?亲爱的?''"</small>
+
| 根据你所填的季节{{t|season}}日子{{t|day}}将会触发此对话。<br /><small>例子: <samp>fall_1</samp>: "''这个气氛……我不会感觉错的,角落的蘑菇、散落的枯叶、橘色的南瓜……是只有在秋天才看得到的景色。就在今天,秋季降临了,我说的没错吧?亲爱的?''"</small>
 
|-
 
|-
| <tt>露台_{{t|伴侣}}</tt><br /><tt>patio_{{t|spouse}}</tt>
+
| <samp>露台_{{t|伴侣}}</samp><br /><samp>patio_{{t|spouse}}</samp>
 
| 当你的伴侣在你出货箱右上的平台刷新时,就会触发此对话。*通常是在非雨天/非雪天会刷新。*
 
| 当你的伴侣在你出货箱右上的平台刷新时,就会触发此对话。*通常是在非雨天/非雪天会刷新。*
 
|-
 
|-
| <tt>{{t|天气}}_{{t|白天或晚上}}_{{t|随机}}</tt><br /><tt>{{t|weather}}_{{t|dayOrNight}}_{{t|random}}</tt>
+
| <samp>{{t|天气}}_{{t|白天或晚上}}_{{t|随机}}</samp><br /><samp>{{t|weather}}_{{t|dayOrNight}}_{{t|random}}</samp>
| 婚后日常对话。{{t|weather}}可以填充<tt>Rainy</tt>或者<tt>Indoor</tt>,前者是下雨天的情况,后者是除雨天以外的天气。(虽然不知道为什么指令是Indoor“室内”,但指令就是这样……) {{t|dayOrNight}}可以填充<tt>Night</tt>或者<tt>Day</tt>,前者是游戏时间为'''下午6点以后'''会触发的对话,后者为'''下午6点以前'''触发。{{t|random}}可以填写的内容是0,1,2,3,4,所以你会有五个对话且随机触发。<br /><small>例子: <tt>Rainy_Night_3</tt>: "''每当夜幕降临,我很喜欢把家里的灯光调暗一点,然后好好地聆听那份寂静……$8''"</small>
+
| 婚后日常对话。{{t|weather}}可以填充<samp>Rainy</samp>或者<samp>Indoor</samp>,前者是下雨天的情况,后者是除雨天以外的天气。(虽然不知道为什么指令是Indoor“室内”,但指令就是这样……) {{t|dayOrNight}}可以填充<samp>Night</samp>或者<samp>Day</samp>,前者是游戏时间为'''下午6点以后'''会触发的对话,后者为'''下午6点以前'''触发。{{t|random}}可以填写的内容是0,1,2,3,4,所以你会有五个对话且随机触发。<br /><small>例子: <samp>Rainy_Night_3</samp>: "''每当夜幕降临,我很喜欢把家里的灯光调暗一点,然后好好地聆听那份寂静……$8''"</small>
 
|-
 
|-
| <tt>好玩/快乐/有趣离去_{{t|伴侣名字}}</tt><br /><tt>funLeave_{{t|spouse}}</tt>
+
| <samp>好玩/快乐/有趣离去_{{t|伴侣名字}}</samp><br /><samp>funLeave_{{t|spouse}}</samp>
 
| 未完成的指令,当你的伴侣在家里准备出门去鹈鹕镇逛逛时会触发的对话。(但是原文只是给出了TODO*task yet to be done*未完成的指令。)
 
| 未完成的指令,当你的伴侣在家里准备出门去鹈鹕镇逛逛时会触发的对话。(但是原文只是给出了TODO*task yet to be done*未完成的指令。)
 
|-
 
|-
| <tt>工作离去_{{t|伴侣}}</tt><br /><tt>jobLeave_{{t|spouse}}</tt>
+
| <samp>工作离去_{{t|伴侣}}</samp><br /><samp>jobLeave_{{t|spouse}}</samp>
 
| 未完成的指令,当你的伴侣在家里准备出门回到ta们的工作岗位时会触发的对话。(只限原版NPC即潘妮、玛鲁和哈维。不确定未来会不会更完善。)
 
| 未完成的指令,当你的伴侣在家里准备出门回到ta们的工作岗位时会触发的对话。(只限原版NPC即潘妮、玛鲁和哈维。不确定未来会不会更完善。)
 
|-
 
|-
| <tt>好玩/快乐/有趣回家_{{t|伴侣名字}}</tt><br /><tt>funReturn_{{t|spouse}}</tt>
+
| <samp>好玩/快乐/有趣回家_{{t|伴侣名字}}</samp><br /><samp>funReturn_{{t|spouse}}</samp>
| 当你的伴侣在下午一点之后回到家里但还未抵达ta们的目标坐标,会触发这个对话, 只限星期一触发 (给任何NPC)或者星期五(如果不是玛鲁/哈维/潘妮)。<br /><small>例子: <tt>funReturn_Abigail</tt>: "''嘿!今天你过得好吗?我过得很好哦。散步果然使人精神振奋呢。$h''"</small>
+
| 当你的伴侣在下午一点之后回到家里但还未抵达ta们的目标坐标,会触发这个对话, 只限星期一触发 (给任何NPC)或者星期五(如果不是玛鲁/哈维/潘妮)。<br /><small>例子: <samp>funReturn_Abigail</samp>: "''嘿!今天你过得好吗?我过得很好哦。散步果然使人精神振奋呢。$h''"</small>
 
|-
 
|-
| <tt>工作回家_{{t|伴侣}}</tt><br /><tt>jobReturn_{{t|spouse}}</tt>
+
| <samp>工作回家_{{t|伴侣}}</samp><br /><samp>jobReturn_{{t|spouse}}</samp>
| 当你的伴侣在下午一点之后回到家里但还未抵达ta们的目标坐标,但只限于<tt>funReturn</tt>不被显示。<br /><small>例子: <tt>jobReturn_Penny</tt>: "''#$c .5#晚上好。我今天很好,感谢!那你过得怎么样?$h#$e#贾斯和文森特今天表现不太好。我还是很担心…''"</small>
+
| 当你的伴侣在下午一点之后回到家里但还未抵达ta们的目标坐标,但只限于<samp>funReturn</samp>不被显示。<br /><small>例子: <samp>jobReturn_Penny</samp>: "''#$c .5#晚上好。我今天很好,感谢!那你过得怎么样?$h#$e#贾斯和文森特今天表现不太好。我还是很担心…''"</small>
 
|-
 
|-
| <tt>{{t|季节}}_{{t|伴侣}}</tt><br /><tt>{{t|season}}_{{t|spouse}}</tt>
+
| <samp>{{t|季节}}_{{t|伴侣}}</samp><br /><samp>{{t|season}}_{{t|spouse}}</samp>
| 当你和伴侣有达到9心以上的好感,将会有5%概率触发此对话。<br /><small>例子: <tt>fall_Abigail</tt>: "''我是不是闻到了你身上的南瓜味?或者事实是我在发白日梦……$h''"</small>
+
| 当你和伴侣有达到9心以上的好感,将会有5%概率触发此对话。<br /><small>例子: <samp>fall_Abigail</samp>: "''我是不是闻到了你身上的南瓜味?或者事实是我在发白日梦……$h''"</small>
 
|-
 
|-
| <tt>户外_{{t|伴侣}}</tt><br /><tt>Outdoor_{{t|spouse}}</tt>
+
| <samp>户外_{{t|伴侣}}</samp><br /><samp>Outdoor_{{t|spouse}}</samp>
| 有20%的概率触发伴侣在家外面站着时会触发此对话。<br /><small>例子: <tt>Outdoor_Abigail</tt>: "''我就呆在这里,好吗?#$e#这里有好多稀奇古怪的昆虫和东西在!*咯咯笑*$h''"</small>
+
| 有20%的概率触发伴侣在家外面站着时会触发此对话。<br /><small>例子: <samp>Outdoor_Abigail</samp>: "''我就呆在这里,好吗?#$e#这里有好多稀奇古怪的昆虫和东西在!*咯咯笑*$h''"</small>
 
|-
 
|-
| <tt>户外_{{t|随机}}</tt><br /><tt>Outdoor_{{t|random}}</tt>
+
| <samp>户外_{{t|随机}}</samp><br /><samp>Outdoor_{{t|random}}</samp>
| 有80%的概率触发伴侣在家外面站着时会触发此对话。{{t|随机}}可以填写的内容是0,1,2,3,4,所以你会有五个对话且随机触发。<br /><small>例子: <tt>Outdoor_3</tt>: "''我们的地产包含了洞穴可真是太赞了!那是我梦寐以求的事情!$h''"</small>
+
| 有80%的概率触发伴侣在家外面站着时会触发此对话。{{t|随机}}可以填写的内容是0,1,2,3,4,所以你会有五个对话且随机触发。<br /><small>例子: <samp>Outdoor_3</samp>: "''我们的地产包含了洞穴可真是太赞了!那是我梦寐以求的事情!$h''"</small>
 
|-
 
|-
| <tt>伴侣房_{{t|伴侣}}</tt><br /><tt>spouseRoom_{{t|spouse}}</tt>
+
| <samp>伴侣房_{{t|伴侣}}</samp><br /><samp>spouseRoom_{{t|spouse}}</samp>
| 当伴侣位于ta们的伴侣房时会触发的对话。<br /><small>例子: <tt>spouseRoom_Abigail</tt>: "''$c .5#我比你起得早,我就去喂了小大卫。它整个早晨都很兴奋呢。#$e#我希望你不介意豚鼠的味道。"''</small>
+
| 当伴侣位于ta们的伴侣房时会触发的对话。<br /><small>例子: <samp>spouseRoom_Abigail</samp>: "''$c .5#我比你起得早,我就去喂了小大卫。它整个早晨都很兴奋呢。#$e#我希望你不介意豚鼠的味道。"''</small>
 
|-
 
|-
| <tt>一个孩子_{{t|随机}}</tt><br /><tt>OneKid_{{t|random}}</tt>
+
| <samp>一个孩子_{{t|随机}}</samp><br /><samp>OneKid_{{t|random}}</samp>
| 如果你有一个孩子,并且你的伴侣位于厨房,将会触发此对话。{{t|随机}}可以填写的内容是0,1,2,3,4,所以你会有五个对话且随机触发。<br /><small><tt>OneKid_1</tt>: "''我在想,%kid1会不会长大以后变成和你一样的农夫?''"</small>
+
| 如果你有一个孩子,并且你的伴侣位于厨房,将会触发此对话。{{t|随机}}可以填写的内容是0,1,2,3,4,所以你会有五个对话且随机触发。<br /><small><samp>OneKid_1</samp>: "''我在想,%kid1会不会长大以后变成和你一样的农夫?''"</small>
 
|-
 
|-
| <tt>两个孩子_{{t|随机}}</tt><br /><tt>TwoKids_{{t|random}}</tt>
+
| <samp>两个孩子_{{t|随机}}</samp><br /><samp>TwoKids_{{t|random}}</samp>
| 如果你有两个孩子,并且你的伴侣位于厨房,将会触发此对话。{{t|随机}}可以填写的内容是0,1,2,3,4,所以你会有五个对话且随机触发。<br /><small><tt>TwoKids_2</tt>: "''我梦到了关于%kid2长大之后变成了著名的怪物猎人。我甚至开始想着小小装备套装了。''"</small>
+
| 如果你有两个孩子,并且你的伴侣位于厨房,将会触发此对话。{{t|随机}}可以填写的内容是0,1,2,3,4,所以你会有五个对话且随机触发。<br /><small><samp>TwoKids_2</samp>: "''我梦到了关于%kid2长大之后变成了著名的怪物猎人。我甚至开始想着小小装备套装了。''"</small>
 
|-
 
|-
| <tt>{{t|感情}}_{{t|随机}}</tt><br /><tt>{{t|affection}}_{{t|random}}</tt>
+
| <samp>{{t|感情}}_{{t|随机}}</samp><br /><samp>{{t|affection}}_{{t|random}}</samp>
| 当伴侣在家里并且是早上11点到下午6点时''或者''当天的对话并没有达成以上情况时,会触发此对话。{{t|感情}}随机的内容为当伴侣好感为9心以下,50%概率触发<tt>感情不和</tt><tt>Bad</tt> 或者 <tt>感情平淡</tt><tt>Neutral</tt>的对话; 10心以上50%概率触发<tt>感情美满</tt><tt>Good</tt>的对话或者11心以上75%概率触发<tt>感情美满</tt><tt>Good</tt>的对话;除此之外的概率将会触发<tt>感情平淡</tt><tt>Neutral</tt>的对话。{{t|随机}}可以填写的内容是0,1,2,3,4,5,6,7,8,9,所以你会有10个对话且随机触发。<br /><small>例子: <tt>Good_5</tt>: "''我只是在好好欣赏一下我的美人鱼吊坠……直到死亡,我会很自豪地让它陪伴我身边。$l''"</small>
+
| 当伴侣在家里并且是早上11点到下午6点时''或者''当天的对话并没有达成以上情况时,会触发此对话。{{t|感情}}随机的内容为当伴侣好感为9心以下,50%概率触发<samp>感情不和</samp><samp>Bad</samp> 或者 <samp>感情平淡</samp><samp>Neutral</samp>的对话; 10心以上50%概率触发<samp>感情美满</samp><samp>Good</samp>的对话或者11心以上75%概率触发<samp>感情美满</samp><samp>Good</samp>的对话;除此之外的概率将会触发<samp>感情平淡</samp><samp>Neutral</samp>的对话。{{t|随机}}可以填写的内容是0,1,2,3,4,5,6,7,8,9,所以你会有10个对话且随机触发。<br /><small>例子: <samp>Good_5</samp>: "''我只是在好好欣赏一下我的美人鱼吊坠……直到死亡,我会很自豪地让它陪伴我身边。$l''"</small>
 
|}
 
|}
  
 
 为了让大家方便,我这里就直接提供我亲友整理过的婚后对话模板,以下为萌新(感谢贴吧@萌新不萌新-)提供的模板:
 
 为了让大家方便,我这里就直接提供我亲友整理过的婚后对话模板,以下为萌新(感谢贴吧@萌新不萌新-)提供的模板:
<source lang="json">
+
<syntaxhighlight lang="json">
 
{
 
{
 
     "Rainy_Day_0": "",//下雨天白天
 
     "Rainy_Day_0": "",//下雨天白天
行 462: 行 461:
 
     "winter_1": "",//每年冬1对话
 
     "winter_1": "",//每年冬1对话
 
     "winter_7": "",//冰雪节前一天对话
 
     "winter_7": "",//冰雪节前一天对话
     "winter_28": "",//当年最后一 天对话,冬日星当 天对话
+
    "winter_23": "",//冬日星前一天对话
 +
     "winter_28": "",//当年最后一天对话
 
     "patio_Michael": "",//在外面天井的对话(Michael记得改为你自己的崽的名字)
 
     "patio_Michael": "",//在外面天井的对话(Michael记得改为你自己的崽的名字)
 
     "spouseRoom_Michael": "",//在配偶房的对话(Michael记得改为你自己的崽的名字)
 
     "spouseRoom_Michael": "",//在配偶房的对话(Michael记得改为你自己的崽的名字)
  
 
  }
 
  }
</source>
+
</syntaxhighlight>
  
 
===事件文件===
 
===事件文件===
<tt>Data\Events\*.xnb</tt>包含了事件脚本,事件里也有全部的对话。(看看 [[使用模组:事件数据]]).
+
<samp>Data\Events\*.xnb</samp>包含了事件脚本,事件里也有全部的对话。(看看 [[使用模组:事件数据]]).
  
 
===动画描述===
 
===动画描述===
<tt>Data\animationDescriptions.xnb</tt>包含了简短的动画描述,以配合行程上所显示的动作。(这里我来说明一下,行程有两种方式可以显示对话/描述,一种是行程对话scheduledialogue,另外的就是动画描述animationDescriptions,如果你想要NPC在行程里有显示动画和对话,需要额外给animation加上描述才能同时拥有动画和对话,行程对话在动画时是无法显示的,这点请各位注意一下。)
+
<samp>Data\animationDescriptions.xnb</samp>包含了简短的动画描述,以配合行程上所显示的动作。(这里我来说明一下,行程有两种方式可以显示对话/描述,一种是行程对话scheduledialogue,另外的就是动画描述animationDescriptions,如果你想要NPC在行程里有显示动画和对话,需要额外给animation加上描述才能同时拥有动画和对话,行程对话在动画时是无法显示的,这点请各位注意一下。)
  
 
===Strings from CS 文件===
 
===Strings from CS 文件===
<tt>Strings\StringsFromCSFiles.xnb</tt>包含了各种各样的预设对话。这个文件里有着预设好的对话、大部分NPC共同使用的对话(比如NPC会说ta们的XXX喜欢/讨厌什么东西)、硬核事件(比如婚礼的致辞)等等。
+
<samp>Strings\StringsFromCSFiles.xnb</samp>包含了各种各样的预设对话。这个文件里有着预设好的对话、大部分NPC共同使用的对话(比如NPC会说ta们的XXX喜欢/讨厌什么东西)、硬核事件(比如婚礼的致辞)等等。
 这个文件的条目格式为<tt>"<key>": "对话字符串"</tt> <tt>"<key>": "dialogue string"</tt>,它可以是任意的特殊标识符。这些键必须完全匹配游戏里所需要的键,但这些键只是游戏专属的特殊标识符&mdash; 即使这些键看起来就像<tt>{{t|file name}}.{{t|line number}}</tt>,这最初只是用于分配IDs的,并且这些IDs没有任何意义或者作用。(甚至它也不需要匹配当前的文件名或行号)。*说句一般人看得懂的话,其实就是StringsFromCSFiles这个文件里的对话全部都是无法被我们添加进入游戏代码里,最多只能通过某些小手段把dialogue string改成你想要的句子*
+
 这个文件的条目格式为<samp>"<key>": "对话字符串"</samp> <samp>"<key>": "dialogue string"</samp>,它可以是任意的特殊标识符。这些键必须完全匹配游戏里所需要的键,但这些键只是游戏专属的特殊标识符&mdash; 即使这些键看起来就像<samp>{{t|file name}}.{{t|line number}}</samp>,这最初只是用于分配IDs的,并且这些IDs没有任何意义或者作用。(甚至它也不需要匹配当前的文件名或行号)。*说句一般人看得懂的话,其实就是StringsFromCSFiles这个文件里的对话全部都是无法被我们添加进入游戏代码里,最多只能通过某些小手段把dialogue string改成你想要的句子*
  
 
====NPC-specific通用对话====
 
====NPC-specific通用对话====
 
*如果你使用的是上面对话模板的"give_flowersA"和"give_flowersB",你还需要额外去下载{{nexus mod|2544|Canon-Friendly Dialogue Expansion for All Friend-able Characters}}来运行这个对话,唯一缺点就是如果有其他NPC模组是没有这些对话,会陷入死循环。*
 
*如果你使用的是上面对话模板的"give_flowersA"和"give_flowersB",你还需要额外去下载{{nexus mod|2544|Canon-Friendly Dialogue Expansion for All Friend-able Characters}}来运行这个对话,唯一缺点就是如果有其他NPC模组是没有这些对话,会陷入死循环。*
 用点小聪明,你可以让每个NPC做出不同的反应,而不是使用常规的预设对话。打个比方,你可以使用CP模组{{nexus mod|1915|Content Patcher}}来改变<tt>NPC.cs.3962</tt> 和<tt>NPC.cs.3963</tt> (送花交往对话反应),与<tt>NPC.cs.3980</tt> (送吊坠求婚对话反应):
+
 用点小聪明,你可以让每个NPC做出不同的反应,而不是使用常规的预设对话。打个比方,你可以使用CP模组{{nexus mod|1915|Content Patcher}}来改变<samp>NPC.cs.3962</samp> 和<samp>NPC.cs.3963</samp> (送花交往对话反应),与<samp>NPC.cs.3980</samp> (送吊坠求婚对话反应):
<source lang="json">
+
<syntaxhighlight lang="json">
 
{
 
{
 
   "Action": "EditData",
 
   "Action": "EditData",
行 492: 行 492:
 
   }
 
   }
 
}
 
}
</source>
+
</syntaxhighlight>
  
 以这个为例子,每一个NPC会从[[使用模组:对话数据#NPC-specific通用对话|角色对话]]文件里的<tt>give_flowersA</tt>, <tt>give_flowersB< 打个比方/tt>, 和 <tt>give_pendant</tt> 读取对应的反应对话. (看看以下[[#格式|格式]]的信息可以了解更多的语法)记得要把全部可婚NPC都要加上,否则会有BUG。例子,你可以给海莉加上这个:
+
 以这个为例子,每一个NPC会从[[使用模组:对话数据#NPC-specific通用对话|角色对话]]文件里的<samp>give_flowersA</samp>, <samp>give_flowersB</samp>, 和 <samp>give_pendant</samp> 读取对应的反应对话. (看看以下[[#格式|格式]]的信息可以了解更多的语法)记得要把全部可婚NPC都要加上,否则会有BUG。例子,你可以给海莉加上这个:
<source lang="json">
+
<syntaxhighlight lang="json">
 
{
 
{
 
   "Action": "EditData",
 
   "Action": "EditData",
行 505: 行 505:
 
   }
 
   }
 
}
 
}
</source>
+
</syntaxhighlight>
  
 
 这个可以添加其他通用对话,你甚至可以通过已经回答问题的IDs来避免“送花束”的重复问答。*原文直译不太行,我来解释一下,使用$q指令的问答对话会有对应的ID,比如上面使用的是$q 10001(作为问题ID)和$r 10001(作为回答ID),回答后的回答ID会被游戏存档记录,所以也有可能会导致向其他NPC求婚时会出现BUG。总结一下就是,建议使用这个对话格式而不是上面有问答ID的*
 
 这个可以添加其他通用对话,你甚至可以通过已经回答问题的IDs来避免“送花束”的重复问答。*原文直译不太行,我来解释一下,使用$q指令的问答对话会有对应的ID,比如上面使用的是$q 10001(作为问题ID)和$r 10001(作为回答ID),回答后的回答ID会被游戏存档记录,所以也有可能会导致向其他NPC求婚时会出现BUG。总结一下就是,建议使用这个对话格式而不是上面有问答ID的*
行 513: 行 513:
  
 
# 事件对话从适当的事件命令中读取 (看看[[模组目录:事件数据]]).
 
# 事件对话从适当的事件命令中读取 (看看[[模组目录:事件数据]]).
# 特定位置的对话从 <tt>StringsFromCSFiles {{t|location}}.cs</tt>读取。
+
# 特定位置的对话从 <samp>StringsFromCSFiles {{t|location}}.cs</samp>读取。
 
# 其他角色对话文件将从角色-特定文件读取。
 
# 其他角色对话文件将从角色-特定文件读取。
# 如果找不到对话,游戏就诉诸于 <tt>StringsFromCSFiles</tt> 文件硬编码的对话(特殊键的前置为 <tt>NPC.cs</tt> NPC.cs).
+
# 如果找不到对话,游戏就诉诸于 <samp>StringsFromCSFiles</samp> 文件硬编码的对话(特殊键的前置为 <samp>NPC.cs</samp> NPC.cs).
  
 
==格式==
 
==格式==
 对话内容包含了可以改变对话框的tokens和commands, 改变内容(比如说根据玩家当前性别读取对应性别的对话),注入值等等。这些都被解析为<tt>Dialogue</tt>分类。
+
 对话内容包含了可以改变对话框的tokens和commands, 改变内容(比如说根据玩家当前性别读取对应性别的对话),注入值等等。这些都被解析为<samp>Dialogue</samp>分类。
  
 
 特殊tokens:
 
 特殊tokens:
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
 
! 密钥格式(key format)
 
! 密钥格式(key format)
 
! 描述(description)
 
! 描述(description)
 
|-
 
|-
| <tt>#</tt>
+
| <samp>#</samp>
 
| 把两个对话指令隔开的符号。
 
| 把两个对话指令隔开的符号。
 
|-
 
|-
| <tt>{</tt>
+
| <samp>{</samp>
 
| 未完成的指令,用于"breakSpecialCharacter"指令。*反正我们现在没有用到就是了*
 
| 未完成的指令,用于"breakSpecialCharacter"指令。*反正我们现在没有用到就是了*
 
|-
 
|-
| <tt>^</tt>
+
| <samp>^</samp>
 
| 根据玩家性别切换对话的指令。这个符号的前面句子是男性玩家可见,符号后面为女性玩家可见。<br />''例子: <code>早上好,@先生!^早上好,@小姐!</code>''
 
| 根据玩家性别切换对话的指令。这个符号的前面句子是男性玩家可见,符号后面为女性玩家可见。<br />''例子: <code>早上好,@先生!^早上好,@小姐!</code>''
 
|-
 
|-
| <tt>%</tt>
+
| <samp>%</samp>
 
| 把带有人物肖像的对话框变成旁边式对话框。<br />''例子: <code>"%阿比盖尔沉迷于她的歌曲里"</code>''
 
| 把带有人物肖像的对话框变成旁边式对话框。<br />''例子: <code>"%阿比盖尔沉迷于她的歌曲里"</code>''
 
|-
 
|-
| <tt>*</tt>
+
| <samp>*</samp>
 
| 未完成的指令,用于"quickResponseDelineator"指令。*不过大部分人用于表示某些情绪或者动作,比如说*笑*、*嘀咕*、*打哈欠*、*打喷嚏*等等,某种意义上是偷懒专用*
 
| 未完成的指令,用于"quickResponseDelineator"指令。*不过大部分人用于表示某些情绪或者动作,比如说*笑*、*嘀咕*、*打哈欠*、*打喷嚏*等等,某种意义上是偷懒专用*
 
|}
 
|}
行 547: 行 547:
 
:<code>"fall_Fri6": "在我很小的时候,爸爸就领养了我。$s#$b#抱歉,我可能又说了让你不舒服的话了……$u#$e#算了……今天你的农场打理得怎么样?",</code>
 
:<code>"fall_Fri6": "在我很小的时候,爸爸就领养了我。$s#$b#抱歉,我可能又说了让你不舒服的话了……$u#$e#算了……今天你的农场打理得怎么样?",</code>
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
 
! 密钥格式(key format)
 
! 密钥格式(key format)
 
! 描述(description)
 
! 描述(description)
 
|-
 
|-
| <tt>$neutral</tt>
+
| <samp>$neutral</samp>
 
| 切换角色表情为默认/一般表情。
 
| 切换角色表情为默认/一般表情。
 
|-
 
|-
| <tt>$h</tt>
+
| <samp>$h</samp>
 
| 切换角色表情为开心表情。
 
| 切换角色表情为开心表情。
 
|-
 
|-
| <tt>$s</tt>
+
| <samp>$s</samp>
 
| 切换角色表情为伤心表情。
 
| 切换角色表情为伤心表情。
 
|-
 
|-
| <tt>$u</tt>
+
| <samp>$u</samp>
 
| 切换角色表情为特殊表情。
 
| 切换角色表情为特殊表情。
 
|-
 
|-
| <tt>$l</tt>
+
| <samp>$l</samp>
 
| 切换角色表情为脸红/喜欢表情。
 
| 切换角色表情为脸红/喜欢表情。
 
|-
 
|-
| <tt>$a</tt>
+
| <samp>$a</samp>
 
| 切换角色表情为生气表情。
 
| 切换角色表情为生气表情。
 
|-
 
|-
| <tt>${{t|id}}</tt>
+
| <samp>${{t|id}}</samp>
| 根据id的数字切换对应位置的表情。这些肖像ID顺序从左到右,从上到下并以<tt>$0</tt>开始计算。全部角色都有固定6个基础表情: <tt>$0</tt> (默认/一般), <tt>$1</tt> (开心), <tt>$2</tt> (伤心), <tt>$3</tt> (特殊), <tt>$4</tt> (脸红/喜欢), and <tt>$5</tt> (生气)。你可以为角色创造自制表情以用在对话或者事件剧情里。<br/>注意: <tt>$1</tt>不能放在对话的最前面,因为会和以下的指令冲突(参考下面的<tt>$1</tt>)。
+
| 根据id的数字切换对应位置的表情。这些肖像ID顺序从左到右,从上到下并以<samp>$0</samp>开始计算。全部角色都有固定6个基础表情: <samp>$0</samp> (默认/一般), <samp>$1</samp> (开心), <samp>$2</samp> (伤心), <samp>$3</samp> (特殊), <samp>$4</samp> (脸红/喜欢), and <samp>$5</samp> (生气)。你可以为角色创造自制表情以用在对话或者事件剧情里。<br />注意: <samp>$1</samp>不能放在对话的最前面,因为会和以下的指令冲突(参考下面的<samp>$1</samp>)。
 
|}
 
|}
  
 
===对话指令===
 
===对话指令===
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
| <tt>$q {{t|回答ID}} {{t|回馈}}#{{t|内容}}</tt><br /><tt>$q {{t|response IDs}} {{t|fallback}}#{{t|text}}</tt>
+
| <samp>$q {{t|回答ID}} {{t|回馈}}#{{t|内容}}</samp><br /><samp>$q {{t|response IDs}} {{t|fallback}}#{{t|text}}</samp>
 
| 提出问题的对话格式(问答对话指令的前缀)。如果{{t|response IDs}} (根据你是选择了前面的回答ID或者后者的ID,这个<code>/</code>是用来隔开回答ID)已经在之前回答问题时已经触发过,那么问题将会直接读取你对应的回答反应(或者这段对话的其他部分),除此之外,如果你上一次已经回答过这个问答,{{t|fallback}}可以搭配$p指令来制作下一次遇到这个问题时会说的话。注意: 问答ID需要是独一无二的,和事件一样,以防止和其他NPC的问答ID冲突而导致对话被跳过。可以去看看[[使用模组:事件数据|这个事件的界面]]以得到更多资讯。
 
| 提出问题的对话格式(问答对话指令的前缀)。如果{{t|response IDs}} (根据你是选择了前面的回答ID或者后者的ID,这个<code>/</code>是用来隔开回答ID)已经在之前回答问题时已经触发过,那么问题将会直接读取你对应的回答反应(或者这段对话的其他部分),除此之外,如果你上一次已经回答过这个问答,{{t|fallback}}可以搭配$p指令来制作下一次遇到这个问题时会说的话。注意: 问答ID需要是独一无二的,和事件一样,以防止和其他NPC的问答ID冲突而导致对话被跳过。可以去看看[[使用模组:事件数据|这个事件的界面]]以得到更多资讯。
 
|-
 
|-
| <tt>$r {{t|回答ID}} {{t|增加多少好感度}} {{t|反应}}#{{t|答案1的内容}}</tt><br /><tt>$r {{t|response ID}} {{t|friendship}} {{t|reaction}}#{{t|answer text}}</tt>
+
| <samp>$r {{t|回答ID}} {{t|增加多少好感度}} {{t|反应}}#{{t|答案1的内容}}</samp><br /><samp>$r {{t|response ID}} {{t|friendship}} {{t|reaction}}#{{t|answer text}}</samp>
| 为$q问答对话添加回答选项。 {{t|answer text}}是你想要给玩家选择的回答。{{t|response ID}}是将对应的回答归类为你所填充的ID,以此让你能在以后的某些指令使用(同一个ID可以同时被多个回答归类)。 {{t|friendship}}是玩家选择这个答案之后可以让NPC的好感度产生变化,正数会增加好感,负数为减少好感。{{t|reaction}}是玩家回答后根据答案所填充的{{t|reaction}}读取对应NPC反应,基本上是在<tt>Content\Characters\Dialogue\*.xnb</tt>文件里读取这个对话(事件也是一样,反应的对话在Dialogue)。
+
| 为$q问答对话添加回答选项。 {{t|answer text}}是你想要给玩家选择的回答。{{t|response ID}}是将对应的回答归类为你所填充的ID,以此让你能在以后的某些指令使用(同一个ID可以同时被多个回答归类)。 {{t|friendship}}是玩家选择这个答案之后可以让NPC的好感度产生变化,正数会增加好感,负数为减少好感。{{t|reaction}}是玩家回答后根据答案所填充的{{t|reaction}}读取对应NPC反应,基本上是在<samp>Content\Characters\Dialogue\*.xnb</samp>文件里读取这个对话(事件也是一样,反应的对话在Dialogue)。
 
|-
 
|-
| <tt>$p {{t|回答ID}}#{{t|达成ID的内容}}&#124;{{t|没有达成的内容}}</tt><br /><tt>$p {{t|response ID}}#{{t|match text}}&#124;{{t|no-match text}}</tt>
+
| <samp>$p {{t|回答ID}}#{{t|达成ID的内容}}&#124;{{t|没有达成的内容}}</samp><br /><samp>$p {{t|response ID}}#{{t|match text}}&#124;{{t|no-match text}}</samp>
 
| p代表"对话的先决条件"(dialoguePrerequisite)。根据之前玩家所回答的ID而显示不同的对话。如果之前玩家选择的回答和这个{{t|response ID}}是一样的,那么{{t|match text}}将会被显示;相反的,如果没有选择到对应ID,{{t|no-match text}}就会被显示. 这些对话内容是使用<code>&#124;</code>这个符号分开不同内容。可以使用<code>#</code>来搞出多个内容(虽然目前我只看到两个内容,不知道三个以上的内容是否存在)。这并不需要是对话字符串中的第一个命令(就是你可以在一般对话之后放{{t|$p}}指令,虽然,这样的变化我也没试过……希望有个好人可以帮忙验证真假)。
 
| p代表"对话的先决条件"(dialoguePrerequisite)。根据之前玩家所回答的ID而显示不同的对话。如果之前玩家选择的回答和这个{{t|response ID}}是一样的,那么{{t|match text}}将会被显示;相反的,如果没有选择到对应ID,{{t|no-match text}}就会被显示. 这些对话内容是使用<code>&#124;</code>这个符号分开不同内容。可以使用<code>#</code>来搞出多个内容(虽然目前我只看到两个内容,不知道三个以上的内容是否存在)。这并不需要是对话字符串中的第一个命令(就是你可以在一般对话之后放{{t|$p}}指令,虽然,这样的变化我也没试过……希望有个好人可以帮忙验证真假)。
 
|-
 
|-
| <tt>$b</tt>
+
| <samp>$b</samp>
 
| 暂时停止对话,直到玩家点一下对话框就可以延续{{t|$b}}以后的对话。(这里举个明显可以看到差别的例子,那就是对话框右下方或者人物肖像的左下方,会出现向下的箭头。)
 
| 暂时停止对话,直到玩家点一下对话框就可以延续{{t|$b}}以后的对话。(这里举个明显可以看到差别的例子,那就是对话框右下方或者人物肖像的左下方,会出现向下的箭头。)
 
|-
 
|-
| <tt>$e</tt>
+
| <samp>$e</samp>
| 结束当前对话,并且关闭对话框使玩家可以恢复行动。再次与NPC对话才能触发<tt>$e</tt>以后的对话。(这里举个明显可以看到差别的例子,那就是对话框右下方或者人物肖像的左下方,会出现中间有X的小方格,并且你可以看到对话框缩小并消失。)
+
| 结束当前对话,并且关闭对话框使玩家可以恢复行动。再次与NPC对话才能触发<samp>$e</samp>以后的对话。(这里举个明显可以看到差别的例子,那就是对话框右下方或者人物肖像的左下方,会出现中间有X的小方格,并且你可以看到对话框缩小并消失。)
 
|-
 
|-
| <tt>$k</tt>
+
| <samp>$k</samp>
 
| 未完成的指令。代表"对话杀死"(dialogueKill)。(貌似至今为止是没有看过作者使用,看看未来有没有被赋予意义)
 
| 未完成的指令。代表"对话杀死"(dialogueKill)。(貌似至今为止是没有看过作者使用,看看未来有没有被赋予意义)
 
|-
 
|-
| <tt>$c {{t|概率}}#{{t|内容1}}#{{t|内容2}}</tt><br /><tt>$c {{t|probability}}#{{t|text1}}#{{t|text2}}</tt>
+
| <samp>$c {{t|概率}}#{{t|内容1}}#{{t|内容2}}</samp><br /><samp>$c {{t|probability}}#{{t|text1}}#{{t|text2}}</samp>
 
| 根据{{t|probability}}0到1以内的概率显示{{t|text1}}的对话内容;除此之外,将触发{{t|text2}}的对话内容。比如:<code>$c 0.9</code>是90%概率会触发{{t|text1}}并且剩余的10%概率会触发{{t|text2}}。 注意: 替代器命令(在下方可见)不能在{{t|text1}}正常运行。这并不需要是对话字符串中的第一个命令(指可以放在正常对话的后面)。'''这个完全不看游戏内的运气。'''(警告:由于不看游戏内运气且星露谷的概率不是一般抽卡游戏的伪随机*指有保底*,所以如果要搞这个随机对话最好不要像我把条件弄得太严苛*我的条件是限第一年夏季星期二6心好感50%概率触发*如果不是想要搞个小彩蛋真的没必要……)
 
| 根据{{t|probability}}0到1以内的概率显示{{t|text1}}的对话内容;除此之外,将触发{{t|text2}}的对话内容。比如:<code>$c 0.9</code>是90%概率会触发{{t|text1}}并且剩余的10%概率会触发{{t|text2}}。 注意: 替代器命令(在下方可见)不能在{{t|text1}}正常运行。这并不需要是对话字符串中的第一个命令(指可以放在正常对话的后面)。'''这个完全不看游戏内的运气。'''(警告:由于不看游戏内运气且星露谷的概率不是一般抽卡游戏的伪随机*指有保底*,所以如果要搞这个随机对话最好不要像我把条件弄得太严苛*我的条件是限第一年夏季星期二6心好感50%概率触发*如果不是想要搞个小彩蛋真的没必要……)
 
|-
 
|-
| <tt>$d {{t|bus|joja|cc|kent}}</tt>
+
| <samp>$d {{t|bus|joja|cc|kent}}</samp>
| "根据世界状态而显示的对话"(dialogueDependingOnWorldState)<br/>
+
| "根据世界状态而显示的对话"(dialogueDependingOnWorldState)<br />
<code>"Tue4": "$d</code> {{t|dependence}}<code>#|当"dependence"的数值是存在会触发的对话内容|除此之外的情况会触发的对话内容",</code><br/>
+
<code>"Tue4": "$d</code> {{t|dependence}}<code>#|当"dependence"的数值是存在会触发的对话内容|除此之外的情况会触发的对话内容",</code><br />
 这些"dependence"拥有4个数值: "bus": 巴士是否被修复; "joja": 乔家超市是否还在营业; "cc": 社区中心是否被修复; "kent": 肯特是否回来。这个指令必须在对话字符串中的第一个指令,且不允许有其他对话。<br /><small>例子: <tt>Sun2: "$d bus#今天去找桑迪玩玩吧~|巴士什么时候才修好啊,想去沙漠玩……"</tt></small>
+
 这些"dependence"拥有4个数值: "bus": 巴士是否被修复; "joja": 乔家超市是否还在营业; "cc": 社区中心是否被修复; "kent": 肯特是否回来。这个指令必须在对话字符串中的第一个指令,且不允许有其他对话。<br /><small>例子: <samp>Sun2: "$d bus#今天去找桑迪玩玩吧~|巴士什么时候才修好啊,想去沙漠玩……"</samp></small>
 
|-
 
|-
| <tt>$y</tt>
+
| <samp>$y</samp>
| 未完成的指令。代表"对话快捷反应"(dialogueQuickResponse):一个简单的问答对话。类似$q指令的运作,但是是一个且都是在同一个文本里。它并没有"对话的先决条件"(dialoguePrerequisite)$p或者好感度变化。它可以直接被触发。(注意:你只能放置在对话字符串的最后一个,否则你的问题、回答和反应都会乱成一团糟。如果不信邪可以尝试复制坏例子的那个对话并且粘贴到随便一个NPC,然后进入游戏测试会发生什么事)<br /><small>例子1: <tt>Penny: "$y '要来份早饭吗?_是的,谢谢。_好,给你。_不了,我感觉很好。_那额外的就给我吃啦!'"</tt></small><br /><small>例子2: <tt>Sun4: "嗨,@先生。^嗨,@小姐。#$b#今天天气不错……#$b#$y '要来我家吃饭吗?_当然。_那就那么说定了!_抱歉,我今天很忙。_没关系,下次再来吧'"</tt></small><br /><small>坏例子: <tt>Sun4: "嗨,@先生。^嗨,@小姐。#$b#今天天气不错……#$b#$y '要来我家吃饭吗?_当然。_那就那么说定了!_抱歉,我今天很忙。_没关系,下次再来吧'#$e#今天要招待什么料理呢~"</tt></small>
+
| 未完成的指令。代表"对话快捷反应"(dialogueQuickResponse):一个简单的问答对话。类似$q指令的运作,但是是一个且都是在同一个文本里。它并没有"对话的先决条件"(dialoguePrerequisite)$p或者好感度变化。它可以直接被触发。(注意:你只能放置在对话字符串的最后一个,否则你的问题、回答和反应都会乱成一团糟。如果不信邪可以尝试复制坏例子的那个对话并且粘贴到随便一个NPC,然后进入游戏测试会发生什么事)<br /><small>例子1: <samp>Penny: "$y '要来份早饭吗?_是的,谢谢。_好,给你。_不了,我感觉很好。_那额外的就给我吃啦!'"</samp></small><br /><small>例子2: <samp>Sun4: "嗨,@先生。^嗨,@小姐。#$b#今天天气不错……#$b#$y '要来我家吃饭吗?_当然。_那就那么说定了!_抱歉,我今天很忙。_没关系,下次再来吧'"</samp></small><br /><small>坏例子: <samp>Sun4: "嗨,@先生。^嗨,@小姐。#$b#今天天气不错……#$b#$y '要来我家吃饭吗?_当然。_那就那么说定了!_抱歉,我今天很忙。_没关系,下次再来吧'#$e#今天要招待什么料理呢~"</samp></small>
 
|-
 
|-
| <tt>$1 {{t|信件ID}}#{{t|第一次看到的内容}} #$e# {{t|第N次以后的内容}}</tt><br /><tt>$1 {{t|letter ID}}#{{t|1st-time text}} #$e# {{t|nth-time text}}</tt>
+
| <samp>$1 {{t|信件ID}}#{{t|第一次看到的内容}} #$e# {{t|第N次以后的内容}}</samp><br /><samp>$1 {{t|letter ID}}#{{t|1st-time text}} #$e# {{t|nth-time text}}</samp>
 
| 创造一个玩家(几乎)只能看到一次该NPC的对话。{{t|1st-time text}}只会在{{t|letter ID}}还没被标记(并且没有被标记后送出去);相反的, {{t|nth-time text}}将被触发。{{t|letter ID}}不应该对应于实际的邮件(因为它不会被寄出),但是它可以被事件或其他对话线引用。
 
| 创造一个玩家(几乎)只能看到一次该NPC的对话。{{t|1st-time text}}只会在{{t|letter ID}}还没被标记(并且没有被标记后送出去);相反的, {{t|nth-time text}}将被触发。{{t|letter ID}}不应该对应于实际的邮件(因为它不会被寄出),但是它可以被事件或其他对话线引用。
 
|-
 
|-
| <tt>%fork</tt>
+
| <samp>%fork</samp>
| 设置<tt>specialEventVariable1</tt>变量,可以通过后面的<tt>fork</tt>事件命令来检查。主要用于事件期间<tt>$q</tt>问题的反应对话。(总结:新手不要先接触,变量说来话长,在<tt> [[使用模组:事件数据|事件指令]]</tt>里看看详细用法吧) 
+
| 设置<samp>specialEventVariable1</samp>变量,可以通过后面的<samp>fork</samp>事件命令来检查。主要用于事件期间<samp>$q</samp>问题的反应对话。(总结:新手不要先接触,变量说来话长,在<samp> [[使用模组:事件数据|事件指令]]</samp>里看看详细用法吧) 
 
|-
 
|-
| <tt>[# # #]</tt>
+
| <samp>[# # #]</samp>
 
| 根据格子所填充的三个物品ID,随机给出一样物品。(一个格子一次性只能随机三样物品)如果是[231][120]分开放置物品ID,那么你可以一次性得到两个物品。(当然,两个格子各放三个物品ID也是可以的,只需要记得最多只能放三个物品ID)
 
| 根据格子所填充的三个物品ID,随机给出一样物品。(一个格子一次性只能随机三样物品)如果是[231][120]分开放置物品ID,那么你可以一次性得到两个物品。(当然,两个格子各放三个物品ID也是可以的,只需要记得最多只能放三个物品ID)
 
|}
 
|}
行 620: 行 620:
 
 为了能够更了解$q、$r和$p如何运作,看这里的例子作为参考可以帮助你。请注意如何格式化脚本更容易阅读:
 
 为了能够更了解$q、$r和$p如何运作,看这里的例子作为参考可以帮助你。请注意如何格式化脚本更容易阅读:
  
<source lang="yaml">
+
<syntaxhighlight lang="yaml">
 
summer_Fri:
 
summer_Fri:
 
    "我想我明天会去海滩玩!
 
    "我想我明天会去海滩玩!
行 643: 行 643:
 
      |哦,你好,@,今天过得怎么样?
 
      |哦,你好,@,今天过得怎么样?
 
    ",
 
    ",
</source>
+
</syntaxhighlight>
  
 
 以上对话在夏季的任何星期五触发。NPC的对话开头总是触发: "我想我明天会去海滩玩!"
 
 以上对话在夏季的任何星期五触发。NPC的对话开头总是触发: "我想我明天会去海滩玩!"
  
 
 之后,ta会开始问你问题
 
 之后,ta会开始问你问题
<source lang="yaml">#$q 305/306 beachquestion_followup#你想要跟我来吗?</source>
+
<syntaxhighlight lang="yaml">#$q 305/306 beachquestion_followup#你想要跟我来吗?</syntaxhighlight>
  
 
'''$q''' 开始提问。 '''305/306'''检查这个问题是否在以前触发过,如果有就会直接把你的对话送到'''beachquestion_followup'''这个对话密钥。(你可以随意你的对话密钥以方便你找到/知道/运作/检查)
 
'''$q''' 开始提问。 '''305/306'''检查这个问题是否在以前触发过,如果有就会直接把你的对话送到'''beachquestion_followup'''这个对话密钥。(你可以随意你的对话密钥以方便你找到/知道/运作/检查)
行 654: 行 654:
 
 之后,就是玩家可以回答的答案。你可以增加多少个 '''$r'''都没问题;这里,我们则是三个:
 
 之后,就是玩家可以回答的答案。你可以增加多少个 '''$r'''都没问题;这里,我们则是三个:
  
<source lang="yaml">
+
<syntaxhighlight lang="yaml">
 
    #$r 305 15 beachquestion_yes#当然,我超喜欢!
 
    #$r 305 15 beachquestion_yes#当然,我超喜欢!
 
    #$r 306 0 beachquestion_sorry#噢,对不起,我已经和别人约好了……
 
    #$r 306 0 beachquestion_sorry#噢,对不起,我已经和别人约好了……
 
    #$r 306 -10 beachquestion_no#不用了,谢谢。
 
    #$r 306 -10 beachquestion_no#不用了,谢谢。
</source>
+
</syntaxhighlight>
 
 如果你表示同意(指第一个回答),游戏将会记录 '''ID 305'''作为你回答问题的答案。之后,你和那个角色的好感度增加了'''15'''点数。 '''beachquestion_yes'''就会被触发并延续刚刚问答对话。
 
 如果你表示同意(指第一个回答),游戏将会记录 '''ID 305'''作为你回答问题的答案。之后,你和那个角色的好感度增加了'''15'''点数。 '''beachquestion_yes'''就会被触发并延续刚刚问答对话。
  
行 665: 行 665:
 
 现在我们需要给对话密钥加上反应:
 
 现在我们需要给对话密钥加上反应:
  
<source lang="yaml">
+
<syntaxhighlight lang="yaml">
 
    beachquestion_yes: "好耶!是约会!$h",
 
    beachquestion_yes: "好耶!是约会!$h",
 
    beachquestion_sorry: "淦,好吧。$6",
 
    beachquestion_sorry: "淦,好吧。$6",
行 674: 行 674:
 
        |哎,要是有个人能陪我,那该有多好……$s
 
        |哎,要是有个人能陪我,那该有多好……$s
 
      ",
 
      ",
</source>
+
</syntaxhighlight>
  
 
 这里需要注意的是'''beachquestion_followup'''。当玩家再一次触发这个对话时,'''$q 305/306'''会被检测以判定是开始问问题或者直接读取这个对话。
 
 这里需要注意的是'''beachquestion_followup'''。当玩家再一次触发这个对话时,'''$q 305/306'''会被检测以判定是开始问问题或者直接读取这个对话。
行 682: 行 682:
 
 这里隔天会触发另外一个变量反应:
 
 这里隔天会触发另外一个变量反应:
  
<source lang="yaml">
+
<syntaxhighlight lang="yaml">
 
summer_Sat:
 
summer_Sat:
 
    "每年这个时候的海滩都很赞……
 
    "每年这个时候的海滩都很赞……
行 689: 行 689:
 
      |哦,你好,@,今天过得怎么样?
 
      |哦,你好,@,今天过得怎么样?
 
    ",
 
    ",
</source>
+
</syntaxhighlight>
  
 
 依旧是第一行,每一次玩家与NPC对话的第一句都会是(每年这个时候……),但是下一行是根据昨天玩家所选择的答案来显示出对应对话内容。
 
 依旧是第一行,每一次玩家与NPC对话的第一句都会是(每年这个时候……),但是下一行是根据昨天玩家所选择的答案来显示出对应对话内容。
行 697: 行 697:
 
 这里是另一个从海莉的对话文件里拿出来的例子。注意一下,即使脚本格式很难读懂,但游戏能够同时处理这两种格式。
 
 这里是另一个从海莉的对话文件里拿出来的例子。注意一下,即使脚本格式很难读懂,但游戏能够同时处理这两种格式。
  
<source lang="yaml">
+
<syntaxhighlight lang="yaml">
 
    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: "农场的活好像很无聊的样子……#$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_old: "#$p 43#嘿,你最好别在我房间里偷偷摸摸的!!$a|不过我估计你没准能练出个好身材。" #!String
 
    summer_Sat_12: "嗯……听起来是个大工程。" #!String
 
    summer_Sat_12: "嗯……听起来是个大工程。" #!String
 
    summer_Sat_13: "什么?你最好别有这个想法!$a" #!String
 
    summer_Sat_13: "什么?你最好别有这个想法!$a" #!String
</source>
+
</syntaxhighlight>
  
 
 第一回触发的<code>summer_Sat</code>,将会触发42或者43的反应(因为这个问题是唯一有它们作为回答的问题),所以海莉会说 "农场的活好像很无聊的样子……一天都干什么呢?" 玩家可以选择以下其中一个回答:
 
 第一回触发的<code>summer_Sat</code>,将会触发42或者43的反应(因为这个问题是唯一有它们作为回答的问题),所以海莉会说 "农场的活好像很无聊的样子……一天都干什么呢?" 玩家可以选择以下其中一个回答:
行 716: 行 716:
  
 
===替代器命令===
 
===替代器命令===
 替换器命令将被替换为相关字符串。注意只有<tt>@</tt>在信件条目能够运作。(目前来看好像只有事件里的message不能使用@,望补充)
+
 替换器命令将被替换为相关字符串。注意只有<samp>@</samp>在信件条目能够运作。(目前来看好像只有事件里的message不能使用@,望补充)
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
| <tt>@</tt>
+
| <samp>@</samp>
 
| 玩家的名字。<br />''例子: <code>嗨,@!</code>''
 
| 玩家的名字。<br />''例子: <code>嗨,@!</code>''
 
|-
 
|-
| <tt>%adj</tt>
+
| <samp>%adj</samp>
 
| 随机形容词。 (从Content/Strings/StringsFromCSFiles.xnb读取)
 
| 随机形容词。 (从Content/Strings/StringsFromCSFiles.xnb读取)
 
|-
 
|-
| <tt>%noun</tt>
+
| <samp>%noun</samp>
 
| 随机名词。(从Content/Strings/StringsFromCSFiles.xnb读取)
 
| 随机名词。(从Content/Strings/StringsFromCSFiles.xnb读取)
 
|-
 
|-
| <tt>%place</tt>
+
| <samp>%place</samp>
 
| 随机地点名字。(从Content/Strings/StringsFromCSFiles.xnb读取)
 
| 随机地点名字。(从Content/Strings/StringsFromCSFiles.xnb读取)
 
|-
 
|-
| <tt>%spouse</tt>
+
| <samp>%spouse</samp>
 
| 玩家伴侣名字。
 
| 玩家伴侣名字。
 
|-
 
|-
| <tt>%name</tt>
+
| <samp>%name</samp>
 
| 一个随机生成的名称。(虽然,不太情况多随机)
 
| 一个随机生成的名称。(虽然,不太情况多随机)
 
|-
 
|-
| <tt>%firstnameletter</tt>
+
| <samp>%firstnameletter</samp>
 
| 玩家名字的前半部分(四舍五入),比如 ''Nat''如果玩家名字是Natalie。(不清楚其他语言是怎么运作,望补充)
 
| 玩家名字的前半部分(四舍五入),比如 ''Nat''如果玩家名字是Natalie。(不清楚其他语言是怎么运作,望补充)
 
|-
 
|-
| <tt>%time</tt>
+
| <samp>%time</samp>
 
| 当前游戏时间。
 
| 当前游戏时间。
 
|-
 
|-
| <tt>%band</tt>
+
| <samp>%band</samp>
 
| 山姆和赛巴斯的乐队名字。
 
| 山姆和赛巴斯的乐队名字。
 
|-
 
|-
| <tt>%book</tt>
+
| <samp>%book</samp>
 
| 艾利欧特写的书的标题。
 
| 艾利欧特写的书的标题。
 
|-
 
|-
| <tt>%rival</tt>
+
| <samp>%rival</samp>
 
| 根据玩家性别并从StringsFromCSFiles.xnb随机生成一个姓名。(从Utility.cs.5499到Utility.cs.5560) 不会和农夫的名字匹配。
 
| 根据玩家性别并从StringsFromCSFiles.xnb随机生成一个姓名。(从Utility.cs.5499到Utility.cs.5560) 不会和农夫的名字匹配。
 
|-
 
|-
| <tt>%pet</tt>
+
| <samp>%pet</samp>
 
| 玩家宠物的名字。
 
| 玩家宠物的名字。
 
|-
 
|-
| <tt>%farm</tt>
+
| <samp>%farm</samp>
 
| 农场的名字。比如:听闻%farm农场的农场主是位年轻人……
 
| 农场的名字。比如:听闻%farm农场的农场主是位年轻人……
 
|-
 
|-
| <tt>%favorite</tt>
+
| <samp>%favorite</samp>
 
| 玩家在开头填写的喜欢的东西。(建议不要乱填,要不然对话会很搞笑)
 
| 玩家在开头填写的喜欢的东西。(建议不要乱填,要不然对话会很搞笑)
 
|-
 
|-
| <tt>%kid1</tt>
+
| <samp>%kid1</samp>
 
| 玩家第一个孩子的名字。
 
| 玩家第一个孩子的名字。
 
|-
 
|-
| <tt>%kid2</tt>
+
| <samp>%kid2</samp>
 
| 玩家第二个孩子的名字。
 
| 玩家第二个孩子的名字。
 
|}
 
|}
行 773: 行 773:
  
 
===星期里的某天/星期几Days of week===
 
===星期里的某天/星期几Days of week===
* <tt>Mon 星期一</tt>
+
* <samp>Mon 星期一</samp>
* <tt>Tue 星期二</tt>
+
* <samp>Tue 星期二</samp>
* <tt>Wed 星期三</tt>
+
* <samp>Wed 星期三</samp>
* <tt>Thu 星期四</tt>
+
* <samp>Thu 星期四</samp>
* <tt>Fri 星期五</tt>
+
* <samp>Fri 星期五</samp>
* <tt>Sat 星期六</tt>
+
* <samp>Sat 星期六</samp>
* <tt>Sun 星期日</tt>
+
* <samp>Sun 星期日</samp>
  
 
===季节Seasons===
 
===季节Seasons===
* <tt>spring 春天</tt>
+
* <samp>spring 春天</samp>
* <tt>summer 夏天</tt>
+
* <samp>summer 夏天</samp>
* <tt>fall 秋天</tt>
+
* <samp>fall 秋天</samp>
* <tt>winter 冬天</tt>
+
* <samp>winter 冬天</samp>
  
 
===第一/第一以后的年份===
 
===第一/第一以后的年份===
 
 虽然在游戏里的对话使用了"first/later year"这个值,但是它只有两个是有效的:
 
 虽然在游戏里的对话使用了"first/later year"这个值,但是它只有两个是有效的:
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
 
! 密钥格式(key format)
 
! 密钥格式(key format)
 
! 描述(description)
 
! 描述(description)
 
|-
 
|-
| <tt>1</tt>
+
| <samp>1</samp>
 
| 发生在第一年。
 
| 发生在第一年。
 
|-
 
|-
| <tt>2</tt>
+
| <samp>2</samp>
 
| 发生在第一年以后的任何一年(就算不是第2年)。
 
| 发生在第一年以后的任何一年(就算不是第2年)。
 
|}
 
|}
行 808: 行 808:
  
 
; 对话
 
; 对话
: {| class="wikitable"
+
: {|class="wikitable"
 
|-
 
|-
 
! NPC
 
! NPC
行 815: 行 815:
 
|-
 
|-
 
| 阿比盖尔
 
| 阿比盖尔
| <tt>Sun2</tt><br />''@你觉得我们死后会变成什么样?''
+
| <samp>Sun2</samp><br />''@你觉得我们死后会变成什么样?''
| <tt>17</tt>: ''我不知道。''<br /><tt>18</tt>: ''我们会变成鬼魂。''<br /><tt>17</tt>: ''我们会上天堂。''<br /><tt>18</tt>: ''我们的能量体会进入灵界。''<br /><tt>17</tt>: ''什么都不会发生。我们就是不存在了而已。''
+
| <samp>17</samp>: ''我不知道。''<br /><samp>18</samp>: ''我们会变成鬼魂。''<br /><samp>17</samp>: ''我们会上天堂。''<br /><samp>18</samp>: ''我们的能量体会进入灵界。''<br /><samp>17</samp>: ''什么都不会发生。我们就是不存在了而已。''
 
|-
 
|-
 
| 阿比盖尔
 
| 阿比盖尔
| <tt>summer_Sun</tt><br />''好吧……假设你得到了一个带薪假期。你会去哪儿?''
+
| <samp>summer_Sun</samp><br />''好吧……假设你得到了一个带薪假期。你会去哪儿?''
| <tt>25</tt>: ''海滩''<br /><tt>26</tt>: ''漆黑的山洞''<br /><tt>26</tt>: ''古老茂密的森林''<br /><tt>25</tt>: ''乔家购物广场''
+
| <samp>25</samp>: ''海滩''<br /><samp>26</samp>: ''漆黑的山洞''<br /><samp>26</samp>: ''古老茂密的森林''<br /><samp>25</samp>: ''乔家购物广场''
 
|-
 
|-
 
| 阿比盖尔
 
| 阿比盖尔
| <tt>fall_Sun</tt><br />''我想给我的头发重新染个色……你觉得什么颜色好?''
+
| <samp>fall_Sun</samp><br />''我想给我的头发重新染个色……你觉得什么颜色好?''
| <tt>27</tt>: ''染成黑色吧。''<br /><tt>27</tt>: ''不妨试试金色吧?''<br /><tt>27</tt>: ''粉红怎么样?''<br /><tt>28</tt>: ''我喜欢你现在的样子!''
+
| <samp>27</samp>: ''染成黑色吧。''<br /><samp>27</samp>: ''不妨试试金色吧?''<br /><samp>27</samp>: ''粉红怎么样?''<br /><samp>28</samp>: ''我喜欢你现在的样子!''
 
|-
 
|-
 
| 阿比盖尔
 
| 阿比盖尔
| <tt>winter_Sun</tt><br />''我画了两幅画。你觉得怎么样?''
+
| <samp>winter_Sun</samp><br />''我画了两幅画。你觉得怎么样?''
| <tt>29</tt>: ''我喜欢丛林海岛和老虎这一幅。''<br /><tt>30</tt>: ''我喜欢拿着战斧的兽人这一幅。''<br /><tt>29</tt>: ''我哪幅都不喜欢。''
+
| <samp>29</samp>: ''我喜欢丛林海岛和老虎这一幅。''<br /><samp>30</samp>: ''我喜欢拿着战斧的兽人这一幅。''<br /><samp>29</samp>: ''我哪幅都不喜欢。''
 
|-
 
|-
 
| 亚历克斯
 
| 亚历克斯
| <tt>Wed</tt><br />''我还想叫你一起投投球,但你好像不怎么喜欢运动。^如果你不是女孩子,我就约你打球了。''
+
| <samp>Wed</samp><br />''我还想叫你一起投投球,但你好像不怎么喜欢运动。^如果你不是女孩子,我就约你打球了。''
| <tt>6</tt>: ''我站在旁边看就好了。''<br /><tt>5</tt>: ''我想和你打球!''<br /><tt>5</tt>: ''(愤怒)你到底是什么意思?''
+
| <samp>6</samp>: ''我站在旁边看就好了。''<br /><samp>5</samp>: ''我想和你打球!''<br /><samp>5</samp>: ''(愤怒)你到底是什么意思?''
 
|-
 
|-
 
| 亚历克斯
 
| 亚历克斯
| <tt>summer_Wed</tt><br />''你觉得我能成为职业选手吗?''
+
| <samp>summer_Wed</samp><br />''你觉得我能成为职业选手吗?''
| <tt>52</tt>: ''你一定会成为运动场上的传奇''<br /><tt>52</tt>: ''可能吧,你毕竟练习了那么久''<br /><tt>53</tt>: ''别做梦了,你还是老老实实去做推销员吧''
+
| <samp>52</samp>: ''你一定会成为运动场上的传奇''<br /><samp>52</samp>: ''可能吧,你毕竟练习了那么久''<br /><samp>53</samp>: ''别做梦了,你还是老老实实去做推销员吧''
 
|-
 
|-
 
| 亚历克斯
 
| 亚历克斯
| <tt>fall_Wed</tt><br />''你觉得女孩子会喜欢我的发型吗?^你觉得我的发型怎么样?''
+
| <samp>fall_Wed</samp><br />''你觉得女孩子会喜欢我的发型吗?^你觉得我的发型怎么样?''
| <tt>54</tt>: ''看起来挺时尚的。''<br /><tt>55</tt>: ''像头上长了蘑菇一样。''
+
| <samp>54</samp>: ''看起来挺时尚的。''<br /><samp>55</samp>: ''像头上长了蘑菇一样。''
 
|-
 
|-
 
| 克林特
 
| 克林特
| <tt>Mon</tt><br />''你一定猜不到我的曾祖父以前是一名……''
+
| <samp>Mon</samp><br />''你一定猜不到我的曾祖父以前是一名……''
| <tt>9</tt>: ''铁匠。''<br /><tt>9</tt>: ''一个糊涂的小丑''<br /><tt>9</tt>: ''一个尖酸刻薄的混蛋。''
+
| <samp>9</samp>: ''铁匠。''<br /><samp>9</samp>: ''一个糊涂的小丑''<br /><samp>9</samp>: ''一个尖酸刻薄的混蛋。''
 
|-
 
|-
 
| 海莉
 
| 海莉
| <tt>summer_Sat</tt><br />''一天都干什么呢?''
+
| <samp>summer_Sat</samp><br />''一天都干什么呢?''
| <tt>42</tt>: ''护理植物''<br /><tt>42</tt>: ''探索山洞''<br /><tt>43</tt>: ''在房子里面转''<br /><tt>42</tt>: ''挖宝藏''
+
| <samp>42</samp>: ''护理植物''<br /><samp>42</samp>: ''探索山洞''<br /><samp>43</samp>: ''在房子里面转''<br /><samp>42</samp>: ''挖宝藏''
 
|-
 
|-
 
| 海莉
 
| 海莉
| <tt>fall_Sat</tt><br />''*唉*……你觉得我今天做点什么好呢?''
+
| <samp>fall_Sat</samp><br />''*唉*……你觉得我今天做点什么好呢?''
| <tt>44</tt>: ''水彩画''<br /><tt>44</tt>: ''阅读杂志''<br /><tt>44</tt>: ''安安静静的呆着(原文翻译:快停止成为一个自私的爱哭鬼)''
+
| <samp>44</samp>: ''水彩画''<br /><samp>44</samp>: ''阅读杂志''<br /><samp>44</samp>: ''安安静静的呆着(原文翻译:快停止成为一个自私的爱哭鬼)''
 
|-
 
|-
 
| 莉亚
 
| 莉亚
| <tt>Mon</tt><br />''所以你为什么要做一个农夫呢?''
+
| <samp>Mon</samp><br />''所以你为什么要做一个农夫呢?''
| <tt>21</tt>: ''我想要赚很多很多的钱。''<br /><tt>22</tt>: ''住在这里比住在城市里要更“真实”。''<br /><tt>211132</tt>: ''为了追随爷爷的脚步。''<br /><tt>22</tt>: ''我想要逃离我原来的生活。''
+
| <samp>21</samp>: ''我想要赚很多很多的钱。''<br /><samp>22</samp>: ''住在这里比住在城市里要更“真实”。''<br /><samp>211132</samp>: ''为了追随爷爷的脚步。''<br /><samp>22</samp>: ''我想要逃离我原来的生活。''
 
|-
 
|-
 
| 玛鲁
 
| 玛鲁
| <tt>Sun</tt><br />''你在农场工作得开心吗?''
+
| <samp>Sun</samp><br />''你在农场工作得开心吗?''
| <tt>3</tt>: ''开心。''<br /><tt>4</tt>: ''不开心。''
+
| <samp>3</samp>: ''开心。''<br /><samp>4</samp>: ''不开心。''
 
|-
 
|-
 
| 玛鲁
 
| 玛鲁
| <tt>summer_Thu</tt><br />''我下了决心,以后一定要自己做个机器人出来。''
+
| <samp>summer_Thu</samp><br />''我下了决心,以后一定要自己做个机器人出来。''
| <tt>35</tt>: ''对你来说,应该是小菜一碟。''<br /><tt>36</tt>: ''你可别眼高手低了''<br /><tt>35</tt>: ''听起来应该挺难的吧''
+
| <samp>35</samp>: ''对你来说,应该是小菜一碟。''<br /><samp>36</samp>: ''你可别眼高手低了''<br /><samp>35</samp>: ''听起来应该挺难的吧''
 
|-
 
|-
 
| 潘妮
 
| 潘妮
| <tt>Mon4</tt><br />''但果然还是不要总想着消极的一面吧?''
+
| <samp>Mon4</samp><br />''但果然还是不要总想着消极的一面吧?''
| <tt>7</tt>: ''没错。还是保持乐观比较好哦!''<br /><tt>8</tt>: ''还是现实一点比较好吧。''
+
| <samp>7</samp>: ''没错。还是保持乐观比较好哦!''<br /><samp>8</samp>: ''还是现实一点比较好吧。''
 
|-
 
|-
 
| 山姆
 
| 山姆
| <tt>Wed</tt><br />''嘿……你觉得我的新歌该是什么主题的?''
+
| <samp>Wed</samp><br />''嘿……你觉得我的新歌该是什么主题的?''
| <tt>20</tt>: ''耕种、挖矿和砍柴。''<br /><tt>8820</tt>: ''海中之城。''<br /><tt>8821</tt>: ''火车。''<br /><tt>19</tt>: ''随便吧。反正都是难听死的。''
+
| <samp>20</samp>: ''耕种、挖矿和砍柴。''<br /><samp>8820</samp>: ''海中之城。''<br /><samp>8821</samp>: ''火车。''<br /><samp>19</samp>: ''随便吧。反正都是难听死的。''
 
|-
 
|-
 
| 赛巴斯
 
| 赛巴斯
| <tt>Fri2</tt><br />''那么你是如何打发空闲时间的?''
+
| <samp>Fri2</samp><br />''那么你是如何打发空闲时间的?''
| <tt>15</tt>: ''继续耕种''<br /><tt>16</tt>: ''漫画书''<br /><tt>15</tt>: ''采购''<br /><tt>15</tt>: ''运动''
+
| <samp>15</samp>: ''继续耕种''<br /><samp>16</samp>: ''漫画书''<br /><samp>15</samp>: ''采购''<br /><samp>15</samp>: ''运动''
 
|-
 
|-
 
| 赛巴斯
 
| 赛巴斯
| <tt>fall_Fri</tt><br />''你平时读书吗, @?''
+
| <samp>fall_Fri</samp><br />''你平时读书吗, @?''
| <tt>62</tt>: ''嗯。看些经典名著。''<br /><tt>63</tt>: ''只看科幻与奇幻作品。''<br /><tt>62</tt>: ''我喜欢言情作品。''<br /><tt>63</tt>: ''不,我不看书的。''
+
| <samp>62</samp>: ''嗯。看些经典名著。''<br /><samp>63</samp>: ''只看科幻与奇幻作品。''<br /><samp>62</samp>: ''我喜欢言情作品。''<br /><samp>63</samp>: ''不,我不看书的。''
 
|}
 
|}
  
 
; 事件
 
; 事件
: {| class="wikitable"
+
: {|class="wikitable"
 
|-
 
|-
 
! 事件
 
! 事件
行 892: 行 892:
 
| [[阿比盖尔#4心事件|阿比盖尔四心事件]]<!--2/f Abigail 1000/w rainy/t 1200 1900/z winter-->
 
| [[阿比盖尔#4心事件|阿比盖尔四心事件]]<!--2/f Abigail 1000/w rainy/t 1200 1900/z winter-->
 
| ''@!你怎么站在雨里啊?$7''
 
| ''@!你怎么站在雨里啊?$7''
| <tt>32</tt>: ''我在干活儿''<br /><tt>32</tt>: ''我在享受这种天气''<br /><tt>32</tt>: ''我还想问你呢''
+
| <samp>32</samp>: ''我在干活儿''<br /><samp>32</samp>: ''我在享受这种天气''<br /><samp>32</samp>: ''我还想问你呢''
 
|-
 
|-
 
| [[阿比盖尔#6心事件|阿比盖尔六心事件]]<!--4/f Abigail 1500/t 2100 2400/w sunny-->
 
| [[阿比盖尔#6心事件|阿比盖尔六心事件]]<!--4/f Abigail 1500/t 2100 2400/w sunny-->
 
| ''你以前用过剑对么?''
 
| ''你以前用过剑对么?''
| <tt>847951</tt>: ''没错,我觉得很刺激!''<br /><tt>847951</tt>: ''是的,但只是自卫而已''<br /><tt>847951</tt>: ''没错,但是太危险了。你不应该冒险。''<br /><tt>847951</tt>: ''没有''
+
| <samp>847951</samp>: ''没错,我觉得很刺激!''<br /><samp>847951</samp>: ''是的,但只是自卫而已''<br /><samp>847951</samp>: ''没错,但是太危险了。你不应该冒险。''<br /><samp>847951</samp>: ''没有''
 
|-
 
|-
 
| [[阿比盖尔#10心事件|阿比盖尔十心事件]]<!--901756/f Abigail 2500/t 1700 2400/o Abigail-->
 
| [[阿比盖尔#10心事件|阿比盖尔十心事件]]<!--901756/f Abigail 2500/t 1700 2400/o Abigail-->
 
| ''*吸气*$s''
 
| ''*吸气*$s''
| <tt>776589</tt>: ''发生了什么?''<br /><tt>776589</tt>: ''你还好吗?''
+
| <samp>776589</samp>: ''发生了什么?''<br /><samp>776589</samp>: ''你还好吗?''
 
|-
 
|-
 
| [[阿比盖尔#10心事件|阿比盖尔十心事件]]<!--901756/f Abigail 2500/t 1700 2400/o Abigail-->
 
| [[阿比盖尔#10心事件|阿比盖尔十心事件]]<!--901756/f Abigail 2500/t 1700 2400/o Abigail-->
 
| ''我可能没有自己想象的那么勇敢……$8''
 
| ''我可能没有自己想象的那么勇敢……$8''
| <tt>34</tt>: ''和我在一起,你就安全了。''<br /><tt>34</tt>: ''我也害怕。''<br /><tt>34</tt>: ''你哭得就像个三岁小孩儿。别说了。''
+
| <samp>34</samp>: ''和我在一起,你就安全了。''<br /><samp>34</samp>: ''我也害怕。''<br /><samp>34</samp>: ''你哭得就像个三岁小孩儿。别说了。''
 
|-
 
|-
 
| [[亚历克斯#5心事件|亚历克斯五心事件]]<!--21/f Alex 1250/p Alex-->
 
| [[亚历克斯#5心事件|亚历克斯五心事件]]<!--21/f Alex 1250/p Alex-->
 
| ''我真没用……$s''
 
| ''我真没用……$s''
| <tt>57</tt>: ''才不是。你明明是个天才!''<br /><tt>57</tt>: ''我们都有自己的长处和短处。''<br /><tt>57</tt>: ''没用?对,总结得很精辟。''
+
| <samp>57</samp>: ''才不是。你明明是个天才!''<br /><samp>57</samp>: ''我们都有自己的长处和短处。''<br /><samp>57</samp>: ''没用?对,总结得很精辟。''
 
|-
 
|-
 
| [[克林特#3心事件 I|克林特三心事件]]<!--97/f Clint 750/t 1900 2300/d Tue Wed Thu Fri Sat Sun-->
 
| [[克林特#3心事件 I|克林特三心事件]]<!--97/f Clint 750/t 1900 2300/d Tue Wed Thu Fri Sat Sun-->
 
| ''你有什么秘诀吗?^你能给我一些建议吗?''
 
| ''你有什么秘诀吗?^你能给我一些建议吗?''
| <tt>211</tt>: ''靠你的能力和魅力打动女性''<br /><tt>211</tt>: ''做些疯狂的事情,让别人猜不透你''<br /><tt>211</tt>: ''表现得正常一点儿……做你自己就好''<br /><tt>211</tt>: ''把女人当男人一样对待''
+
| <samp>211</samp>: ''靠你的能力和魅力打动女性''<br /><samp>211</samp>: ''做些疯狂的事情,让别人猜不透你''<br /><samp>211</samp>: ''表现得正常一点儿……做你自己就好''<br /><samp>211</samp>: ''把女人当男人一样对待''
 
|-
 
|-
 
| [[德米特里厄斯#6心事件|德米特里厄斯六心事件]]<!--25/f Demetrius 1500/p Demetrius/p Robin-->
 
| [[德米特里厄斯#6心事件|德米特里厄斯六心事件]]<!--25/f Demetrius 1500/p Demetrius/p Robin-->
 
| ''你觉得西红柿算什么?''
 
| ''你觉得西红柿算什么?''
| <tt>59</tt>: ''蔬菜''<br /><tt>59</tt>: ''水果''
+
| <samp>59</samp>: ''蔬菜''<br /><samp>59</samp>: ''水果''
 
|-
 
|-
 
| [[艾利欧特#2心事件|艾利欧特二心事件]]<!--39/f Elliott 500/p Elliott-->
 
| [[艾利欧特#2心事件|艾利欧特二心事件]]<!--39/f Elliott 500/p Elliott-->
 
| ''问个问题……你喜欢什么样的书, @?''
 
| ''问个问题……你喜欢什么样的书, @?''
| <tt>958699</tt>: ''悬念''<br /><tt>958700</tt>: ''浪漫''<br /><tt>958701</tt>: ''科幻''
+
| <samp>958699</samp>: ''悬念''<br /><samp>958700</samp>: ''浪漫''<br /><samp>958701</samp>: ''科幻''
 
|-
 
|-
 
| [[艾利欧特#4心事件|艾利欧特四心事件]]<!--40/f Elliott 1000/p Gus/t 1500 2200-->
 
| [[艾利欧特#4心事件|艾利欧特四心事件]]<!--40/f Elliott 1000/p Gus/t 1500 2200-->
 
| ''等等。让我们举杯庆祝一下!为了……''
 
| ''等等。让我们举杯庆祝一下!为了……''
| <tt>28376</tt>: ''鹈鹕镇!''<br /><tt>28376</tt>: ''我们的友谊!''<br /><tt>28376</tt>: ''我们的健康!''<br /><tt>28376</tt>: ''你的命运!''
+
| <samp>28376</samp>: ''鹈鹕镇!''<br /><samp>28376</samp>: ''我们的友谊!''<br /><samp>28376</samp>: ''我们的健康!''<br /><samp>28376</samp>: ''你的命运!''
 
|-
 
|-
 
| [[艾米丽#6心事件|艾米丽六心事件]]<!--917409/e 463391/f Emily 1500/p Emily-->
 
| [[艾米丽#6心事件|艾米丽六心事件]]<!--917409/e 463391/f Emily 1500/p Emily-->
 
| ''所以……*喘气*……你感觉怎么样?$h''
 
| ''所以……*喘气*……你感觉怎么样?$h''
| <tt>213</tt>: ''这太奇妙了!''<br /><tt>213</tt>: ''真尴尬……''<br /><tt>213</tt>: ''(保持沉默并缓缓鼓掌)''
+
| <samp>213</samp>: ''这太奇妙了!''<br /><samp>213</samp>: ''真尴尬……''<br /><samp>213</samp>: ''(保持沉默并缓缓鼓掌)''
 
|-
 
|-
 
| [[艾芙琳#4心事件|艾芙琳四心事件]]<!--19/f Evelyn 1000/p Evelyn-->
 
| [[艾芙琳#4心事件|艾芙琳四心事件]]<!--19/f Evelyn 1000/p Evelyn-->
 
| ''您觉得如何?''
 
| ''您觉得如何?''
| <tt>51</tt>: ''很美味!''<br /><tt>51</tt>: ''就像在嚼冰球''
+
| <samp>51</samp>: ''很美味!''<br /><samp>51</samp>: ''就像在嚼冰球''
 
|-
 
|-
 
| [[格斯#4心事件|格斯四心事件]]<!--96/f Gus 1000/f Pam 500/p Gus-->
 
| [[格斯#4心事件|格斯四心事件]]<!--96/f Gus 1000/f Pam 500/p Gus-->
 
| ''@,你有什么事儿吗?''
 
| ''@,你有什么事儿吗?''
| <tt>207</tt>: ''你现在就得把赊的账给结了!''<br /><tt>208</tt>: ''酒吧在经济上有些困难''
+
| <samp>207</samp>: ''你现在就得把赊的账给结了!''<br /><samp>208</samp>: ''酒吧在经济上有些困难''
 
|-
 
|-
 
| [[海莉#2心事件|海莉二心事件]]<!--11/f Haley 500/p Haley/p Emily-->
 
| [[海莉#2心事件|海莉二心事件]]<!--11/f Haley 500/p Haley/p Emily-->
 
| ''那是因为上周是我打扫的!$a''
 
| ''那是因为上周是我打扫的!$a''
| <tt>46</tt>: ''少废话,赶紧打扫!''<br /><tt>45</tt>: ''海莉,何不每周固定打扫一次呢?''<br /><tt>46</tt>: ''艾米丽,这次就去打扫吧。''
+
| <samp>46</samp>: ''少废话,赶紧打扫!''<br /><samp>45</samp>: ''海莉,何不每周固定打扫一次呢?''<br /><samp>46</samp>: ''艾米丽,这次就去打扫吧。''
 
|-
 
|-
 
| [[海莉#4心事件|海莉四心事件]]<!--12/f Haley 1000/p Haley-->
 
| [[海莉#4心事件|海莉四心事件]]<!--12/f Haley 1000/p Haley-->
 
| ''话说……你挺有劲的,对吧?''
 
| ''话说……你挺有劲的,对吧?''
| <tt>47</tt>: ''是''<br /><tt>47</tt>: ''不是''
+
| <samp>47</samp>: ''是''<br /><samp>47</samp>: ''不是''
 
|-
 
|-
 
| [[海莉#6心事件|海莉六心事件]]<!--13/f Haley 1500/z winter/t 1000 1600-->
 
| [[海莉#6心事件|海莉六心事件]]<!--13/f Haley 1500/z winter/t 1000 1600-->
 
| ''这东西现在已经买不到了……$s''
 
| ''这东西现在已经买不到了……$s''
| <tt>48</tt>: ''别担心,我给你买个新的!''<br /><tt>48</tt>: ''太遗憾了……''
+
| <samp>48</samp>: ''别担心,我给你买个新的!''<br /><samp>48</samp>: ''太遗憾了……''
 
|-
 
|-
 
| [[哈维#2心事件|哈维二心事件]]<!--56/f Harvey 500/p George-->
 
| [[哈维#2心事件|哈维二心事件]]<!--56/f Harvey 500/p George-->
 
| ''@你觉得乔治该怎么做?''
 
| ''@你觉得乔治该怎么做?''
| <tt>84</tt>: ''乔治应该听从哈维医生的建议。''<br /><tt>85</tt>: ''乔治知道怎么做对他的身体最好。''
+
| <samp>84</samp>: ''乔治应该听从哈维医生的建议。''<br /><samp>85</samp>: ''乔治知道怎么做对他的身体最好。''
 
|-
 
|-
 
| [[哈维#4心事件|哈维四心事件]]<!--57/f Harvey 1000/p Harvey-->
 
| [[哈维#4心事件|哈维四心事件]]<!--57/f Harvey 1000/p Harvey-->
 
| ''嗯……你的心跳有点儿快。$u''
 
| ''嗯……你的心跳有点儿快。$u''
| <tt>86</tt>: ''我有点紧张。''<br /><tt>86</tt>: ''我刚才在农场里干活,现在还没喘过来气。''<br /><tt>86</tt>: ''你真的是医生吗?我的心跳很正常!''
+
| <samp>86</samp>: ''我有点紧张。''<br /><samp>86</samp>: ''我刚才在农场里干活,现在还没喘过来气。''<br /><samp>86</samp>: ''你真的是医生吗?我的心跳很正常!''
 
|-
 
|-
 
| [[肯特#3心事件 I|肯特三心事件]]<!--100/f Kent 750/p Kent/p Jodi-->
 
| [[肯特#3心事件 I|肯特三心事件]]<!--100/f Kent 750/p Kent/p Jodi-->
 
| ''(跟肯特聊聊)$s''
 
| ''(跟肯特聊聊)$s''
| <tt>215</tt>: ''这事怪乔迪……她本该知道的!''<br /><tt>215</tt>: ''我知道你内心很痛苦……但这也不能怨你老婆啊。''<br /><tt>215</tt>: ''(撒谎)这事怪我……是我说要吃爆米花的。''
+
| <samp>215</samp>: ''这事怪乔迪……她本该知道的!''<br /><samp>215</samp>: ''我知道你内心很痛苦……但这也不能怨你老婆啊。''<br /><samp>215</samp>: ''(撒谎)这事怪我……是我说要吃爆米花的。''
 
|-
 
|-
 
| [[莉亚#4心事件|莉亚四心事件]]<!--51/f Leah 1000/p Leah-->
 
| [[莉亚#4心事件|莉亚四心事件]]<!--51/f Leah 1000/p Leah-->
 
| ''我是不是太自私了 @?$s''
 
| ''我是不是太自私了 @?$s''
| <tt>83</tt>: ''不,你只是做了必须做的事情。''<br /><tt>83</tt>: ''不,是你的前任太蠢了。''<br /><tt>83</tt>: ''不,但你其实应该待在城里。''<br /><tt>83</tt>: ''对,有那么一点儿。''<br /><tt>83</tt>: ''对,但人不为己天诛地灭。''
+
| <samp>83</samp>: ''不,你只是做了必须做的事情。''<br /><samp>83</samp>: ''不,是你的前任太蠢了。''<br /><samp>83</samp>: ''不,但你其实应该待在城里。''<br /><samp>83</samp>: ''对,有那么一点儿。''<br /><samp>83</samp>: ''对,但人不为己天诛地灭。''
 
|-
 
|-
 
| [[刘易斯#6心事件|刘易斯六心事件]]<!--639373/f Lewis 1500/f Marnie 1500/t 1900 2300/w sunny-->
 
| [[刘易斯#6心事件|刘易斯六心事件]]<!--639373/f Lewis 1500/f Marnie 1500/t 1900 2300/w sunny-->
| ''@...You overheard everything, didn't you?$s''
+
| ''@ ……你什么都听到了,是么?$s''
| <tt>200</tt>: ''Yes... but I'll keep it a secret.''<br /><tt>201</tt>: ''Yes... and I'm going to tell everyone.''
+
| <samp>200</samp>: '' 是的……但是我会保密的。''<br /><samp>201</samp>: '' 是的……我要告诉大家。''
 
|-
 
|-
 
| [[玛鲁#2心事件|玛鲁二心事件]]<!--6/f Maru 500/p Maru-->
 
| [[玛鲁#2心事件|玛鲁二心事件]]<!--6/f Maru 500/p Maru-->
| ''Right, @?''
+
| '' 我说的没错吧, @?''
| <tt>15933</tt>: ''(Say nothing)''<br /><tt>15933</tt>: ''Actually, your Dad was being weird.''
+
| <samp>15933</samp>: '' (什么也不说)''<br /><samp>15933</samp>: '' 其实,你爸刚刚可神秘了。''
 
|-
 
|-
 
| [[玛鲁#4心事件|玛鲁四心事件]]<!--7/f Maru 1000/p Maru-->
 
| [[玛鲁#4心事件|玛鲁四心事件]]<!--7/f Maru 1000/p Maru-->
 
| ''@我应该怎么办?''
 
| ''@我应该怎么办?''
| <tt>38</tt>: ''从地板上铲起来就好。他不会发现的。''<br /><tt>39</tt>: ''告诉哈维是我的错。''<br /><tt>38</tt>: ''告诉哈维,这纯属意外。''
+
| <samp>38</samp>: ''从地板上铲起来就好。他不会发现的。''<br /><samp>39</samp>: ''告诉哈维是我的错。''<br /><samp>38</samp>: ''告诉哈维,这纯属意外。''
 
|-
 
|-
 
| [[玛鲁#6心事件|玛鲁六心事件]]<!--8/f Maru 1500/w sunny/t 2100 2340-->
 
| [[玛鲁#6心事件|玛鲁六心事件]]<!--8/f Maru 1500/w sunny/t 2100 2340-->
 
| ''你看到的是什么?''
 
| ''你看到的是什么?''
| <tt>40</tt>: ''一颗美丽的星球。''<br /><tt>40</tt>: ''一片漆黑的深渊。''
+
| <samp>40</samp>: ''一颗美丽的星球。''<br /><samp>40</samp>: ''一片漆黑的深渊。''
 
|-
 
|-
 
| [[玛鲁#8心事件|玛鲁八心事件]]<!--9/f Maru 2000/p Maru-->
 
| [[玛鲁#8心事件|玛鲁八心事件]]<!--9/f Maru 2000/p Maru-->
 
| ''真是对不起。$8''
 
| ''真是对不起。$8''
| <tt>41</tt>: ''没关系,根本不疼的。''<br /><tt>41</tt>: ''抱歉就对了。简直疼死人了!''
+
| <samp>41</samp>: ''没关系,根本不疼的。''<br /><samp>41</samp>: ''抱歉就对了。简直疼死人了!''
 
|-
 
|-
 
| [[玛鲁#10心事件|玛鲁十心事件]]<!--10/f Maru 2500/t 900 1600-->
 
| [[玛鲁#10心事件|玛鲁十心事件]]<!--10/f Maru 2500/t 900 1600-->
 
| ''那么,你觉得怎么样呢, @?''
 
| ''那么,你觉得怎么样呢, @?''
| <tt>18981</tt>: ''我认为你的发明很厉害。''<br /><tt>18981</tt>: ''我很失望……你不该让那机器人成为你的奴隶的。''<br /><tt>18981</tt>: ''看来你爸对我们在一起是没意见咯?''<br /><tt>18981</tt>: ''(盯着玛鲁,什么也不说)''
+
| <samp>18981</samp>: ''我认为你的发明很厉害。''<br /><samp>18981</samp>: ''我很失望……你不该让那机器人成为你的奴隶的。''<br /><samp>18981</samp>: ''看来你爸对我们在一起是没意见咯?''<br /><samp>18981</samp>: ''(盯着玛鲁,什么也不说)''
 
|-
 
|-
 
| [[玛鲁#10心事件|玛鲁十心事件]]<!--BadAnswer-->
 
| [[玛鲁#10心事件|玛鲁十心事件]]<!--BadAnswer-->
 
| ''你会那么说,肯定有原因……$a''
 
| ''你会那么说,肯定有原因……$a''
| <tt>18982</tt>: ''玛丽尔达就是一台设计用来模仿人类的机器。''<br /><tt>18982</tt>: ''我刚才是在开玩笑。玛丽尔达应该享有自由的权力。''<br /><tt>18982</tt>: ''我会让她去农场里工作。''
+
| <samp>18982</samp>: ''玛丽尔达就是一台设计用来模仿人类的机器。''<br /><samp>18982</samp>: ''我刚才是在开玩笑。玛丽尔达应该享有自由的权力。''<br /><samp>18982</samp>: ''我会让她去农场里工作。''
 
|-
 
|-
 
| [[潘妮#2心事件|潘妮二心事件]]<!--34/f Penny 500/t 900 1400/w sunny-->
 
| [[潘妮#2心事件|潘妮二心事件]]<!--34/f Penny 500/t 900 1400/w sunny-->
 
| ''@?你看到了?''
 
| ''@?你看到了?''
| <tt>71</tt>: ''没错,你做的很好,潘妮。''<br /><tt>71</tt>: ''你应该不管他的,现在他倒恼羞成怒了。''<br /><tt>71</tt>: ''我就散个步,不用管我。''
+
| <samp>71</samp>: ''没错,你做的很好,潘妮。''<br /><samp>71</samp>: ''你应该不管他的,现在他倒恼羞成怒了。''<br /><samp>71</samp>: ''我就散个步,不用管我。''
 
|-
 
|-
 
| [[潘妮#6心事件|潘妮六心事件]]<!--36/f Penny 1500/p Penny-->
 
| [[潘妮#6心事件|潘妮六心事件]]<!--36/f Penny 1500/p Penny-->
 
| ''……怎么样?''
 
| ''……怎么样?''
| <tt>72</tt>: ''(说谎)嗯嗯!真好吃!''<br /><tt>73</tt>: ''呃……我能把剩下的带走吗?''<br /><tt>73</tt>: ''真是特别的味道……你是怎么把它做得那么耐人寻味的?''
+
| <samp>72</samp>: ''(说谎)嗯嗯!真好吃!''<br /><samp>73</samp>: ''呃……我能把剩下的带走吗?''<br /><samp>73</samp>: ''真是特别的味道……你是怎么把它做得那么耐人寻味的?''
 
|-
 
|-
 
| [[皮埃尔#6心事件|皮埃尔六心事件]]<!--16/f Pierre 1500/p Pierre-->
 
| [[皮埃尔#6心事件|皮埃尔六心事件]]<!--16/f Pierre 1500/p Pierre-->
 
| ''发誓你不会把这事儿告诉任何人。''
 
| ''发誓你不会把这事儿告诉任何人。''
| <tt>50</tt>: ''我会为你保守秘密的。''<br /><tt>50</tt>: ''这事儿应该让你太太知道。''
+
| <samp>50</samp>: ''我会为你保守秘密的。''<br /><samp>50</samp>: ''这事儿应该让你太太知道。''
 
|-
 
|-
 
| [[罗宾#6心事件|罗宾六心事件]]<!--33/f Robin 1500/p Robin-->
 
| [[罗宾#6心事件|罗宾六心事件]]<!--33/f Robin 1500/p Robin-->
 
| ''你有没有用木头做过东西呢, @?''
 
| ''你有没有用木头做过东西呢, @?''
| <tt>66</tt>: ''有''<br /><tt>66</tt>: ''没有''
+
| <samp>66</samp>: ''有''<br /><samp>66</samp>: ''没有''
 
|-
 
|-
 
| [[山姆#2心事件|山姆二心事件]]<!--44/f Sam 500/p Sam-->
 
| [[山姆#2心事件|山姆二心事件]]<!--44/f Sam 500/p Sam-->
 
| ''说, @…… 你喜欢什么样的音乐?''
 
| ''说, @…… 你喜欢什么样的音乐?''
| <tt>76</tt>: ''令人愉悦的流行乐。''<br /><tt>77</tt>: ''实验性质的硬摇滚。''<br /><tt>78</tt>: ''极富能量的舞曲。''<br /><tt>79</tt>: ''气氛活跃的乡村音乐。''
+
| <samp>76</samp>: ''令人愉悦的流行乐。''<br /><samp>77</samp>: ''实验性质的硬摇滚。''<br /><samp>78</samp>: ''极富能量的舞曲。''<br /><samp>79</samp>: ''气氛活跃的乡村音乐。''
 
|-
 
|-
 
| [[山姆#4心事件|山姆四心事件]]<!--46/f Sam 1000/p Sam-->
 
| [[山姆#4心事件|山姆四心事件]]<!--46/f Sam 1000/p Sam-->
 
| ''……告诉她吧, @。$s''
 
| ''……告诉她吧, @。$s''
| <tt>80</tt>: ''山姆把零食递给我的时候掉到了地上。''<br /><tt>80</tt>: ''山姆把零食递给我的时候被我弄掉了。''<br /><tt>81</tt>: ''山姆故意弄掉的。他觉得这样很好玩。''
+
| <samp>80</samp>: ''山姆把零食递给我的时候掉到了地上。''<br /><samp>80</samp>: ''山姆把零食递给我的时候被我弄掉了。''<br /><samp>81</samp>: ''山姆故意弄掉的。他觉得这样很好玩。''
 
|}
 
|}
  
 
==对话主题==
 
==对话主题==
 一个''对话主题''是一个可以在[[模组:事件数据|事件的先决条件]]中检入的临时flag并且可以触发一次性NPC对话(如果它有一个达标的对话密钥)。激活后,它们将被储存到<tt>Game1.player.activeDialogueEvents</tt>里。
+
 一个''对话主题''是一个可以在[[模组:事件数据|事件的先决条件]]中检入的临时flag并且可以触发一次性NPC对话(如果它有一个达标的对话密钥)。激活后,它们将被储存到<samp>Game1.player.activeDialogueEvents</samp>里。
  
 启动对话主题可以通过使用<tt>addConversationTopic</tt>[[模组:事件数据|事件指令]],<tt>%item conversationTopic</tt> [[模组:信件数据|信件指令]],或在代码中添加它到<tt>Game1.player.activeDialogueEvents</tt>。
+
 启动对话主题可以通过使用<samp>addConversationTopic</samp>[[模组:事件数据|事件指令]],<samp>%item conversationTopic</samp> [[模组:信件数据|信件指令]],或在代码中添加它到<samp>Game1.player.activeDialogueEvents</samp>。
  
 
 游戏定义了这些事件:
 
 游戏定义了这些事件:
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
 
! id
 
! id
行 1,033: 行 1,033:
 
!colspan="3"| 收集包
 
!colspan="3"| 收集包
 
|-
 
|-
| <tt>cc_Begin</tt>
+
| <samp>cc_Begin</samp>
 
| 四天
 
| 四天
 
| 在社区中心阅读了第一条祝尼魔笔记后,在[[法师]]的过场动画中设置。
 
| 在社区中心阅读了第一条祝尼魔笔记后,在[[法师]]的过场动画中设置。
 
|-
 
|-
| <tt>cc_Complete</tt>
+
| <samp>cc_Complete</samp>
 
| 四天
 
| 四天
 
| [[社区中心]]完成。(不适用于JoJa路线)
 
| [[社区中心]]完成。(不适用于JoJa路线)
 
|-
 
|-
| <tt>cc_Boulder</tt>
+
| <samp>cc_Boulder</samp>
 
| 七天
 
| 七天
 
| [[深山|深山]]的巨石被移除。
 
| [[深山|深山]]的巨石被移除。
 
|-
 
|-
| <tt>cc_Bridge</tt>
+
| <samp>cc_Bridge</samp>
 
| 七天
 
| 七天
 
| [[采石场]]的桥梁被修护。
 
| [[采石场]]的桥梁被修护。
 
|-
 
|-
| <tt>cc_Bus</tt>
+
| <samp>cc_Bus</samp>
 
| 七天
 
| 七天
 
| [[巴士站]]被修复好了。
 
| [[巴士站]]被修复好了。
 
|-
 
|-
| <tt>cc_Greenhouse</tt>
+
| <samp>cc_Greenhouse</samp>
 
| 三天
 
| 三天
 
| [[温室]]建好了。
 
| [[温室]]建好了。
 
|-
 
|-
| <tt>cc_Minecart</tt>
+
| <samp>cc_Minecart</samp>
 
| 七天
 
| 七天
 
| [[矿车]]被解锁了。
 
| [[矿车]]被解锁了。
 
|-
 
|-
| <tt>joja_Begin</tt>
+
| <samp>joja_Begin</samp>
 
| 七天
 
| 七天
| 当玩家第一次打开[[ 乔家 社区发展申请书]]。
+
| 当玩家第一次打开[[Joja 社区发展申请书]]。
 
|-
 
|-
| <tt>movieTheater</tt>
+
| <samp>movieTheater</samp>
 
| 三天
 
| 三天
 
| [[电影院|电影院]]建好了。
 
| [[电影院|电影院]]建好了。
行 1,071: 行 1,071:
 
!colspan="3"| 伴侣事件
 
!colspan="3"| 伴侣事件
 
|-
 
|-
| <tt>elliottGone</tt>
+
| <samp>elliottGone</samp>
 
| 六天
 
| 六天
 
| 当[[艾利欧特]]十四心事件开启时设置。
 
| 当[[艾利欧特]]十四心事件开启时设置。
 
|-
 
|-
| <tt>ElliottGone1</tt><br /><tt>ElliottGone2</tt><br /><tt>ElliottGone3</tt><br /><tt>ElliottGone4</tt><br /><tt>ElliottGone5</tt><br /><tt>ElliottGone6</tt><br /><tt>ElliottGone7</tt>
+
| <samp>ElliottGone1</samp><br /><samp>ElliottGone2</samp><br /><samp>ElliottGone3</samp><br /><samp>ElliottGone4</samp><br /><samp>ElliottGone5</samp><br /><samp>ElliottGone6</samp><br /><samp>ElliottGone7</samp>
 
| 一样天数
 
| 一样天数
 
| [[艾利欧特]]十四心事件的一部分。第一个flag是在开始时设置的;随后的flag是由艾利欧特随后的信件设置的。
 
| [[艾利欧特]]十四心事件的一部分。第一个flag是在开始时设置的;随后的flag是由艾利欧特随后的信件设置的。
 
|-
 
|-
| <tt>emilyFiber</tt>
+
| <samp>emilyFiber</samp>
 
| 二心
 
| 二心
 
| [[艾米丽]]十四心事件的一部分。完成委托之后设置的。
 
| [[艾米丽]]十四心事件的一部分。完成委托之后设置的。
 
|-
 
|-
| <tt>haleyCakewalk1</tt><br /><tt>haleyCakewalk2</tt>
+
| <samp>haleyCakewalk1</samp><br /><samp>haleyCakewalk2</samp>
 
| 一样天数
 
| 一样天数
 
| [[海莉]]十四心事件的一部分。
 
| [[海莉]]十四心事件的一部分。
 
|-
 
|-
| <tt>leahPaint</tt>
+
| <samp>leahPaint</samp>
 
| 一样天数
 
| 一样天数
 
| 当[[莉亚]]十四心事件开启时设置。
 
| 当[[莉亚]]十四心事件开启时设置。
 
|-
 
|-
| <tt>pennyRedecorating</tt>
+
| <samp>pennyRedecorating</samp>
 
| 两天
 
| 两天
 
| [[潘妮]]十四心事件的一部分。
 
| [[潘妮]]十四心事件的一部分。
 
|-
 
|-
| <tt>samJob1</tt><br /><tt>samJob2</tt>
+
| <samp>samJob1</samp><br /><samp>samJob2</samp>
 
| 两天
 
| 两天
 
| [[山姆]]十四心事件的一部分。
 
| [[山姆]]十四心事件的一部分。
 
|-
 
|-
| <tt>samJob3</tt>
+
| <samp>samJob3</samp>
 
| 三天
 
| 三天
 
| [[山姆]]十四心事件的一部分。
 
| [[山姆]]十四心事件的一部分。
 
|-
 
|-
| <tt>sebastianFrog</tt>
+
| <samp>sebastianFrog</samp>
 
| 一样天数
 
| 一样天数
 
| 当[[塞巴斯蒂安]]十四心事件开启时设置。
 
| 当[[塞巴斯蒂安]]十四心事件开启时设置。
 
|-
 
|-
| <tt>sebastianFrog2</tt>
+
| <samp>sebastianFrog2</samp>
 
| 六天
 
| 六天
 
| [[塞巴斯蒂安]]十四心事件的一部分。
 
| [[塞巴斯蒂安]]十四心事件的一部分。
 
|-
 
|-
| <tt>shaneSaloon1</tt><br /><tt>shaneSaloon2</tt>
+
| <samp>shaneSaloon1</samp><br /><samp>shaneSaloon2</samp>
 
| 一样天数
 
| 一样天数
 
| [[谢恩]]十四心事件的一部分。
 
| [[谢恩]]十四心事件的一部分。
行 1,117: 行 1,117:
 
!colspan="3"| 其他事件
 
!colspan="3"| 其他事件
 
|-
 
|-
| <tt>dumped_Guys</tt><br /><tt>dumped_Girls</tt>
+
| <samp>dumped_Guys</samp><br /><samp>dumped_Girls</samp>
 
| 七天
 
| 七天
 
| 设置在对应的小组10心事件之后。(看[[阿比盖尔#小组十心事件]]).
 
| 设置在对应的小组10心事件之后。(看[[阿比盖尔#小组十心事件]]).
 
|-
 
|-
| <tt>secondChance_Girls</tt><br /><tt>secondChance_Guys</tt>
+
| <samp>secondChance_Girls</samp><br /><samp>secondChance_Guys</samp>
 
| 十四天
 
| 十四天
 
| 设置在对应的小组10心事件之后。(看[[阿比盖尔#小组十心事件]]).
 
| 设置在对应的小组10心事件之后。(看[[阿比盖尔#小组十心事件]]).
 
|-
 
|-
| <tt>pamHouseUpgrade</tt>
+
| <samp>pamHouseUpgrade</samp>
 
| 四天
 
| 四天
 
| 设置在[[潘姆]]家修复事件之后,并且当时玩家选择承认自己是赞助者。
 
| 设置在[[潘姆]]家修复事件之后,并且当时玩家选择承认自己是赞助者。
 
|-
 
|-
| <tt>pamHouseUpgradeAnonymous</tt>
+
| <samp>pamHouseUpgradeAnonymous</samp>
 
| 四天
 
| 四天
 
| 设置在[[潘姆]]家修复事件之后,并且当时玩家选择保密自己的身份。
 
| 设置在[[潘姆]]家修复事件之后,并且当时玩家选择保密自己的身份。
 
|-
 
|-
| <tt>willyCrabs</tt>
+
| <samp>willyCrabs</samp>
 
| 四天
 
| 四天
 
| 设置在[[威利]]六心事件之后。
 
| 设置在[[威利]]六心事件之后。
行 1,139: 行 1,139:
 
!colspan="3"| 其他
 
!colspan="3"| 其他
 
|-
 
|-
| <tt>Introduction</tt>
+
| <samp>Introduction</samp>
 
| 六天
 
| 六天
 
| 玩家被创建时。(开始新的存档或者第一次加入多人游戏服务器时)
 
| 玩家被创建时。(开始新的存档或者第一次加入多人游戏服务器时)
 
|-
 
|-
| <tt>FullCrabPond</tt>
+
| <samp>FullCrabPond</samp>
 
| 十四天
 
| 十四天
 
| 任何第一次[[鱼塘|鱼塘]]拥有十个[[螃蟹]]。
 
| 任何第一次[[鱼塘|鱼塘]]拥有十个[[螃蟹]]。
行 1,149: 行 1,149:
  
  
[[分类: 使用 模组]]
+
[[分类:模组]]
  
 
[[en:Modding:Dialogue]]
 
[[en:Modding:Dialogue]]
 
[[pt:Modificações:Diálogo]]
 
[[pt:Modificações:Diálogo]]

於 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

地點對話

依照順序,除了上面的對話以外,接下來將會依照順序讀取以下對話。
*指上面四個danceRejectiondivorced<location>_EntryComeBackLaterSnoring的優先度大於以下的對話*

變化/變體:

  • 每一個特定鍵(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"
      }
    }

一般對話

除上面以外,遊戲將選擇使用以下其中一個關鍵格式的對話(按優先順序來讀取):

  1. <季節>_<密鑰>_inlaw_<伴侶名字> <season>_<key>_inlaw_<spouseName>
  2. <季節>_<密鑰> <season>_<key>
  3. <密鑰>_inlaw_<伴侶名字> <key>_inlaw_<spouseName>
  4. <密鑰> <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通用對話

用點小聰明,你可以讓每個NPC做出不同的反應,而不是使用常規的預設對話。打個比方,你可以使用CP模組Content Patcher來改變NPC.cs.3962NPC.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的*

運算法

從遊戲裡發現下列對話:

  1. 事件對話從適當的事件命令中讀取 (看看模組目錄:事件數據).
  2. 特定位置的對話從 StringsFromCSFiles <location>.cs讀取。
  3. 其他角色對話文件將從角色-特定文件讀取。
  4. 如果找不到對話,遊戲就訴諸於 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)

"Tue4": "$d <dependence>#|当"dependence"的数值是存在会触发的对话内容|除此之外的情况会触发的对话内容",
這些"dependence"擁有4個數值: "bus": 巴士是否被修復; "joja": 喬家超市是否還在營業; "cc": 社區中心是否被修復; "kent": 肯特是否回來。這個指令必須在對話字符串中的第一個指令,且不允許有其他對話。
例子: Sun2: "$d bus#今天去找桑迪玩玩吧~|巴士什麼時候才修好啊,想去沙漠玩……"

$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 十四天 任何第一次魚塘擁有十個螃蟹