|
You last visited: Today at 21:20
Advertisement
[Release] Muddy's D2NT
Discussion on [Release] Muddy's D2NT within the Diablo 2 Programming forum part of the Diablo 2 category.
05/05/2011, 18:08
|
#1696
|
elite*gold: 5
Join Date: Apr 2010
Posts: 689
Received Thanks: 151
|
@hoez hab leider noch nie Cowruns gemacht... aber wenns bei den anderen funktioniert wird es zwangsläufig ein fehler im Cowscript sein..
Wie ist es eigentlich bei Sockeln lassen und Aufwerten von Items.
Muss ich da jetzt das unaufgewertete und aufgewertete b.z.w das ungesockelte item und das gesockelte in die Pickit schreiben?
Oder wie läuft das ab?
|
|
|
05/05/2011, 18:09
|
#1697
|
elite*gold: 0
Join Date: Mar 2008
Posts: 23
Received Thanks: 7
|
cow script
Quote:
Originally Posted by Knurrhuhn
@Hoez: ja das sollte passen. solange die pickit.nip noch im ordner private ist.
ergänzung zu meinem post von vorhin: der bot pickt überhauptnix im cow-skript ^^ keine pots, keine charms, kein gold... null. hab ich was übersehen? jemand eine idee?
wie gesagt: bei allen anderen skripts läuft es prima
|
benutzt du das standard cow script ?
soweit ich weiß ist im std nen syntax fehler drin @zeile 86.
da musste ne klammer ")" wegmachen die zuviel ist.
bei mir läufts ohne probleme d.h. er pickt alles.
wenn nich poste mal bitte deine cow.ntj hier rein
|
|
|
05/05/2011, 18:12
|
#1698
|
elite*gold: 0
Join Date: Apr 2010
Posts: 339
Received Thanks: 68
|
Quote:
Originally Posted by Knurrhuhn
@Hoez: ja das sollte passen. solange die pickit.nip noch im ordner private ist.
ergänzung zu meinem post von vorhin: der bot pickt überhauptnix im cow-skript ^^ keine pots, keine charms, kein gold... null. hab ich was übersehen? jemand eine idee?
wie gesagt: bei allen anderen skripts läuft es prima
|
Meine light Sorc pickt alles im Cow lvl, benutze auch muddys (ofc ^^)
Lad dir den Bot nochmal, und kopier das cow scipt nochmal.
Checke deine pickit, ob die tränke auch aktiviert sind.
Chekce dein Sorc config im Rahmen der pickit und der belt config.
Lg
|
|
|
05/05/2011, 18:17
|
#1699
|
elite*gold: 0
Join Date: Mar 2008
Posts: 23
Received Thanks: 7
|
Quote:
Originally Posted by Derbeth
@hoez hab leider noch nie Cowruns gemacht... aber wenns bei den anderen funktioniert wird es zwangsläufig ein fehler im Cowscript sein..
Wie ist es eigentlich bei Sockeln lassen und Aufwerten von Items.
Muss ich da jetzt das unaufgewertete und aufgewertete b.z.w das ungesockelte item und das gesockelte in die Pickit schreiben?
Oder wie läuft das ab?
|
Schau mal in die GlobalSettings Datei ganz unten.
Da steht folgendes:
// ******************* Socket items ********************
// Primary item must inlcluded in one of your .nip Files
***
// ******************* Upgrade items *******************
***
Die original items müssen in deiner pickit drin stehen.
Um diese zu sockeln bzw. upgraden fügste wie in der der GlobalSettings datei beschrieben deine Items jeweils zu Sockeln / Upgrade hinzu.
|
|
|
05/05/2011, 18:24
|
#1700
|
elite*gold: 0
Join Date: Apr 2011
Posts: 89
Received Thanks: 30
|
Quote:
Originally Posted by thekarx
benutzt du das standard cow script ?
soweit ich weiß ist im std nen syntax fehler drin @zeile 86.
da musste ne klammer ")" wegmachen die zuviel ist.
bei mir läufts ohne probleme d.h. er pickt alles.
wenn nich poste mal bitte deine cow.ntj hier rein 
|
den syntax-fehler hatte ich vorher bereits berichtigt. statt der zweiten klammer habe ich ein ; gesetzt. das wurde hier im forum irgendwo schonmal beschrieben
hier mal mein code der NTCows.ntj
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 02/05/2011
*/
const _NTR_STRING_COW_KING = GetLocaleString(2850);
const _NTR_COW_KING_RANGE = 80;
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
MWC_Initialize();
var _wirtbody, _cube, _leg, _portal, _stash, _npc;
var i;
if(!NTTM_CheckAct(me.act, true))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_CheckAct, 24, me.act, true);
return;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_TownMove, 32, "waypoint");
return;
}
if(!NTM_TakeWaypoint(4))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeWaypoint, 38, 4);
return;
}
NTP_DoPrecast(true);
if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_MONSTER, 737, 10, 10))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToPresetUnit, 46, me.areaid, NTC_UNIT_MONSTER, 737, 10, 10);
return;
}
if(!NTM_UsePortal("Portal", 38))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_UsePortal, 52, "Portal", 38);
return;
}
NTM_MoveTo(me.areaid, 25047, 5178);
if(NTA_ClearPosition(10))
NTSI_PickItems();
_wirtbody = NTC_FindUnit(NTC_UNIT_OBJECT, 268);
if(!_wirtbody)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTC_FindUnit, 63, NTC_UNIT_OBJECT, 268);
return;
}
if(NTM_MoveTo(_wirtbody.areaid, _wirtbody.x + 3, _wirtbody.y))
{
if(NTC_OpenChest(_wirtbody))
{
for(i = 0; i < 40; i++)
{
NTC_Delay(NTC_DELAY_FRAME);
_leg = NTC_FindUnit(NTC_UNIT_ITEM, 88, 1);
if(_leg)
break;
}
if(!NTT_CheckSpace(_leg.xsize, _leg.ysize))
NTTMGR_VisitTown();
if(MWSI_PickupItem(_leg.classid))
Print("ÿc4Got Leg");
}
}
if(!_leg)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTC_FindUnit, 79, NTC_UNIT_ITEM, 88, 1);
return;
}
NTTM_CheckAct();
NTTM_TownMove("akara");
for(var i = 0; i < 10; i++)
{
_npc = NTC_FindUnit(NTC_UNIT_NPC, NTC_NPC_ID_AKARA);
if(_npc)
break;
}
if(_npc)
{
if(NTT_DoInteract(_npc))
{
if(NTT_DoTrade(_npc))
{
NTT_FillTome(_npc, 1);
NTT_FillTome(_npc, 0);
NTT_SecondTomeTP(_npc, "tbk", 1);
_portal = NTR_GetTP();
if(!_portal)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTR_GetTP, 121);
return;
}
}
}
me.Cancel(1);
}
if(MWT_OpenStash())
{
_cube = me.GetItems(NTC_UNIT_CUBE);
if(!_cube[0])
{
NTC_SendMsgToScript("MWBotGame.ntj", me.GetItems, 136, NTC_UNIT_CUBE);
return;
}
if(NTCU_CheckCubeInventoryInt() > 0)
{
NTCU_OpenCubeInt(_cube[0]);
if(NTCU_ClearCubeInt() < 1)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTCU_ClearCubeInt, 148);
return;
}
NTCU_CloseCubeInt();
}
NTCU_MoveItemToCubeInt(_cube[0],_leg);
NTCU_MoveItemToCubeInt(_cube[0],_portal);
MWCU_Transmute(_cube[0]);
NTCU_CloseCubeInt();
me.Cancel(1);
NTC_Delay(250);
}
if(!NTR_TakeCowPortal(12))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTR_TakeCowPortal, 169, 12);
return;
}
NTP_DoPrecast();
NTR_ClearRooms(150, NTC_UNIT_MONSTER, 773, _NTR_COW_KING_RANGE);
NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
// Internal functions
function NTR_GetTP()
{
var _portals = me.GetItems("tbk");
if (_portals)
{
for (var i = 0; i < _portals.length; i++)
{
if (_portals[i].mode == 0 && (_portals[i].itemloc != 0 || NTConfig_Columns[_portals[i].y][_portals[i].x] > 0))
{
return _portals[i];
}
}
}
return false;
}
function NTR_TakeCowPortal(range)
{
var _portal;
_portal = NTC_FindUnit(NTC_UNIT_OBJECT, 60, 5);
if(_portal)
return NTM_UsePortal("Portal", 39, "dummy", _portal);
return false;
}
function NTR_ClearRooms(range, type, id, distance)
{
var i;
var _unit;
var _preRoom;
var _addRooms = new Array();
var _removeRooms = new Array();
if (distance)
{
_unit = GetPresetUnits(me.areaid, type, id);
if (!_unit || _unit.length < 1)
return false;
}
_preRoom = GetRoom();
if (_preRoom)
{
do
{
if (distance)
{
if (GetDistance(_preRoom.x * 5, _preRoom.y * 5, _unit[0].roomx * 5, _unit[0].roomy * 5) < distance)
continue;
}
_addRooms.push([_preRoom.x * 5, _preRoom.y * 5]);
} while (_preRoom.GetNext());
}
if (_addRooms.length < 1)
return false;
_preRoom = [me.x, me.y];
while (_addRooms.length > 0)
{
_addRooms.sort(function (a, b) { return (GetDistance(_preRoom[0], _preRoom[1], a[0], a[1]) - GetDistance(_preRoom[0], _preRoom[1], b[0], b[1])); });
_removeRooms.push([_addRooms[0][0], _addRooms[0][1]]);
for (i = 1; i < _addRooms.length; i++)
{
if (GetDistance(_preRoom[0], _preRoom[1], _addRooms[i][0], _addRooms[i][1]) <= GetDistance(_preRoom[0], _preRoom[1], _addRooms[0][0], _addRooms[0][1]))
{
_removeRooms.push([_addRooms[i][0], _addRooms[i][1]]);
}
else
break;
}
if (_removeRooms.length > 1)
{
_removeRooms.sort(function (a, b) { return (b[0] - a[0]); });
if (_removeRooms[0][0] <= _preRoom[0])
{
_removeRooms.sort(function (a, b) { return (b[1] - a[1]); });
if (_removeRooms[0][1] <= _preRoom[1])
{
_removeRooms.sort(function (a, b) { return (a[0] - b[0]); });
if (_removeRooms[0][0] >= _preRoom[0])
_removeRooms.sort(function (a, b) { return (a[1] - b[1]); });
}
}
}
if (!range || GetDistance(me.x, me.y, _removeRooms[0][0], _removeRooms[0][1]) < range)
{
if (NTR_MoveTo(me.areaid, _removeRooms[0][0], _removeRooms[0][1], 3, true))
_preRoom = _removeRooms[0];
}
for (i = 0; i < _addRooms.length; i++)
{
if (_addRooms[i][0] == _removeRooms[0][0] && _addRooms[i][1] == _removeRooms[0][1])
{
_addRooms.splice(i, 1);
break;
}
}
_removeRooms.length = 0;
}
return true;
}
function NTR_MoveTo(areaId, x, y, retry, isClearPath)
{
if (x == me.x && y == me.y)
return true;
if (arguments.length < 4)
retry = 3;
if (arguments.length < 5)
isClearPath = false;
var j;
var _path;
var _preX, _preY;
_path = GetPath(areaId, me.x, me.y, x, y, true);
if (!_path)
return false;
for (var i = 0; i < _path.length; i++)
{
if (NTR_CheckCowKing() || NTR_CheckSafe(_path[i][0], _path[i][1], 15))
{
for (j = 0; j < retry; j++)
{
if (NTM_MoveTo(me.areaid, _path[i][0], _path[i][1]))
break;
}
if (j >= retry)
return false;
}
if (isClearPath && !NTR_CheckCowKing())
{
_preX = me.x;
_preY = me.y;
if(!MWR_ClearPosition(30))
return false;
NTP_DoPrecast();
if (me.x != _preX || me.y != _preY)
{
if (!NTM_MoveTo(me.areaid, _preX, _preY))
return false;
}
}
}
return true;
}
function NTR_CheckCowKing()
{
var _cowKing = NTC_FindUnit(NTC_UNIT_MONSTER, _NTR_STRING_COW_KING);
return (_cowKing && GetDistance(me, _cowKing) < _NTR_COW_KING_RANGE);
}
function NTR_CheckSafe(x, y, range)
{
var i;
var _target = NTC_FindUnit(NTC_UNIT_MONSTER);
if (_target)
{
do
{
if (GetDistance(x, y, _target.x, _target.y) < range && _target.IsAttackable())
{
for (i = 0; i < 6; i++)
{
if (NTConfig_AttackSkill[i] && NTA_GetResistance(_target, _NTA_SkillDamage[i]) < 100)
return false;
}
}
} while (_target.GetNext());
}
return true;
}
function MWR_ClearPosition(range, pickitem, safelevel, openchests, usefinditem)
{
var _orgx, _orgy;
var _skiplist;
var _attackcount = 0;
var _target;
var _distance, _mingid, _mindistance;
var _result;
switch(arguments.length)
{
case 0:
range = 20;
case 1:
pickitem = false;
case 3:
openchests = true;
case 4:
usefinditem = true;
default:
if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
safelevel = 0;
break;
}
_orgx = me.x;
_orgy = me.y;
for(var i = 0; i < 3; i++)
{
_skiplist = new Array();
while(_attackcount < (i+1)*100)
{
if(NTR_CheckCowKing())
return false;
_mindistance = 1E6;
_target = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_target)
{
do
{
if(_skiplist.indexOf(_target.gid) < 0)
{
if(_target.IsAttackable())
{
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 < 1E6)
{
_target = NTC_FindUnit(NTC_UNIT_MONSTER, _mingid, 1);
if(_target)
{
if(MWConfig_ShowOverheadStatus)
Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");
_result = NTA_Attack(_target, (_attackcount % 30) == 0);
if(MWConfig_ShowOverheadStatus)
Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");
switch(_result)
{
case 1:
_skiplist.push(_mingid);
break;
case 2:
case 3:
if(MWConfig_PickItemsInstantly && (_target.hp <= 0 || _target.mode == 0 || _target.mode == 12))
NTSI_PickItems();
_attackcount++;
break;
default:
_attackcount = 1E6;
}
}
}
else
break;
}
}
if(_attackcount > 2)
{
switch(me.classid)
{
case NTC_CHAR_CLASS_PALADIN:
if(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);
}
break;
case NTC_CHAR_CLASS_BARBARIAN:
if(usefinditem && MWConfig_UseFindItem && !NTR_CheckCowKing())
MWL_FindItem(MWConfig_FindItemRange);
break;
case NTC_CHAR_CLASS_NECROMANCER:
if(!NTR_CheckCowKing())
MWA_RaiseMinions();
break;
}
}
if(pickitem && _attackcount > 0)
NTSI_PickItems();
if(MWConfig_OpenAllNearbyChests && openchests && !NTR_CheckCowKing())
MWL_OpenNearbyChests(MWConfig_OpenChestsRange);
if(MWConfig_ActivateNearbyShrines)
MWL_ActivateNearbyShrines();
switch(safelevel)
{
case 1:
return NTTMGR_CheckSafe(0x00, NTConfig_CheckMercSafe&0x01);
case 2:
return NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
}
if(MWConfig_IdentAfterPickup)
MWL_IDItemsAfterPickup();
return true;
}
function NTT_SecondTomeTP(npc, type, amount)
{
var _items;
var _counter = 0;
if(arguments.length < 1)
return false;
if(arguments.length < 2)
type = 0;
if(arguments.length < 0)
amount = 1;
if(amount == 0)
return false;
if(type)
_items = npc.GetItems("tbk");
if(_items)
{
if(_items.length > 0)
{
for(var i = 0 ; i < amount ; i++)
{
if(NTT_ShopItem(_items[0], npc, 2))
_counter++;
}
}
}
return (_counter > 0);
}
da alles andere problemlos funktioniert, schließe ich fehler in der gürtel- oder pickit-konfiguration eigentlich aus...
|
|
|
05/05/2011, 18:26
|
#1701
|
elite*gold: 0
Join Date: Apr 2009
Posts: 25
Received Thanks: 4
|
Quote:
Originally Posted by thekarx
Ich hab darüber jetzt nichts gefunden über die Suche.
Vielleicht hab ja nur ich das Problem.
Bei Dia und bei den Trash bei Mephi ( nachdem Mephi tot is ) holt meine Sorc
zwischendrin das Cta raus und kloppt wie ne verrückte drauf los. Das macht die dann so ca. 10 Sekunden und switcht dann wieder zum Hoto. Bisher isses mir nur bei den 2 Scripts aufgefallen.
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 03/02/2011
*
* Hotkey Description
*
* Pause/Break Pauses the current bot script.
* Page up (PgUp) Skips the current bot script.
* Page down (PgDn) Repeats the previous bot script
* Home (Pos1) Shows your current coordinates and areaid.
* End Shows current ping in status text bar.
* Insert (Ins) Logs all items on your char to either XML or TXT.
* Delete (Del) Exits the game. NOTE: Always use this key to leave a game!
*/
Include("NTBot/char_configs/MWConfig_GlobalSettings.ntl");
var NTConfig_CastStatic;
function NT_LoadConfig()
{
MW_LoadGlobalSettings();
//------------------------------------------------------------------------------
//
// Run Configuration
//
//------------------------------------------------------------------------------
// Use the following syntax for activating botscripts: MWConfig_Script.push([<ScriptName>, <Script runtime in minutes (0 is infinite)>]);
// ***************** Current schedule ******************
MWConfig_Script.push(["NTAndariel.ntj", 10]);
MWConfig_Script.push(["NTPit.ntj", 10]); MWConfig_ClearPathToPitSpectype = 0; NTConfig_ClearPitLevel1 = 2; // 0 : don't clear, 1 : clear path only, 2 : clear all
MWConfig_Script.push(["NTMausoleum.ntj", 10]); NTConfig_KillBloodRaven = true;
MWConfig_Script.push(["NTAncientTunnels.ntj", 10]); MWConfig_ClearPathToTunnelsSpectype = 0x01;
MWConfig_Script.push(["NTRadament.ntj", 10]);
MWConfig_Script.push(["NTSummoner.ntj", 5]); NTConfig_KillFireEye = false; MWConfig_ClearPathToSummonerSpectype = 0;
//MWConfig_Script.push(["NTDuriel.ntj", 10]); MWConfig_ClearPathToDurielSpectype = 0x01;
MWConfig_Script.push(["NTMephisto.ntj", 10]); MWConfig_OpenMephistoChest = true; MWConfig_MephistoClearArea = false;
MWConfig_Script.push(["NTBaal.ntj", 10]); NTConfig_KillBaal = true; MWConfig_SkipBaalOnDolls = true; MWConfig_SkipBaalOnSouls = false; MWConfig_DoBaalPreAttack = true;
MWConfig_Script.push(["MWKurastSewers.ntj", 5]); MWConfig_ClearPathToKurastSewersSpectype = 0;
MWConfig_Script.push(["MWKurastTemples.ntj", 5])
MWConfig_Script.push(["NTTravincal.ntj", 10]);
MWConfig_Script.push(["NTDiablo.ntj", 10]); MWConfig_KillFullInfectorMob = true; MWConfig_StartAtStar = false; // false: start at entrance, true: start at star
//MWConfig_Script.push(["MWSuperChests.ntj", 20]); MWConfig_SuperChestClearAreaRadius = 10; MWConfig_SuperChestAreas = ["Cave Level 2", "Hole Level 2", "Sewers Level 3", "Stony Tomb Level 2", "Maggot's Lair Level 3", "Ancient Tunnels", "Tal Rasha's Tomb", "Arachnid Lair", "Swampy Pit Level 3", "Flayer Dungeon", "Abbadon", "Pit of Acheron", "Drifter Cavern", "Infernal Pit", "Icy Cellar"];
// *****************************************************
//------------------------------------------------------------------------------
// Available Scripts
//------------------------------------------------------------------------------
/*
// *********************** Act I ***********************
//MWConfig_Script.push(["NTMausoleum.ntj", 10]); NTConfig_KillBloodRaven = true;
//MWConfig_Script.push(["NTTristram.ntj", 10]); NTConfig_KillRakanishu = true;
//MWConfig_Script.push(["NTHole.ntj", 10]); NTConfig_ClearHoleLevel1 = 1; // 0 : don't clear, 1 : clear path only, 2 : clear all
//MWConfig_Script.push(["NTTreehead.ntj", 10]);
//MWConfig_Script.push(["NTCountess.ntj", 5]); MWConfig_ClearCountessRoomsSpectype = 0;
//MWConfig_Script.push(["NTPit.ntj", 10]); MWConfig_ClearPathToPitSpectype = 0; NTConfig_ClearPitLevel1 = 1; // 0 : don't clear, 1 : clear path only, 2 : clear all
//MWConfig_Script.push(["NTAndariel.ntj", 10]);
// *********************** Act II **********************
//MWConfig_Script.push(["NTRadament.ntj", 10]);
//MWConfig_Script.push(["NTColdworm.ntj", 10]);
//MWConfig_Script.push(["NTAncientTunnels.ntj", 10]); MWConfig_ClearPathToTunnelsSpectype = 0x01;
//MWConfig_Script.push(["NTSummoner.ntj", 5]); NTConfig_KillFireEye = false; MWConfig_ClearPathToSummonerSpectype = 0;
//MWConfig_Script.push(["NTDuriel.ntj", 10]); MWConfig_ClearPathToDurielSpectype = 0x01;
// ********************** Act III **********************
//MWConfig_Script.push(["MWFlayerJungle.ntj", 10]);
//MWConfig_Script.push(["MWKurastSewers.ntj", 5]); MWConfig_ClearPathToKurastSewersSpectype = 0;
//MWConfig_Script.push(["MWKurastTemples.ntj", 5])
//MWConfig_Script.push(["NTTravincal.ntj", 5]);
//MWConfig_Script.push(["NTMephisto.ntj", 5]); MWConfig_OpenMephistoChest = true; MWConfig_MephistoClearArea = true;
// *********************** Act IV **********************
//MWConfig_Script.push(["NTIzual.ntj", 5]);
//MWConfig_Script.push(["MWRiverOfFlame.ntj", 10]);
//MWConfig_Script.push(["NTHephasto.ntj", 10]);
//MWConfig_Script.push(["NTDiablo.ntj", 10]); MWConfig_KillFullInfectorMob = true; MWConfig_StartAtStar = false; // false: start at entrance, true: start at star
// *********************** Act V ***********************
//MWConfig_Script.push(["NTEldritch.ntj", 5]); NTConfig_ShenkExtension = false;
//MWConfig_Script.push(["NTThreshSocket.ntj", 5]);
//MWConfig_Script.push(["NTFrozenRiver.ntj", 10]); NTConfig_ClearFrozenRiver = false;
//MWConfig_Script.push(["NTGlacialTrail.ntj", 10]); NTConfig_ClearGlacialTrail = false;
//MWConfig_Script.push(["NTIcyCellar.ntj", 5]); NTConfig_ClearIcyCellar = false;
//MWConfig_Script.push(["NTNihlathak.ntj", 5]); NTConfig_PindleskinExtension = false; MWConfig_SkipOnTombVipers = true;
//MWConfig_Script.push(["MWWorldstoneKeep.ntj", 10]); MWConfig_SkipLevelOnWitches = true; MWConfig_SkipLevelOnSouls = false; MWConfig_SkipLevelOnDeathLords = true;
//MWConfig_Script.push(["NTBaal.ntj", 10]); NTConfig_KillBaal = true; MWConfig_SkipBaalOnDolls = true; MWConfig_SkipBaalOnSouls = false; MWConfig_DoBaalPreAttack = true;
// *********************** Misc ************************
//MWConfig_Script.push(["MWSuperChests.ntj", 20]); MWConfig_SuperChestClearAreaRadius = 10; MWConfig_SuperChestAreas = ["Cave Level 2", "Mausoleum", "Hole Level 2", "Pit Level 2", "Sewers Level 3", "Halls of the Dead Level 2", "Stony Tomb Level 2", "Maggot's Lair Level 3", "Ancient Tunnels", "Tal Rasha's Tomb", "Arachnid Lair", "Swampy Pit Level 3", "Flayer Dungeon", "Sewers Level 2", "Abbadon", "Pit of Acheron", "Drifter Cavern", "Infernal Pit", "Icy Cellar", "Halls of Pain"];
//MWConfig_Script.push(["MWRush.ntj", 0]); MWConfig_IsRusher = true; MWConfig_ActiveQuestersName = ""; MWConfig_NumberOfCharsToRush = 1; MWConfig_GetHoradricCubesInNorm = true; MWConfig_QuestSchedule = ["A4Q1", "A5Q1"]; MWConfig_RushActs = [1, 2, 3, 4, 5];
//MWConfig_Script.push(["MWWaypointCatcher.ntj", 0]); MWConfig_WaypointCatcherActs = [1, 2, 3, 4, 5]; MWConfig_TPWaypoints = true; MWConfig_SkipHallsOfPain = true; MWConfig_ClearWaypointPaths = false;
//MWConfig_Script.push(["MWIdleMode.ntj", 0]); MWConfig_IdleModeRuntime = 5; // Runtime in Minutes
//MWConfig_Script.push(["NTCows.ntj", 10]);
//MWConfig_Script.push(["MWBloodyRejuvs.ntj", 10]);
//MWConfig_Script.push(["MWOrganHarvest.ntj", 10]); MWConfig_EnterInvalidUberPortals = true; MWConfig_PauseOnLackOfKeys = false; MWConfig_IntendedUberPortal = 0; // Matron's Den: 133; Forgotten Sands: 134; Furnace Of Pain: 135;
//MWConfig_Script.push(["MWUberTristram.ntj", 10]); MWConfig_PauseOnLackOfOrgans = false;
*/
//------------------------------------------------------------------------------
// Misc Configuration
//------------------------------------------------------------------------------
NTConfig_SkipHealLife = 90; // If you have more than this percent of life, you won't go to a healer.
NTConfig_SkipHealMana = 70; // If you have more than this percent of mana, you won't go to a healer
NTConfig_UseMerc = true; // Set to true if you use a mercenary, will revive merc at a reviver npc.
MWConfig_ResetArmor = false; // Set to true to reset your Enigma if Teleport skill is missing. WARNING: Activating this feature may - though not likely will - result in the loss of your enigma. Use at your own risk!
//------------------------------------------------------------------------------
// Potion Configuration
//------------------------------------------------------------------------------
NTConfig_LifeThresh = 70; // Drink a normal potion if under this percent of life.
NTConfig_LifeRejuvThresh = 60; // Drink a rejuvenation potion if under this percent of life.
NTConfig_ManaThresh = 30; // Drink a normal potion if under this percent of mana.
NTConfig_ManaRejuvThresh = 0; // Drink a rejuvenation potion if under this percent of mana.
NTConfig_MercLifeThresh = 70 // This is the threshold to use a life potion on your merc in percent.
NTConfig_MercRejuvThresh = 30; // This is the threshold to use a rejuv potion on your merc in percent.
//------------------------------------------------------------------------------
// Chicken Configuration
//------------------------------------------------------------------------------
// This is your chicken life. If you go below this threshhold, your char will exit the game. You can either enter a percentage (1-100), an absolute threshold (>100) or 0 to deactivate life chicken.
NTConfig_LifeChicken = 35;
// This is your chicken mana. If you go below this threshhold, your char will exit the game. You can either enter a percentage (1-100), an absolute threshold (>100) or 0 to deactivate mana chicken.
NTConfig_ManaChicken = 0;
// This is your merc's chicken life in percent. If your merc goes below this threshhold, your char will exit the game.
NTConfig_MercChicken = 0;
//------------------------------------------------------------------------------
// Inventory Configuration
//------------------------------------------------------------------------------
// Number of free columns. If less full columns are free stashing is set.
NTConfig_FreeSpace = 5;
// Each number represents a slot in your inventory.
// Set to 0 if the slot and its content must not be touched.
// Set to 1 to allow access to this slot.
// Set to 2 to select the slot that is used for storing keys. (if keys are kept at another slot, your char will try to move them)
NTConfig_Columns[0] = [1,1,1,1,1,2,0,0,0,0];
NTConfig_Columns[1] = [1,1,1,1,1,1,0,0,0,0];
NTConfig_Columns[2] = [1,1,1,1,1,1,0,0,0,0];
NTConfig_Columns[3] = [1,1,1,1,1,1,0,0,0,0];
// Maximum gold amount carried before going to stash.
NTConfig_MinGoldToStash = 250000;
// Set to true if your char is supposed to carry, buy and pick up keys. You do not need to add keys to your .nip files, they will be picked up anyway if this is set to true.
MWConfig_CarryKeys = true;
//------------------------------------------------------------------------------
// Belt Configuration
//------------------------------------------------------------------------------
// Determine how many columns for each type of potion are used.
// Available types : "hp" = health | "mp" = mana | "rv" = rejuvenation
// The first number indicates how many columns will be used for this type of potion.
// The second number indicates the minimum amount of potions in one column. If there are less potions in a single column when your char is in town, he will is visit a merchant in order to buy potions.
// Unlike in vanilla D2NT, there is no need to specify which column is used for certain type of potion, this will be chosen automatically!
MWConfig_BeltTypeColQuantity["hp"] = [1, 3];
MWConfig_BeltTypeColQuantity["mp"] = [1, 3];
MWConfig_BeltTypeColQuantity["rv"] = [2, 0];
// Visit Town and buy potions if your char lacks mana when trying to loot a corpse or teleport.
MWConfig_BuyPotionsOnLackOfMana = true;
// Set to true to replace low quality potions with higher quality potions that just dropped.
MWConfig_ReplaceLowQualityPotions = true;
//-----------------------------------------------------------------------------------
// NipFile Configuration
//-----------------------------------------------------------------------------------
NTConfig_NIPFilePath.push("private/normal.nip");
NTConfig_NIPFilePath.push("private/magic_rare.nip");
NTConfig_NIPFilePath.push("private/set.nip");
NTConfig_NIPFilePath.push("private/unique.nip");
NTConfig_NIPFilePath.push("private/craft.nip");
NTConfig_NIPFilePath.push("private/temp.nip");
//------------------------------------------------------------------------------
// Pickit Configuration
//------------------------------------------------------------------------------
// Radius to check for dropped items. NOTE: The maximum is at about ~75, entering higher values will not have any effect.
NTConfig_SnagRange = 70;
// Set to true to check for dropped items whenever you kill a monster.
MWConfig_PickItemsInstantly = false;
//------------------------------------------------------------------------------
// Chest Configuration
//------------------------------------------------------------------------------
// Set to true to open chests. NOTE: This only affects some super unique chests in certain boss scripts.
NTConfig_OpenChest = true;
// Set to true to open almost any type of container.
MWConfig_OpenAllNearbyChests = true;
// Set to true to check for dropped items right after opening a chest. NOTE: This will slow down your runs and therefore should definately be set to false when doing private games.
MWConfig_PickChestLootsInstantly = false;
// This is the range being checked for chests after clearing an area or room. NOTE: You should not set this too high, 30 is a good value.
MWConfig_OpenChestsRange = 30;
// If you do not like to open chests in a certain area, you can its areaid as an exception below. NOTE: All areaids can be found in "sdk\areas.txt".
// MWConfig_ChestExceptions.push(<areaid1>, <areaid2>, <areaidn>);
//------------------------------------------------------------------------------
// Cubing Configuration
//------------------------------------------------------------------------------
// Set to true to enable cubing and crafting. NOTE: The recipes are added in the global config by default. If you like to craft certain recipe only using this very char, add those recipes below.
NTConfig_Cubing = true;
//------------------------------------------------------------------------------
// General Configuration
//------------------------------------------------------------------------------
// Set to true to activate public mode. By activating public mode, your char will form a party, open TPs and do some chat outputs when running certain bot scripts.
NTConfig_PublicMode = false;
// Set to true to exit the game instantly if the game is public. This may happen sometimes due to an error pasting the password correctly.
MWConfig_ExitGameOnMissingPassword = false;
// Set to true to exit the game when another player expresses hostility towards you.
me.quitonhostile = false;
// This is the maximum time in seconds your char will remain in a single game. Set to 0 to stay in game infinitely.
me.maxgametime = 3000;
// This is the minimum time in seconds for your char to remain in a single game. Your char will not exit the game before this time elapsed.
me.mingametime = 0;
// Set to true to use Telekinesis to interact tih certain objects
MWConfig_UseTelekinesis = true;
//------------------------------------------------------------------------------
// Shrine Configuration
//------------------------------------------------------------------------------
// Set to true to activate nearby shrines. Shrines will only be activated if it is actually useful.
MWConfig_ActivateNearbyShrines = true;
// If you would like to skip shrines in a certain area, you can its areaid as an exception below. NOTE: All areaids can be found in "sdk\areas.txt".
// MWConfig_ShrineExceptions.push(<areaid1>, <areaid2>, <areaidn>);
//------------------------------------------------------------------------------
// Precast Configuration
//------------------------------------------------------------------------------
// Your precast skills can be defined in the array below. NOTE: Battle Command, Battle Orders and Shout will be cast automatically. Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
MWConfig_PrecastSkills = [MWS_FROZEN_ARMOR, MWS_ENERGY_SHIELD];
// Set this to true if you would like to switch slots right after casting BC, BO and Shout. If set to false, your char will remain with the BO Slot until the whole precast procedure is done.
MWConfig_SwitchSlotsAfterBoPrecast = true;
//------------------------------------------------------------------------------
// Attack Configuration
//------------------------------------------------------------------------------
// Specify your attack skills below. NOTE: Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
NTConfig_AttackSkill[0] = MWS_CHAIN_LIGHTNING; // This skill is used once whenever attacking a new target. Set to 0 to deactivate.
NTConfig_AttackSkill[1] = MWS_LIGHTNING; // Primary skill to bosses.
NTConfig_AttackSkill[2] = MWS_CHAIN_LIGHTNING; // Primary untimed skill to boss. Set to 0 to deactivate.
NTConfig_AttackSkill[3] = MWS_LIGHTNING; // Primary skill to others.
NTConfig_AttackSkill[4] = MWS_CHAIN_LIGHTNING; // Primary untimed skill to others. Set to 0 to deactivate.
NTConfig_AttackSkill[5] = 0; // Secondary skill in case monster is immune to primary skill. Set to 0 to deactivate.
NTConfig_AttackSkill[6] = MWS_CHAIN_LIGHTNING; // Secondary untimed skill. Set to 0 to deactivate.
NTConfig_AttackSkill[7] = 0; // Alternative untimed skill which is used if the target is immune to your untimed skill - mostly useful for FB/FO/Meteor sorcs or other sorcs that are using the same untimed skills. Set to 0 to deactivate.
// Set to true if you want to clear area after killing boss. NOTE: This only affects a few botscripts.
NTConfig_ClearPosition = true;
// Set to true to clear area when killing a boss and the position is crowded by monsters. NOTE: Setting this to true may cause NTA_KillMonster() to fail way more often.
MWConfig_ClearBossPosition = false;
// This is the number of attacks to be performed before the the character tries to move to another position. Set to 0 not to reposition.
MWConfig_AttacksBeforeRepositioning = 10;
// Define a time limit for your attacks for each type of monster.
MWConfig_AttackTimeLimit[0] = 20; // Maximum time in seconds to attack a normal monster
MWConfig_AttackTimeLimit[1] = 120; // Maximum time in seconds to attack a super unique monster
MWConfig_AttackTimeLimit[2] = 30; // Maximum time in seconds to attack a champion
MWConfig_AttackTimeLimit[3] = 120; // Maximum time in seconds to attack a bosse
MWConfig_AttackTimeLimit[4] = 30; // Maximum time in seconds to attack a minion
// Define when a monster is considered immune by entering the index of one or more of your attack skills. As an example: [1, 3] means that a monster is considered immune if it is immune to both NTConfig_AttackSkill[1] and NTConfig_AttackSkill[3], whatever those may be.
MWConfig_CheckImmunitySkills = [1, 2];
// Select the behaviour of your character when encountering a monsters that is considered immune referring to the definition above.
// 0: Don't do anything. (D2NT default)
// 1: Get close to the monster, use static field if the monster is not immune to lightning.
// 2: Skip the monster.
// 3: Attack the monster using NTConfig_AttackSkill[8] and NTConfig_AttackSkill[9]
NTConfig_BehaviourOnImmuneMonster = 2;
NTConfig_AttackSkill[8] = 0; // Skill to be used against user defined immunes.
NTConfig_AttackSkill[9] = 0; // Untimed Skill to be used against user defined immunes.
// Always check if monsters are closing in and back off, in case they get too close. NOTE: You should at least have 105FCR in order to make this work smoothly.
MWConfig_KeepDistanceToMonsters = true;
// If you don't wish to evade monsters in a certain area, add it's areaid as an exception below. NOTE: All areaids can be found in "sdk\areas.txt".
// MWConfig_EvasionExceptions.push(<areaid1>, <areaid2>, <areaidn>);
// Check self safe in field (NOT in town). Set to 0 if you won't.
// 0x01 : Potion
// 0x02 : Poison
// 0x04 : Amplify Damage
// 0x08 : Weaken
// 0x10 : Iron Maiden
// 0x20 : Decrepify
// 0x40 : Lower Resist
NTConfig_CheckSelfSafe = 0;
// Check merc's safe in field (NOT in town). Set to 0 if you won't.
// 0x01 : Death
// 0x02 : Poison
// 0x04 : Amplify Damage
// 0x08 : Weaken
// 0x10 : Iron Maiden
// 0x20 : Decrepify
// 0x40 : Lower Resist
NTConfig_CheckMercSafe = 0x01;
// Cast Static Field until monster's HP lower below this percentage. Set to 100 not to use static field.
NTConfig_CastStatic = 60;
// Select the monsters you with to attack using static field. NOTE: If you do not add any monsters, static will be used against all monsters.
MWConfig_StaticTargets.push(156); // Andariel
MWConfig_StaticTargets.push(211); // Duriel
MWConfig_StaticTargets.push(242); // Mephisto
MWConfig_StaticTargets.push(243); // Diablo
MWConfig_StaticTargets.push(544); // Baal
MWConfig_StaticTargets.push(GetLocaleString(22500)); // Eldritch The Rectifier
MWConfig_StaticTargets.push(GetLocaleString(22435)); // Shenk The Overseer
}
|
ich nehme mal an du benutzt ein infinity merc, ich hatet das selbe problem und habs folgendermaßen weggekriegt minions und boss halt 49 und unten gibst eine zeile wie folgt
Code:
// Define when a monster is considered immune by entering the index of one or more of your attack skills. As an example: [1, 3] means that a monster is considered immune if it is immune to both NTConfig_AttackSkill[1] and NTConfig_AttackSkill[3], whatever those may be.
MWConfig_CheckImmunitySkills = [0, 1];
// Select the behaviour of your character when encountering a monsters that is considered immune referring to the definition above.
// 0: Don't do anything. (D2NT default)
// 1: Get close to the monster, use static field if the monster is not immune to lightning.
// 2: Skip the monster.
// 3: Attack the monster using NTConfig_AttackSkill[8] and NTConfig_AttackSkill[9]
NTConfig_BehaviourOnImmuneMonster = 3;
NTConfig_AttackSkill[8] = 49; // Skill to be used against user defined immunes.
NTConfig_AttackSkill[9] = 0; // Untimed Skill to be used against user defined immunes.
da änderst du das einfach mao so wie ich es hab, dann sollte es klappen falls
es nicht eh schon klappt bei dir
bzw. muddy mach mal bitte ein leechfight script für dia und baal, ich muss immer den bot dafür wechseln was ich eig nicht will
|
|
|
05/05/2011, 18:33
|
#1702
|
elite*gold: 5
Join Date: Apr 2010
Posts: 689
Received Thanks: 151
|
Quote:
Originally Posted by thekarx
Schau mal in die GlobalSettings Datei ganz unten.
Da steht folgendes:
// ******************* Socket items ********************
// Primary item must inlcluded in one of your .nip Files
***
// ******************* Upgrade items *******************
***
Die original items müssen in deiner pickit drin stehen.
Um diese zu sockeln bzw. upgraden fügste wie in der der GlobalSettings datei beschrieben deine Items jeweils zu Sockeln / Upgrade hinzu.
|
Wer Lesen kann ist klar im Vorteil.  Dankeschön
|
|
|
05/05/2011, 18:45
|
#1703
|
elite*gold: 0
Join Date: Mar 2008
Posts: 23
Received Thanks: 7
|
Quote:
da änderst du das einfach mao so wie ich es hab, dann sollte es klappen falls
es nicht eh schon klappt bei dir
bzw. muddy mach mal bitte ein leechfight script für dia und baal, ich muss immer den bot dafür wechseln was ich eig nicht will
|
danke funzt bisher.
Ich hatte das Problem das es anfangs mit zwei laufenden D2NT Programmen zu crashs kam.
( Muddys Farm Bot & Leechbots )
ich hab mir abhilfe geschafft indem ich mir die baal & diablo leech & cofighter scripts aus "Lanara's D2NT: [D2NT] Public Botten for Dummies" in Muddys D2NT reinkopiert habe. Funktioniert einwandfrei.
lg karx
|
|
|
05/05/2011, 18:48
|
#1704
|
Administrator
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
|
Da hat sich ja schon wieder einiges angesammelt, falls ich jemanden vergessen haben sollte, bitte melden.
Quote:
Originally Posted by -Nemesis1337-
Hey Muddys, hab heut den Code ausprobiert.
Bekomme jetzt beim Shoppen den Error(mit entsprechender Line):
Passiert direkt nachm Gamejoin, wenn er das erste Mal shoppt und einen Manapot kaufen will.
IsPotionRequired is hat doch true? Warum not defined?
|
MWT_IsPotionRequired ist eine Funktion.
Und wenn die nicht definiert ist, spricht das für grobe Syntaxfehler ind er Funktion selber bzw. in der library, in der diese implementiert ist.
Hattest du dort irgendwas verändert?
Achja, wo ich das Notepad gerade sehe; schau bei Zeiten mal  .
Quote:
Originally Posted by Derbeth
Thx für deine Antwort muddy, ich glaub ich lass es einfach sein und bau mir nen GoldBarb draus, obwohl der Chest Barb schon geile Skiller gefunden hat... Aber GoldBarb findet auch recht geile sachen also... :P
Muddy baust du irgendwann mal einen Leechbot/Co-Leech/Leader Bot in deine Scripts ein?
Wär echt nice :P
|
Unwahrscheinlich, ich entwickle nichts, was ich nicht brauche, zumal ich derzeit ohnehin recht selten dazu komme, überhaupt mal etwas zu entwickeln.
Quote:
Originally Posted by Hoez
wie sieht es aus, wenn ich eine eigene pickit verwenden möchte, ich habe nun eine datei aus "/itemconfigs/private" rausgepickt, und meine eigene pickit in diese datei kopiert und diese dann umbenannt in pickit.nip
in meiner charconfig sieht das nun so aus:
//-----------------------------------------------------------------------------------
// NipFile Configuration
//-----------------------------------------------------------------------------------
NTConfig_NIPFilePath.push("private/pickit.nip");
ist das so korrekt?
|
Joa, das passt so.
Quote:
Originally Posted by Knurrhuhn
den syntax-fehler hatte ich vorher bereits berichtigt. statt der zweiten klammer habe ich ein ; gesetzt. das wurde hier im forum irgendwo schonmal beschrieben
hier mal mein code der NTCows.ntj
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 02/05/2011
*/
const _NTR_STRING_COW_KING = GetLocaleString(2850);
const _NTR_COW_KING_RANGE = 80;
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
MWC_Initialize();
var _wirtbody, _cube, _leg, _portal, _stash, _npc;
var i;
if(!NTTM_CheckAct(me.act, true))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_CheckAct, 24, me.act, true);
return;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_TownMove, 32, "waypoint");
return;
}
if(!NTM_TakeWaypoint(4))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeWaypoint, 38, 4);
return;
}
NTP_DoPrecast(true);
if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_MONSTER, 737, 10, 10))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToPresetUnit, 46, me.areaid, NTC_UNIT_MONSTER, 737, 10, 10);
return;
}
if(!NTM_UsePortal("Portal", 38))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_UsePortal, 52, "Portal", 38);
return;
}
NTM_MoveTo(me.areaid, 25047, 5178);
if(NTA_ClearPosition(10))
NTSI_PickItems();
_wirtbody = NTC_FindUnit(NTC_UNIT_OBJECT, 268);
if(!_wirtbody)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTC_FindUnit, 63, NTC_UNIT_OBJECT, 268);
return;
}
if(NTM_MoveTo(_wirtbody.areaid, _wirtbody.x + 3, _wirtbody.y))
{
if(NTC_OpenChest(_wirtbody))
{
for(i = 0; i < 40; i++)
{
NTC_Delay(NTC_DELAY_FRAME);
_leg = NTC_FindUnit(NTC_UNIT_ITEM, 88, 1);
if(_leg)
break;
}
if(!NTT_CheckSpace(_leg.xsize, _leg.ysize))
NTTMGR_VisitTown();
if(MWSI_PickupItem(_leg.classid))
Print("ÿc4Got Leg");
}
}
if(!_leg)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTC_FindUnit, 79, NTC_UNIT_ITEM, 88, 1);
return;
}
NTTM_CheckAct();
NTTM_TownMove("akara");
for(var i = 0; i < 10; i++)
{
_npc = NTC_FindUnit(NTC_UNIT_NPC, NTC_NPC_ID_AKARA);
if(_npc)
break;
}
if(_npc)
{
if(NTT_DoInteract(_npc))
{
if(NTT_DoTrade(_npc))
{
NTT_FillTome(_npc, 1);
NTT_FillTome(_npc, 0);
NTT_SecondTomeTP(_npc, "tbk", 1);
_portal = NTR_GetTP();
if(!_portal)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTR_GetTP, 121);
return;
}
}
}
me.Cancel(1);
}
if(MWT_OpenStash())
{
_cube = me.GetItems(NTC_UNIT_CUBE);
if(!_cube[0])
{
NTC_SendMsgToScript("MWBotGame.ntj", me.GetItems, 136, NTC_UNIT_CUBE);
return;
}
if(NTCU_CheckCubeInventoryInt() > 0)
{
NTCU_OpenCubeInt(_cube[0]);
if(NTCU_ClearCubeInt() < 1)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTCU_ClearCubeInt, 148);
return;
}
NTCU_CloseCubeInt();
}
NTCU_MoveItemToCubeInt(_cube[0],_leg);
NTCU_MoveItemToCubeInt(_cube[0],_portal);
MWCU_Transmute(_cube[0]);
NTCU_CloseCubeInt();
me.Cancel(1);
NTC_Delay(250);
}
if(!NTR_TakeCowPortal(12))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTR_TakeCowPortal, 169, 12);
return;
}
NTP_DoPrecast();
NTR_ClearRooms(150, NTC_UNIT_MONSTER, 773, _NTR_COW_KING_RANGE);
NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
// Internal functions
function NTR_GetTP()
{
var _portals = me.GetItems("tbk");
if (_portals)
{
for (var i = 0; i < _portals.length; i++)
{
if (_portals[i].mode == 0 && (_portals[i].itemloc != 0 || NTConfig_Columns[_portals[i].y][_portals[i].x] > 0))
{
return _portals[i];
}
}
}
return false;
}
function NTR_TakeCowPortal(range)
{
var _portal;
_portal = NTC_FindUnit(NTC_UNIT_OBJECT, 60, 5);
if(_portal)
return NTM_UsePortal("Portal", 39, "dummy", _portal);
return false;
}
function NTR_ClearRooms(range, type, id, distance)
{
var i;
var _unit;
var _preRoom;
var _addRooms = new Array();
var _removeRooms = new Array();
if (distance)
{
_unit = GetPresetUnits(me.areaid, type, id);
if (!_unit || _unit.length < 1)
return false;
}
_preRoom = GetRoom();
if (_preRoom)
{
do
{
if (distance)
{
if (GetDistance(_preRoom.x * 5, _preRoom.y * 5, _unit[0].roomx * 5, _unit[0].roomy * 5) < distance)
continue;
}
_addRooms.push([_preRoom.x * 5, _preRoom.y * 5]);
} while (_preRoom.GetNext());
}
if (_addRooms.length < 1)
return false;
_preRoom = [me.x, me.y];
while (_addRooms.length > 0)
{
_addRooms.sort(function (a, b) { return (GetDistance(_preRoom[0], _preRoom[1], a[0], a[1]) - GetDistance(_preRoom[0], _preRoom[1], b[0], b[1])); });
_removeRooms.push([_addRooms[0][0], _addRooms[0][1]]);
for (i = 1; i < _addRooms.length; i++)
{
if (GetDistance(_preRoom[0], _preRoom[1], _addRooms[i][0], _addRooms[i][1]) <= GetDistance(_preRoom[0], _preRoom[1], _addRooms[0][0], _addRooms[0][1]))
{
_removeRooms.push([_addRooms[i][0], _addRooms[i][1]]);
}
else
break;
}
if (_removeRooms.length > 1)
{
_removeRooms.sort(function (a, b) { return (b[0] - a[0]); });
if (_removeRooms[0][0] <= _preRoom[0])
{
_removeRooms.sort(function (a, b) { return (b[1] - a[1]); });
if (_removeRooms[0][1] <= _preRoom[1])
{
_removeRooms.sort(function (a, b) { return (a[0] - b[0]); });
if (_removeRooms[0][0] >= _preRoom[0])
_removeRooms.sort(function (a, b) { return (a[1] - b[1]); });
}
}
}
if (!range || GetDistance(me.x, me.y, _removeRooms[0][0], _removeRooms[0][1]) < range)
{
if (NTR_MoveTo(me.areaid, _removeRooms[0][0], _removeRooms[0][1], 3, true))
_preRoom = _removeRooms[0];
}
for (i = 0; i < _addRooms.length; i++)
{
if (_addRooms[i][0] == _removeRooms[0][0] && _addRooms[i][1] == _removeRooms[0][1])
{
_addRooms.splice(i, 1);
break;
}
}
_removeRooms.length = 0;
}
return true;
}
function NTR_MoveTo(areaId, x, y, retry, isClearPath)
{
if (x == me.x && y == me.y)
return true;
if (arguments.length < 4)
retry = 3;
if (arguments.length < 5)
isClearPath = false;
var j;
var _path;
var _preX, _preY;
_path = GetPath(areaId, me.x, me.y, x, y, true);
if (!_path)
return false;
for (var i = 0; i < _path.length; i++)
{
if (NTR_CheckCowKing() || NTR_CheckSafe(_path[i][0], _path[i][1], 15))
{
for (j = 0; j < retry; j++)
{
if (NTM_MoveTo(me.areaid, _path[i][0], _path[i][1]))
break;
}
if (j >= retry)
return false;
}
if (isClearPath && !NTR_CheckCowKing())
{
_preX = me.x;
_preY = me.y;
[COLOR="Red"]if(!MWR_ClearPosition(30, true))[/COLOR]
return false;
NTP_DoPrecast();
if (me.x != _preX || me.y != _preY)
{
if (!NTM_MoveTo(me.areaid, _preX, _preY))
return false;
}
}
}
return true;
}
function NTR_CheckCowKing()
{
var _cowKing = NTC_FindUnit(NTC_UNIT_MONSTER, _NTR_STRING_COW_KING);
return (_cowKing && GetDistance(me, _cowKing) < _NTR_COW_KING_RANGE);
}
function NTR_CheckSafe(x, y, range)
{
var i;
var _target = NTC_FindUnit(NTC_UNIT_MONSTER);
if (_target)
{
do
{
if (GetDistance(x, y, _target.x, _target.y) < range && _target.IsAttackable())
{
for (i = 0; i < 6; i++)
{
if (NTConfig_AttackSkill[i] && NTA_GetResistance(_target, _NTA_SkillDamage[i]) < 100)
return false;
}
}
} while (_target.GetNext());
}
return true;
}
function MWR_ClearPosition(range, pickitem, safelevel, openchests, usefinditem)
{
var _orgx, _orgy;
var _skiplist;
var _attackcount = 0;
var _target;
var _distance, _mingid, _mindistance;
var _result;
switch(arguments.length)
{
case 0:
range = 20;
case 1:
pickitem = false;
case 3:
openchests = true;
case 4:
usefinditem = true;
default:
if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
safelevel = 0;
break;
}
_orgx = me.x;
_orgy = me.y;
for(var i = 0; i < 3; i++)
{
_skiplist = new Array();
while(_attackcount < (i+1)*100)
{
if(NTR_CheckCowKing())
return false;
_mindistance = 1E6;
_target = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_target)
{
do
{
if(_skiplist.indexOf(_target.gid) < 0)
{
if(_target.IsAttackable())
{
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 < 1E6)
{
_target = NTC_FindUnit(NTC_UNIT_MONSTER, _mingid, 1);
if(_target)
{
if(MWConfig_ShowOverheadStatus)
Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");
_result = NTA_Attack(_target, (_attackcount % 30) == 0);
if(MWConfig_ShowOverheadStatus)
Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");
switch(_result)
{
case 1:
_skiplist.push(_mingid);
break;
case 2:
case 3:
if(MWConfig_PickItemsInstantly && (_target.hp <= 0 || _target.mode == 0 || _target.mode == 12))
NTSI_PickItems();
_attackcount++;
break;
default:
_attackcount = 1E6;
}
}
}
else
break;
}
}
if(_attackcount > 2)
{
switch(me.classid)
{
case NTC_CHAR_CLASS_PALADIN:
if(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);
}
break;
case NTC_CHAR_CLASS_BARBARIAN:
if(usefinditem && MWConfig_UseFindItem && !NTR_CheckCowKing())
MWL_FindItem(MWConfig_FindItemRange);
break;
case NTC_CHAR_CLASS_NECROMANCER:
if(!NTR_CheckCowKing())
MWA_RaiseMinions();
break;
}
}
if(pickitem && _attackcount > 0)
NTSI_PickItems();
if(MWConfig_OpenAllNearbyChests && openchests && !NTR_CheckCowKing())
MWL_OpenNearbyChests(MWConfig_OpenChestsRange);
if(MWConfig_ActivateNearbyShrines)
MWL_ActivateNearbyShrines();
switch(safelevel)
{
case 1:
return NTTMGR_CheckSafe(0x00, NTConfig_CheckMercSafe&0x01);
case 2:
return NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
}
if(MWConfig_IdentAfterPickup)
MWL_IDItemsAfterPickup();
return true;
}
function NTT_SecondTomeTP(npc, type, amount)
{
var _items;
var _counter = 0;
if(arguments.length < 1)
return false;
if(arguments.length < 2)
type = 0;
if(arguments.length < 0)
amount = 1;
if(amount == 0)
return false;
if(type)
_items = npc.GetItems("tbk");
if(_items)
{
if(_items.length > 0)
{
for(var i = 0 ; i < amount ; i++)
{
if(NTT_ShopItem(_items[0], npc, 2))
_counter++;
}
}
}
return (_counter > 0);
}
da alles andere problemlos funktioniert, schließe ich fehler in der gürtel- oder pickit-konfiguration eigentlich aus...
|
Ändere die rot markierte Zeile mal wie oben angegeben ab.
LG
Muddy
|
|
|
05/05/2011, 19:17
|
#1705
|
elite*gold: 0
Join Date: Apr 2011
Posts: 89
Received Thanks: 30
|
danke, nun klappts
gibt es von dir eigentlich auch schon eine lösung für das crafting-problem ("bot sammelt ringe bis zum umfallen)? kam ja letzte tage schonmal auf
|
|
|
05/05/2011, 19:19
|
#1706
|
elite*gold: 5
Join Date: Apr 2010
Posts: 689
Received Thanks: 151
|
Habe jetzt den Post durchgelesen wie man den Leechbot in das Script involviert, nur leider macht mir der Leecher Account ein error.
Könnte e.v.t jemand seine funktionierende mit Leechbot integrierte NTBot.ntj hochladen?
besten dank
|
|
|
05/05/2011, 19:22
|
#1707
|
elite*gold: 0
Join Date: Mar 2008
Posts: 23
Received Thanks: 7
|
Quote:
Originally Posted by Derbeth
Habe jetzt den Post durchgelesen wie man den Leechbot in das Script involviert, nur leider macht mir der Leecher Account ein error.
Könnte e.v.t jemand seine funktionierende mit Leechbot integrierte NTBot.ntj hochladen?
besten dank 
|
Wie meinste er macht nen error ?
Für die leechenden Accounts benutz ich die BotLeech.ntj.
Ich könnte dir notfalls mein komplettes D2NT uppen.
lg
|
|
|
05/05/2011, 19:24
|
#1708
|
elite*gold: 5
Join Date: Apr 2010
Posts: 689
Received Thanks: 151
|
Quote:
Originally Posted by thekarx
Wie meinste er macht nen error ?
Für die leechenden Accounts benutz ich die BotLeech.ntj.
Ich könnte dir notfalls mein komplettes D2NT uppen.
lg
|
Habe ich jetzt was verpasst?
Hab gedacht ich hätte fast den gesammten Post durchgeschaut?
Ich dachte man lässt den Leecher ebenfalls über die NTbot laufen und der erkennt an der Einstellung wer der Leecher ist ober leechen soll oder normal botten?
|
|
|
05/05/2011, 19:37
|
#1709
|
elite*gold: 0
Join Date: Mar 2008
Posts: 23
Received Thanks: 7
|
Quote:
Originally Posted by Derbeth
Habe ich jetzt was verpasst?
Hab gedacht ich hätte fast den gesammten Post durchgeschaut?
Ich dachte man lässt den Leecher ebenfalls über die NTbot laufen und der erkennt an der Einstellung wer der Leecher ist ober leechen soll oder normal botten?
|
Hm ja...... kann ja sein das es bei deinem Script so ist !
Bei dem was ich bei Muddys reingehauen hab benutzt man für die Leecher
als Entry die BotLeech.ntj.
Wo haste denn das Leechscript her ?
Kannst mir ja mal den Link posten dann guck ich gerne nach.
Lg karx
|
|
|
05/05/2011, 19:44
|
#1710
|
elite*gold: 5
Join Date: Apr 2010
Posts: 689
Received Thanks: 151
|
Na hier:
Wenn du ne andere möglichkeit für Muddy's hast is mir das auch recht, mir gehts nur darum, ich will kein Sandboxy oder irgendwas verwenden und alles auf einem Manager haben. Deshalb such ich Baal Leechbot für Muddys...
|
|
|
 |
|
Similar Threads
|
[Release] D2NT 3.1 1.13c
07/17/2016 - Diablo 2 - 91 Replies
hi,
hab eben den d2nt3.1 gefunden. ein neues baba script is dabei.
release thread eon
D2NT3.1
|
[Realease] Muddy's Waypoint Catcher
08/21/2013 - Diablo 2 Programming - 46 Replies
Moin zusammen,
hier mal die erste Release Version eines kleinen Scripts genannt Waypoint Catcher. Das ganze ist jetzt nichtmal 24h alt, dementsprechend sind vermutlich noch einige Bugs vorhanden. Hinweise dazu nehme ich gerne entgegen. ;)
Features:
- Suchen sämtlicher Wegpunkte mit Ausnahme, wobei in Akt ein durch Probleme im Jail Bereich nach dem Wegpunkt Outer Cloister abgebrochen wird
- Wahlweise auch mit TP an jedem gefundenen Wp, sodass man damit auch anderen (nicht-Bots) die...
|
[D2NT] Long Dia Release
05/10/2011 - Diablo 2 Programming - 28 Replies
Ein kleines Script für diablo, es startet beim eingang macht ein tp cleart den weg zum star macht am star noch ein tp dann läufts wie das normale nur cleart es schöner :)
hoffe euch gefällts ich habs noch nicht wirklich getestet (2-3 runs) bugs können gerne hier gepostet werden verbesserungs vorschläge auch :D
installation:
1.)Script in den Bot ordner kopieren
2.)Script im editor oder vergleichbaren öffnen
3.) Msg´s anpassen (ist nicht schwer)
4.) in der char config die zeile...
|
D2NT 3.0 Pickit release
10/22/2010 - Diablo 2 - 77 Replies
edit
|
Muddy's D2NT Help
07/29/2010 - Diablo 2 - 3 Replies
hi i just started to use the bot it work's great.
how do i set up the skill's i use on my Sorc and pick up itme's?
.....
if you reply to this post please use english
|
All times are GMT +1. The time now is 21:21.
|
|