全站通知:
模块:Dialogue/data/accept birthday gift
刷
历
编
跳到导航
跳到搜索
当前页面的数据通过以下 Python 代码生成,后续如果游戏版本更新,可重新执行脚本,导出最新的数据。
import os
import json
from pathlib import Path
def load_fallback_dialogues():
strings_file = Path(r"\Content (unpacked)\Strings\StringsFromCSFiles.zh-CN.json")
fallback_dialogues = {}
if strings_file.exists():
try:
with open(strings_file, 'r', encoding='utf-8') as f:
strings_data = json.load(f)
keys = [
"NPC.cs.4274", "NPC.cs.4275", "NPC.cs.4276", "NPC.cs.4277",
"NPC.cs.4278", "NPC.cs.4279", "NPC.cs.4280", "NPC.cs.4281"
]
for key in keys:
if key in strings_data:
fallback_dialogues[key] = strings_data[key]
except Exception as e:
print(f"加载 StringsFromCSFiles 时出错: {e}")
return fallback_dialogues
def process_stardew_birthday_dialogue():
dialogue_dir = Path(r"\Content (unpacked)\Characters\Dialogue")
if not dialogue_dir.exists():
return
all_birthday_gifts = {}
for file_path in dialogue_dir.glob("*.zh-CN.json"):
character_name = file_path.stem.replace(".zh-CN", "")
try:
with open(file_path, 'r', encoding='utf-8') as f:
dialogue_data = json.load(f)
birthday_gift_data = {}
for key, value in dialogue_data.items():
if key.startswith("AcceptBirthdayGift_"):
birthday_gift_data[key] = value
if birthday_gift_data:
all_birthday_gifts[character_name] = birthday_gift_data
except Exception as e:
continue
return all_birthday_gifts
def add_fallback_dialogues(birthday_data, fallback_dialogues):
rude_dialogues = {
"AcceptBirthdayGift_Positive_1": fallback_dialogues.get("NPC.cs.4276", ""),
"AcceptBirthdayGift_Positive_2": fallback_dialogues.get("NPC.cs.4274", ""),
"AcceptBirthdayGift_Negative": fallback_dialogues.get("NPC.cs.4278", ""),
"AcceptBirthdayGift_Neutral": fallback_dialogues.get("NPC.cs.4280", "")
}
polite_dialogues = {
"AcceptBirthdayGift_Positive_1": fallback_dialogues.get("NPC.cs.4277", ""),
"AcceptBirthdayGift_Positive_2": fallback_dialogues.get("NPC.cs.4275", ""),
"AcceptBirthdayGift_Negative": fallback_dialogues.get("NPC.cs.4279", ""),
"AcceptBirthdayGift_Neutral": fallback_dialogues.get("NPC.cs.4281", "")
}
if rude_dialogues and any(rude_dialogues.values()):
birthday_data["_FallbackDialogues_Rude"] = rude_dialogues
if polite_dialogues and any(polite_dialogues.values()):
birthday_data["_FallbackDialogues_Polite"] = polite_dialogues
return birthday_data
def generate_lua_table(data, output_file="Birthday_Dialogue_Data.lua"):
def dict_to_lua(obj, indent=0):
spaces = " " * indent
if isinstance(obj, dict):
if not obj:
return "{}"
lines = ["{"]
for key, value in obj.items():
key_str = key if key.isidentifier() else f'["{key}"]'
value_str = dict_to_lua(value, indent + 1)
lines.append(f"{spaces} {key_str} = {value_str},")
lines.append(f"{spaces}}}")
return "\n".join(lines)
elif isinstance(obj, str):
escaped = obj.replace("\\", "\\\\").replace('"', '\\"').replace("\n", "\\n")
return f'"{escaped}"'
elif isinstance(obj, (int, float)):
return str(obj)
elif isinstance(obj, bool):
return "true" if obj else "false"
elif obj is None:
return "nil"
else:
return f'"{str(obj)}"'
try:
lua_content = f"""-- Stardew Valley AcceptBirthdayGift 对话数据
-- 生成时间: {__import__('datetime').datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
-- 总角色数: {len(data)}
-- 数据结构: [角色名][对话键] = "对话内容"
-- 特殊键 _FallbackDialogues_Rude 包含 Manner=2 (Rude) 的通用生日对话
-- 特殊键 _FallbackDialogues_Polite 包含 Manner≠2 (Polite) 的通用生日对话
local birthday_dialogue_data = {dict_to_lua(data)}
return birthday_dialogue_data
"""
with open(output_file, 'w', encoding='utf-8') as f:
f.write(lua_content)
print(f"成功生成 Lua 文件: {Path(output_file).absolute()}")
return True
except Exception as e:
print(f"生成 Lua 文件时出错: {e}")
return False
def main():
print("开始处理 Stardew Valley 生日对话数据...")
fallback_dialogues = load_fallback_dialogues()
result = process_stardew_birthday_dialogue()
if result:
result = add_fallback_dialogues(result, fallback_dialogues)
if generate_lua_table(result):
print("处理完成!")
total_dialogues = sum(len(dialogues) for dialogues in result.values())
print(f"总对话数: {total_dialogues}")
else:
print("生成 Lua 文件失败")
else:
print("没有提取到对话数据")
if __name__ == "__main__":
main()
[ 查看 | 编辑 | 历史 | 刷新 ]上述文档的内容来自模块:Dialogue/data/accept birthday gift/doc。
-- Stardew Valley AcceptBirthdayGift 对话数据
-- 生成时间: 2025-07-03 18:53:15
-- 总角色数: 22
-- 数据结构: [角色名][对话键] = "对话内容"
-- 特殊键 _FallbackDialogues_Rude 包含Manner=2(Rude)的通用生日对话
-- 特殊键 _FallbackDialogues_Polite 包含Manner≠2(Polite)的通用生日对话
local birthday_dialogue_data = {
Abigail = {
AcceptBirthdayGift_Positive = "欸,你还记得我的生日啊……谢谢你,@!我很喜欢这个!$h",
AcceptBirthdayGift_Negative = "欸,你还记得我的生日啊……谢谢你,@!$h#$b#呃,这个……(闻了一下)……这是什么东西?$s",
},
Alex = {
AcceptBirthdayGift_Loved = "太好了,我超喜欢这个东西……@,谢谢你送我生日礼物。",
AcceptBirthdayGift_Negative = "什么鬼……?呃,不知道你老家那边觉得这个怎么样,对我来说这就是垃圾。$a",
},
Caroline = {
AcceptBirthdayGift_Positive = "谢谢你,亲爱的,你能记得我生日真是太好了。$h",
AcceptBirthdayGift_Negative = "呃……这个是……生日礼物?哦……好的,谢谢你过来。$a",
},
Clint = {
AcceptBirthdayGift_Positive = "一般不会有人送我生日礼物。@,我很感动,谢谢你。",
AcceptBirthdayGift_Negative = "是给我的生日礼物吗?这个,呃……很耐人寻味,不过你能记得,我还是很感激。",
},
Demetrius = {
AcceptBirthdayGift_Positive = "是礼物!……送的时机恰到好处,今天可是我出生的纪念日,谢谢你!$h",
AcceptBirthdayGift_Negative = "是礼物!……送的时机恰到好处,今天可是我出生的纪念日。$h#$b#我来拆开看看……$h#$b#……啊。$s",
},
Dwarf = {
AcceptBirthdayGift_Positive = "啊!我在书上看到过这个传统……这个是“生日礼物”吧?唔,很有意思……",
AcceptBirthdayGift_Negative = "啊!我在书上看到过这个传统……这个是“生日礼物”吧?#$b#所以送别人垃圾也是一个传统?",
},
Elliott = {
AcceptBirthdayGift_Positive = "你还记得我的生日我很荣幸!谢谢你!$h",
AcceptBirthdayGift_Negative = "又过了一年,又一根白发……这个礼物也许可以作为我衰老的纪念。$s",
},
Emily = {
AcceptBirthdayGift_Positive = "啊,你还记得我的生日!@,谢谢你!你有心了。$h",
AcceptBirthdayGift_Negative = "啊,你还记得我的生日!@,谢谢你!你——$h#$b#……(闻了两下)……什么味道?$s#$b#……这是什么东西……?$s",
},
Haley = {
AcceptBirthdayGift_Loved = "嘶……这是送我的吗?哇,@,这是我收到的最棒的生日礼物!$h",
AcceptBirthdayGift_Liked = "哇,你给我准备生日礼物了?我很喜欢!$h",
AcceptBirthdayGift_Negative = "好恶心!我生日你就送我这个?你在搞什么东西!$a",
},
Harvey = {
AcceptBirthdayGift_Positive = "啊!非常感谢!我没想到会有人知道今天是我的生日。$h",
AcceptBirthdayGift_Negative = "啊!这个……呃,聊胜于无吧。我没想到会有人知道今天是我的生日。",
},
Jas = {
AcceptBirthdayGift_Positive = "哇,是生日礼物!我很喜欢!$h",
AcceptBirthdayGift_Negative = "是生日礼物吗?啊……我不喜欢。$s",
},
Krobus = {
AcceptBirthdayGift_Positive = "哇,这是我孵化日的纪念礼物吗!谢谢你!$h",
AcceptBirthdayGift_Negative = "啊……你们说的“生日礼物”就是这种东西吗?我不是很懂人类……$s",
},
Leah = {
AcceptBirthdayGift_Positive = "哎,@,谢谢你!这个生日我过得很难忘。$h",
},
Lewis = {
AcceptBirthdayGift_Positive = "嚯,你还记得我这个老镇长的生日啊。你有心了,这个礼物我很喜欢!$h",
AcceptBirthdayGift_Negative = "嚯,你还记得我这个老镇长的生日啊……这是什么东西?$h#$b#呃……这个嘛,心意到了就行了。",
},
Maru = {
AcceptBirthdayGift_Positive = "哇,这是给我的生日礼物吗?我很喜欢!谢谢你记得我的生日!$h",
AcceptBirthdayGift_Negative = "哇,这是给我的生日礼物吗?我……呃,那什么,我没说错!还是谢谢你记得我的生日。",
},
Penny = {
AcceptBirthdayGift_Loved = "啊!这是给我的吗?算是……生日礼物?$3#$b#(吸鼻子)……抱歉。$s#$b#我就是有点……没习惯别人对我这么好。#$b#……呃,我超喜欢这个,真的。非常感谢你。",
AcceptBirthdayGift_Positive = "给我的生日礼物吗?你对我真好!我很喜欢。$h",
AcceptBirthdayGift_Negative = "给我的生日礼物吗?你对我真好!我拆开看看……$h#$b#……怎么回事?!$12#$b#……唉,好吧。原来是个刻薄的玩笑。$s#$b#我真傻,我早该明白的……$s",
},
Sam = {
AcceptBirthdayGift_Positive = "哦哦哦哦!你还记得啊!这就对了嘛!$h",
AcceptBirthdayGift_Negative = "哦哦哦哦!你还记——$h#$b#……(闻了两下)……这是什么怪味……?$8#$b#……啊。$5",
},
Sebastian = {
AcceptBirthdayGift_Positive = "哇,真的吗?没想到你会给我这个,不过看起来很不错,谢谢你。$h",
AcceptBirthdayGift_Negative = "呃……行吧,你的心意我领了。",
},
Shane = {
AcceptBirthdayGift_Loved = "啊,今天是我生日吗?我都快忘了呢。#$b#我真的很喜欢这个。谢谢你。$h",
AcceptBirthdayGift_Liked = "啊,今天是我生日吗?对哦……我差点忘了。谢谢你。",
},
Vincent = {
AcceptBirthdayGift_Positive = "是给我的生日礼物吗?我能现在就拆开吗?#$b#哇!我正好想要这个!好耶!$h",
AcceptBirthdayGift_Negative = "是生日礼物吗?啊……好像没什么意思。$s",
},
_FallbackDialogues_Rude = {
AcceptBirthdayGift_Positive_1 = "今天是我的生日吗?嗯,看来是这样呢。谢谢。挺不错的。$h/今天是我的生日吗?嗯,看来是这样呢。谢谢。挺不错的。$h",
AcceptBirthdayGift_Positive_2 = "你记得我的生日?我真是受宠若惊啊,谢谢。$h",
AcceptBirthdayGift_Negative = "今天我生日,你居然送我这个?你是在开玩笑吗?$s/今天我生日,你居然送我这个?是在开玩笑吗?$s",
AcceptBirthdayGift_Neutral = "给我的生日礼物?谢谢。",
},
_FallbackDialogues_Polite = {
AcceptBirthdayGift_Positive_1 = "你记得我的生日!谢谢你。你真是太贴心了。$h",
AcceptBirthdayGift_Positive_2 = "生日礼物?你真有心!我很喜欢这件礼物。$h",
AcceptBirthdayGift_Negative = "噢!是给我的生日礼物吗?……谢谢。$s/噢!是给我的生日礼物吗?……谢谢。$s",
AcceptBirthdayGift_Neutral = "噢,一个生日礼物!谢谢。/噢,一个生日礼物!谢谢。",
},
}
return birthday_dialogue_data