传奇服务端财富劫阵活动完整脚本配置教程含分层撒元宝与定时开启

来源: 作者: 点击:
财富劫阵在服务端通常做成一个NPC活动,玩家提交财富神石后按概率给元宝,或者累计层数到设定值后在盟重安全区附近ThrowItem撒大量元宝。下面按NPC文件、对话、分层、随机奖励、满层撒宝、定时自动开、机器人补发、排错顺序写,可直接套到Hero类引擎,其他引擎只替换变量和撒宝命令。

NPC文件与基础结构

脚本放MirServer\Mir200\Envir\Market_Def,文件名按“财富劫阵大使-3.txt”这样写,3是盟重地图号,按自己地图号改。文件开头写NPC名称、地图、坐标、外形,主体用[@Main]做对话,[@QiDong]做启动,[@HuoDeJP]做随机奖励。

Market_Def里最基础架子:

财富劫阵大使 3 330 330 1 0 0
@Main
\ \
财富劫阵说明\
投入财富神石可启动劫阵,按层数累积,满层在盟重撒元宝\
当前劫阵层数:第<&g0>层\
\ \
启动劫阵 @QiDong \
查看奖励 @HuoDeJP \

上面<&g0>是Hero读取全局变量G0的写法,其他引擎换成自己的全局变量输出方式。若引擎不支持对话里直接输出全局变量,就在@Main先用SENDMSG或MESSAGEBOX弹当前层数,不把变量写进@Main文本。

分层启动逻辑

分层用全局变量记录全服层数,每提交一块财富神石加一层,到上限就触发满层撒宝。Hero样本常用G0做层数、[018]做本次活动开关。

@QiDong
IF CheckItem 财富神石 1

Small G0 187
ACT Inc G0 1

Set [018] 1
SENDMSG 1 财富劫阵升为:第<&g0>层,满188层盟重将大量出现元宝!
Goto @HuoDeJP
Break

IF CheckItem 财富神石 1

Large G0 186
ACT Take 财富神石 1

ThrowItem 3 358 342 6 100元宝 10|60
ThrowItem 3 358 342 6 200元宝 10|60
ThrowItem 3 358 342 6 500元宝 5|60
ThrowItem 3 358 342 6 1000元宝 2|60
Mov G0 0
Set [018] 1
SENDMSG 1 警告:财富阵188层被【%s】释放,盟重358:342出现超级大量元宝,30秒后可以捡取!
Goto @HuoDeJP
Break

ELSEACT

MESSAGEBOX 您身上并没有财富神石,击杀BOSS获取后再来启动劫阵!

Small G0 187表示当前层数小于188才正常累加;Large G0 186表示已达到188阈值,直接满层撒宝并清0。ThrowItem参数按“地图号 X Y 范围 物品名 数量存活秒数”理解,3是盟重,358 342按自己安全区改,6是撒落半径,10
60表示10个、存活60秒。多个ThrowItem可叠加不同元宝面额,面额和数量按经济系统调整。

随机奖励分支

不想只靠满层撒宝,可让每次投石都走概率。RANDOM后面写触发权重或百分比,按从大到小排列,前面命中就发奖并跳出。Hero样本常用RANDOM 1000、RANDOM 100做不同奖池。

@HuoDeJP
IF CheckItem 财富神石 1

RANDOM 30
ACT Take 财富神石 1

GAMEGOLD + 2000
SENDMSG 1 财富劫阵被%s触发,%s获得财富,元宝增加2000个!
Set [018] 0
Goto @Main
Break

IF CheckItem 财富神石 1

RANDOM 22
ACT Take 财富神石 1

GAMEGOLD + 1000
SENDMSG 1 财富劫阵被%s触发,%s获得财富,元宝增加1000个!
Set [018] 0
Goto @Main
Break

IF CheckItem 财富神石 1

RANDOM 17
ACT Take 财富神石 1

GAMEGOLD + 800
SENDMSG 1 财富劫阵被%s触发,%s获得财富,元宝增加800个!
Set [018] 0
Goto @Main
Break

IF CheckItem 财富神石 1

RANDOM 14
ACT Take 财富神石 1

GAMEGOLD + 500
SENDMSG 1 财富劫阵被%s触发,%s获得财富,元宝增加500个!
Set [018] 0
Goto @Main
Break

ELSEACT

MESSAGEBOX 本次劫阵未触发元宝,请继续积累财富神石!

