搜索
查看: 3684|回复: 10

R版本,有个小问题想请教一下你!

[复制链接]
发表于 2009-8-13 14:43:18 | 显示全部楼层 |阅读模式 来自 四川宜宾
我的目的是想玩家进服务器选择队伍后以及换名字的时候,各执行JoinMessage一次,但我按照以下方式编写的话,玩家一进入服务器,就会连续执行2次该函数,换名字的时候,只执行一次,请帮我看看,是哪里出了问题?谢谢了!

public client_connect(id){       
g_JoinedTeam[id] = 0;
}

public EventJoinedTeam(){
        new id=read_data(1);
        if(( g_JoinedTeam[id] == 0) && (!is_user_bot(id))){
                g_JoinedTeam[id]=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[32],oldname[32]
        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[512];
        format( szMessage, 511, "^x01* 欢迎^x04新朋友^x01  [^x04%s^x01]  加油! ", name);
client_color(0,id,szMessage);       
        }
发表于 2009-8-13 19:12:55 | 显示全部楼层 来自 福建漳州
请提供完整源代码,特别是 EventJoinedTeam 事件你是怎么定义的。
回复

使用道具 举报

 楼主| 发表于 2009-8-13 21:06:10 | 显示全部楼层 来自 四川宜宾
register_event( "TeamInfo", "EventJoinedTeam", "a", "2!UNASSIGNED");

这样定义的,源码有点大,贴不完整,如果还不行,我就上传附件上来!
回复

使用道具 举报

发表于 2009-8-13 21:58:27 | 显示全部楼层 来自 福建漳州
改成
register_event( "TeamInfo", "EventJoinedTeam", "a", "2=CT", "2=TERRORIST" );
试试
回复

使用道具 举报

 楼主| 发表于 2009-8-13 21:58:57 | 显示全部楼层 来自 四川宜宾
好的,谢谢,我马上去试!
回复

使用道具 举报

 楼主| 发表于 2009-8-13 22:46:02 | 显示全部楼层 来自 四川宜宾
晕了,我把
get_name换成get_user_name,恢复正常了!
怪了!其他地方的get_name也没问题,我是用的simen的中文ID插件。
回复

使用道具 举报

发表于 2009-8-14 15:07:08 | 显示全部楼层 来自 福建漳州
如果在玩家连接过程中给玩家改名为中文名,等玩家进入之后,就会发生一次改名事件。
回复

使用道具 举报

发表于 2009-8-15 09:54:08 | 显示全部楼层 来自 广东深圳
要玩家写cfg文件就可以了,还要用simen的中文ID插件啊。
回复

使用道具 举报

 楼主| 发表于 2009-8-15 11:36:26 | 显示全部楼层 来自 四川宜宾
要玩家写cfg文件就可以了,还要用simen的中文ID插件啊。
Cr@zyTreE 发表于 2009-8-15 09:54

有些插件,如果不使用get_name函数而使用get_user_name的话,有可能造成服务器挂掉!像内网优先插件,所以为了保险,我全部替换了。
回复

使用道具 举报

发表于 2009-8-15 21:11:24 | 显示全部楼层 来自 福建漳州
我的服务器都是使用get_user_name来获取玩家名字的,不存在会挂服的问题啊。get_name其实跟get_user_info(id, "name",...)是一样的,而且还存在BUG。

另外,使用了破解的支持中文ID的swds.dll之后,根本就不需要用simen的中文ID插件了,直接用
  1. set_user_info(id, "name", "中文ID")
复制代码
就可以了。
回复

使用道具 举报

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

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