设为首页
收藏本站
切换到窄版
用户名
UID
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
每日答题
导读
Guide
社区首页
BBS
在线小游戏
天堂2简体资料库
GITEE开源
门户
Portal
在线影视TV
访问密码 l2fater
小动物连连看
最新发表
最新回复
服务端专区
客户端专区
天堂2连连看
小蝌蚪找妈妈
80+在线小游戏
搜索
搜索
热搜:
l2fater
l2jmobius
l2jserver
天堂2单机
天堂2服务端
天堂2客户端
新天堂2
光辉魔法使
本版
帖子
用户
游戏开服表
申请开服
游戏名称
游戏描述
开服状态
游戏福利
运营商
游戏链接
广告位招租
联系QQ51605539
今日新开
进入游戏
非官方wiki
芙蕾雅NPC-技能-道具数据库
永久可用
血玫瑰社区
进入游戏
天堂2协议
天堂2客户端协议附带英文客户端下载
不定期更新
L2FATER
进入游戏
本站所有天堂2相关资源仅限单机体验使用,不得用于商业用途,国内用户可选择 www.l2fater.cn 访问,海外选择 l2fater.cn 访问
天堂2开源中文论坛
»
社区首页
›
L2Fater--天堂2专区--
›
Scripts专区 - L2J Java Mods
›
寻宝猎人活动:Lucera 2 - [天堂2六章可用] ...
返回列表
发新帖
查看:
9
|
回复:
1
[俄端]
寻宝猎人活动:Lucera 2 - [天堂2六章可用]
[复制链接]
l2fater
l2fater
当前离线
主题
0
回帖
1万
积分
打卡总天数:1225
打卡总奖励:6320
发表于
昨天 11:51
|
显示全部楼层
|
阅读模式
Treasure Hunter Event: Lucera 2 (Interlude)
网盘下载
本地下载
不得商业✓仅供单机
✓备份下载
提取码:
隐藏内容
支援版本:
铁幕降临
资源评分:
8分
资源大小:
60KB
更新时间:
2026-08-16
L2Fater.CN - 天堂2开源中文社区 - 温馨提示:
玩家被传送到一个封闭的竞技场,里面满是宝箱。每个打开的宝箱都有可配置的概率奖励或爆炸并杀死打开者。到回合结束时积分最多的人获胜。
详情介绍
寻宝猎人活动:Lucera 2(铁幕降临)
作者:
Kelvin
原文简译版:
注意:我不是程序员、开发者、编码员或其他任何东西。我在用Claude尝试移植并为Lucera带来一些额外模组,让它作为PVP基地更好用,我收到了太多关于这个的信息。
我没有在游戏中运行测试过,我没有Windows系统,希望接下来的我能做到。因此,如果有人使用、测试并在本帖报告是否有效或是否有bug,我将不胜感激。
欢迎改进,如果你是开发者并想帮忙,可以给出反馈或分享修正。
给大家一个飞吻,请阅读:
寻宝活动。玩家被传送到一个封闭的竞技场,里面满是宝箱。每个打开的宝箱都有可配置的概率奖励或爆炸并杀死打开者。到回合结束时积分最多的人获胜。
以.ext.jar形式分发:不修改server.jar,也不需要核心补丁。
拿去你要的东西:
https://drive.google.com/file/d/1dWF4GntbTRNi0nu32MlvrkBkwL7mfGE_/view?usp=drive_link
附件中也有。
来源与致谢
原始创意/
版本
:L2JBrasil上的帖子,为
l2jmobius
编写——Treasure Hunter Event — 寻宝活动
演示视频:
https://www.youtube.com/watch?v=aFl50Tb6rfk
本版本:为Lucera 2(Interlude)重新实现,打包为扩展。完整源代码附在fonte/文件夹中。
可以随意使用、修改和再分发。如果转发,请保留原始帖子的署名。
下载
➜ 下载完整包(.zip)
压缩包包含编译好的.ext.jar、带注释的配置文件和完整源代码。
此模组及其他模组的仓库:github.com/kelvinmath/Lucera-Interlude-Mods
要求
Lucera 2 / Interlude服务器(.ext.jar是针对Lucera的server.jar编译的;其他核心不会加载)。
Java 17,与服务器相同。
数据包中的竞技场实例。默认是804(PvP Coliseum),已经准备好。
注意:
.ext.jar是针对特定构建版本的Lucera编译的。如果在其他构建版本中因签名不兼容而无法加载,只需从fonte/文件夹重新编译即可(说明见帖子末尾)。
安装(3步)
将 treasurehunter.ext.jar 复制到服务器根目录,即与 server.jar 相同的文件夹。
将 config/treasurehunter.properties 复制到服务器的 config/ 文件夹。
重启GameServer。
不需要编辑 StartGameServer.bat 或任何其他文件。但有两个规则
不是可选的
:
文件名必须以 .ext.jar 结尾。如果重命名为 treasurehunter.jar,模组根本不会启动。
必须放在根目录,紧挨着 server.jar。子文件夹无效。
原因见帖子末尾的“服务器如何加载扩展”部分,如果某些内容未加载,值得一读。
确认已加载
在GameServer启动时,日志中应出现以下两行:
TreasureHunter: config carregada (arena=804, pvp=false, baus=40+6).TreasureHunter: carregado. Horarios: 15:00, 20:00, 23:00
如果没有出现,请参见帖子末尾的“常见问题”。
立即测试
以GM身份登录并运行 //th_start 来立即开启报名,无需等待预定时间。
包内容
treasurehunter.ext.jar -> 复制到服务器根目录config/treasurehunter.properties -> 复制到 <服务器>/config/fonte/src/... -> 源代码(可选,仅用于修改)fonte/build.sh -> 编译
脚本
LEIA-ME.md -> 说明
运行活动只需要前两个文件。fonte/文件夹是为想要修改代码的人准备的。
命令
玩家
命令
作用
.th
报名参加活动
.th sair
取消报名
.th ranking
显示当前回合前十名
.th stats
显示个人累计统计
GM
命令
作用
//th_start
立即开启报名
//th_stop
取消正在进行的活动
//th_info
显示状态、参与者和当前配置
//th_reload
重新加载.properties(仅在活动停止时)
//th_rescue
将被困在竞技场的玩家移出
GM命令需要在访问级别拥有 IsEventGm 权限。
活动如何运作
五个阶段:
阶段
发生什么
REGISTERING
NPC在奇岩城出生,全服公告,玩家通过.th进入
PREPARING
所有人被传送到竞技场并冻结倒计时
RUNNING
宝箱散落出生;玩家奔跑去打开它们
ENDING
公布排名,发放奖励,保存统计
INACTIVE
销毁竞技场,所有人返回原来位置
宝箱
两种类型,各有自己的概率、分数和奖励:
普通
— 更常见,成功概率更高,分数少
金色
— 更稀有,概率较低,但分数高得多
宝箱在第一击时打开(NPC的HP不重要)。打开时:
成功
→ 获得分数、配置的物品,连击数增加
失败
→ 宝箱爆炸,杀死玩家,连击数清零
死亡的玩家会在几秒后重生在竞技场的随机点。
宝箱分布
竞技场分为5个区域(北、南、东、西、中央)。每次刷新时,活动会选择最不拥挤的区域,并在其中随机选取一个空闲点——这样宝箱就不会堆在一个角落。
反蹲守
每经过AntiCampSeconds秒,活动会比较玩家的当前位置与之前的位置。如果玩家没有离开配置的半径范围,就会被传送到另一个点。防止有人原地等待同一个宝箱刷新。
连击与平局决胜
连击计数连续成功的开箱次数,每次死亡后重置。最终排名按以下顺序决出:积分 → 最佳连击 → 最少死亡 → 最先报名者。
配置
所有配置都在 config/treasurehunter.properties 中。文件逐字段带有注释。你最可能想调整的是:
StartTimes = 15:00,20:00,23:00 # 自动开始时间(会自动重新安排)
Duration = 10 # 每回合分钟数MinLevel = 40MaxLevel = 85NormalSuccessChance = 70 # 70%概率奖励GoldenSuccessChance = 55NormalRewardItemId = 57 # 普通宝箱奖励金币NormalRewardItemCount = 10000AllowPvP = False # True则允许活动期间PVP
最终排名奖励(格式:id,数量,多个物品用分号分隔):
Reward1st = 57,5000000
Reward2nd = 57,3000000Reward3rd = 57,1000000RewardParticipation = 57,100000
更换竞技场
默认使用实例804(Coliseum),数据包中已有。要使用其他竞技场,更改InstanceId并调整宝箱可以出生的矩形区域:
InstanceId = 804
ArenaMin = 148300 45900 -3408ArenaMax = 150650 47550 -3408ArenaZ = -3408
可用的现成实例:801, 802, 803, 804。
刷新网格会根据这个矩形自动生成——你不需要逐个注册宝箱坐标。
PVP
当 AllowPvP = False(默认)时,玩家之间互相无敌,活动纯粹是抢宝箱竞赛——只有爆炸才会导致死亡。当 AllowPvP = True 时,他们也可以互相击杀。
更换宝箱
默认ID(18265和18270)是数据包自带的宝藏箱。如果更换,NPC必须是Monster或TreasureChest类型——Folk类型的NPC无法被攻击,没人能打开宝箱。如果检测到无效的NPC,活动会在日志中警告。
宝箱的原生掉落会被抑制:只发放配置的奖励。
统计数据
按角色保存,重启后仍然存在:
变量
内容
th_events
参与的活动次数
th_points
累积积分
th_best_points
单回合最高分
th_best_combo
最佳连击
th_chests / th_golden
打开普通/金色宝箱数
th_deaths
死亡次数
th_top1 / th_top2 / th_top3
领奖台次数
常见问题
启动日志中没有显示TreasureHunter。
请按顺序检查:
文件是否在服务器根目录,紧挨着server.jar?子文件夹不行。
文件名是否仍以.ext.jar结尾?如果重命名了,加载器会忽略。
你是否从服务器文件夹内通过StartGameServer.bat启动服务器?快捷方式的“起始于”指向其他地方会导致加载器在错误位置查找扩展——那样所有扩展都不会加载,包括原本正常工作的那些。
配置错误 / //th_info中显示奇怪的值。
treasurehunter.properties没有被复制到<服务器>/config/。没有该文件,活动可能会以不同的默认值启动。
宝箱无法被攻击。
配置的NormalChestNpcId / GoldenChestNpcId是Folk类型。换成Monster或TreasureChest类型的NPC。
玩家被困在竞技场。
运行//th_rescue。在竞技场内掉线的玩家也会在下次登录时自动返回。
我想在不重启的情况下更改配置。
在活动停止状态下,使用//th_reload。
服务器如何加载扩展
不需要在.bat中注册任何东西,但理解这个机制可以在某些内容未加载时节省时间。分为两个独立步骤。
1. Classpath。
StartGameServer.bat这样启动服务器:
java -server ... -cp config;./* l2.gameserver.GameServer
./*是Java自身的classpath通配符:它会展开为当前文件夹中的所有.jar,包括你的。这就是为什么命令行中不需要添加任何东西——根目录下的任何新jar都会自动加入。(config排在前面是为了让treasurehunter.properties能被找到。)
重要细节:Java的通配符./*不递归。它只获取根目录下的*.jar,忽略root/mods/*.jar。
2. 扩展加载器。
仅仅在classpath中只是让类可见——并不会执行任何操作。真正激活模组的是核心,它在启动时执行类似于:
new File(".").listFiles(filtro) // 文件以".ext.jar"结尾
然后对于每个找到的jar,寻找实现了ScriptFile接口的类并调用其onLoad()方法。正是这一步安排了定时任务并注册了.th和//th_*命令。
由此得出安装的两条规则:
文件名以.ext.jar结尾
—— 过滤器就是根据这个字面后缀。一个treasurehunter.jar会进入classpath但永远不会调用onLoad():模组变得不可见,日志中没有任何错误。
放在根目录
—— listFiles只列出一层,不会进入子文件夹。
一个值得了解的陷阱:那个new File(".")是进程的工作目录,而不是server.jar所在的文件夹。由于.bat是从服务器文件夹内部启动的,两者重合,没人注意到差异。但如果你创建了一个Windows快捷方式,并将“起始于”指向其他地方,服务器会正常启动,但所有扩展都不会加载——包括之前正常工作的那些。
从头编译(可选)
仅当你需要修改代码,或者.ext.jar在你的构建版本中无法加载时才需要。压缩包中已经包含了编译好的jar。
cd fonteSERVER=/path/to/server ./build.sh
需要JDK 17。如果你的PATH中的javac不是17,请设置JAVA_HOME:
SERVER=/path/to/server JAVA_HOME=/path/to/jdk17 ./build.sh
该脚本会将服务器根目录中的所有.jar作为classpath,并生成fonte/build/treasurehunter.ext.jar。
代码文件
src/com/l2jbrasil/mods/treasurehunter/
TreasureHunterMod.java 入口点(ScriptFile),每日调度 TreasureHunterEvent.java 活动引擎:阶段、监听器、奖励 ChestManager.java 宝箱的生成/认领,原子点预留 ArenaGrid.java 生成刷新网格并按区域分类 Participant.java 每个玩家的计分板和状态 SpawnPoint.java 刷新点,包含索引和区域 THConfig.java 读取.properties THVoicedCommand.java .th命令 THAdminCommand.java //th_*命令
实现细节
值得记录的点,供修改者参考:
宝箱在受到伤害时打开,而非死亡时。
如果我们让宝箱正常死亡,核心会运行MonsterInstance.calculateRewards,原生掉落会掉在地上,绕过活动的奖励系统。取而代之的是,宝箱在第一击时就被认领:我们清空仇恨列表(使getTopDamager()返回null),然后调用doDie接着deleteMe。
打开冷却。
范围技能会触发每个目标的伤害监听器。如果不加限制,一次施法就会打开范围内的所有宝箱。因此设置了OpenCooldown(默认400毫秒),同时也作为得分上限。只有在宝箱被实际认领后才消耗冷却——争夺宝箱失败不会锁定玩家。
Reflection的定时器被重写。
实例的init()方法设置了来自XML的两个自动销毁触发器(collapseIfEmpty和timelimit)。两者都会在回合中途摧毁竞技场,因此它们被替换为基于活动实际持续时间的计算期限。
生成计数器。
每个计划的任务都保存了创建时的回合编号,如果编号改变就放弃执行。仅仅取消ScheduledFuture是不够的——已经出队的任务无论如何都会执行,可能会影响下一回合的状态。
解救被困玩家。
在竞技场内掉线的玩家会携带th_return标记。下次登录时会被送回原点(有几秒延迟,以免在EnterWorld过程中传送)。回合中途重启后同样适用。
Lucera
,
活动
相关帖子
•
【2026】更新L2j-LuceraV3 - 六章源码/单机端
•
ACIS动态活动奖励系统
回复
使用道具
举报
变色卡
千斤顶
l2fater
l2fater
当前离线
主题
0
回帖
1万
积分
打卡总天数:1225
打卡总奖励:6320
楼主
|
发表于
昨天 12:27
|
显示全部楼层
作者:=*CaioxD*= 分享的acis版本
原文翻译如下
宝藏猎人活动适配 aCis 版本。感谢 Kelvin 发布并与社区分享原始活动。我在此提供适配 aCis 的修改版本,包含多项修正与改进:
• 完整的 XML 配置。
• 可选择副本活动或开放世界活动。
• 自动发送报名邀请。
• 自定义 NPC,支持报名、状态查看和排行榜。
• 外部 HTML 文件,便于自定义修改。
• 普通宝箱与黄金宝箱,其概率、积分和奖励均可配置。
• 实时排行榜,仅显示前十名。
• 玩家永久统计数据。
• 开始前的倒计时。
• 自动复活,无需点击“回村”按钮。
• 防蹲点与范围攻击宝箱的保护机制。
• 活动期间禁止登出和切换角色。
• 玩家断线后自动恢复。
• 禁止同时报名参加 TvT、CTF、DM、LM、MultiTvT、FOS 和 KTB。
• 提供报名、排行榜和统计数据的命令。
• 提供完整的 .diff 安装文件。
玩家必须摧毁散布在竞技场中的宝箱来积累积分和奖励。部分宝箱可能会爆炸并杀死参与者。活动结束时,排名靠前的玩家将获得设定的奖励。
再次感谢 Kelvin 分享原始活动。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2008-2023
L2Fater.
(https://www.l2fater.cn/) 版权所有 All Rights Reserved.
Powered by
Discuz!
X3.5
|
粤ICP备2022002542号
劰载中...
快速回复
返回顶部
返回列表