设为首页收藏本站新闻投稿

MOD中国同盟社

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 446|回复: 2

[求助] [插件]TraceAttack的计算晚了一次攻击?伤害爆头显示   [复制链接]

Rank: 10Rank: 10Rank: 10

帖子
1250
精华
0
声望
3577 点
金币
470 Mold
被赞许
45 次
注册时间
2010-7-13

可爱小猫

发表于 2013-1-2 16:04:15 |显示全部楼层
80金币
  1. public fw_TouchRaceWeapon(ent, id)
  2. {
  3.         if (!pev_valid(ent)) return
  4.         new class[33]
  5.         pev(ent, pev_classname, class, 32)
  6.         if (!equal(class, "race6_wpn0")) return
  7.         new owner=entity_get_edict(ent,EV_ENT_owner)
  8.         if (id==owner) return
  9.         if (pev(id,pev_takedamage))
  10.         {
  11.                 new Float:org[3], Float:org2[3]
  12.                 pev(ent, pev_origin, org)
  13.                 pev(id, pev_origin, org2)
  14.                 aim_origin(ent, org2, 180.0)
  15.                 new trace=create_tr2()
  16.                 new Float:dest[3]
  17.                 pev(ent, pev_v_angle, dest)
  18.                 engfunc(EngFunc_MakeVectors, dest)
  19.                 new Float:vfwd[3]
  20.                 global_get(glb_v_forward, vfwd)
  21.                 xs_vec_mul_scalar(vfwd, 36.0, dest)
  22.                 xs_vec_add(org, dest, dest)
  23.                 engfunc(EngFunc_TraceLine, org, dest, 0, ent, trace)
  24.                 new Float:dmg=random_float(21.0,27.0)
  25.                 if (is_user_alive(id) && war3fti_get_immune(id)!=1 && get_user_team(id)!=get_user_team(owner))
  26.                 {
  27.                         new hit=get_tr2(trace, TR_iHitgroup)
  28.                         if (hit==HIT_HEAD) dmg*=3.0
  29.                         else if (hit==HIT_CHEST) dmg*=1.0
  30.                         else if (hit==HIT_STOMACH) dmg*=1.2
  31.                         else if (hit==HIT_LEFTARM) dmg*=1.0
  32.                         else if (hit==HIT_RIGHTARM) dmg*=1.0
  33.                         else if (hit==HIT_LEFTLEG) dmg*=0.75
  34.                         else if (hit==HIT_RIGHTLEG) dmg*=0.75
  35.                         else if (hit==HIT_GENERIC) dmg*=1.0
  36.                         new Float:end[3]
  37.                         get_tr2(trace, TR_vecEndPos, end)
  38.                         SpawnBlood(end, 247, floatround(dmg))
  39.                 }
  40.                 if (entity_range(ent,owner)<=80.0) dmg+=18.0
  41.                 if (war3fti_get_phoenix(owner)==1) dmg+=10.0
  42.                 ExecuteHamB(Ham_TakeDamage, id, fm_get_wpnentity(owner,CSW_KNIFE), owner, dmg, DMG_BULLET)
  43.                 ExecuteHamB(Ham_TraceAttack, id, owner, 100.0, vfwd, trace, DMG_NEVERGIB|DMG_BULLET)
  44.                 free_tr2(trace)
  45.                 remove_entity(ent)
  46.                 return
  47.         }
  48.         pev(id, pev_classname, class, 32)
  49.         if (equal(class, "phoenix")) return
  50.         remove_entity(ent)
  51. }
复制代码
如果ExecuteHamB(Ham_TakeDamage放在ExecuteHamB(Ham_TraceAttack的后面(像NST刀子代码那样),
会变成:攻击玻璃,玻璃碎,再攻击其他物体,玻璃再碎。
当前状态是:
①攻击一个目标,目标受伤(还没死),攻击另一个目标,当前目标受伤(还没死),前一个目标瞬间被秒杀(100血伤害)。
②攻击一个队友(无伤害),攻击另一个队友,前队友死……
③攻击一个队友(无伤害),攻击一块玻璃,攻击仓库车上雷达,队友死……
④攻击仓库车上雷达直至爆掉,攻击一个队友,雷达再爆。攻击另一个队友,前队友死……
--------------------------------------
问题应该是trace,
没有trace就不能使用ExecuteHamB(Ham_TraceAttack.
而没有使用ExecuteHamB(Ham_TraceAttack就不能显示是否爆头,而我想要的其实只是显示是否爆头(右上角杀人图标)。
整个插件的效果是:刀子左键攻击,射出一个光球,光球撞击目标后产生伤害。
--------------------------------------
这个问题能够修复吗?或者说谁知道正确的设置方法?真不知道为什么NST就没事……

已有 2 人评分被赞许 收起 理由
星月晨光 + 1 没人回答╮(╯▽╰)╭
1019914068 + 1 好久不见水蛭

总评分: 被赞许 + 2   查看全部评分

使用道具 举报

Rank: 5Rank: 5

帖子
481
精华
0
声望
1184 点
金币
422 Mold
被赞许
3 次
注册时间
2010-4-11
发表于 2013-2-16 11:09:40 |显示全部楼层
如果你看cpp內的TraceAttack..
你會發現它並沒有即時的TakeDamage..
而是用上了AddMultiDamage..
用來記錄victim和累積傷害
而TakeDamage的其中一個條件..
就是攻擊不同的victim..
所以會出現你說的情況..
暫時沒有解決辦法..
除了使用Orpheu

使用道具 举报

Rank: 2

帖子
22
精华
0
声望
139 点
金币
33 Mold
被赞许
0 次
注册时间
2011-10-5
发表于 2013-2-18 11:12:57 |显示全部楼层
如果你看CPP内的TraceAttack..
你会发现它并没有即时的TakeDamage..
而是用上了AddMultiDamage..
用来记录受害者和累积伤害
而TakeDamage的其中一个条件......
就是攻击不同的受害者......
所以会出现你说的情况......
暂时没有解决办法..
除了使用Orpheu



中文版。。。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

回顶部