传奇灌篮高手草原五班活动明文脚本配置教程含NPC进入条件五班分层刷怪领奖与机器人定

来源: 作者: 点击:
草原五班活动按明文NPC来做,核心是把“进入资格、分班层数、刷怪坐标、击杀计数、班次奖励、定时开启”六件事写进服务端文本。下面按Hero类写法给通版,GOM、Legend、Blue只改条件命令和变量名即可直接用。

一、活动地图与怪物准备

先确定草原活动地图,假设地图名为Caoyuan,地图号用1000,安全聚拢点设在1000 50 50。五班怪物在MonDB里建五组,名称按一班到五班区分:

一班小兵 草原一班卒
二班小兵 草原二班卒
三班小兵 草原三班卫
四班小兵 草原四班将
五班BOSS 草原五班教头

怪物名称必须和MonDB的Name完全一致,带空格括号都一致。若走Mongen固定刷怪,Mir200\Envir\MonGen.txt加:

1000 50 50 草原一班卒 5 10 10 0 249
1000 80 80 草原二班卒 5 10 10 0 249
1000 120 120 草原三班卫 5 8 10 0 249
1000 160 160 草原四班将 5 6 10 0 249
1000 200 200 草原五班教头 0 1 30 0 249

格式按“地图 X Y 怪物名 范围 数量 间隔分钟 集中机率 颜色”理解,间隔10表示死后10分钟重刷,BOSS写30分钟更稳。 若只做活动期间临时刷,不写MonGen,改由NPC或机器人用MonGen/MonGenEx命令刷。

二、NPC文件与对话入口

NPC放Mir200\Envir\Market_Def,文件名为草原五班使者-1000.txt,对应在MerChant.txt加一行:

草原五班使者 1000 45 45 1 0 0 0 5

字段顺序按“名称 地图 X Y 方向 所属城堡 自动移动 刷新间隔”理解,不同引擎MerChant列数会有差异,按本服示例补齐。 脚本主体写:

[@main]
\ \
草原五班活动\
投入五班令可开启对应班次,击杀全班怪物找我领奖\
当前已开班:一班<G1> 二班<G2> 三班<G3> 四班<G4> 五班<$G5>\
\ \
开一班 @Open1 \
开二班 @Open2 \
开三班 @Open3 \
开四班 @Open4 \
开五班 @Open5 \
班次领奖 @GetPrize \
活动规则 @Rule \

<G1>到<G5>是全局班次状态,Hero用G1-G5裸变量输出,其他引擎换成自己的全局变量显示方式。若对话不支持直接输出,就在@main先用SendMsg弹当前状态,菜单只保留开班和领奖。

三、分班开启与刷怪

每班用独立全局变量标记是否已开,避免重复刷。以一班为例:

[@Open1]
IF CheckItem 五班令 1

Equal G1 0
ACT Take 五班令 1

Set G1 1
MonGen 草原一班卒 1000 50 50 0 10 0 0 0 0
SendMsg 1 草原一班已开启,坐标1000 50 50,击杀全部一班卒后回来领奖!
Goto @main
ELSEACT

IF Equal G1 1

ACT SendMsg 1 一班已经开启,无需重复开!

ELSEACT

SendMsg 1 需要五班令1个才能开启对应班次!

二班到五班复制同样结构,把G1改G2-G5,怪物名改二班到五班,坐标按地图分散。MonGen参数按本引擎调整;Hero可用MonGenEx做范围和颜色,GOM常用MONGENEX,Legend按自身刷怪命令写。 若希望点NPC一次性开全部五班,写[@OpenAll]顺序刷五组怪并置G1-G5为1。

四、击杀计数与全班完成

明文做法用个人变量记每班击杀数,怪物死亡在QFunction或MapQuest触发。假设一班要求击杀10个草原一班卒,用个人D变量D1记一班,D2记二班,以此类推。QFunction.txt加:

[@KillMon]
IF Equal G1 1

CheckKillMonName 草原一班卒
ACT Inc D1 1

IF Equal D1 10

ACT Set G1 2

SendMsg 1 你已完成草原一班全部击杀,可找使者领一班奖!
ELSEACT

IF Equal G2 1

CheckKillMonName 草原二班卒
ACT Inc D2 1

IF Equal D2 10

ACT Set G2 2

SendMsg 1 二班完成,可领奖!
IF Equal G3 1

CheckKillMonName 草原三班卫
ACT Inc D3 1

IF Equal D3 8

ACT Set G3 2

SendMsg 1 三班完成,可领奖!
IF Equal G4 1

CheckKillMonName 草原四班将
ACT Inc D4 1

IF Equal D4 6

ACT Set G4 2

SendMsg 1 四班完成,可领奖!
IF Equal G5 1

CheckKillMonName 草原五班教头
ACT Inc D5 1

IF Equal D5 1

ACT Set G5 2

SendMsg 1 五班BOSS完成,可领终极大奖!

G1等全局变量含义改成0未开、1进行中、2已完成;领奖NPC只判断等于2才发东西。若引擎不支持[@KillMon]统一死亡标签,按MonDeath或OnKillMonster标签改;个人变量不用D而用H/U时,登录段先声明。

五、班次领奖脚本

回到NPC领奖分支,按班发不同奖励:

[@GetPrize]
IF Equal G1 2

ACT Give 一班勋章 1

GameGold + 500
Set G1 3
SendMsg 1 领取草原一班奖励:一班勋章1个、元宝500!
Goto @main
ELSEACT

IF Equal G2 2

ACT Give 二班勋章 1

GameGold + 1000
Set G2 3
SendMsg 1 领取草原二班奖励:二班勋章1个、元宝1000!
Goto @main
ELSEACT

IF Equal G3 2

ACT Give 三班勋章 1

GameGold + 2000
Set G3 3
SendMsg 1 领取草原三班奖励:三班勋章1个、元宝2000!
Goto @main
ELSEACT

IF Equal G4 2

ACT Give 四班勋章 1

GameGold + 4000
Set G4 3
SendMsg 1 领取草原四班奖励:四班勋章1个、元宝4000!
Goto @main
ELSEACT

IF Equal G5 2

ACT Give 五班教头令 1

Give 终极宝箱 1
GameGold + 10000
Set G5 3
SendMsg 1 领取草原五班大奖:教头令1个、终极宝箱1个、元宝10000!
Goto @main
ELSEACT

SendMsg 1 当前没有已完成的班次,先开对应班并击杀全班怪物!

发元宝命令按本服改,GameGold、GAMEGOLD、YUBI、Point都看M2经济设置;发物品用Give/GAIVE/GIVE统一按DB名称。勋章、宝箱、教头令先在StdItems.DB建好,否则发出来是未知物品。

六、规则菜单与防重复

[@Rule]
IF

ACT

SendMsg 1 规则:持五班令找使者开对应班;每班刷怪后击杀达标自动标记完成;回NPC领奖后该班置3,不可重复领;五班全开建议按一至五顺序打。
Close

防重复靠两个状态:全局G1-G5控制开班与完成,领奖后改成3彻底锁住。若要做每日重置,登录段或机器人零点把G1-G5写0、个人D1-D5写0;个人变量用H并落盘可跨重启保留,用D临时变量重启会清,按活动周期选。

七、机器人定时整点开班

不想手动点NPC,可用Robot自动开。AutoRunRobot.txt加:

AutoRun NPC MIN 30 @AutoWuBan

每30分钟检测一次。RobotManage.txt写:

[@AutoWuBan]
IF Equal G1 0

ACT Set G1 1

MonGen 草原一班卒 1000 50 50 0 10 0 0 0 0
SendMsg 0 系统自动开启草原一班,30分钟后自动开二班!
IF Equal G1 1

Equal G2 0
ACT Set G2 1

MonGen 草原二班卒 1000 80 80 0 10 0 0 0 0
SendMsg 0 草原二班自动开启!
IF Equal G2 1

Equal G3 0
ACT Set G3 1

MonGen 草原三班卫 1000 120 120 0 8 0 0 0 0
SendMsg 0 草原三班自动开启!
IF Equal G3 1

Equal G4 0
ACT Set G4 1

MonGen 草原四班将 1000 160 160 0 6 0 0 0 0
SendMsg 0 草原四班自动开启!
IF Equal G4 1

Equal G5 0
ACT Set G5 1

MonGen 草原五班教头 1000 200 200 0 1 0 0 0 0
SendMsg 0 草原五班BOSS自动开启,击杀后找使者领终极大奖!

机器人命令名各引擎不同,Hero用Robot_def/AutoRunRobot+RobotManage,GOM用Robot_def同类文件,Legend按自身Robot目录改;变量Equal/Small/Large按引擎替换。

八、GOM/GEE改写要点

GOM不用Set G1裸写,用MOV G1 1、EQUAL G1 0、LARGE/SMALL比较。对话输出写<$G1>。刷怪用MONGENEX或MonGen,死亡触发在QFunction用@MonKill或引擎死亡标签,个人计数用H变量或U变量。领奖段把GameGold换成本服元宝命令,Give保持不变。机器人AutoRun格式若要求#AutoRun NPC RUNONDAY时:分 @标签,就改成整点触发而不是每30分钟MIN。

九、Legend改写要点

Legend标签用[@MAIN]大写,条件用CHECKVAR GLOBAL 一班 0这类全局变量命令,不用G1裸变量。刷怪用MonGen或版本专用刷怪函数;死亡计数在OnKillMonster或MapQuest写CheckMonName。领奖用GIVE、GAMEGOLD,变量声明放登录或功能脚本头部。MerChant.txt格式与Hero接近,但脚本段对大小写和括号敏感,复制后逐行核对。

十、Blue改写要点

Blue可用Market脚本做NPC,全局班次放全局变量文件或数据库字段,避免只用临时变量。机器人走Blue定时模块,刷怪用MonGenEx;死亡触发在QFunction对应MonDie标签。个人计数用H变量并在登录初始化,防止新号进活动地图不计数。Blue对路径和变量作用域严格,NPC改完重读脚本,机器人改完重读Robot。

