Advertisement
Guest User

Untitled

a guest
May 24th, 2015
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. #include "zcommon.acs"
  2.  
  3. function int SquareRoot(int number)
  4. {
  5. if(number <= 3) { return number > 0; }
  6.  
  7. int oldAns = number >> 1, // initial guess
  8. newAns = (oldAns + number / oldAns) >> 1; // first iteration
  9.  
  10. // main iterative method
  11. while(newAns < oldAns)
  12. {
  13. oldAns = newAns;
  14. newAns = (oldAns + number / oldAns) >> 1;
  15. }
  16.  
  17. return oldAns;
  18. }
  19.  
  20. function int ActorLink(int start_tag, int end_tag, str actor)
  21. {
  22. //print(s:"start_tag = ", i:start_tag);
  23. if (ThingCount(0, start_tag) <= 0)
  24. return 0;
  25. // this is the helper script that handles fire spawning
  26.  
  27. //print(s:"end_tag = ", i:end_tag);
  28. if (ThingCount(0, end_tag) <= 0)
  29. return 0;
  30.  
  31. int X = GetActorX(start_tag);
  32. int Y = GetActorY(start_tag);
  33. int Z = GetActorZ(start_tag);
  34.  
  35. int Xd = GetActorX(end_tag)-X;
  36. int Yd = GetActorY(end_tag)-Y;
  37. int Zd = GetActorZ(end_tag)-Z;
  38.  
  39. int Xdi = Xd>>16;
  40. int Ydi = Yd>>16;
  41. int Zdi = Zd>>16;
  42.  
  43. int steps = (SquareRoot(Xdi*Xdi+Ydi*Ydi+Zdi*Zdi)/3);
  44. Xd /= steps;
  45. Yd /= steps;
  46. Zd /= steps;
  47.  
  48. for (int i = 0; i < steps; i++)
  49. {
  50. SpawnForced(actor, X, Y, Z, 0, 0);
  51. X += Xd;
  52. Y += Yd;
  53. Z += Zd;
  54. }
  55.  
  56. return 1;
  57. }
  58.  
  59. script 1 ENTER
  60. {
  61. ActorLink(0, 1, "BulletPuff");
  62. ActorLink(2, 0, "Blood");
  63.  
  64. Delay(10);
  65. restart;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement