Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 73.44 KB | None | 0 0
  1.  
  2. public void process() {
  3. for (int i = 0; i < maxNPCs; i++) {
  4. if (npcs[i] != null) {
  5. if (npcs[i].initialized)
  6. npcs[i].clearUpdateFlags();
  7. else npcs[i].initialized = true;
  8. if (npcs[i].actionTimer > 0) {
  9. npcs[i].actionTimer -= 1;
  10. }
  11. if (npcs[i].immune > 0)
  12. npcs[i].immune--;
  13.  
  14. if (npcs[i].npcType == 396 && misc.random(6) == 1) {
  15. npcs[i].textUpdate = "IM HUNGRY FOR SUM FISHIEZ, I WANT " + (400 - PlayerHandler.trollfish) + " MOAR!";
  16. npcs[i].textUpdateRequired = true;
  17. npcs[i].updateRequired = true;
  18. }
  19.  
  20. if (npcs[i].npcType == 409) {
  21. if (server.playerHandler.players[npcs[i].barrowsyours] == null) {
  22. npcs[i] = null;
  23. continue;
  24. }
  25. if (npcs[i].actionTimer == 32)
  26. npcs[i].textUpdate = "Greetings, master " + server.playerHandler.players[npcs[i].barrowsyours].playerName;
  27. if (npcs[i].actionTimer == 20)
  28. npcs[i].textUpdate = "I'm losing my patience, talk to me NOW!";
  29. if (npcs[i].actionTimer == 0) {
  30. server.playerHandler.players[npcs[i].barrowsyours].teleportToX = 3222;
  31. server.playerHandler.players[npcs[i].barrowsyours].teleportToY = 3222;
  32. server.playerHandler.players[npcs[i].barrowsyours].heightLevel = 0;
  33. npcs[i].absX = 0;
  34. npcs[i].absY = 0;
  35. npcs[i] = null;
  36. continue;
  37. }
  38. if (npcs[i].actionTimer == 20 || npcs[i].actionTimer == 32) {
  39. npcs[i].textUpdateRequired = true;
  40. npcs[i].updateRequired = true;
  41. }
  42. }
  43. if (npcs[i].npcType == 2618 && misc.random(5) == 1) {
  44. if (!PlayerHandler.pitschampion.equalsIgnoreCase("nobody"))
  45. npcs[i].textUpdate = PlayerHandler.pitschampion + " is the current Fight Pits champion!";
  46. else
  47. npcs[i].textUpdate = "There is no current champion.";
  48. npcs[i].textUpdateRequired = true;
  49. npcs[i].updateRequired = true;
  50. }
  51. if (npcs[i].EntangleDelay > 0) npcs[i].EntangleDelay -= 1;
  52. if (npcs[i].blocktimer > 0) npcs[i].blocktimer -= 1;
  53. if (npcs[i].hurtrangedelay > 0) {
  54. npcs[i].hurtrangedelay -= 1;
  55. if (npcs[i].hurtrangedelay == 1) {
  56. client RAWR = (client) server.playerHandler.players[npcs[i].StartKilling];
  57. if (RAWR == null) continue;
  58. if (RAWR.defendnpcrange(i) || RAWR.PRange) {
  59. npcs[i].hurtrange = 0;
  60. } else {
  61. if (RAWR.playerEquipment[RAWR.playerRing] == 2550) {
  62. int recoildmg = 0;
  63. recoildmg += npcs[i].hurtrange * .1;
  64. if (recoildmg <= 0) {
  65. recoildmg = 1;
  66. }
  67.  
  68. if (!server.npcHandler.npcs[i].hitUpdateRequired) {
  69. server.npcHandler.npcs[i].hitDiff = recoildmg;
  70. server.npcHandler.npcs[i].HP -= recoildmg;
  71. server.npcHandler.npcs[i].hitUpdateRequired = true;
  72. server.npcHandler.npcs[i].updateRequired = true;
  73. } else if (server.npcHandler.npcs[i].hitUpdateRequired && !server.npcHandler.npcs[i].hitUpdateRequired2) {
  74. server.npcHandler.npcs[i].hitDiff2 = recoildmg;
  75. server.npcHandler.npcs[i].HP -= recoildmg;
  76. server.npcHandler.npcs[i].hitUpdateRequired2 = true;
  77. server.npcHandler.npcs[i].updateRequired = true;
  78. }
  79.  
  80.  
  81. RAWR.recoil += 1;
  82. if (RAWR.recoil == 40) {
  83. RAWR.recoil = 0;
  84. RAWR.sendMessage("Your ring crumbles to dust");
  85. RAWR.playerEquipment[RAWR.playerRing] = -1;
  86. RAWR.playerEquipmentN[RAWR.playerRing] = -1;
  87. RAWR.outStream.createFrameVarSizeWord(34);
  88. RAWR.outStream.writeWord(1688);
  89. RAWR.outStream.writeByte(RAWR.playerRing);
  90. RAWR.outStream.writeWord(0);
  91. RAWR.outStream.writeByte(0); //amount
  92. RAWR.outStream.endFrameVarSizeWord();
  93. }
  94. }
  95. }
  96. if (RAWR.blocktimer == 0) {
  97. RAWR.startAnimation(RAWR.GetBlockAnim(RAWR.playerEquipment[RAWR.playerWeapon]));
  98. }
  99. RAWR.gethurt(npcs[i].hurtrange);
  100. }
  101. }
  102. if (npcs[i].hurtmagedelay > 0) {
  103. npcs[i].hurtmagedelay--;
  104. if (npcs[i].hurtmagedelay == 1) {
  105. boolean dontanim = false;
  106. client RAWR = (client) server.playerHandler.players[npcs[i].StartKilling];
  107. if (RAWR == null) continue;
  108. if (npcs[i].npcType == 13) {
  109. RAWR.gfx100(101);
  110. }
  111. if (npcs[i].npcType == 2025) {
  112. RAWR.gfx100(157);
  113. }
  114. if (npcs[i].npcType == 2745) {
  115. RAWR.gfx100(157);
  116. }
  117. if (npcs[i].npcType == 2743) {
  118. RAWR.gfx100(446);
  119. }
  120. if (npcs[i].npcType == 1643) {
  121. RAWR.gfx100(331);
  122. }
  123. if (npcs[i].npcType == 174) {
  124. if (npcs[i].attacktype == 1)
  125. RAWR.gfx100(104);
  126. else
  127. RAWR.gfx100(95);
  128. } else if (npcs[i].npcType >= 907 && npcs[i].npcType <= 911) {
  129. int number = misc.random(2);
  130. if (number == 2) {
  131. RAWR.gfx100(77);
  132. } else if (number == 1) {
  133. RAWR.gfx100(78);
  134. } else {
  135. RAWR.gfx100(76);
  136. }
  137. } else if (npcs[i].npcType == 2882 || npcs[i].npcType == 2884) {
  138. RAWR.gfx100(477);
  139. }
  140. if (npcs[i].npcType == 3200) {
  141. if (npcs[i].attacktype == 0) {
  142. RAWR.gfx100(558);
  143. } else if (npcs[i].attacktype == 1) {
  144. RAWR.startAnimation(3170);
  145. dontanim = true;
  146. RAWR.ResetAttackNPC();
  147. RAWR.gfx100(552);
  148. } else if (npcs[i].attacktype == 2) {
  149. RAWR.remove(RAWR.playerEquipment[3], 3);
  150. RAWR.gfx100(555);
  151. }
  152. }
  153. if (npcs[i].npcType == 50) {
  154. boolean splashed = false;
  155. if (!RAWR.npcsplash(i)) {
  156. splashed = true;
  157. }
  158. if (npcs[i].attacktype == 0) {
  159. RAWR.gfx100(430);
  160. }
  161. if (npcs[i].attacktype == 1) {
  162. RAWR.gfx100(429);
  163. if (!splashed)
  164. RAWR.poison(8);
  165. else
  166. RAWR.poison(4);
  167. }
  168. if (npcs[i].attacktype == 2) {
  169. RAWR.gfx100(431);
  170. if (!splashed)
  171. RAWR.EntangleDelay = 8;
  172. else
  173. RAWR.EntangleDelay = 4;
  174. }
  175. if (npcs[i].attacktype == 3) {
  176. RAWR.gfx100(428);
  177. if (!splashed)
  178. RAWR.lowerstats(npcs[i].hurtmage / 6);
  179. else
  180. RAWR.lowerstats(npcs[i].hurtmage / 10);
  181. }
  182. }
  183. if ((npcs[i].npcType == 174 && npcs[i].attacktype == 1) || (!RAWR.npcsplash(i) || RAWR.PMage) && npcs[i].npcType != 742 && npcs[i].npcType != 942 && npcs[i].npcType != 50 && npcs[i].npcType != 3200 && npcs[i].npcType != 1592 && npcs[i].npcType != 1590 && npcs[i].npcType != 1591) {
  184. npcs[i].hurtmage = 0;
  185. if (npcs[i].npcType == 174 && npcs[i].attacktype == 1) {
  186. if (RAWR.playerLevel[1] > 0) {
  187. RAWR.playerLevel[2]--;
  188. RAWR.writestats();
  189. }
  190. } else {
  191. if (npcs[i].npcType != 2745)
  192. RAWR.gfx100(85);
  193. }
  194. } else {
  195. if (npcs[i].npcType == 1913) {
  196. RAWR.EntangleDelay = 20;
  197. RAWR.stillgfx(369, RAWR.absY, RAWR.absX);
  198. RAWR.WalkTo(0, 0);
  199. }
  200. if (npcs[i].npcType == 1961) {
  201. RAWR.EntangleDelay = 10;
  202. RAWR.gfx100(179);
  203. RAWR.teleportToX = RAWR.absX;
  204. RAWR.teleportToY = RAWR.absY;
  205. }
  206. if (RAWR.blocktimer == 0 && !dontanim) {
  207. RAWR.startAnimation(RAWR.GetBlockAnim(RAWR.playerEquipment[RAWR.playerWeapon]));
  208. }
  209. RAWR.gethurt(npcs[i].hurtmage);
  210. }
  211. }
  212. }
  213. if (npcs[i].poisonTimer > 0) {
  214. npcs[i].poisonTimer -= 1;
  215. npcs[i].poisondmg = false;
  216. if (npcs[i].poisonTimer == 1 && npcs[i].poisondamage != 0) {
  217. Poison(i);
  218. }
  219. if (npcs[i].poisondamg == 1) {
  220. npcs[i].poisondamg = 4;
  221. npcs[i].poisondamage -= 1;
  222. }
  223. }
  224. if (npcs[i].npcType >= 3732 && npcs[i].npcType <= 3771 && !npcs[i].fighting) {
  225. if (npcs[i].npcType >= 3747 && npcs[i].npcType <= 3751) {
  226. } else {
  227. npcs[i].IsAttackingNPC = true;
  228. npcs[i].attacknpc = server.playerHandler.voidknight;
  229. npcs[i].RandomWalk = false;
  230. }
  231. }
  232. if ((npcs[i].npcType == 1265 || npcs[i].npcType == 1267 || npcs[i].npcType == 2889 || npcs[i].npcType == 2452) && npcs[i].RandomWalk && misc.random(3) == 1) {
  233.  
  234. boolean spawned = false;
  235. try {
  236. for (int H = 0; H < PlayerHandler.maxPlayers; H++) {
  237. if (spawned) continue;
  238. if (server.playerHandler.players[H] == null) continue;
  239. client WQ = (client) server.playerHandler.players[H];
  240. if (WQ.GoodDistance(WQ.absX, WQ.absY, npcs[i].absX, npcs[i].absY, 1)) {
  241. newNPC(npcs[i].npcType + 1, npcs[i].absX, npcs[i].absY, npcs[i].heightLevel, npcs[i].moverangeX1, npcs[i].moverangeY1, npcs[i].moverangeX2, npcs[i].moverangeY2, 0, 50, true);
  242. npcs[i].absX = 1;
  243. npcs[i].absY = 1;
  244. spawned = true;
  245. npcs[i] = null;
  246. continue;
  247. }
  248. }
  249.  
  250. } catch (Exception E) {
  251. }
  252. if (spawned) continue;
  253. }
  254. if (npcs[i].npcType == 1266 || npcs[i].npcType == 1268 || npcs[i].npcType == 2890 || npcs[i].npcType == 2453) {
  255.  
  256. boolean spawned = false;
  257. try {
  258. for (int H = 0; H < PlayerHandler.maxPlayers; H++) {
  259. if (spawned) ;
  260. if (server.playerHandler.players[H] == null) continue;
  261. client WQ = (client) server.playerHandler.players[H];
  262. if (WQ.GoodDistance(WQ.absX, WQ.absY, npcs[i].absX, npcs[i].absY, 1)) {
  263. newNPC(npcs[i].npcType - 1, npcs[i].absX, npcs[i].absY, npcs[i].heightLevel, npcs[i].moverangeX1, npcs[i].moverangeY1, npcs[i].moverangeX2, npcs[i].moverangeY2, 0, 50, true);
  264. npcs[i].absX = 1;
  265. npcs[i].absY = 1;
  266. spawned = true;
  267. npcs[i] = null;
  268. continue;
  269. }
  270. }
  271.  
  272. } catch (Exception E) {
  273. }
  274. if (spawned) continue;
  275. }
  276. if (npcs[i].walkTimer > 0) {
  277. npcs[i].walkTimer--;
  278. }
  279. if (npcs[i].npcType == 3777 && !npcs[i].IsDead) {
  280. if (npcs[i].actionTimer == 0) {
  281. npcs[i].actionTimer = 30;
  282. int pc = randompcnpc();
  283. if (!GetNpcName(pc).toLowerCase().contains("shifter")) {
  284. newNPC(pc, 2631, 2592 + misc.random(1), npcs[i].heightLevel, 2681, 2598, 2630, 2569, 1, GetNpcListHP(pc), false);
  285. } else {
  286. newNPC(pc, 2648 + misc.random(10), 2585 + misc.random(10), npcs[i].heightLevel, 2662, 2599, 2648, 2585, 1, GetNpcListHP(pc), false);
  287. }
  288. }
  289. }
  290. if (npcs[i].npcType == 3778 && !npcs[i].IsDead) {
  291. if (npcs[i].actionTimer == 0) {
  292. npcs[i].actionTimer = 30;
  293. int pc = randompcnpc();
  294. if (!GetNpcName(pc).toLowerCase().contains("shifter")) {
  295. newNPC(pc, 2679, 2592 + misc.random(1), npcs[i].heightLevel, 2681, 2598, 2630, 2569, 1, GetNpcListHP(pc), false);
  296. } else {
  297. newNPC(pc, 2648 + misc.random(10), 2585 + misc.random(10), npcs[i].heightLevel, 2662, 2599, 2648, 2585, 1, GetNpcListHP(pc), false);
  298. }
  299. }
  300. }
  301. if ((npcs[i].npcType == 3779 || npcs[i].npcType == 3780) && !npcs[i].IsDead) {
  302. if (npcs[i].actionTimer == 0) {
  303. npcs[i].actionTimer = 30;
  304. int pc = randompcnpc();
  305. if (!GetNpcName(pc).toLowerCase().contains("shifter")) {
  306. newNPC(pc, npcs[i].absX, npcs[i].absY + 1, npcs[i].heightLevel, 2681, 2598, 2630, 2569, 1, GetNpcListHP(pc), false);
  307. } else {
  308. newNPC(pc, 2648 + misc.random(10), 2585 + misc.random(10), npcs[i].heightLevel, 2662, 2599, 2648, 2585, 1, GetNpcListHP(pc), false);
  309. }
  310. }
  311. }
  312. if (!npcs[i].IsDead) {
  313. if (npcs[i].npcType >= 3747 && npcs[i].npcType <= 3751 && !npcs[i].fighting && npcs[i].actionTimer == 0) {
  314. if (PlayerHandler.purpleportal != -1 && npcs[PlayerHandler.purpleportal].HP < 200 && !npcs[PlayerHandler.purpleportal].IsDead) {
  315. if (npcs[i].closeenough(npcs[PlayerHandler.purpleportal].absX, npcs[PlayerHandler.purpleportal].absY, 7)) {
  316. if (npcs[i].closeenough(npcs[PlayerHandler.purpleportal].absX, npcs[PlayerHandler.purpleportal].absY, 1))
  317. healport(i, PlayerHandler.purpleportal);
  318. else
  319. FollowNpc(i, PlayerHandler.purpleportal);
  320. }
  321. }
  322. }
  323. if (npcs[i].npcType >= 3747 && npcs[i].npcType <= 3751 && !npcs[i].fighting && npcs[i].actionTimer == 0) {
  324. if (PlayerHandler.blueportal != -1 && npcs[PlayerHandler.blueportal].HP < 200 && !npcs[PlayerHandler.blueportal].IsDead) {
  325. if (npcs[i].closeenough(npcs[PlayerHandler.blueportal].absX, npcs[PlayerHandler.blueportal].absY, 7)) {
  326. if (npcs[i].closeenough(npcs[PlayerHandler.blueportal].absX, npcs[PlayerHandler.blueportal].absY, 1))
  327. healport(i, PlayerHandler.blueportal);
  328. else
  329. FollowNpc(i, PlayerHandler.blueportal);
  330. }
  331. }
  332. }
  333. if (npcs[i].npcType >= 3747 && npcs[i].npcType <= 3751 && !npcs[i].fighting && npcs[i].actionTimer == 0) {
  334. if (PlayerHandler.yellowportal != -1 && npcs[PlayerHandler.yellowportal].HP < 200 && !npcs[PlayerHandler.yellowportal].IsDead) {
  335. if (npcs[i].closeenough(npcs[PlayerHandler.yellowportal].absX, npcs[PlayerHandler.yellowportal].absY, 7)) {
  336. if (npcs[i].closeenough(npcs[PlayerHandler.yellowportal].absX, npcs[PlayerHandler.yellowportal].absY, 1))
  337. healport(i, PlayerHandler.yellowportal);
  338. else
  339. FollowNpc(i, PlayerHandler.yellowportal);
  340. }
  341. }
  342. }
  343. if (npcs[i].npcType >= 3747 && npcs[i].npcType <= 3751 && !npcs[i].fighting && npcs[i].actionTimer == 0) {
  344. if (PlayerHandler.redportal != -1 && npcs[PlayerHandler.redportal].HP < 200 && !npcs[PlayerHandler.redportal].IsDead) {
  345. if (npcs[i].closeenough(npcs[PlayerHandler.redportal].absX, npcs[PlayerHandler.redportal].absY, 7)) {
  346. if (npcs[i].closeenough(npcs[PlayerHandler.redportal].absX, npcs[PlayerHandler.redportal].absY, 1))
  347. healport(i, PlayerHandler.redportal);
  348. else
  349. FollowNpc(i, PlayerHandler.redportal);
  350. }
  351. }
  352. }
  353. if (npcs[i].npcType == 708 && misc.random(50) == 1) {
  354. Graphics(86, npcs[i].absX, npcs[i].absY);
  355. Imp(npcs[i].HP);
  356. npcs[i].absX = 0;
  357. npcs[i].absY = 0;
  358. npcs[i] = null;
  359. continue;
  360. }
  361. if (npcs[i].npcType == 1431 || npcs[i].npcType == 1432) {
  362. if (npcs[i].actionTimer == 0) {
  363. if (npcs[i].IsDead == false) {
  364. for (int r = 0; r < PlayerHandler.maxPlayers; r++) {
  365. if (server.playerHandler.players[r] != null) {
  366. client PLAYER = (client) server.playerHandler.players[r];
  367. if (PLAYER.distanceToPoint(npcs[i].absX, npcs[i].absY) == 1) {
  368. npcs[i].animNumber = 1402;
  369. npcs[i].updateRequired = true;
  370. npcs[i].animUpdateRequired = true;
  371. PLAYER.jailtimer = 5;
  372. if (!PLAYER.hitUpdateRequired) {
  373. PLAYER.hitDiff = 15;
  374. PLAYER.NewHP -= 15;
  375. PLAYER.updateRequired = true;
  376. PLAYER.hitUpdateRequired = true;
  377. } else if (PLAYER.hitUpdateRequired && !PLAYER.hitUpdateRequired2) {
  378. PLAYER.hitDiff2 = 15;
  379. PLAYER.NewHP -= 15;
  380. PLAYER.updateRequired = true;
  381. PLAYER.hitUpdateRequired2 = true;
  382. } else {
  383. PLAYER.appendHitUpdate(PLAYER.inStream);
  384. }
  385. npcs[i].actionTimer = 6;
  386. }
  387. }
  388. }
  389. }
  390. }
  391. }
  392. if (!npcs[i].fighting && npcs[i].RandomWalk) {
  393. boolean AGGRESSIVE = false;
  394. for (int WTF = 0; WTF < Aggressive.length; WTF++) {
  395. if (Aggressive[WTF] == npcs[i].npcType) {
  396. AGGRESSIVE = true;
  397. }
  398. }
  399. if (AGGRESSIVE) {
  400. for (int PLAYER = 0; PLAYER < PlayerHandler.maxPlayers; PLAYER++) {
  401. if (server.playerHandler.players[PLAYER] == null) continue;
  402. if (server.playerHandler.players[PLAYER].areatimer > 500) continue;
  403. client person = (client) server.playerHandler.players[PLAYER];
  404. if (npcs[i].closeenough(person.absX, person.absY, npcs[i].npcType == 2894 || npcs[i].npcType == 2892 ? 10 : 5))
  405. npcs[i].RandomWalk = false;
  406. npcs[i].IsUnderAttack = true;
  407. npcs[i].StartKilling = PLAYER;
  408. }
  409. }
  410. }
  411. if (npcs[i].RandomWalk == true && npcs[i].walkTimer == 0 && npcs[i].moverangeX1 > 0 && npcs[i].moverangeY1 > 0 && npcs[i].moverangeX2 > 0 && npcs[i].moverangeY2 > 0 && npcs[i].npcType != 2892 && npcs[i].npcType != 2894 & npcs[i].npcType != 1456) { //Move NPC
  412. if (npcs[i].npcType == 1266 || npcs[i].npcType == 1268 || npcs[i].npcType == 2890 || npcs[i].npcType == 2453)
  413. continue;
  414. if (npcs[i].npcType == 1431 || npcs[i].npcType == 1432) {
  415. int X = npcs[i].absX;
  416. int Y = npcs[i].absY;
  417. if (X == 2767 && Y == 2801 && npcs[i].back == false) {
  418. npcs[i].moveX = 0;
  419. npcs[i].moveY = -1;
  420. }
  421. if (X == 2767 && Y == 2800) {
  422. npcs[i].moveX = 0;
  423. npcs[i].moveY = -1;
  424. }
  425. if (X == 2767 && Y == 2799) {
  426. npcs[i].moveX = 0;
  427. npcs[i].moveY = -1;
  428. }
  429. if (X == 2767 && Y == 2798) {
  430. npcs[i].moveX = 1;
  431. npcs[i].moveY = 0;
  432. }
  433. if (X == 2768 && Y == 2798) {
  434. npcs[i].moveX = 1;
  435. npcs[i].moveY = 0;
  436. }
  437. if (X == 2769 && Y == 2798) {
  438. npcs[i].moveX = 1;
  439. npcs[i].moveY = 0;
  440. }
  441. if (X == 2770 && Y == 2798) {
  442. npcs[i].moveX = 0;
  443. npcs[i].moveY = 1;
  444. }
  445. if (X == 2770 && Y == 2799) {
  446. npcs[i].moveX = 0;
  447. npcs[i].moveY = 1;
  448. }
  449. if (X == 2770 && Y == 2800) {
  450. npcs[i].moveX = 0;
  451. npcs[i].moveY = 1;
  452. }
  453. if (X == 2770 && Y == 2801) {
  454. npcs[i].moveX = 1;
  455. npcs[i].moveY = 0;
  456. }
  457. if (X == 2771 && Y == 2801) {
  458. npcs[i].moveX = 1;
  459. npcs[i].moveY = 0;
  460. }
  461. if (X == 2772 && Y == 2801) {
  462. npcs[i].moveX = 0;
  463. npcs[i].moveY = -1;
  464. }
  465. if (X == 2772 && Y == 2800) {
  466. npcs[i].moveX = 0;
  467. npcs[i].moveY = -1;
  468. }
  469. if (X == 2772 && Y == 2799) {
  470. npcs[i].moveX = 0;
  471. npcs[i].moveY = -1;
  472. }
  473. if (X == 2772 && Y == 2798) {
  474. npcs[i].moveX = 0;
  475. npcs[i].moveY = -1;
  476. }
  477. if (X == 2772 && Y == 2797) {
  478. npcs[i].moveX = 0;
  479. npcs[i].moveY = -1;
  480. }
  481. if (X == 2772 && Y == 2796) {
  482. npcs[i].moveX = -1;
  483. npcs[i].moveY = 0;
  484. }
  485. if (X == 2771 && Y == 2796) {
  486. npcs[i].moveX = -1;
  487. npcs[i].moveY = 0;
  488. npcs[i].back = true;
  489. }
  490. if (npcs[i].back) {
  491. if (X == 2770 && Y == 2796) {
  492. npcs[i].moveX = 1;
  493. npcs[i].moveY = 0;
  494. }
  495. if (X == 2771 && Y == 2796) {
  496. npcs[i].moveX = 1;
  497. npcs[i].moveY = 0;
  498. }
  499. if (X == 2772 && Y == 2796) {
  500. npcs[i].moveX = 0;
  501. npcs[i].moveY = 1;
  502. }
  503. if (X == 2772 && Y == 2797) {
  504. npcs[i].moveX = 0;
  505. npcs[i].moveY = 1;
  506. }
  507. if (X == 2772 && Y == 2798) {
  508. npcs[i].moveX = 0;
  509. npcs[i].moveY = 1;
  510. }
  511. if (X == 2772 && Y == 2799) {
  512. npcs[i].moveX = 0;
  513. npcs[i].moveY = 1;
  514. }
  515. if (X == 2772 && Y == 2800) {
  516. npcs[i].moveX = 0;
  517. npcs[i].moveY = 1;
  518. }
  519. if (X == 2772 && Y == 2801) {
  520. npcs[i].moveX = -1;
  521. npcs[i].moveY = 0;
  522. }
  523. if (X == 2771 && Y == 2801) {
  524. npcs[i].moveX = -1;
  525. npcs[i].moveY = 0;
  526. }
  527. if (X == 2770 && Y == 2801) {
  528. npcs[i].moveX = 0;
  529. npcs[i].moveY = -1;
  530. }
  531. if (X == 2770 && Y == 2800) {
  532. npcs[i].moveX = 0;
  533. npcs[i].moveY = -1;
  534. }
  535. if (X == 2770 && Y == 2799) {
  536. npcs[i].moveX = 0;
  537. npcs[i].moveY = -1;
  538. }
  539. if (X == 2770 && Y == 2798) {
  540. npcs[i].moveX = -1;
  541. npcs[i].moveY = 0;
  542. }
  543. if (X == 2769 && Y == 2798) {
  544. npcs[i].moveX = -1;
  545. npcs[i].moveY = 0;
  546. }
  547. if (X == 2768 && Y == 2798) {
  548. npcs[i].moveX = 0;
  549. npcs[i].moveY = 1;
  550. }
  551. if (X == 2768 && Y == 2799) {
  552. npcs[i].moveX = 0;
  553. npcs[i].moveY = 1;
  554. }
  555. if (X == 2768 && Y == 2800) {
  556. npcs[i].moveX = 0;
  557. npcs[i].moveY = 1;
  558. }
  559. if (X == 2768 && Y == 2801) {
  560. for (int E = 0; E < maxNPCs; E++) {
  561. if (npcs[E] != null) {
  562. if (npcs[E].absX == 2767 && npcs[E].absY == 2801 && npcs[E] != npcs[i]) {
  563. npcs[E].back = false;
  564. npcs[E].moveX = 0;
  565. npcs[E].moveY = -1;
  566. npcs[E].walkTimer = 5;
  567. npcs[E].updateRequired = true;
  568. if (npcs[E].npcType == 1432) {
  569. npcs[E].getNextNPCMovement();
  570. }
  571. }
  572. }
  573. }
  574. npcs[i].moveX = -1;
  575. npcs[i].moveY = 0;
  576. }
  577. }
  578. npcs[i].updateRequired = true;
  579. npcs[i].walkTimer = 4;
  580. } else {
  581. boolean minus = false;
  582. if (npcs[i].walkToX == 0 && npcs[i].walkToY == 0) {
  583. npcs[i].walkToX = -4 + misc.random(8);
  584. npcs[i].walkToY = -4 + misc.random(8);
  585. } else
  586. minus = true;
  587. int movetoX = npcs[i].walkToX;
  588. int movetoY = npcs[i].walkToY;
  589. if (movetoX > 1) movetoX = 1;
  590. if (movetoX < -1) movetoX = -1;
  591. if (movetoY > 1) movetoY = 1;
  592. if (movetoY < -1) movetoY = -1;
  593. npcs[i].moveX = movetoX;
  594. npcs[i].moveY = movetoY;
  595. if (minus) {
  596. npcs[i].walkToX -= movetoX;
  597. npcs[i].walkToY -= movetoY;
  598. }
  599. if (npcs[i].walkToX != 0 || npcs[i].walkToY != 0) npcs[i].walkTimer = 0;
  600. else npcs[i].walkTimer = 2 + misc.random(6);
  601. npcs[i].updateRequired = true;
  602. }
  603. } else if (npcs[i].IsAttackingNPC && !npcs[i].fighting) {
  604. int npcType = npcs[i].npcType;
  605. if (npcType >= 3752 && npcType <= 3771)
  606. AttackNPCMage(i);
  607. else
  608. AttackNPC(i);
  609. } else if (npcs[i].RandomWalk == false && npcs[i].IsUnderAttack == true) {
  610. if (server.playerHandler.players[npcs[i].StartKilling] != null) {
  611. int EnemyX = server.playerHandler.players[npcs[i].StartKilling].absX;
  612. int EnemyY = server.playerHandler.players[npcs[i].StartKilling].absY;
  613. if (MageNPC(npcs[i].npcType) || (npcs[i].npcType <= 1592 && npcs[i].npcType >= 1590) && !npcs[i].closeenough(EnemyX, EnemyY, 1) || npcs[i].npcType == 3200 || npcs[i].npcType == 2743 || ((npcs[i].npcType == 1158 || npcs[i].npcType == 1160) && ((npcs[i].closeenough(EnemyX, EnemyY, 1) && misc.random(1) == 1) || (!npcs[i].closeenough(EnemyX, EnemyY, 1)) && misc.random(2) == 1)) || (npcs[i].npcType >= 3752 && npcs[i].npcType <= 3761) || (npcs[i].npcType == 1961 || npcs[i].npcType == 1913 || npcs[i].npcType == 1914 || npcs[i].npcType == 742 || npcs[i].npcType == 50) && (misc.random(1) == 1 || !npcs[i].closeenough(EnemyX, EnemyY, 1)) || (npcs[i].npcType >= 907 && npcs[i].npcType <= 911) || npcs[i].npcType == 1472 && (misc.random(2) == 1 || !npcs[i].closeenough(EnemyX, EnemyY, 1)) || npcs[i].npcType == 2894 || npcs[i].npcType == 2884 || npcs[i].npcType == 2882 || npcs[i].npcType == 174 || npcs[i].npcType == 172 || npcs[i].npcType == 2025 || npcs[i].npcType == 1645 || npcs[i].npcType == 509 || npcs[i].npcType == 1241 || npcs[i].npcType == 1246 || npcs[i].npcType == 2745 && ((misc.random(1) == 1 && !npcs[i].closeenough(EnemyX, EnemyY, 1)) || (misc.random(2) == 1 && !npcs[i].closeenough(EnemyX, EnemyY, 1))) || npcs[i].npcType == 910 || npcs[i].npcType == 913 || npcs[i].npcType == 912 || npcs[i].npcType == 1007) {
  614. AttackPlayerMage(i);
  615. } else if (npcs[i].npcType == 2739 || ((npcs[i].npcType == 1158 || npcs[i].npcType == 1160) && (!npcs[i].closeenough(EnemyX, EnemyY, 1) || (npcs[i].closeenough(EnemyX, EnemyY, 1) && misc.random(2) == 1))) || (npcs[i].npcType >= 3762 && npcs[i].npcType <= 3771) || npcs[i].npcType == 2028 || npcs[i].npcType == 1183 || npcs[i].npcType == 1456 || npcs[i].npcType == 2892 || npcs[i].npcType == 2881 || npcs[i].npcType == 1246 || !npcs[i].closeenough(EnemyX, EnemyY, 1) && (npcs[i].npcType == 2456 || npcs[i].npcType == 2455 || npcs[i].npcType == 1347 || npcs[i].npcType == 1346 || npcs[i].npcType == 1345 || npcs[i].npcType == 1344 || npcs[i].npcType == 1343 || npcs[i].npcType == 1342 || npcs[i].npcType == 1341 || npcs[i].npcType == 1340 || npcs[i].npcType == 1338 || npcs[i].npcType == 1339) || npcs[i].npcType == 2025 || npcs[i].npcType == 1645 || npcs[i].npcType == 509 || npcs[i].npcType == 1241 || npcs[i].npcType == 1246 || npcs[i].npcType == 2745 && !npcs[i].closeenough(EnemyX, EnemyY, 1) || npcs[i].npcType == 2745 && misc.random(3) == 1 || npcs[i].npcType == 910 || npcs[i].npcType == 913 || npcs[i].npcType == 912 || npcs[i].npcType == 1007) {
  616. AttackPlayerRange(i);
  617. } else if (npcs[i].npcType != 3777 && npcs[i].npcType != 3778 && npcs[i].npcType != 3779 && npcs[i].npcType != 3780) {
  618. AttackPlayer(i);
  619. }
  620. if (npcs[i] == null) {
  621. continue;
  622. }
  623. }
  624. }
  625. if (npcs[i].RandomWalk == true) {
  626. npcs[i].getNextNPCMovement();
  627. }
  628. } else if (npcs[i].IsDead == true) {
  629. if (npcs[i].actionTimer == 0 && npcs[i].DeadApply == false && npcs[i].NeedRespawn == false) {
  630. int killer = npcs[i].getKiller();
  631. ResetAttackPlayer(i);
  632. if (server.playerHandler.players[killer] != null) {
  633. client zee = (client) server.playerHandler.players[killer];
  634. if (GetNpcName(npcs[i].npcType).toLowerCase().equals(GetNpcName(zee.SlayTaskNPC).toLowerCase())) {
  635. try {
  636. zee.addSkillXP(npcs[i].MaxHP * 10, 18);
  637. zee.AmToKillNPC--;
  638. if (zee.AmToKillNPC == 0) zee.finishtask();
  639. } catch (Exception E) {
  640. }
  641. }
  642. switch (npcs[i].npcType) {
  643. case 90:
  644. npcs[i].animNumber = 263;
  645. break;
  646. case 3727://splatter
  647. npcs[i].gfx100(661);
  648. case 3728://splatter
  649. if (npcs[i].npcType == 3728)
  650. npcs[i].gfx100(662);
  651. case 3729://splatter
  652. if (npcs[i].npcType == 3729)
  653. npcs[i].gfx100(663);
  654. case 3730://splatter
  655. if (npcs[i].npcType == 3730)
  656. npcs[i].gfx100(664);
  657. case 3731://splatter
  658. if (npcs[i].npcType == 3731)
  659. npcs[i].gfx100(665);
  660. Splat(npcs[i]);
  661. break;
  662. case 1265:
  663. case 1267:
  664. case 2452:
  665. npcs[i].animNumber = 1314;
  666. break;
  667. case 751://Zombies!!
  668. npcs[i].animNumber = 302;
  669. case 2607:
  670. case 2616:
  671. npcs[i].animNumber = 2608;
  672. break;
  673. case 907: // Kolodion
  674. npcs[i].animNumber = 714;
  675. break;
  676. case 908: // Kolodion
  677. npcs[i].animNumber = 133;
  678. break;
  679. case 909: // Kolodion
  680. npcs[i].animNumber = 148;
  681. break;
  682. case 910: // Kolodion
  683. npcs[i].animNumber = 714;
  684. break;
  685. case 911: // Kolodion
  686. npcs[i].animNumber = 71;
  687. break;
  688. case 655://tree spirit, from lost city.
  689. npcs[i].animNumber = 126;
  690. zee.qstage[1] = 3;
  691. zee.summonedspirit = false;
  692. break;
  693.  
  694. case 397:
  695. case 1766:
  696. case 1767:
  697. case 1768:
  698. npcs[i].animNumber = 0x03E; //cow dead
  699. break;
  700.  
  701. case 41:
  702. case 2693:
  703. case 2694:
  704. npcs[i].animNumber = 0x039; //chicken dead
  705. break;
  706.  
  707. case 87:
  708. npcs[i].animNumber = 0x08D; //rat dead
  709. break;
  710.  
  711. case 2028:
  712. npcs[i].animNumber = 0x900; //Human
  713. break;
  714.  
  715. case 2025:
  716. npcs[i].animNumber = 0x900; //Human
  717. break;
  718.  
  719. case 2026:
  720. npcs[i].animNumber = 0x900; //Human
  721. break;
  722.  
  723. case 2030:
  724. npcs[i].animNumber = 0x900; //Human
  725. break;
  726.  
  727. case 2027:
  728. npcs[i].animNumber = 0x900; //Human
  729. break;
  730.  
  731. case 2029:
  732. npcs[i].animNumber = 0x900; //Human
  733. break;
  734.  
  735. case 2628: //fightcaves lvl 22
  736. npcs[i].animNumber = 2620;
  737. break;
  738.  
  739. case 2738: //fightcaves fat 22
  740. npcs[i].animNumber = 2627;
  741. break;
  742.  
  743. case 2629: //fightcaves lvl 45
  744. npcs[i].animNumber = 2627;
  745. break;
  746. case 2739: //fightcaves lvl 90
  747. npcs[i].animNumber = 2630;
  748. break;
  749.  
  750. case 2741: //fightcaves lvl 180
  751. npcs[i].animNumber = 2638;
  752. break;
  753.  
  754. case 2743: //fightcaves lvl 360
  755. npcs[i].animNumber = 2646;
  756. break;
  757.  
  758. case 2745: //fightcaves Jad
  759. npcs[i].animNumber = 2654;
  760. break;
  761.  
  762. case 1626:
  763. case 1627:
  764. case 1628:
  765. case 1629:
  766. case 1630:
  767. case 1631:
  768. case 1632: //turoth!
  769. npcs[i].animNumber = 1597;
  770. break;
  771.  
  772. case 1616: //basilisk
  773. npcs[i].animNumber = 1548;
  774. break;
  775.  
  776. case 1653: //hand
  777. npcs[i].animNumber = 1590;
  778. break;
  779.  
  780. case 1612: //banshee
  781. npcs[i].animNumber = 1524;
  782. break;
  783.  
  784. case 742:
  785. npcs[i].animNumber = 92;
  786. break;
  787.  
  788. case 1340:
  789. case 1341:
  790. case 1351:
  791. npcs[i].animNumber = 1342;
  792. break;
  793.  
  794. case 82:
  795. case 83:
  796. case 84://demon dead
  797. npcs[i].animNumber = 67;
  798. break;
  799.  
  800. case 1913://kamil dead
  801. npcs[i].animNumber = 843;
  802. break;
  803.  
  804. case 3200:
  805. npcs[i].animNumber = 3147; // drags: chaos ele emote ( YESSS )
  806. break;
  807.  
  808. case 1605:
  809. npcs[i].animNumber = 1508; // drags: abberant spector ( YAY )
  810. break;
  811.  
  812. case 50: //King Black Dragon
  813. case 53: //Red Dragon
  814. case 54: //Black Dragon
  815. case 55: //Blue Dragon
  816. case 941: //Green Dragon
  817. case 1590: //Bronze Dragon
  818. case 1591: //Iron Dragon
  819. case 1592://Steel Dragon
  820. npcs[i].animNumber = 92;
  821. break;
  822.  
  823. case 1158:
  824. npcs[i].animNumber = 1187;
  825. break;
  826.  
  827. case 1160:
  828. npcs[i].animNumber = 1182;
  829. break;
  830.  
  831. case 3772://Brawlers(Pest Control)
  832. case 3773://Brawlers(Pest Control)
  833. case 3774://Brawlers(Pest Control)
  834. case 3775://Brawlers(Pest Control)
  835. case 3776://Brawlers(Pest Control)
  836. npcs[i].animNumber = 3894;
  837. break;
  838.  
  839.  
  840. case 3732://shifters(Pest Control)
  841. case 3733://shifters(Pest Control)
  842. case 3734://shifters(Pest Control)
  843. case 3735://shifters(Pest Control)
  844. case 3736://shifters(Pest Control)
  845. case 3737://shifters(Pest Control)
  846. case 3738://shifters(Pest Control)
  847. case 3739://shifters(Pest Control)
  848. case 3740://shifters(Pest Control)
  849. case 3741://shifters(Pest Control)
  850. case 3742://shifters(Pest Control)
  851. case 3747://Spinners(Pest Control)
  852. case 3748://Spinners(Pest Control)
  853. case 3749://Spinners(Pest Control)
  854. case 3750://Spinners(Pest Control)
  855. case 3751://Spinners(Pest Control)
  856. npcs[i].animNumber = 3903;
  857. break;
  858.  
  859. case 3752://Torcher(Pest Control)
  860. case 3753://Torcher(Pest Control)
  861. case 3754://Torcher(Pest Control)
  862. case 3755://Torcher(Pest Control)
  863. case 3756://Torcher(Pest Control)
  864. case 3757://Torcher(Pest Control)
  865. case 3758://Torcher(Pest Control)
  866. case 3759://Torcher(Pest Control)
  867. case 3760://Torcher(Pest Control)
  868. case 3761://Torcher(Pest Control)
  869. npcs[i].animNumber = 3881;
  870. break;
  871.  
  872. case 3762://Defiler(Pest Control)
  873. case 3763://Defiler(Pest Control)
  874. case 3764://Defiler(Pest Control)
  875. case 3765://Defiler(Pest Control)
  876. case 3766://Defiler(Pest Control)
  877. case 3767://Defiler(Pest Control)
  878. case 3768://Defiler(Pest Control)
  879. case 3769://Defiler(Pest Control)
  880. case 3770://Defiler(Pest Control)
  881. case 3771://Defiler(Pest Control)
  882. npcs[i].animNumber = 3922;
  883. break;
  884.  
  885. case 2889:
  886. npcs[i].animNumber = 2862;
  887.  
  888. case 51: //Baby Dragon
  889. case 52: //Baby Blue Dragon
  890. case 1589: //Baby Red Dragon
  891. case 3376: //Baby Black Dragon
  892. npcs[i].animNumber = 28;
  893. /**End of Dragon Death Emotes **/
  894. break;
  895.  
  896. /**Start Of Slayer Monster Death Emotes **/
  897. case 1610: //Gargoyle
  898. case 1611://Gargoyle
  899. npcs[i].animNumber = 1518;
  900. break;
  901.  
  902. case 1618: //Bloodveld
  903. case 1619://Bloodveld
  904. npcs[i].animNumber = 1553;
  905. break;
  906.  
  907. case 1620: //Cockatrice
  908. case 1621://Cockatrice
  909. npcs[i].animNumber = 1563;
  910. break;
  911.  
  912. case 1622: //Rockslug
  913. case 1623://Rockslug
  914. npcs[i].animNumber = 1568;
  915. break;
  916.  
  917. case 1608: //Kurask
  918. case 1609://Kurask
  919. npcs[i].animNumber = 1513;
  920. break;
  921.  
  922. case 2783: //Dark Beast
  923. npcs[i].animNumber = 2732;
  924. break;
  925.  
  926. case 1615: //Abyssal Deamon
  927. npcs[i].animNumber = 1538;
  928. break;
  929.  
  930. case 1624: //Dustdevil
  931. npcs[i].animNumber = 1558;
  932. break;
  933.  
  934. case 1613: //Nechryael
  935. npcs[i].animNumber = 1530;
  936. break;
  937.  
  938. case 1633: //Pyrefiend
  939. case 1634: //Pyrefiend
  940. case 1635: //Pyrefiend
  941. case 1636: //Pyrefiend
  942. npcs[i].animNumber = 1580;
  943. break;
  944.  
  945. case 1637: //Jelly
  946. case 1638: //Jelly
  947. case 1639: //Jelly
  948. case 1640: //Jelly
  949. case 1641: //Jelly
  950. case 1642: //Jelly
  951. npcs[i].animNumber = 1587;
  952. break;
  953.  
  954. case 1648: //Crawling Hand
  955. case 1649: //Crawling Hand
  956. case 1650: //Crawling Hand
  957. case 1651: //Crawling Hand
  958. case 1652: //Crawling Hand
  959. case 1654: //Crawling Hand
  960. case 1655: //Crawling Hand
  961. case 1656: //Crawling Hand
  962. case 1657: //Crawling Hand
  963. npcs[i].animNumber = 1590;
  964. break;
  965.  
  966. /** End Of Slayer NPC Death Emotes **/
  967.  
  968. /** Start Of Tzhaar NPC Death Emotes **/
  969. case 2734: //Tz-Kih
  970. case 2735://Tz-Kih
  971. npcs[i].animNumber = 1513;
  972. break;
  973.  
  974. case 2736: //Tz-Kek
  975. case 2737: //Tz-Kek
  976. npcs[i].animNumber = 2627;
  977. break;
  978.  
  979. /**End of TzHaar NPC Death Emotes **/
  980.  
  981. /**Start Of Misc NPC Death Emotes **/
  982. case 2919: //Agrith Naar
  983. npcs[i].animNumber = 3503;
  984. break;
  985.  
  986. case 3340: //Giant Mole
  987. npcs[i].animNumber = 3310;
  988. break;
  989.  
  990. case 107: //Scorpion
  991. case 108: //Poison Scorpion
  992. npcs[i].animNumber = 248;
  993. break;
  994.  
  995. case 708: //Imp
  996. case 709: //Imp
  997. npcs[i].animNumber = 172;
  998. break;
  999.  
  1000. case 100: //Goblin
  1001. case 101: //Goblin
  1002. case 102: //Goblin
  1003. npcs[i].animNumber = 313;
  1004. break;
  1005.  
  1006. case 105: //Bear
  1007. case 106: //Bear
  1008. npcs[i].animNumber = 44;
  1009. break;
  1010.  
  1011. case 89: //Unicorn
  1012. npcs[i].animNumber = 292;
  1013. break;
  1014.  
  1015. case 654:
  1016. break;
  1017.  
  1018. case 412: //Bat
  1019. case 78: //Giant Bat
  1020. npcs[i].animNumber = 36;
  1021. break;
  1022.  
  1023. case 122: //Hobgoblin
  1024. case 123: //Hobgoblin
  1025. npcs[i].animNumber = 167;
  1026. break;
  1027.  
  1028. case 58: //Shadow Spider
  1029. case 59: //Giant Spider
  1030. case 60: //Giant Spider
  1031. case 61: //Spider
  1032. case 62: //Jungle Spider
  1033. case 63: //Deadly Red Spider
  1034. case 64: //Ice Spider
  1035. case 134:
  1036. npcs[i].animNumber = 146;
  1037. break;
  1038.  
  1039. case 1153: //Kalphite Worker
  1040. case 1154: //Kalphite Soldier
  1041. case 1155: //Kalphite guardian
  1042. case 1156: //Kalphite worker
  1043. case 1157: //Kalphite guardian
  1044. npcs[i].animNumber = 1190;
  1045. break;
  1046.  
  1047. case 103: //Ghost
  1048. case 104://Ghost
  1049. npcs[i].animNumber = 123;
  1050. break;
  1051.  
  1052. case 118: //Dwarf
  1053. case 119://Chaos Dwarf
  1054. npcs[i].animNumber = 102;
  1055. break;
  1056.  
  1057. case 3201: //Killerwatt
  1058. case 3202: //Killerwatt
  1059. npcs[i].animNumber = 3163;
  1060. break;
  1061.  
  1062. case 2881: //Dagannoth Supreme
  1063. case 2882: //Dagannoth Prime
  1064. case 2883://Dagannoth Rex
  1065. npcs[i].animNumber = 2856;
  1066. break;
  1067.  
  1068. case 2455: //Dagannoth
  1069. case 1338: //Dagannoth
  1070. case 1339: //Dagannoth
  1071. case 1342: //Dagannoth
  1072. case 1343: //Dagannoth
  1073. case 2456: //Dagannoth
  1074. case 2887: //Dagannoth
  1075. case 2888://Dagannoth
  1076. npcs[i].animNumber = 1342;
  1077. break;
  1078.  
  1079. case 2884:
  1080. npcs[i].animNumber = 2367;
  1081. break;
  1082. case 2892:
  1083. npcs[i].animNumber = 2865;
  1084. break;
  1085.  
  1086. case 879: //Delrith
  1087. case 752: //Lesser Demon
  1088. npcs[i].animNumber = 67;
  1089. break;
  1090.  
  1091. case 677: //Black Demon
  1092. case 1472://Jungle Demon
  1093. npcs[i].animNumber = 68;
  1094. break;
  1095.  
  1096. case 66: //Gnome
  1097. case 67: //Gnome
  1098. case 68: //Gnome
  1099. case 914: //Gnome Battle Mage
  1100. case 163: //Gnome Guard W/ Mini Halberd
  1101. case 164: //Gnome Guard W/ Sword & Sheild
  1102. case 168: //Gnome Woman
  1103. case 169://Gnome Woman
  1104. npcs[i].animNumber = 196;
  1105. break;
  1106.  
  1107. case 1030: //Wolfman
  1108. case 1031: //Wolfman
  1109. case 1032: //Wolfman
  1110. case 1033: //Wolfwoman
  1111. case 1034: //Wolfwoman
  1112. case 1035://Wolfwoman
  1113. npcs[i].animNumber = 1841;
  1114. break;
  1115.  
  1116. //I've Never Noticed These In Real RS After 7 Years Playing... (0.0!)
  1117. case 1851: //Arzinian Avatar of Strength
  1118. case 1852: //Arzinian Avatar of Strength
  1119. case 1854: //Arzinian Avatar of Ranging
  1120. case 1855: //Arzinian Avatar of Ranging
  1121. case 1857: //Arzinian Avatar of Magic
  1122. case 1858: //Arzinian Avatar of Magic
  1123. case 1859://Arzinian Being of Bordanzan
  1124. npcs[i].animNumber = 1841;
  1125. break;
  1126.  
  1127. case 110: //Fire Giant
  1128. case 111: //Ice Giant
  1129. case 112: //Moss Giant
  1130. case 113: //Jogre Giant
  1131. case 116: //Cyclopse
  1132. case 117://Hill Giant
  1133. npcs[i].animNumber = 131;
  1134. break;
  1135. /**End Of Misc NPC Death Emotes**/
  1136. default:
  1137. npcs[i].animNumber = 0x900; //Human
  1138. break;
  1139. }
  1140. }
  1141. npcs[i].updateRequired = true;
  1142. npcs[i].animUpdateRequired = true;
  1143. npcs[i].DeadApply = true;
  1144. npcs[i].actionTimer = 3;//THIS IS DEATH DELAY ITS HOW LONG TILL THEY DISAPEAR AFTER THEY DIE
  1145. } else if (npcs[i].actionTimer == 0 && npcs[i].DeadApply == true && npcs[i].NeedRespawn == false && npcs[i] != null) {
  1146. if (npcs[i].barrowsyours == -1)
  1147. DropItemNPC(i);
  1148. if (npcs[i].npcType == 1158) {
  1149. newNPC(1160, npcs[i].absX, npcs[i].absY, npcs[i].heightLevel, npcs[i].moverangeX1, npcs[i].moverangeY1, npcs[i].moverangeX2, npcs[i].moverangeY2, 1, npcs[i].MaxHP, true);
  1150. npcs[i].absX = 0;
  1151. npcs[i].absY = 0;
  1152. npcs[i] = null;
  1153. continue;
  1154. }
  1155. if (server.playerHandler.players[npcs[i].StartKilling] != null)
  1156. if (server.playerHandler.players[npcs[i].StartKilling].playerEquipment[12] == 2572 && misc.random(6) == 1) {
  1157. DropItemNPC(i);
  1158. client h = (client) server.playerHandler.players[npcs[i].StartKilling];
  1159. h.sendMessage("Your ring starts to steam...");
  1160. if (misc.random(20) == 1) {
  1161. h.sendMessage("Your ring falls off, and shatters on the ground.");
  1162. h.deleteequipment(12);
  1163. }
  1164. }
  1165. npcs[i].NeedRespawn = true;
  1166. npcs[i].actionTimer = 30;
  1167. npcs[i].absX = npcs[i].makeX;
  1168. npcs[i].absY = npcs[i].makeY;
  1169. npcs[i].animNumber = 0x328;
  1170. if (npcs[i].npcType == 3777) {
  1171. npcs[server.playerHandler.voidknight].HP += 50;
  1172. PlayerHandler.purpleportal = -1;
  1173. npcs[i].absX = 0;
  1174. npcs[i].absY = 0;
  1175. }
  1176. if (npcs[i].npcType == 3778) {
  1177. npcs[server.playerHandler.voidknight].HP += 50;
  1178. PlayerHandler.blueportal = -1;
  1179. npcs[i].absX = 0;
  1180. npcs[i].absY = 0;
  1181. }
  1182. if (npcs[i].npcType == 3779) {
  1183. npcs[server.playerHandler.voidknight].HP += 50;
  1184. PlayerHandler.yellowportal = -1;
  1185. npcs[i].absX = 0;
  1186. npcs[i].absY = 0;
  1187. }
  1188. if (npcs[i].npcType == 3780) {
  1189. npcs[server.playerHandler.voidknight].HP += 50;
  1190. PlayerHandler.redportal = -1;
  1191. npcs[i].absX = 0;
  1192. npcs[i].absY = 0;
  1193. }
  1194. if (npcs[i].npcType >= 3777 && npcs[i].npcType <= 3780)
  1195. if (PlayerHandler.redportal == -1 && PlayerHandler.yellowportal == -1 && PlayerHandler.blueportal == -1 && PlayerHandler.purpleportal == -1) {
  1196. PlayerHandler.winpcgame();
  1197. continue;
  1198. }
  1199. if (npcs[i].npcType == 3785) {
  1200. PlayerHandler.losepcgame();
  1201. continue;
  1202. }
  1203.  
  1204. if (npcs[i].barrowsyours != -1) {
  1205. client war = (client) server.playerHandler.players[npcs[i].barrowsyours];
  1206. switch (npcs[i].npcType) {
  1207. case 2028:
  1208. war.killcount += 1; //Karil dead
  1209. war.karil = 1;
  1210. break;
  1211.  
  1212. case 2025:
  1213. war.killcount += 1; //Ahrim dead
  1214. war.ahrim = 1;
  1215. break;
  1216.  
  1217. case 2026:
  1218. war.killcount += 1; //Dharok dead
  1219. war.dharok = 1;
  1220. break;
  1221.  
  1222. case 2030:
  1223. war.killcount += 1; //verac dead
  1224. war.verac = 1;
  1225. break;
  1226.  
  1227. case 2027:
  1228. war.killcount += 1; //guthan dead
  1229. war.guthan = 1;
  1230. break;
  1231.  
  1232. case 2029:
  1233. war.killcount += 1; //torag dead
  1234. war.torag = 1;
  1235. break;
  1236.  
  1237. case 1264:
  1238. war.nextclue();
  1239. war.sendMessage("As you kill the holy protector the script of your clue scroll changes.");
  1240. war.sendMessage("and you become free from his magic.");
  1241. war.EntangleDelay = 0;
  1242. break;
  1243.  
  1244. case 2629: //fightcaves lvl 45
  1245. NewBarrowsNPC(2738, npcs[i].absX + 1, npcs[i].absY, npcs[i].heightLevel, 2423, 5117, 2371, 5062, npcs[i].MaxHP, war.playerId);
  1246. NewBarrowsNPC(2738, npcs[i].absX, npcs[i].absY + 1, npcs[i].heightLevel, 2423, 5117, 2371, 5062, npcs[i].MaxHP, war.playerId);
  1247. break;
  1248. case 2628: //fightcaves lvl 22
  1249. case 2738: //fightcaves fat 22
  1250. case 2739: //fightcaves lvl 90
  1251. case 2741: //fightcaves lvl 180
  1252. case 2743: //fightcaves lvl 360
  1253. war.fightmonster += 1;
  1254. war.respawnneeded = 1;
  1255. break;
  1256.  
  1257. case 2745: //fightcaves Jad
  1258. war.fightmonster = 250;
  1259. war.respawnneeded = 0;
  1260. break;
  1261. case 1913:
  1262. ItemHandler.addItem(4671, war.absX, war.absY, 1, war.playerId, false);
  1263. war.killedkamil = true;
  1264. break;
  1265. case 742:
  1266. war.showInterface(297);
  1267. war.qstage[4] = 3;
  1268. war.sendQuest("You have completed Dragon Slayer!", 301);
  1269. break;
  1270. }
  1271. if (npcs[i].npcType == 1914) {
  1272. ItemHandler.addItem(4670, war.absX, war.absY, 1, war.playerId, false);
  1273. }
  1274. if (npcs[i].npcType == 907) { // Kolodion
  1275. NewBarrowsNPC(908, npcs[i].absX, npcs[i].absY, 0, 3110, 3938, 3100, 3933, GetNpcListHP(908), npcs[i].barrowsyours);
  1276. }
  1277.  
  1278. if (npcs[i].npcType == 908) { // Kolodion
  1279. NewBarrowsNPC(909, npcs[i].absX, npcs[i].absY, 0, 3110, 3938, 3100, 3933, GetNpcListHP(909), npcs[i].barrowsyours);
  1280. }
  1281.  
  1282. if (npcs[i].npcType == 909) { // Kolodion
  1283. NewBarrowsNPC(910, npcs[i].absX, npcs[i].absY, 0, 3110, 3938, 3100, 3933, GetNpcListHP(910), npcs[i].barrowsyours);
  1284. }
  1285.  
  1286. if (npcs[i].npcType == 910) { // Kolodion
  1287. NewBarrowsNPC(911, npcs[i].absX, npcs[i].absY, 0, 3110, 3938, 3100, 3933, GetNpcListHP(911), npcs[i].barrowsyours);
  1288. }
  1289.  
  1290. if (npcs[i].npcType == 911) { // Kolodion
  1291. client c = (client) server.playerHandler.players[npcs[i].barrowsyours];
  1292. c.defeatkolodion();
  1293. }
  1294. }
  1295. if (npcs[i].npcType == 1158) {
  1296. npcs[i].NeedRespawn = false;
  1297. }
  1298. npcs[i].updateRequired = true;
  1299. npcs[i].animUpdateRequired = true;
  1300. } else if (npcs[i].actionTimer == 0 && npcs[i].NeedRespawn == true) {
  1301. for (int j = 1; j < server.playerHandler.maxPlayers; j++) {
  1302. if (server.playerHandler.players[j] != null) {
  1303. server.playerHandler.players[j].buildnpc = true;
  1304. server.playerHandler.players[j].npcbuild[i] = true;
  1305. }
  1306. }
  1307. if (npcs[i].Respawns) {
  1308. int old1 = npcs[i].npcType;
  1309. if (old1 == 1267 || old1 == 1265) {
  1310. old1 += 1;
  1311. }
  1312. if (old1 == 1160) {
  1313. old1 -= 2;
  1314. }
  1315. if (old1 == 1160) {
  1316. old1 -= 2;
  1317. }
  1318. if (old1 == 1265) {
  1319. old1++;
  1320. }
  1321. if (old1 == 1267) {
  1322. old1++;
  1323. }
  1324. int old2 = npcs[i].makeX;
  1325. int old3 = npcs[i].makeY;
  1326. int old4 = npcs[i].heightLevel;
  1327. int old5 = npcs[i].moverangeX1;
  1328. int old6 = npcs[i].moverangeY1;
  1329. int old7 = npcs[i].moverangeX2;
  1330. int old8 = npcs[i].moverangeY2;
  1331. int old9 = npcs[i].walkingType;
  1332. int old10 = npcs[i].MaxHP;
  1333. npcs[i] = null;
  1334. newNPC(old1, old2, old3, old4, old5, old6, old7, old8, old9, old10, true);
  1335. }
  1336. }
  1337. }
  1338. }
  1339. }
  1340. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement