3K引擎里禁止玩家创建带空格的名字,不能只靠一个开关完成。空格名字通常有三种来源:普通空格、全角空格、不可见Unicode字符。要彻底拦住,需要从登录器输入、M2命名规则、脚本二次校验三层同时处理。
第一层:登录器过滤
空格名字大多从登录器创建角色界面输入。登录器配置里如果有名字过滤或非法字符设置,应把空格、全角空格、特殊不可见字符加入黑名单。登录器端拦截最直接,玩家输入后直接提示名字不合法,不会进入服务端校验。
如果登录器没有明确过滤选项,可以在登录器名字规则里限制只允许中文、字母、数字,禁止空格和特殊符号。这样玩家即使复制空白字符粘贴进去,也会被登录器规则挡住。
第二层:M2命名规则
M2管理窗口里通常有角色命名规则或名字过滤设置。这里可以限制名字长度、禁止特殊字符、禁止空格、禁止不可见字符。3K引擎版本不同,菜单位置可能略有差异,常见在角色设置、系统设置、安全设置或命名规则相关页面。
设置时要注意:
名字长度要限制,例如最少2个字符,最多10个字符,防止纯空格或单字符名字。
禁止名字包含空格,包括半角空格和全角空格。
禁止名字包含特殊符号,例如@、#、$、%、&、*等。
禁止名字包含不可见字符,避免玩家用零宽空格绕过过滤。
禁止名字包含敏感词、违规词、仿官方名称。
修改M2命名规则后,需要保存并重启M2或重新加载系统设置,否则不会立即生效。
第三层:脚本二次校验
部分玩家会通过复制特殊字符、使用全角空格、粘贴不可见符号绕过前端过滤。此时需要在创建角色或改名脚本里加一层检测。
可以在QFunction或角色创建相关脚本中加入名字检测逻辑。检测思路是:获取玩家名字,判断名字长度是否合规,判断名字是否包含空格,判断名字是否包含特殊字符,判断名字是否只由不可见字符组成。如果任一条件不通过,就禁止创建或改名,并提示名字不合法。
检测空格时,不能只判断普通空格。全角空格、零宽空格、字节顺序标记等不可见字符也要一起拦截。脚本里可以用字符检测命令判断名字是否包含这些字符,如果包含则直接拒绝。
如果引擎支持正则或字符串包含检测,可以直接判断名字是否包含空格类字符。如果不支持,可以改用长度判断:名字去除空格和不可见字符后,实际可见字符数量必须达到最低要求。
第四层:改名和GM命令也要限制
只限制创建角色不够,玩家还可以通过改名NPC、GM改名命令、角色改名道具修改名字。改名脚本里同样需要加入名字校验,规则与创建角色一致。
GM命令改名也要加限制,避免管理员误操作或外部工具调用时产生空格名字。可以在改名命令执行前检测目标名字是否包含空格、特殊符号或不可见字符。
第五层:清理已有空格名字
如果服务器已经存在空格名字,需要先清理。可以通过数据库或GM命令查询名字中包含空格、全角空格、不可见字符的角色,然后强制改名或禁止登录。清理后重新开启命名规则,防止再次出现。
排查顺序建议这样走:先看登录器是否拦截空格输入;再看M2命名规则是否禁止空格和特殊字符;再检查创建角色、改名NPC、改名道具脚本是否有二次校验;最后确认GM改名命令是否受限。三层都生效后,空格名字基本无法创建。
常见问题包括:只改了登录器,没改M2规则;只改了M2,没拦截改名脚本;只拦截了普通空格,没拦截全角空格和不可见字符;修改后没有重启M2或重新加载配置。这些都会导致空格名字仍然能创建。
3K引擎里,禁止空格名字最稳的做法是登录器前端过滤、M2命名规则限制、脚本二次校验三者同时开启。这样无论玩家从登录器、改名NPC、改名道具还是特殊字符复制进入,都会被统一拦截。
3K传奇引擎禁止建空格名字:登录器过滤、M2命名规则与脚本拦截三层配置
来源:
作者:
点击:

