csersnake 发表于 2008-2-1 23:28:44

如何循环检测玩家的某个参数并执行一些命令

比如每50秒检查一次玩家cl_minmodels参数的值,如果大于0,就执行一些命令。

用过注册set_task(50.0, "jianchacanshu", 0,"",0,"b")的方式,也用过
public jianchacanshu(){
new players, num
get_players(players, num, "c")

for(new i = 0; i < num; i++){
   if ( !is_user_bot( players ) ){
    query_client_cvar(players, "cl_minmodels", "zhixing");
   }
}
set_task(50.0, "jianchacanshu", 0)
}
}
这样自己延时执行自己的的方式
检查的方式是用的
query_client_cvar(id, "cl_minmodels", "zhixing")
然后在zhixing里再根据返回的结果做判断来决定对玩家执行什么命令

无论用以上哪种方式,都会把要执行的玩家给踢出来,提示信息都是“Not Present on Client 58”

很郁闷

ceoguang 发表于 2008-2-3 02:50:42

回复: 如何循环检测玩家的某个参数并执行一些命令

呵呵,这样不踢才怪.单独对每个玩家分开来执行就OK了.

csersnake 发表于 2008-2-3 14:50:16

回复: 如何循环检测玩家的某个参数并执行一些命令

Post by ceoguang
呵呵,这样不踢才怪.单独对每个玩家分开来执行就OK了.

我没理解“单独”的意思,请说的再具体一些。

csersnake 发表于 2008-2-3 16:28:06

回复: 如何循环检测玩家的某个参数并执行一些命令

放弃了循环检测,改为每次死亡事件的时候检查杀人者的参数,仍然出现“Not Present on Client 58”,是否还有其他方法检查玩家的参数,有些怀疑是query_client_cvar函数本身有问题

zwfgdlc 发表于 2008-2-3 20:08:50

回复: 如何循环检测玩家的某个参数并执行一些命令

query_client_cvar()函数的参数不是这样的,正确应该是这样
query_client_cvar(id,"客户端参数名称,如rate", "对查询到的结果进行处理的函数")
这是AMXX说明文档的举例:

#include <amxmodx>

public plugin_init()

    register_plugin("test", "1", "PM");
}

public client_connect(id)

    if (!is_user_bot(id))
      query_client_cvar(id, "rate", "cvar_result_func");
}

public cvar_result_func(id, const cvar[], const value[])

    new name[32];
    get_user_name(id, name, 31);
   
    log_amx("Client %d(%s)'s rate is ^"%s^"", id, name, value);
}

csersnake 发表于 2008-2-4 10:14:23

回复: 如何循环检测玩家的某个参数并执行一些命令

首先谢谢你的回复,至少你是肯费心帮我了

我没找到格式上的问题,也曾经直接照搬官方的实例,结果还是“Not Present on Client 58”

在死亡事件的时候query_client_cvar(killer, "cl_minmodels", "zhixing")一次,然后
public zhixing(id, const cvar[], const value[]){
new name;
get_user_name(id,name,31);
log_amx("Client %d(%s)'s cl_minmodels is ^"%s^"", id, name, value);
//client_print(0,print_chat," 玩家 %s 的 cl_minmodels 值是 %s",value);
//if( equali(cvar,"cl_minmodels") && str_to_num(value) > 0 ){
//shanchujingyan(id)
//}
//return PLUGIN_HANDLED
}

就算完全使用官方的实例也是出现同样的问题。
页: [1]
查看完整版本: 如何循环检测玩家的某个参数并执行一些命令