找回密码
 注-册

QQ登录

只需一步,快速开始

查看: 4249|回复: 2

赛盟CS中文ID插件

[复制链接]
Leya 发表于 2008-8-23 16:16:19 | 显示全部楼层 |阅读模式
插件发布
发布时间:
插件名称: 赛盟CS中文ID插件
是否原创: 转载
插件作者: Simen.newbie
适用游戏: 通用(Cs/DoD)
适用类型: AMXX
适用版本: 1.8.x 
插件简介: CS中文ID
预览图.jpg
用法: 安装中文聊天软件 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" 改名功能的开关而非所有功能的开关,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
- 增加一个CVar u_autoname

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

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

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

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

已知问题:

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

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

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

  3. stock get_name(id, name[], len)
  4. {
  5. new buffer = engfunc(EngFunc_GetInfoKeyBuffer, id)
  6. new strtmp1[256]
  7. copy_infokey_buffer(buffer, strtmp1, 255)
  8. new offset = contain(strtmp1, "\name") + 6
  9. new thischr
  10. new i
  11. for (;;i++)
  12. {
  13. thischr = memhack_get_char(buffer + offset + i, MEM_NULLBASE, MEMTYPE_DATA, MEM_SIGNED)
  14. if (thischr == '\' || thischr == 0)
  15. {
  16. name[i] = 0
  17. break
  18. }
  19. else
  20. {
  21. name[i] = thischr
  22. }

  23. }
  24. name[len - 1] = 0
  25. }
复制代码
解决方法2,可以试一下把这句
register_forward(FM_ClientUserInfoChanged, "fwdClientUserInfoChanged", 0)
改成
register_forward(FM_ClientUserInfoChanged, "fwdClientUserInfoChanged", 1)
  1. name.zip - amxx插件/代码
  2. memhack.rar - memhack
  3. memhack_source.rar - memhack代码

  4. 请确认你的CS版本是3266以上,amxx版本1.75以上
  5. 已知问题:
  6. 语音时名字显示为乱码(无法解决,貌似要修改客户端关于语音那个dll文件)
  7. 某些插件top排名显示为乱码(强制使用UTF-8编码应该就能解决问题,我不懂html~~嘻嘻)

  8. 不能从MySQL数据库读取中文id的解决办法:
  9. 在admin.sma里,找到
  10. query = SQL_PrepareQuery(sql,"SELECT `auth`,`password`,`access`,`flags` FROM `%s`", table)
  11. 在这一行之前插入以下2句:
  12. query = SQL_PrepareQuery(sql,"SET NAMES 'UTF8'")
  13. SQL_Execute(query)

  14. 本插件可能会跟某些插件冲突
  15. 解决方法:修改插件代码,用下面这个函数代替get_user_name()
  16. #include <fakemeta>
  17. #include <memhack>
  18. stock get_name(id, name[], len)
  19. {
  20.         new buffer = engfunc(EngFunc_GetInfoKeyBuffer, id)
  21.         new strtmp1[256]
  22.         copy_infokey_buffer(buffer, strtmp1, 255)
  23.         new offset = contain(strtmp1, "\name") + 6
  24.         new thischr
  25.         new i
  26.         for (;;i++)
  27.         {
  28.                 thischr = memhack_get_char(buffer + offset + i, MEM_NULLBASE, MEMTYPE_DATA, MEM_SIGNED)
  29.                 if (thischr == '\' || thischr == 0)
  30.                 {
  31.                         name[i] = 0
  32.                         break
  33.                 }
  34.                 else
  35.                 {
  36.                         name[i] = thischr
  37.                 }
  38.         
  39.         }
  40.         name[len - 1] = 0
  41. }
复制代码

memhack.rar

41.27 KB, 下载次数: 234

name.zip

13.61 KB, 下载次数: 233

memhack_source.rar

35.99 KB, 下载次数: 224

回复

使用道具 举报

Melo 发表于 2008-11-5 16:37:44 | 显示全部楼层
这么BT,还不快顶撒!
回复

使用道具 举报

joysin 发表于 2009-3-5 10:49:36 | 显示全部楼层
真他妈的BT啊,不支持下过意不去了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注-册

本版积分规则

Archiver|手机版|小黑屋|DoDVip ( 桂ICP备14000730号 )

GMT+8, 2025-5-1 23:48 , Processed in 0.139448 second(s), 26 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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