Files
metin2-client/tools/server/ring-warp/README.md
T

2.9 KiB
Raw Blame History

移动戒指(203 服务端)

物品 70058 通过 special_item_group 10031 的 sig_use 触发 ring_warp。 戒指不限等级、次数,不消耗物品,也没有自身冷却。传送仍遵守服务端的 pc.can_warp() 检查。 百店老板娘的商城出售此物品(../npc-shops/item-mall,1 金币)。

2026-09-30 补齐 203 的 newcibn/map/index 全部 65 张地图,包括活动、战争和测试地图。 目录及坐标来自实际服务器的 index、Setting.txt、Town.txt、npc.txt,保存在 maps.json。 部分地图名称采用中文描述,目录名和地图编号用于唯一对应。

分类 数量 操作
各国村庄 6 传送至各国一村、二村
野外地图 13 传送至地图出生点
洞穴与副本 15 普通洞穴传送;受限副本传送至原有入口
公会地图 6 公会领地及公会村庄
活动与战争 20 列出地图及原有入场方式,保留报名、婚礼及战争流程
测试地图 5 所有人可查看;仅 GM 可传送

每页最多 5 个地点,包含上一页、下一页、返回分类;选择传送后再确认。 受限副本编号为 66、71、72、73、208、216、217、351。蜘蛛洞三层先经一层守卫进入二层; 流放二层和蓝龙巢穴先经流放洞窟入口进入,戒指不绕过通行证、血石、组队及副本入场条件。 活动地图只显示入场说明,避免进入尚未开放或未分配给玩家的场景。 资源活动地图 101 的服务器 Town.txt 坐标在地图边界外,目录记录保留原值,未用于传送。

修改与验证

修改 maps.json 后执行:

python3 tools/server/ring-warp/generate.py
python3 tools/server/ring-warp/tests/test_ring.py SERVER_LIBLUA_DIRECTORY LIVE_MAP_INDEX

测试使用 40250 服务端的 Lua 5.0 源码构建临时解释器,执行生成的真实任务函数。 检查地图覆盖、坐标边界、GBK 编码、全部 65 个地点的选择,以及翻页、取消、传送限制和 GM 权限。 可增加第三个参数 COMPILED_OBJECT_ROOT,直接验证服务器 qc 生成的两个任务对象。

安装

从此目录在服务器执行:

sh install.sh --quest-only  # 仅更新任务;每个 game core 重载任务或重启 game
sh install.sh              # 同时安装物品名、移除等级限制;首次安装需重启 db/game

安装前备份任务源码、两个任务对象、物品表至 /root/backup-ringwarp/<时间>。 先在隔离目录编译并检查结果,再替换 ring_warp 的两个对象;不会清空其他任务对象。 --quest-only 不更改物品表或数据库,不需要重启 db/auth。 任务转换成 GBK;拒绝包含反斜杠字节的编码,避免 qc 解析异常。

203 已于本次部署仅重启四个 game core,db/auth 保持运行。此次是服务端任务更新,已有客户端重登后即可使用。