Cr@zyTreE 发表于 2008-5-18 12:35:08

有关query_client_cvar

主要是下面的一段代码
new Float:gVolume

public client_connect(id) {
if(!is_user_bot(id)) {
query_client_cvar(id , "volume" , "cvar_result");
}
}
public cvar_result(id, const cvar[] , const value[]) {
gVolume = str_to_float(value);
}
附件he_damage_effect.sma是可以正常运行的,但是无法恢复玩家正常的音量。
插件的功能是被炸后暂时耳朵听不到声音,一段时间后恢复正常。

如果加上上面的代码后,he_damage_effect_debug.sma,玩家就进不了服务器,
控制台提示Not Present on Client 58。。
请问是什么原因。


下面的代码是帮助文档中的例子,只加载文档中的例子的插件,情况跟上面的一样。,玩家就进不了服务器,
控制台提示Not Present on Client 58。。


Example plugin:
Log the value of the rate cvar of all connecting users

#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;
get_user_name(id, name, 31);

log_amx("Client %d(%s)'s rate is ^"%s^"", id, name, value);
}






Logged output:
L 09/07/2005 - 11:42:25: Client 1(psychedelic hampster)'s rate is "15000"

aiyingkoko 发表于 2008-5-18 14:16:24

回复: 有关query_client_cvar

呵呵……这个插件我也研究过 一直被这个音量为零困扰官网这个插件的作者都没解决这个问题我是直接去掉了改变音量 用CS:S那个闪光声音替代手雷爆炸后音效 震动设为1秒

Cr@zyTreE 发表于 2008-5-18 14:20:31

回复: 有关query_client_cvar

Post by aiyingkoko
音量为零   

?好像有声音吧。。不过声音很难听,耳朵很不舒服。

Post by aiyingkoko
用CS:S那个闪光声音替代手雷爆炸后音效 震动设为1秒   

楼主能否告诉方法?把声音文件传上来?

Arvy 发表于 2008-5-18 14:29:06

回复: 有关query_client_cvar

The function uses a pretty new engine function (added around Aug 11, 2005). Therefore it may cause a native error on out-of-date servers.
It also uses newdll functions; metamod (at least 1.18) doesn't provide newdll function table hooking for plugins if the mod gamedll doesn't export newdll functions.
This is fixed in metamod-1.18p26 by ghost_of_evilspy (hullu). [ http://sourceforge.net/projects/metamod-p ]
query_client_cvar的使用条件如上,也就是服务器v3213以上,metamod v1.18以上

he_damage_effect.sma声音无法恢复是因为你已经定义了:
#define DEFAULT_VOLUME 0.5
而CS默认volume值是0.8,所以当然恢复不了

Cr@zyTreE 发表于 2008-5-18 14:39:03

回复: 有关query_client_cvar

Post by Arvy
query_client_cvar的使用条件如上,也就是服务器v3213以上,metamod v1.18以上

he_damage_effect.sma声音无法恢复是因为你已经定义了:

而CS默认volume值是...

感谢你的回复。

解释一下:
1 我的服务器是3647的,MM v1.19p32,客户端也是3647的。
2 我没说清楚,我的意思是恢复玩家自己设定的声音大小,例如我的客户端设置是0.5。
所以我才去读客户端的设定值,被手雷炸后恢复成玩家自己设定的值。。
我把default设置成0.5,已经把代码改了只是为了说明其他部分代码没问题。
问题在于读取玩家的设置。。

aiyingkoko 发表于 2008-5-18 14:50:49

回复: 有关query_client_cvar

试试我的这个,不知道效果怎么样!!!

Cr@zyTreE 发表于 2008-5-18 15:02:31

回复: 有关query_client_cvar

Post by aiyingkoko
试试我的这个,不知道效果怎么样!!!

你换成public client_authorized(id)这个就可以了?我试试。多谢。

Arvy 发表于 2008-5-18 15:40:45

回复: 有关query_client_cvar

把MM换成1.18p26或者官方的1.18、1.19看看
我测试he_damage_effect_debug.sma完全没有问题

服务器3647,MM官方1.19

Cr@zyTreE 发表于 2008-5-18 23:12:18

回复: 有关query_client_cvar

Post by Arvy
把MM换成1.18p26或者官方的1.18、1.19看看
我测试he_damage_effect_debug.sma完全没有问题

服务器3647,MM官方1.19

用了官方的MM官方1.19还是老样子。郁闷。。

zwfgdlc 发表于 2008-5-19 11:47:00

回复: 有关query_client_cvar

这个问题我在官方问过,说不支持no-steam,AMXX1.60可以,1.70以上不能用在no-steam服务器,008那个反作弊插件就是因为这个函数的问题一直不支持AMXX1.70以上的版本.
页: [1] 2
查看完整版本: 有关query_client_cvar