|
楼主 |
发表于 2009-1-5 18:01:29
|
显示全部楼层
来自 中国–广东–中山
本帖最后由 apocalyptic 于 2009-1-5 18:12 编辑
距离胜利还差最后一步了。- RegisterHam(Ham_Killed, "func_breakable", "func_Ham_Killed_Player")
- RegisterHam(Ham_TakeDamage, "func_breakable" , "func_Ham_TakeDamage")
复制代码 这两个都可以运行,可以检测破坏实体和实体消亡的事件。但似乎只对地图中的原有实体有效,对后来加入的实体(例如我建立的假人)无效,不管假人的classname是func_breakable这类普通的classname(例如cs_assault里面的玻璃和通风管盖子)还是fake_player这类自定义的classname,都无法检测到针对它的破坏动作(但可以检测到针对地图中原有func_breakable实体的破坏)。
我怀疑错误其实出在我建立实体的时候设置的下列实体属性,麻烦你帮我看看,谢谢!- //建立实体
- ent[id] = create_entity("info_target")
- //设置classname
- entity_set_string(ent[id],EV_SZ_classname,"func_breakable")
- //设置外观模型
- entity_set_model(ent[id],"models/scientist.mdl")
- //设置坐标
- Vector[id][2]=Vector[id][2]-32
- entity_set_origin(ent[id],Vector[id])
- //固体属性
- entity_set_int(ent[id], EV_INT_solid, 3)
- //生命值
- entity_set_float(ent[id],EV_FL_health,100.00)
- //生命最大值
- entity_set_float(ent[id],EV_FL_max_health,100.00)
- //攻击伤害
- entity_set_float(ent[id],EV_FL_takedamage,1.0)
- //实体体积
- new Float:mina[3]
- mina[0]=-10.0
- mina[1]=-10.0
- mina[2]=0.0
- new Float:maxa[3]
- maxa[0]=10.0
- maxa[1]=10.0
- maxa[2]=72.0
- entity_set_size(ent[id],mina,maxa)
复制代码 补充一下,一般的func_breakable实体被枪击之后,不会被打穿(即其背后的墙壁不出现弹孔),但我建立的是可以被打穿的。 |
|