RANDOM数值不是固定百分比,不同引擎解释不同。Hero老样本里RANDOM 30、22、17按权重分段即可;若引擎RANDOM只返回0到指定值,再配合#IF对比随机结果做区间更稳。GAMEGOLD是元宝命令,若本服元宝字段用GAMEPOINT、YUBI或其他命令,全局替换即可。只发物品就把GAMEGOLD换成GIVE 物品名 数量,例如GIVE 高级宝箱 1。

低层提前撒宝版本

有些版本不满188,只到49层就在盟重撒宝,逻辑一样,只是把阈值和坐标改小:

IF CheckItem 财富神石 1

Large G0 48
ACT Take 财富神石 1

ThrowItem 3 353 336 6 100元宝 10|60
ThrowItem 3 353 336 6 500元宝 5|60
ThrowItem 3 353 336 6 1000元宝 1|60
Mov G0 0
SENDMSG 1 警告:财富阵49层被【%s】释放,盟重353,336出现很大量元宝,60秒后可以捡取!
Goto @HuoDeJP
Break

49层样本来自公开劫阵脚本,适合小服快速出奖,不让玩家攒太久。

物品与数据库准备

财富神石必须在StdItems.DB或物品管理里加好,名称要和脚本CheckItem完全一致。建议设置:

名称:财富神石
类型:普通消耗/材料,按本引擎Stdmode填
重量:1到10均可
是否可交易:按活动经济定,想防刷就绑定
掉落来源:世界BOSS、活动BOSS、商城兑换都可

若脚本用100元宝、200元宝、500元宝、1000元宝作为撒落物品,这些物品也要进DB,类型按元宝券处理;如果直接撒可交易元宝物品,要在M2经济设置里确认拾取后能与元宝系统挂钩。只做GAMEGOLD加元宝就不需要撒元宝物品,ThrowItem只撒宝箱、经验丹、材料更稳。

定时自动开启

纯靠玩家投石会变被动,可做定时全服推进层数或直接满层。用机器人脚本AutoRunRobot.txt设定周期,再在RobotManage.txt调用劫阵标签。

AutoRunRobot.txt加:

AutoRun NPC MIN 30 @AutoCaiFuJieZhen

表示每30分钟触发一次。RobotManage.txt加:

[@AutoCaiFuJieZhen]
IF Equal G0 0

ACT Inc G0 20

SENDMSG 0 系统自动注入财富劫阵,全服层数增加20层,前往盟重劫阵大使提交神石!
IF Large G0 187

ACT TakeForceNull

ThrowItem 3 358 342 6 100元宝 10|60
ThrowItem 3 358 342 6 1000元宝 2|60
Mov G0 0
SENDMSG 0 定时财富劫阵已满层,盟重358:342开始撒元宝!

机器人命令名各引擎不同,GOM/GEE用AutoRunRobot和RobotManage,Hero用Robot目录对应文件,Legend/Blue按本版本机器人说明改。若引擎不支持机器人自动Inc全局变量,就用M2定时事件或MapEvent触发NPC标签代替。

MapEvent定点触发

只想让玩家踩点参战,可在MapEvent.txt放活动点:

3 358 342 10 101 2

含义按本引擎文档理解,通常地图3、坐标358 342、触发范围10、执行脚本号101、冷却2秒。配合QFunction或Market脚本接收,自动判断G0层数、给奖励、撒物品。MapEvent适合做“玩家到劫阵祭坛自动投石”,比纯NPC更自动。

GOM/GEE改写要点

GOM/GEE不一定认Small、Large、Inc G0这种Hero写法。全局层数用G变量或M变量,条件用LARGE、SMALL、EQUAL,撒宝用ThrowItem或本引擎地面物品命令。示例:

@QiDong
IF CheckItem 财富神石 1

SMALL G0 187
ACT INC G0 1

SENDMSG 1 财富劫阵升到:<$G0>层
IF CheckItem 财富神石 1

LARGE G0 186
ACT TAKE 财富神石 1

ThrowItem 3 358 342 6 100元宝 10 60
ThrowItem 3 358 342 6 1000元宝 2 60
MOV G0 0
SENDMSG 1 财富劫阵满层,盟重358:342撒元宝!

随机奖励把RANDOM换成GOM的Random命令或RandomNo,具体看引擎宏。若GOM用个人变量记录每人投石次数,把G0改U变量或H变量,满层仍用全局G控全服。

Legend/M2类改写要点

Legend标签用[@MAIN]大写,变量不用G0裸写,按本引擎全局变量命令声明。分层判断用CHECKVAR GLOBAL 财富劫阵层数 < 188,满层用>、=判断。撒宝若没有ThrowItem,就用刷新地面物品接口或调用怪物/NPC掉宝文件。随机用RANDOM或自定义概率函数。整体流程不变:检测神石、加层、满层清层、广播坐标、撒奖励。

Blue类改写要点

Blue可用Market脚本做NPC,机器人走定时模块。全局层数放全局变量文件或数据库字段,避免只用临时变量导致重启丢层。ThrowItem若不支持多物品一行,拆成多行逐个撒。随机奖励用Blue的Rand命令,奖励发元宝用本服元宝命令,发物品用Give。Blue对路径和变量作用域较严格,NPC改完重读脚本,机器人改完重读Robot。

防刷与平衡设置

财富神石掉率别太高,否则劫阵变无限印元宝。满层撒宝数量按在线人数定,50人在线时100元宝10个、500元宝5个、1000元宝2个已经够刺激;人多再翻倍。随机分支RANDOM总和别让高阶奖励过高,2000、5000元宝只适合做极小概率。若用GAMEGOLD直接加,建议加每日个人上限,用个人变量记录当天投石次数,超过次数只给经验或材料。

M2里把财富神石设为不可丢、不可交易可进一步防线下转移;若要做自由经济就放开交易,但BOSS掉率下调。撒落元宝物品建议设自动拾取白名单,避免外挂脚本秒捡;地面物品存活60秒足够手动玩家抢。

重载与排错

改完Market_Def脚本在M2控制台重读NPC脚本;改Robot在M2重读机器人;改MapEvent重读地图事件;改StdItems.DB重读物品库。进游戏点NPC没反应,按下面查:

1. 文件名和Market_Def格式不对,地图号、坐标、NPC名缺参数会导致不加载。
2. CheckItem财富神石名称与DB不一致,多了空格或全角符号。
3. Small/Large写反,导致永远不累加或永远满层。
4. G0未初始化,第一次Small G0 187可能报变量不存在;机器人或[@Main]先Mov G0 0一次。
5. ThrowItem坐标不在盟重可行走区,物品撒在墙里捡不到;用M2地图查看器确认358 342可站立。
6. 100元宝等物品没建DB,撒出来显示未知物品或直接不撒。
7. RANDOM分支全用#IF没有#ELSEACT,未命中概率时NPC无回复,玩家以为没反应。
8. 机器人AutoRun不触发,检查AutoRunRobot格式、RobotManage标签名、M2机器人总开关。
9. 全局变量跨重启丢失,重要层数可写数据库或落盘文件,别只靠内存G变量。
10. 满层后没清G0,第二次投石立即又满层,需在满层分支Mov G0 0。

完整可运行简化版

[@Main]
\ \
财富劫阵\
提交财富神石累积层数,满188层盟重358:342撒元宝\
当前层数:第<$G0>层\
\ \
启动 @QiDong \
随机试手气 @HuoDeJP \

[@QiDong]
IF CheckItem 财富神石 1

Small G0 187
ACT Inc G0 1

SENDMSG 1 财富劫阵升为第<$G0>层!
Goto @HuoDeJP
Break
IF CheckItem 财富神石 1

Large G0 186
ACT Take 财富神石 1

ThrowItem 3 358 342 6 100元宝 10|60
ThrowItem 3 358 342 6 500元宝 5|60
ThrowItem 3 358 342 6 1000元宝 2|60
Mov G0 0
SENDMSG 1 财富阵188层被【%s】释放,盟重358:342出现超级大量元宝,30秒后捡取!
Break
ELSEACT

MESSAGEBOX 需要财富神石1块才能启动劫阵!

[@HuoDeJP]
IF CheckItem 财富神石 1

RANDOM 30
ACT Take 财富神石 1

GAMEGOLD + 2000
SENDMSG 1 财富劫阵被%s触发,获得元宝2000!
Goto @Main
Break
IF CheckItem 财富神石 1

RANDOM 20
ACT Take 财富神石 1

GAMEGOLD + 1000
SENDMSG 1 财富劫阵被%s触发,获得元宝1000!
Goto @Main
Break
ELSEACT

MESSAGEBOX 未触发高阶奖励,劫阵层数继续累积。

这个版本把分层和随机合并,玩家投石既有即时概率,也推全服满层撒宝。正式服把<RANDOM 30、20>改成自己的概率,把GAMEGOLD换成实际元宝命令,把358 342换成盟重安全可捡坐标即可。若只做单人抽奖不撒地面,删掉@QiDong满层ThrowItem,只保留@HuoDeJP随机发奖,NPC就变成了财富抽签机。