Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var NTM_AreaWPArray = [
- 0, 0x01, 0, 0x03, 0x04, 0x05, 0x06, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0..15
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1b, 0, 0x1d, 0, 0, // 16..31
- 0x20, 0, 0, 0x23, 0, 0, 0, 0, 0x28, 0, 0x2a, 0x2b, 0x2c, 0, 0x2e, 0, // 32..47
- 0x30, 0, 0, 0, 0x34, 0, 0, 0, 0, 0x39, 0, 0, 0, 0, 0, 0, // 48..63
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, // 64..79
- 0x50, 0x51, 0, 0x53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 80..95
- 0, 0, 0, 0, 0, 0x65, 0, 0x67, 0, 0, 0x6a, 0x6b, 0, 0x6d, 0, 0x6f, // 96..111
- 0x70, 0x71, 0, 0x73, 0, 0x75, 0x76, 0, 0, 0, 0, 0x7b, 0, 0, 0, 0, // 112..127
- 0, 0x81, 0, 0, 0]; // 128..132
- var NTM_Waypoints = [
- 0x01, 0x03, 0x04, 0x05, 0x06, 0x1b, 0x1d, 0x20, 0x23, // 0 ..8 act1
- 0x28, 0x30, 0x2a, 0x39, 0x2b, 0x2c, 0x34, 0x4a, 0x2e, // 9 ..17 act2
- 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x53, 0x65, // 18..26 act3
- 0x67, 0x6a, 0x6b, // 27..29 act4
- 0x6d, 0x6f, 0x70, 0x71, 0x73, 0x7b, 0x75, 0x76, 0x81]; // 30..38 act5
- var usedWp = false;
- function NTM_MoveTo(x, y, retry, clearpath)
- {
- var _teleport;
- var _path;
- var _result;
- var _retry = 0;
- if(!NTC_WaitCastDone())
- return false;
- if(x == me.x && y == me.y)
- return true;
- if(arguments.length < 3)
- retry = 3;
- if(arguments.length < 4)
- clearpath = false;
- if(NTC_InTown() || NTC_CheckSkill(54) < 1 || !NTConfig_Teleport)
- _teleport = false;
- else
- _teleport = true;
- if (getDistance(me.x, me.y, x, y) < 30) {
- if (_teleport) {
- for (var i = 0; i < 5; i += 1) {
- if (NTM_TeleportTo(x, y)) {
- return true;
- }
- }
- }
- }
- if (getDistance(me.x,me.y,x,y) <= 15) {
- if (NTM_WalkTo(x, y)) {
- return true;
- }
- }
- if(_teleport)
- _path = getPath(me.area, me.x, me.y, x, y, true, 30);
- else
- _path = getPath(me.area, me.x, me.y, x, y, false, 10);
- if (!_path) {
- print("getpath(" + me.area + ", " + me.x + ", " + me.y + ", " + x + ", " + y + ", " + _teleport + ") failed");
- if (_teleport) {
- _path = getPath(me.area, me.x, me.y, x, y, true, 25);
- if (!_path) {
- return false;
- }
- } else {
- return false;
- }
- }
- for(var i = 0 ; i < _path.length ; i++)
- {
- for(var n = 0 ; n < 5 ; n++)
- {
- if(_teleport)
- {
- if(NTM_TeleportTo(_path[i].x, _path[i].y))
- break;
- }
- else
- {
- if(NTM_WalkTo(_path[i].x, _path[i].y))
- break;
- }
- }
- if(n < 5)
- {
- if(clearpath)
- {
- if(!NTA_ClearPosition(20, TYPE_NOT_NORMAL))
- return false;
- }
- }
- else
- {
- print("ntmove retry");
- if(_retry++ < retry)
- {
- _path = getPath(me.area, me.x, me.y, x, y, _teleport, 25);
- if(!_path)
- return false;
- i = -1;
- }
- else
- return false;
- }
- }
- return true;
- }
- function NTM_MoveToObject(unittype, low, high, offsetx, offsety, clearpath)
- {
- var _unit;
- if(arguments.length < 3)
- high = low;
- if(arguments.length < 4)
- {
- offsetx = 0;
- offsety = 0;
- }
- if(arguments.length < 6)
- clearpath = false;
- _unit = NTC_GetPresetUnits(unittype);
- if(!_unit)
- {
- print("cant find unit");
- return false;
- }
- for(var i = 0 ; i < _unit.length ; i++)
- {
- if(_unit[i].id >= low && _unit[i].id <= high)
- {
- return NTM_MoveTo(_unit[i].roomx*5+_unit[i].x+offsetx, _unit[i].roomy*5+_unit[i].y+offsety, 3, clearpath);
- }
- }
- print("Failed to find PresetUnit");
- return false;
- }
- function NTM_TeleportTo(x, y)
- {
- NTC_DoCast(54, NTC_HAND_RIGHT, x, y);
- //NTC_PutSkill(54, NTC_HAND_RIGHT);
- //me.castXY(NTC_HAND_RIGHT, x, y);
- for(var i = 0 ; i < 15 ; i++)
- {
- if(Math.abs(me.x-x) < 5 && Math.abs(me.y-y) < 5)
- return true;
- NTC_Delay(40);
- }
- return false;
- }
- function NTM_WalkTo(x, y)
- {
- var i, distance, nTimer,
- nFail = 0,
- attemptCount = 0;
- if (me.runwalk === 0) {
- me.runwalk = 1;
- }
- if (me.classid === 3 && !NTC_InTown() && NTC_CheckSkill(107)) {
- distance = getDistance(me.x, me.y, x, y);
- if (distance > 9) {
- if (NTC_PutSkill(107, NTC_HAND_LEFT)) {
- clickMap(NTC_CLICK_LDOWN, NTC_SHIFT_HOLD, x, y);
- for (i = 0; i < distance; i = i + 1) {
- NTC_Delay(20);
- if (Math.abs(me.x - x) < 4 && Math.abs(me.y - y) < 4) {
- clickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
- return true;
- }
- }
- }
- }
- }
- MoveLoop : while (getDistance(me.x, me.y, x, y) > 3 && me.mode !== 17) {
- if (me.classid === 3) {
- NTC_PutSkill(115, NTC_HAND_RIGHT);
- }
- clickMap(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, x, y);
- NTC_Delay(40);
- //clickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
- attemptCount += 1;
- nTimer = getTickCount();
- while (me.mode !== 2 && me.mode !== 3 && me.mode !== 6) {
- if (me.mode === 17) {
- break MoveLoop;
- }
- if ((getTickCount() - nTimer) > 500) {
- nFail += 1;
- if (nFail >= 2) {
- return false;
- }
- clickMap(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, me.x + rand(-5, 5), me.y + rand(-5, 5));
- NTC_Delay(40);
- //clickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
- continue MoveLoop;
- }
- NTC_Delay(40);
- }
- while (me.mode !== 1 && me.mode !== 5 && me.mode !== 17) {
- NTC_Delay(40);
- }
- if (attemptCount >= 3) {
- return false;
- }
- }
- return true;
- }
- function NTM_TakeStairs(dest)
- {
- var _tileid;
- var _exits = getArea().exits;
- for(var i = 0; i < _exits.length; i++)
- {
- if(_exits[i].type == 2 && _exits[i].target == dest)
- {
- _tileid = _exits[i].tileid;
- break;
- }
- }
- if(!_tileid)
- return false;
- var _unit = NTC_GetUnit(NTC_UNIT_TILE, _tileid);
- if(!_unit)
- return false;
- var _prearea = me.area;
- for(var i = 0 ; i < 100 ; i++)
- {
- if((i % 25) == 0)
- {
- if(NTM_GetCloserInt(_unit))
- _unit.interact();
- }
- NTC_Delay(NTC_DELAY_FRAME);
- if(me.area != _prearea)
- break;
- }
- while(me.area == 0)
- NTC_Delay(NTC_DELAY_FRAME);
- if(me.area == _prearea)
- return false;
- NTC_PingDelay(NTConfig_AreaDelay);
- return true;
- }
- function NTM_TakeUnit(unittype, classid)
- {
- var _unit;
- var _prearea;
- _unit = NTC_GetUnit(unittype, classid);
- if(!_unit)
- return false;
- _prearea = me.area;
- for(var i = 0 ; i < 20 ; i++)
- {
- if((i % 5) == 0)
- {
- if(i == 10)
- NTM_MoveTo(me.x+6, me.y+6);
- if(NTM_GetCloserInt(_unit))
- _unit.interact();
- }
- NTC_Delay(200);
- if(me.area != _prearea)
- break;
- }
- while(me.area == 0)
- NTC_Delay(200);
- if(me.area == _prearea)
- return false;
- NTC_PingDelay(NTConfig_AreaDelay);
- return true;
- }
- function postWalkDelay(){
- debugPrint("ntm postWalkDelay" );
- while (me.mode == 2 || me.mode == 6){
- delay(40);
- debugPrint("ntm takeStairsDelay walking" );
- }
- delay(200);
- me.cancel(0);
- sendCopyData(null, "OOG", 0,"Info "+NTAR_Areas[me.area]);
- }
- function preWalkDelay(){
- var pwTimeouts =0;
- debugPrint("preWalkDelay" );
- while ((!(me.mode == 2 || me.mode == 6)) && (pwTimeouts < 10)){
- delay(40);
- pwTimeouts = pwTimeouts +1;
- debugPrint("ntm Prewalking delay"+pwTimeouts );
- }
- }
- function NTM_TakeWaypoint(area)
- {
- var _unit;
- if(me.area == area)
- return true;
- _unit = NTM_GetWaypointInt();
- if(!_unit)
- return false;
- if(NTC_InTown())
- me.cancel();
- for(var i = 0 ; i < 80 ; i++)
- {
- if((i % 10) == 0)
- {
- if(NTM_MoveCloseCoords(_unit.x, _unit.y, 7))
- _unit.interact(area);
- }
- if (i % 10 === 9) {
- NTM_WalkTo(me.x + rand(-5, 5), me.y + rand(-5, 5));
- NTM_GetCloserInt(_unit);
- }
- NTC_Delay(200);
- while(me.area == 0)
- Delay(200);
- if(me.area == area)
- return true;
- }
- return false;
- }
- function NTM_UsePortal(how, dest, ownername, portal)
- {
- if(me.area == dest)
- return true;
- if(NTC_InTown())
- me.cancel();
- if(NTM_ChangeAreaInt(how, dest, ownername, portal))
- {
- NTC_Delay(NTConfig_AreaDelay);
- return true;
- }
- return false;
- }
- function NTM_MakeTP(use)
- {
- if(NTC_InTown())
- return true;
- var _usetp = true;
- if(arguments.length < 1)
- _usetp = false;
- var i, _portal;
- var _prevarea = me.area;
- //var _tptome = me.getItem("tbk");
- var _tptome;
- var _items = me.getItems();
- var _oldportal;
- var _oldgid = null;
- if (!_items) {
- print("no tome")
- return false;
- }
- for (i = 0; i < _items.length; i += 1) {
- if (_items[i].code === "tbk" && _items[i].location === 0) {
- _tptome = _items[i];
- break;
- }
- }
- /*if(_tptome.location != 0) // not in inventory
- while(_tptome.getNext())
- if(_tptome.location == 0)
- break;*/
- if(!_tptome || !_tptome.getStat(70))
- return false;
- _oldportal = NTC_GetUnit(NTC_UNIT_OBJECT, "Portal");
- if(_oldportal)
- {
- do
- {
- if(NTC_CheckOwner(_oldportal))
- {
- _oldgid = _oldportal.gid;
- break;
- }
- }while(_oldportal.getNext());
- }
- for(var i = 0 ; i < 200 ; i++)
- {
- if(me.mode == 17)
- break;
- if(i % 25 == 0)
- _tptome.interact();
- _portal = NTC_GetUnit(NTC_UNIT_OBJECT, "Portal");
- if(_portal)
- {
- do
- {
- if(NTC_CheckOwner(_portal) && _portal.gid != _oldgid)
- {
- if(_usetp)
- {
- _portal.interact();
- delay(750);
- if(me.area != _prevarea)
- {
- while(me.area == 0)
- delay(200);
- return true;
- }
- }
- else
- return true;
- }
- }while(_portal.getNext());
- }
- delay(25);
- }
- return false;
- }
- // Internal function
- function NTM_GetWaypointInt()
- {
- var _waypoint;
- var _classid;
- for(var i = 0 ; i <= 2 ; i++)
- {
- _waypoint = NTC_GetUnit(NTC_UNIT_OBJECT);
- if(_waypoint)
- {
- do
- {
- _classid = _waypoint.classid;
- if(_classid == 119 || _classid == 145 || _classid == 156 || _classid == 157
- || _classid == 237 || _classid == 238 || _classid == 288 || _classid == 323
- || _classid == 324 || _classid == 398 || _classid == 402 || _classid == 429
- || _classid == 494 || _classid == 496 || _classid == 511 || _classid == 539)
- return _waypoint;
- } while(_waypoint.getNext());
- }
- if(i < 2)
- NTC_Delay(500);
- }
- return null;
- }
- function NTM_ChangeAreaInt(how, dest, ownername, myportal) {
- var i, _portal, _prearea, _found,
- _playerportal = false;
- if (how) {
- switch (how) {
- case "Waypoint":
- var _unit;
- if (me.area === dest) {
- return true;
- }
- _unit = NTM_GetWaypointInt();
- if (!_unit) {
- return false;
- }
- if (NTC_InTown()) {
- me.cancel();
- }
- for (var i = 0 ; i < 80 ; i++) {
- if (i % 10 === 0) {
- if (NTM_MoveCloseCoords(_unit.x, _unit.y, 7)) {
- _unit.interact(dest);
- }
- }
- if (i % 10 === 9) {
- NTM_WalkTo(me.x + rand(-5, 5), me.y + rand(-5, 5));
- NTM_GetCloserInt(_unit);
- }
- NTC_PingDelay(200);
- while (me.area === 0) {
- delay(200);
- }
- if (me.area === dest || !dest) {
- return true;
- }
- }
- return false;
- case "BluePortal":
- if (!ownername) {
- ownername = me.name;
- }
- _playerportal = true;
- break;
- }
- }
- if (myportal) {
- _found = true;
- _portal = myportal;
- } else if (ownername) {
- _portal = NTC_GetUnit(2, "Portal");
- if (_portal) {
- do {
- if (_portal.mode === 2 && _portal.getParent() === ownername && NTC_InMyParty(ownername)) {
- _found = true;
- break;
- }
- } while (_portal.getNext());
- }
- } else if (dest) {
- print("use portal")
- _portal = NTC_GetUnit(2, "Portal");
- if (_portal) {
- do {
- if (_portal.mode === 2 && _portal.objtype === dest && (NTC_InMyParty(_portal.getParent()) || !_portal.getParent())) {
- _found = true;
- break;
- }
- } while (_portal.getNext());
- }
- }
- if (!_found) {
- return false;
- }
- _prearea = me.area;
- for (i = 0; i < 40; i += 1) {
- if (i % 10 === 0) {
- if (i === 10) {
- NTM_MoveTo(me.x + rand(-3, 3), me.y + rand(-3, 3));
- }
- if (me.classid === 1 && NTC_InTown() && NTC_CheckSkill(43) && getDistance(me, _portal) <= 20) {
- NTC_DoCast(43, NTC_HAND_RIGHT, _portal);
- } else if (NTM_GetCloserInt(_portal)) {
- _portal.interact();
- }
- }
- NTC_Delay(200);
- if (me.area !== _prearea) {
- break;
- }
- }
- return (me.area !== _prearea);
- }
- function NTM_GetStairsInt(lo, hi, area)
- {
- debugPrint("ntm getstairsint" );
- var _tile = NTC_GetUnit(NTC_UNIT_TILE);
- if(_tile)
- {
- do
- {
- if(_tile.type == NTC_UNIT_TILE && _tile.classid >= lo && _tile.classid <= hi)
- {
- if(!area || _tile.area == area)
- return copyUnit(_tile);
- }
- } while(_tile.getNext());
- }
- return false;
- }
- function NTM_CheckWPInt(wpHex)
- {
- for(var i = 0 ; i < 39 ; i++)
- {
- if(wpHex == NTM_Waypoints[i])
- return getWaypoint(i);
- }
- return false;
- }
- function NTM_FindCorrectPortalInt(blueportal, dest, ownername)
- {
- var _portal;
- if(blueportal)
- {
- for(var i = 0 ; i <= 2 ; i++)
- {
- _portal = NTC_GetUnit(NTC_UNIT_OBJECT, "Portal");
- if(_portal)
- {
- do
- {
- if(_portal.mode == 2 && NTC_CheckOwner(_portal, ownername) && getDistance(me, _portal) < 30 && _portal.objtype == dest)
- return _portal;
- } while(_portal.getNext());
- }
- if(i < 2)
- NTC_Delay(500);
- }
- return -2;
- }
- else
- {
- for(var i = 0 ; i <= 2 ; i++)
- {
- _portal = NTC_GetUnit(NTC_UNIT_OBJECT, "Portal");
- if(_portal)
- {
- do
- {
- if(_portal.mode == 2 && (!_portal.getParent() && _portal.objtype == dest || _portal.getParent() == ownername))
- return _portal;
- } while(_portal.getNext());
- }
- }
- }
- return -3;
- }
- function NTM_FindPortalAreaInt(dest)
- {
- var _portal;
- for(var i = 0 ; i <= 2 ; i++)
- {
- _portal = NTC_GetUnit(NTC_UNIT_OBJECT, "Portal");
- if(_portal)
- {
- do
- {
- if(_portal.mode == 2 && _portal.objtype == dest)
- {
- if(_portal.getParent())
- {
- if(NTC_CheckOwner(_portal) || NTC_InMyParty(_portal.getParent()))
- return _portal;
- }
- else
- return _portal;
- }
- }while(_portal.getNext());
- }
- if(i < 2)
- NTC_Delay(500);
- }
- return -1;
- }
- function NTM_GetCloserInt(object)
- {
- if(getDistance(me, object) > 4)
- return NTM_MoveTo(object.x, object.y);
- return true;
- }
- function NTM_MoveCloseInt(x, y, maxrange)
- {
- var _dist = getDistance(me.x, me.y, x, y);
- if(_dist > maxrange)
- {
- var _destx, _desty;
- _destx = me.x + Math.round((_dist-maxrange)*(x-me.x) / _dist);
- _desty = me.y + Math.round((_dist-maxrange)*(y-me.y) / _dist);
- NTM_MoveTo(_destx, _desty);
- }
- return true;
- }
- function NTM_TravelTO(area)
- {
- var tries = 0;
- var stuckAtWP = false;
- var StuckAtWPRetries = 5;
- while(me.area != area)
- {
- var notFound = false;
- var tempAction = currentAction;
- var nextlvl = area;
- while(!notFound)
- {
- NTC_Delay(10);
- if(tries > 50)
- return false;
- if(NTC_InTown())
- {
- NTC_PutSkill(115, NTC_HAND_RIGHT);
- if(!usedWp)
- {
- NTTM_TownMove("waypoint");
- NTM_TakeWaypoint(area);
- usedWp = true;
- }
- if(NTM_FindPortalAreaInt(nextlvl) != -1)
- {
- NTM_ChangeAreaInt("Portal", nextlvl, null, NTM_FindPortalAreaInt(nextlvl));
- NTTM_TownMove("portalspot");
- break;
- }
- if(NTM_AreaWPArray[nextlvl] && NTM_CheckWPInt(NTM_AreaWPArray[nextlvl]))
- {
- if(stuckAtWP == nextlvl)
- {
- NTTM_TownMove("stash");
- stuckAtWP = false;
- StuckAtWPRetries = StuckAtWPRetries-1;
- if(StuckAtWPRetries == 0)
- quit();
- }
- NTTM_TownMove("waypoint");
- NTM_TakeWaypoint(nextlvl);
- stuckAtWP = nextlvl;
- usedWp=true;
- break;
- }
- }
- if(NTM_GotoLevel(nextlvl,true))
- break;
- if(!usedWp && NTM_AreaWPArray[nextlvl])
- {
- NTM_GotoWaypoint(me.area, true, 100)
- usedWp = true;
- }
- if(NTM_AreaWPArray[nextlvl] && NTM_CheckWPInt(NTM_AreaWPArray[nextlvl]))
- {
- if(NTM_GotoWaypoint(me.area,false,100))
- {
- NTM_TakeWaypoint(nextlvl);
- break;
- }
- if (NTTMGR_CheckScrolls(1) > 0)
- {
- NTTM_CheckAct()
- NTTMGR_TownManager();
- NTTM_TownMove("waypoint");
- break;
- }
- if(NTM_GotoWaypoint(me.area))
- {
- NTM_TakeWaypoint(nextlvl);
- break;
- }
- }
- var curlvl = nextlvl;
- nextlvl = NTAR_PreviousAreas[curlvl];
- if(me.area == area)
- notFound = true;
- }
- //NTP_UpdatePrecast();
- }
- return true;
- }
- function NTM_OpenDoor()
- { // only opens act 4 town door atm
- var myDoor = getUnit(2);
- if(myDoor)
- {
- do
- {
- if(myDoor.name == "gate" && getDistance(me, myDoor) < 10)
- {
- while(myDoor.mode == 0)
- {
- clickMap(0, 0, myDoor);
- NTC_Delay(rand(10,20));
- clickMap(2, 0, myDoor);
- NTC_Delay(200);
- //myDoor.interact();
- }
- }
- }while(myDoor.getNext());
- }
- }
- function NTM_GotoLevel(exitAreaId, goThru)
- {
- var exit = getArea().exits;
- if(exitAreaId == 50 && me.area == 40) // lut gholein -> palace cellar level 1
- NTTM_TownMove("palace");
- if(exitAreaId == 33 && me.area == 32)
- {
- NTM_MoveTo(20027, 5023);
- return NTM_TeleportTo(20049, 4991);
- }
- if(exitAreaId == 41 && me.area == 40)
- NTTM_TownMove("exit");
- if(exitAreaId == 110 && me.area == 109) //bloody hills
- {
- NTTM_TownMoveXY(5025,5096);
- NTM_OpenDoor();
- }
- if(exitAreaId == 38 && me.area == 4) //trist
- {
- if(!NTM_MoveToObject(NTC_UNIT_OBJECT, 17, 17, 5, 5))
- return false;
- NTC_Delay(500);
- if(goThru)
- {
- if(!NTM_UsePortal("Portal", 38))
- return false;
- }
- return true;
- }
- if(exitAreaId == 46 && me.area == 74)
- { //arcane sanct > maji cannon
- if(!NTM_MoveToObject(NTC_UNIT_OBJECT, 357, 357, 0, 0))
- return false;
- var _unit = NTC_GetUnit(NTC_UNIT_OBJECT, 357);
- _unit.interact();
- NTC_Delay(350);
- me.cancel();
- NTC_PingDelay(2500);
- if(!NTM_UsePortal("Portal", 46))
- return false;
- return true;
- }
- if(exitAreaId == 2 && me.area == 1) // rogue encampment -> blood moor
- {
- NTTM_TownMove("exit");
- var _roomAct1Town = getRoom(1);
- var _roomAct1BloodMoor = getRoom(2);
- if(_roomAct1Town && _roomAct1BloodMoor)
- {
- var x = _roomAct1Town.getStat(4) - _roomAct1BloodMoor.getStat(4);
- var y = _roomAct1Town.getStat(5) - _roomAct1BloodMoor.getStat(5);
- // South Exit
- if(x < 0 && y < 0)
- {
- NTM_WalkTo(me.x+30, me.y);
- return NTM_WalkTo(me.x+30, me.y);
- }
- // North Exit
- else if(x > 0 && y < 0)
- {
- return NTM_WalkTo(me.x-30, me.y);
- }
- // West Exit
- else if(x == 0 && y < 0)
- {
- return NTM_WalkTo(me.x, me.y+30);
- }
- // East Exit
- else if(x == 0 && y > 0)
- {
- return NTM_WalkTo(me.x, me.y-30);
- }
- }
- }
- if(me.area == 54 && exitAreaId == 74) // palace cellar 3 -> arcane sanctuary
- {
- NTM_MoveTo(10073, 8671);
- var _arcaneportal = NTC_GetUnit(NTC_UNIT_OBJECT, 298);
- if(_arcaneportal)
- _arcaneportal.interact();
- delay(3000);
- NTM_UsePortal("Portal", 74);
- return true;
- }
- if(me.area == 40 && exitAreaId == 47) // lut gholein -> sewers
- NTTM_TownMove("sewers");
- for(var n = 0 ; n < exit.length ; n++)
- {
- var target = exit[n].target;
- if(target == exitAreaId)
- {
- NTM_MoveTo(exit[n].x, exit[n].y);
- if(goThru)
- {
- if(exit[n].type == 2)
- return NTM_takeTile(exit[n].tileid);
- NTM_EnterArea(exitAreaId);
- }
- return true;
- }
- }
- return false;
- }
- function NTM_takeTile(tileId)
- {
- //Obtain the unit for the tile and store old area
- var tileUnit = getUnit(5, tileId);
- var oldArea = me.area;
- //Insure we have the unit
- //Keep trying to go thru the tile until area changes
- var _prearea = me.area;
- for(var i = 0 ; i < 100 ; i++)
- {
- if((i % 25) == 0)
- {
- if(!tileUnit)
- return false;
- //if(NTM_GetCloserInt(tileUnit))
- tileUnit.interact();
- }
- NTC_Delay(40);
- if(me.area != _prearea)
- break;
- }
- preWalkDelay();
- while(me.area == 0)
- NTC_Delay(NTC_DELAY_FRAME);
- if(me.area == _prearea)
- return false;
- debugPrint("ntm takeStairsDelay" );
- postWalkDelay();
- NTC_Delay(50);
- return true;
- }
- function NTM_GotoWaypoint(area, get, maxdistance)
- {
- print("GoToWP");
- var _classID = [119, 145, 156, 157, 237, 238, 288, 323, 324, 398, 402, 429, 494, 496, 511, 539];
- var _waypoint = getPresetUnits(area, NTC_UNIT_OBJECT);
- if(!_waypoint || _waypoint.length == undefined)
- return false;
- for(var i = 0 ; i < _waypoint.length ; i++)
- {
- if(_classID.indexOf(_waypoint[i].id) != -1)
- {
- NTM_MoveTo(_waypoint[i].roomx * 5 + _waypoint[i].x, _waypoint[i].roomy * 5 + _waypoint[i].y);
- if(!get)
- return true;
- _waypoint = NTC_GetUnit(NTC_UNIT_OBJECT, _waypoint[i].id);
- if(_waypoint)
- {
- if(!_waypoint.mode)
- {
- for(var n = 0 ; n < 40 ; n++)
- {
- if(n % 5 == 0)
- _waypoint.interact();
- NTC_Delay(200);
- if(_waypoint.mode)
- return true;
- }
- }
- }
- }
- }
- return false;
- }
- function NTM_EnterArea(id)
- {
- var _room = getRoom(id);
- var _rooms = new Array();
- if(!_room)
- return false;
- do
- {
- _rooms.push([parseInt(_room.x*5 + _room.xsize/2), parseInt(_room.y*5 + _room.ysize/2)]);
- }while(_room.getNext());
- _rooms.sort(NTA_SortRoomInt);
- _room = _rooms.shift();
- return NTM_MoveTo(_room[0], _room[1]);
- //return false;
- }
- // vector class
- function vector()
- {
- if(arguments.length == 2)
- {
- this.x = arguments[0];
- this.y = arguments[1];
- }
- else if(arguments.length == 1)
- {
- this.x = arguments[0].x;
- this.y = arguments[0].y;
- }
- else
- {
- this.x = 0;
- this.y = 0;
- }
- this.rotate = vector_rotate;
- this.normalize = vector_normalize;
- this.length = vector_length;
- this.setlength = vector_setlength;
- this.toString = vector_toString;
- this.set = vector_set;
- this.angle = vector_angle;
- }
- function vector_rotate(degree)
- {
- if(!degree)
- return true;
- var l = this.length();
- if(!l)
- return false;
- this.normalize();
- var rad = degree * (Math.PI/180);
- var nx = this.x * Math.cos(rad) - this.y * Math.sin(rad);
- var ny = this.x * Math.sin(rad) + this.y * Math.cos(rad);
- this.x = nx;
- this.y = ny;
- this.normalize();
- if(l != 1)
- this.setlength(l);
- return true;
- }
- function vector_angle(v)
- {
- var rad_degree = 180 / Math.PI;
- return Math.acos((this.x*v.x) + (this.y*v.y)) * rad_degree;
- }
- function vector_length()
- {
- return Math.sqrt((this.x*this.x) + (this.y*this.y));
- }
- function vector_setlength(length)
- {
- this.normalize();
- this.x *= length;
- this.y *= length;
- }
- function vector_normalize()
- {
- var l = this.length();
- if(!l)
- return false;
- this.x /= l;
- this.y /= l;
- return true;
- }
- function vector_toString()
- {
- str = "(";
- str += Math.round(this.x*1000)/1000;
- str += " , ";
- str += Math.round(this.y*1000)/1000;
- str += ") : ";
- str += Math.round(this.length()*1000)/1000;
- return str;
- }
- function vector_set(tx, ty)
- {
- if(arguments.length == 1)
- {
- this.x = tx.x;
- this.y = tx.y;
- }
- else if(arguments.length == 2)
- {
- this.x = tx;
- this.y = ty;
- }
- }
- // coord class
- function coord()
- {
- this.data = null;
- if(arguments.length == 3)
- {
- this.x = arguments[0];
- this.y = arguments[1];
- this.data = arguments[2];
- }
- else if(arguments.length == 2)
- {
- this.x = arguments[0];
- this.y = arguments[1];
- }
- else if(arguments.length == 1)
- {
- this.x = arguments[0].x;
- this.y = arguments[0].y;
- }
- else
- {
- this.x = 0;
- this.y = 0;
- }
- this.dist = coord_dist;
- this.dist2 = coord_dist2;
- this.dir = coord_dir;
- this.move = coord_move;
- this.set = coord_set;
- this.toString = coord_toString;
- }
- function coord_set(tx, ty, d)
- {
- if(arguments.length == 1)
- {
- this.x = tx.x;
- this.y = tx.y;
- if(tx.data)
- this.data = tx.data;
- else
- this.data = null;
- }
- else if(arguments.length == 2)
- {
- this.x = tx;
- this.y = ty;
- this.data = null;
- }
- else if(arguments.length == 3)
- {
- this.x = tx;
- this.y = ty;
- this.data = d;
- }
- }
- function coord_dist(tx, ty)
- {
- if(arguments.length == 1)
- {
- var vx = this.x - tx.x;
- var vy = this.y - tx.y;
- return Math.round(Math.sqrt((vx*vx) + (vy*vy)));
- }
- else if(arguments.length == 2)
- {
- var vx = this.x - tx;
- var vy = this.y - ty;
- return Math.round(Math.sqrt((vx*vx) + (vy*vy)));
- }
- return false;
- }
- function coord_dist2(tx, ty)
- {
- if(arguments.length == 1)
- {
- vx = this.x - tx.x;
- vy = this.y - tx.y;
- return Math.floor((vx*vx) + (vy*vy));
- }
- else if(arguments.length == 2)
- {
- vx = this.x - tx;
- vy = this.y - ty;
- return Math.floor((vx*vx) + (vy*vy));
- }
- return false;
- }
- function coord_dir(tx, ty)
- {
- if(arguments.length == 1)
- {
- var v = new vector(tx.x-this.x, tx.y-this.y);
- v.normalize();
- return v;
- }
- else if(arguments.length == 2)
- {
- v = new vector(tx-this.x, ty-this.y);
- v.normalize();
- return v;
- }
- return false;
- }
- function coord_move(vec, d)
- {
- if(d)
- {
- this.x += Math.round(vec.x*d);
- this.y += Math.round(vec.y*d);
- return true;
- }
- else if(vec.length())
- {
- this.x += Math.round(vec.x);
- this.y += Math.round(vec.y);
- return true;
- }
- return false;
- }
- function coord_toString()
- {
- return "( " + this.x + " , " + this.y + " ) " + this.data;
- }
- // custom
- function NTM_MoveCloseCoords(x, y, maxrange)
- {
- var _result = true;
- var _dist = getDistance(me.x, me.y, x, y);
- if (_dist > maxrange)
- {
- var _destx, _desty;
- _destx = me.x + Math.round((_dist - maxrange) * (x - me.x) / _dist);
- _desty = me.y + Math.round((_dist - maxrange) * (y - me.y) / _dist);
- _result = NTM_MoveTo(_destx, _desty);
- }
- return _result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement