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)
而这个还要另外配置,麻烦啊。
有其它更好的吗。