Joa, das hatte ich mal geändert, weil es in der Ursprungsvariante das reine Exp Grab ist.
Ich habe das mal schnell erweitert und ausserdem seit der letzten Version auch sonst noch ein paar Kleinigkeiten angepasst.
Code:
/**
* This file was modified by [Only registered and activated users can see links. Click Here To Register...]
* Check the programming section for updates and further scripts
* Last Update: 01/16/2011
*/
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())
{
//MWC_GetErrorArgumentString(NTTM_CheckAct, 18);
NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_CheckAct()");
return;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("waypoint"))
{
//MWC_GetErrorArgumentString(NTTM_TownMove, 27);
NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_TownMove()");
return;
}
if(!NTM_TakeWaypoint(107))
{
//MWC_GetErrorArgumentString(NTM_TakeWaypoint, 34, 107);
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
NTP_DoPrecast(true);
if(!NTM_MoveTo(108, 7797, 5560))
{
//MWC_GetErrorArgumentString(NTM_MoveTo, 43, 108, 7797, 5560);
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
if(!MWConfig_StartAtStar)
{
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))
{
//MWC_GetErrorArgumentString(NTM_MoveTo, 54, me.areaid, 7790, 5544);
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
if(NTConfig_PublicMode)
{
var _monsterCount = MWA_FindNearbyMonsters(20);
if(_monsterCount)
{
if(_monsterCount < 3)
Say("TP cold, " + _monsterCount + " Monsters close!");
else if(_monsterCount < 6)
Say("TP warm, " + _monsterCount + " Monsters close!");
else
Say("TP hot, " + _monsterCount + " Monsters close!");
}
else
Say("TP up, no Monsters close!");
NTM_MakeTP();
}
NTA_ClearPosition(25, false, 2);
NTM_MoveTo(me.areaid, 7790, 5544);
NTC_PingDelay(1000);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7790, 5544);
if(NTConfig_PublicMode)
{
if(MWA_FindNearbyMonsters(15) < 2)
Say("TP should be safe now!");
else
Say("TP still might be warm!");
}
for(var i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1], 3, true);
NTA_ClearPosition(35, true, 2);
}
}
NTM_MoveTo(me.areaid, 7792, 5292);
if(NTConfig_PublicMode)
{
if(MWConfig_StartAtStar)
{
var _monsterCount = MWA_FindNearbyMonsters(25);
if(_monsterCount)
{
if(_monsterCount < 3)
Say("TP cold, " + _monsterCount + " Monsters close!");
else if(_monsterCount < 6)
Say("TP warm, " + _monsterCount + " Monsters close!");
else
Say("TP hot, " + _monsterCount + " Monsters close!");
}
else
Say("TP up, no Monsters close!");
}
NTM_MakeTP();
}
NTP_DoPrecast(true);
NTA_ClearPosition(30);
NTM_MoveTo(me.areaid, 7792, 5292, 3, true);
if(!NT_OpenSealsInt())
{
//MWC_GetErrorArgumentString(NT_OpenSealsInt, 134);
NTC_SendMsgToScript("MWBotGame.ntj", "NT_OpenSealsInt()");
return;
}
if(NTConfig_PublicMode)
Say("Killing Diablo");
if(!NTM_MoveTo(me.areaid, 7792, 5292))
{
//MWC_GetErrorArgumentString(NTM_MoveTo, 144, me.areaid, 7792, 5292);
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
NTP_DoPrecast(true);
if(me.classid == NTC_CHAR_CLASS_PALADIN && !MWC_CheckForExpShrineUsers())
NTC_PutSkill(109, NTC_HAND_RIGHT);
if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
{
//MWC_GetErrorArgumentString(NTTMGR_CheckSafe, 156, NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
NTC_SendMsgToScript("MWBotGame.ntj", "NTTMGR_CheckSafe()");
return;
}
NTC_FindUnit(NTC_UNIT_MONSTER, 243, 150);
if(!NTA_KillMonster(243))
{
MWC_GetErrorArgumentString(NTA_KillMonster, 165, 243);
NTC_SendMsgToScript("MWBotGame.ntj", "NTA_KillMonster()");
return;
}
NTSI_PickItems();
if(NTConfig_PublicMode)
Say("Next game");
NTC_SendMsgToScript("MWBotGame.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[i].id == 396)
{
if(_unit[i].roomy*5 + _unit[i].y == 5275)
_result = NT_OpenVizierSealInt(1);
else
_result = NT_OpenVizierSealInt(2);
break;
}
}
if(!_result)
return false;
NTM_MoveTo(me.areaid, 7792, 5292, 3, true);
NTA_ClearPosition(40);
NTP_DoPrecast();
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 394)
{
if(_unit[i].roomx*5 + _unit[i].x == 7773)
_result = NT_OpenDeSeisSealInt(1);
else
_result = NT_OpenDeSeisSealInt(2);
break;
}
}
if(!_result)
return false;
NTM_MoveTo(me.areaid, 7792, 5292, 3, true);
NTA_ClearPosition(40);
NTP_DoPrecast(true);
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 392)
{
if(_unit[i].roomx*5 + _unit[i].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[i], _attackpos[i+1], 3, true);
NTA_ClearPosition(30, true, 2);
}
for(i = 0; i < 4; i++)
{
if(!MW_OpenSeal(395) || !MW_OpenSeal(396))
{
NTC_Delay(2500);
continue;
}
if(type == 1)
NTM_MoveTo(me.areaid, 7665, 5277);
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];
var _monstername = GetLocaleString(2852);
var _deSeis, _dist;
if(type == 1)
_attackpos.push(7773, 5215, 7773, 5197, 7794, 5196, 7813, 5189, 7814, 5171, 7804, 5156, 7787, 5154);
else
_attackpos.push(7811, 5216, 7810, 5197, 7787, 5192, 7772, 5183, 7773, 5166, 7784, 5154, 7800, 5154);
switch(me.classid)
{
case NTC_CHAR_CLASS_BARBARIAN:
case NTC_CHAR_CLASS_PALADIN:
_dist = 8;
break;
case NTC_CHAR_CLASS_DRUID:
_dist = 10;
break;
default:
_dist = 12;
}
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(30, true, 2);
}
for(i = 0; i < 4; i++)
{
if(type == 1)
{
MW_OpenSeal(394);
NTM_MoveTo(me.areaid, 7771, 5196);
_deSeis = NTC_FindUnit(NTC_UNIT_MONSTER, _monstername, 3);
if(_deSeis)
{
if(!NTM_MoveTo(me.areaid, 7776, _deSeis.y + _dist))
NTM_MoveTo(me.areaid, 7776, _deSeis.y - _dist);
}
else
NTA_ClearPosition(20);
}
else
{
MW_OpenSeal(394);
NTM_MoveTo(me.areaid, 7789, 5154);
_deSeis = NTC_FindUnit(NTC_UNIT_MONSTER, _monstername, 3);
if(_deSeis && _deSeis.y + _dist <= 5201)
{
if(!NTM_MoveTo(me.areaid, 7776, _deSeis.y + _dist))
NTM_MoveTo(me.areaid, 7776, _deSeis.y - _dist);
}
else
NTM_MoveTo(me.areaid, 7776, 5195);
}
for(n = 0; n < 10; n++)
{
NTC_Delay(200);
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition(30);
NTSI_PickItems();
return NTM_MoveTo(me.areaid, 7800, 5255, 3, true);
}
}
}
return false;
}
function NT_OpenVenomSealInt(type)
{
var i, n;
var _attackpos = [7835, 5280, 7835, 5300, 7855, 5300, 7855, 5280];
var _monstername = GetLocaleString(2853);
var _sealOrder;
if(MWConfig_KillFullInfectorMob)
_sealOrder = [392, 393];
else
_sealOrder = [393, 392];
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1], 3, true);
NTA_ClearPosition(30, true, 2);
}
for(i = 0; i < 4; i++)
{
if(!MW_OpenSeal(_sealOrder[0]))
{
NTM_MoveTo(me.areaid, _attackpos[_attackpos.length - 2], _attackpos[_attackpos.length - 1], 3, true);
NTC_Delay(2500);
continue;
}
if(_sealOrder[1] == 392 && !MW_OpenSeal(_sealOrder[1]))
{
NTM_MoveTo(me.areaid, _attackpos[_attackpos.length - 2], _attackpos[_attackpos.length - 1], 3, true);
NTC_Delay(2500);
continue;
}
if(type == 1)
NTM_MoveTo(me.areaid, 7892, 5298);
else
NTM_MoveTo(me.areaid, 7937, 5305);
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTA_KillMonster(_monstername))
{
NTSI_PickItems();
NTA_ClearPosition(40);
if(NTC_PutSkill(124, NTC_HAND_RIGHT))
NTC_PingDelay(1000);
if(_sealOrder[1] == 393)
{
for(i = 0; i < 4; i++)
{
if(MW_OpenSeal(393))
break;
NTC_Delay(2500);
}
}
return true;
}
}
}
return false;
}
function MW_OpenSeal(classid)
{
var _seal, _x, _y, _unit;
_unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
if(!_unit)
return false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == classid)
{
_x = _unit[i].roomx * 5 + _unit[i].x;
_y = _unit[i].roomy * 5 + _unit[i].y;
break;
}
}
NTM_MoveTo(me.areaid, _x + 1, _y + 1);
NTA_ClearPosition(25, true, 2, false, false);
_seal = NTC_FindUnit(NTC_UNIT_OBJECT, classid, 5);
if(!_seal)
return false;
if(_seal.mode > 0)
return true;
for(var i = 0; i < 8; i++)
{
if((i % 2) == 0)
{
if(GetDistance(me, _seal) > 2)
NTM_MoveTo(_seal.areaid, _seal.x + 1, _seal.y +1 );
NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _seal);
}
NTC_Delay(500);
if(_seal.mode > 0)
return true;
NTA_ClearPosition(20, true, 2, false, false);
}
return false;
}
musst du natürlich noch ordnungsgemäß deklarieren.
ein.
Jetzt musst du die neue Variable noch in deiner Char Config initialisieren, das kann dann zum Beispiel so aussehen:
setzt kannst du nun festlegen, in welcher Reihenfolge die beiden letzten Siegel geöffnet werden sollen, sodass du bequem auch wieder die Exp Variante wählen kannst, wenn dein Char stärker ist.
Für einen reinen CS Char empfehle ich übrigens Hotspurs, dann klappts auch mit dem Infector. ;)