34 lines
2.5 KiB
Markdown
34 lines
2.5 KiB
Markdown
# 自动狩猎的披风式引怪
|
||
|
||
用户授权的玩法扩展:自动狩猎自带,不需要或消耗隐月披风;选项为关、3 组、10 组、20 组。
|
||
客户端不移动怪物或伪造命中,服务端使用披风 `AggregateMonster` 中的 `BeginFight` 路径建立追击。
|
||
原披风的道具消耗和随机拉怪行为保持不变;本功能按距离确定性选择最多 N 个队伍。
|
||
|
||
“组”是服务端实际的怪物 `CParty`,没有队伍的单只怪物算一组。同一队伍在范围内的成员一起拉取。
|
||
不足所选组数时拉取实际可用的组数。范围使用自动狩猎的范围设置,上限 5000 cm。
|
||
安全区、死亡/眩晕、低于 50% HP 或不能操作道具时不引怪;默认不拉首领。
|
||
队伍在范围内存在首领或正在攻击其他玩家的成员时,整组跳过。
|
||
|
||
请求 `/autohunt_pull <3|10|20> <500..5000> <boss:0|1> <request-id>` 走现有 CG_CHAT。
|
||
服务端每次发 `AutoHuntGather <id> mob <vid>`,最后发 `AutoHuntGather <id> done <groups>`,
|
||
走现有 CHAT_TYPE_COMMAND。每个消息很短,不受一条聊天封包长度限制。
|
||
客户端只接受当前请求的回包;停用、手动暂停后旧回包不生效。
|
||
双方有 10 秒冷却,服务端冷却以角色任务标记保存,重新登录或开关狩猎不能绕过。
|
||
客户端原地等待追击怪物进入近战距离,最多等待 8 秒;3 秒无回包则继续普通狩猎。
|
||
|
||
## 构建和回滚
|
||
|
||
`server.patch` 以 40250 的 `/usr/metin2/src` 为根,`patch -p1` 应用。
|
||
`autohunt_pull.h` 和 `group_select.h` 是补丁中两份新增头文件的源文件。
|
||
`../rebuild.sh` 已加入本补丁,沿用 build / deploy 流程。
|
||
|
||
2026-09-30 已在 192.168.21.203 编译并部署。原 `cmd.cpp`、`cmd_general.cpp`、旧 game
|
||
备份在 `/root/autohunt-pull-20260930/`(旧程序为 `game.before`)。回滚时停 game、恢复旧程序后启动;
|
||
不需要改数据库结构。原披风物品逻辑没有改动。
|
||
|
||
验证:`host.autohunt_pull` 直接编译本命令,检查 3/10/20 组、队伍成员数、排序、冷却、安全区、
|
||
低血量和其他玩家目标过滤。`port.login_flow` 通过真实 Python 设置和聊天封包验证请求、回包及原地等待,
|
||
桌面和移动模式均通过。真服临时角色实测回包为 **3 组、9 只怪物**,随后进入自动战斗。
|
||
临时角色、账号和关联数据已在刷新对应 DB 缓存后清理;auth/game/db 监听已检查。
|
||
macOS 原生包及 Android debug APK 已重新构建。
|