搜索
楼主: Osker Lee

怎么让玩家的名字前缀战队标签?

[复制链接]
发表于 2008-2-3 04:06:35 | 显示全部楼层 来自 广东惠州

回复: 怎么让玩家的名字前缀战队标签?

[php]
public join_team() //去掉id
{
new log[64],name[32],tag[32],temp[6],team[16],userid,authid[32]
read_logdata(log,63)
parse_loguser(log,name,31,userid,authid,31,team,15)
copy(temp,6,name)
new id=get_user_index(name) //增加行
[/php]
回复

使用道具 举报

 楼主| 发表于 2008-2-3 04:29:39 | 显示全部楼层 来自 广西梧州

回复: 怎么让玩家的名字前缀战队标签?

L 02/03/2008 - 04:23:05: Invalid player id 0
L 02/03/2008 - 04:23:05: [AMXX] Displaying debug trace (plugin "flag_name.amxx")
L 02/03/2008 - 04:23:05: [AMXX] Run time error 10: native error (native "set_user_info")
L 02/03/2008 - 04:23:05: [AMXX]    [0] flag_name.sma::join_team (line 45)
L 02/03/2008 - 04:23:06: Invalid player id 0
L 02/03/2008 - 04:23:06: [AMXX] Displaying debug trace (plugin "flag_name.amxx")
L 02/03/2008 - 04:23:06: [AMXX] Run time error 10: native error (native "set_user_info")
L 02/03/2008 - 04:23:06: [AMXX]    [0] flag_name.sma::join_team (line 45)
无奈咯~ 还是不行啊.
回复

使用道具 举报

发表于 2008-2-3 04:33:49 | 显示全部楼层 来自 广东惠州

回复: 怎么让玩家的名字前缀战队标签?

[php]
#include <amxmodx>
#include <amxmisc>
#define PLUGIN_NAME "New Plug-In"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "zwfgdlc"
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
register_logevent("join_team",3,"1=joined team","2=CT","2=TERRORIST")
}
public join_team()
{
new log[64],name[32],tag[32],temp[6],team[16]
read_logargv(0,log,63)
read_logargv(2,team,15)
parse_loguser(log,name,31)
copy(temp,6,name)
new id=get_user_index(name)
if(equal(team,"CT"))
{
  
  if(equal(temp,"[BLUE]"))
  {
   return;
  }else if(contain(temp,"[RED]")!=-1)
  {
   copy(temp,5,name);
   if(equal(temp,"[RED]"))
    format(tag,31,"[BLUE]%s",name[6]);
  }
  else
  {
    format(tag,31,"[BLUE]%s",name);
  }
}else{
  if(equal(temp,"[BLUE]"))
  {
   format(tag,31,"[RED]%s",name[6]);
  }else if(contain(temp,"[RED]")!=-1)
{
  copy(temp,5,name)
  if(equal(temp,"[RED]"))
   return;
   }else{
   format(tag,31,"[RED]%s",name);
  }
}
set_user_info(id,"name",tag)
}  
[/php]
这个可以了
回复

使用道具 举报

 楼主| 发表于 2008-2-3 04:43:43 | 显示全部楼层 来自 广西梧州

回复: 怎么让玩家的名字前缀战队标签?

你看了我前面发的那个游戏截图了吧?其实当时就是用bot来测试的,结果证明完全可以在bot的名字前加上“[RED]”字符,因此我觉得不像是bot的问题。
回复

使用道具 举报

发表于 2008-2-3 04:47:17 | 显示全部楼层 来自 广东惠州

回复: 怎么让玩家的名字前缀战队标签?

现在应该是可以了,我用BOT测试,在HLSW里看到有改名,[BLUE],[RED]都有
睡觉了,好冷喔!!!!:cold::embarrass
回复

使用道具 举报

 楼主| 发表于 2008-2-3 04:59:12 | 显示全部楼层 来自 广西梧州

回复: 怎么让玩家的名字前缀战队标签?

呵呵~ 问题解决了,终于可以睡个安稳觉咯!再次感谢zwfgdlc楼主的热心帮助,祝君好梦!
回复

使用道具 举报

 楼主| 发表于 2008-2-4 07:01:58 | 显示全部楼层 来自 广西梧州

