如何禁止玩家自行更改中文ID?
本帖最后由 xuwenqi 于 2015-3-27 14:09 编辑如题,比赛服里,当雇佣兵或者来队玩家,有些自行更改一些不文明、或带羞辱、攻击性、装13、非主流等中文名,请问如何禁止?貌似6027以上的版本默认支持中文?{:4_131:} 你在哪打CS啊,带我一个呗 如果发现有非ANSI标准字符则直接踢出,这样实现很简单,只需要判断名字每个字节ASC码值是否都在20和127之间,如果不是就踢出。只需要写在 client_connect(id) 和 client_infochanged(id) 这两个函数里即可。 Rulzy 发表于 2015-3-26 23:14
如果发现有非ANSI标准字符则直接踢出,这样实现很简单,只需要判断名字每个字节ASC码值是否都在20和127之间 ...
public IsAllowName(id)
{
new name;
get_user_info(id, "name", name, charsmax(name));
for (new i = 0; i < sizeof(name); i++)
{
if (name < 20 || name > 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); 楼上2个 真是好基友! Rulzy 发表于 2015-3-26 23:14
如果发现有非ANSI标准字符则直接踢出,这样实现很简单,只需要判断名字每个字节ASC码值是否都在20和127之间 ...
那如果用在混战服务器,混战服用了中文ID插件,这样的话会不会也把自定义的中文ID也踢出?因为现在我想只有服务器主人能给玩家设置中文ID,而玩家不能自己设置中文ID,以避免出现些不和谐中文。 xuwenqi 发表于 2015-3-27 14:13
那如果用在混战服务器,混战服用了中文ID插件,这样的话会不会也把自定义的中文ID也踢出?因为现在我想只 ...
那就加个权限判断,有指定权限的才可以使用。 版主好想法 ................
页:
[1]