搜索
查看: 3675|回复: 6

手雷跳插件(amx_heconc.amxx)又要debug了~~~

[复制链接]
发表于 2007-6-8 13:18:32 | 显示全部楼层 |阅读模式 来自 中国–甘肃–兰州
以前看CS花式技巧视频的时候,有一个手雷跳的情节,当然在正常的服务器里是不可能的,但用这个插件(amx_heconc.amxx)却可以实现!其实就是当被手雷炸到时人会飞起来,弹出一定的距离,这其实很符合力学原理,同时也增强了游戏的娱乐性。不过发觉手雷跳插件用在服务器里老是出现误差报告:

L 06/08/2007 - 12:42:57: [ENGINE] Invalid entity 185
L 06/08/2007 - 12:42:57: [AMXX] Run time error 10 (plugin "amx_heconc.amxx") - debug not enabled!
L 06/08/2007 - 12:42:57: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).

其实服务器运行久了总会有某些插件出现误差报告的,不是经常出错的插件我们可以忽略掉,但有些频繁出错的插件确实让人恼火,因为fps会受其影响的。

我观察了一阵子自己的服务器,也揪出了几个老是出现误差报告的插件,有几个修改了一下源代码后问题就解决了,但有些却不知道怎么改才好,比如这个手雷跳插件。我把源代码发上来了,希望大家能帮忙诊断一下。嗯,同时想向高手请教一下,如何让玩家被炸到时能飞得更高。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
发表于 2007-6-8 23:11:25 | 显示全部楼层 来自 中国–福建–漳州

回复: 手雷跳插件(amx_heconc.amxx)又要debug了~~~

加个判断,判断玩家是否已经连接就可以了。本来很多应该不用判断的,但可能是AMXX模块本身的问题,很多事件看似不用判断的,但还是要判断,比较 ResetHUD 事件,如果 flags 等于 "be",那应该不存在玩家未连接的问题,但其实却存在,所以要加个判断。

判断使用如下方式:
if(!is_user_connected(id)) return PLUGIN_CONTINUE
回复

使用道具 举报

 楼主| 发表于 2007-6-9 11:52:39 | 显示全部楼层 来自 中国–甘肃–兰州

回复: 手雷跳插件(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编译不成功,你能不能帮我改一下,把改好的源代码发上来呢?
回复

使用道具 举报

发表于 2007-6-9 14:25:06 | 显示全部楼层 来自 中国–福建–漳州

回复: 手雷跳插件(amx_heconc.amxx)又要debug了~~~

帮你改了,就加了一句:
if(!is_user_connected(id)) return PLUGIN_CONTINUE

如果想学得插件,还是得要学会思考才行啊。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

 楼主| 发表于 2007-6-9 15:22:08 | 显示全部楼层 来自 中国–甘肃–兰州

回复: 手雷跳插件(amx_heconc.amxx)又要debug了~~~

Rulzy大哥所言极是,小弟我汗......,唉~~ 惭愧啊......:p
回复

使用道具 举报

 楼主| 发表于 2007-6-10 13:12:14 | 显示全部楼层 来自 中国–甘肃–兰州

回复: 手雷跳插件(amx_heconc.amxx)又要debug了~~~

为了测试服务器开启的所有插件的稳定性,我把服务器的魔兽插件v2.3.2,死亡竞技插件v1.70都开启了,同时还开启了另外的一系列插件(都是娱乐插件,大概有30多个),呵呵,运行良好!唯独这个手雷跳插件还是出现debug误差报告:(别的插件都没问题)

L 06/10/2007 - 12:30:35: [ENGINE] Invalid entity 192
L 06/10/2007 - 12:30:35: [AMXX] Displaying debug trace (plugin "amx_heconc.amxx")
L 06/10/2007 - 12:30:35: [AMXX] Run time error 10: native error (native "entity_get_string")
L 06/10/2007 - 12:30:35: [AMXX]    [0] amx_heconc.sma::hedamage_event (line 78)

好像是插件源代码的第78行出现了问题。我把死亡竞技插件(CSDM1.70)关闭(stop)之后,一切都正常了,手雷跳插件再也不出现误差报告了!但一旦开启CSDM,问题又出现了......:embarrass
回复

使用道具 举报

发表于 2007-6-10 14:06:24 | 显示全部楼层 来自 中国–福建–漳州

回复: 手雷跳插件(amx_heconc.amxx)又要debug了~~~

再加了个判断,这次应该没问题了吧。
  1.     if(!is_valid_ent(inflictor))
  2.         return PLUGIN_CONTINUE
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表