|
今天测试火箭筒插件的时候发现了两个问题:
1. 如果玩家在地上扔一个火箭筒,那么游戏每局结束后,它会自动消失.但是游戏如果还没结束就刷新,那么火箭筒会留在原地不消失,无论你刷新多少次都一样会留在原地,除非这局游戏结束了火箭筒才会消失.怎么解决这个问题啊?
2. 如果自己是OP,比方名字叫SK,那么自己可以通过在控制台输入 bazooka_give SK 来获得免费的火箭筒,获得火箭筒后你可以按G键来扔下火箭筒.
然后你再次向控制台输入 bazooka_give SK,那么你又获得了一个新的火箭筒,然后你再按G键把它扔了,这时你会发现控制台会出现debug出错报告.只要是利用上面的方法把火箭筒扔掉两次以上(包括两次),控制台就会马上出现debug出错报告,屡试不爽.出错信息如下:
L 09/25/2007 - 19:25:21: [AMXX] Displaying debug trace (plugin "bazooka.amxx")
L 09/25/2007 - 19:25:21: [AMXX] Run time error 4: index out of bounds
L 09/25/2007 - 19:25:21: [AMXX] [0] bazooka.sma::pfn_touch(line 939)
L 09/25/2007 - 19:25:21: [AMXX] Displaying debug trace (plugin "bazooka.amxx")
L 09/25/2007 - 19:25:21: [AMXX] Run time error 4: index out of bounds
L 09/25/2007 - 19:25:21: [AMXX] [0] bazooka.sma::pfn_touch (line 939)
L 09/25/2007 - 19:25:21: [AMXX] Displaying debug trace (plugin "bazooka.amxx")
L 09/25/2007 - 19:25:21: [AMXX] Run time error 4: index out of bounds
L 09/25/2007 - 19:25:21: [AMXX] [0] bazooka.sma::pfn_touch (line 939)
L 09/25/2007 - 19:25:21: [AMXX] Displaying debug trace (plugin "bazooka.amxx")
L 09/25/2007 - 19:25:21: [AMXX] Run time error 4: index out of bounds
L 09/25/2007 - 19:25:21: [AMXX] [0] bazooka.sma::pfn_touch (line 939)
好象是插件源代码的的第939行出错了,"index out of bounds" 的大概意思好象是"索引出界"了.源代码的的第939行内容如下: (红色部分的代码)
if (equal(ClassName1, "rpglancher")) {
if(Has_Bazooka[touched])
return PLUGIN_CONTINUE
if(has_shield(touched))
return PLUGIN_CONTINUE
new Picker[32]
if (is_valid_ent(touched))
entity_get_string(touched, EV_SZ_classname, Picker, 31)
if (equal(Picker, "player")) {
give_item(touched, "weapon_knife")
Allow_Shooting[touched] = true
Has_Bazooka[touched] = true
有人知道怎么解决这个问题吗?(本插件为CS1.5专用版) |
|