搜索
查看: 2749|回复: 3

[已解决]这个是玩家选择的角色记录到日志

[复制链接]
发表于 2009-4-10 10:12:42 | 显示全部楼层 |阅读模式 来自 中国–上海–上海–浦东新区
本帖最后由 BliaNe 于 2009-4-10 11:13 编辑

插件源码:
  1. #include <amxmodx>
  2. #include <cstrike>

  3. new g_inGame[33]

  4. public plugin_init ()
  5. {
  6.         register_plugin ("User Role Logging","1.0","MaysWind");
  7. }

  8. public client_disconnect(id)
  9. {
  10.         if (!g_inGame[id])
  11.                 return

  12.         g_inGame[id] = 0

  13.         remove_task(id)
  14. }

  15. public client_connect(id)
  16. {
  17.         g_inGame[id] = 0
  18. }

  19. public client_putinserver(id)
  20. {
  21.         g_inGame[id] = 1
  22. }

  23. public client_infochanged(id)
  24. {
  25.         new szTeam[16], szName[32], szAuthid[32], szShortTeam[4], szRole[16]
  26.         new iUserid = get_user_userid(id)

  27.         get_user_team(id, szTeam, 15)
  28.         get_user_name(id, szName, 31)
  29.         get_user_authid(id, szAuthid, 31)
  30.         cs_get_user_model(id, szRole, 15)

  31.         if (equali(szTeam,"TERRORIST"))
  32.         {
  33.                 copy(szShortTeam,2,"t")
  34.         }
  35.         else if (equali(szTeam,"CT"))
  36.         {
  37.                 copy(szShortTeam,3,"ct")
  38.         }
  39.         else
  40.         {
  41.                 copy(szShortTeam,2,"s")
  42.         }

  43.         if (!equali(szRole,"vip") && !equali(szShortTeam,"s"))
  44.         {
  45.                 log_message("^"%s<%d><%s><%s>^" changed role to ^"#class_%s_%s^"", szName, iUserid, szAuthid, szTeam, szShortTeam, szRole)
  46.         }
  47. }
复制代码
DEBUG信息:
  1. L 04/10/2009 - 09:41:09: [CSTRIKE] Invalid player 1
  2. L 04/10/2009 - 09:41:09: [AMXX] Displaying debug trace (plugin "User_Role_Logging.amxx")
  3. L 04/10/2009 - 09:41:09: [AMXX] Run time error 10: native error (native "cs_get_user_model")
  4. L 04/10/2009 - 09:41:09: [AMXX]    [0] User_Role_Logging.sma::client_infochanged (line 39)
复制代码
 楼主| 发表于 2009-4-10 10:16:00 | 显示全部楼层 来自 中国–上海–上海–浦东新区
native cs_get_user_model(index, model[], len);

cs_get_user_model 的用法没错啊!!
回复

使用道具 举报

发表于 2009-4-10 11:07:10 | 显示全部楼层 来自 中国–广东–汕头
加一个is_user_connected(id) 判断,client_infochanged(id)在玩家未完全进入服务器之前也会触发的。
回复

使用道具 举报

 楼主| 发表于 2009-4-10 11:12:44 | 显示全部楼层 来自 中国–上海–上海–浦东新区
本帖最后由 BliaNe 于 2009-4-10 11:21 编辑
加一个is_user_connected(id) 判断,client_infochanged(id)在玩家未完全进入服务器之前也会触发的。
zwfgdlc 发表于 2009-4-10 11:07

谢谢 zwfgdlc 和 逍遥游
就是这个问题。。 问题解决!!
  1. #include <amxmodx>
  2. #include <cstrike>

  3. public plugin_init ()
  4. {
  5.         register_plugin ("User Role Logging","1.0","BliaNe");
  6. }

  7. public client_infochanged(id)
  8. {
  9.         if (is_user_connected(id))
  10.         {
  11.                 new szTeam[16], szName[32], szAuthid[32], szShortTeam[4], szRole[16]
  12.                 new iUserid = get_user_userid(id)

  13.                 get_user_team(id, szTeam, 15)
  14.                 get_user_name(id, szName, 31)
  15.                 get_user_authid(id, szAuthid, 31)
  16.                 cs_get_user_model(id, szRole, 15)

  17.                 if (equali(szTeam,"TERRORIST"))
  18.                 {
  19.                         copy(szShortTeam,2,"t")
  20.                 }
  21.                 else if (equali(szTeam,"CT"))
  22.                 {
  23.                         copy(szShortTeam,3,"ct")
  24.                 }
  25.                 else
  26.                 {
  27.                         copy(szShortTeam,2,"s")
  28.                 }

  29.                 if (!equali(szRole,"vip") && !equali(szShortTeam,"s"))
  30.                 {
  31.                         log_message("^"%s<%d><%s><%s>^" changed role to ^"#class_%s_%s^"", szName, iUserid, szAuthid, szTeam, szShortTeam, szRole)
  32.                 }
  33.         }
  34. }
复制代码
回复

使用道具 举报

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

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