搜索
查看: 2383|回复: 1

命令位置问题。

[复制链接]
发表于 2008-6-3 21:16:00 | 显示全部楼层 |阅读模式 来自 日本–东京都–千代田区
看了一些插件,register_cvar命令都是在public plugin_init()函数里面。
可不可以在其他函数里包含register_cvar ?
比如如下
public event_say(id) {
        new text[64], cmd[32], url[32]
        read_args(text,63)
        remove_quotes(text)
        parse(text, cmd, 31, url, 31)
        if(equal(cmd, "/web"))
                web_browser(id,url)
[color="Red"]        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
}
发表于 2008-6-3 21:48:20 | 显示全部楼层 来自 中国–福建–漳州

回复: 命令位置问题。

注册一个CVAR参数,其语法为:register_cvar("参数名", "参数值")
只有还没有注册过这个参数时,注册此参数时,其值才为后面的参数值;如果此参数已经存在,则其值不会改变。所以,像你那样根本就是不合理的。你应该写成类似于这样:
  1. public plugin_init()
  2. {
  3.     ....
  4.     register_cvar("amx_web_url", "[url=http://page1]http://page1[/url]")
  5.     ....
  6. }
  7. public event_say(id) {
  8.     new text[64], cmd[32], url[32]
  9.     read_args(text,63)
  10.     remove_quotes(text)
  11.     parse(text, cmd, 31, url, 31)
  12.     if(equal(cmd, "/web"))
  13.         web_browser(id,url)
  14.     if(equal(cmd, "/sxe"))
  15.     {
  16.         set_cvar_string("amx_web_url", "[url=http://page1]http://page1[/url]")
  17.         web_browser(id,"")
  18.     }
  19.     if(equal(cmd, "/tools")) {
  20.         set_cvar_string("amx_web_url", "[url=http://page2]http://page2[/url]")
  21.         web_browser(id,"")
  22.     }
  23.     return PLUGIN_CONTINUE
  24. }
复制代码
回复

使用道具 举报

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

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