R版本,有个小问题想请教一下你!
我的目的是想玩家进服务器选择队伍后以及换名字的时候,各执行JoinMessage一次,但我按照以下方式编写的话,玩家一进入服务器,就会连续执行2次该函数,换名字的时候,只执行一次,请帮我看看,是哪里出了问题?谢谢了!public client_connect(id){
g_JoinedTeam = 0;
}
public EventJoinedTeam(){
new id=read_data(1);
if(( g_JoinedTeam == 0) && (!is_user_bot(id))){
g_JoinedTeam=1;
if(msg_hide != 0)
return PLUGIN_CONTINUE
if(is_user_bot(id) || is_user_hltv(id))
return PLUGIN_CONTINUE
set_task(1.0, "JoinMessage", id,"130524")
remove_task(130524)
}
return PLUGIN_CONTINUE
}
public client_infochanged(id)
{
new newname,oldname
get_user_info(id, "name", newname,31)
get_name(id,oldname,31)
if (!equal(oldname,newname)){
set_task(1.0, "JoinMessage", id,"130525")
}
}
public JoinMessage(id){
......
new szMessage;
format( szMessage, 511, "^x01* 欢迎^x04新朋友^x01[^x04%s^x01]加油! ", name);
client_color(0,id,szMessage);
} 请提供完整源代码,特别是 EventJoinedTeam 事件你是怎么定义的。 register_event( "TeamInfo", "EventJoinedTeam", "a", "2!UNASSIGNED");
这样定义的,源码有点大,贴不完整,如果还不行,我就上传附件上来! 改成
register_event( "TeamInfo", "EventJoinedTeam", "a", "2=CT", "2=TERRORIST" );
试试 好的,谢谢,我马上去试! 晕了,我把
get_name换成get_user_name,恢复正常了!
怪了!其他地方的get_name也没问题,我是用的simen的中文ID插件。 如果在玩家连接过程中给玩家改名为中文名,等玩家进入之后,就会发生一次改名事件。 要玩家写cfg文件就可以了,还要用simen的中文ID插件啊。 要玩家写cfg文件就可以了,还要用simen的中文ID插件啊。
Cr@zyTreE 发表于 2009-8-15 09:54 http://www.dt-club.net/forum/images/common/back.gif
有些插件,如果不使用get_name函数而使用get_user_name的话,有可能造成服务器挂掉!像内网优先插件,所以为了保险,我全部替换了。 我的服务器都是使用get_user_name来获取玩家名字的,不存在会挂服的问题啊。get_name其实跟get_user_info(id, "name",...)是一样的,而且还存在BUG。
另外,使用了破解的支持中文ID的swds.dll之后,根本就不需要用simen的中文ID插件了,直接用set_user_info(id, "name", "中文ID")就可以了。
页:
[1]
2