十一、物品与数据库配套

五班令:活动材料,可由草原小怪低概率掉,也可商城兑换,名称必须和NPC CheckItem一致。
一班勋章、二班勋章、三班勋章、四班勋章、五班教头令:头饰或任务物,按Stdmode填,奖励宝箱单独建掉落表。
终极宝箱:开装、元宝、材料均可,爆率写进物品掉落配置,不直接在五班脚本硬发过多防通胀。

十二、排错顺序

1. NPC不显示:查MerChant.txt是否加行,Market_Def文件名是否“草原五班使者-1000.txt”,1000地图必须已加载。
2. 点开班没怪:查MonGen命令参数,查地图号1000是否和NPC同图,查怪物名和MonDB一致;Mongen文本改完重启M2,NPC MonGen改完重读脚本。
3. 杀怪不计数:查死亡标签名是否本引擎,查CheckKillMonName/CheckMonName名称,查G1是否先置1再进班;个人D变量未在登录声明会不记录。
4. 领奖没反应:查G1等是否等于2,若击杀脚本置2但领奖脚本判断条件写错变量就不会发;查Give物品名是否在DB存在;查元宝命令是否本服有效。
5. 重复领奖:领奖后没把G1改3,或只改全局没拦第二次;菜单直接判断等于2才发,发完立即置3。
6. 机器人不自动开:查AutoRunRobot格式、RobotManage标签名、M2机器人总开关;用M2日志看是否加载Robot文件。
7. 重启丢班次:G变量若仅内存、未落盘会清;重要开班状态用QuestDiary变量文件SaveVar/LoadVar,个人进度用H持久变量。
8. 五班同开卡图:1000地图同时几百怪会卡,按分班顺序开,每班数量按地图面积缩减;BOSS单独低点范围。

十三、最小可运行明文版

Market_Def\草原五班使者-1000.txt:

[@main]
\ \
草原五班\
五班令开对应班,杀完全班找我领奖\
\ \
开一班 @Open1 \
开二班 @Open2 \
开三班 @Open3 \
开四班 @Open4 \
开五班 @Open5 \
领奖 @GetPrize \

[@Open1]
IF CheckItem 五班令 1

Equal G1 0
ACT Take 五班令 1

Set G1 1
MonGen 草原一班卒 1000 50 50 0 10 0 0 0 0
SendMsg 1 一班开启!
Goto @main
ELSEACT

SendMsg 1 需要五班令且一班未开!

[@Open2]
IF CheckItem 五班令 1

Equal G2 0
ACT Take 五班令 1

Set G2 1
MonGen 草原二班卒 1000 80 80 0 10 0 0 0 0
SendMsg 1 二班开启!
Goto @main
ELSEACT

SendMsg 1 需要五班令且二班未开!

[@Open3]
IF CheckItem 五班令 1

Equal G3 0
ACT Take 五班令 1

Set G3 1
MonGen 草原三班卫 1000 120 120 0 8 0 0 0 0
SendMsg 1 三班开启!
Goto @main
ELSEACT

SendMsg 1 需要五班令且三班未开!

[@Open4]
IF CheckItem 五班令 1

Equal G4 0
ACT Take 五班令 1

Set G4 1
MonGen 草原四班将 1000 160 160 0 6 0 0 0 0
SendMsg 1 四班开启!
Goto @main
ELSEACT

SendMsg 1 需要五班令且四班未开!

[@Open5]
IF CheckItem 五班令 1

Equal G5 0
ACT Take 五班令 1

Set G5 1
MonGen 草原五班教头 1000 200 200 0 1 0 0 0 0
SendMsg 1 五班BOSS开启!
Goto @main
ELSEACT

SendMsg 1 需要五班令且五班未开!

[@GetPrize]
IF Equal G1 2

ACT Give 一班勋章 1

GameGold + 500
Set G1 3
SendMsg 1 领一班奖!
Goto @main
IF Equal G2 2

ACT Give 二班勋章 1

GameGold + 1000
Set G2 3
SendMsg 1 领二班奖!
Goto @main
IF Equal G3 2

ACT Give 三班勋章 1

GameGold + 2000
Set G3 3
SendMsg 1 领三班奖!
Goto @main
IF Equal G4 2

ACT Give 四班勋章 1

GameGold + 4000
Set G4 3
SendMsg 1 领四班奖!
Goto @main
IF Equal G5 2

ACT Give 五班教头令 1

Give 终极宝箱 1
GameGold + 10000
Set G5 3
SendMsg 1 领五班大奖!
Goto @main
ELSEACT

SendMsg 1 没有已完成班次,先开对应班并杀完全班!

QFunction死亡计数按上面KillMon示例接上,机器人按AutoWuBan示例接上。改地图号、怪物名、数量、元宝数、勋章名后重读NPC和机器人,进1000地图实测一班到五班依次开、击杀计数、领奖锁定即可。