模块:NPC:修订间差异
来自星露谷物语扩展百科
更多操作
删除的内容 添加的内容
无编辑摘要 |
重构 |
||
| 第1行: | 第1行: | ||
local p = {} |
local p = {} |
||
-- 使用单一数据源,避免重复维护 |
|||
| ⚫ | |||
local characters = { |
|||
["亚历克斯"] = "Alex", |
|||
{"亚历克斯", "Alex"}, |
|||
{"艾利欧特", "Elliott"}, |
|||
{"哈维", "Harvey"}, |
|||
{"山姆", "Sam"}, |
|||
{"塞巴斯蒂安", "Sebastian"}, |
|||
{"谢恩", "Shane"}, |
|||
{"阿比盖尔", "Abigail"}, |
|||
{"艾米丽", "Emily"}, |
|||
{"海莉", "Haley"}, |
|||
{"莉亚", "Leah"}, |
|||
{"玛鲁", "Maru"}, |
|||
{"潘妮", "Penny"}, |
|||
{"卡洛琳", "Caroline"}, |
|||
{"克林特", "Clint"}, |
|||
{"德米特里厄斯", "Demetrius"}, |
|||
{"矮人", "Dwarf"}, |
|||
{"艾芙琳", "Evelyn"}, |
|||
{"乔治", "George"}, |
|||
{"格斯", "Gus"}, |
|||
{"贾斯", "Jas"}, |
|||
{"乔迪", "Jodi"}, |
|||
{"肯特", "Kent"}, |
|||
{"科罗布斯", "Krobus"}, |
|||
{"刘易斯", "Lewis"}, |
|||
{"莱纳斯", "Linus"}, |
|||
{"玛妮", "Marnie"}, |
|||
{"潘姆", "Pam"}, |
|||
{"皮埃尔", "Pierre"}, |
|||
{"罗宾", "Robin"}, |
|||
{"桑迪", "Sandy"}, |
|||
{"文森特", "Vincent"}, |
|||
{"威利", "Willy"}, |
|||
{"法师", "Wizard"}, |
|||
{"吉尔", "Gil"}, |
|||
{"冈瑟", "Gunther"}, |
|||
{"仆从", "Henchman"}, |
|||
{"马龙", "Marlon"}, |
|||
{"莫里斯", "Morris"}, |
|||
{"齐先生", "Mr. Qi"}, |
|||
{"雷欧", "Leo"}, |
|||
{"贝啼", "Birdie"}, |
|||
{"蜗牛教授", "Professor Snail"}, |
|||
{"姜岛商人", "Island Trader"}, |
|||
{"沙漠商人", "Desert Trader"}, |
|||
{"女巫", "Witch"}, |
|||
{"州长", "Governer"}, |
|||
{"门卫", "Bouncer"}, |
|||
{"菲兹", "Fizz"}, |
|||
{"老水手", "Mariner"}, |
|||
{"爷爷", "Grandpa"} |
|||
} |
} |
||
-- 动态构建映射表 |
|||
| ⚫ | |||
local zh_to_en = {} |
|||
["Alex"] = "亚历克斯", |
|||
local en_to_zh = {} |
|||
["Elliott"] = "艾利欧特", |
|||
["Harvey"] = "哈维", |
|||
["Sam"] = "山姆", |
|||
["Sebastian"] = "塞巴斯蒂安", |
|||
["Shane"] = "谢恩", |
|||
["Abigail"] = "阿比盖尔", |
|||
["Emily"] = "艾米丽", |
|||
["Haley"] = "海莉", |
|||
["Leah"] = "莉亚", |
|||
["Maru"] = "玛鲁", |
|||
["Penny"] = "潘妮", |
|||
["Caroline"] = "卡洛琳", |
|||
["Clint"] = "克林特", |
|||
["Demetrius"] = "德米特里厄斯", |
|||
["Dwarf"] = "矮人", |
|||
["Evelyn"] = "艾芙琳", |
|||
["George"] = "乔治", |
|||
["Gus"] = "格斯", |
|||
["Jas"] = "贾斯", |
|||
["Jodi"] = "乔迪", |
|||
["Kent"] = "肯特", |
|||
["Krobus"] = "科罗布斯", |
|||
["Lewis"] = "刘易斯", |
|||
["Linus"] = "莱纳斯", |
|||
["Marnie"] = "玛妮", |
|||
["Pam"] = "潘姆", |
|||
["Pierre"] = "皮埃尔", |
|||
["Robin"] = "罗宾", |
|||
["Sandy"] = "桑迪", |
|||
["Vincent"] = "文森特", |
|||
["Willy"] = "威利", |
|||
["Wizard"] = "法师", |
|||
["Gil"] = "吉尔", |
|||
["Gunther"] = "冈瑟", |
|||
["Henchman"] = "仆从", |
|||
["Marlon"] = "马龙", |
|||
["Morris"] = "莫里斯", |
|||
["Mr. Qi"] = "齐先生", |
|||
["Leo"] = "雷欧", |
|||
["Birdie"] = "贝啼", |
|||
["Professor Snail"] = "蜗牛教授", |
|||
["Island Trader"] = "姜岛商人", |
|||
["Desert Trader"] = "沙漠商人", |
|||
["Witch"] = "女巫", |
|||
["Governer"] = "州长", |
|||
["Bouncer"] = "门卫", |
|||
["Fizz"] = "菲兹", |
|||
["Mariner"] = "老水手", |
|||
["Grandpa"] = "爷爷" |
|||
} |
|||
for _, pair in ipairs(characters) do |
|||
| ⚫ | |||
zh_to_en[pair[1]] = pair[2] |
|||
local chineseName |
|||
en_to_zh[pair[2]] = pair[1] |
|||
| ⚫ | |||
-- 统一的参数提取函数 |
|||
local function getArg(input) |
|||
if type(input) == "string" then |
if type(input) == "string" then |
||
return input |
|||
else |
|||
chineseName = input.args[1] or input:getParent().args[1] |
|||
end |
end |
||
return |
return input.args[1] or input:getParent().args[1] |
||
| ⚫ | |||
-- 简化的函数 |
|||
| ⚫ | |||
local name = getArg(input) |
|||
return zh_to_en[name] or name |
|||
end |
end |
||
function p.getChineseName(input) |
function p.getChineseName(input) |
||
local |
local name = getArg(input) |
||
return en_to_zh[name] or name |
|||
if type(input) == "string" then |
|||
englishName = input |
|||
else |
|||
englishName = input.args[1] or input:getParent().args[1] |
|||
| ⚫ | |||
return p.EN[englishName] or englishName |
|||
end |
end |
||
function p.isValidNPC( |
function p.isValidNPC(input) |
||
local name = getArg(input) |
|||
return (zh_to_en[name] or en_to_zh[name]) and "true" or "false" |
|||
else |
|||
return "false" |
|||
| ⚫ | |||
end |
end |
||
-- 保持向后兼容性 |
|||
| ⚫ | |||
| ⚫ | |||
return p |
return p |
||
2025年8月31日 (日) 22:47的版本
local p = {}
-- 使用单一数据源,避免重复维护
local characters = {
{"亚历克斯", "Alex"},
{"艾利欧特", "Elliott"},
{"哈维", "Harvey"},
{"山姆", "Sam"},
{"塞巴斯蒂安", "Sebastian"},
{"谢恩", "Shane"},
{"阿比盖尔", "Abigail"},
{"艾米丽", "Emily"},
{"海莉", "Haley"},
{"莉亚", "Leah"},
{"玛鲁", "Maru"},
{"潘妮", "Penny"},
{"卡洛琳", "Caroline"},
{"克林特", "Clint"},
{"德米特里厄斯", "Demetrius"},
{"矮人", "Dwarf"},
{"艾芙琳", "Evelyn"},
{"乔治", "George"},
{"格斯", "Gus"},
{"贾斯", "Jas"},
{"乔迪", "Jodi"},
{"肯特", "Kent"},
{"科罗布斯", "Krobus"},
{"刘易斯", "Lewis"},
{"莱纳斯", "Linus"},
{"玛妮", "Marnie"},
{"潘姆", "Pam"},
{"皮埃尔", "Pierre"},
{"罗宾", "Robin"},
{"桑迪", "Sandy"},
{"文森特", "Vincent"},
{"威利", "Willy"},
{"法师", "Wizard"},
{"吉尔", "Gil"},
{"冈瑟", "Gunther"},
{"仆从", "Henchman"},
{"马龙", "Marlon"},
{"莫里斯", "Morris"},
{"齐先生", "Mr. Qi"},
{"雷欧", "Leo"},
{"贝啼", "Birdie"},
{"蜗牛教授", "Professor Snail"},
{"姜岛商人", "Island Trader"},
{"沙漠商人", "Desert Trader"},
{"女巫", "Witch"},
{"州长", "Governer"},
{"门卫", "Bouncer"},
{"菲兹", "Fizz"},
{"老水手", "Mariner"},
{"爷爷", "Grandpa"}
}
-- 动态构建映射表
local zh_to_en = {}
local en_to_zh = {}
for _, pair in ipairs(characters) do
zh_to_en[pair[1]] = pair[2]
en_to_zh[pair[2]] = pair[1]
end
-- 统一的参数提取函数
local function getArg(input)
if type(input) == "string" then
return input
end
return input.args[1] or input:getParent().args[1]
end
-- 简化的函数
function p.getEnglishName(input)
local name = getArg(input)
return zh_to_en[name] or name
end
function p.getChineseName(input)
local name = getArg(input)
return en_to_zh[name] or name
end
function p.isValidNPC(input)
local name = getArg(input)
return (zh_to_en[name] or en_to_zh[name]) and "true" or "false"
end
-- 保持向后兼容性
p.ZH = zh_to_en
p.EN = en_to_zh
return p