Files
mtgodot-poc/data/zh_40250/README.md
T
shenleiandClaude Opus 5.5 7155785167 Add 小狩猎套装礼包: level-1 +9 set with full attributes, sold in the item mall
Server (tools/server/hunt-set, deployed on 203): game patch adds quest function
item.set_attribute (CItem::SetForceAttribute); quest hunt_set turns the unused
ITEM_QUEST 50307 into a per-class box of eight +9 pieces with five max-value
attributes each. Item mall sells it for 2,000,000.

Client locale: name overlay plus whole-row overlays for item_list.txt (gift-box
icon) and itemdesc.txt (build_zh_locale.py ROW_FILES).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 10:23:33 +09:00

3.3 KiB
Raw Blame History

40250 服务端名称快照

2026-09-28 从 192.168.21.203 的 player.item_proto 与 player.mob_proto 只读导出 vnum, HEX(gb2312name),按 GBK 解码为本目录的 UTF-8 TSV。导出时服务端配置为 LOCALE=newcibn、DB_NAME_COLUMN=gb2312name。客户端原型只修改 szLocaleName, 游戏属性和 VNUM 仍取自 40250 客户端原型。

文件 条数 SHA-256
item_names_zh.txt 5,743 5604985d7f11039f3d3e38d4e2c07995e80ca3e4f6deb01fe57cd772e9cd0f70
mob_names_zh.txt 1,334 fdbfe4b3f3367d5842c0e9bbe0b5e5ea2dbe99fb6e566ef5789f65d3794eab5c

线上字段里的 1,608 个物品名及 346 个怪物/NPC 名不含汉字,本快照原样保留。 它们的审核译文(2026-09-28 确认)单独放在 item_names_zh_overlay.txt、 mob_names_zh_overlay.txt,界面回退键译文在 locale_game_zh_overlay.txt; scripts/build_zh_locale.py 构建时以 overlay 覆盖快照同 VNUM / 同键的值。 旧的龙驹中文表与线上表有 21 个相同 VNUM 不同名;不把旧表覆盖到服务端。 服务端名称若再更新,需重新只读导出并核对差异后更新本快照。

任务文本(translate.lua)

40250 的任务文本都通过 gameforge.<任务>.<键> 引用。game 启动时从 share/locale/<locale>/translate.lua 读取这些文本(questlua.cpp), 所以换文件后重启即可生效,不用重新编译 quest。

  • 译文放在 quest_translate_zh.tsv,每行一条:<任务>.<键>、制表符、中文,UTF-8 编码。
    • 译文里的 [ENTER] 是有意的换行;构建时每行按 50 列(汉字算 2 列)重新折行。
    • 英文原文相同的其他键会共用同一条译文。
  • 还没有译文的键保留英文。
  • 构建:python3 scripts/build_zh_translate_lua.py build <输出>,输出 GBK 编码。
    • 构建逐行保留英文文件的结构(包括嵌套表),只替换字符串值。
    • GBK 双字节字符的第二个字节可能是 0x5C(反斜杠),构建时会把它写成两个。
  • 查看待译条目:python3 scripts/build_zh_translate_lua.py todo <目录> --quests <命名空间,...>。
  • 部署到 203:覆盖 /usr/metin2/server/share/locale/newcibn/translate.lua,然后重启。英文原件备份在同目录的 translate.lua.en-20260930。

技能名称与说明(skilldesc.txt)

scripts/build_zh_locale.py 以 40250 的 skilldesc.txt 为底,逐行取龙驹同 VNUM 的名称、说明和条件列(2–8) 以及效果列(17/20/23)。客户端把效果列当作 _snprintf 格式串传入最小值、最大值,所以效果列只有在格式参数与英文一致时才替换。 skilldesc_zh_overlay.txt 按 VNUM\t列号\t译文 覆盖龙驹缺的或者不对的格。例如 126–128 在龙驹里叫吴/蜀/魏国方言, 这里改成盛唐语、秦皇语、汉武语;骑马技能的说明补上等级要求。

整行覆盖(item_list.txt、itemdesc.txt)

item_list_zh_overlay.txt、itemdesc_zh_overlay.txt 每行是目标文件的一整行(UTF-8,第一列 VNUM), build_zh_locale.py 用它替换同 VNUM 的行(ROW_FILES),其余行字节不变;VNUM 不存在就报错。 用于服务端改了用途的物品,例如 50307 小狩猎套装礼包(tools/server/hunt-set)换成礼盒图标和中文说明。