传奇行会一键收人脚本编写方法详解(HERO引擎适用)

来源: 作者: 点击:
在传奇服务端中实现行会一键收人功能,需通过NPC对话触发自动审核并加入行会的逻辑。以下为基于HERO引擎的完整脚本写法,支持玩家在聊天栏输入指定命令或点击NPC按钮后,自动将目标玩家拉入当前行会。

一、基础条件

玩家必须为行会会长(即行会创始人)。
目标玩家未加入任何行会。
服务端已开启行会功能且M2配置正确。

二、脚本文件位置

将以下代码添加至 QFunction.txt 文件中:

; 行会一键收人主入口
[@@GuildRecruit]
IF
EQUAL
ACT
SENDMSG 5 你尚未创建行会,无法使用此功能。
BREAK

IF
NOTEQUAL 0
ACT
SENDMSG 5 只有行会会长才能使用一键收人功能。
BREAK

; 获取目标玩家名称(假设通过参数传入)
MOV S0
IF
EQUAL S0
ACT
SENDMSG 5 请输入要邀请的玩家名称。
SENDMSG 5 使用方法:@Recruit 玩家名
BREAK

; 检查目标是否存在
CHECKONLINE S0
IF
EQUAL SONLINECOUNT 0
ACT
SENDMSG 5 玩家不在线或不存在。
BREAK

; 检查目标是否已有行会
GETGUILDNAME S0 S1
IF
NOTEQUAL S1
ACT
SENDMSG 5 玩家已加入其他行会,无法邀请。
BREAK

; 执行强制加入行会
ADDTOGUILD S0
ACT
SENDMSG 5 已成功将加入你的行会。
SENDMSG 7 使用一键收人功能将你加入行会,请留意行会公告。

三、触发方式设置

在 !AdminCmd.txt 或自定义命令文件中绑定快捷指令:

@Recruit @@GuildRecruit

玩家在游戏内输入 @Recruit 对方名字 即可触发收人流程。

四、NPC按钮实现(可选)

若希望通过点击NPC实现,可在NPC脚本中添加:

[@Main]
欢迎使用行会快速招募功能! \

[@InputName]
SAY
请输入你要邀请的玩家名字: \

[@DoRecruit]
IF
EQUAL
ACT
SENDMSG 5 请输入有效名称。
GOTO @InputName

ACT
PARAM1
CALL [@@GuildRecruit]

五、关键指令说明

GETGUILDNAME 角色名 变量:获取指定角色所属行会名称,无则返回空。
ADDTOGUILD 目标名 会长名:强制将目标加入会长所在行会,无需对方同意。
:当前玩家在行会中的权限等级,0为会长,1为长老,2为普通成员。
CHECKONLINE 名字:检测玩家是否在线,结果存入系统变量 SONLINECOUNT。

六、注意事项

ADDTOGUILD 指令仅对未加入行会的玩家生效,服务端会自动跳过已加入者。
所有操作需确保M2中“允许脚本修改行会”选项已开启(默认开启)。
若目标玩家处于战斗状态或特殊地图,仍可被加入行会,但不会弹出提示框。
脚本中 PARAM(1) 用于接收命令后的第一个参数,需确保命令格式正确。

此方案实现真正意义上的“一键收人”,会长无需等待对方响应,适用于快速组建行会或活动期间批量拉人。脚本逻辑清晰,兼容主流HERO版本,部署后立即生效。