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

MOD中国同盟社

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1080|回复: 3

[求助] 如何让实体攻击敌人像子弹一样暴血【高手来】 [复制链接]

Rank: 5Rank: 5

帖子
247
精华
0
声望
1053 点
金币
129 Mold
被赞许
2 次
注册时间
2008-9-15
发表于 2011-10-7 00:21:35 |显示全部楼层
如题,因为我自己制作了一个插件,按鼠标左边射出子弹(实体)击中敌人就会暴血,但是那个暴血我是直接在暴血插件里面移过来的,所以暴血是在身体随机位置爆出的,但是我想弄成像枪的子弹一样,射哪哪就暴血。

我用get_user_origin(ptd, origin, 3)没用,射到敌人,血却在自己的身上

  1. new Float:Damage = 250.0
  2. new aimOrigin[3],Float:aimOrigin2[3]
  3. get_user_origin(id, aimOrigin, 3)

  4. aimOrigin2[0] = float(aimOrigin[0])
  5. aimOrigin2[1] = float(aimOrigin[1])
  6. aimOrigin2[2] = float(aimOrigin[2])

  7.   make_blood(aimOrigin2, Damage, target);

  8. stock make_blood(const Float:vTraceEnd[3], Float:Damage, hitEnt) {
  9. new bloodColor = ExecuteHam(Ham_BloodColor, hitEnt);
  10. if (bloodColor == -1)
  11.   return;
  12. new amount = floatround(Damage);
  13. amount *= 2; //according to HLSDK
  14. message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  15. write_byte(TE_BLOODSPRITE);
  16. write_coord(floatround(vTraceEnd[0]));
  17. write_coord(floatround(vTraceEnd[1]));
  18. write_coord(floatround(vTraceEnd[2]));
  19. write_short(m_iBlood[1]);
  20. write_short(m_iBlood[0]);
  21. write_byte(bloodColor);
  22. write_byte(min(max(3, amount/10), 16));
  23. message_end();
  24. }
复制代码

但是我用暴血插件里面就没事,血是在敌人身上爆的,但是我就不知道怎么想子弹一样,射哪哪就暴血
  1.      new iOrigin[3]
  2.      get_origin_int(ptd, iOrigin)
  3.      fx_extra_blood(iOrigin)

  4. //Custom function to get origin with FM and return it as an integer
  5. public get_origin_int(index, origin[3])
  6. {
  7. new Float:FVec[3]
  8. pev(index,pev_origin,FVec)
  9. origin[0] = floatround(FVec[0])
  10. origin[1] = floatround(FVec[1])
  11. origin[2] = floatround(FVec[2])
  12. return 1
  13. }
  14. fx_extra_blood(origin[3])
  15. {
  16. new x, y, z
  17. for(new i = 0; i < 3; i++) {
  18.   x = random_num(-15,15)
  19.   y = random_num(-15,15)
  20.   z = random_num(-20,25)
  21.   for(new j = 0; j < 2; j++) {
  22.    message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  23.    write_byte(TE_BLOODSPRITE)
  24.    write_coord(origin[0]+(x*j))
  25.    write_coord(origin[1]+(y*j))
  26.    write_coord(origin[2]+(z*j))
  27.    write_short(spr_blood_spray)
  28.    write_short(spr_blood_drop)
  29.    write_byte(BLOOD_COLOR_RED) // color index
  30.    write_byte(15) // size
  31.    message_end()
  32.   }
  33. }
  34. }
复制代码

注意地方:我那插件是一个人按鼠标左键,然后创建实体,射出去
我在想是不是get_user_origin这个只能用在玩家上,而不可以用在实体上

触碰敌人的代码(只是给各位看开头)
  1. public pfn_touch(ptr, ptd)
  2. {
  3. ...................
  4. }
复制代码


各位高手,希望帮忙解决一下,小弟感激不尽
系统错误,请联系管理员

使用道具 举报

Rank: 5Rank: 5

帖子
263
精华
0
声望
746 点
金币
123 Mold
被赞许
2 次
注册时间
2011-8-26
发表于 2011-10-7 11:20:32 |显示全部楼层
不懂  帮你顶一下

使用道具 举报

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

帖子
406
精华
0
声望
9411 点
金币
1421 Mold
被赞许
4 次
注册时间
2009-12-18
发表于 2011-10-7 14:27:07 |显示全部楼层
利用實體弄出一條TraceLine…之後取得 TR_vecEndPos 就是你要噴血的位置…

使用道具 举报

Rank: 5Rank: 5

帖子
247
精华
0
声望
1053 点
金币
129 Mold
被赞许
2 次
注册时间
2008-9-15
发表于 2011-10-15 11:19:32 |显示全部楼层
LS帮忙写一段详细的代码,小弟感激不尽
系统错误,请联系管理员

使用道具 举报

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

回顶部