nwb13 发表于 2005-6-2 14:38:00

result = dbi_query(dbc,"UPDATE Entertainment SET num='%d', csdata='%d' WHERE csname = '%s'",num+1,csdata,csname)

需要注意代码里的变量num没有声明,这个要你自己完成了

微波炉 发表于 2005-6-2 18:02:44

好的,谢谢。
num只做加数用,整型数值int可否?

num可要可不要的。

我也试过
UPDATE 里设csdata='%d' ,
编译无错,运行时出现mysql内定错误。
都是在dbi_free_result(result) 出错。

nwb13 发表于 2005-6-2 18:12:28

你用的是
client_infochanged(id)
我觉得不可能在玩家成绩改变时被调用,你是不是想在玩家的成绩变化后立即存入该玩家的成绩?
我觉得应该调用
/* Function is called after player death ,
* if player was killed by teammate TK is set to 1 */
forward client_death(killer,victim,wpnindex,hitplace,TK);

我想你还是说说你想干什么吧,这些是我从你的代码里猜测的。

微波炉 发表于 2005-6-2 18:16:50

照你的方法去弄,仍然是0啊。

微波炉 发表于 2005-6-2 18:30:04

对,你猜对了,我是想实时得到玩家的杀敌数.但不必马上存入数据库,只到newround时才写入.
我是这样想的,获得玩家的杀敌数,然后就杀敌数给一个等级,就这个等级给玩家奖励.如给火箭筒啊,可以超级连环啊,可以隐身啊,等等好多好多.

nwb13 发表于 2005-6-2 18:37:18

代码就函数用错了,当然没变化了 :D
用RoundTime事件来触发,想法不错,哈哈
不过记得在玩家disconnect的时候也保存一次数据。

微波炉 发表于 2005-6-3 11:47:43

牛牛大人,有什么好的建议吗?

disconnect我已准备好,就差这个杀敌数的问题一直无法解决,可有其它方法来替代吗?

微波炉 发表于 2005-6-3 11:48:52

杀敌增加等级,被 杀则减少等级,这样游戏就平衡了。

微波炉 发表于 2005-6-3 11:49:35

可否帮我修改一下代码??

微波炉 发表于 2005-6-3 13:40:14

Post by nwb13
你用的是
client_infochanged(id)
我觉得不可能在玩家成绩改变时被调用,你是不是想在玩家的成绩变化后立即存入该玩家的成绩?
我觉得应该调用
/* Function is called after player death ,
* if player was killed by teammate TK is set to 1 */
forward client_death(killer,victim,wpnindex,hitplace,TK);

我想你还是说说你想干什么吧,这些是我从你的代码里猜测的。
这个只包括在DoDX (dodx.inc)

而这个还要另外配置,麻烦啊。
有其它更好的吗。
页: 1 [2] 3
查看完整版本: 【讨论】如何何获取玩家的杀敌数?