NTDiabloLeechFightCoop.ntj
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize(); // 10
if(!NTTM_CheckAct())
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
return;
}
if(me.areaid != 103)
{
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
return;
}
if(!NTM_TakeWaypoint(103))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
}
NTTMGR_TownManager();
NTTM_TownMove("portalspot");
for(i = 0; i <= 100; i++)
{
if(NTC_InMyParty(NTConfig_Leader))
break;
Delay(200);
}
while(me.areaid == 103 && NTC_InMyParty(NTConfig_Leader))
{
NTM_UsePortal("BluePortal", 108, NTConfig_Leader); // 50
Delay(1000);
}
var FrontToStarX = [7792,7794,7791,7777,7813,7769,7782,7802,7819,7768,7770,7791,7819];
var FrontToStarY = [5564,5529,5495,5486,5486,5445,5421,5421,5446,5390,5355,5355,5376];
var FrontToStarFastX = [7799,7802,7802,7819,7821,7821,7821];
var FrontToStarFastY = [5569,5531,5498,5486,5450,5416,5376];
if(NTConfig_ClearFromFront == 1)
{
if(NTConfig_MakeTP == 1)
{
var _x = me.x;
var _y = me.y;
NT_Clear(20, true, 1);
if(me.x != _x && me.y != _y) NTM_MoveTo(108, _x, _y);
NT_Clear(20, true, 1);
if(me.x != _x && me.y != _y) NTM_MoveTo(108, _x, _y);
NTM_MakeTP();
if(NTConfig_WaitAndBO == 1)
{
Say(NTConfig_BOSayMsg + " " + NTConfig_BOWait);
NTC_Delay(NTConfig_BOWait*1000);
NTP_DoPrecast(true);
}
}
for(var i = 0; i < FrontToStarX.length; i++)
{
NT_Clear(35, true, 1);
NTM_MoveTo(108, FrontToStarX[i], FrontToStarY[i]);
if(NTConfig_OpenHiddenStashes == 1) NT_OpenHiddenStashes();
}
}
else
{
NTM_MoveTo(108, 7791, 5290);
}
NT_GetSeals();
NT_KillDiablo();
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}
function NT_VizierSeal(type)
{
var V1X = [7768,7755,7741,7733,7723,7714,7707,7680,7666];// |||||||||
var V1Y = [5289,5295,5282,5291,5300,5282,5315,5310,5311];// |||
var V2X = [7767,7756,7744,7747,7750,7741,7729,7720,7720,7721,7719,7712,7700,7687,7676];// ||| |||
var V2Y = [5292,5284,5275,5290,5303,5310,5314,5312,5301,5288,5273,7292,5294,5294,5292];// |||
if(type == 1)
{
for(var i = 0; i < V1X.length; i++)
{
NTM_MoveTo(108, V1X[i], V1Y[i]);
if(NTConfig_OpenHiddenStashes == 1) NT_OpenHiddenStashes();
if(NTConfig_FastMode != 1) NT_Clear(25, true, 1);
}
for(var n = 0; n < 2; n++)
{
NT_OpenSeal(396, 7667, 5315);
NTM_MoveTo(108, 7672, 5307);
for(var i = 0 ; i < 15 ; i++)
{
NTC_Delay(100);
if(NT_KillMonster(GetLocaleString(2851), 1))
{
if(NTConfig_FastMode != 1) NT_Clear(30, false, 1);
NTSI_PickItems();
NT_OpenSeal(395, 7664, 5275);
return NT_BackToStar();
}
}
NT_OpenSeal(395, 7664, 5275);
}
}
else
{
for(var i = 0; i < V2X.length; i++)
{
NTM_MoveTo(108, V2X[i], V2Y[i]);
if(NTConfig_OpenHiddenStashes == 1) NT_OpenHiddenStashes();
if(NTConfig_FastMode != 1) NT_Clear(25, true, 1);
}
for(var n = 0; n < 2; n++)
{
NT_OpenSeal(396, 7664, 5275);
NTM_MoveTo(108, 7667, 5292);
for(var i = 0 ; i < 30 ; i++)
{
NTC_Delay(150);
if(NT_KillMonster(GetLocaleString(2851), 1))
{
if(NTConfig_FastMode != 1) NT_Clear(30, false, 1);
NTSI_PickItems();
NT_OpenSeal(395, 7667, 5315);
return NT_BackToStar();
}
}
NT_OpenSeal(395, 7667, 5315);
}
}
return NT_BackToStar();
}
function NT_DeSeisSeal(type)
{
var S1X = [7786,7801,7786,7787,7810,7811,7810,7790,7774,7773,7794];// shape of an "S" or "5"
var S1Y = [5263,5249,5245,5227,5233,5215,5198,5194,5181,5156,5154];
var S2X = [7791,7783,7800,7809,7785,7773,7773,7776,7794,7811,7817,7815,7798,7785];// Shape of "2"
var S2Y = [5265,5256,5247,5232,5230,5222,5212,5194,5194,5193,5177,5157,5155,5155];
if(type == 2)
{
for(var i = 0; i < S2X.length; i++)
{
NTM_MoveTo(108, S2X[i], S2Y[i]);
NT_Clear(25, true, 1);
if(NTConfig_OpenHiddenStashes == 1) NT_OpenHiddenStashes();
}
for(var n = 0; n < 2; n++)
{
NT_OpenSeal(394, 7773, 5155);
NTM_MoveTo(108, 7809, 5202);
NTM_TeleportTo(7812, 5224);
NTM_MoveTo(108, 7793, 5234);
for(i = 0 ; i < 15 ; i++)
{
NTC_Delay(100);
if(NT_KillMonster(GetLocaleString(2852), 1))
{
NTSI_PickItems();
if(NTConfig_FastMode != 1) NT_ClearPosition(40, true, 1);
return NT_BackToStar();
}
else
{
NT_OpenSeal(394, 7773, 5155);
NTM_MoveTo(108, 7809, 5202);
NTM_TeleportTo(7812, 5224);
NTM_MoveTo(108, 7793, 5234);
for(i = 0 ; n < 15 ; i++)
{
NTC_Delay(100);
if(NT_KillMonster(GetLocaleString(2852), 1))
{
NTSI_PickItems();
if(NTConfig_FastMode != 1) NT_ClearPosition(40, true, 1);
return NT_BackToStar();
}
}
}
}
}
}
else
{
for(var i = 0; i < S1X.length; i++)
{
NTM_MoveTo(108, S1X[i], S1Y[i]);
NT_Clear(25, true, 1);
if(NTConfig_OpenHiddenStashes == 1) NT_OpenHiddenStashes();
}
for(var n = 0; n < 2; n++)
{
NT_OpenSeal(394, 7803, 5154);
NTM_MoveTo(108, 7789, 5157);
for(i = 0 ; i < 15 ; i++)
{
NTC_Delay(100);
if(NT_KillMonster(GetLocaleString(2852), 1))
{
NTSI_PickItems();
if(NTConfig_FastMode != 1) NT_ClearPosition(40, true, 1);
return NT_BackToStar();
}
}
}
}
return NT_BackToStar();
}
function NT_InfectorSeal(type)
{
var I1X = [7822,7826,7832,7850,7858,7868,7877,7891,7907,7927,7932];// looks like a hook
var I1Y = [5297,5278,5307,5278,7305,5297,5276,5276,5276,5279,5298];
var I2X = [7825,7827,7834,7845,7855,7852,7875,7896,7917];// shape of a "t"
var I2Y = [5293,5276,5291,5315,5301,5278,5293,5295,5291];
if(type == 2)
{
for(var i = 0; i < I2X.length; i++)
{
NTM_MoveTo(108, I2X[i], I2Y[i]);
NT_Clear(25, true, 1);
if(NTConfig_OpenHiddenStashes == 1) NT_OpenHiddenStashes();
}
for(var n = 0; n < 2; n++)
{
NT_OpenSeal(392, 7895, 5309);
NTM_MoveTo(108, 7899, 5295);
for(i = 0 ; i < 15 ; i++)
{
NTC_Delay(200);
if(NT_KillMonster(GetLocaleString(2853), 1))
{
if(NTConfig_FastMode != 1) NT_Clear(40, false, 1);
NTSI_PickItems();
NT_OpenSeal(393, 7895, 5275);
return NT_BackToStar();
}
}
NT_OpenSeal(393, 7915, 5275);
}
}
else
{
for(var i = 0; i < I1X.length; i++)
{
NTM_MoveTo(108, I1X[i], I1Y[i]);
NT_Clear(25, true, 1);
if(NTConfig_OpenHiddenStashes == 1) NT_OpenHiddenStashes();
}
for(var n = 0; n < 2; n++)
{
NT_OpenSeal(392, 7924, 5315);
NTM_MoveTo(108, 7932, 5297);
for(i = 0 ; i < 15 ; i++)
{
NTC_Delay(200);
if(NT_KillMonster(GetLocaleString(2853), 1))
{
if(NTConfig_FastMode != 1) NT_Clear(40, false, 1);
NTSI_PickItems();
NT_OpenSeal(393, 7915, 5275);
return NT_BackToStar();
}
}
NT_OpenSeal(393, 7915, 5275);
}
}
return NT_BackToStar();
}
function NT_KillDiablo()
{
if(NTConfig_MakeTP == 1)
{
NTM_MoveTo(108, 7827, 5284);
NTM_MakeTP();
NTM_MoveTo(108, 7791, 5290);
}
NTC_FindUnit(NTC_UNIT_MONSTER, 243, 100);
if(!NTA_ClearPosition(25, true, 2)) {
NTA_ClearPosition();
}
NTSI_PickItems();
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}
function NT_BackToStar()
{
NTM_MoveTo(108, 7791, 5290);
if(NTConfig_FastMode != 1) NT_Clear(25, true, 1);
if(me.x != 7791 && me.y != 5290) NTM_MoveTo(108, 7791, 5290);
if(NTConfig_FastMode != 1)
{
NTP_DoPrecast(true);
NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe)
}
}
function NT_GetSeals()
{
if(me.x != 7791 && me.y != 5290)
{
NTM_MoveTo(108, 7791, 5290);
NT_Clear(20, true, 1);
}
if(NTConfig_MakeTP == 1 && NTConfig_FastMode != 1)
{
NT_Clear(20, true, 1);
NTM_MoveTo(108, 7791, 5290);
NTM_MakeTP();
if(NTConfig_WaitAndBO == 1)
{
Say(NTConfig_BOSayMsg + " " + NTConfig_BOWait);
NTC_Delay(NTConfig_BOWait*1000);
NTP_DoPrecast(true);
}
}
Print("?c5Getting seal information...");
var _result = false;
var viztype, venomtype, seistype;
var pre = GetPresetUnits(108, NTC_UNIT_OBJECT);
for(var i = 0; i < pre.length; i++)
{
if(pre[i].id == 396)
{
if(pre[i].roomy*5 + pre[i].y == 5275 && pre[i].roomx*5 + pre[i].x == 7655)
viztype = 2;
else
viztype = 1;
}
if(pre[i].id == 394)
{
if(pre[i].roomx*5 + pre[i].x != 7773)
seistype = 1;
else
seistype = 2;
}
if(pre[i].id == 392)
{
if(pre[i].roomx*5 + pre[i].x == 7893)
venomtype = 2;
else
venomtype = 1;
}
}
Print("?c5Grand Vizier of Chaos, Type: " + viztype);
Print("?c5Lord De Seis, Type: " + seistype);
Print("?c5Infector of Souls, Type: " + venomtype);
for(var i = 0; i < 3; i++)
{
switch(NTConfig_SealOrder[i])
{
case 'w':
_result = NT_VizierSeal(viztype);
_result = false;
break;
case 'n':
_result = NT_DeSeisSeal(seistype);
_result = false;
break;
case 'e':
_result = false;
_result = NT_InfectorSeal(venomtype);
break;
default:
_result = NT_VizierSeal(viztype);
_result = false;
_result = NT_DeSeisSeal(seistype);
_result = false;
_result = NT_InfectorSeal(venomtype);
return _result;
break;
}
}
return _result;
}
function NT_OpenSeal(classid, x, y)
{
NTM_MoveTo(108, x, y);
if(NTConfig_FastMode != 1)
NT_Clear(40, true, 1);
var seal = NTC_FindUnit(NTC_UNIT_OBJECT, classid, 10);
if(seal.mode > 0) return;
for(var i = 0; i < 4; i++)
{
if((i % 2) == 0)
{
if(GetDistance(me, seal) > 2) NTM_MoveTo(seal.areaid, seal.x+4, seal.y);
NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, seal);
if(seal.mode > 0) return Print("?c5Seal " + classid + " is now activated!");
}
NTC_Delay(200);
}
}
function NT_CheckShrine()
{
NTC_Delay(250);
var shrine = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(2225), 3);
if(shrine)
{
do
{
if(GetDistance(me.x,me.y,shrine.x,shrine.y) < 15)
{
switch(shrine.shrinetype)
{
case 12: // skill shrine
case 13: // mana recharge shrine
NTM_MoveTo(108, shrine.x, shrine.y);
NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, shrine);
break;
default:
break;
}
}
}while(shrine.GetNext());
}
NTP_DoPrecast(true);
}
function NT_OpenHiddenStashes()
{
var _chest = GetUnit(NTC_UNIT_OBJECT, GetLocaleString(3274));
if(_chest)
do
{
if(GetDistance(me.x,me.y,_chest.x,_chest.y) < 20 && !_chest.mode > 0 )
{
NTM_MoveTo(108, _chest.x+1, _chest.y)
if(NTC_OpenChest(_chest))
{
NTSI_PickItems();
break;
}
}
}while(_chest.GetNext());
}
function NT_KillMonster(classid, retry)
{
if(arguments.length < 2)
retry = 0;
var _target;
if(NTConfig_AttackSkill[1] < 1)
return false;
_target = NTC_FindUnit(NTC_UNIT_MONSTER, classid, retry);
if(!_target)
return false;
if(_target.IsAttackable())
{
var _attackcount = 0;
while(_attackcount < 300 && NTA_IsValidMonster(_target))
{
if(NTA_Attack(_target, (_attackcount%30) == 0) < 2)
break;
_attackcount++;
}
}
if(_target.hp <= 0 || _target.mode == 0 || _target.mode == 12)
return true;
}
function NT_Clear(range, pickitem, safelevel)
{
if(NTConfig_SkipRegularMonsters == 1) NT_ClearPosition(range, pickitem, safelevel, 1);
else NT_ClearPosition(range, pickitem, safelevel, 0);
}
function NT_ClearPosition(range, pickitem, safelevel, spectype)
{
var _orgx, _orgy;
var _skiplist;
var _attackcount = 0;
var _target;
var _distance, _mingid, _mindistance;
var _result;
if(NTConfig_AttackSkill[1] < 1 || NTConfig_AttackSkill[3] < 1)
return false;
switch(arguments.length)
{
case 0:
range = 20;
case 1:
pickitem = true;
case 2:
safelevel = 0;
case 3:
spectype = 0;
default:
if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
safelevel = 0;
break;
}
_orgx = me.x;
_orgy = me.y;
_skiplist = new Array();
while(_attackcount < (i+1)*100)
{
_mindistance = 100000;
_target = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_target)
{
do
{
if(_skiplist.indexOf(_target.gid) < 0)
{
if(_target.IsAttackable() && (_target.spectype != spectype))
{
if(GetDistance(_orgx, _orgy, _target.x, _target.y) <= range && NTA_IsValidMonster(_target))
{
_distance = GetDistance(me, _target);
if(_distance < _mindistance)
{
_mingid = _target.gid;
_mindistance = _distance;
}
}
}
else
_skiplist.push(_target.gid);
}
} while(_target.GetNext());
}
if(_mindistance < 100000)
{
_target = NTC_FindUnit(NTC_UNIT_MONSTER, _mingid);
if(_target)
{
_result = NTA_Attack(_target, (_attackcount%30) == 0);
switch(_result)
{
case 1:
_skiplist.push(_mingid);
break;
case 2:
case 3:
_attackcount++;
break;
default:
return false;
}
}
}
else
break;
}
if(me.classid == NTC_CHAR_CLASS_PALADIN)
{
if(_attackcount > 2 && (parseInt(me.hp*100/me.hpmax) < NTConfig_UseRedemptionHP || parseInt(me.mp*100/me.mpmax) < NTConfig_UseRedemptionMP))
{
if(NTC_PutSkill(124, NTC_HAND_RIGHT))
NTC_PingDelay(1000);
}
}
if(me.classid == NTC_CHAR_CLASS_SORCERESS)
{
if(_attackcount > 2)
NTC_CastSkill(58, NTC_HAND_RIGHT);
}
if(pickitem && _attackcount > 0)
NTSI_PickItems();
switch(safelevel)
{
case 1:
return NTTMGR_CheckSafe(0x00, NTConfig_CheckMercSafe&0x01);
case 2:
return NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
}
return true;
}