攻城破城脚本通常围绕沙巴克或自定义城堡地图制作,核心是让玩家通过NPC报名、传送到攻城地图、参与战斗、击杀关键目标后获得奖励,并由全局变量控制攻城开始与结束状态。下面脚本按通用传奇服务端结构编写,物品名、地图号、变量号需按实际版本替换。
一、NPC部署配置
文件路径:
Mir200EnvirMerChant.txt
破城活动官 3 333 332 5 0 0
脚本文件路径:
Mir200EnvirMarket_Def破城活动官-3.txt
文件名中的地图号必须与MerChant.txt一致。坐标可按版本实际NPC位置调整。
二、主面板脚本
[@main]
SAY
\
\
破城活动\
\
<活动说明/@ActHelp>\
<查看状态/@CheckStatus>\
<报名破城/@JoinSiege>\
<进入破城/@EnterSiege>\
<领取奖励/@GetSiegeReward>\
\
[@exit]
三、活动状态控制
[@CheckStatus]
IF
EQUAL [800] 1
ACT
SENDMSG 7 破城活动正在进行中。
ELSESAY
破城活动未开启,请等待GM或机器人脚本开启。\
[@exit]
[800]用于表示破城活动是否开启。0为未开启,1为进行中。若版本已有相同用途变量,需更换编号。
四、报名破城脚本
[@JoinSiege]
IF
CHECKLEVELEX > 35
EQUAL [801] 0
ACT
SET [801] 1
SENDMSG 7 破城报名成功,请等待活动开启。
CLOSE
ELSESAY
等级不足或已经报名。\
[@exit]
[801]用于记录当前角色是否报名。报名后进入攻城地图前可再次检测,避免未报名玩家误入。
五、进入破城地图
[@EnterSiege]
IF
EQUAL [800] 1
EQUAL [801] 1
ACT
MAPMOVE 50 100 100
CLOSE
ELSESAY
破城活动未开启或未报名。\
[@exit]
地图号50需替换为实际破城地图编号。若版本使用城堡地图,也可改为对应城堡入口坐标。
六、击杀破城目标奖励
文件路径:
Mir200EnvirMapQuest_defQFunction-0.txt
[@KillMonster]
IF
EQUAL [800] 1
ISMASTER
CHECKMONMAP 50
ACT
SENDMSG 20 恭喜<$USERNAME>在破城活动中击杀破城统领!
GIVE 破城勋章 1
GIVE 元宝 50
RESET [800] 0
RESET [801] 0
SENDMSG 20 破城活动已结束,请返回土城领取奖励。
破城统领需替换为实际怪物名称。若版本支持行会判断,可改为检测行会成员击杀后给行会发放奖励。
七、破城奖励领取
[@GetSiegeReward]
IF
CHECKITEM 破城勋章 1
ACT
TAKE 破城勋章 1
GIVE 经验 200000
GIVE 金币 500000
SENDMSG 7 破城奖励已发放。
CLOSE
ELSESAY
未获得破城奖励物品。\
[@exit]
奖励物品也可改为火龙碎片、城主令牌、特殊材料等,名称必须与Stditem.db一致。
八、活动说明
[@ActHelp]
SAY
破城活动说明:\
\
活动开启后方可报名并进入破城地图。\
报名后等待GM或机器人脚本开启活动。\
进入破城地图后击杀破城统领可获得奖励。\
破城活动结束后统一发放奖励。\
地图编号、怪物名称、奖励物品以版本数据库为准。\
\
[@exit]
九、机器人脚本开启破城
文件路径:
Mir200EnvirRobot_defRobotManage.txt
0 20:00 @SiegeStart
文件路径:
Mir200EnvirRobot_defRobot.txt
[@SiegeStart]
IF
ACT
SET [800] 1
SENDMSG 20 破城活动已开启,请报名玩家进入破城地图参战。
[@SiegeEnd]
IF
ACT
RESET [800] 0
SENDMSG 20 破城活动已结束。
若版本支持定时结束,可在开启后设置延迟执行@SiegeEnd。
十、ESP插件强制开启攻城
若服务端使用ESP插件,可使用ESPLaunchCastlBattle命令强制开启攻城战。
示例:
ESPLaunchCastlBattle 沙巴克 30
该命令第一个参数为城堡名称,第二个参数为提前结束时长,单位为分钟。
开启后可在QFunction-0.txt中通过@BeginCastle事件触发全服提示:
[@BeginCastle]
ACT
SENDMSG 0 【沙巴克】攻城战已经开始,请各位勇士准备迎战!
城堡名称必须与游戏内攻城地图名称完全一致,否则无法触发。
十一、部署步骤
在MerChant.txt中添加破城活动官NPC。
在Market_Def下创建对应脚本文件。
确认Stditem.db中存在破城勋章、奖励物品。
确认怪物数据库中存在破城统领或对应怪物。
确认地图编号与版本实际破城地图一致。
在QFunction-0.txt中添加击杀检测。
在RobotManage.txt和Robot.txt中添加定时开启脚本。
重载NPC和脚本后测试报名、进入、击杀、奖励、结束流程。
十二、注意事项
物品名称必须与Stditem.db一致,否则CHECKITEM、TAKE、GIVE无法生效。
地图编号需替换为版本实际编号,不同版本破城地图号可能不同。
变量[800]、[801]需提前查询冲突,避免与其他活动共用。
ESPLaunchCastlBattle为ESP插件专属命令,非ESP插件版本不可直接使用。
若使用常规攻城系统,应优先通过M2攻城配置、城堡文件、攻城时间设置完成基础框架,再用脚本补充报名、传送、奖励和状态提示。
方便传奇玩家攻城制作破城脚本:NPC传送报名奖励状态控制完整示例
来源:
作者:
点击:

