传奇 HEROM2 引擎中,如何用脚本触发让勋章召唤出事物?

来源: 作者: 点击:
在 HEROM2 引擎的传奇私人服务器里,想通过佩戴或使用勋章触发召唤功能(比如召唤宠物、NPC 助手或临时队友),关键是利用勋章的物品触发脚本,结合引擎支持的召唤命令。这种功能能给勋章增加特殊属性,让玩家佩戴后获得额外助力。下面就具体说说怎么用脚本实现这一效果。
先明确召唤逻辑:勋章触发的两种方式
勋章召唤功能通常有两种触发场景:一是 “佩戴勋章时自动召唤”(比如戴上 “召唤勋章” 后立即召唤一只宠物);二是 “佩戴状态下手动触发召唤”(比如按特定命令或点击勋章,召唤出 NPC 协助战斗)。两种场景的脚本核心相同,只是触发时机不同。
需要用到的关键命令包括:物品佩戴检测(判断玩家是否戴了目标勋章)、召唤命令(生成宠物或 NPC)、持续时间控制(设置召唤物存在的时长)。HEROM2 引擎对这些命令有专门的支持,按格式编写即可生效。
具体脚本怎么写?分场景实现功能
以 “佩戴‘战神勋章’时自动召唤一只‘神兽’,持续 5 分钟” 和 “佩戴‘法师勋章’时,双击勋章召唤 3 个‘小火精灵’协助战斗” 为例,分别编写脚本:
场景一:佩戴勋章自动召唤宠物
先在勋章的物品触发脚本里添加佩戴检测(通常在 QFunction-0.txt 中):
[@WearItem 战神勋章] ;玩家佩戴战神勋章时触发
#ACT
CheckIfPetExist 神兽 ;检查是否已召唤神兽
#IF
Not PetExist ;如果没有召唤
#ACT
SummonPet 神兽 1 ;召唤 1 只神兽(SummonPet 宠物名称 数量)
SetPetLifeTime 300 ;设置宠物存在时间为 300 秒(5 分钟)
SendMsg 6 战神勋章之力为你召唤了神兽!
#ELSE
SendMsg 6 你已经拥有神兽,无法重复召唤!
若要在宠物消失后自动重新召唤,可加定时检测:
[@WearItem 战神勋章]
#ACT
SetTimer 300 @ReSummon ;每 300 秒触发一次 @ReSummon 标签
[@ReSummon]
#IF
CheckWearItem 战神勋章 ;检查是否仍佩戴勋章
Not PetExist 神兽 ;检查宠物是否已消失
#ACT
SummonPet 神兽 1
SetPetLifeTime 300
SendMsg 6 战神勋章重新召唤了神兽!
#ELSE
CancelTimer @ReSummon ;如果未佩戴勋章,取消定时
场景二:双击佩戴的勋章手动召唤 NPC
在勋章的使用触发脚本里添加双击召唤逻辑:
[@UseItem 法师勋章] ;玩家双击已佩戴的法师勋章时触发
#IF
CheckWearItem 法师勋章 ;确认已佩戴勋章
CheckTimer 精灵冷却 ;检查是否在冷却时间
#ACT
SendMsg 6 技能冷却中,请 1 分钟后再试!
#ELSEACT
SummonNpc 小火精灵 3 ;召唤 3 个小火精灵(SummonNpc NPC 名称 数量)
SetNpcLifeTime 60 ;NPC 存在 60 秒
SetTimer 60 精灵冷却 ;设置 1 分钟冷却(避免频繁召唤)
SendMsg 6 你使用法师勋章召唤了小火精灵!
给召唤出的 NPC 添加战斗属性(可选):
在 NPC 数据库(Npc.txt)中找到 “小火精灵”,设置其攻击模式为 “主动攻击玩家的敌人”(AttackMode=1),攻击力(Power=10-20)等参数,让其能协助战斗。
HEROM2 引擎的关键命令解析
佩戴检测命令:
@WearItemXXX:物品被佩戴时触发(XXX 为勋章名称)
CheckWearItem XXX:判断玩家是否佩戴了 XXX 物品
@TakeOffItemXXX:物品被卸下时触发(可用于取消召唤,比如 [@TakeOffItem 战神勋章] #ACT DismissPet 神兽)
召唤相关命令:
SummonPet 宠物名 数量:召唤玩家可控宠物(需在宠物数据库中存在该名称)
SummonNpc NPC 名 数量:召唤中立或敌对 NPC(需在 NPC 数据库中存在)
SetPetLifeTime 秒数:设置宠物存在时间,超时自动消失
DismissPet 宠物名:主动取消已召唤的宠物
冷却控制命令:
SetTimer 秒数 标签:设置定时触发,避免频繁召唤
CheckTimer 标签名:检查是否处于定时冷却中
CancelTimer 标签名:取消定时
为什么召唤可能失败?避开这些细节问题
名称不匹配:召唤的宠物 / NPC 名称必须和数据库中的完全一致(包括大小写、符号)。比如数据库里是 “小火靈”(繁体),脚本里写 “小火精灵”(简体),就会召唤失败。
引擎权限限制:HEROM2 引擎默认可能限制部分召唤命令的使用,需在 M2 引擎 “选项→功能设置→脚本权限” 中勾选 “允许召唤宠物 / NPC”。
数量和时间参数错误:SummonPet/SummonNpc 的数量不能超过引擎限制(通常单批不超过 5 个),时间参数(秒数)不能为 0 或负数,否则会导致召唤物立即消失。
未处理重复召唤:如果没加 “CheckIfPetExist” 判断,可能导致玩家重复召唤,出现大量宠物 / NPC,影响服务器性能。建议添加数量限制或冷却机制。
脚本放在哪里?确保触发生效
勋章的佩戴和使用触发脚本需放在 QFunction 系列文件(如 QFunction-0.txt),并确保文件被主脚本包含(Main.txt 中有 #INCLUDE QFunction-0.txt)。
召唤的宠物 / NPC 必须在对应的数据库中存在:
宠物信息在 “Mir200\Envir\Pet.txt”
NPC 信息在 “Mir200\Envir\Npc.txt”
修改数据库后,需在 M2 引擎中 “重新加载宠物数据库”“重新加载 NPC 数据库”,否则新添加的宠物 / NPC 无法被召唤。
如何扩展功能?让召唤更有特色
按职业限制召唤:比如只有战士佩戴 “战神勋章” 才能召唤神兽,可在脚本中加职业判断:
#IF
CheckJob 1 ;1 代表战士职业
#ACT
SummonPet 神兽 1
#ELSE
SendMsg 6 只有战士能使用战神勋章召唤神兽!
消耗勋章耐久:每次召唤消耗一定耐久,增加策略性:
[@UseItem 法师勋章]
#ACT
TakeItemDur 法师勋章 10 ;消耗 10 点耐久
;(需在物品数据库中设置勋章的耐久值 Dur=100)
召唤物随勋章等级变化:高级勋章召唤更强的宠物,比如 “青铜勋章” 召唤 “骷髅兵”,“黄金勋章” 召唤 “白虎”:
[@WearItem 黄金勋章]
#ACT
SummonPet 白虎 1 ;比骷髅兵更强的宠物
其实在 HEROM2 引擎中实现勋章召唤功能,核心是用好佩戴 / 使用触发标签和召唤命令,再通过条件判断控制召唤时机和数量。只要确保数据库名称匹配、引擎权限开启,脚本就能稳定运行。如果需要更复杂的效果(比如召唤物跟随玩家移动、释放技能),可以参考引擎的 “宠物 AI 脚本”,给召唤物添加更多行为逻辑。