搜索
查看: 5442|回复: 10

[AMXX 带源码] get_user_frags怎么返回总是零?

[复制链接]
发表于 2009-7-25 13:30:21 | 显示全部楼层 |阅读模式 来自 中国–浙江–宁波
我编了一个插件,能通过编译,但运行没效果,发现:
for (new i_player = 0; i_player < i_numplayers; i_player++)
{
   new i_deaths = get_user_deaths( i_player)
    client_print(i_player, print_chat, "*******%d*******!.",i_deaths)
    new i_frags = get_user_frags( i_player)
    client_print(i_player, print_chat, "*******%d*******!.",i_frags)
是上面出问题了,我把上面的语句放到每局开始时运行,每次屏幕上打印的都是零,怎么看这语句都没错啊,希望达达能帮帮我,万分感谢!
发表于 2009-7-25 14:19:38 | 显示全部楼层 来自 中国–广东–东莞
你应该这样!
  1. new players[32], pnum
  2. for (new i = 0; i < pnum; i++)
  3. {
  4. new id = players[i]
  5. new i_deaths = get_user_deaths(id)
  6. new i_frags = get_user_frags(id)
  7. client_print(id, print_chat, "this is a example, your kill %d, and death %d times", i_frags, i_deaths)
复制代码
回复

使用道具 举报

发表于 2009-7-25 16:53:46 | 显示全部楼层 来自 中国–广东–广州
写法不对,应该是
for (new i_player = 1; i_player < =32; i_player++)
{
    if (!is_user_connected(i)
      continue;
new i_deaths = get_user_deaths( i_player)
    client_print(i_player, print_chat, "*******%d*******!.",i_deaths)
    new i_frags = get_user_frags( i_player)
    client_print(i_player, print_chat, "*******%d*******!.",i_frags)
回复

使用道具 举报

发表于 2009-7-25 17:40:53 | 显示全部楼层 来自 中国–广东–东莞
3# lnjkming


有什么不对?哪里不对了!
你能解释一下哪个函数用错了吗?
回复

使用道具 举报

发表于 2009-7-25 21:39:53 | 显示全部楼层 来自 中国–广东–广州–番禺区
搞错,是这样,:dizzy:,呵呵
for (new i_player = 1; i_player < =32; i_player++)
{
    if (!is_user_connected(i_player)
      continue;
new i_deaths = get_user_deaths( i_player)
    client_print(i_player, print_chat, "*******%d*******!.",i_deaths)
    new i_frags = get_user_frags( i_player)
    client_print(i_player, print_chat, "*******%d*******!.",i_frags)
回复

使用道具 举报

 楼主| 发表于 2009-7-26 07:59:38 | 显示全部楼层 来自 中国–浙江–宁波
谢谢楼上的两位,我把代码装上去运行一下,回来报告结果!
回复

使用道具 举报

 楼主| 发表于 2009-7-26 08:13:26 | 显示全部楼层 来自 中国–浙江–宁波
用了lnjkming 的代码,编译无法通过,用了kk阿朗 ,编译能过,但运行显%D的地方还是0,这就奇怪了,这语句没毛病啊
回复

使用道具 举报

发表于 2009-7-26 20:04:57 | 显示全部楼层 来自 中国–广东–广州–从化区
这样,刚上面的符号有误,:dizzy:

for (new i_player = 1; i_player <=32; i_player++)
{
    if (!is_user_connected(i_player))
      continue;
     new i_deaths = get_user_deaths( i_player)
    client_print(i_player, print_chat, "*******%d*******!.",i_deaths)
    new i_frags = get_user_frags( i_player)
    client_print(i_player, print_chat, "*******%d*******!.",i_frags)
   
   
}
回复

使用道具 举报

发表于 2009-7-27 21:56:53 | 显示全部楼层 来自 中国–福建–漳州
遍历玩家使用循环从1开始,到maxplayers结束比较好,效果比较高。另外,最好不要在循环里定义变量。
  1. new i_deaths, i_frags
  2. new maxplayers = get_maxplayers();
  3. for (new i_player=1; i_player<=maxplayers; i_player++)
  4. {
  5.     if(!is_user_connected(i_player)) continue;
  6.     i_deaths = get_user_deaths(i_player)
  7.     client_print(i_player, print_chat, "*******%d*******!.", i_deaths)
  8.     i_frags = get_user_frags( i_player)
  9.     client_print(i_player, print_chat, "*******%d*******!.", i_frags)
  10. }
复制代码
甚至可以定义一个全称变量 g_maxplayers, 在plugin_init中赋值 g_maxplayers = get_maxplayers();
然后在循环中从1至g_maxplayers,这样效率更高一些。
回复

使用道具 举报

发表于 2009-7-27 22:46:56 | 显示全部楼层 来自 中国–广东–东莞
本帖最后由 kk阿朗 于 2009-7-27 22:48 编辑

不好意思,少了个函数!

  1. new players[32], pnum
  2. get_players(players, pnum)
  3. for (new i = 1; i < pnum; i++)
  4. {
  5. new id = players[i]
  6. new i_deaths = get_user_deaths(id)
  7. new i_frags = get_user_frags(id)
  8. client_print(id, print_chat, "this is a example, your kill %d, and death %d times", i_frags, i_deaths)
  9. }
复制代码
还想顺便请教一下R版
上我这个跟你那究竟哪个会好一点?
  1. new i_deaths, i_frags
  2. new maxplayers = get_maxplayers();
  3. for (new i_player=1; i_player<=maxplayers; i_player++)
  4. {
  5.     if(!is_user_connected(i_player)) continue;
  6.     i_deaths = get_user_deaths(i_player)
  7.     client_print(i_player, print_chat, "*******%d*******!.", i_deaths)
  8.     i_frags = get_user_frags( i_player)
  9.     client_print(i_player, print_chat, "*******%d*******!.", i_frags)
  10. }
复制代码
回复

使用道具 举报

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

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