传奇NPC的“可输入信息对话框”,核心是通过脚本命令触发输入界面、获取玩家输入内容并执行后续逻辑,行会申请时输入名称就依赖这一机制。这类脚本适配主流GEE、GOM引擎,核心依赖输入触发命令与变量存储,以下是可直接复用的完整方案。
一、新手必懂:输入对话框的核心原理
1.不是所有NPC都能输信息:依赖专属命令
普通NPC对话仅支持选项点击,而可输入信息的NPC需调用脚本的“输入触发命令”。不同引擎命令略有差异,GEE与GOM引擎通用核心命令为#INPUTSTR,该命令可指定输入框提示文字、输入长度限制,玩家输入后内容会自动存入系统变量供后续调用。
2.核心逻辑:输入-验证-执行的闭环
行会申请场景的完整逻辑链为:玩家与NPC对话→NPC弹出输入框(提示“请输入行会名称”)→玩家输入内容→脚本获取输入值→验证名称合法性(是否重复、是否含特殊字符)→验证通过创建行会/失败提示原因。整个过程的关键是“输入内容的获取与校验”。
3.必备基础:3个核心脚本命令
无论哪种场景,设置输入对话框都离不开以下3个命令,新手需牢记其作用与格式:
命令
功能说明
格式示例
#INPUTSTR
触发输入对话框,定义提示文字与长度限制
#INPUTSTR请输入行会名称(2-6字)62@CheckGuildName
$INPUTMSG
系统变量,存储玩家输入的内容(仅输入后有效)
CheckGuildExist$INPUTMSG(检查输入的行会名是否存在)
#GOTO
跳转至指定标签,执行输入后的验证逻辑
#GOTO@CheckGuildName(输入完成后跳至验证环节)
注:#INPUTSTR后参数依次为“提示文字”“最大长度”“最小长度”“跳转标签”,确保输入内容符合游戏规则。
二、实战:行会申请NPC完整脚本(GEE/GOM通用)
1.脚本存放位置
将脚本复制到“Mir200\Envir\QuestDiary\QFunction-0.txt”文件中,该文件是传奇脚本的公共触发库,支持NPC对话调用。若需专属NPC,可在“Mir200\Envir\Npc.txt”中创建新NPC,如“行会管理员33253251@Main”(3为土城地图ID,325325为坐标)。
2.全功能脚本代码(含注释)
//行会申请NPC脚本-支持输入名称验证
[@Main]//NPC对话入口标签,与Npc.txt中配置的@Main关联
#SAY
欢迎来到行会管理中心,我可帮你创建专属行会!\
创建行会需满足:等级≥35级,持有10万金币,行会名称未被占用\
<立即申请创建行会>[@ApplyGuild]<返回>[@Exit]
//申请创建触发标签
[@ApplyGuild]
#IF
//条件1:判断玩家等级是否≥35级
CheckLevel35
//条件2:判断玩家金币是否≥10万
CheckGold100000
#THEN
//两个条件都满足,触发输入对话框
#ACT
#INPUTSTR请输入行会名称(2-6字,不含特殊字符)62@CheckGuildName
#ELSE
//不满足条件提示原因
#MESSAGE创建条件不足!需等级≥35级且持有10万金币
#GOTO@Main
#END
//行会名称验证标签(输入后跳转至此)
[@CheckGuildName]
#IF
//条件1:检查输入的行会名称是否已存在
CheckGuildExist$INPUTMSG
#THEN
#MESSAGE该行会名称已被占用,请重新输入
#GOTO@ApplyGuild//跳转回申请环节,重新输入
#END
#IF
//条件2:检查输入内容是否含特殊字符(过滤违规名称)
CheckString$INPUTMSG!@#¥%……&*()
#THEN
#MESSAGE行会名称含违规字符,请使用中文或数字
#GOTO@ApplyGuild
#END
//所有验证通过,执行创建行会操作
#ACT
//扣除10万金币
TakeGold100000
//创建行会,$INPUTMSG为玩家输入的名称,$USERNAME为创建者
CreateGuild$INPUTMSG$USERNAME
//记录创建日志,便于后台管理
WriteLog"行会创建日志""$USERNAME成功创建行会:$INPUTMSG,等级:$USERLEVEL"
#MESSAGE恭喜!行会【$INPUTMSG】创建成功,快去招募成员吧
#GOTO@Main
//退出对话标签
[@Exit]
#SAY
期待你创建强大行会,如有需要随时来找我!
#ACT
CloseDialog//关闭NPC对话窗口
#END
3.关键细节:确保输入功能正常的3个配置
-变量权限开启:在M2Server中进入“游戏设置-脚本权限”,勾选“允许使用#INPUTSTR命令”和“允许读取$INPUTMSG变量”,否则输入内容无法被脚本获取。
-特殊字符库更新:脚本中CheckString命令后的特殊字符可根据游戏规则补充,如添加“空格”“逗号”等,避免创建违规行会名称。
-日志文件配置:“行会创建日志”会自动生成在“Mir200\Log”文件夹中,便于后续查询行会创建记录,无需手动创建文件。
三、扩展:不同场景的输入对话框适配方法
除了行会申请,输入对话框还可用于账号绑定、自定义任务等场景,核心是修改#INPUTSTR的提示文字与后续验证逻辑,以下是两个常见扩展场景的脚本片段。
1.账号绑定场景:输入手机号验证
//账号绑定输入脚本片段
[@BindPhone]
#SAY
绑定手机号可领取专属礼包,输入11位手机号即可绑定\
<开始绑定>[@InputPhone]
[@InputPhone]
#ACT
//限制输入11位数字,仅允许输入数字(通过后续验证实现)
#INPUTSTR请输入11位手机号1111@CheckPhone
#GOTO@CheckPhone
[@CheckPhone]
#IF
//检查输入内容是否为纯数字(手机号验证核心)
CheckNum$INPUTMSG
#THEN
#ACT
SetVar$USER_PHONE$INPUTMSG//存储手机号到玩家变量
Give绑定礼包1
#MESSAGE手机号【$INPUTMSG】绑定成功,已发放专属礼包
#ELSE
#MESSAGE输入的不是有效手机号,请重新输入
#GOTO@InputPhone
#END
2.自定义任务场景:输入指定暗号
//暗号输入任务脚本片段
[@SecretTask]
#SAY
请输入任务暗号(由队长告知),输入正确即可接取团队任务\
<输入暗号>[@InputSecret]
[@InputSecret]
#ACT
#INPUTSTR请输入6位任务暗号66@CheckSecret
[@CheckSecret]
#IF
//验证输入的暗号是否与预设一致(此处预设暗号为“传奇热血”)
CheckString$INPUTMSG传奇热血
#THEN
#ACT
AcceptTask团队副本任务//接取指定任务
#MESSAGE暗号正确,已为你接取团队副本任务
#GOTO@Main
#ELSE
#MESSAGE暗号错误,请联系队长获取正确暗号
#GOTO@InputSecret
#END
四、配置与调试:新手避坑全流程
1.脚本配置步骤(按顺序操作)
1.复制脚本到QFunction-0.txt,保存文件并关闭。
2.在Npc.txt中添加行会管理员NPC,确保对话脚本关联@Main。
3.打开M2Server,重启“脚本引擎”(无需重启服务器),使脚本生效。
4.登录游戏,前往土城坐标325325找到NPC,测试对话与输入功能。
2.常见问题排查(5分钟解决)
-输入框不弹出:检查M2Server脚本权限是否开启#INPUTSTR命令,或QFunction-0.txt中脚本是否有语法错误(如缺少#END闭合)。
-输入后无反应:确认脚本中跳转标签(如@CheckGuildName)是否存在,或$INPUTMSG变量是否被正确调用(变量名前必须加$)。
-名称验证失效:检查CheckGuildExist命令是否拼写正确,GOM引擎部分版本为CheckGuild$INPUTMSG,需根据引擎调整命令。
3.引擎适配调整(GEE与GOM差异)
两个主流引擎的核心差异在行会检查命令,修改以下部分即可跨引擎使用:
-GEE引擎:行会存在检查用CheckGuildExist$INPUTMSG。
-GOM引擎:行会存在检查用CheckGuild$INPUTMSG,同时需在脚本开头添加#INCLUDEGuildFunc.txt引用行会功能库。
设置可输入信息的NPC脚本,核心是掌握#INPUTSTR命令的使用与$INPUTMSG变量的调用,再结合具体场景设计验证逻辑。若你需要适配特定引擎(如HXM2),或增加行会创建的额外条件(如需要特定道具),都可以补充说明需求,进一步优化脚本。
一、新手必懂:输入对话框的核心原理
1.不是所有NPC都能输信息:依赖专属命令
普通NPC对话仅支持选项点击,而可输入信息的NPC需调用脚本的“输入触发命令”。不同引擎命令略有差异,GEE与GOM引擎通用核心命令为#INPUTSTR,该命令可指定输入框提示文字、输入长度限制,玩家输入后内容会自动存入系统变量供后续调用。
2.核心逻辑:输入-验证-执行的闭环
行会申请场景的完整逻辑链为:玩家与NPC对话→NPC弹出输入框(提示“请输入行会名称”)→玩家输入内容→脚本获取输入值→验证名称合法性(是否重复、是否含特殊字符)→验证通过创建行会/失败提示原因。整个过程的关键是“输入内容的获取与校验”。
3.必备基础:3个核心脚本命令
无论哪种场景,设置输入对话框都离不开以下3个命令,新手需牢记其作用与格式:
命令
功能说明
格式示例
#INPUTSTR
触发输入对话框,定义提示文字与长度限制
#INPUTSTR请输入行会名称(2-6字)62@CheckGuildName
$INPUTMSG
系统变量,存储玩家输入的内容(仅输入后有效)
CheckGuildExist$INPUTMSG(检查输入的行会名是否存在)
#GOTO
跳转至指定标签,执行输入后的验证逻辑
#GOTO@CheckGuildName(输入完成后跳至验证环节)
注:#INPUTSTR后参数依次为“提示文字”“最大长度”“最小长度”“跳转标签”,确保输入内容符合游戏规则。
二、实战:行会申请NPC完整脚本(GEE/GOM通用)
1.脚本存放位置
将脚本复制到“Mir200\Envir\QuestDiary\QFunction-0.txt”文件中,该文件是传奇脚本的公共触发库,支持NPC对话调用。若需专属NPC,可在“Mir200\Envir\Npc.txt”中创建新NPC,如“行会管理员33253251@Main”(3为土城地图ID,325325为坐标)。
2.全功能脚本代码(含注释)
//行会申请NPC脚本-支持输入名称验证
[@Main]//NPC对话入口标签,与Npc.txt中配置的@Main关联
#SAY
欢迎来到行会管理中心,我可帮你创建专属行会!\
创建行会需满足:等级≥35级,持有10万金币,行会名称未被占用\
<立即申请创建行会>[@ApplyGuild]<返回>[@Exit]
//申请创建触发标签
[@ApplyGuild]
#IF
//条件1:判断玩家等级是否≥35级
CheckLevel35
//条件2:判断玩家金币是否≥10万
CheckGold100000
#THEN
//两个条件都满足,触发输入对话框
#ACT
#INPUTSTR请输入行会名称(2-6字,不含特殊字符)62@CheckGuildName
#ELSE
//不满足条件提示原因
#MESSAGE创建条件不足!需等级≥35级且持有10万金币
#GOTO@Main
#END
//行会名称验证标签(输入后跳转至此)
[@CheckGuildName]
#IF
//条件1:检查输入的行会名称是否已存在
CheckGuildExist$INPUTMSG
#THEN
#MESSAGE该行会名称已被占用,请重新输入
#GOTO@ApplyGuild//跳转回申请环节,重新输入
#END
#IF
//条件2:检查输入内容是否含特殊字符(过滤违规名称)
CheckString$INPUTMSG!@#¥%……&*()
#THEN
#MESSAGE行会名称含违规字符,请使用中文或数字
#GOTO@ApplyGuild
#END
//所有验证通过,执行创建行会操作
#ACT
//扣除10万金币
TakeGold100000
//创建行会,$INPUTMSG为玩家输入的名称,$USERNAME为创建者
CreateGuild$INPUTMSG$USERNAME
//记录创建日志,便于后台管理
WriteLog"行会创建日志""$USERNAME成功创建行会:$INPUTMSG,等级:$USERLEVEL"
#MESSAGE恭喜!行会【$INPUTMSG】创建成功,快去招募成员吧
#GOTO@Main
//退出对话标签
[@Exit]
#SAY
期待你创建强大行会,如有需要随时来找我!
#ACT
CloseDialog//关闭NPC对话窗口
#END
3.关键细节:确保输入功能正常的3个配置
-变量权限开启:在M2Server中进入“游戏设置-脚本权限”,勾选“允许使用#INPUTSTR命令”和“允许读取$INPUTMSG变量”,否则输入内容无法被脚本获取。
-特殊字符库更新:脚本中CheckString命令后的特殊字符可根据游戏规则补充,如添加“空格”“逗号”等,避免创建违规行会名称。
-日志文件配置:“行会创建日志”会自动生成在“Mir200\Log”文件夹中,便于后续查询行会创建记录,无需手动创建文件。
三、扩展:不同场景的输入对话框适配方法
除了行会申请,输入对话框还可用于账号绑定、自定义任务等场景,核心是修改#INPUTSTR的提示文字与后续验证逻辑,以下是两个常见扩展场景的脚本片段。
1.账号绑定场景:输入手机号验证
//账号绑定输入脚本片段
[@BindPhone]
#SAY
绑定手机号可领取专属礼包,输入11位手机号即可绑定\
<开始绑定>[@InputPhone]
[@InputPhone]
#ACT
//限制输入11位数字,仅允许输入数字(通过后续验证实现)
#INPUTSTR请输入11位手机号1111@CheckPhone
#GOTO@CheckPhone
[@CheckPhone]
#IF
//检查输入内容是否为纯数字(手机号验证核心)
CheckNum$INPUTMSG
#THEN
#ACT
SetVar$USER_PHONE$INPUTMSG//存储手机号到玩家变量
Give绑定礼包1
#MESSAGE手机号【$INPUTMSG】绑定成功,已发放专属礼包
#ELSE
#MESSAGE输入的不是有效手机号,请重新输入
#GOTO@InputPhone
#END
2.自定义任务场景:输入指定暗号
//暗号输入任务脚本片段
[@SecretTask]
#SAY
请输入任务暗号(由队长告知),输入正确即可接取团队任务\
<输入暗号>[@InputSecret]
[@InputSecret]
#ACT
#INPUTSTR请输入6位任务暗号66@CheckSecret
[@CheckSecret]
#IF
//验证输入的暗号是否与预设一致(此处预设暗号为“传奇热血”)
CheckString$INPUTMSG传奇热血
#THEN
#ACT
AcceptTask团队副本任务//接取指定任务
#MESSAGE暗号正确,已为你接取团队副本任务
#GOTO@Main
#ELSE
#MESSAGE暗号错误,请联系队长获取正确暗号
#GOTO@InputSecret
#END
四、配置与调试:新手避坑全流程
1.脚本配置步骤(按顺序操作)
1.复制脚本到QFunction-0.txt,保存文件并关闭。
2.在Npc.txt中添加行会管理员NPC,确保对话脚本关联@Main。
3.打开M2Server,重启“脚本引擎”(无需重启服务器),使脚本生效。
4.登录游戏,前往土城坐标325325找到NPC,测试对话与输入功能。
2.常见问题排查(5分钟解决)
-输入框不弹出:检查M2Server脚本权限是否开启#INPUTSTR命令,或QFunction-0.txt中脚本是否有语法错误(如缺少#END闭合)。
-输入后无反应:确认脚本中跳转标签(如@CheckGuildName)是否存在,或$INPUTMSG变量是否被正确调用(变量名前必须加$)。
-名称验证失效:检查CheckGuildExist命令是否拼写正确,GOM引擎部分版本为CheckGuild$INPUTMSG,需根据引擎调整命令。
3.引擎适配调整(GEE与GOM差异)
两个主流引擎的核心差异在行会检查命令,修改以下部分即可跨引擎使用:
-GEE引擎:行会存在检查用CheckGuildExist$INPUTMSG。
-GOM引擎:行会存在检查用CheckGuild$INPUTMSG,同时需在脚本开头添加#INCLUDEGuildFunc.txt引用行会功能库。
设置可输入信息的NPC脚本,核心是掌握#INPUTSTR命令的使用与$INPUTMSG变量的调用,再结合具体场景设计验证逻辑。若你需要适配特定引擎(如HXM2),或增加行会创建的额外条件(如需要特定道具),都可以补充说明需求,进一步优化脚本。

