Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function NT_Leech()
- {
- // General Maintenance
- var leader = "LEADER_NAME_HERE";
- var i;
- var _wave;
- var _starttick;
- // General Maintenance
- print("yc3Starting Baal Leech Script");
- if (!NTTM_CheckAct(5))
- {
- return false;
- }
- NTTMGR_TownManager();
- // Double Check Location
- if (me.area != 109)
- {
- NTTM_TownMove("waypoint");
- NTM_UsePortal("Waypoint", 109);
- }
- // Move to Potal Spot
- if (!NTTM_TownMove("portalspot"))
- {
- return false;
- }
- // Delay until in party with Leader
- for (var i = 0; i < 100; i++)
- {
- if (findLead(leader)) break;
- for (var j = 0; j < NT_Leader.length; j++)
- {
- if (findLead(NT_Leader[j])) leader = NT_Leader[j];
- }
- delay(100);
- }
- // Quit With Leader
- QuitWithLeader = leader;
- // Enter Portal
- while (me.area == 109)
- {
- if (NTConfig_PureLeech)
- {
- NTC_Delay(30000);
- }
- NTM_UsePortal("BluePortal", 131, leader);
- delay(1000);
- if (!findLead(leader))
- {
- var a = getParty();
- if (!a) return false;
- do
- {
- sendCopyData(null, "OOG", 0, "Leader Not Found-->" + a.name + "<--");
- } while (a.getNext());
- return false;
- }
- }
- // Precasting
- print("yc5Precasting");
- NTP_DoPrecast();
- NTC_Delay(250);
- if (NTConfig_PureLeech)
- {
- NTM_MoveTo(15113, 5053);
- while (1)
- {
- if (me.getState(2)) NTC_PutSkill(109, NTC_HAND_RIGHT);
- for (i = 0; i < 0; i++)
- {
- _wave = NT_ThroneCheckInt();
- if (_wave > 0) break;
- NTC_Delay(500);
- }
- // Start Waves
- while (_wave == 0)
- {
- _wave = NT_ThroneCheckInt();
- }
- // End of Wave 1
- if (_wave == 1);
- // End of Wave 1 Precasts
- if (_wave == 1 && NTConfig_BaalPrecastSettings == 1 || _wave == 1 && NTConfig_BaalPrecastSettings == 2 || _wave == 1 && NTConfig_BaalPrecastSettings == 3)
- {
- NTM_MoveTo(15094, 5038);
- NTC_Delay(400);
- NTP_DoPrecast();
- NTC_Delay(400);
- NTM_MoveTo(15113, 5053);
- }
- // End of Wave 2 Precasts
- else if (_wave == 2);
- if (_wave == 2 && NTConfig_BaalPrecastSettings == 1)
- {
- NTM_MoveTo(15094, 5038);
- NTC_Delay(400);
- NTP_DoPrecast();
- NTC_Delay(400);
- NTM_MoveTo(15113, 5053);
- }
- // End of Wave 2 Clensing
- if (_wave == 2 && NTConfig_BaalClensing)
- {
- if (me.classid == NTC_CHAR_CLASS_PALADIN)
- {
- NTC_PutSkill(109, NTC_HAND_RIGHT);
- }
- }
- // End of Wave 3 Precasts
- else if (_wave == 3);
- if (_wave == 3 && NTConfig_BaalPrecastSettings == 1 || _wave == 3 && NTConfig_BaalPrecastSettings == 3)
- {
- NTM_MoveTo(15094, 5038);
- NTC_Delay(400);
- NTP_DoPrecast();
- NTC_Delay(400);
- NTM_MoveTo(15113, 5053);
- }
- // End of Wave 4 Precasts
- else if (_wave == 4);
- if (_wave == 4 && NTConfig_BaalPrecastSettings == 1)
- {
- NTM_MoveTo(15094, 5038);
- NTC_Delay(250);
- NTP_DoPrecast();
- NTM_MoveTo(15113, 5053);
- }
- else if (_wave == 5) break;
- if (!findLead(leader)) return false;
- while (NTC_FindMonster(getLocaleString(3061)))
- {
- NTC_Delay(350);
- if (!findLead(leader)) return false;
- }
- delay(300);
- }
- if (!findLead(leader)) return false;
- }
- else
- {
- // Initiate Main Part of Script.
- NT_ClearThroneInt();
- while (1)
- {
- // Move into Position for waves.
- if (me.classid == NTC_CHAR_CLASS_PALADIN || me.classid == NTC_CHAR_CLASS_BARBARIAN) NTM_MoveTo(15092, 5028);
- else NTM_MoveTo(15092, 5040);
- // If Poisoned use Clensing.
- if (me.getState(2)) NTC_PutSkill(109, NTC_HAND_RIGHT);
- // Check Throne
- for (i = 0; i < 6; i++)
- {
- _wave = NT_ThroneCheckInt();
- if (_wave > 0) break;
- NTC_Delay(500);
- }
- // General Maintenance
- _starttick = getTickCount();
- // Start Waves
- while (_wave == 0)
- {
- if (!NT_ThronePreAttackInt()) NTC_Delay(250);
- if (getTickCount() - _starttick > 20000)
- {
- NT_ClearThroneInt();
- _starttick = getTickCount();
- }
- _wave = NT_ThroneCheckInt();
- }
- // Holy Bolt Support
- if (NTConfig_BaalHolyBolt)
- {
- // Kill Sequence for waves 1,3,4 and 5
- if (_wave != 2)
- {
- NTA_ClearPosition(40, 0x04);
- NTA_ClearPosition(40);
- NTA_ClearPosition();
- NTSI_PickItems();
- NTT_CleanPotions();
- NTC_Delay(250);
- NTA_ClearPosition(40, 0x04);
- NTA_ClearPosition(40);
- NTA_ClearPosition();
- NTSI_PickItems();
- }
- else
- {
- // Kill Sequence for wave 2 (Holy Bolt)
- NTA_ClearPosition(40, 0x04, true);
- NTA_ClearPosition(40, 0, true);
- NTA_ClearPosition(40);
- NTSI_PickItems();
- NTT_CleanPotions();
- NTC_Delay(250);
- NTA_ClearPosition(40, 0x04, true);
- NTA_ClearPosition(40, 0, true);
- NTA_ClearPosition(40);
- NTSI_PickItems();
- NTT_CleanPotions();
- }
- }
- else
- {
- NTA_ClearPosition(40, 0x04);
- NTA_ClearPosition(40);
- NTA_ClearPosition();
- NTSI_PickItems();
- NTT_CleanPotions();
- NTC_Delay(250);
- NTA_ClearPosition(40, 0x04);
- NTA_ClearPosition(40);
- NTA_ClearPosition();
- NTSI_PickItems();
- }
- // End of Wave 1
- if (_wave == 1);
- // End of Wave 1 Precasts
- if (_wave == 1 && NTConfig_BaalPrecastSettings == 1 || _wave == 1 && NTConfig_BaalPrecastSettings == 2 || _wave == 1 && NTConfig_BaalPrecastSettings == 3)
- {
- NTC_Delay(250);
- NTP_DoPrecast();
- }
- // End of Wave 2 Precasts
- else if (_wave == 2);
- if (_wave == 2 && NTConfig_BaalPrecastSettings == 1)
- {
- NTC_Delay(250);
- NTP_DoPrecast();
- }
- // End of Wave 2 Clensing
- if (_wave == 2 && NTConfig_BaalClensing)
- {
- if (me.classid == NTC_CHAR_CLASS_PALADIN)
- {
- NTC_PutSkill(109, NTC_HAND_RIGHT);
- }
- }
- // End of Wave 3 Precasts
- else if (_wave == 3);
- if (_wave == 3 && NTConfig_BaalPrecastSettings == 1 || _wave == 3 && NTConfig_BaalPrecastSettings == 3)
- {
- NTC_Delay(250);
- NTP_DoPrecast();
- }
- // End of Wave 3 Avoid Hydra
- if (_wave == 3 && NTConfig_BaalAvoidHydra)
- {
- NT_CheckHydraInt();
- }
- // End of Wave 4 Precasts
- else if (_wave == 4);
- if (_wave == 4 && NTConfig_BaalPrecastSettings == 1)
- {
- NTC_Delay(250);
- NTP_DoPrecast();
- }
- // End of Wave 5
- else if (_wave == 5) break;
- if (!findLead(leader)) return false;
- }
- }
- // Kill Baal
- if (NTConfig_KillBaal)
- {
- // General Maintenance
- var _portal;
- // Check Safe
- if (NTConfig_CheckSafe)
- {
- if (!NTTMGR_CheckSafe(3)) return false;
- }
- // Move to Stairs and Precast
- NTM_MoveTo(15092, 5010);
- NTC_Delay(250);
- NTP_DoPrecast();
- // Find Baal
- while (NTC_FindMonster(getLocaleString(3061)))
- NTC_Delay(250);
- // General Maintenace
- _portal = NTC_GetUnit(NTC_UNIT_OBJECT, 563);
- // If unable to find portal, end run.
- if (!_portal) return false;
- // Enter Portal
- if (!NTM_UsePortal("Portal", 132, null, _portal)) return false;
- // Move to Middle
- NTM_MoveTo(15138, 5916);
- // Leechers Stay close to baal!
- if (NTConfig_PureLeech)
- {
- var _baal;
- _baal = NTC_FindMonster(getLocaleString(3061))
- while (_baal && _baal.hp > 0)
- {
- if (getDistance(me, _baal) > 10) NTM_MoveTo(_baal.x, _baal.y);
- //NTM_MoveTo(_baal.x, _baal.y);
- _baal = NTC_FindMonster(getLocaleString(3061))
- NTSI_PickItems();
- NTC_Delay(500);
- if (!findLead(leader)) return false;
- }
- while (!NTC_FindMonster(getLocaleString(3061)))
- NTSI_PickItems();
- if (!findLead(leader)) return false;
- NTC_Delay(250);
- return true;
- }
- // Kill baal
- if (!NTA_KillBoss(getLocaleString(3061))) return false;
- NTSI_PickItems();
- if (!findLead(leader)) return false;
- }
- sendCopyData(null, "OOG", 0, "Quit:Full Run");
- return true;
- }
- // Clear Throne
- function NT_ClearThroneInt()
- {
- // Baal Fast Setup
- if (NTConfig_BaalFastSetup)
- {
- // Attack Array Coords
- var _attackpos = [15094, 5029, 15094, 5029, 15105, 5019, 15108, 5041, 15101, 5060, 15087, 5062, 15080, 5042, 15083, 5016, 15094, 5034, 15094, 5058];
- // Process Attack Array Coords
- for (var i = 0; i < _attackpos.length; i += 2)
- {
- NTM_MoveTo(_attackpos[i], _attackpos[i + 1]);
- NTA_ClearPosition(25, 0x04);
- NTA_ClearPosition(25);
- NTSI_PickItems();
- }
- if (me.classid == NTC_CHAR_CLASS_PALADIN || me.classid == NTC_CHAR_CLASS_BARBARIAN) NTM_MoveTo(15092, 5028);
- else NTM_MoveTo(15092, 5040);
- }
- else
- {
- // If Baal Fast Setup is set to false
- // Attack Array Coords
- var _attackpos = [15104, 5059, 15083, 5063, 15082, 5041, 15083, 5018, 15103, 5018, 15107, 5040, 15094, 5057, 15094, 5034];
- // Process Attack Array Coords
- for (var i = 0; i < _attackpos.length; i += 2)
- {
- NTM_MoveTo(_attackpos[i], _attackpos[i + 1]);
- NTA_ClearPosition(25, 0x04);
- NTA_ClearPosition(25);
- NTSI_PickItems();
- }
- }
- NTT_CleanPotions();
- }
- // Check Waves
- function NT_ThroneCheckInt()
- {
- // General Maintenance
- var _monster;
- // If Unable to find Baal, return 5 (same as killing all the waves)
- if (!NTC_FindMonster(getLocaleString(3061))) return 5;
- // General Maintenance
- _monster = NTC_GetUnit(NTC_UNIT_MONSTER);
- // Find Valid Monsters
- if (_monster)
- {
- do
- {
- if (NTA_IsValidTarget(_monster))
- {
- if (_monster.classid == 23 || _monster.classid == 62) return 1;
- if (_monster.classid == 105 || _monster.classid == 381) return 2;
- if (_monster.classid == 557) return 3;
- if (_monster.classid == 558) return 4;
- if (_monster.classid == 571) return 5;
- }
- } while (_monster.getNext());
- }
- return 0;
- }
- // Throne Pre Attack
- function NT_ThronePreAttackInt()
- {
- if (me.classid == NTC_CHAR_CLASS_SORCERESS)
- {
- if (NTConfig_AttackOthers == 56 || NTConfig_AttackOthers == 59) return NTC_DoCast(NTConfig_AttackOthers, 2, 15092, 5028);
- }
- else if (me.classid == NTC_CHAR_CLASS_PALADIN)
- {
- if (NTConfig_AttackOthers == 112)
- {
- if (NTConfig_PutAura > 0) NTC_PutSkill(NTConfig_PutAura, NTC_HAND_RIGHT);
- return NTC_DoCast(NTConfig_AttackOthers, 2);
- }
- }
- return false;
- }
- // Avoid Hydras
- function NT_CheckHydraInt()
- {
- // General Maintenance
- var _hydra1, _hydra2, _hydra3;
- _hydra1 = NTC_GetUnit(NTC_UNIT_MONSTER, 351);
- _hydra2 = NTC_GetUnit(NTC_UNIT_MONSTER, 352);
- _hydra3 = NTC_GetUnit(NTC_UNIT_MONSTER, 353);
- // If Hydras exist move to corner of room.
- if ((_hydra1 && _hydra1.getStat(172) != 2 && _hydra1.getState(105)) || (_hydra2 && _hydra2.getStat(172) != 2 && _hydra2.getState(105)) || (_hydra3 && _hydra3.getStat(172) != 2 && _hydra3.getState(105)))
- {
- NTM_MoveTo(15112, 5004);
- if (me.getState(2)) NTC_PutSkill(109, NTC_HAND_RIGHT);
- NTC_Delay(3000);
- }
- }
- // Find Leader
- function findLead(leader)
- {
- var _lead = getUnit(0, leader)
- if (_lead) return _lead.area;
- var area = 0;
- var a = getParty();
- if (!a) return false;
- do
- {
- if (a.name == leader)
- {
- return true;
- }
- } while (a.getNext());
- if (area == 0)
- {
- return false;
- }
- return area;
- }
- // Quit with Leader
- function LeaveWithLeader(mode, param, name1, name2)
- {
- if (mode == 0 || mode == 1 || mode == 3) if (name1 == QuitWithLeader) quit();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement