
生日快乐
一个为《星露谷物语》添加玩家生日的模组。
查看大图你是否曾好奇为什么在《星露谷物语》中没有你的生日?现在不用担心了!
这个模组让你可以选择自己的生日。
在你生日那天,你会收到父母的来信,
村民们也会送你礼物并祝你生日快乐。
已更新支持SDV 1.6+版本!
需要 SMAPI 4.0 或更高版本。
安装
安装最新版本的SMAPI。
下载此模组的Happy Birthday文件并解压到Stardew Valley/Mods目录。
下载一个Happy Birthday翻译内容包。英文内容包可以在单独的模组下载页面找到。这是为了确保Vortex能正确处理内容包的下载,因为与模组捆绑时无法正常工作。
同时安装3.0.0及以上版本的Stardust Core 。
使用SMAPI运行游戏。
用法
早晨醒来时,会出现选择生日的菜单。
在你生日当天,像往常一样与NPC交谈,他们会祝你生日快乐并赠送礼物。
根据你与他们之间的友谊程度,他们赠送的礼物会有所不同。
记得查看邮箱,收取父母寄来的信件。
常见问题解答
- 救命!刘易斯没有出现问我生日,我的配偶也没问我最喜欢的礼物!
- 你至少安装了一个HappyBirthday内容包吗?由我支持并创建的主要内容包可以在 https://www.nexusmods.com/stardewvalley/mods/11148 找到。 -你是在安卓/iOS上玩吗?目前不支持,因为我需要做一些更大的重写来支持这些平台。 -在HappyBirthday模组文件夹下是否有一个包含玩家生日的data文件夹?如果有,删除它能解决问题吗? -你能在控制台中运行SMAPI命令(不带引号)来重置提示以询问你的生日吗?"Omegasis.Happy_Birthday.reset_birthday"
- 这个模组能在移动设备上运行吗?(安卓/IOS) -目前还没有,但我曾考虑过升级它以实现这一功能。最大的限制在于找到时间去做这件事,并为其搭建开发环境。
- 你能支持这个模组使其与(XYZ)模组兼容吗? -市面上有许多修改NPC、地图等内容的模组,这导致很难与所有模组保持兼容。虽然我非常希望能让这个模组兼容所有其他模组,但遗憾的是我没有足够的时间来实现这一点。可能会选择对一些较大型的模组提供不同程度的兼容支持(例如《星露谷物语扩展》),但这些都将根据具体情况逐一决定。
- 我可以为这个模组制作内容包并自行上传吗? -当然,请务必这样做!
版本 3.0.0 新增内容
重大变更
在玩家生日当天未送礼/送上生日祝福的村民会寄出一封信,附带迟来的祝福和礼物。再也不用四处寻找他们了!
玩家在开始游戏时不再被询问生日日期。取而代之的是,刘易斯会在农舍外触发一个事件,由他来询问你。
玩家在开始游戏时不再被询问最喜欢的礼物。相反,当他们结婚后,配偶会触发一个事件并询问此事,这更符合原设定——即由配偶来赠送玩家最喜欢的礼物。
新增了生日活动。
社区生日派对:当你与所有村民的好感度达到5颗心或以上时,前往酒吧会有惊喜哦。:)
配偶专属生日活动:所有配偶都有一个特殊的生日活动,他们会祝你生日快乐并送给你最喜欢的礼物!包含原版对话之外的额外对话内容。
Joja公司也会为其成员庆祝生日,但仅限于他们仍留在镇上的时候。
生日活动现在会保存到.json文件中,以便在出现某些随机冲突(例如NPC卡在模组地图上)时可以修改。
小改动
无论社区中心是否完工,祝尼魔现在都会在那里为玩家举办生日派对。只要别成为Joja会员就行!
现在可以在模组的配置文件中调整父母生日礼物的设置。
第一年父亲给的金额减少,第二年及以后固定为5000金币。
为里奥添加了生日祝福。
生活质量改进
在礼物选择菜单中添加了搜索框。
在礼物选择菜单中添加了工具提示悬停框。
模组制作
重写了礼物和生日祝福系统,以适配《生日快乐》的内容包格式。 这意味着通过内容包添加自定义NPC应该会简单得多,因为只需添加他们的礼物和对话条目。更多详情请参阅下文。
错误修复:
农场助手在重启游戏时不再需要重新选择生日。(我知道这是个重大错误报告)
防止用户在节日当天选择生日。这个功能原本是存在的,但在更新模组时不知何故失效了。如果有人提出要求,愿意移除此限制,因为现在玩家可以在第二天通过邮件收到生日祝福。:)
高级:内容包
随着《Happy Birthday to V》3.0版本的重写,我希望为用户提供一种方式,让他们能够自行向游戏中添加内容,而不必联系我来完成。因此,解决方案是编写内容包来实现几个功能。
- 新增对自定义NPC对话的支持。 1.1. 自定义对话是通过创建/编辑<ContentPackMainFolder>/Content/Strings/BirthdayWishes.json文件实现的。如果为你的自定义NPC制作新的内容包,请删除所有现有条目,只需添加你自己的NPC名称及希望他们说的生日祝福语即可。例如,如果你有一个名为Joshua的自定义NPC,你只需在BirthdayWishes.json文件中添加类似这样的内容: "Joshua": "嘿 @,能在你生日这天见到你真是太棒了!希望今天对你来说是个充满欢乐的日子! 1.1.1 同样可以为配偶(如果你的模组添加了自定义结婚对象)通过编辑SpouseBirthdayWishes来实现。请注意,有一些特殊关键词如{TimeOfDay}或{AffectionateSpouseWord}会被分别转换为适当的时间文本如"早上好"和"亲爱的、甜心等"以允许变化。 1.2. 要在邮件中添加/编辑迟到的生日祝福消息,您需要修改 <ContentPackMainFolder>/Content/Strings/Mail.json文件,按照相同方式为迟到的(即生日后一天)祝福撰写消息。例如,内容可能如下所示。 "Joshua": "迟到的生日快乐,@!^ 希望今年我们能更多地一起出去玩。^^ - Joshua {0}" 1.2.1:字符串末尾的{0}至关重要 因为这是生日礼物添加到邮件信息的方式。忘记这一点将意味着玩家不会 由于我为邮件添加动态礼物支持的方式,而收到迟来的生日礼物。 1.2.2: 在《星露谷物语》中,邮件文本的结构与对话文本不同。我建议你查阅维基百科来理解两者之间的差异,因为我自己在长时间没有接触后也花了很多时间才弄明白。 1.3. 自定义礼物支持。通过在<ContentPackMainFolder>/Content/Data/Gifts目录下添加以相应NPC命名的文件,你可以指定该NPC会赠送给玩家的礼物。建议参考<ContentPackMainFolder>/Content/Data/Gifts/RegisteredGifts.json文件查看原版星露谷物语的所有礼物ID。
- 为事件添加额外对话字符串的功能。虽然不算特别有趣,但能让模组制作者现在就能修改文本。
我个人建议是,先复制一份游戏自带的英文内容包,
然后在此基础上修改制作你自己的内容包。
但千万记得修改时一定要同步更新Manifest.json文件! 高级:添加翻译 随着现在支持模组添加自定义翻译,内容包系统也同时充当了翻译内容系统。
在为原版内容添加新翻译时,只需进行少量调整即可。 1.<ContentPackMainFolder>/Content/Strings/ 目录下的所有文件都需要针对新翻译进行修改。这将包括生日祝福、邮件、事件对话等内容。 2. <ContentPackMainFolder>/TranslationInfo.json 需要修改其 "LanguageCode" 字段以反映游戏使用的翻译代码。例如,添加西班牙语翻译需要将新内容包中的语言代码更改为 "LanguageCode": "es-ES" 这将让用户能够更加轻松地添加自定义翻译或对话变体,而无需再向我发送信息。只需制作一个内容包,并将其拖放到 StardewValley/Mods 文件夹中,一切就搞定了!Happy Birthday 会自动为你加载它! 关于内容包: 请随意在您自己的用户资料下发布内容包。
我将不再在模组的下载部分包含翻译内容包,相反,看到其他人也能因他们的付出而获得应有的认可会让我感到高兴。
如果您制作了内容包,请务必注册Nexus的模组捐赠积分系统! 关于模组支持: 我知道大家一直强烈要求添加对热门模组(如《星露谷物语扩展》)的支持。
目前我已经为此搭建了大量框架,但仍需具体研究需要实现哪些内容,
以及为这些新NPC编写事件/对话等。
由于我自己尚未体验过该模组,短期内无法做出任何承诺,
但这依然是我未来希望实现的目标。 目前,如果有兴趣为《生日快乐》制作模组扩展,我们提供了额外支持,例如:添加模组自定义物品作为玩家生日礼物、加入自定义事件以及扩展事件功能。如需了解可实现的内容,请参阅 - using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using StardewModdingAPI;
- using StardewModdingAPI.Events;
- using StardewValley;
- using StardewValley.Characters;
- namespace HappyBirthday.Framework.API
- {
public class HappyBirthdayAPI{public event EventHandler<EventArgs> OnBirthdayStart;public event EventHandler<EventArgs> OnBirthdayEnd;public void StartBirthday(){if (OnBirthdayStart != null)OnBirthdayStart(this, new EventArgs());}public void EndBirthday(){if (OnBirthdayEnd != null)OnBirthdayEnd(this, new EventArgs());}public bool IsBirthday(){return Game1.player.isBirthday();}public string GetBirthdayMessage(){return Game1.player.getBirthdayMessage();}public void AddBirthdayGift(Item item){Game1.player.addItemByMenuIfNecessary(item);}public void AddBirthdayGiftFromNPC(NPC npc, Item item){Game1.player.receiveGift(npc, item);}}- } 和 https://github.com/janavarro95/Stardew_Valley_Mods/tree/DevelopmentModRewrites/GeneralMods/HappyBirthday/Framework/Events 欲了解更多信息。 关于错误: 如果模组存在bug,请在本模组页面的"错误报告"版块发帖告知,以便我记录并处理。这将帮助我发现仍需修复的问题。虽然新版本我已尽可能全面测试,但深夜赶工时难免会有疏忽之处,恳请耐心等待并及时告知问题。 结束语: 距离我发布《生日快乐》已经过去5年多了,这是当初为了正式踏入电子游戏设计领域而进行的兴趣实验。虽然我知道自己并不算特别活跃,但能与社区互动、看到大家的反馈、读到那么多人喜爱我的作品,这种感觉真的很棒。我从未想过自己会变得如此受欢迎,但如果我的作品能让你以更愉快的方式体验《星露谷物语》,我会非常开心。感谢这段旅程,一如既往地送上最美好的祝愿。:) 欧米伽西斯。 特别感谢以下各位! nexus用户: cerreli 提供生日祝福的原始英文对话文本。 所有为模组创建自己翻译的Nexus用户们! PathosChild 多年来在模组制作上给予我的所有支持! Spacechase0 使用了 SpaceCore,它(曾经!)帮助使模组运行!(SDV 1.5) conundrum9999 为通过stardew-access添加屏幕阅读器支持。 请查看 https://github.com/janavarro95/Stardew_Valley_Mods/pull/95 和 https://github.com/khanshoaib3/stardew-access (传统版本 2.0) 包含翻译: 感谢Nexus用户 erinyang! 由我自己(Omegasis)为生日活动及生日祝福完成,nexus用户: cerreli 意大利菜单字符串: LeecanIt 德语:Nexus用户 Nadin0147 俄语:Nexus用户 pananaevas 另请参阅官方讨论帖源代码 + 发布说明我的其他模组我的Twitter,我会在上面偶尔发布我正在开发的内容。我正在开发的游戏《策展人》,目前仍在开发中,请对此也保持耐心。
正在加载版本记录…


正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。