搜索
查看: 2870|回复: 8

如何实现更改玩家名字

[复制链接]
发表于 2007-3-13 02:05:04 | 显示全部楼层 |阅读模式 来自 广东珠海
不用client_cmd等客户端命令,像get_user_name,如果没有set_user_name这种函数那应该怎么样实现在服务器更改玩家名字呢,请高手指点迷经....
发表于 2007-3-13 12:50:05 | 显示全部楼层 来自 福建漳州

回复: 如何实现更改玩家名字

使用 client_cmd 能实现了,为什么还要使用其他方法呢?有什么实际意义?
回复

使用道具 举报

发表于 2007-3-13 18:17:14 | 显示全部楼层 来自 广东深圳

回复: 如何实现更改玩家名字

[php]
#include <fakemeta>

// name change.
stock set_user_name(id, name[])
{
   engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer,id), "name", name)
}
[/php]

经测试可用,但更换名字时如果玩家是死亡状态,则名字更换信息会在活着的时候才被执行
如果需要死亡状态也进行更换,请参考 No sXe 插件代码
回复

使用道具 举报

发表于 2007-3-13 20:02:23 | 显示全部楼层 来自 福建漳州

回复: 如何实现更改玩家名字

应该还要设置玩家的KeyValue
回复

使用道具 举报

 楼主| 发表于 2007-3-13 21:36:25 | 显示全部楼层 来自 广东珠海

回复: 如何实现更改玩家名字

client_cmd 应该是相当于在客户端打上命令
如 say "中文名"
客户端不接受.
但是如果在服务器直接设置中文名,客户端应该没有理由不承认的,即使是乱码也要显示出来吧...
CS1.6客户端应该是支持中文的...
回复

使用道具 举报

发表于 2007-3-13 23:09:30 | 显示全部楼层 来自 广东深圳

回复: 如何实现更改玩家名字

Post by itsuccess
client_cmd 应该是相当于在客户端打上命令
如 say "中文名"
客户端不接受.
但是如果在服务器直接设置中文名,客户端应该没有理由不承认的,即使是乱码也要显示出来吧...
CS1.6客户端应该是支持中文的...

猜到你的意图。。可惜这想法早已试过,无效。
关于中文名支持问题,已经尝试了很多方法,
包括你可能不知道的方法,直接更改 netname,
如果直接更改 netname 为中文后,当你攻击队友,
左下角可以显示中文名字,但计分版和右上角依然是英文的。

以前的测试结论:1.6 engine 对名字的检查非常严格,只能是字母及个别特殊字符,其他全部都会被过滤(服务器端和客户端),如果名字里包含非法字符,会强制进行删除或更换,直到合格为止。

也许。。。继续努力吧。

注:修正上面的换名字代码。
回复

使用道具 举报

 楼主| 发表于 2007-3-15 01:56:55 | 显示全部楼层 来自 广东珠海

回复: 如何实现更改玩家名字

看来只有破解服务器了,再加个客户端补丁.
这个想法应该结束了...
回复

使用道具 举报

发表于 2007-3-15 12:33:48 | 显示全部楼层 来自 广东中山

回复: 如何实现更改玩家名字

记分板似乎只有在Source引擎下才能支持中文字符的……
回复

使用道具 举报

发表于 2007-3-21 13:27:17 | 显示全部楼层 来自 陕西西安

回复: 如何实现更改玩家名字

HAI XING 2 KEYI
回复

使用道具 举报

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

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