apocalyptic 发表于 2007-12-30 17:11:06

求助!如何制止radio信息?

具体地说,当玩家投掷手榴弹的时候,不要发出fire in the hole的声音,怎样才能做到?
请赐教!

Osker Lee 发表于 2007-12-30 17:59:21

回复: 求助!如何制止radio信息?

这个问题我之前也问过,但是没有人能给出满意的答复.

关于屏蔽玩家radio语音和信息的问题
http://www.dt-club.net/forum/thread/70/37501.htm

不过,楼主可曾用过死亡竞技模式插件?我指的是csdm_mod_170.amxx这个版本的插件,而不是CSDM_2.1x这类新版本的插件.如果服务器运行了csdm_mod_170.amxx这个插件,那么你扔雷的时候可以观察一下,你会发现其实只有语音部分,而"Fire in the hole!"这句信息却是被屏蔽掉的.因此,楼主不妨从csdm_mod_170下手,提取一下里面关于radio信息屏蔽的代码,这个方法应该是可行的.

嘿嘿~ 要是楼主成功了,可别把我给忘了,麻烦公布一下源代码,因为我也需要.

zwfgdlc 发表于 2007-12-30 18:56:31

回复: 求助!如何制止radio信息?

我发的代码是1.6是可以正常使用的.我一开始接触CS就是1.6的,所以只在1.6下测试插件.1.5没怎么去研究.

zwfgdlc 发表于 2007-12-30 19:25:54

回复: 求助!如何制止radio信息?

呵呵,看错了,现在才看明白.试下这段代码
<FONT style="BACKGROUND-COLOR: #f5f5ff">
#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_message(get_user_msgid("SendAudio"),"hook_sound");
}
public hook_sound()
{
new arg
get_msg_arg_string(2,arg,15)
if(equal(arg,"ct_fireinhole"))
return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}

apocalyptic 发表于 2007-12-30 20:22:59

回复: 求助!如何制止radio信息?

谢谢楼上的朋友热心帮助!我明白了!

Osker Lee 发表于 2007-12-30 20:56:39

回复: 求助!如何制止radio信息?

报告楼主,在CS1.5和CS1.6里都测试了,没有任何效果啊!:sweat: 不过我倒不是很在意上面的那个插件,我只想解决下面的问题:如何让color_radio.amxx支持CS1.5?

#include <amxmodx>
#include <amxmisc>
#include <Engine>
#define PLUGIN_NAME "Colored Radio"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "zwfgdlc"
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
register_message(get_user_msgid("TextMsg"),"color_radio")
}
public color_radio(msgid, msgDest, msgEnt)
{
new argNum = get_msg_args()
if (argNum!=5) return PLUGIN_CONTINUE
if (get_msg_argtype(1)!=ARG_BYTE) return PLUGIN_CONTINUE
new arg1=get_msg_arg_int(1)
if (arg1!=5) return PLUGIN_CONTINUE
new arg3
get_msg_arg_string(3,arg3,255)
if(equal(arg3,"#Game_radio"))
{
new arg5
get_msg_arg_string(5,arg5,128)
if(equal(arg5,"#Fire_in_the_hole"))
{
return 1
}
}
return PLUGIN_CONTINUE
}
public grenade_throw(id, greindex, wpnid)
{
new msg
new thname
new pindex
pindex=id
switch(wpnid)
{
case CSW_HEGRENADE:
{
get_user_name(id,thname,31)
format(msg,63,"%s (RADIO): I threw a grenade !",thname)
}
case CSW_FLASHBANG:
{
get_user_name(id,thname,31)
format(msg,63,"%s (RADIO): I threw a flashbang !",thname)
}
case CSW_SMOKEGRENADE:
{
get_user_name(id,thname,31)
format(msg,63,"%s (RADIO): I threw a smokegrenade !",thname)
}
}
client_color(0,id,msg)
}
public client_color(playerid, colorid, msg[])
{
message_begin(playerid?MSG_ONE:MSG_ALL,get_user_msgid("SayText"),{0,0,0},playerid)
write_byte(colorid)
write_string(msg)
message_end()
}
我把插件的中文翻译成英文后,放到CS1.5里测试,结果失败了,还是会出现那句CS系统本身的radio信息.

apocalyptic 发表于 2007-12-30 23:37:00

回复: 求助!如何制止radio信息?

1.5跟1.6有一些事件不一样,所以能够在1.6运行的功能,不等于搞成英文就可以在1.5运行。

zwfgdlc 发表于 2007-12-31 04:10:57

回复: 求助!如何制止radio信息?

Post by Osker Lee
报告楼主,在CS1.5和CS1.6里都测试了,没有任何效果啊!:sweat: 不过我倒不是很在意上面的那个插件,我只想解决下面的问题:如何让color_radio.amxx支持CS1.5?

#include <amxmodx>
#include <amxmisc>
#include <Engine>
#define PLUGIN_NAME "Colored Radio"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "zwfgdlc&quo...
那个吴孟达说没问题了,我就没管这个了,有时间我测试下.

zwfgdlc 发表于 2007-12-31 04:15:06

回复: 求助!如何制止radio信息?

Post by zwfgdlc
呵呵,看错了,现在才看明白.试下这段代码
<FONT style="BACKGROUND-COLOR: #f5f5ff">
#include <amxmodx>
#include <amxmisc>
#define PLUGIN_NAME "New Plug-In"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "zwfgdlc"
public plugin_init()
{
register_plugin(PL...
可能这个还不行.扔手雷时发出的fire in the hole的声音,应该是是客户端发出的声音,不是服务器向所有玩家发送的.好象只有队友才可以听到,如果是这样可能要用到<fakemeta>模块中的"FM_EmitSound".
我很少玩CS,所以不是很了解,我研究这个纯粹是工作需要,自己并不玩.

Osker Lee 发表于 2007-12-31 15:01:27

回复: 求助!如何制止radio信息?

那个吴孟达说没问题了,我就没管这个了,有时间我测试下.
呵呵~ 插件用在CS1.6确实没有任何问题,不会出现那句CS系统本身的radio信息. 但用到CS1.5里就不行了,会出现两个信息. (第一个是CS系统本身的radio信息,第二个是插件里面自定义的信息.)
哎~ 真让人感到纳闷.:spiderman
页: [1] 2
查看完整版本: 求助!如何制止radio信息?