jop 发表于 2007-2-10 19:47:43

回复: 大家看看这个插件怎么改!CARD.SMA

Post by lu0007
试验的两个大BUG
第一:能无限得到CARD
第二:上一回合中抽到的卡的功效在本回合中也起作用!

这两个BUG 能解决就大功告成了!呵呵 !努力研究,希望有高手指点!



new last_card

//......

public cmd_card(id) {

//......

if(get_gametime() < last_card ) {
client_print(id, print_chat, "You've already chosen a card recently. Please try again later.")
return PLUGIN_CONTINUE
}

last_card = get_gametime() + get_pcvar_num(g_CardDelay)

new rand = random_num(1,19)
//......
}

public client_putinserver(id)
{
last_card = 0 //初始化
}



注意红字为修改的
兰字的为新增

试一下,应该是玩家使用一次后,需要的 card_delay 300 秒后才能再次使用
注:没有测试

lu0007 发表于 2007-2-10 21:07:19

回复: 大家看看这个插件怎么改!CARD.SMA

Post by jop
注意红字为修改的
兰字的为新增

试一下,应该是玩家使用一次后,需要的 card_delay 300 秒后才能再次使用
注:没有测试
呵呵 ,谢谢!
我看了一下午的 antiflood.sma 也试了 new Float:last_card = {0.0, ...} 呵呵,不过没试全,主要语法不知道,嘿嘿!
你的,我来试试!

lu0007 发表于 2007-2-10 22:18:04

回复: 大家看看这个插件怎么改!CARD.SMA

new last_card   //我改成了 new Float:last_card

//......

public cmd_card(id) {

//......

if(get_gametime() < last_card ) {//这行编译警告,类型不匹配!
client_print(id, print_chat, "You've already chosen a card recently. Please try again later.")
return PLUGIN_CONTINUE
}

last_card = get_gametime() + get_pcvar_num(g_CardDelay)

new rand = random_num(1,19)
//......
}

public client_putinserver(id)
{
last_card = 0 //初始化我改成了 last_card = 0.0
}
我是设置每 30 秒可以输入/card 一次 这个测试成功!
第二个问题就是 上一回合的功效 本回合还存在,这个BUG还在的。
应该有 round (回合判断函数的) 不知道函数名是什么!
页: 1 [2]
查看完整版本: 大家看看这个插件怎么改!CARD.SMA