搜索
查看: 8948|回复: 21

【讨论】如何何获取玩家的杀敌数?

[复制链接]
发表于 2005-5-29 14:06:26 | 显示全部楼层 |阅读模式 来自 中国–广东–广州–荔湾区
如何何获取玩家的杀敌数?
是get_player 吗?
如何从MYSQL返回我要的数据???
如:我要从mysql返回mydata的数据(var的),库名为entertainment
是这样吗?
result=obi_quey(mysql,"SELECT mydata FROM `entertainment`",mydata)
这样格式对不对?
result就有了mydata的数据?
发表于 2005-5-30 12:35:36 | 显示全部楼层 来自 中国–陕西–西安–长安区
获取玩家的杀敌数
/* Returns player frags. */
native get_user_frags(index);

result=dbi_quey(...) 只能获取一张所搜索内容的结果表,具体的内容还需要自己再用
while( dbi_nextrow(...) > 0 ) {
  dbi_result(...)
  ...
}
这样的格式来提取需要的数据
回复

使用道具 举报

 楼主| 发表于 2005-5-30 17:42:30 | 显示全部楼层 来自 中国–广东–广州–荔湾区
谢谢。我正在准备一个MYSQL数据库的大集成版。再有问题请教时来发贴。
回复

使用道具 举报

 楼主| 发表于 2005-5-31 11:49:25 | 显示全部楼层 来自 中国–广东–广州–荔湾区
牛牛大人。
我获得玩家的杀敌数,可无法写入MYSQL数据库。
我是这样弄的。
  1. new csdata=get_user_frags(id)
  2. result = dbi_query(dbc,"INSERT INTO Entertainment (csname,steamid,csip,csid,csdata,num) values ('%s','%s','%s','%d',csdata,1)",csname,steamid,csip,csid,csdata)
  3. dbi_free_result(result)
复制代码


其它的都有数据写入,就是csdata无法写入,一片空白。
如果把csdata换为'%d',则写入的都是0.
是语法不对吗?
回复

使用道具 举报

发表于 2005-5-31 12:35:28 | 显示全部楼层 来自 中国–陕西–西安
[PHP]
new csdata=get_user_frags(id)
result = dbi_query(dbc,"INSERT INTO Entertainment (csname,steamid,csip,csid,csdata,num) values ('%s','%s','%s','%s','%d',1)",csname,steamid,csip,csid,csdata)
dbi_free_result(result)[/PHP]
修改为这样试试看,你自己对比一下看看区别
应该不会存为0 的
回复

使用道具 举报

 楼主| 发表于 2005-5-31 13:57:07 | 显示全部楼层 来自 中国–广东–广州–荔湾区
不能把CSID 对应的改为'%s',这样返回的不是玩家的ID,而是玩家的IP地址及乱码了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

 楼主| 发表于 2005-6-1 09:54:32 | 显示全部楼层 来自 中国–广东–广州–天河区
牛牛老大,可否再指点??这个问题困扰我好久了。
回复

使用道具 举报

发表于 2005-6-1 10:30:51 | 显示全部楼层 来自 中国–云南–德宏傣族景颇族自治州
晕!不懂!!
回复

使用道具 举报

发表于 2005-6-1 11:20:27 | 显示全部楼层 来自 中国–陕西–西安
发你的代码上来我看看,或者发到我的邮箱
nwb13-dt@163.com
回复

使用道具 举报

 楼主| 发表于 2005-6-2 12:43:50 | 显示全部楼层 来自 中国–广东–广州–天河区
下面在的代码

#include <amxmodx>
#include <amxmisc>
#include <dbi>
//#include <lang>
#include <fun>
new Sql:dbc
new Result:result
public plugin_init() {
register_plugin("SQL Entertainment","0.1","lai-xiwan_cn")
set_task(0.1,"sql_init")
}
public sql_init() {
new host[64], username[32], password[32], dbname[32], error[32]
get_cvar_string("amx_sql_host",host,64)
get_cvar_string("amx_sql_user",username,32)
get_cvar_string("amx_sql_pass",password,32)
get_cvar_string("amx_sql_db",dbname,32)
dbc = dbi_connect(host,username,password,dbname,error,32)
if (dbc == SQL_FAILED)
log_amx("[AMXX] SQL Connection Failed")
else
{
dbi_query(dbc,"CREATE TABLE IF NOT EXISTS `Entertainment` (`csname` VARCHAR(32) NOT NULL,`steamid` VARCHAR(32) NOT NULL,`csip` VARCHAR(64) NOT NULL,`csid` VARCHAR(64) NOT NULL,`csdata` VARCHAR(64) NOT NULL,`num` INT NOT NULL, PRIMARY KEY(csid,csname))")
}
}
public client_infochanged(id) {
new steamid[32]
get_user_authid(id,steamid,31)
new csname[32]
get_user_name(id,csname,31)
new csip[64]
get_user_ip(id,csip,63,1)
new csid=get_user_userid(id)
new csdata=get_user_frags(id)
result = dbi_query(dbc,"SELECT * FROM Entertainment WHERE csname = '%s'",csname)
if (dbi_num_rows(result) < 1) {
new newname[32]
get_user_name(id,newname,31)
if ( equal(newname,"csname") ){
return PLUGIN_HANDLED
}

result = dbi_query(dbc,"INSERT INTO Entertainment (csname,steamid,csip,csid,csdata,num) values ('%s','%s','%s','%d','%d',1)",csname,steamid,csip,csid,csdata)
dbi_free_result(result)
}else{
result = dbi_query(dbc,"UPDATE Entertainment SET num=num+1, csdata=csdata WHERE csname = '%s'",csname)
dbi_free_result(result)
}
dbi_free_result(result)
return PLUGIN_HANDLED
}
回复

使用道具 举报

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

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