一句话核心原理:用 INPUT 命令 + 变量接收 即可实现玩家输入框功能。下面通过行会申请实例手把手教学:
🛠️ 完整NPC脚本示例(含中文注释)
(@MAIN) -- 主对话框
; 显示基础提示
'你想创建行会吗?\n输入名称后点击确认'
重点!触发输入框的关键命令 ↓↓↓
<请输入行会名/@InputGuildName> ; 创建可点击的超链接按钮
(@InputGuildName) -- 输入框触发标签
; 核心INPUT语法 ↓↓↓
INPUT '请输入行会名称:' @ConfirmGuildName ; 设置接收变量
(@ConfirmGuildName) -- 接收输入内容的标签
; 检查输入是否为空
IF CHECKSTRING == ""
'行会名不能为空!\<返回/@MAIN>'
BREAK
; 这里添加敏感词过滤(实际脚本需扩展)
IF CHECKSTRING == "非法名称"
'含有禁用词汇!\<返回/@MAIN>'
BREAK
; 存储玩家输入内容(变量名可用中文)
保存行会名 = CHECKSTRING
'你创建的行会名为:<$OUTPUT(保存行会名)> \n\<确认创建/@CreateGuild> | \<取消/@EXIT>'
(@CreateGuild) -- 创建执行部分
; 调用游戏创建行会函数(根据引擎差异调整)
Guild.Create 保存行会名
'行会 <$OUTPUT(保存行会名)> 已成立!'
CLOSE
🔧 四大核心要点详解
输入框触发技巧
标签跳转法:先设置点击入口 <输入文字/@Input>
INPUT命令格式:
INPUT '提示文字' @接收标签名
变量接收与处理
输入内容自动存入 CHECKSTRING 系统变量
可用赋值语句保存:自定义变量 = CHECKSTRING
输入校验流程
graph TB
A[接收输入] --> B{是否为空?}
--是--> C[提示错误]
--否--> D{含敏感词?}
--是--> C
--否--> E[保存并显示]
引擎差异注意表
引擎类型 INPUT命令差异 特殊说明
HGE引擎(主流) 直接支持 变量名区分大小写
GOM引擎 需插件支持 插件需注册DLL
翎风引擎 用 @InputBox 参数顺序不同
💥 新手避坑指南
输入框不弹出?
检查标签名是否拼写错误(如 @InputName 写成 @Inputname)
引擎不支持时尝试安装 IPInput.dll 插件
输入中文乱码?
在脚本开头添加:MESSAGEENCODE UTF8
将文本文件另存为 ANSI编码
如何限制长度?
IF LEN(CHECKSTRING) > 12
'名称超过12字符!\<返回/@MAIN>'
BREAK
⚠ 进阶安全提醒
必做校验 :
! 1. 敏感词过滤(导入屏蔽词库.txt)
! 2. 特殊符号拦截(<>&等易崩溃字符)
! 3. 重复创建检测(查询GuildList.txt)
法律提示:本教程仅适用于学习交流,搭建商业服需获得游戏官方授权。某私人服务器因未做输入校验导致玩家输入恶意代码,造成数千个账号数据泄露!
掌握INPUT命令后,不仅能做行会申请框,还能实现:
✔ 玩家改名系统
✔ 邮件内容输入
✔ 自定义喊话前缀
✔ 装备刻字功能
试试在对话框里加入彩色效果:
INPUT '{color=red}警告:{/color} 输入后不可修改\\ @ConfirmName'
一分钟学会:传奇NPC对话框设置输入框(行会申请同款教程)
来源:
作者:
点击:

