搜索
查看: 2533|回复: 6

关于屏蔽玩家radio语音和信息的问题

[复制链接]
发表于 2007-12-16 21:22:34 | 显示全部楼层 |阅读模式 来自 中国–甘肃–兰州
我想编写了一个插件,功能是屏蔽掉玩家发送radio时的信息,即仅仅是保留语音部分,信息就不要显示了.
[php]#include <amxmodx>
public plugin_init() {
register_plugin("Hook Radio", "1.0", "X-man");
register_concmd("radio1", "hook_radio");
register_concmd("radio2", "hook_radio");
register_concmd("radio3", "hook_radio");
}
public hook_radio() {
return PLUGIN_HANDLED;
}[/php]
上面的代码可以实现屏蔽radio的功能,但有BUG:
1. 虽然可以屏蔽掉radio1,radio2和radio3的所有信息,但当玩家扔O3,O4和O5时却无法屏蔽掉这句信息“Fire in the hold!”.
2. 插件居然把radio的语音和信息全都屏蔽掉了,按C,X和Z键居然不出现radio的信息列表了,其实我只是想屏蔽掉文字信息部分而已,语音部分我是不想屏蔽的.

Rulzy版主,能帮忙看看是什么原因吗?
发表于 2007-12-17 12:14:04 | 显示全部楼层 来自 中国–广东–佛山–禅城区

回复: 关于屏蔽玩家radio语音和信息的问题

  1.   if(equal(arg5,"#Go_go_go")){//Msg GoGoGo
  2.    format(saymsg,255,"^x03%s^x04【对讲机】^x03: 都冲上去!!!",arg4)
复制代码
彩色对讲机里面不是有这样的代码吗?
回复

使用道具 举报

发表于 2007-12-17 13:54:39 | 显示全部楼层 来自 中国–广东–中山

回复: 关于屏蔽玩家radio语音和信息的问题

客户端命令radio1,就是指玩家按Z键打开radio信息菜单的事件,你在这个时候return plugin_handled,后果可想而知。
回复

使用道具 举报

 楼主| 发表于 2007-12-17 16:15:26 | 显示全部楼层 来自 中国–甘肃–兰州

回复: 关于屏蔽玩家radio语音和信息的问题

再向高手请教一个问题,我使用了这个彩色对讲机插件(colored_radio.amxx),发现如果扔雷的话屏幕的左下方会出现两个信息:
第一个是CS系统本身的radio信息: xxx (无线电): 小心手雷 !
第二个是插件里面自定义的信息: xxx (对讲机):  注意 !扔手榴弹了 !

其实只显示一个信息就足够了,所以我想问一下,怎么才能去掉那句CS系统本身的radio信息?(仅保留插件里面自定义的信息就可以了。)
[php]#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[256]
get_msg_arg_string(3,arg3,255)
if(equal(arg3,"#Game_radio")){
new arg4[33],arg5[129]
get_msg_arg_string(4,arg4,32)
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[64]
new thname[32]
new pindex[1]
pindex[0]=id
switch(wpnid)
{
case CSW_HEGRENADE:
{
get_user_name(id,thname,31)
format(msg,63,"^x03%s ^x01(对讲机):^x04 注意! 扔手榴弹了!",thname)
}
case CSW_FLASHBANG:
{
get_user_name(id,thname,31)
format(msg,63,"^x03%s ^x01(对讲机):^x04 注意! 扔闪光弹了!",thname)
}
case CSW_SMOKEGRENADE:
{
get_user_name(id,thname,31)
format(msg,63,"^x03%s ^x01(对讲机):^x04 注意! 扔烟雾弹了!",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()
} [/php]
回复

使用道具 举报

发表于 2007-12-17 19:39:38 | 显示全部楼层 来自 中国–广东–惠州

回复: 关于屏蔽玩家radio语音和信息的问题

理论上应该不会有系统的那个信息出来,你再试下.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

 楼主| 发表于 2007-12-18 13:55:09 | 显示全部楼层 来自 中国–甘肃–兰州

回复: 关于屏蔽玩家radio语音和信息的问题

[php]#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[256]
get_msg_arg_string(3,arg3,255)
if(equal(arg3,"#Game_radio"))
{
new arg5[129]
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[64]
new thname[32]
new pindex[1]
pindex[0]=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()
}[/php]
我把插件的中文翻译成英文后,放到CS1.5里测试,结果失败了,还是会出现那句CS系统本身的radio信息.(参见截图)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

 楼主| 发表于 2007-12-18 14:57:21 | 显示全部楼层 来自 中国–甘肃–兰州

回复: 关于屏蔽玩家radio语音和信息的问题

zwfgdlc楼主,麻烦你帮忙再修正一下.
回复

使用道具 举报

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

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