搜索
查看: 4463|回复: 8

如何禁止玩家自行更改中文ID?

[复制链接]
发表于 2015-3-26 01:09:34 | 显示全部楼层 |阅读模式 来自 中国–广西–南宁
本帖最后由 xuwenqi 于 2015-3-27 14:09 编辑

如题,比赛服里,当雇佣兵或者来队玩家,有些自行更改一些不文明、或带羞辱、攻击性、装13、非主流等中文名,请问如何禁止?貌似6027以上的版本默认支持中文?{:4_131:}
发表于 2015-3-26 08:43:01 | 显示全部楼层 来自 中国–安徽–六安
你在哪打CS啊,带我一个呗
回复

使用道具 举报

发表于 2015-3-26 23:14:19 | 显示全部楼层 来自 中国–广西–桂林
如果发现有非ANSI标准字符则直接踢出,这样实现很简单,只需要判断名字每个字节ASC码值是否都在20和127之间,如果不是就踢出。只需要写在 client_connect(id) 和 client_infochanged(id) 这两个函数里即可。
回复

使用道具 举报

发表于 2015-3-27 03:04:18 | 显示全部楼层 来自 中国–广东–深圳
Rulzy 发表于 2015-3-26 23:14
如果发现有非ANSI标准字符则直接踢出,这样实现很简单,只需要判断名字每个字节ASC码值是否都在20和127之间 ...

public IsAllowName(id)
{
        new name[32];
        get_user_info(id, "name", name, charsmax(name));

        for (new i = 0; i < sizeof(name); i++)
        {
                if (name[i] < 20 || name[i] > 127)
                        return 0;
        }

        return 1;
}

public check_user_name(id)
{
        if (!IsAllowName(id))
                server_cmd("kick #%d ^"你的名字不合法,名字中不能包含中文。^"", get_user_userid(id));
}

public client_connect(id)
        check_user_name(id);

public client_infochanged(id)
        check_user_name(id);
回复

使用道具 举报

发表于 2015-3-27 08:34:05 | 显示全部楼层 来自 中国–重庆–重庆–南岸区
楼上2个 真是好基友!
回复

使用道具 举报

 楼主| 发表于 2015-3-27 14:13:21 | 显示全部楼层 来自 中国–广西–南宁
Rulzy 发表于 2015-3-26 23:14
如果发现有非ANSI标准字符则直接踢出,这样实现很简单,只需要判断名字每个字节ASC码值是否都在20和127之间 ...

那如果用在混战服务器,混战服用了中文ID插件,这样的话会不会也把自定义的中文ID也踢出?因为现在我想只有服务器主人能给玩家设置中文ID,而玩家不能自己设置中文ID,以避免出现些不和谐中文。
回复

使用道具 举报

发表于 2015-3-27 22:56:25 | 显示全部楼层 来自 中国–广西–桂林
xuwenqi 发表于 2015-3-27 14:13
那如果用在混战服务器,混战服用了中文ID插件,这样的话会不会也把自定义的中文ID也踢出?因为现在我想只 ...

那就加个权限判断,有指定权限的才可以使用。
回复

使用道具 举报

发表于 2015-3-30 21:33:31 | 显示全部楼层 来自 中国–安徽–六安
版主好想法
回复

使用道具 举报

发表于 2015-4-12 15:10:46 | 显示全部楼层 来自 中国–广东–中山
................
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表