Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.39 KB | None | 0 0
  1. public boolean AttackNPCMage(int NPCID) {
  2. if (npcs[NPCID] == null) return false;
  3. if (npcs[npcs[NPCID].attacknpc] == null) {
  4. ResetAttackNPC(NPCID);
  5. return false;
  6. }
  7. int attacknpc = npcs[NPCID].attacknpc;
  8. npcs[NPCID].faceNPC(attacknpc);
  9. int EnemyX = server.npcHandler.npcs[attacknpc].absX;
  10. int EnemyY = server.npcHandler.npcs[attacknpc].absY;
  11. int EnemyHP = server.npcHandler.npcs[attacknpc].HP;
  12. int maxhit = 0;
  13. if (!GoodDistance(EnemyX, EnemyY, npcs[NPCID].absX, npcs[NPCID].absY, 6))
  14. FollowNpcCB(NPCID, attacknpc);
  15. else if (npcs[NPCID].actionTimer == 0)
  16. if (server.npcHandler.npcs[attacknpc].IsDead == true)
  17. ResetAttackNPC(NPCID);
  18. else {
  19. int Projectile = -1;
  20. switch (npcs[NPCID].npcType) {
  21. case 3752:
  22. case 3753:
  23. case 3754:
  24. case 3755:
  25. case 3756:
  26. case 3757:
  27. case 3758:
  28. case 3759:
  29. case 3760:
  30. case 3761:
  31. npcs[NPCID].animNumber = 3882;
  32. Projectile = 659;
  33. maxhit = 8;
  34. break;
  35. case 3762:
  36. case 3763:
  37. case 3764:
  38. case 3765:
  39. case 3766:
  40. case 3767:
  41. case 3768:
  42. case 3769:
  43. case 3770:
  44. case 3771:
  45. npcs[NPCID].animNumber = 3920;
  46. Projectile = 668;
  47. maxhit = 8;
  48. break;
  49. }
  50. if (Projectile != -1) {
  51. int offsetX = (npcs[NPCID].absX - EnemyX) * -1;
  52. int offsetY = (npcs[NPCID].absY - EnemyY) * -1;
  53. GraphicsHandler.NCreateProjectile(npcs[NPCID].absY, npcs[NPCID].absX, offsetY, offsetX, 50, 85, Projectile, 43, 31, attacknpc + 1, 0, 51);
  54. }
  55. npcs[NPCID].animUpdateRequired = true;
  56. npcs[NPCID].updateRequired = true;
  57. if (misc.random(2) != 2) maxhit = 0;
  58. npcs[attacknpc].gethurt(misc.random(maxhit));
  59. npcs[NPCID].actionTimer = 6;
  60. }
  61. return true;
  62. }
  63.  
  64. public boolean AttackNPC(int NPCID) {
  65. if (NPCID < 0) return false;
  66. if (npcs[NPCID] != null) {
  67. if (npcs[npcs[NPCID].attacknpc] != null) {
  68. int attacknpc = npcs[NPCID].attacknpc;
  69. FollowNpcCB(NPCID, attacknpc);
  70. npcs[NPCID].faceNPC(attacknpc);
  71. if (npcs[NPCID].actionTimer == 0) {
  72. int EnemyX = npcs[attacknpc].absX;
  73. int EnemyY = npcs[attacknpc].absY;
  74. int EnemyHP = npcs[attacknpc].HP;
  75. int hitDiff = misc.random(npcs[NPCID].MaxHP / 8);
  76. if (GoodDistance(EnemyX, EnemyY, npcs[NPCID].absX, npcs[NPCID].absY, 1)) {
  77. if (server.npcHandler.npcs[npcs[NPCID].attacknpc].IsDead == true) {
  78. ResetAttackNPC(NPCID);
  79. } else {
  80. //if(npcs[NPCID].npcType >= 3732 && npcs[NPCID].npcType <= 3741) {
  81. npcs[NPCID].animNumber = 3901;
  82. npcs[NPCID].animUpdateRequired = true;
  83. npcs[NPCID].updateRequired = true;
  84. //}
  85. if ((EnemyHP - hitDiff) < 0) {
  86. hitDiff = EnemyHP;
  87. }
  88. if (misc.random(2) != 2) hitDiff = 0;
  89. npcs[attacknpc].gethurt(hitDiff);
  90. npcs[NPCID].actionTimer = 7;
  91. return true;
  92. }
  93. }
  94. }
  95. }
  96. }
  97. return false;
  98. }
  99.  
  100. public boolean ResetAttackNPC(int NPCID) {
  101. npcs[NPCID].IsUnderAttackNpc = false;
  102. npcs[NPCID].IsAttackingNPC = false;
  103. npcs[NPCID].RandomWalk = true;
  104. return true;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement