Tristram Bot
Code:
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
if(NTConfig_FastPickit)
NTConfig_SnagRange = 12;
var _attackpos = [25169,5084,25169,5190,25131,5180,25119,5193,25131,5135,25086,5143,
25088,5191,25099,5190,25049,5190,25064,5158,25051,5135,25054,5094,25112,5087,25129,5065];
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(4))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
NTP_DoPrecast(true);
var _unit = GetPresetUnits(me.areaid, NTC_UNIT_MONSTER);
if(_unit)
{
for(n = 0 ; n < _unit.length ; n++)
{
if(_unit[n].id == 737)
NTTR_AttackTo(me.areaid, _unit[n].roomx*5+_unit[n].x-20, _unit[n].roomy*5+_unit[n].y-20, false);
}
}
else
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToPresetUnit()");
return;
}
if(NTConfig_TPOutside)
{
NTM_MakeTP();
Delay(40);
Say("TP up!");
Delay(40);
var _portal = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3226));
}
NTTR_AttackTo(me.areaid, _portal.x, _portal.y);
if(!NTM_UsePortal("Portal", 38))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_UsePortal()");
return;
}
if(!NTConfig_TPOutside)
{
NTM_MoveTo(me.areaid, 25169, 5084);
NTM_MakeTP();
Delay(40);
Say("TP up!");
Delay(40);
}
for(var i = 0 ; i < _attackpos.length ; i += 2)
NTTR_AttackTo(me.areaid, _attackpos[i], _attackpos[i+1]);
if(me.gamename)
{
var _name = me.gamename.split("-");
var _ngnumlen = _name[_name.length-1].length;
var _ng = me.gamename.substring(0, me.gamename.length-_ngnumlen);
if(_name[_name.length-1].charAt(0) == 0)
{
var _ngnum = _name[_name.length-1].charAt(1);
_ngnum++;
Say("Next game: "+_ng+"0"+_ngnum);
}
else
{
var _ngnum = parseInt(_name[_name.length-1]);
_ngnum++;
if(_ngnum == 100)
_ngnum = "00";
Say("Next game: "+_ng+_ngnum);
}
}
else
Say("Next game!");
Delay(40);
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}
function NTTR_AttackTo(areaid, x, y, attack)
{
var i, n;
var _path;
var _teleport = false;
if(x == me.x && y == me.y)
return true;
if(arguments.length < 4)
attack = true;
else if(NTC_GetSkillLevel(54) > 0)
_teleport = true;
_path = GetPath(areaid, me.x, me.y, x, y, false);
if(!_path)
return false;
for(i = 0 ; i < _path.length ; i++)
{
for(n = 0 ; n < 2 ; n++)
{
if(_teleport)
{
if(NTM_TeleportTo(_path[i][0]+Random(-n, n), _path[i][1]+Random(-n, n)))
break;
}
else
{
if(NTTR_WalkTo(_path[i][0], _path[i][1], attack))
break;
}
}
}
return true;
}
function NTTR_WalkTo(x, y, attack)
{
var i;
var _prex1, _prey1;
var _prex2, _prey2;
if(me.runwalk == 0)
me.runwalk = 1;
for(i = 0 ; i < 100 ; i++)
{
if((i % 10) == 0)
{
if((i % 60) == 0)
{
_prex1 = me.x;
_prey1 = me.y;
if((i % 120) == 0)
{
_prex2 = me.x;
_prey2 = me.y;
}
}
if(attack)
NTTR_Attack();
ClickMap(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, x, y);
}
NTC_Delay(NTC_DELAY_FRAME);
if(Math.abs(me.x-x) < 2 && Math.abs(me.y-y) < 2)
break;
if((i % 10) == 9)
{
ClickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
NTC_Delay(NTC_DELAY_FRAME);
if((i % 60) == 59)
{
if(me.x == _prex1 && me.y == _prey1 && !NTC_InTown())
{
NTTR_Attack;
NTP_DoPrecast(false);
}
if((i % 120) == 119 && me.x == _prex2 && me.y == _prey2)
return false;
}
}
}
ClickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
NTC_Delay(NTC_DELAY_FRAME);
return (i < 100);
}
function NTTR_Attack()
{
var _orgx, _orgy;
var _spectype = [0x0A, 0x01, 0x01];
var _skiplist;
var _attackcount = 0;
var _target;
var _distance, _mingid, _mindistance;
var _result;
var _sum = 0;
if(NTConfig_AttackSkill[1] < 1 || NTConfig_AttackSkill[3] < 1)
return false;
_orgx = me.x;
_orgy = me.y;
for(var i = 0 ; i < _spectype.length ; i++)
{
_skiplist = new Array();
while(_attackcount < (i+1)*100)
{
if (_attackcount >= 50)
break;
_mindistance = 100000;
_target = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_target)
{
do
{
if(_skiplist.indexOf(_target.gid) < 0)
{
if(_target.IsAttackable() && (_target.spectype&_spectype[i]) && NTTR_IsReachable(_target))
{
if(GetDistance(_orgx, _orgy, _target.x, _target.y) <= 20 && 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);
if(NTConfig_FastPickit)
NTSI_PickItems();
switch(_result)
{
case 1:
_skiplist.push(_mingid);
break;
case 2:
case 3:
_attackcount++;
break;
default:
return false;
}
}
}
else
break;
}
}
return true;
}
function NTTR_IsReachable(target)
{
if(target.x >= 25066 && target.x <= 25095 && target.y >= 5061 && target.y <= 5080)
return false;
if(target.x >= 25095 && target.x <= 25115 && target.y >= 5150 && target.y <= 5170)
return false;
return true;
}
Tristram Leech Bot
Code:
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
//////////////////////////////////////////////////////
//
//
//
var _leader = "Leader"; // Leader's name!
//
//
//
//////////////////////////////////////////////////////
if(NTConfig_FastPickit)
NTConfig_SnagRange = 12;
var _attackpos = [25169,5084,25169,5190,25131,5180,25119,5193,25131,5135,25086,5143,
25088,5191,25099,5190,25049,5190,25064,5158,25051,5135,25054,5094,25112,5087,25129,5065];
if(!NTTM_CheckAct())
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
return;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("portalspot"))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
return;
}
while(!NTC_InMyParty(_leader))
{
Delay(500);
if(!NTTR_InGame(_leader))
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}
while(me.areaid == 1 && NTC_InMyParty(_leader))
{
NTTR_UsePortal(_leader);
Delay(500);
}
if(!NTTR_InGame(_leader))
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
if(me.areaid == 4)
{
var _portal = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3226));
NTTR_AttackTo(me.areaid, _portal.x, _portal.y);
if(!NTM_UsePortal("Portal", 38))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_UsePortal()");
return;
}
}
for(var i = 0 ; i < _attackpos.length ; i += 2)
NTTR_AttackTo(me.areaid, _attackpos[i], _attackpos[i+1]);
while(NTTR_InGame(_leader))
Delay(500);
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}
function NTTR_AttackTo(areaid, x, y, attack)
{
var i, n;
var _path;
var _teleport = false;
if(x == me.x && y == me.y)
return true;
if(arguments.length < 4)
attack = true;
else if(NTC_GetSkillLevel(54) > 0)
_teleport = true;
_path = GetPath(areaid, me.x, me.y, x, y, false);
if(!_path)
return false;
for(i = 0 ; i < _path.length ; i++)
{
for(n = 0 ; n < 2 ; n++)
{
if(_teleport)
{
if(NTM_TeleportTo(_path[i][0]+Random(-n, n), _path[i][1]+Random(-n, n)))
break;
}
else
{
if(NTTR_WalkTo(_path[i][0], _path[i][1], attack))
break;
}
}
}
return true;
}
function NTTR_WalkTo(x, y, attack)
{
var i;
var _prex1, _prey1;
var _prex2, _prey2;
if(me.runwalk == 0)
me.runwalk = 1;
for(i = 0 ; i < 100 ; i++)
{
if((i % 10) == 0)
{
if((i % 60) == 0)
{
_prex1 = me.x;
_prey1 = me.y;
if((i % 120) == 0)
{
_prex2 = me.x;
_prey2 = me.y;
}
}
if(attack)
NTTR_Attack();
ClickMap(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, x, y);
}
NTC_Delay(NTC_DELAY_FRAME);
if(Math.abs(me.x-x) < 2 && Math.abs(me.y-y) < 2)
break;
if((i % 10) == 9)
{
ClickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
NTC_Delay(NTC_DELAY_FRAME);
if((i % 60) == 59)
{
if(me.x == _prex1 && me.y == _prey1 && !NTC_InTown())
{
NTTR_Attack;
NTP_DoPrecast(false);
}
if((i % 120) == 119 && me.x == _prex2 && me.y == _prey2)
return false;
}
}
}
ClickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
NTC_Delay(NTC_DELAY_FRAME);
return (i < 100);
}
function NTTR_Attack()
{
var _orgx, _orgy;
var _spectype = [0x0A, 0x01, 0x01];
var _skiplist;
var _attackcount = 0;
var _target;
var _distance, _mingid, _mindistance;
var _result;
var _sum = 0;
if(NTConfig_AttackSkill[1] < 1 || NTConfig_AttackSkill[3] < 1)
return false;
_orgx = me.x;
_orgy = me.y;
for(var i = 0 ; i < _spectype.length ; i++)
{
_skiplist = new Array();
while(_attackcount < (i+1)*100)
{
if (_attackcount >= 50)
break;
_mindistance = 100000;
_target = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_target)
{
do
{
if(_skiplist.indexOf(_target.gid) < 0)
{
if(_target.IsAttackable() && (_target.spectype&_spectype[i]) && NTTR_IsReachable(_target))
{
if(GetDistance(_orgx, _orgy, _target.x, _target.y) <= 20 && 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);
if(NTConfig_FastPickit)
NTSI_PickItems();
switch(_result)
{
case 1:
_skiplist.push(_mingid);
break;
case 2:
case 3:
_attackcount++;
break;
default:
return false;
}
}
}
else
break;
}
}
return true;
}
function NTTR_IsReachable(target)
{
if(target.x >= 25066 && target.x <= 25095 && target.y >= 5061 && target.y <= 5080)
return false;
if(target.x >= 25095 && target.x <= 25115 && target.y >= 5150 && target.y <= 5170)
return false;
return true;
}
function NTTR_InGame(playerName)
{
_target = GetPlayerUnit();
if(_target)
{
do
{
if(_target.name == playerName)
return true;
} while(_target.GetNext());
}
return false;
}
function NTTR_UsePortal(leader)
{
var _portal = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3226));
var _preareaid = me.areaid;
if(_portal)
{
do
{
if(_portal.mode == 2 && NTC_CheckOwner(_portal, leader) && GetDistance(me, _portal) <= 30)
{
while(me.areaid == _preareaid && _portal)
{
NTM_MoveTo(me.areaid, _portal.x+1, _portal.y);
NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _portal);
Delay(500);
if(me.areaid != _preareaid)
return;
}
}
} while(_target.GetNext());
}
return;
}
Char Config
Code:
// NTConfig_Script.push("NTTristramRuns.ntj"); NTConfig_TPOutside = true; NTConfig_FastPickit = false;
// NTConfig_Script.push("NTTristramLeechFighter.ntj"); NTConfig_FastPickit = false;