Skip to content

修正怪物嘉年华2汉化目标目录并补齐英文对白#729

Open
skykiseki wants to merge 2 commits into
BeiDouMS:masterfrom
skykiseki:fix-pr728-zhcn-targets-20260612
Open

修正怪物嘉年华2汉化目标目录并补齐英文对白#729
skykiseki wants to merge 2 commits into
BeiDouMS:masterfrom
skykiseki:fix-pr728-zhcn-targets-20260612

Conversation

@skykiseki

@skykiseki skykiseki commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

修改内容

  • 修正怪物嘉年华2相关角色脚本中的中文提示,使队伍、房间、挑战和结算文案更准确。
  • 修正怪物嘉年华2任务、勋章和嘉年华名称的中文资源文本。
  • 补齐勋章任务 2950529506wz-zh-CN/Quest.wz/Say.img.xml 中缺失的中文对话。
  • 同步补齐 wz/Quest.wz/Say.img.xml2950529506 的英文对话,保持中英文目录结构对称。

对称性说明

  • 本次没有新增或删除整个文件。
  • 中文目录新增的 2950529506 对话节点,英文目录已补齐对应节点。
  • 2950529506 在中英文 Say.img.xml 中的 stringimgdir 数量一致。

校验

  • 已检查本次变更文件,没有发现替换字符或常见乱码片段。
  • 已确认中英文 Say.img.xml 可以正常解析。
  • 已执行 git diff --check
  • 未重新构建 jar;jar 包留到后续正式 release 时再打包。

@github-actions

Copy link
Copy Markdown

🤖 AI Code Review

Let me analyze this PR carefully. The changes are all about Chinese localization (translation) for the Monster Carnival (怪物嘉年华) system in a MapleStory v83 server. Let me review each change.

The PR modifies:

  1. gms-server/scripts-zh-CN/npc/2042005.js - NPC script for Monster Carnival registration, Chinese text improvements
  2. gms-server/scripts-zh-CN/npc/2042007.js - NPC script for Monster Carnival results dialogue
  3. gms-server/scripts-zh-CN/npc/cpqchallenge2.js - Monster Carnival challenge script
  4. gms-server/wz-zh-CN/Quest.wz/PQuest.img.xml - Quest name localization
  5. gms-server/wz-zh-CN/Quest.wz/QuestInfo.img.xml - Quest info localization
  6. gms-server/wz-zh-CN/Quest.wz/Say.img.xml - Quest NPC say text localization

Let me look for potential issues:

  1. In QuestInfo.img.xml line 29505/29506: The original had a typo #Gifted Carnivalian Medal#k (using #G...# instead of #bG...#k), but the new translation uses #b#t1142078##k which is correct. However, I notice the original had a typo bug. The translation fixes it but also removes the ability to see the typo was there. This is fine.

  2. In Say.img.xml for quest 29505/29506: The PR adds NPC dialogue text for these quests. Looking at the structure:

    • For quest 29505, imgdir "0" (status 0): added the initial NPC dialogue with yes/no/stop options
    • For quest 29505, imgdir "1" (status 1): added the check dialogue with yes/stop options
    • Same for quest 29506
  3. One thing I notice: The original QuestInfo.img.xml for quest 29505 used #bAbsolute Victory Carnivalian Medal#k but the Say.img.xml uses #b#t1142077##k (item reference). This is consistent with the approach of using item references in Say.img.xml and full names in QuestInfo.img.xml.

  4. The changes are purely localization/text improvements - no code logic changes, no security issues, no performance concerns.

  5. Consistency concerns:

    • The translations use full-width punctuation in some places (e.g., "(等级:)") and half-width in others
    • The tone and style is mostly consistent
  6. Potential concern in 2042005.js: The text formatting uses #b and #r color codes correctly. No issues there.

  7. Empty <imgdir name="stop"> tags in Say.img.xml - these are empty imgdir elements. They may be intentional (the game might require the structure even with no content), but they could also be cleaned up. Not a bug, but worth noting.

  8. In QuestInfo.img.xml, the translation says "已因在怪物嘉年华2中拥有最多胜场而获得" - this is the completion message. The English version was "You have acquired the #bAbsolute Victory Carnivalian Medal#k for having the most wins in the 2nd Monster Carnival." The translation is reasonable.

  9. For the 2nd quest (29506): The original had a bug #Gifted Carnivalian Medal#k (missing the b after #). The translation fixed this by using #b#t1142078##k (item reference). Good fix.

  10. NPC 2042005.js text: The translations are natural Chinese and maintain the game context well.

Let me look at if there are any code logic issues...

Looking at 2042005.js - no logic changes, just text
Looking at 2042007.js - no logic changes, just text
Looking at cpqchallenge2.js - no logic changes, just text

This is a clean, focused PR that just improves the Chinese localization. The changes are all in zh-CN files (Chinese localization), so they don't affect other languages.

Let me check for any inconsistencies:

  • In QuestInfo.img.xml, the quest 29505 uses item reference #t1142077# but the English original showed "Absolute Victory Carnivalian Medal" as the item name. The Chinese version now uses the item reference instead of the full translated name. This might be intentional since the actual medal name might be defined elsewhere.

Actually, wait - the Say.img.xml uses #t1142077# which is an item reference that will be replaced with the item's name at runtime. The QuestInfo.img.xml also uses #t1142077# for the same item. This is consistent.

One small issue: in QuestInfo.img.xml, the original text said "The Carnivalian of Absolute Victory" and the Chinese translation says "嘉年华百战百胜者" (which is "Carnivalian of Hundred Victories"). The translation is reasonable but "Absolute Victory" is more like "绝对胜利" - but "百战百胜" (victorious in a hundred battles) is a common Chinese idiom that captures the meaning well.

Overall, this is a well-executed localization PR with no significant issues.

Let me structure my response.

📋 PR 概览

这是一个纯中文本地化(i18n)改进 PR,针对怪物嘉年华(Monster Carnival 2)相关的 NPC 脚本对话、任务信息进行了中文文案润色和补全,包括了 Say.img.xml 中之前缺失的 NPC 对话分支(yes/no/stop)。

⚠️ 潜在问题

🟢 低危

  1. Say.img.xml 中空 <imgdir> 标签:29505 和 29506 的 status "0" 下新增了 <imgdir name="stop"></imgdir> 这样的空元素。虽然在 WZ XML 中这种结构可能用于保持游戏对话树完整性,但建议确认游戏端是否真的会读取空 imgdir,或者直接删除以保持整洁。

  2. 标点符号风格不统一

    • cpqchallenge2.js 中使用全角括号 () 和全角冒号
    • 2042005.js 修改后基本是中文标点(部分使用半角)
    • 建议在 zh-CN 包内统一为全角中文标点,体验更佳
  3. 文案一致性QuestInfo.img.xml 中 29505 翻译为"嘉年华百战百胜者","Absolute Victory" 译为"百战百胜"虽然用中文成语表达更自然,但与"绝对胜利"直译略有差异,建议确认是否在 UI 中还有该勋章名称的显示会引用此处。

✅ 顺带修复

  • QuestInfo.img.xml 中 29506 原文存在明显的文案 Bug #Gifted Carnivalian Medal#k(缺少 #b 起始标签),本次翻译为 #b#t1142078##k(物品引用)顺便修复了这个潜在的显示问题,值得 👍。

