传奇单机刷怪NPC脚本配置与塔防式刷怪实现方案

来源: 作者: 点击:
刷怪NPC基础架构

刷怪NPC脚本基于传奇引擎QFunction脚本系统实现。核心功能包含地图进入触发、怪物生成控制、波次计时管理、数量统计四项模块。脚本文件存放于M2Server引擎QFunction.txt与对应地图脚本文件中。

地图进入自动刷怪脚本

[@MAPENTER]
ACT
MOV G_WaveCount 0
MOV G_KillCount 0
MOV G_TotalWave 10
MOV G_MonsterPerWave 20
CALL @StartWave

[@StartWave]
ACT
INC G_WaveCount
MOV G_CurrentMonsters 0
CALL @SpawnMonsters

[@SpawnMonsters]
ACT
WHILE G_CurrentMonsters 0
BEGIN
MONSTERGEN 沃玛卫士 %G_NeedSpawn 300 300 1
CALC G_SpawnedCount = G_SpawnedCount + G_NeedSpawn
END

WAIT 5000
CALL @UpdateKillCount
CALL @CheckAndSpawn

[@UpdateKillCount]
ACT
CHECKMONCOUNT 沃玛卫士 G_KilledCount

NPC对话触发脚本

[@main]
请选择刷怪模式

[@TowerMode]
ACT
SET G_SpawnMode 1
MOV G_TotalWave 10
MOV G_MonsterPerWave 20
SENDMSG 0 塔防模式已启动 共%G_TotalWave波
CALL @StartWave

[@InfiniteMode]
ACT
SET G_SpawnMode 2
MOV G_TargetCount 50
SENDMSG 0 无穷模式已启动 目标数量%G_TargetCount
CALL @InfiniteSpawn

[@StopSpawn]
ACT
CLEAR G_SpawnMode
KILLMON 弓箭守卫
KILLMON 沃玛卫士
SENDMSG 0 刷怪已停止

[@CheckStatus]
ACT
SENDMSG 0 当前模式:%G_SpawnMode 已刷波次:%G_WaveCount 已击杀:%G_KillCount

怪物死亡计数触发

[@KILLMON]
ACT
IF G_SpawnMode = 1
INC G_KillCount
IF G_SpawnMode = 2
CALL @CheckAndSpawn

地图配置文件设置

MapInfo.txt中添加地图标记:

D6001 刷怪测试地图 NORECONNECT(3) ONKILLMON(@KILLMON) ONMAPENTER(@MAPENTER)

M2Server中开启脚本支持:

[Script]
UseScript=1
ScriptDelay=100
MaxScriptLoop=1000

波次间隔时间调整

波次间隔时间通过WAIT命令控制,单位为毫秒。三十秒间隔设置WAIT 30000,十秒间隔设置WAIT 10000。根据服务器性能调整数值,避免怪物生成过快导致卡顿。

[@NextWaveDelay]
ACT
WAIT 30000
IF G_WaveCount 500
WAIT 10000
CALL @PerformanceCheck

调试与测试方法

开启M2Server调试模式,查看脚本执行日志。使用命令查看当前变量值,确认计数准确。测试时先设置小波次数量,验证流程无误后扩大规模。

;查看变量
CHECKVAR G_WaveCount
;查看怪物数量
CHECKMONCOUNT 沃玛卫士

常见问题处理

怪物不生成检查MONSTERGEN命令参数是否正确,地图是否允许刷怪。计数不准确确认触发器是否绑定正确。脚本卡死检查循环条件是否有退出机制。

波次不切换确认CHECKMONCOUNT返回值是否正确,WAIT时间是否足够。无穷模式数量不补足检查计算逻辑,确认存活数量统计准确。

扩展功能实现

添加奖励发放功能,每波完成后给予玩家金币或道具。

[@WaveComplete]
ACT
GIVE 金币 1000
GIVE 祝福油 1
SENDMSG 0 第%G_WaveWave波完成 奖励已发放

添加难度递增,每波怪物数量或等级提升。

[@StartWave]
ACT
CALC G_MonsterPerWave = 20 + G_WaveCount * 5
CALL @SpawnMonsters

添加多玩家支持,统计队伍总击杀数。

[@KILLMON]
ACT
IF GROUP
GROUPCALL @AddKillCount
ELSE
INC G_KillCount

脚本部署步骤

第一步备份原始脚本文件。第二步将代码粘贴至QFunction.txt对应位置。第三步修改MapInfo.txt添加地图标记。第四步重启M2Server使配置生效。第五步进入游戏测试功能。

部署完成后使用GM命令测试刷怪流程,确认波次切换、数量统计、奖励发放三项功能正常运作。