传奇怪物攻城脚本添加全攻略 核心代码+配置步骤+触发技巧

来源: 作者: 点击:
传奇怪物攻城脚本添加的核心是实现“触发机制-怪物刷新-奖励结算”的完整逻辑,需匹配服务器引擎特性与游戏版本节奏。本文覆盖Gee、GOM等主流引擎,详解定时触发、手动开启、波次刷新等核心功能的添加方法,附适配代码与避坑要点。

一、添加前核心准备:引擎适配与工具清单

怪物攻城脚本的稳定性依赖引擎匹配与前期环境搭建,不同引擎的脚本指令、文件路径差异显著,前期准备直接决定添加成功率。

1. 引擎识别与核心差异

通过服务器核心文件可快速识别引擎类型,核心差异集中在脚本存放路径与刷新指令,具体对应关系如下:

引擎类型

核心文件

脚本存放路径

核心刷新指令

Gee引擎

GeeM2.exe

Mir200/Envir/QuestDiary/

MOBPLACE 怪物名 数量 地图 坐标范围

GOM引擎

GOMM2.exe

Mir200/Envir/Function/

SpawnMonster 地图 坐标X 坐标Y 怪物名 数量

BLUE引擎

BlueM2.exe

Mir200/Envir/Script/

MonCreate 怪物名 数量 地图 X1 Y1 X2 Y2

例如同样刷新10只沃玛教主至比奇城,Gee引擎用“MOBPLACE 沃玛教主 10 比奇城 320 330 350 360”,GOM引擎则需改为“SpawnMonster 比奇城 335 345 沃玛教主 10”,指令错配会导致怪物无法刷新。

2. 必备工具与环境配置

基础工具清单:

- 脚本编辑器:推荐Notepad++,开启“显示所有字符”功能,避免空格或换行符导致脚本解析错误。

- 怪物数据库工具:用于确认怪物名称(如“沃玛教主”而非“沃玛教”),路径为“Mir200/Envir/Monster.txt”。

- 测试账号:需具备GM权限,方便快速触发脚本验证效果,GM权限可通过“@GM”指令激活(部分引擎需在引擎设置中开启)。

环境配置核心步骤:1. 关闭引擎“脚本加密”功能(Gee引擎在“参数设置-脚本安全”中取消勾选);2. 备份对应路径下的默认脚本,避免覆盖原有功能;3. 将游戏客户端设置为窗口模式,便于同步观察怪物刷新效果。

二、核心脚本添加:触发机制与波次刷新实现

怪物攻城脚本的核心是触发机制(定时/手动)与波次刷新逻辑,以下以主流Gee引擎为例,详解完整添加流程,其他引擎可对应替换指令。

1. 定时触发脚本:固定时间自动开启

定时触发适合固定活动(如每周六晚开启),需通过机器人脚本设置时间触发点,搭配攻城主脚本实现怪物刷新与公告提示。

添加步骤:

1. 设置时间触发点:打开“Mir200/Envir/Robot_def/AutoRunRobot.txt”,添加定时指令,示例:
#AutoRun NPC RunOnDay 19:00 @MonsterSiegeStart
该指令表示每周六19:00自动触发“@MonsterSiegeStart”标签对应的脚本。

2. 编写攻城主脚本:在“QuestDiary”目录新建“MonsterSiege.txt”,写入核心逻辑,实现全服公告、场景切换与第一波怪物刷新。

// 怪物攻城定时触发主脚本(Gee引擎)
(@MonsterSiegeStart)
#ACT
// 全服红字公告(5秒内连续发送3次)
SendMsg 0 255 0 0 【怪物攻城】活动已开启!大量BOSS入侵比奇城,击杀可获稀有装备!
Delay 1000
SendMsg 0 255 0 0 【怪物攻城】活动已开启!大量BOSS入侵比奇城,击杀可获稀有装备!
Delay 1000
SendMsg 0 255 0 0 【怪物攻城】活动已开启!大量BOSS入侵比奇城,击杀可获稀有装备!
// 设置全局变量标记攻城状态(1为开启,0为关闭)
MOV G0 1
// 传送所有在线玩家至比奇城安全区
MapMoveAll 比奇城 335 345
// 触发第一波怪物刷新
Goto Wave1

// 第一波怪物刷新(普通小怪)
(@Wave1)
#ACT
SendMsg 5 【攻城波次】第一波怪物已刷新!清理小怪可获大量金币!
// 在比奇城320-350,330-360坐标范围内刷新20只半兽勇士
MOBPLACE 半兽勇士 20 比奇城 320 330 350 360
// 5分钟后触发第二波刷新
SetScTimer 1 300
#ELSEACT
SendMsg 5 攻城活动未开启,无法触发波次刷新!

// 第二波怪物刷新(精英怪)
(@OnTimer1)
#ACT
KillScTimer 1 // 关闭当前定时器
SendMsg 5 【攻城波次】第二波精英怪已刷新!掉落高级技能书!
MOBPLACE 沃玛卫士 15 比奇城 310 320 360 370
SetScTimer 2 300 // 5分钟后触发第三波

// 第三波怪物刷新(BOSS)
(@OnTimer2)
#ACT
KillScTimer 2
SendMsg 0 255 255 0 【攻城警报】终极BOSS沃玛教主已刷新!掉落屠龙级装备!
MOBPLACE 沃玛教主 3 比奇城 330 340 340 350 // 皇宫附近刷新3只BOSS
SetScTimer 3 600 // 10分钟后结束攻城

// 攻城结束脚本
(@OnTimer3)
#ACT
KillScTimer 3
MOV G0 0 // 重置攻城状态
SendMsg 0 0 255 0 【怪物攻城】活动结束!感谢参与,未击杀BOSS已自动清除!
ClearMapMonster 比奇城 // 清除比奇城所有活动怪物

2. 手动触发脚本:GM指令与NPC开启

手动触发适合灵活加开活动,分为GM指令触发与NPC对话触发两种方式,核心是通过命令或交互激活攻城脚本。

GM指令触发添加步骤:

1. 打开“Mir200/Envir/UserCmd.txt”,添加指令映射:
@开启攻城 10
“10”为指令编号,需与脚本标签对应。

2. 在“MonsterSiege.txt”中添加对应标签,直接复用定时脚本的核心逻辑:

// GM手动触发攻城脚本(Gee引擎)
(@usercmd10) // 编号与UserCmd.txt中保持一致
#IF
CheckAdmin 1 // 仅1级GM可触发(0为普通玩家,1为初级GM,10为超级GM)
#ACT
Goto MonsterSiegeStart // 跳转到定时脚本的主逻辑
#ELSE
#SAY
无权限执行该命令,请联系GM开启活动。\
<返回/@main>

NPC对话触发添加步骤:在“QuestDiary”目录新建“SiegeNPC.txt”,编写NPC对话逻辑,玩家点击即可申请开启(需GM确认):

// 怪物攻城NPC脚本(Gee引擎)
(@main)
#SAY
<COLOR=clRed 怪物攻城活动申请><BR>
当前活动状态:<$STR(G0)>(1=开启,0=关闭)<BR>
<申请开启攻城/@ApplyStart> <活动奖励说明/@RewardIntro>

(@ApplyStart)
#IF
Equal G0 0 // 攻城未开启
#ACT
SendMsg 0 255 255 255 【攻城申请】玩家[$USERNAME]已申请开启怪物攻城,GM可通过@开启攻城指令响应!
#ELSE
#SAY
当前攻城活动已开启,请勿重复申请。\
<返回/@main>

(@RewardIntro)
#SAY
<COLOR=clGreen 击杀奖励:><BR>
半兽勇士:金币10万/只<BR>
沃玛卫士:高级技能书<BR>
沃玛教主:屠龙刀、裁决之杖等稀有装备<BR>
<返回/@main>

3. 掉落奖励脚本:击杀反馈与全服播报

奖励脚本需绑定至怪物死亡事件,实现击杀奖励发放与全服播报,提升玩家参与动力,添加步骤需关联怪物数据库。

// 攻城怪物死亡奖励脚本(Gee引擎)
(@SiegeMonsterDie)
#ACT
// 识别怪物类型发放对应奖励
#IF
CheckMonName 半兽勇士
#ACT
GiveGold 100000 // 发放10万金币
SendMsg 5 击杀半兽勇士,获得10万金币奖励!
#ELSEIF
CheckMonName 沃玛卫士
#ACT
RandomItem 高级技能书 1 // 随机发放1本高级技能书
SendMsg 5 击杀沃玛卫士,获得高级技能书1本!
#ELSEIF
CheckMonName 沃玛教主
#ACT
GiveItem 屠龙刀 1 Bind // 发放绑定屠龙刀
SendBroadMsg 255 【神器出世】玩家[$USERNAME]击杀沃玛教主,获得屠龙刀!
#ELSE
#ACT
GiveGold 50000

绑定步骤:打开“Monster.txt”,找到“沃玛教主”等攻城怪物条目,在“死亡脚本”栏填写“@SiegeMonsterDie”,保存后重启引擎即可生效。

三、脚本配置与触发:引擎设置与效果验证

脚本编写完成后需进行引擎配置与效果测试,确保触发稳定、怪物刷新正常,核心是路径配置与权限设置。

1. 脚本路径与引擎加载

- Gee引擎:将“MonsterSiege.txt”“SiegeNPC.txt”放入“QuestDiary”目录,在引擎“脚本管理”中点击“重读脚本”,无需重启引擎。

- GOM引擎:脚本需放入“Function”目录,命名为“QFunction-0.txt”(若已存在则追加内容),在引擎“功能设置-脚本设置”中勾选“自动加载脚本”。

2. 效果验证核心步骤

1. 状态检测:GM登录游戏,输入“@查看变量 G0”,若显示“0”则攻城未开启,符合预期。

2. 触发测试:输入“@开启攻城”,观察是否收到全服公告,比奇城是否刷新怪物。

3. 奖励验证:击杀一只半兽勇士,检查背包金币是否增加10万,确保奖励脚本生效。

4. 结束测试:等待10分钟(或手动输入“@结束攻城”),确认怪物是否清除,变量G0是否重置为0。

四、常见问题解决:脚本失效与刷新异常

1. 脚本无响应:路径与指令问题

表现:触发指令后无公告、无怪物刷新,排查步骤:

- 路径检查:确认脚本文件放在对应引擎的指定目录,如GOM引擎误放“QuestDiary”会导致失效。

- 标签校验:GM指令触发的脚本标签“@usercmd10”需与“UserCmd.txt”中的编号一致,遗漏或错写会导致命令无效。

- 引擎日志:打开引擎“日志管理-脚本日志”,查看是否有“指令不存在”提示,针对性修改指令格式(如GOM引擎将“MOBPLACE”改为“SpawnMonster”)。

2. 怪物刷新异常:坐标与权限问题

表现:怪物集中在某点或无法刷新,解决方法:

- 坐标范围:确保刷新坐标在地图内(如比奇城坐标范围通常为300-380,300-380),超出范围会导致怪物刷新在地图外。

- 怪物名称:与“Monster.txt”中的名称完全一致,如“沃玛教主”不可简写为“沃玛教”,否则无法识别。

- 权限设置:GM指令触发需确保账号权限等级足够,在“Mir200/Envir/AdminList.txt”中确认账号前缀为“1”(初级GM)及以上。

3. 奖励发放异常:脚本绑定问题

表现:击杀怪物无奖励,排查步骤:1. 检查怪物数据库中“死亡脚本”栏是否填写“@SiegeMonsterDie”;2. 脚本中“CheckMonName”后的怪物名称与数据库一致;3. 确认“GiveGold”“GiveItem”等指令格式正确(如GOM引擎为“AddGold”)。

五、脚本优化与扩展:多地图与个性化设置

基础脚本可扩展多地图攻城(如同时入侵比奇城与盟重省),只需在刷新指令中添加多地图坐标;个性化设置方面,可增加攻城积分系统(击杀怪物累计积分兑换道具),核心是通过变量记录积分(如U1为个人积分,G1为全服积分排行)。

// 积分系统扩展(Gee引擎)
(@SiegeMonsterDie)
#ACT
MOV U1 <$STR(U1)+1> // 个人积分+1
MOV G1 <$STR(G1)+1> // 全服总积分+1
#IF
CheckMonName 沃玛教主
#ACT
MOV U1 <$STR(U1)+10> // BOSS积分额外+10
SendMsg 5 击杀沃玛教主,获得11点攻城积分!