翎风引擎传奇M2新功能增加了怪物标识功能操作命令,功能代码SetRangeMonAddByte批量标记范围内的怪物,能使用的命令代码总共有4个如M.SetMonAddByte标记当前攻的怪物,M.CheckMonAddByte检测是否有特定标识M.GetMonAddByte获取怪物标识值需攻触发,如果你有更复杂的需求,可以结合变量+计时器+技能触发等实现更强大的功能。

怪物标识系统详解与应用
这个系统允许你为怪物设置临时标识(0-9共10个)每个标识可以存储一个0-255的数值。这些标识不会久存储(服务器重启后消失)但可以用于实现各种动态效果,
如标记特殊怪物(精英怪、BOSS、任务怪)
触发特殊攻击效果(额外伤害、冰冻、中毒、减速)
控制怪物行为(是否触发特殊技能、是否掉落额外物品)
记录怪物状态(被攻击次数、是否被特定技能命中)
核心命令详解:
1. 范围设置怪物标识(批量操作)
SetRangeMonAddByte 地图 X坐标 Y坐标 范围 怪物名称(*代表所有) 标识号(0-9) 值(0-255) 有效时间(秒;0或空为一直有效)示例:
#ACT
;给人物周围10格内所有怪物设置标识0=100
SetRangeMonAddByte self <$X> <$Y> 10 * 0 100
;只给周围5格内的"野猪"设置标识1=50
SetRangeMonAddByte self <$X> <$Y> 5 野猪 1 50
2. 单个怪物设置标识(针对当前攻击目标)
M.SetMonAddByte 标识号(0-9) 值(0-255) 有效时间(秒;0或空为一直有效)示例:
#ACT
;给当前攻击的怪物设置标识2=200
M.SetMonAddByte 2 200
3. 检测怪物标识(需攻击后触发)
M.CheckMonAddByte 标识号(0-9) 比较符号(<,>,=) 检测数值(0-255)示例:
#ACT
;如果当前攻击的怪物标识3 > 50,则触发效果
M.CheckMonAddByte 3 > 50
#SAY
你的攻击触发了怪物的特殊状态!注意:必须攻击怪物后才能检测,不能直接读取。
4. 获取怪物标识值(需攻击后触发)
M.GetMonAddByte 标识号(0-9) 保存变量示例:
#ACT
;获取当前攻击目标的标识0值,存入N1变量
M.GetMonAddByte 0 N1
SendMsg 5 这个怪物的标识0值是:<$STR(N1)>?? 高级应用场景
1. 标记精英怪,触发额外掉落
#ACT
;给当前怪物设置标识1=1(代表精英怪)
M.SetMonAddByte 1 1
[@OnKillMob]
#IF
M.CheckMonAddByte 1 = 1
#ACT
;如果是精英怪,额外掉落物品
Give 金条 1
SendMsg 5 你击杀了精英怪,获得了额外奖励!?? 注意事项
标识是临时的,服务器重启后所有怪物标识会重置。
检测和获取标识必须攻击怪物,不能直接读取未攻击的目标。
标识号0-9,每个标识存储0-255的数值。
可以结合#CALL、#IF等脚本命令实现更复杂的逻辑。
完整示例脚本
[@标记精英怪]
#ACT
;给周围8格内的"白野猪"设置标识1=1(精英标记)
SetRangeMonAddByte self <$X> <$Y> 8 白野猪 1 1
SendMsg 5 已标记附近的精英白野猪!
[@攻击检测]
#IF
M.CheckMonAddByte 1 = 1
#ACT
SendMsg 5 你正在攻击一只精英怪!
;精英怪受到伤害+20%
M.HumanHP - 20 0 0 0 0 1
[@击杀精英怪]
#IF
M.CheckMonAddByte 1 = 1
#ACT
Give 屠龙 1
SendMsg 5 恭喜!你击杀了精英怪,获得了屠龙!总结
SetRangeMonAddByte:批量标记范围内的怪物。
M.SetMonAddByte:标记当前攻击的怪物。
M.CheckMonAddByte:检测怪物是否有特定标识(需攻击触发)。
M.GetMonAddByte:获取怪物标识值(需攻击触发)。
这套系统非常适合做动态怪物行为控制,比如:
任务怪标记(只有带特定标识的怪才算任务目标)
特殊技能触发(比如怪物血量低于30%时狂暴)
副本机制(比如Boss进入二阶段)
如果你有更复杂的需求,可以结合变量、计时器、技能触发等实现更强大的功能!