💡 改进建议

  1. 建立 zh-CN 文案规范文档:本次 PR 中 2042005/2042007/cpqchallenge2 几个 NPC 文案质量较高,建议沉淀一份中文文案风格指南(如:颜色代码 #b/#r/#k 间距、标点风格、玩家称呼"你"vs"您"),便于后续贡献者参考。

  2. Say.img.xml 补全后建议在游戏内走查:新补全的 29505/29506 对话包含完整的 yes/no/stop 三种状态分支,建议在测试服实际体验一次任务流程(点击"是"/"否"/关闭按钮),确认每条分支的字符串都能正确显示无错位。

  3. 考虑引入物品名引用 #txxxxx# 替代硬编码物品名:在 2042007.js 的胜利/失败文案中仍有硬编码的"怪物嘉年华"等术语,未来若需支持术语统一替换,可考虑改用变量。

📊 评分

维度 评分 说明
代码质量 ⭐⭐⭐⭐⭐ 纯文案修改,无逻辑改动,不存在回归风险
安全性 ⭐⭐⭐⭐⭐ 仅修改本地化文件,无安全影响
可维护性 ⭐⭐⭐⭐ 文案质量高,但标点风格可再统一;空 imgdir 建议加注释说明

总评:这是一次非常扎实的本地化润色 PR,专注于文案改进且顺手修复了原英文版的标签 Bug,diff 范围控制在 zh-CN 目录不会影响其他语言版本,可以放心合并。

@github-actions

Copy link
Copy Markdown

🤖 AI Code Review

Let me analyze this PR carefully. It appears to be a localization/translation PR for a MapleStory v83 server, specifically translating content related to the Monster Carnival 2 (怪物嘉年华2) feature.

Let me break down what the PR does:

  1. 2042005.js (NPC script) - Translates and refines Chinese text for Monster Carnival lobby NPC, including party requirements, level checks, and room status messages.

  2. 2042007.js (NPC script) - Translates/refines Chinese text for Monster Carnival result NPC, covering victory/defeat messages with different ranks (A/B/C/D based on festival points).

  3. cpqchallenge2.js (NPC script) - Translates the party challenge dialog and member list display.

  4. PQuest.img.xml (zh-CN) - Translates quest name "The 2nd Monster Carnival" to "怪物嘉年华2".

  5. QuestInfo.img.xml (zh-CN) - Translates quest names and descriptions for medal quests 29505 and 29506.

  6. Say.img.xml (both zh-CN and wz) - Adds NPC dialog strings for medal quests 29505 and 29506, both in Chinese and English.

Let me check for any issues:

Potential Issues:

  1. Punctuation consistency - I notice some inconsistencies:

    • Line in 2042005.js: "至少需要2名玩家才能参加战斗!" (Chinese full-width !)
    • But the original had half-width !: "你至少需要2名玩家才能参与战斗!" - wait, looking again, the original also has (full-width)
    • Actually checking more carefully, the punctuation seems consistent (full-width Chinese punctuation used).
  2. XML structure concern - In the Say.img.xml files, I see empty <imgdir name="stop"> elements:

    <imgdir name="stop">
    </imgdir>

    This is technically valid XML but could be a placeholder or might be missing content. Need to verify if this is intentional.

  3. In 2042007.js - I see a potential issue. Looking at the original code:

    } else if (cm.getPlayer().getFestivalPoints() >= 100) {
        shiu += "#rB#k";
        rnk = 20;
        cm.sendOk(...);
    }

    The new text shows "展现了极限般的表现" which means "showed extreme performance" - this might be slightly awkward Chinese. But it's a stylistic choice and not a bug.

  4. Punctuation inconsistency in new Chinese text:

    • In 2042007.js victory messages, I see trailing spaces before \r\n\r\n:
      "下次胜利一定会属于你! \r\n\r\n" - has a space after
    • This might be intentional formatting or could be a minor issue.
  5. Format string usage - In cpqchallenge2.js, the new code uses 角色名: and (等级: with full-width parentheses and colon. This is correct for Chinese.

  6. Mixed punctuation - In 2042005.js:

    • Original: "你需要创建一个队伍!"
    • New: "你需要先创建一个队伍,才能参加怪物嘉年华!"
    • The comma in new text is full-width - correct.
  7. In Say.img.xml - The English version wz/Quest.wz/Say.img.xml has been updated with English dialogs for 29505 and 29506. This is good as it provides both translations.

  8. Quest name translation consistency - "怪物嘉年华2" is used for "The 2nd Monster Carnival". The original was empty (value=""), now it's translated. However, in QuestInfo.img.xml the original English was "The 2nd Monster Carnival" but the Chinese is "怪物嘉年华2" - which is fine as a localization.

  9. Potential bug check - The Say.img.xml has empty <imgdir name="stop"></imgdir> for imgdir 0 of both 29505 and 29506. This might be intentional (no stop response) but is worth noting.

  10. Color code consistency - In the NPC scripts, the original used #b and #r color codes. The new translations preserve these. The Say.img.xml uses #v, #e, #b, #n codes - these are standard MapleStory NPC text formatting codes, which is correct.

  11. The #k code - In 2042005.js, the original had #组队队长# which I think is supposed to be the color code #b组队队长#k (with proper formatting). The new version has #b队长#k which is a cleaner translation. This is a fix, not a bug.

  12. Translation quality - The translations look natural and idiomatic. For example:

    • "好吧,希望下次还能再聊" is more natural than "好的,希望下次我们能聊天"
    • "双方队伍人数不一致" is more formal/clear than "队伍之间的玩家数量不相同"

Let me also check for the empty imgdir concern more carefully. Looking at the Say.img.xml changes:

<imgdir name="0">
    <string name="0" value="..."/>
    <imgdir name="stop">
    </imgdir>
    <imgdir name="yes">
        <string name="0" value="..."/>
    </imgdir>
    <imgdir name="no">
        <string name="0" value="..."/>
    </imgdir>
</imgdir>

The empty <imgdir name="stop"></imgdir> is technically valid but could be omitted or explicitly closed. It might be intentional to indicate "no stop response" or it might be a minor formatting issue. This is more of a style concern than a bug.

  1. In QuestInfo.img.xml - The original had a typo in the English:

    "You have acquired the #Gifted Carnivalian Medal#k for having the highest victory rate in the 2nd Monster Carnival."
    

    Note: #Gifted should be #bGifted (missing b). The new Chinese translation correctly uses #b#t1142078##k. The English version isn't being changed, so this typo remains, but it's pre-existing.

  2. The format of quest name - The PQuest.img.xml change replaces an empty value with "怪物嘉年华2". But wait, looking at the diff more carefully:

    • Original: <string name="The 2nd Monster Carnival" value=""/>
    • New: <string name="The 2nd Monster Carnival" value="怪物嘉年华2"/>

    The name attribute remains in English (which is the key/ID), only the value (display text) is translated. This is the correct approach.

Summary

This is primarily a localization PR that:

  1. Translates NPC dialog text from English to Chinese (zh-CN)
  2. Refines existing Chinese translations for better naturalness
  3. Adds missing NPC dialog content for medal quests 29505 and 29506
  4. Provides both Chinese and English versions of new content

The changes are well-executed and don't introduce significant technical issues. The main concerns are minor:

  • Trailing spaces in some Chinese strings (cosmetic)
  • Empty <imgdir name="stop"> elements (might be intentional or could be cleaned up)
  • A pre-existing English typo in QuestInfo.img.xml that wasn't fixed

Let me prepare the review in the required format.

📋 PR 概览

本 PR 完成了怪物嘉年华 2(Monster Carnival 2)相关内容的本地化工作,包括 NPC 对话文本的中文翻译与润色、任务名称/描述的中文化,以及为勋章任务 29505、29506 补充中英文 NPC 对话。

⚠️ 潜在问题

🟢 低危

  1. XML 结构中的空 <imgdir>:在 Say.img.xml 中存在空的 <imgdir name="stop"></imgdir> 节点(zh-CN 与英文版均有),虽 XML 合法,但语义不明——是不需要"stop"响应还是漏写了内容?建议确认是否需要保留。

  2. 部分字符串尾部有多余空格:例如 2042007.js 中:

    "下次胜利一定会属于你! \r\n\r\n"
    "希望下次也能保持这样的好表现! \r\n\r\n"
    

    句末 后接空格在最终渲染时可能产生意外的空白,建议去除。

  3. 遗留英文拼写错误未修复wz-zh-CN/Quest.wz/QuestInfo.img.xml 中原英文 "You have acquired the #Gifted Carnivalian Medal#k..." 缺失 #b(应为 #bGifted),本次 PR 未顺手修复(虽然原文保持英文是合理选择,但若以"翻译 PR"名义合并,应在 commit message 中注明遗留问题)。

  4. QuestInfo 翻译中"休彼德蔓":NPC 名称"休彼德蔓"(Spiegelmann 的官方译名)出现于 29505/29506 的 quest text 中,建议确认与项目其他 NPC 名翻译保持一致(如脚本中是否也有此 NPC 的中文化需要同步)。

💡 改进建议

  1. 统一标点与空白规范:建议在 PR 前用脚本/正则对所有中文字符串做一次清理,去掉句末 //? 后面的半角空格,并统一使用全角标点;同时校验 XML 缩进(避免 </imgdir> 前的空 <imgdir> 产生 lint 告警)。

  2. 抽取中英对照至配置或 i18n 表:本次修改涉及 wzwz-zh-CN 两份镜像文件硬编码文本,后续若还有更多任务要做本地化,建议建立英文/中文文本对照清单或脚本化同步机制,避免单边遗漏(如之前 PQuest 缺 怪物嘉年华2 名称、QuestInfo 缺 Say 节点内容即是单边遗漏的产物)。

  3. 补充任务前置 NPC 脚本:任务 29505/29506 现在的 QuestInfo/Say 内容已齐备,但 2042005/2042007 这两个核心 NPC 脚本(嘉年华主界面/结果界面)并未引用任何 1142077/1142078 勋章领取逻辑。如果这些任务需要 NPC 触发,请确认相关领取脚本(可能在 wz-zh-CN/scripts 内)后续会单独提交;否则 Say 内容虽然写好但无法在游戏内呈现。

📊 评分

维度 评分 说明
代码质量 ⭐⭐⭐⭐ 改动局限于字符串与 XML 节点,无逻辑变更;少量多余空格和空 imgdir 是小瑕疵
安全性 ⭐⭐⭐⭐⭐ 纯文本/资源改动,不涉及运行时代码、权限或输入处理
可维护性 ⭐⭐⭐ 中英两份 wz 镜像仍需人工同步,缺少抽取层;建议补 PR 同步领取 NPC 脚本

@skykiseki skykiseki changed the title fix: 修正怪物嘉年华2汉化目标目录 修正怪物嘉年华2汉化目标目录并补齐英文对白 Jun 12, 2026
@skykiseki

Copy link
Copy Markdown
Contributor Author

客户端累计 full 包已生成并上传到我的 origin 仓库 Release,供需要同步客户端资源的玩家使用。

本次包已通过打包脚本校验和乱码校验;jar 包未重新构建,后续正式 release 时再处理。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant