传奇行会一键收人脚本(HeroM2/Sky引擎)

来源: 作者: 点击:
针对HeroM2(Sky)引擎,实现“按一个键直接收人”主要依赖 AddToGuild 命令。该功能通常通过修改游戏命令或NPC对话脚本实现,以下是两种具体的实现方案。

方案一:修改游戏命令(最接近“按一个键”)

此方案通过修改 Command.ini 文件,将某个聊天命令(如 @加入行会)绑定到快捷键,实现一键收人。

1. 服务端修改:找到 MirServer\Mir200\Command.ini 文件,添加或修改以下行:
JoinGuild=加入行会

◦ JoinGuild 是命令标识,加入行会 是玩家在聊天框输入的内容。

2. 脚本触发:在 QFunction-0.txt(功能脚本)中编写触发逻辑:
[@UserCmdJoinGuild]
#IF
ISGUILDMASTER ; 检测是否为掌门
CheckInMapRange 3 330 320 340 330 ; 限制仅在土城安全区附近使用(可选)
#ACT
AddToGuild 你的行会名称 ; 核心命令:将点击者加入指定行会
SendMsg 5 “一键收人成功!”
#ELSESAY
你不是掌门或不在安全区,无法使用该命令。

注意:你的行会名称 必须与游戏内已创建的行会名称完全一致。

3. 客户端设置:在登录器或游戏内设置中,将 @加入行会 命令拖到技能栏快捷键上,即可实现“按一个键”收人。

方案二:NPC对话脚本(更稳定,带条件检测)

如果不想修改命令文件,可以创建一个NPC,玩家点击即可加入行会。
[@main]
欢迎使用行会招募员。\ \
<一键加入行会/@加入>

[@加入]
#IF
HAVEGUILD ; 检测玩家是否已有行会
#ACT
SendMsg 5 “你已经有行会了,请先退出。”
Break
#IF
CheckLevel > 20 ; 限制等级大于20级
#ACT
AddToGuild 天下第一行会 ; 加入行会
GuildNoticeMsg 11 249 “玩家【%s】通过一键招募加入了行会!” ; 行会公告
SendMsg 5 “加入成功!”
#ELSESAY
等级不足20级,无法加入。


核心命令详解

• AddToGuild:HeroM2引擎的收人命令,参数为行会名称。该命令执行后,点击NPC的玩家会自动加入指定行会。

* ISGUILDMASTER:条件检测,判断当前玩家是否为行会掌门(用于方案一,防止普通成员乱收人)。
* HAVEGUILD:条件检测,判断玩家是否已加入行会(用于方案二,避免重复加入)。

常见问题与排查

1. 脚本不生效:
◦ 检查行会名称是否与游戏内完全一致(包括空格、符号)。

* 确认脚本文件编码为 ANSI,而非UTF-8(否则游戏内显示乱码或无法触发)。
* 修改脚本后,在M2控制台点击“重新加载NPC”或“重读QF脚本”生效。

2. 权限不足:
◦ 方案一中,ISGUILDMASTER 条件必须满足,即只有掌门才能触发收人。若想允许长老收人,需改用变量检测职位。

3. 行会不存在:
◦ AddToGuild 命令不会自动创建行会。必须先在游戏中(通过沃玛号角)创建好对应的行会,脚本才能将人加进去。

总结:最快捷的方式是方案一,配合客户端快捷键设置,真正实现“按一个键收人”。若追求稳定和条件控制(如等级限制、公告提示),则推荐使用方案二的NPC脚本。