function NTMain()
{
   Include("libs/common/NTCommon.ntl");
   NTC_IncludeLibs();
   NTC_IncludeConfig("NTBot/char_configs");
   NT_LoadConfig();
   NTSI_LoadNIPFiles("NTBot/item_configs");
   NTA_Initialize();
   if(!NTTM_CheckAct())
   {
      NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
      return;
   }
   NTTMGR_TownManager();
   if(!NTTM_TownMove("waypoint"))
   {
      NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
      return;
   }
   if(!NTM_TakeWaypoint(107))
   {
      NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
      return;
   }
   NTP_DoPrecast(true);
                
   if(!NTM_MoveTo(108, 7797, 5560))
   {
      NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveTo()");
      return;
   }
   if(NTConfig_PublicMode)
   {
      var _attackpos = [7792, 5525, 7793, 5501, 7773, 5495, 7768, 5480, 7767, 5458, 7770, 5438, 7774, 5417, 7767, 5391, 7768, 5369, 7769, 5345, 7770, 5320, 7780, 5308];
      if(!NTM_MoveTo(me.areaid, 7790, 5544))
      {
         NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveTo()");
         return;
      }
      NTA_ClearPosition(20, false, 2);
      NTM_MoveTo(me.areaid, 7790, 5544);
      NTC_PingDelay(1000);
      NTA_ClearPosition(20, true, 2);
      NTM_MoveTo(me.areaid, 7790, 5544);
      NTM_MakeTP();
      Say("TP is safe!");
      for(var i = 0 ; i < _attackpos.length ; i += 2)
      {
         NTM_MoveTo(me.areaid, _attackpos, _attackpos[i+1]);
         NTA_ClearPosition(25, true, 2);
      }
      NTP_DoPrecast(true);
   }
   if(!NT_OpenSealsInt())
   {
      NTC_SendMsgToScript("NTBotGame.ntj", "NT_OpenSealsInt()");
      return;
   }
      Say("Let's kill Diablo... soso static pls");
   NTP_DoPrecast(true);
   if(!NTM_MoveTo(me.areaid, 7792, 5292))
   if(!NTM_MoveTo(me.areaid, 7814, 5302)) //Kalel
   {
      NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveTo()");
      return;
   }
   if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
   {
      NTC_SendMsgToScript("NTBotGame.ntj", "NTTMGR_CheckSafe()");
      return;
   }
   NTC_FindUnit(NTC_UNIT_MONSTER, 243, 100);
   if(!NTA_KillMonster(243))
   {
      NTC_SendMsgToScript("NTBotGame.ntj", "NTA_KillMonster()");
      return;
   }
   NTSI_PickItems();
      Say("Next game in a few seconds");
   NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}
// Internal function
function NT_OpenSealsInt()
{
   var i, _unit;
   var _result;
   _unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
   if(!_unit)
      return false;
   _result = false;
   for(i = 0 ; i < _unit.length ; i++)
   {
      if(_unit.id == 396)
      {
         if(_unit.roomy*5 + _unit.y == 5275)
            _result = NT_OpenVizierSealInt(1);
         else
            _result = NT_OpenVizierSealInt(2);
         break;
      }
   }
   if(!_result)
      return false;
   NTP_DoPrecast(false);
   _result = false;
   for(i = 0 ; i < _unit.length ; i++)
   {
      if(_unit.id == 394)
      {
         if(_unit.roomx*5 + _unit.x == 7773)
            _result = NT_OpenDeSeisSealInt(1);
         else
            _result = NT_OpenDeSeisSealInt(2);
         break;
      }
   }
   if(!_result)
      return false;
   NTP_DoPrecast(false);
   _result = false;
   for(i = 0 ; i < _unit.length ; i++)
   {
      if(_unit.id == 392)
      {
         if(_unit.roomx*5 + _unit.x == 7893)
            _result = NT_OpenVenomSealInt(1);
         else
            _result = NT_OpenVenomSealInt(2);
         break;
      }
   }
   return _result;
}
function NT_OpenVizierSealInt(type)
{
   var i, n;
   var _attackpos = [7740, 5300, 7740, 5280, 7720, 5280, 7720, 5300];
   var _monstername = GetLocaleString(2851);
   for(i = 0 ; i < _attackpos.length ; i += 2)
   {
      NTM_MoveTo(me.areaid, _attackpos, _attackpos[i+1]);
      NTA_ClearPosition(25, true, 2);
   }
   for(i = 0 ; i < 3 ; i++)
   {
      if(type == 1)
      {
         NT_OpenSealInt(395, 7654, 5310);
         NT_OpenSealInt(396, 7659, 5277);
         NTM_MoveTo(me.areaid, 7665, 5277);
      }
      else
      {
         NT_OpenSealInt(395, 7650, 5276);
         NT_OpenSealInt(396, 7651, 5310);
      }
      for(n = 0 ; n < 10 ; n++)
      {
         NTC_Delay(200);
         if(NTA_KillMonster(_monstername))
         {
            NTA_ClearPosition();
            NTSI_PickItems();
            return NTM_MoveTo(me.areaid, 7750, 5280);
         }
      }
   }
   return false;
}
function NT_OpenDeSeisSealInt(type)
{
var i, n;
var _attackpos = [7780, 5255, 7800, 5255, 7800, 5235, 7780, 5235, 7800, 5189, 7771, 5196];
var _monstername = GetLocaleString(2852);
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos, _attackpos[i+1]);
NTA_ClearPosition(30, true, 2);
}
for(i = 0 ; i < 3 ; i++)
{
if(type == 1)
{
//NT_OpenSealInt(394, 7769, 5158);
NT_OpenSealInt(394, 7778, 5157);
NTC_Delay(500);
//NTM_MoveTo(me.areaid, 7771, 5196);
NTM_MoveTo(me.areaid, 7796, 5226);
}
else
{
NT_OpenSealInt(394, 7810, 5156);
NTC_Delay(500);
//NTM_MoveTo(me.areaid, 7770, 5169);
NTM_MoveTo(me.areaid, 7800, 5189);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition(35);
NTSI_PickItems();
return NTM_MoveTo(me.areaid, 7800, 5255);
}
}
}
return false;
}
function NT_OpenVenomSealInt(type)
{
   var i, n;
   var _attackpos = [7835, 5280, 7835, 5300, 7855, 5300, 7855, 5280];
   var _monstername = GetLocaleString(2853);
   for(i = 0 ; i < _attackpos.length ; i += 2)
   {
      NTM_MoveTo(me.areaid, _attackpos, _attackpos[i+1]);
      NTA_ClearPosition(25, true, 2);
   }
   for(i = 0 ; i < 3 ; i++)
   {
      if(type == 1)
      {
         NT_OpenSealInt(393, 7915, 5280);
         NT_OpenSealInt(392, 7895, 5318);
         NTM_MoveTo(me.areaid, 7892, 5298);
      }
      else
      {
         NT_OpenSealInt(393, 7905, 5277);
         NT_OpenSealInt(392, 7916, 5310);
         NTM_MoveTo(me.areaid, 7937, 5305);
      }
      for(n = 0 ; n < 10 ; n++)
      {
         NTC_Delay(200);
         if(NTA_KillMonster(_monstername))
         {
            NTSI_PickItems();
            if(NTC_PutSkill(124, NTC_HAND_RIGHT))
               NTC_PingDelay(1000);
            return true;
         }
      }
   }
   return false;
}
function NT_OpenSealInt(classid, x, y)
{
   var _seal;
   NTM_MoveTo(me.areaid, x, y);
   NTA_ClearPosition(25, true, 2);
   _seal = NTC_FindUnit(NTC_UNIT_OBJECT, classid, 5);
   if(!_seal)
      return false;
   if(_seal.mode > 0)
      return true;
   for(var i = 0 ; i < 4 ; i++)
   {
      if((i % 2) == 0)
      {
         if(GetDistance(me, _seal) > 2)
            NTM_MoveTo(_seal.areaid, _seal.x+1, _seal.y);
         NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _seal);
      }
      NTC_Delay(500);
      if(_seal.mode > 0)
         return true;
   }
   return false;
}