在传奇服务端中实现行会一键收人功能,需通过NPC对话触发自动审核并加入行会的逻辑。以下为基于HERO引擎的完整脚本写法,支持玩家在聊天栏输入指定命令或点击NPC按钮后,自动将目标玩家拉入当前行会。
一、基础条件
玩家必须为行会会长(即行会创始人)。
目标玩家未加入任何行会。
服务端已开启行会功能且M2配置正确。
二、脚本文件位置
将以下代码添加至QFunction.txt文件中:
;行会一键收人主入口
[@@GuildRecruit]
IF
EQUAL
ACT
SENDMSG5你尚未创建行会,无法使用此功能。
BREAK
IF
NOTEQUAL0
ACT
SENDMSG5只有行会会长才能使用一键收人功能。
BREAK
;获取目标玩家名称(假设通过参数传入)
MOVS0
IF
EQUALS0
ACT
SENDMSG5请输入要邀请的玩家名称。
SENDMSG5使用方法:@Recruit玩家名
BREAK
;检查目标是否存在
CHECKONLINES0
IF
EQUALSONLINECOUNT0
ACT
SENDMSG5玩家不在线或不存在。
BREAK
;检查目标是否已有行会
GETGUILDNAMES0S1
IF
NOTEQUALS1
ACT
SENDMSG5玩家已加入其他行会,无法邀请。
BREAK
;执行强制加入行会
ADDTOGUILDS0
ACT
SENDMSG5已成功将加入你的行会。
SENDMSG7使用一键收人功能将你加入行会,请留意行会公告。
三、触发方式设置
在!AdminCmd.txt或自定义命令文件中绑定快捷指令:
@Recruit@@GuildRecruit
玩家在游戏内输入@Recruit对方名字即可触发收人流程。
四、NPC按钮实现(可选)
若希望通过点击NPC实现,可在NPC脚本中添加:
[@Main]
欢迎使用行会快速招募功能!\
[@InputName]
SAY
请输入你要邀请的玩家名字:\
[@DoRecruit]
IF
EQUAL
ACT
SENDMSG5请输入有效名称。
GOTO@InputName
ACT
PARAM1
CALL[@@GuildRecruit]
五、关键指令说明
GETGUILDNAME角色名变量:获取指定角色所属行会名称,无则返回空。
ADDTOGUILD目标名会长名:强制将目标加入会长所在行会,无需对方同意。
:当前玩家在行会中的权限等级,0为会长,1为长老,2为普通成员。
CHECKONLINE名字:检测玩家是否在线,结果存入系统变量SONLINECOUNT。
六、注意事项
ADDTOGUILD指令仅对未加入行会的玩家生效,服务端会自动跳过已加入者。
所有操作需确保M2中“允许脚本修改行会”选项已开启(默认开启)。
若目标玩家处于战斗状态或特殊地图,仍可被加入行会,但不会弹出提示框。
脚本中PARAM(1)用于接收命令后的第一个参数,需确保命令格式正确。
此方案实现真正意义上的“一键收人”,会长无需等待对方响应,适用于快速组建行会或活动期间批量拉人。脚本逻辑清晰,兼容主流HERO版本,部署后立即生效。
一、基础条件
玩家必须为行会会长(即行会创始人)。
目标玩家未加入任何行会。
服务端已开启行会功能且M2配置正确。
二、脚本文件位置
将以下代码添加至QFunction.txt文件中:
;行会一键收人主入口
[@@GuildRecruit]
IF
EQUAL
ACT
SENDMSG5你尚未创建行会,无法使用此功能。
BREAK
IF
NOTEQUAL0
ACT
SENDMSG5只有行会会长才能使用一键收人功能。
BREAK
;获取目标玩家名称(假设通过参数传入)
MOVS0
IF
EQUALS0
ACT
SENDMSG5请输入要邀请的玩家名称。
SENDMSG5使用方法:@Recruit玩家名
BREAK
;检查目标是否存在
CHECKONLINES0
IF
EQUALSONLINECOUNT0
ACT
SENDMSG5玩家不在线或不存在。
BREAK
;检查目标是否已有行会
GETGUILDNAMES0S1
IF
NOTEQUALS1
ACT
SENDMSG5玩家已加入其他行会,无法邀请。
BREAK
;执行强制加入行会
ADDTOGUILDS0
ACT
SENDMSG5已成功将加入你的行会。
SENDMSG7使用一键收人功能将你加入行会,请留意行会公告。
三、触发方式设置
在!AdminCmd.txt或自定义命令文件中绑定快捷指令:
@Recruit@@GuildRecruit
玩家在游戏内输入@Recruit对方名字即可触发收人流程。
四、NPC按钮实现(可选)
若希望通过点击NPC实现,可在NPC脚本中添加:
[@Main]
欢迎使用行会快速招募功能!\
[@InputName]
SAY
请输入你要邀请的玩家名字:\
[@DoRecruit]
IF
EQUAL
ACT
SENDMSG5请输入有效名称。
GOTO@InputName
ACT
PARAM1
CALL[@@GuildRecruit]
五、关键指令说明
GETGUILDNAME角色名变量:获取指定角色所属行会名称,无则返回空。
ADDTOGUILD目标名会长名:强制将目标加入会长所在行会,无需对方同意。
:当前玩家在行会中的权限等级,0为会长,1为长老,2为普通成员。
CHECKONLINE名字:检测玩家是否在线,结果存入系统变量SONLINECOUNT。
六、注意事项
ADDTOGUILD指令仅对未加入行会的玩家生效,服务端会自动跳过已加入者。
所有操作需确保M2中“允许脚本修改行会”选项已开启(默认开启)。
若目标玩家处于战斗状态或特殊地图,仍可被加入行会,但不会弹出提示框。
脚本中PARAM(1)用于接收命令后的第一个参数,需确保命令格式正确。
此方案实现真正意义上的“一键收人”,会长无需等待对方响应,适用于快速组建行会或活动期间批量拉人。脚本逻辑清晰,兼容主流HERO版本,部署后立即生效。

