www.simen.cn 发表于 2008-3-16 18:26:32

CS中文ID插件(带源码)(12/1更新)

赛盟首发CS中文ID插件!!!


作者:Simen.newbie

用法: 安装中文聊天软件 http://bbs.simen.cn/viewthread.php?tid=42429&extra=page%3D1

进入游戏按Y输入
name 中文ID
注意name后面有空格
运行需要memhack这个module

name.zip - amxx插件/代码
memhack.rar - memhack
memhack_source.rar - memhack代码

CVars:
utf8name 1 开启按Y输入"name 中文ID" 改名功能(默认)
utf8name 0 关闭

u_needaccess 1 需要权限ADMIN_RESERVATION才能改中文ID
u_needaccess 0 不检查用户权限(默认)

u_autoname 1 登录时根据英文ID自动改名
u_autoname 0 关闭此功能(默认)

使用这个功能要在addons\amxmodx\data目录下建立一个文件names_utf8.txt并以utf-8编码保存
格式如下

英文名1
中文名1
英文名2
中文名2
英文名3
中文名3

依此类推


更新日志:
12/1/2008
v0.18
- 修正一些错误
- 如果想在改中文名后自动恢复原有权限,可以将251-256行以及264-274行的代码的注释标记(/*和*/)去掉.(如果op的中文帐号没有密码保护而又要开自动恢复权限功能的话,建议禁止改名玩家自行改名(utf8name 0),以防其他玩家冒名顶替)


4/27/2008
v0.15
- CVar utf8name以及u_needaccess作用改变, utf8name改为玩家按Y输入"name 中文ID" 改名功能的开关而非所有功能的开关(因作者疏忽此功能没实现,v0.18已修正),u_needaccess对于登录服务器改名以及动态改名功能均有效
- 如果中文名字有重复,会在前面加上类似"(1)"的标记
- 玩家进入游戏以后才会检查是否要自动换中文名

3/25/2008
v0.12
- 检查名字中是否含有字符'\'
- 修改get_name()函数以方便修改其他有冲突的插件.用它直接替换get_user_name()即可

3/24/2008
v0.11
- 修正再次改名以后不能换回原来中文ID的bug

3/19/2008
v0.10
- 增加一个CVaru_autoname

3/17/2008
v0.08
增加一个CVaru_needaccess
改进查找/name/键位的算法

v0.06:
- 支持32人服务器
- 死后禁止改名

http://bbs.simen.cn/attachments/forumid_88/20080315_e7877a6267dedef622d4D8KswdFUXEhU.jpg


插件下载

http://bbs.simen.cn/viewthread.php?tid=43055&extra=page%3D1

- 中文ID可以拥有权限,但要注意,users.ini文件/数据库里的数据一定要用UTF-8编码
- 某些插件不支持UTF-8编码,中文ID可能会显示为乱码
- linux用的memhack可以到这里下载:
http://forums.alliedmods.net/showpost.php?p=394656&postcount=62
我没在linux下测试过

已知问题:

语音时名字显示为乱码(无法解决,貌似要修改客户端关于语音那个dll文件)

某些插件top排名显示为乱码(强制使用UTF-8编码应该就能解决问题,我不懂html~~嘻嘻)

本插件可能会跟某些插件冲突导致
解决方法:修改插件代码,用下面这个函数代替get_user_name()
#include <fakemeta>
#include <memhack>

stock get_name(id, name[], len)
{
        new buffer = engfunc(EngFunc_GetInfoKeyBuffer, id)
        new strtmp1
        copy_infokey_buffer(buffer, strtmp1, 255)
        new offset = contain(strtmp1, "\name\") + 6
        new thischr
        new i
        for (;;i++)
        {
                thischr = memhack_get_char(buffer + offset + i, MEM_NULLBASE, MEMTYPE_DATA, MEM_SIGNED)
                if (thischr == '\' || thischr == 0)
                {
                        name = 0
                        break
                }
                else
                {
                        name = thischr
                }
       
        }
        name = 0
}
解决方法2,可以试一下把这句
register_forward(FM_ClientUserInfoChanged, "fwdClientUserInfoChanged", 0)
改成
register_forward(FM_ClientUserInfoChanged, "fwdClientUserInfoChanged", 1)


不能从MySQL数据库读取中文id的解决办法:

在admin.sma里,找到
query = SQL_PrepareQuery(sql,"SELECT `auth`,`password`,`access`,`flags` FROM `%s`", table)
在这一行之前插入以下2句:
query = SQL_PrepareQuery(sql,"SET NAMES 'UTF8'")
SQL_Execute(query)

[Grief.QQ] 发表于 2008-3-16 18:27:25

回复: 赛盟KZ跳跃网发布CS中文ID插件(带源码)

嘿嘿!
还是被我抢了第一!

justin_76 发表于 2008-3-16 19:28:17

回复: 赛盟KZ跳跃网发布CS中文ID插件(带源码)

哎,太帅了,太帅了,NB就是NB!

Osker Lee 发表于 2008-3-16 19:30:31

回复: 赛盟KZ跳跃网发布CS中文ID插件(带源码)

呵呵~ 本年度最轰动的插件 -- 中文ID插件!全城期待!!强烈支持!!!本插件建议配合CS1.6中文聊天软件(CSmate)一起使用。其实想更换中文名字除了通过CSmate可以实现外,还有另外一个方法:先CS1.6的cstrike或Cstrike_schinese目录下建了一个UTF-8格式的name.cfg文件,然后在name.cfg文件里写上这样的内容:say "name 中文的ID" 在进入服后,执行 exec name.cfg 就行了。

Cr@zyTreE 发表于 2008-3-16 19:34:57

回复: 赛盟KZ跳跃网发布CS中文ID插件(带源码)

Post by www.simen.cn
赛盟首发CS中文ID插件!!!


作者:Simen.newbie

用法: 安装中文聊天软件 http://bbs.simen.cn/viewthread.php?tid=42429&extra=page%3D1

进入游戏按Y输入
name 中文ID
注意name后面有空格
运行需要memhack这个module




好。。。。。。。。。。。。。。。。。。顶一下

Arvy 发表于 2008-3-16 19:35:30

回复: 赛盟KZ跳跃网发布CS中文ID插件(带源码)

之前大家都期待着,现在出来了,顶一下!

不过好象可以不用中文聊天软件吧?

zhuangxl 发表于 2008-3-16 19:40:17

回复: 赛盟KZ跳跃网发布CS中文ID插件(带源码)

不错
。。。。。。。。。。

Cs.K 发表于 2008-3-16 19:58:28

回复: 赛盟KZ跳跃网发布CS中文ID插件(带源码)

这么好的的插件,不顶不行啊!:super:

xerro 发表于 2008-3-16 20:05:06

回复: 赛盟KZ跳跃网发布CS中文ID插件(带源码)

很不错!1030来顶下你!
嘿嘿!

aiyingkoko 发表于 2008-3-16 20:28:46

回复: 赛盟KZ跳跃网发布CS中文ID插件(带源码)

原来实现中文游戏ID的方法有多种形式,我使用的是老友记的中文ID插件,和楼主发布的根本不靠边,互有亮点!!!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: CS中文ID插件(带源码)(12/1更新)