guoxiangwei 发表于 2009-8-14 10:02:23

插件中赋值遇到:错误

制作的插件给一个字符串赋值,是一个域名类型的
"http://127.0.0.1"
但是遇到:符号就不行了,只能得到“http”后面的没有了,这个怎么处理呢?

Rulzy 发表于 2009-8-14 12:12:55

给字符串赋值,一般都不使用a="xxxxx"的形式,而是用format(a, len, ....)或copy(a, len, src)的形式。

guoxiangwei 发表于 2009-8-14 13:27:30

这个知道,关键是这个:的问题,没有这个符号,就都正确,有了它就不行了,到他这里就停止了

Rulzy 发表于 2009-8-14 15:04:48

没有这样的问题啊。你是怎么写的?

guoxiangwei 发表于 2009-8-14 18:46:28

register_cvar("amx_http_server1_down", "http://127.0.0.1/cstrike/")

get_cvar_string("amx_http_server1_down", svr1_down, 127)

达到的svr1_down就是http

Rulzy 发表于 2009-8-14 22:44:49

你在控制台输入 amx_http_server1_down 看一下,这个参数的值是多少。
#include <amxmodx>
#include <amxmisc>

#define PLUGIN_NAME        "New Plug-In"
#define PLUGIN_VERSION        "1.0"
#define PLUGIN_AUTHOR        "Rulzy"

public plugin_init()
{
        register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
       
        register_cvar("amx_http_server1_down", "http://127.0.0.1/cstrike/")
       
        new svr1_down;
        get_cvar_string("amx_http_server1_down", svr1_down, 127)
        server_print("amx_http_server1_down: %s", svr1_down);
}用上面的代码,能正常显示为:
amx_http_server1_down: http://127.0.0.1/cstrike/

请注意,register_cvar是注册一个cvar服务器参数,后面跟的值是初始值,如果这个参数已经存在,不管后面的值是多少,其值都不会变的。例如,最开始时,你这个插件上写的是“http”,你运行了服务器,然后你将插件修改为“http://127.0.0.1/cstrike/”,然后换图,则它的值仍然是http。除非你关掉服务器后再重启服务器,或者插件里用set_cvar_string,或在cfg或控制台修改此参数的值。

guoxiangwei 发表于 2009-8-14 23:29:53

看了下,确实不是赋值的问题,是
server_cmd("sv_downloadurl %s",svr1_down);
执行这一句以后
发生的问题

guoxiangwei 发表于 2009-8-14 23:33:07

原因找到了
server_cmd("sv_downloadurl %s",svr1_down);
%s这个需要有“”才可以!

Rulzy 发表于 2009-8-15 01:05:42

嗯,应该用 server_cmd("sv_downloadurl ^"%s^"", svr1_down); 才对。

Cr@zyTreE 发表于 2009-8-15 09:46:39

本帖最后由 Cr@zyTreE 于 2009-8-15 09:48 编辑

学习。。。。顶一下。。。。。。。。。。。。。。。。。。

----------------------------------------------------------------
client_cmd("setinfo name ^"%s^"", cnname);
页: [1]
查看完整版本: 插件中赋值遇到:错误