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

