Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- getWP: function (area) {
- var i, j, wp, preset,
- wpIDs = [119, 145, 156, 157, 237, 238, 288, 323, 324, 398, 402, 429, 494, 496, 511, 539];
- this.journeyTo(area);
- for (i = 0; i < wpIDs.length; i += 1) {
- preset = getPresetUnit(area, 2, wpIDs[i]);
- if (preset) {
- this.moveToUnit(preset);
- wp = getUnit(2, "waypoint");
- if (wp) {
- for (j = 0; j < 10; j += 1) {
- wp.interactEx();
- if (getUIFlag(0x14)) {
- me.cancel();
- return true;
- }
- delay(500);
- }
- }
- }
- }
- return false;
- },
- // TODO: Hell levels
- journeyTo: function (area) {
- var i, special, unit, tick,
- arr = this.plotCourse(area);
- // handle variable flayer jungle entrances
- if (arr.indexOf(78) > -1) {
- Town.goToTown(3); // without initiated act, getArea().exits will crash
- special = getArea(78);
- if (special) {
- special = special.exits;
- for (i = 0; i < special.length; i += 1) {
- if (special[i].target === 77) {
- arr.splice(arr.indexOf(78), 0, 77); // add great marsh if needed
- break;
- }
- }
- }
- }
- while (arr.length) {
- if (!me.inTown) {
- Precast.doPrecast(false);
- }
- if (me.inTown && this.wpAreas.indexOf(arr[0]) > -1 && getWaypoint(this.wpAreas.indexOf(arr[0]))) {
- this.useWaypoint(arr[0], true);
- } else if (me.area === 109 && arr[0] === 110) { // Harrogath -> Bloody Foothills
- this.moveTo(5026, 5095);
- unit = getUnit(2, 449); // Gate
- if (unit) {
- for (i = 0; i < 3; i += 1) {
- unit.interactEx();
- tick = getTickCount();
- while (getTickCount() - tick < 3000) {
- if (unit.mode === 2) {
- delay(1000);
- break;
- }
- }
- }
- }
- this.moveToExit(arr[0], true);
- } else if (me.area === 4 && arr[0] === 38) { // Stony Field -> Tristram
- this.moveToPreset(me.area, 1, 737, 0, 0, false, true);
- for (i = 0; i < 5; i += 1) {
- if (this.usePortal(38)) {
- break;
- }
- delay(1000);
- }
- } else if (me.area === 74 && arr[0] === 46) { // Arcane Sanctuary -> Canyon of the Magi
- this.moveToPreset(me.area, 2, 357);
- for (i = 0; i < 5; i += 1) {
- unit = getUnit(2, 357);
- unit.interactEx();
- delay(1000);
- me.cancel();
- if (this.usePortal(46)) {
- break;
- }
- }
- } else if (me.area === 54 && arr[0] === 74) { // Palace -> Arcane
- this.moveTo(10073, 8670);
- this.usePortal(null);
- } else if (me.area === 109 && arr[0] === 121) { // Harrogath -> Nihlathak's Temple
- Town.move("anya");
- this.usePortal(121);
- } else {
- this.moveToExit(arr[0], true);
- }
- arr.shift();
- }
- },
- plotCourse: function (dest) {
- var arr = [],
- previousAreas = [0, 1, 1, 2, 3, 10, 5, 6, 2, 3, 4, 6, 7, 9, 10, 11, 12, 3, 17, 17, 6, 20, 21, 22, 23, 24, 7, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 4, 1, 1, 40, 41, 42, 43, 44, 74, 40, 47, 48, 40, 50, 51, 52, 53, 41, 42, 56, 45, 55, 57, 58, 43, 62, 63, 44, 46, 46, 46, 46, 46, 46, 46, 1, 54, 1, 75, 76, 76, 78, 79, 80, 81, 82, 76, 76, 78, 86, 78, 88, 87, 89, 80, 92, 80, 80, 81, 81, 82, 82, 83, 100, 101, 102, 103, 104, 105, 106, 107, 103, 109, 110, 111, 112, 113, 113, 115, 115, 117, 118, 118, 109, 121, 122, 123, 0, 112, 117, 120, 128, 129, 130, 131, 109, 109, 109, 109],
- target = dest;
- while (true) {
- arr.push(target);
- if (this.wpAreas.indexOf(target) > -1 && getWaypoint(this.wpAreas.indexOf(target))) {
- break;
- }
- target = previousAreas[target];
- if (target === me.area) {
- break;
- }
- }
- return arr.reverse();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement