Advertisement
kolton

Untitled

May 23rd, 2012
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2. * @filename Precast.js
  3. * @author D3STROY3R, kolton
  4. * @desc handle player prebuff sequence
  5. */
  6.  
  7. var Precast = new function () {
  8. this.haveCTA = -1;
  9.  
  10. this.weaponSwitch = function (slot) {
  11. if (me.gametype === 0) {
  12. return true;
  13. }
  14.  
  15. var i, tick;
  16.  
  17. if (!arguments.length) {
  18. slot = me.weaponswitch === 0 ? 1 : 0;
  19. } else if (me.weaponswitch === slot) {
  20. return true;
  21. }
  22.  
  23. delay(500);
  24.  
  25. for (i = 0; i < 10; i += 1) {
  26. weaponSwitch();
  27.  
  28. tick = getTickCount();
  29.  
  30. while (getTickCount() - tick < 2000) {
  31. if (me.weaponswitch === slot) {
  32. delay(me.ping + 1);
  33.  
  34. return true;
  35. }
  36.  
  37. delay(10);
  38. }
  39. }
  40.  
  41. return false;
  42. };
  43.  
  44. this.precastCTA = function (force) {
  45. if (!force && me.getState(32)) {
  46. return true;
  47. }
  48.  
  49. if (me.gametype === 0 || me.classid === 4 || me.inTown) {
  50. return false;
  51. }
  52.  
  53. if (this.BOSwitch()) {
  54. Skill.cast(155, 0); // Battle Command
  55. Skill.cast(149, 0); // Battle Orders
  56. this.weaponSwitch(Math.abs(this.haveCTA - 1));
  57.  
  58. return true;
  59. }
  60.  
  61. return false;
  62. };
  63.  
  64. // add this
  65. this.checkPlayers = function () {
  66. if (!Config.PublicMode) {
  67. return false;
  68. }
  69.  
  70. var player = getUnit(0);
  71.  
  72. if (player) {
  73. do {
  74. if (player.name !== me.name && !player.getState(32)) {
  75. Attack.getIntoPosition(player, 10, 0x4);
  76.  
  77. return true;
  78. }
  79. } while (player.getNext());
  80. }
  81.  
  82. return false;
  83. };
  84. // stop
  85.  
  86. this.doPrecast = function (force) {
  87. var buffSummons = false;
  88. var temp = this.checkPlayers() || !me.getState(32) || force;
  89.  
  90. if (temp) {
  91. this.precastCTA(temp);
  92. }
  93.  
  94. switch (me.classid) {
  95. case 0: // Amazon
  96. if (Config.SummonValkyrie) {
  97. this.summon(32); // Valkyrie
  98. }
  99.  
  100. break;
  101. case 1: // Sorceress
  102. if (!me.getState(38) || force) { // ts
  103. Skill.cast(57, 0); // Thunder Storm
  104. }
  105.  
  106. if (!me.getState(30) || force) {
  107. Skill.cast(58, 0); // Energy Shield
  108. }
  109.  
  110. if ((!me.getState(88) && !me.getState(10) && !me.getState(20)) || force) {
  111. if (!Skill.cast(50, 0)) { // Shiver Armor
  112. if (!Skill.cast(60, 0)) { // Chilling Armor
  113. Skill.cast(40, 0); // Frozen Armor
  114. }
  115. }
  116. }
  117.  
  118. break;
  119. case 2: // Necromancer
  120. if (!me.getState(14) || force) {
  121. Skill.cast(68, 0);
  122. }
  123.  
  124. switch (Config.Golem) {
  125. case 0:
  126. case "None":
  127. break;
  128. case 1:
  129. case "Clay":
  130. this.summon(75);
  131. break;
  132. case 2:
  133. case "Blood":
  134. this.summon(85);
  135. break;
  136. case 3:
  137. case "Fire":
  138. this.summon(94);
  139. break;
  140. }
  141.  
  142. break;
  143. case 3: // Paladin
  144. if (!me.getState(101) || force) {
  145. Skill.cast(117, 0); // Holy Shield
  146. }
  147.  
  148. break;
  149. case 4: // Barbarian
  150. if (!me.getState(32) || !me.getState(51) || !me.getState(26) || force) {
  151. if (Config.BOSwitch) {
  152. Precast.weaponSwitch(Config.BOSwitch);
  153. }
  154.  
  155. if (!me.getState(51) || force) {
  156. Skill.cast(155, 0); // Battle Command
  157. }
  158.  
  159. if (!me.getState(32) || force) {
  160. Skill.cast(149, 0); // Battle Orders
  161. }
  162.  
  163. if (!me.getState(26) || force) {
  164. Skill.cast(138, 0); // Shout
  165. }
  166.  
  167. if (Config.BOSwitch) {
  168. Precast.weaponSwitch(Math.abs(Config.BOSwitch - 1));
  169. }
  170. }
  171.  
  172. break;
  173. case 5: // Druid
  174. if (!me.getState(151) || force) {
  175. Skill.cast(235, 0); // Cyclone Armor
  176. }
  177.  
  178. if (Config.SummonRaven) {
  179. this.summon(221); // Raven
  180. }
  181.  
  182. switch (Config.SummonAnimal) {
  183. case 1:
  184. case "Spirit Wolf":
  185. buffSummons = this.summon(227) || buffSummons; // Summon Spirit Wolf
  186.  
  187. break;
  188. case 2:
  189. case "Dire Wolf":
  190. buffSummons = this.summon(237) || buffSummons; // Summon Dire Wolf
  191.  
  192. break;
  193. case 3:
  194. case "Grizzly":
  195. buffSummons = this.summon(247) || buffSummons; // Summon Grizzly
  196.  
  197. break;
  198. }
  199.  
  200. switch (Config.SummonVine) {
  201. case 1:
  202. case "Poison Creeper":
  203. buffSummons = this.summon(222) || buffSummons; // Poison Creeper
  204.  
  205. break;
  206. case 2:
  207. case "Carrion Vine":
  208. buffSummons = this.summon(231) || buffSummons; // Carrion Vine
  209.  
  210. break;
  211. case 3:
  212. case "Solar Creeper":
  213. buffSummons = this.summon(241) || buffSummons; // Solar Creeper
  214.  
  215. break;
  216. }
  217.  
  218. switch (Config.SummonSpirit) {
  219. case 1:
  220. case "Oak Sage":
  221. buffSummons = this.summon(226) || buffSummons; // Oak Sage
  222.  
  223. break;
  224. case 2:
  225. case "Heart of Wolverine":
  226. buffSummons = this.summon(236) || buffSummons; // Heart of Wolverine
  227.  
  228. break;
  229. case 3:
  230. case "Solar Creeper":
  231. buffSummons = this.summon(241) || buffSummons; // Solar Creeper
  232.  
  233. break;
  234. }
  235.  
  236. if (!me.getState(144) || force) {
  237. Skill.cast(250, 0); // Hurricane
  238. }
  239.  
  240. if (buffSummons) {
  241. this.precastCTA(force);
  242. }
  243.  
  244. break;
  245. case 6: // Assassin
  246. if (Config.UseFade && (!me.getState(159) || force)) {
  247. Skill.cast(267, 0); // Fade
  248. }
  249.  
  250. if (Config.UseVenom && (!me.getState(31) || force)) {
  251. Skill.cast(278, 0); // Venom
  252. }
  253.  
  254. if (!me.getState(158) || force) {
  255. Skill.cast(277, 0); // Blade Shield
  256. }
  257.  
  258. if (!Config.UseFade && Config.UseBoS && (!me.getState(157) || force)) {
  259. Skill.cast(258, 0); // Burst of Speed
  260. }
  261.  
  262. switch (Config.SummonShadow) {
  263. case 1:
  264. case "Warrior":
  265. this.summon(268); // Shadow Warrior
  266. break;
  267. case 2:
  268. case "Master":
  269. this.summon(279); // Shadow Master
  270. break;
  271. }
  272.  
  273. break;
  274. }
  275. };
  276.  
  277. this.BOSwitch = function () {
  278. var item;
  279.  
  280. if (this.haveCTA < 0) {
  281. item = me.getItem(-1, 1);
  282.  
  283. if (item) {
  284. MainLoop:
  285. do {
  286. if (item.getPrefix(20519)) { // Call to Arms
  287. switch (item.bodylocation) {
  288. case 4:
  289. case 5:
  290. this.haveCTA = me.weaponswitch;
  291.  
  292. break MainLoop;
  293. case 11:
  294. case 12:
  295. this.haveCTA = Math.abs(me.weaponswitch - 1);
  296.  
  297. break MainLoop;
  298. }
  299. }
  300. } while (item.getNext());
  301. }
  302. }
  303.  
  304. if (this.haveCTA > -1) {
  305. return this.weaponSwitch(this.haveCTA);
  306. }
  307.  
  308. return false;
  309. };
  310.  
  311. this.summon = function (skillId) {
  312. if (!me.getSkill(skillId, 1)) {
  313. return false;
  314. }
  315.  
  316. var minion, rv,
  317. count = 1;
  318.  
  319. switch (skillId) {
  320. case 32: // Valkyrie
  321. minion = 2;
  322.  
  323. break;
  324. case 75: // Clay Golem
  325. case 85: // Blood Golem
  326. case 94: // Fire Golem
  327. minion = 3;
  328.  
  329. break;
  330. case 221: // Raven
  331. minion = 10;
  332. count = Math.min(me.getSkill(221, 1), 5);
  333.  
  334. break;
  335. case 226: // Oak Sage
  336. case 236: // Heart of Wolverine
  337. case 246: // Spirit of Barbs
  338. minion = 13;
  339.  
  340. break;
  341. case 222: // Poison Creeper
  342. case 231: // Carrion Vine
  343. case 241: // Solar Creeper
  344. minion = 14;
  345.  
  346. break;
  347. case 227: // Spirit Wolf
  348. minion = 11;
  349. count = Math.min(me.getSkill(227, 1), 5);
  350.  
  351. break;
  352. case 237: // Dire Wolf
  353. minion = 12;
  354. count = Math.min(me.getSkill(237, 1), 3);
  355.  
  356. break;
  357. case 247: // Grizzly
  358. minion = 15;
  359.  
  360. break;
  361. case 268: // Shadow Warrior
  362. case 279: // Shadow Master
  363. minion = 16;
  364.  
  365. break;
  366. }
  367.  
  368. while (me.getMinionCount(minion) < count) {
  369. rv = true;
  370.  
  371. Skill.cast(skillId, 0);
  372. delay(200);
  373. }
  374.  
  375. return !!rv;
  376. };
  377. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement