cityhonghu 发表于 2008-6-3 21:16:00

命令位置问题。

看了一些插件,register_cvar命令都是在public plugin_init()函数里面。
可不可以在其他函数里包含register_cvar ?
比如如下

public event_say(id) {
        new text, cmd, url
        read_args(text,63)
        remove_quotes(text)
        parse(text, cmd, 31, url, 31)
        if(equal(cmd, "/web"))
                web_browser(id,url)
        if(equal(cmd, "/sxe")) {
                register_cvar("amx_web_url", "http://page1")
                web_browser(id,"")
        }
        if(equal(cmd, "/tools")) {
                register_cvar("amx_web_url", "http://page2")
                web_browser(id,"")        }       
        return PLUGIN_CONTINUE
}

Rulzy 发表于 2008-6-3 21:48:20

回复: 命令位置问题。

注册一个CVAR参数,其语法为:register_cvar("参数名", "参数值")
只有还没有注册过这个参数时,注册此参数时,其值才为后面的参数值;如果此参数已经存在,则其值不会改变。所以,像你那样根本就是不合理的。你应该写成类似于这样:
public plugin_init()
{
    ....
    register_cvar("amx_web_url", "http://page1")
    ....
}
public event_say(id) {
    new text, cmd, url
    read_args(text,63)
    remove_quotes(text)
    parse(text, cmd, 31, url, 31)
    if(equal(cmd, "/web"))
      web_browser(id,url)
    if(equal(cmd, "/sxe"))
    {
      set_cvar_string("amx_web_url", "http://page1")
      web_browser(id,"")
    }
    if(equal(cmd, "/tools")) {
      set_cvar_string("amx_web_url", "http://page2")
      web_browser(id,"")
    }
    return PLUGIN_CONTINUE
}
页: [1]
查看完整版本: 命令位置问题。