Ohne Sprachausgabe:
Code:
//----- SET THIS TO YOUR LEADERS IN-GAME NAME -----//
var _leader = "LeaderName"; // The name of the character you will be legitimately playing
var _helper = "PrimaryHelperName"; // The name of your primary helper (if running more than 1 barb make this your battle order barb)
var _ping = 500; // Warns you if your followers ping is above this number (0 to disable)
//----- NO EDITS NEEDED BELOW THIS LINE -----//
//Variable Declaration
var _attack = true;
var _party = true;
var _target;
var _leaderpos = null;
var _count = 0;
var _pause = false;
function NTMain()
{
//Initialization
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
RegisterEvent(EVENT_GAMEMSG, NTH_Talk);
//Find Leader
_target = GetPlayerUnit();
if(_target)
{
while(_target.GetNext())
{
if(_target.name == _leader)
{
_leader = _target;
break;
}
}
}
while(!NTC_InMyParty(_leader.name))
{
Delay(1000);
Print("Delaying for leader to join party..");
}
NTH_ReadyCheck();
//Bot
var _tickTimer = GetTickCount();
while(1)
{
if( _ping != 0 && ((GetTickCount()-_tickTimer)/1000) > 10 && me.ping > _ping)
{
Say("High Ping Warning: " + me.ping);
_tickTimer = GetTickCount();
}
if(NTC_InMyParty(_leader.name) && !_pause)
{
NTSI_PickItems();
if(_leaderpos == null)
_leaderpos = NTH_GetLeader();
else
NTH_Follow();
if(me.areaid != _leader.areaid && NTH_GetLeader() == null)
NTH_ChangeArea();
}
else
{
if(NTConfig_AttackSkill[1] == 0 && NTConfig_AttackSkill[1] == 0)
NTDS_ClearPosition(15, true);
else
NTA_ClearPosition(15, true);
}
if(!NTH_InGame(_leader.name))
{
Print("Leader isn't in the game!");
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
Delay(10000);
}
Delay(100);
}
}
function NTH_GetLeader()
{
_target = NTC_FindUnit(NTC_UNIT_PLAYER);
if(_target)
{
do
{
//Print(_target.name);
if(_target.name == _leader.name)
return _target;
} while(_target.GetNext());
}
return null;
}
function NTH_ReadyCheck()
{
NTTM_CheckAct();
if(me.areaid != _leader.areaid)
{
NTTM_TownMove("waypoint");
if(_leader.areaid == 1 || _leader.areaid == 40 || _leader.areaid == 75 || _leader.areaid == 103 || _leader.areaid == 109)
{
if(!NTM_TakeWaypoint(_leader.areaid))
{
NTM_TakeWaypoint(1);
}
}
else
{
if(_leader.areaid < 40 || _leader.areaid == 0)
NTM_TakeWaypoint(1);
else if(_leader.areaid < 75)
NTM_TakeWaypoint(40);
else if(_leader.areaid < 103)
NTM_TakeWaypoint(75);
else if(_leader.areaid < 109)
NTM_TakeWaypoint(103);
else
NTM_TakeWaypoint(109);
if(me.areaid != 40)
NTTM_TownMove("portalspot");
else
NTTM_TownMove("stash");
}
}
}
function NTH_Follow()
{
if(_leaderpos.mode == 3 || _leaderpos.mode == 2)
_count = 0;
if(_leaderpos.mode == 1 || _leaderpos.mode == 4)
_count++;
if(_count >= 10 || _leaderpos.mode == 7 || _leaderpos.mode == 10 || _leaderpos.mode == 8)
{
if(NTConfig_AttackSkill[1] == 0 && NTConfig_AttackSkill[1] == 0)
NTDS_ClearPosition(15, true);
else
NTA_ClearPosition(15, true);
}
if(GetDistance(me.x, me.y, _leaderpos.x, _leaderpos.y) > 7)
NTM_MoveTo(_leader.areaid, _leaderpos.x, _leaderpos.y);
}
function NTH_ChangeArea()
{
if(NTH_InTown())
{
NTTM_TownMove("waypoint");
while(!NTM_TakeWaypoint(_leader.areaid))
{
me.Cancel(1);
Delay(5000);
}
if(!NTH_InTown())
NTP_DoPrecast(true);
}
else if(!NTH_InTown(_leader))
{
if(!NTM_TakeStair(_leader.areaid))
{
if(!NTM_TakeWaypoint(_leader.areaid))
{
me.Cancel(1);
NTH_UseAnyPortal();
if(!NTH_InTown())
{
NTM_MakeTP();
NTM_UsePortal("BluePortal");
}
}
}
} else
{
if(!NTM_TakeWaypoint(_leader.areaid))
{
me.Cancel(1);
NTH_UseAnyPortal();
if(!NTH_InTown())
{
NTM_MakeTP();
NTM_UsePortal("BluePortal");
}
}
}
}
function NTH_InTown(player)
{
if(arguments.length < 1)
player = me;
if(player.areaid == 1 || player.areaid == 40 || player.areaid == 75 || player.areaid == 103 || player.areaid == 109)
return true;
return false;
}
function NTH_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(_portal.GetNext());
}
return;
}
function NTH_UseAnyPortal()
{
var _portal = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3226));
var _preareaid = me.areaid;
do
{
if(_portal != null && _portal.mode == 2 && 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(_portal && _portal.GetNext());
return;
}
function NTH_InGame(playerName)
{
_target = GetPlayerUnit();
if(_target)
{
do
{
if(_target.name == playerName)
return true;
} while(_target.GetNext());
}
return false;
}
function NTH_Talk(msg, type)
{
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-wait") != -1)
{
_pause = true;
Print("I'll just wait here for a few minutes..");
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-go") != -1)
{
_pause = false;
Print("Lets do this!");
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-town") != -1)
{
if(!NTH_InTown())
{
NTH_UseAnyPortal();
if(!NTH_InTown())
{
NTM_MakeTP();
NTM_UsePortal("BluePortal");
}
Print("Running some errands in town");
NTTMGR_TownManager();
Print("Ok, I'm ready for battle!");
} else
{
Print("Running some errands in town");
NTTMGR_TownManager();
Print("Ok, I'm ready for battle!");
}
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-res") != -1)
{
if( me.hp == 0)
{
Print("Ressurecting now..");
me.Cancel(0);
Delay(100);
NTTM_TownMove("portalspot");
Delay(100);
NTH_UsePortal(_leader.name);
Delay(200);
NTT_GetCorpses();
}
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-tp") != -1)
{
var _portalTarget = msg.split(" ")[msg.split(" ").length-1];
//Print(_portalTarget.toLowerCase());
if(_portalTarget != "-tp")
{
if( _portalTarget == me.name)
{
Print("TP up for later use");
NTM_MakeTP();
}
} else
{
Print("TP up for later use");
NTM_MakeTP();
}
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-mytp") != -1)
{
if(NTH_InTown())
{
Print("I'm on my way back " + _leader.name);
NTTM_TownMove("portalspot");
NTH_UsePortal(_leader.name);
Delay(2000);
}
else
{
Print("I'm going to town");
NTH_UsePortal(_leader.name);
Delay(1000);
}
}
if(msg.indexOf(_leader.name) != -1 && msg.indexOf("-taketp") != -1)
{
var _portalTarget = msg.split(" ")[msg.split(" ").length-1];
if(NTH_InTown())
{
Print("Heading back to the fight through " + _portalTarget + "'s TP");
NTTM_TownMove("portalspot");
NTH_UsePortal(_portalTarget);
Delay(2000);
}
else
{
Print("Taking TP back to town");
NTM_UseAnyPortal();
Delay(1000);
}
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-grabwp") != -1)
{
if(!NTDS_GrabWayPoint())
{
Print("I can't grab this waypoint!");
Delay(200);
}
else
{
Print("I got the WP");
Delay(200);
}
}
if(msg.indexOf(_leader.name) != -1 && msg.indexOf("-bo") != -1)
{
if(!NTC_InTown() && me.name == _helper && me.classid == NTC_CHAR_CLASS_BARBARIAN)
{
Say("Casting Barbarian Buffs!");
NTC_CastSkill(155, NTC_HAND_RIGHT); // Battle Command
NTC_CastSkill(149, NTC_HAND_RIGHT); // Battle Orders
NTC_CastSkill(138, NTC_HAND_RIGHT); // Shout
}
else if (!NTC_InTown() && me.classid == NTC_CHAR_CLASS_BARBARIAN)
{
var _castBo = true;
_primaryBarb = GetPlayerUnit();
do{
if(_primaryBarb.name == _helper && _primaryBarb.classid == NTC_CHAR_CLASS_BARBARIAN)
{
_castBo == false;
break;
}
}while(_primaryBarb.GetNext());
if(_castBo)
{
Say("Casting Barbarian Buffs!");
NTC_CastSkill(155, NTC_HAND_RIGHT); // Battle Command
NTC_CastSkill(149, NTC_HAND_RIGHT); // Battle Orders
NTC_CastSkill(138, NTC_HAND_RIGHT); // Shout
}
} else if (!NTC_InTown())
NTP_DoPrecastCTA(true);
}
if(msg.indexOf(_leader.name) != -1 && msg.indexOf("-scatter") != -1)
{
if(_leader.areaid == me.areaid)
NTM_MoveTo(_leader.areaid, _leaderpos.x - 2*(_leaderpos.x - me.x), _leaderpos.y - 2*(_leaderpos.y - me.y));
Delay(2500);
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-cmd") != -1 && me.name == _helper)
{
Say("-wait : Pauses the bots (they still defend themselves but wont follow)");
Delay(200);
Say("-go : Resumes following the leader");
Delay(200);
Say("-town : Runs the town manager to let your bots heal at NPCs, repair etc when you visit town");
Delay(200);
Say("-tp : Causes bots to make a TP");
Delay(200);
Say("-tp NAME : Causes a specific bot to make a TP");
Delay(200);
Say("-taketp NAME : Causes bots to take a certain TP");
Delay(200);
Say("-mytp: Orders your bots to take your TP");
Delay(200);
Say("-bo: Barb will cast Battle Command / Battle Orders / Shout");
Delay(200);
Say("-grabwp: Chars will try to grab the WP");
Delay(200);
Say("-res: Ressurects the dead Follower");
Delay(200);
Say("-scatter: Spreads the bots out incase they get you stuck");
Delay(200);
}
}
function NTDS_ClearPosition(range, pickitem, safelevel)
{
var _orgx, _orgy;
var _spectype = [0x0A, 0x01, 0x01];
var _skiplist;
var _attackcount = 0;
var _target;
var _distance, _mingid, _mindistance;
var _result;
if(NTConfig_AttackSkill[1] < 0 || NTConfig_AttackSkill[3] < 0)
return false;
switch(arguments.length)
{
case 0:
range = 20;
case 1:
pickitem = false;
case 2:
safelevel = 0;
default:
if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
safelevel = 0;
break;
}
_orgx = me.x;
_orgy = me.y;
for(var i = 0 ; i < _spectype.length ; i++)
{
_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[i]))
{
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(NTConfig_OpenChest)
{
_target = NTC_GetSpecialChest();
if(_target && GetDistance(_orgx, _orgy, _target.x, _target.y) <= range && NTC_OpenChest(_target))
_attackcount++;
}
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;
}
function NTDS_GrabWayPoint()
{
var _areaid = me.areaid;
_open = true;
var _unit;
var _wp;//this will be unit object of wp found in the switch below
switch(_areaid)
{
case 3:
_wp = 119;
break;
case 4:
_wp = 119;
break;
case 5:
_wp = 119;
break;
case 6:
_wp = 119;
break;
case 27:
_wp = 119;
break;
case 29:
_wp = 157;
break;
case 32:
_wp = 119;
break;
case 35:
_wp = 157;
break;
case 42:
_wp = 156;
break;
case 43:
_wp = 156;
break;
case 44:
_wp = 156;
break;
case 46:
_wp = 402;
break;
case 48:
_wp = 323;
break;
case 52:
_wp = 288;
break;
case 57:
_wp = 156;
break;
case 74:
_wp = 402;
break;
case 76:
_wp = 237;
break;
case 77:
_wp = 237;
break;
case 78:
_wp = 237;
break;
case 79:
_wp = 237;
break;
case 80:
_wp = 237;
break;
case 81:
_wp = 237;
break;
case 83:
_wp = 237;
break;
case 101:
_wp = 324;
break;
case 106:
_wp = 238;
break;
case 107:
_wp = 238;
break;
case 111:
_wp = 496;
break;
case 112:
_wp = 496;
break;
case 113:
_wp = 511;
break;
case 115:
_wp = 511;
break;
case 117:
_wp = 496;
break;
case 118:
_wp = 511;
break;
case 129:
_wp = 494;
break;
}
NTM_MoveToPresetUnit(_areaid, NTC_UNIT_OBJECT, _wp, 1, 1);
if(_open)
{
_unit = NTC_FindUnit(NTC_UNIT_OBJECT, _wp);
if(_unit){
if(GetDistance(me, _unit) > 2)
NTM_MoveTo(_unit.areaid, _unit.x+1, _unit.y);
NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _unit);
NTC_PingDelay(1000);
me.Cancel(1);
return true;
}
}
return false;
}
Mit Sprachausgabe
Code:
//----- SET THIS TO YOUR LEADERS IN-GAME NAME -----//
var _leader = "LeaderName"; // The name of the character you will be legitimately playing
var _helper = "PrimaryHelperName"; // The name of your primary helper (if running more than 1 barb make this your battle order barb)
var _ping = 500; // Warns you if your followers ping is above this number (0 to disable)
//----- NO EDITS NEEDED BELOW THIS LINE -----//
//Variable Declaration
var _attack = true;
var _party = true;
var _target;
var _leaderpos = null;
var _count = 0;
var _pause = false;
function NTMain()
{
//Initialization
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
RegisterEvent(EVENT_GAMEMSG, NTH_Talk);
//Find Leader
_target = GetPlayerUnit();
if(_target)
{
while(_target.GetNext())
{
if(_target.name == _leader)
{
_leader = _target;
break;
}
}
}
while(!NTC_InMyParty(_leader.name))
{
Delay(1000);
Say("Delaying for leader to join party..");
}
NTH_ReadyCheck();
//Bot
var _tickTimer = GetTickCount();
while(1)
{
if( _ping != 0 && ((GetTickCount()-_tickTimer)/1000) > 10 && me.ping > _ping)
{
Say("High Ping Warning: " + me.ping);
_tickTimer = GetTickCount();
}
if(NTC_InMyParty(_leader.name) && !_pause)
{
NTSI_PickItems();
if(_leaderpos == null)
_leaderpos = NTH_GetLeader();
else
NTH_Follow();
if(me.areaid != _leader.areaid && NTH_GetLeader() == null)
NTH_ChangeArea();
}
else
{
if(NTConfig_AttackSkill[1] == 0 && NTConfig_AttackSkill[1] == 0)
NTDS_ClearPosition(15, true);
else
NTA_ClearPosition(15, true);
}
if(!NTH_InGame(_leader.name))
{
Say("Leader isn't in the game!");
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
Delay(10000);
}
Delay(100);
}
}
function NTH_GetLeader()
{
_target = NTC_FindUnit(NTC_UNIT_PLAYER);
if(_target)
{
do
{
//Print(_target.name);
if(_target.name == _leader.name)
return _target;
} while(_target.GetNext());
}
return null;
}
function NTH_ReadyCheck()
{
NTTM_CheckAct();
if(me.areaid != _leader.areaid)
{
NTTM_TownMove("waypoint");
if(_leader.areaid == 1 || _leader.areaid == 40 || _leader.areaid == 75 || _leader.areaid == 103 || _leader.areaid == 109)
{
if(!NTM_TakeWaypoint(_leader.areaid))
{
NTM_TakeWaypoint(1);
}
}
else
{
if(_leader.areaid < 40 || _leader.areaid == 0)
NTM_TakeWaypoint(1);
else if(_leader.areaid < 75)
NTM_TakeWaypoint(40);
else if(_leader.areaid < 103)
NTM_TakeWaypoint(75);
else if(_leader.areaid < 109)
NTM_TakeWaypoint(103);
else
NTM_TakeWaypoint(109);
if(me.areaid != 40)
NTTM_TownMove("portalspot");
else
NTTM_TownMove("stash");
}
}
}
function NTH_Follow()
{
if(_leaderpos.mode == 3 || _leaderpos.mode == 2)
_count = 0;
if(_leaderpos.mode == 1 || _leaderpos.mode == 4)
_count++;
if(_count >= 10 || _leaderpos.mode == 7 || _leaderpos.mode == 10 || _leaderpos.mode == 8)
{
if(NTConfig_AttackSkill[1] == 0 && NTConfig_AttackSkill[1] == 0)
NTDS_ClearPosition(15, true);
else
NTA_ClearPosition(15, true);
}
if(GetDistance(me.x, me.y, _leaderpos.x, _leaderpos.y) > 7)
NTM_MoveTo(_leader.areaid, _leaderpos.x, _leaderpos.y);
}
function NTH_ChangeArea()
{
if(NTH_InTown())
{
NTTM_TownMove("waypoint");
while(!NTM_TakeWaypoint(_leader.areaid))
{
me.Cancel(1);
Delay(5000);
}
if(!NTH_InTown())
NTP_DoPrecast(true);
}
else if(!NTH_InTown(_leader))
{
if(!NTM_TakeStair(_leader.areaid))
{
if(!NTM_TakeWaypoint(_leader.areaid))
{
me.Cancel(1);
NTH_UseAnyPortal();
if(!NTH_InTown())
{
NTM_MakeTP();
NTM_UsePortal("BluePortal");
}
}
}
} else
{
if(!NTM_TakeWaypoint(_leader.areaid))
{
me.Cancel(1);
NTH_UseAnyPortal();
if(!NTH_InTown())
{
NTM_MakeTP();
NTM_UsePortal("BluePortal");
}
}
}
}
function NTH_InTown(player)
{
if(arguments.length < 1)
player = me;
if(player.areaid == 1 || player.areaid == 40 || player.areaid == 75 || player.areaid == 103 || player.areaid == 109)
return true;
return false;
}
function NTH_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(_portal.GetNext());
}
return;
}
function NTH_UseAnyPortal()
{
var _portal = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3226));
var _preareaid = me.areaid;
do
{
if(_portal != null && _portal.mode == 2 && 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(_portal && _portal.GetNext());
return;
}
function NTH_InGame(playerName)
{
_target = GetPlayerUnit();
if(_target)
{
do
{
if(_target.name == playerName)
return true;
} while(_target.GetNext());
}
return false;
}
function NTH_Talk(msg, type)
{
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-wait") != -1)
{
_pause = true;
Say("I'll just wait here for a few minutes..");
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-go") != -1)
{
_pause = false;
Say("Lets do this!");
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-town") != -1)
{
if(!NTH_InTown())
{
NTH_UseAnyPortal();
if(!NTH_InTown())
{
NTM_MakeTP();
NTM_UsePortal("BluePortal");
}
Say("Running some errands in town");
NTTMGR_TownManager();
Say("Ok, I'm ready for battle!");
} else
{
Say("Running some errands in town");
NTTMGR_TownManager();
Say("Ok, I'm ready for battle!");
}
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-res") != -1)
{
if( me.hp == 0)
{
Say("Ressurecting now..");
me.Cancel(0);
Delay(100);
NTTM_TownMove("portalspot");
Delay(100);
NTH_UsePortal(_leader.name);
Delay(200);
NTT_GetCorpses();
}
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-tp") != -1)
{
var _portalTarget = msg.split(" ")[msg.split(" ").length-1];
//Print(_portalTarget.toLowerCase());
if(_portalTarget != "-tp")
{
if( _portalTarget == me.name)
{
Say("TP up for later use");
NTM_MakeTP();
}
} else
{
Say("TP up for later use");
NTM_MakeTP();
}
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-mytp") != -1)
{
if(NTH_InTown())
{
Say("I'm on my way back " + _leader.name);
NTTM_TownMove("portalspot");
NTH_UsePortal(_leader.name);
Delay(2000);
}
else
{
Say("I'm going to town");
NTH_UsePortal(_leader.name);
Delay(1000);
}
}
if(msg.indexOf(_leader.name) != -1 && msg.indexOf("-taketp") != -1)
{
var _portalTarget = msg.split(" ")[msg.split(" ").length-1];
if(NTH_InTown())
{
Say("Heading back to the fight through " + _portalTarget + "'s TP");
NTTM_TownMove("portalspot");
NTH_UsePortal(_portalTarget);
Delay(2000);
}
else
{
Say("Taking TP back to town");
NTM_UseAnyPortal();
Delay(1000);
}
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-grabwp") != -1)
{
if(!NTDS_GrabWayPoint())
{
Say("I can't grab this waypoint!");
Delay(200);
}
else
{
Say("I got the WP");
Delay(200);
}
}
if(msg.indexOf(_leader.name) != -1 && msg.indexOf("-bo") != -1)
{
if(!NTC_InTown() && me.name == _helper && me.classid == NTC_CHAR_CLASS_BARBARIAN)
{
Say("Casting Barbarian Buffs!");
NTC_CastSkill(155, NTC_HAND_RIGHT); // Battle Command
NTC_CastSkill(149, NTC_HAND_RIGHT); // Battle Orders
NTC_CastSkill(138, NTC_HAND_RIGHT); // Shout
}
else if (!NTC_InTown() && me.classid == NTC_CHAR_CLASS_BARBARIAN)
{
var _castBo = true;
_primaryBarb = GetPlayerUnit();
do{
if(_primaryBarb.name == _helper && _primaryBarb.classid == NTC_CHAR_CLASS_BARBARIAN)
{
_castBo == false;
break;
}
}while(_primaryBarb.GetNext());
if(_castBo)
{
Say("Casting Barbarian Buffs!");
NTC_CastSkill(155, NTC_HAND_RIGHT); // Battle Command
NTC_CastSkill(149, NTC_HAND_RIGHT); // Battle Orders
NTC_CastSkill(138, NTC_HAND_RIGHT); // Shout
}
} else if (!NTC_InTown())
NTP_DoPrecastCTA(true);
}
if(msg.indexOf(_leader.name) != -1 && msg.indexOf("-scatter") != -1)
{
if(_leader.areaid == me.areaid)
NTM_MoveTo(_leader.areaid, _leaderpos.x - 2*(_leaderpos.x - me.x), _leaderpos.y - 2*(_leaderpos.y - me.y));
Delay(2500);
}
if( msg.indexOf(_leader.name) != -1 && msg.indexOf("-cmd") != -1 && me.name == _helper)
{
Say("-wait : Pauses the bots (they still defend themselves but wont follow)");
Delay(200);
Say("-go : Resumes following the leader");
Delay(200);
Say("-town : Runs the town manager to let your bots heal at NPCs, repair etc when you visit town");
Delay(200);
Say("-tp : Causes bots to make a TP");
Delay(200);
Say("-tp NAME : Causes a specific bot to make a TP");
Delay(200);
Say("-taketp NAME : Causes bots to take a certain TP");
Delay(200);
Say("-mytp: Orders your bots to take your TP");
Delay(200);
Say("-bo: Barb will cast Battle Command / Battle Orders / Shout");
Delay(200);
Say("-grabwp: Chars will try to grab the WP");
Delay(200);
Say("-res: Ressurects the dead Follower");
Delay(200);
Say("-scatter: Spreads the bots out incase they get you stuck");
Delay(200);
}
}
function NTDS_ClearPosition(range, pickitem, safelevel)
{
var _orgx, _orgy;
var _spectype = [0x0A, 0x01, 0x01];
var _skiplist;
var _attackcount = 0;
var _target;
var _distance, _mingid, _mindistance;
var _result;
if(NTConfig_AttackSkill[1] < 0 || NTConfig_AttackSkill[3] < 0)
return false;
switch(arguments.length)
{
case 0:
range = 20;
case 1:
pickitem = false;
case 2:
safelevel = 0;
default:
if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
safelevel = 0;
break;
}
_orgx = me.x;
_orgy = me.y;
for(var i = 0 ; i < _spectype.length ; i++)
{
_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[i]))
{
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(NTConfig_OpenChest)
{
_target = NTC_GetSpecialChest();
if(_target && GetDistance(_orgx, _orgy, _target.x, _target.y) <= range && NTC_OpenChest(_target))
_attackcount++;
}
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;
}
function NTDS_GrabWayPoint()
{
var _areaid = me.areaid;
_open = true;
var _unit;
var _wp;//this will be unit object of wp found in the switch below
switch(_areaid)
{
case 3:
_wp = 119;
break;
case 4:
_wp = 119;
break;
case 5:
_wp = 119;
break;
case 6:
_wp = 119;
break;
case 27:
_wp = 119;
break;
case 29:
_wp = 157;
break;
case 32:
_wp = 119;
break;
case 35:
_wp = 157;
break;
case 42:
_wp = 156;
break;
case 43:
_wp = 156;
break;
case 44:
_wp = 156;
break;
case 46:
_wp = 402;
break;
case 48:
_wp = 323;
break;
case 52:
_wp = 288;
break;
case 57:
_wp = 156;
break;
case 74:
_wp = 402;
break;
case 76:
_wp = 237;
break;
case 77:
_wp = 237;
break;
case 78:
_wp = 237;
break;
case 79:
_wp = 237;
break;
case 80:
_wp = 237;
break;
case 81:
_wp = 237;
break;
case 83:
_wp = 237;
break;
case 101:
_wp = 324;
break;
case 106:
_wp = 238;
break;
case 107:
_wp = 238;
break;
case 111:
_wp = 496;
break;
case 112:
_wp = 496;
break;
case 113:
_wp = 511;
break;
case 115:
_wp = 511;
break;
case 117:
_wp = 496;
break;
case 118:
_wp = 511;
break;
case 129:
_wp = 494;
break;
}
NTM_MoveToPresetUnit(_areaid, NTC_UNIT_OBJECT, _wp, 1, 1);
if(_open)
{
_unit = NTC_FindUnit(NTC_UNIT_OBJECT, _wp);
if(_unit){
if(GetDistance(me, _unit) > 2)
NTM_MoveTo(_unit.areaid, _unit.x+1, _unit.y);
NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _unit);
NTC_PingDelay(1000);
me.Cancel(1);
return true;
}
}
return false;
}
UPDATED JETZT AUCH MIT SCATTER VON ldevil
Das ist mein jetziges Script!
Dazu nutze ich noch wie oben geposted
[Only registered and activated users can see links. Click Here To Register...]
das hier runterladen und den einen ordner + die 2 files in den scripts ordner entpacken
jetzt als entry point im d2nt einfach NTResetHelper.ntj wählen
das sollte es gewesen sein :)
Hier nochmal eine Liste was das Numpad script kann:
Quote:
show or hide enemy - keypad '-'
show or hide missile - keypad '+'
auto party on/off - keypad '*'
Say "-wait"- keypad '1'
Say "-go" - keypad '2'
Say"-town" - keypad '3'
Say"-tp" - keypad '4'
Say "-mytp" - keypad '5'
Say "-res" - keypad '6'
make tp - keypad '7'
make tp and take to town - keypad '8'
Say "-bo" - keypad '9'
|
Läuft super zusammen! Der Reset kann kommen!