回复: 怎么让玩家的名字前缀战队标签?

发现个问题了,就是一旦玩家更换了名字,那么就没有前缀的字符了.在不使用禁止改名插件的情况下,怎么解决这个问题呢?
回复

使用道具 举报

发表于 2008-2-4 19:23:07 | 显示全部楼层 来自 广东惠州

回复: 怎么让玩家的名字前缀战队标签?

不知道有没效,自己试下吧
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #define PLUGIN_NAME "New Plug-In"
  4. #define PLUGIN_VERSION "1.0"
  5. #define PLUGIN_AUTHOR "zwfgdlc"
  6. public plugin_init()
  7. {
  8. register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
  9. register_logevent("join_team",3,"1=joined team","2=CT","2=TERRORIST")
  10. }
  11. public join_team()
  12. {
  13. new log[64],name[32],team[16]
  14. read_logargv(0,log,63)
  15. read_logargv(2,team,15)
  16. parse_loguser(log,name,31)
  17. new id=get_user_index(name)
  18. AddTag(id,team);
  19. }  
  20. public AddTag(id,team[])
  21. {
  22. new temp[6],name[32],tag[32]
  23. get_user_info(id,"name",name,31)
  24. copy(temp,6,name)
  25. if(equal(team,"CT"))
  26. {
  27.   if(equal(temp,"[BLUE]"))
  28.   {
  29.    return;
  30.   }else if(contain(temp,"[RED]")!=-1){
  31.    copy(temp,5,name);
  32.    if(equal(temp,"[RED]"))
  33.    format(tag,31,"[BLUE]%s",name[6]);
  34.   }else{
  35.    format(tag,31,"[BLUE]%s",name);
  36.   }
  37.   set_user_info(id,"name",tag)
  38. }
  39. if(equal(team,"TERRORIST"))
  40. {
  41.   if(equal(temp,"[BLUE]"))
  42.   {
  43.    format(tag,31,"[RED]%s",name[6]);
  44.   }else if(contain(temp,"[RED]")!=-1){
  45.    copy(temp,5,name)
  46.    if(equal(temp,"[RED]"))
  47.     return;
  48.   }else{
  49.    format(tag,31,"[RED]%s",name);
  50.   }
  51.   set_user_info(id,"name",tag)
  52. }
  53. }
  54. public client_infochanged(id)
  55. {
  56. new oldname[32],newname[32],team[16]
  57. get_user_name(id,oldname,31)
  58. get_user_info(id,"name",newname,31)
  59. if(!equal(oldname,newname))
  60. get_user_team(id,team,15);
  61. AddTag(id,team)
  62. }
复制代码
回复

使用道具 举报

 楼主| 发表于 2008-2-7 23:58:24 | 显示全部楼层 来自 广西梧州

回复: 怎么让玩家的名字前缀战队标签?

先谢谢zwfgdlc楼主!上面的问题解决了!又测试了两天,我觉得还是有两个地方需要完善:
1. 比如我在当警察,名字是[BLUE]X-man,ranhou
回复

使用道具 举报

 楼主| 发表于 2008-2-8 00:47:19 | 显示全部楼层 来自 广西梧州

回复: 怎么让玩家的名字前缀战队标签?

谢谢zwfgdlc楼主不厌其烦的耐心帮助!上面的问题已经解决了!又测试了两天,我发现还是有两个地方需要完善:

1. 比如我在当警察,名字为[BLUE]X-man,阵亡后我换队伍当匪徒(或者自杀后换做匪徒),但这时我的名字却依然是[BLUE]X-man,直到下一局开始时名字才会变成[RED]X-man.因此能不能这样:玩家换队伍成功的瞬间,名字的前缀也立即会变成其相应队伍的标签,而不必等到下一局开始时才生效?

2. 还有一个问题就是:当服务器的人数不平衡时,我们知道一般过两局之后就会自动调整的.比如这时一个名字叫[BLUE]ABC的CT被服务器自动弹过去当T了(或者被OP强制弹过去当T了),我们可以发现他的名字依然会是[BLUE]ABC,而不是[RED]ABC,所以我觉得这里还需要继续完善一下.
回复

使用道具 举报

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

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