找回密码
 立即注册

QQ登录

只需一步,快速开始

Close
查看: 100|回复: 1

自动狩猎+自动离线挂机扩展【l2jmobius】

[复制链接]
  • 打卡总天数:1210
  • 打卡总奖励:6284
发表于 2026-7-13 10:17:02 | 显示全部楼层 |阅读模式
AutoFarm + Offline AutoFarm
  • 不得商业✓仅供单机 ✓备份下载
  • 提取码: 隐藏内容
  • 支援版本:铁幕降临 
  • 资源评分:9分
  • 资源大小:30KB
  • 更新时间:2026-07-13
L2Fater.CN - 天堂2开源中文社区 - 温馨提示:
作者:VirtualMonarch 来源:mmo 适配L2JMOBIUS六章服务端,未作测试,源码包转存至国内告诉网盘
详情介绍
【Mod发布】AutoFarm + Offline AutoFarm for L2J Mobius Interlude

脚本级修改 | 无需改动GameServer.jar | 支持离线挂机 & 重启继承


? 简介

本模组是为 L2J Mobius CT 0 Interlude​ 制作的一个纯脚本扩展,增加了品牌化的 .autofarm语音指令家族、HTML 图形界面以及真正的离线自动挂机功能。

最大亮点:离线挂机状态可持久化至数据库,服务器重启后自动恢复。


✅ 不修改 GameServer.jar 核心

✅ 仅通过 ScriptEngine、语音指令处理器、事件监听器和原生配置文件实现

✅ 已在 Mobius GitLab 最新 Master 分支测试通过

? 测试环境

服务端:L2J Mobius CT 0 Interlude (最新 Master)

JDK:25 (ScriptEngine 依赖 javax.tools.JavaCompiler)

数据库:MariaDB 12.3 (MySQL 亦可)

客户端:Interlude

✨ 主要功能
1️⃣ 语音指令

.autofarm— 打开 Auto Farm 图形界面。

.autofarm start / stop— 开始 / 停止挂机。

.autofarm attack— 切换自动攻击。

.autofarm loot— 切换自动拾取。

.autofarm respect— 切换“尊重狩猎”(不攻击低于自身等级的怪物)。

.autofarm range— 切换近战/远程模式。

.autofarm mode0~3— 目标选择模式 (任意 / 怪物 / 角色 / NPC)。

.autofarm percent N— 自动喝药血量阈值 (0–100)。

.autofarmskills / .autofarmitems / .autofarmpotion— 自动技能/物品/药水子面板(复用原生 AutoPlay HTM)。

.autofarm offline— GUI内按钮:弹出确认框,确认后客户端断开连接,角色保留在世界中继续挂机(离线模式)。

.autofarmoff— .offlineplay的别名,可在GUI外使用。

.autofarm stats— 重新打开上次离线挂机的统计报告。

? 原生 .play, .playskills等指令保持不变,仅增加别名,不影响原有 AutoPlay 功能。

2️⃣ 核心特性 A:离线挂机(重启继承

角色在客户端断开后依然留在世界中继续挂机。

重启恢复:服务器启动时,OfflinePlayTable.restoreOfflinePlayers()会从 character_offline_play表中读取数据,重新生成离线角色并恢复挂机任务。

登录清理:同一账号登录时,离线机器人会被优雅关闭(OfflinePlayDisconnectSameAccount = True)。

统计报告:登录瞬间弹出 Summary.htm,展示离线期间的时长、击杀数、金币收益及详细掉落列表。

3️⃣ 核心特性 B:传送后自动续接

角色在挂机时被传送(GM指令、回城卷、任务脚本等),系统会清除当前目标和AI意图,并在约 700ms 后于新坐标重新搜寻附近怪物。解决原版“卡死凝视”BUG,宠物/召唤兽也会同步跟随。

4️⃣ 核心特性 C:修复卡库BUG

修复了 L2J Mobius 核心中 CharSelectionInfo导致离线数据残留的隐患。本模组通过 ON_PLAYER_LOGIN钩子无条件清理脏数据,确保“仅在拥有者未登录时持久化”。

? 文件结构
text
.
├── README.md
├── server/game/                   # 覆盖至服务端 server/game/
│   ├── config/Custom/
│   │   ├── AutoPlay.ini            # EnableAutoPlay=True
│   │   └── OfflinePlay.ini         # EnableOfflinePlayCommand=True
│   └── data/
│       ├── scripts/handlers/chat/commands/voiced/
│       │   ├── AutoPlay.java       # 核心逻辑 (含A/B/C特性)
│       │   └── OfflinePlay.java    # .autofarmoff 别名
│       └── html/mods/AutoFarm/
│           ├── Main.htm            # 品牌化GUI界面
│           └── Summary.htm         # 离线统计报告
├── sql/game/                      # 数据库文件
│   ├── character_offline_play.sql
│   └── character_offline_play_group.sql
└── originals/                     # 原始文件备份 (用于回滚)

? 安装教程

准备环境:确保 L2J Mobius Interlude 服务端正常运行。

导入SQL:

powershell
$mysql = "<你的mysql路径>\mysql.exe"
$db = "l2jmobiusinterlude"   # 你的数据库名
Get-Content -Raw .\sql\game\character_offline_play.sql | & $mysql -h 127.0.0.1 -P 3307 -uroot $db
Get-Content -Raw .\sql\game\character_offline_play_group.sql | & $mysql -h 127.0.0.1 -P 3307 -uroot $db

覆盖文件:将 server/game/*文件夹内容复制到你的服务端 server/game/目录下。

重启服务端:GameServer 启动时会自动编译 Java 脚本 (需 JDK 25)。

权限设置:默认 AutoPlayPremium=False和 OfflinePlayPremium=False,全员可用。设为 True则仅限 Premium 账号使用。

⏪ 卸载回滚
powershell
# 恢复原始脚本
Copy-Item -Path .\originals\* -Destination <服务端路径>\server\game\ -Recurse -Force
# 删除新增的HTML目录
Remove-Item -LiteralPath <服务端路径>\server\game\data\html\mods\AutoFarm -Recurse -Force

随后手动在 config/Custom/中将 EnableAutoPlay和 EnableOfflinePlayCommand设为 False。

✅ 功能测试 (Smoke Test)

游戏中输入 .autofarm,GUI界面正常弹出。

点击 Start,角色开始自动攻击周围怪物。

点击 Offline,确认后客户端返回角色选择界面,角色留在游戏中。

数据库查询 SELECT * FROM character_offline_play;应有数据写入。

重启服务器,日志应显示恢复离线玩家,角色重新出现在世界中继续挂机。

原账号登录,弹出 Summary.htm统计窗口。

挂机中使用 GM 指令传送,角色应立即在新位置寻找怪物继续挂机。

? 补充说明(非品牌化部分)

.autofarmskills/ .autofarmitems/ .autofarmpotion调用的子面板仍加载 data/html/mods/AutoPlay/下的 HTM 文件(路径硬编码)。

如需完全品牌化,需将这些 HTM 克隆至 data/html/mods/AutoFarm/并在代码中切换路径。


回复

使用道具 举报

  • 打卡总天数:40
  • 打卡总奖励:105
发表于 2026-7-20 16:44:05 | 显示全部楼层
谢谢分享下载
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表