Advertisement
Guest User

Untitled

a guest
Aug 17th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. stock check_way(const iMonster, const Float:vecFrom[3], const Float:vecTo[3], const iTarget)
  2. {
  3. static Float:vecWay[3], Float:wayAngles[3], Float:vecMove[3]
  4.  
  5. xs_vec_sub(vecTo, vecFrom, vecWay)
  6.  
  7. vector_to_angle(vecWay, wayAngles)
  8.  
  9. angle_vector(wayAngles, ANGLEVECTOR_FORWARD, vecMove)
  10.  
  11. xs_vec_normalize(vecMove, vecMove)
  12.  
  13. xs_vec_mul_scalar(vecMove, 128.0, vecMove)
  14.  
  15. xs_vec_add(vecFrom, vecMove, vecMove)
  16.  
  17. static Float:flFraction, pHit
  18.  
  19. static iTr
  20. iTr=create_tr2()
  21.  
  22. engfunc(EngFunc_TraceMonsterHull, iMonster, vecFrom, vecMove, DONT_IGNORE_MONSTERS, iMonster, iTr)
  23. //engfunc(EngFunc_TraceHull, vecFrom, vecMove, DONT_IGNORE_MONSTERS, HULL_HUMAN, iMonster, iTr)
  24.  
  25. //test_line(vecFrom, vecMove)
  26.  
  27. get_tr2(iTr, TR_flFraction, flFraction)
  28. pHit=get_tr2(iTr, TR_pHit)
  29.  
  30. free_tr2(iTr)
  31.  
  32. //client_print(0, print_chat, "0 %f", flFraction)
  33.  
  34. if(flFraction!=1.0&&pHit!=iTarget)
  35. {
  36. static Float:temp, Float:tempVec[3]
  37.  
  38. wayAngles[1]+=30.0
  39.  
  40. angle_vector(wayAngles, ANGLEVECTOR_FORWARD, vecMove)
  41.  
  42. xs_vec_normalize(vecMove, vecMove)
  43.  
  44. xs_vec_mul_scalar(vecMove, 128.0, vecMove)
  45.  
  46. xs_vec_add(vecFrom, vecMove, vecMove)
  47.  
  48. iTr=create_tr2()
  49.  
  50. engfunc(EngFunc_TraceHull, vecFrom, vecMove, DONT_IGNORE_MONSTERS, HULL_HUMAN, iMonster, iTr)
  51.  
  52. //test_line(vecFrom, vecMove)
  53.  
  54. xs_vec_copy(vecMove, tempVec)
  55.  
  56. get_tr2(iTr, TR_flFraction, flFraction)
  57. pHit=get_tr2(iTr, TR_pHit)
  58. temp=flFraction
  59.  
  60. free_tr2(iTr)
  61.  
  62. //client_print(0, print_chat, "1 %f", flFraction)
  63.  
  64. wayAngles[1]-=60.0
  65.  
  66. angle_vector(wayAngles, ANGLEVECTOR_FORWARD, vecMove)
  67.  
  68. xs_vec_normalize(vecMove, vecMove)
  69.  
  70. xs_vec_mul_scalar(vecMove, 128.0, vecMove)
  71.  
  72. xs_vec_add(vecFrom, vecMove, vecMove)
  73.  
  74. iTr=create_tr2()
  75.  
  76. engfunc(EngFunc_TraceHull, vecFrom, vecMove, DONT_IGNORE_MONSTERS, HULL_HUMAN, iMonster, iTr)
  77.  
  78. //test_line(vecFrom, vecMove)
  79.  
  80. get_tr2(iTr, TR_flFraction, flFraction)
  81. pHit=get_tr2(iTr, TR_pHit)
  82.  
  83. free_tr2(iTr)
  84.  
  85. //client_print(0, print_chat, "2 %f", flFraction)
  86.  
  87. if(temp>flFraction)
  88. SetMonsterMoveLoc(iMonster, tempVec)
  89. else
  90. SetMonsterMoveLoc(iMonster, vecMove)
  91. }
  92. else
  93. SetMonsterMoveLoc(iMonster, vecTo)
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement