手雷跳插件(amx_heconc.amxx)又要debug了~~~
以前看CS花式技巧视频的时候,有一个手雷跳的情节,当然在正常的服务器里是不可能的,但用这个插件(amx_heconc.amxx)却可以实现!其实就是当被手雷炸到时人会飞起来,弹出一定的距离,这其实很符合力学原理,同时也增强了游戏的娱乐性。不过发觉手雷跳插件用在服务器里老是出现误差报告:L 06/08/2007 - 12:42:57: Invalid entity 185
L 06/08/2007 - 12:42:57: Run time error 10 (plugin "amx_heconc.amxx") - debug not enabled!
L 06/08/2007 - 12:42:57: To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
其实服务器运行久了总会有某些插件出现误差报告的,不是经常出错的插件我们可以忽略掉,但有些频繁出错的插件确实让人恼火,因为fps会受其影响的。
我观察了一阵子自己的服务器,也揪出了几个老是出现误差报告的插件,有几个修改了一下源代码后问题就解决了,但有些却不知道怎么改才好,比如这个手雷跳插件。我把源代码发上来了,希望大家能帮忙诊断一下。嗯,同时想向高手请教一下,如何让玩家被炸到时能飞得更高。
回复: 手雷跳插件(amx_heconc.amxx)又要debug了~~~
Rulzy大哥所言极是,小弟我汗......,唉~~ 惭愧啊......:p回复: 手雷跳插件(amx_heconc.amxx)又要debug了~~~
加个判断,判断玩家是否已经连接就可以了。本来很多应该不用判断的,但可能是AMXX模块本身的问题,很多事件看似不用判断的,但还是要判断,比较 ResetHUD 事件,如果 flags 等于 "be",那应该不存在玩家未连接的问题,但其实却存在,所以要加个判断。判断使用如下方式:
if(!is_user_connected(id)) return PLUGIN_CONTINUE
回复: 手雷跳插件(amx_heconc.amxx)又要debug了~~~
Rulzy大哥,是不是把插件源代码的这些原有内容改成这样:(红色部分的内容是我加进去的)...
...
public plugin_init() {
register_plugin("HE Knockback", "1.0", "ThantiK")
register_event("Damage", "hedamage_event", "b", "2!0", "4!0", "5!0", "6!0")
register_event("ResetHUD","flags","be");
register_cvar("he_push","20.0")
}
public plugin_connected(id)
if(!is_user_connected(id))
return PLUGIN_CONTINUE
}
...
...
可是我改完后用compile编译不成功,你能不能帮我改一下,把改好的源代码发上来呢?
回复: 手雷跳插件(amx_heconc.amxx)又要debug了~~~
帮你改了,就加了一句:if(!is_user_connected(id)) return PLUGIN_CONTINUE
如果想学得插件,还是得要学会思考才行啊。
回复: 手雷跳插件(amx_heconc.amxx)又要debug了~~~
为了测试服务器开启的所有插件的稳定性,我把服务器的魔兽插件v2.3.2,死亡竞技插件v1.70都开启了,同时还开启了另外的一系列插件(都是娱乐插件,大概有30多个),呵呵,运行良好!唯独这个手雷跳插件还是出现debug误差报告:(别的插件都没问题)L 06/10/2007 - 12:30:35: Invalid entity 192
L 06/10/2007 - 12:30:35: Displaying debug trace (plugin "amx_heconc.amxx")
L 06/10/2007 - 12:30:35: Run time error 10: native error (native "entity_get_string")
L 06/10/2007 - 12:30:35: amx_heconc.sma::hedamage_event (line 78)
好像是插件源代码的第78行出现了问题。我把死亡竞技插件(CSDM1.70)关闭(stop)之后,一切都正常了,手雷跳插件再也不出现误差报告了!但一旦开启CSDM,问题又出现了......:embarrass
回复: 手雷跳插件(amx_heconc.amxx)又要debug了~~~
再加了个判断,这次应该没问题了吧。if(!is_valid_ent(inflictor))
return PLUGIN_CONTINUE
页:
[1]