function NT_TagTeamDiablo() {
// Leader Character Name, Doesn't really fight much so its good for a sorc.
var Leader = "CHARACTER1";
// Main Runners (they open seals and kill mini-bosses. 'Member' goes with Leader to Infector of Souls as it's generally hardest boss.
var Your = "CHARACTER2";
var Greatest = "CHARACTER3";
var Member = "CHARACTER4";
var _GoToRiverOfFlame = false
var _GoToThePandemoniumFortress = false
var _EnterTheChaosSancturary = false
var _GoOpenSeals = false
addEventListener("chatmsg", ListenToLeader);
print("ÿc3Starting Tag Team Diablo, By YourGreatestMember");
if (!NTTM_CheckAct(4)) {
return false;
}
NTTMGR_TownManager();
// LEADER START
if (me.charname == Leader) {
var Tag1 = getUnit(0, Your),
Tag2 = getUnit(0, Greatest),
Tag3 = getUnit(0, Member);
while (!Tag1 || !Tag2 || !Tag3) {
Tag1 = getUnit(0, Your);
Tag2 = getUnit(0, Greatest);
Tag3 = getUnit(0, Member);
delay(1000);
}
say("Go to River of Flame");
GoToRiverOfFlame();
while (!Tag1 || !Tag2 || !Tag3) {
Tag1 = getUnit(0, Your);
Tag2 = getUnit(0, Greatest);
Tag3 = getUnit(0, Member);
delay(1000);
}
print("ÿc5Precasting");
NTP_DoPrecast();
say("Go to The Pandemonium Fortress");
GoToThePandemoniumFortress();
print("ÿc8Going to Chaos Sanctuary");
NTM_TravelTO(108)
NTM_MoveTo(7792, 5292);
NTM_MakeTP();
say("Enter The Chaos Sancturary");
while (!Tag1 || !Tag2 || !Tag3) {
Tag1 = getUnit(0, Your);
Tag2 = getUnit(0, Greatest);
Tag3 = getUnit(0, Member);
delay(1000);
}
NTC_Delay(100);
say("Go Open Seals");
NTC_Delay(2000);
if (!NTM_MoveToObject(NTC_UNIT_OBJECT, 392, 392)) return false;
for (var n = 0; n < 35; n++) {
delay(250);
if (NTC_FindMonster(getLocaleString(2853)))
break;
}
if (NTA_KillBoss(getLocaleString(2853), 50))
NTSI_PickItems();
KillDiablo();
}
// LEADER END
// YOUR START
if (me.charname == Your) {
if (!NTTM_TownMove("portalspot")) return false;
while (me.area == 103) {
delay(1000);
}
ListenToLeader();
while (!_GoToRiverOfFlame) {
delay(300);
}
while (!_GoToThePandemoniumFortress) {
delay(300);
}
while (!_EnterTheChaosSancturary) {
delay(300);
}
while (!_GoOpenSeals) {
delay(300);
}
}
// YOUR END
// GREATEST START
if (me.charname == Greatest) {
if (!NTTM_TownMove("portalspot")) return false;
while (me.area == 103) {
delay(1000);
}
ListenToLeader();
while (!_GoToRiverOfFlame) {
delay(300);
}
while (!_GoToThePandemoniumFortress) {
delay(300);
}
while (!_EnterTheChaosSancturary) {
delay(300);
}
while (!_GoOpenSeals) {
delay(300);
}
}
// GREATEST END
// MEMBER START
if (me.charname == Member) {
if (!NTTM_TownMove("portalspot")) return false;
while (me.area == 103) {
delay(1000);
}
ListenToLeader();
while (!_GoToRiverOfFlame) {
delay(300);
}
while (!_GoToThePandemoniumFortress) {
delay(300);
}
while (!_EnterTheChaosSancturary) {
delay(300);
}
while (!_GoOpenSeals) {
delay(300);
}
}
// MEMBER END
return true;
}
function GoToRiverOfFlame() {
print("ÿc8Going to River of Flame");
if (!NTTM_TownMove("waypoint")) return false;
if (!NTM_UsePortal("Waypoint", 107)) {
print("ÿc8Seems we do not have the waypoint, Lets go get it! Traveling to River of Flame");
NTM_TravelTO(107);
print("ÿc8Interacting with Waypoint as we don't have it.");
NTM_GotoWaypoint(107, true, 10000);
}
return false;
}
function GoToThePandemoniumFortress() {
print("ÿc8Going to The Pandemonium Fortress");
if (me.classid == NTC_CHAR_CLASS_PALADIN) {
NTC_PutSkill(117, NTC_HAND_RIGHT);
NTC_DoCast(117, 2);
}
if (!NTM_UsePortal("Waypoint", 103)) {
NTM_TravelTO(103);
}
if (!NTTM_TownMove("portalspot")) return false;
return false;
}
function EnterTheChaosSancturary() {
var Leader1 = "CHARACTER1";
NTM_UsePortal("BluePortal", 108, Leader1);
return false;
}
function GoOpenSeals() {
var LeaderA = "CHARACTER1";
var Your1 = "CHARACTER2";
var Greatest1 = "CHARACTER3";
var Member1 = "CHARACTER4";
while (me.area == 103) {
delay(1000);
}
if (me.charname == Your1) {
if (!NTM_MoveToObject(NTC_UNIT_OBJECT, 395, 395)) return false;
OpenSeal(395)
if (!NTM_MoveToObject(NTC_UNIT_OBJECT, 396, 396)) return false;
OpenSeal(396)
if (me.y > 5265 && me.y <= 5275) NTM_MoveTo(7677, 5287);
else NTM_MoveTo(7675, 5321)
for (var n = 0; n < 20; n++) {
delay(250);
if (NTC_FindMonster(getLocaleString(2851))) break;
}
if (NTA_KillBoss(getLocaleString(2851), 20)) {
NTSI_PickItems();
KillDiablo();
NTM_UsePortal("BluePortal", 103, LeaderA);
return true;
}
return false;
}
if (me.charname == Greatest1) {
if (!NTM_MoveToObject(NTC_UNIT_OBJECT, 394, 394)) return false;
OpenSeal(394)
if (me.x > 7810 && me.x <= 7825) NTM_MoveTo(7777, 5160);
else NTM_MoveTo(7777, 5200);
for (var n = 0; n < 20; n++) {
delay(250);
if (NTC_FindMonster(getLocaleString(2852))) break;
}
if (NTA_KillBoss(getLocaleString(2852), 30)) {
NTSI_PickItems();
KillDiablo();
NTM_UsePortal("BluePortal", 103, LeaderA);
return true;
}
return false;
}
if (me.charname == Member1) {
if (!NTM_MoveToObject(NTC_UNIT_OBJECT, 393, 393)) return false;
OpenSeal(393)
if (!NTM_MoveToObject(NTC_UNIT_OBJECT, 392, 392)) return false;
OpenSeal(392)
for (var n = 0; n < 20; n++) {
delay(250);
if (NTC_FindMonster(getLocaleString(2853))) break;
}
if (NTA_KillBoss(getLocaleString(2853), 50)) NTSI_PickItems();
KillDiablo();
NTM_UsePortal("BluePortal", 103, LeaderA);
return true;
}
return false;
}
function KillDiablo() {
if (!NTM_MoveTo(7800, 5294)) return false;
NTT_CleanPotions();
for (var n = 0; n < 30; n++) {
if (me.classid == NTC_CHAR_CLASS_PALADIN) {
NTC_PutSkill(113, NTC_HAND_RIGHT);
NTC_DoCast(112, 2);
NTC_DoCast(112, 2);
NTC_DoCast(112, 2);
NTC_DoCast(112, 2);
NTC_DoCast(112, 2);
NTC_DoCast(112, 2);
NTC_Delay(250);
}
if (NTC_FindMonster(243)) {
print("ÿc1Killing Diablo");
if (NTA_KillBoss(243, 1000)) {
NTSI_PickItems();
return true;
}
}
NTC_Delay(500);
}
print("ÿc;Diablo not found.");
return false;
}
function ListenToLeader(Leader, msg) {
if (msg == "Go to River of Flame") {
var _GoToRiverOfFlame = false;
_GoToRiverOfFlame = true;
GoToRiverOfFlame();
}
if (msg == "Go to The Pandemonium Fortress") {
var _GoToThePandemoniumFortress = false;
_GoToThePandemoniumFortress = true;
GoToThePandemoniumFortress();
}
if (msg == "Enter The Chaos Sancturary") {
var _EnterTheChaosSancturary = false;
_EnterTheChaosSancturary = true;
EnterTheChaosSancturary();
}
if (msg == "Go Open Seals") {
var _GoOpenSeals = false;
_GoOpenSeals = true;
GoOpenSeals();
}
}
function findTagLeader() {
for (var i = 0; i < 100; i++) {
if (findLeader(Leader)) break;
delay(100);
}
}
function findLeader(Leader) {
var _Leader = getUnit(0, Leader)
if (_Leader) return _Leader.area;
var area = 0;
var a = getParty();
if (!a) return false;
do {
if (a.name == Leader) {
area = a.area;
}
} while (a.getNext());
if (area == 0) {
return false;
}
return area;
}
function OpenSeal(sealID) {
var _unit = NTC_GetUnit(NTC_UNIT_OBJECT, sealID);
_unit.interact();
_unit.interact();
}