cs插件吧 关注:8,250贴子:88,596
  • 8回复贴,共1

新手想问一下关于pev_health减少生命值

只看楼主收藏回复


RT,用了这个函数之后,目标的血量降到负数都不会死,为什么要用这个函数呢,因为说想写一个插件伤害人真的是没什么问题,但是要在伤害人的同时还要去伤害NPC,可破坏固体,实体(如玻璃这些)就很难了,然后我问过灰灰大佬,他说用pev_health,但是用了之后血会降到负数人就是不死,然后还能穿摸用枪打也没反应,就算设定了条件降到0就是死不了....所以想问问各位dalao有什么好得解决办法
代码是这样的
get_user_aiming(id, enemy, body)//设定瞄准目标
new checkteam = (is_user_alive(enemy) && get_user_team(id) == get_user_team(enemy)) //判断是否是同阵营
if((get_user_weapon(id) == CSW_UMP45) && (nzbut & IN_USE) && !(ozbut & IN_USE))绑定在UMP45上,并摁E发动效果
if (is_user_alive(enemy) && checkteam)检查阵营
{
slowly_started[enemy] = true 开始伤害
slowly_begin_time[enemy] = get_gametime() + 5.0 伤害持续时间
}
public HPThink(id) 伤害思考
{
new Float:hp
pev(id, pev_health, hp) 获取当前伤害目标生命值
if(slowly_started[id])
{
if( hp - 2.0 < 0.0)
{
hp = 0.0
}
else hp -= 2.0
set_pev(id, pev_health, hp)
}
if(slowly_started[id] && slowly_begin_time[id] <= get_gametime())
{
slowly_started[id] = 0
}
}


IP属地:广西1楼2017-07-10 16:59回复
    用TakeDamage


    IP属地:广东2楼2017-07-10 18:11
    收起回复
      ExecuteHam(Ham_TakeDamage, 受害者id, 攻击者id, 攻击者id, Float:伤害值, 伤害类型)
      用这个对玩家造成伤害,不用自己手动扣血。如果受害者生命值小于0那么会直接死亡
      举个栗子:
      get_user_aiming(id, iTarget, iBody)
      ExecuteHam(Ham_TakeDamage, iTarget, id, id, 100.0, DMG_BULLET)
      伤害类型可以在hlsdk_const.inc里找到(DMG_***)


      IP属地:河南本楼含有高级字体3楼2017-07-10 20:55
      收起回复
        水水


        IP属地:广东来自Android客户端4楼2017-07-10 22:40
        收起回复
          hamsandwich大法好


          IP属地:广东来自Android客户端5楼2017-07-16 18:52
          回复