ich kriege den bot nicht zum laufen...
der leader geht ins game und fängt an mit dem run...
der cofighter/leecher geht in den chat checkt einmal die friendslist und sonst passiert nichts mehr....
hier die nobotleech:
Code:
/** * This file was modified byand
* Check the programming section for updates and further scripts * Last Update: 15:34 20.08.2011 */ var DelayedJoinChars = new Array(); //################################################################### //##############################Settings############################# //################################################################### var LeaderAccountName = "w3574"; var LeaderName = "SSSSmite"; var GamePassword = ""; var JoinGameAgain = false; // Set to true to re-enter the same game after chicken or disconnect. var UseCDKeyChangeTrick = false; // Set to true to use multiple CD Keys var JoinRandomChannel = true; var JoinChannelInChat = ""; var FirstJoinMessage = ""; // Message to post right after joining chat. Set to "" not to post any message. var ChatMessageAfterGame = ""; // Message to post when joining chta after a game. Set to "" not to post any message. // If multiple leechers are to join the same game, they should do it slightly time shifted in order to avoid join bugs. // Enter the names of your accounts OR chars below: DelayedJoinChars.push("LeecherOne", "LeecherTwo", "LeecherThree"); //################################################################### //##############################Delays############################### //################################################################### var GameMinLength = 180000; // realm delays (minutes) var UnableToConnectRetry = 2; var RealmDownRetry = 60; var DisconnectedRetry = 2; var CdKeyInUseRetry = 2; // interface delays (milliseconds) var MultipleLeecherJoinDelay = 1000; var JoinDelay = 100; var ConnectingToBnetTimeout = 20000; var CharacterScreenTimeout = 10000; var PleaseWaitTimeout = 10000; var CreateGameThreshold = 10000; var CreateGameThresholdRandom = 1000; var CreateGameTimeout = 15000; var WaitInLineTimeout = 15000; var CharacterSelectDelay = 5000 var LoginDelay = 1000; var ClickDelay = 500; var TextDelay = 500; var ClickDelayRandom = 500; var TextDelayRandom = 500; var GameDoesNotExistDelayMin = 600000; var GameDoesNotExistDelayMax = 900000; var GameDoesNotExistTimeout = 30000; var WaitBeforeEnterChatMin = 1000; var WaitBeforeEnterChatMax = 2000; var WaitInChatBeforeActionsMin = 2000; var WaitInChatBeforeActionsMax = 3000; //################################################################### //################################################################### //###############DO NOT CHANGE ANYTHING BELOW THIS################### //################################################################### //################################################################### //D2NT Manager Command const D2NT_MGR_LOADING = 1; const D2NT_MGR_READY = 2; const D2NT_MGR_LOGIN = 3; const D2NT_MGR_CREATE_GAME = 4; const D2NT_MGR_INGAME = 5; const D2NT_MGR_RESTART = 6; const D2NT_MGR_CHICKEN = 7; const D2NT_MGR_PRINT_STATUS = 8; const D2NT_MGR_PRINT_LOG = 9; var LastGameMade = GetTickCount(); var LastGameStatus = 0; var NextGameMake = 0; var InGameAt = 0; var ChatActionsDone = false; var LastGameFailed = false; var SayChatMsgAfterGame = true; Include("libs/controlInfo.ntl"); var ControlData = new controlInfo(); var SameGame = ""; var OldGame = ""; var Game = ""; var Debug = false; var JoinChatAfterGame = true; function NTMain() { Delay(1000); var _ingame = false; ControlData.ClickDelay = ClickDelay; ControlData.TextDelay = TextDelay; ControlData.ClickDelayRandom = ClickDelayRandom; ControlData.TextDelayRandom = TextDelayRandom; while(1) { if(me.ingame) { OldGame = me.gamename; if(!InGameAt) InGameAt = GetTickCount(); if(!_ingame) { RunGC(); // run garbage collector between each game if(Load("NTBot/MWBotGame.ntj")) { _ingame = true; if(me.playtype > 0) sendEventToOOG(D2NT_MGR_INGAME, "In Game[IP:" + me.gameserverip.split(".")[3] + "]", 0); else sendEventToOOG(D2NT_MGR_INGAME, "In Game", 0); LastGameStatus = 2; // in game successful } } Delay(1000); } else { if(_ingame) { _ingame = false; SayChatMsgAfterGame = true; sendEventToOOG(D2NT_MGR_READY, "", 0); } locationAction(ControlData.getLocation()); Delay(500); } } } function locationAction(location) { var _randomChannel, _leaderFound, _lines, _msg, _msgLines, _lineIndex, _chat, _regGameNameWhispered, _regOffline, _regInChat, _regGameName;; switch(location.id) { case 3: // Lobby Chat sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0); if(!ChatActionsDone) { ChatActionsDone = true; Delay(Random(WaitInChatBeforeActionsMin, WaitInChatBeforeActionsMax)); if(JoinRandomChannel || JoinChannelInChat != "") { SetStatusText("ÿc8Joining channel..."); Say("/join " + (JoinRandomChannel ? getRandomString(Random(3,10)) : JoinChannelInChat)); Delay(2000); } if(FirstJoinMessage) { Say(FirstJoinMessage); Delay(1000); } } if(SayChatMsgAfterGame) { if(ChatMessageAfterGame && OldGame != "") Say(ChatMessageAfterGame); SetStatusText("ÿc8Checking friendlist..."); Say("/f l"); SayChatMsgAfterGame = false; Delay(1500); } Game = ""; if(_chat = ControlData.get(ControlData.controls.lobby.chat.textBox.channelText)) { _leaderFound = false; _lines = _chat.GetText(); for(_lineIndex = _lines.length - 1; _lineIndex > -1; _lineIndex--) { if(_leaderFound) // useless... :/ break; if(_lines[_lineIndex].substring(0,1) == " ") continue; // retrieving the whole message _msg = _lines[_lineIndex].replace(/^\s+|\s+$/, ""); _msgLines = 1; while(_lines[_lineIndex + _msgLines] != undefined && _lines[_lineIndex+_msgLines].substring(0,2) == " ") { _msg += " " + _lines[_lineIndex + _msgLines].replace(/^\s+|\s+$/, ""); _msgLines++; } // checking if the _msg is a friendly whisper if(_msg.toLowerCase().lastIndexOf(LeaderName.toLowerCase() + " (*" + LeaderAccountName.toLowerCase() + ")") > -1) { _regGameNameWhispered = /^.*(game|partie|spiel|partita|partida).*(nomm[^\s]*|called|chiamata)\s*([\w\s-]*\w)\s*\.\s*$/gi; if(_msg.match(_regGameNameWhispered)) Game = _msg.replace(_regGameNameWhispered, "$3"); if(Game != "") { _leaderFound = true; break; } } // checking if the _msg is from the friend list if(_msg.toLowerCase().lastIndexOf(": " + LeaderAccountName.toLowerCase() + ",") > -1) { _leaderFound = true; _regOffline = /^.*(offline|desconectado).*$/gi; _regInChat = /^.*(channel|canale?)\s*([\w\s-]*\w)\.?\s*$/gi; _regGameName = /^.*(game|partie|spiel|partita|partida)\s*([\w\s-]*\w)\s*\(priv[^\)]*\)\.\s*$/gi; if(_msg.match(_regOffline)) SetStatusText("ÿc8Leader is currently offline."); else if(_msg.match(_regInChat)) SetStatusText("ÿc8Waiting for leader to create a game."); else if(_msg.match(_regGameName)) Game = _msg.replace(_regGameName, "$2"); break; } } if(!_leaderFound) { DebugInOOG("I couldn't find the leader in my friend list!"); SetStatusText("ÿc8Leader not found."); } if(Game != "") { DebugInOOG("Leader is in the game \"" + Game + "\""); //ControlData.click(ControlData.controls.lobby.button.join); //Delay(100); if(!JoinGameAgain) { if(Game != SameGame) { SetStatusText("ÿc8Joining Game: " + Game); if(UseCDKeyChangeTrick) { sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0); Delay(1000); } ControlData.click(ControlData.controls.lobby.button.join); Delay (200); } else SetStatusText("ÿc8Waiting for next game..."); } else { SetStatusText("ÿc8Joining Game: " + Game); if (UseCDKeyChangeTrick) { sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0); Delay(1000); } ControlData.click(ControlData.controls.lobby.button.join); Delay (200); } } } else DebugInOOG("I can\'t read the chat!"); if(Game != "") SameGame = Game; break; case 1: // Lobby if(location.id == 1 && JoinChatAfterGame) { Delay(Random(WaitBeforeEnterChatMin, WaitBeforeEnterChatMax)); ControlData.click(ControlData.controls.lobby.button.enterChat); break; } break; case 2: // Waiting In Line if(GetTickCount()-LastGameMade > WaitInLineTimeout) ControlData.click(ControlData.controls.lobby.inLine.button.cancel); break; case 4: // Create Game if(!ControlData.get(ControlData.controls.lobby.create.editBox.gameName)) { ControlData.click(ControlData.controls.lobby.button.join); Delay (500); ControlData.click(ControlData.controls.lobby.button.create); Delay (500); break; } sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0); locationTimeout(5000, location); LastGameMade = GetTickCount(); LastGameStatus = 1; // pending creation break; case 5: // Join Game if (Game) { ControlData.setText( ControlData.controls.lobby.join.editBox.gameName, Game); Delay(100); ControlData.setText( ControlData.controls.lobby.join.editBox.password, GamePassword); for(var i = 0; i < DelayedJoinChars.length; i++) { if(me.charname.toLowerCase() == DelayedJoinChars[i].toLowerCase() || me.account.toLowerCase() == DelayedJoinChars[i].toLowerCase()) { Delay(MultipleLeecherJoinDelay * i); break; } } Delay(JoinDelay); ControlData.click(ControlData.controls.lobby.join.button.joinGame); RunGC(); // run garbage collector between each game locationTimeout(5000, location); LastGameStatus = 1; // pending join } else { DebugInOOG("No game to join : cancelling"); me.Cancel(1); Delay(1000); } break; case 6: // Ladder break; case 7: // Channel List break; case 8: // Main Menu if(ControlData.getCurrentRealmIndex() == me.gatewayid) { outputGameLength(); ControlData.click(ControlData.gameTypes[me.playtype]); } else ControlData.click(ControlData.controls.mainMenu.button.gateway); break; case 9: // Login sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0); Delay(LoginDelay); ControlData.setText(ControlData.controls.login.editBox.accountName, me.account); sendEventToOOG(D2NT_MGR_LOGIN, location.name, 0); locationTimeout(5000, location); break; case 10: // Login Error (this is a fatal error, so stop) sendEventToOOG(D2NT_MGR_RESTART, location.name, 10); Delay(3500); break; case 11: // Unable To Connect timeoutDelay(UnableToConnectRetry*60*1000, location) ControlData.click(ControlData.controls.login.unableToConnect.button.ok); break; case 12: // Character Select var _time, _control; sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0); for(_time = 0 ; _time < CharacterScreenTimeout ; _time += 500) { _control = ControlData.get(ControlData.controls.characterSelect.textBox.characterInfo[me.charloc]); if(_control && _control.GetText() != undefined) break; Delay(500); } if(_time < CharacterScreenTimeout) { Delay(CharacterSelectDelay); ControlData.click(ControlData.controls.characterSelect.textBox.characters[me.charloc], 0, 0, 1); ControlData.click(ControlData.controls.characterSelect.textBox.characterInfo[me.charloc], 0, 0, 1); // reset last game made, so it doesnt make a game immediately InGameAt = 0; setNextGameMake(); } else { ControlData.click(ControlData.controls.characterSelect.button.exit); timeoutDelay(RealmDownRetry*60*1000, location); } break; case 13: // Realm Down - Character Select screen ControlData.click(ControlData.controls.characterSelect.button.exit); timeoutDelay(RealmDownRetry*60*1000, location); break; case 14: // Character Select - Disconnected timeoutDelay(DisconnectedRetry*60*1000, location); ControlData.click(ControlData.controls.characterSelect.disconnected.button.ok); break; case 15: // New Character break; case 16: // Character Select - Please Wait popup if(!locationTimeout(PleaseWaitTimeout, location)) ControlData.click(ControlData.controls.characterSelect.pleaseWait.button.cancel); break; case 17: // Lobby - Lost Connection - just click okay, since we're toast anyway ControlData.click(ControlData.controls.lobby.lostConnection.button.ok); break; case 18: // D2 Splash ControlData.click(ControlData.controls.d2Splash.textBox.copyright); break; case 19: // Login - Cdkey In Use timeoutDelay(CdKeyInUseRetry*60*1000, location); ControlData.click(ControlData.controls.login.cdkeyInUse.button.ok); break; case 20: // Single Player - Select Difficulty ControlData.click(ControlData.singlePlayerDifficulties[me.diff]); break; case 21: // Main Menu - Connecting if(!locationTimeout(ConnectingToBnetTimeout, location)) ControlData.click(ControlData.controls.mainMenu.connecting.button.cancel); break; case 22: // Login - Invalid Cdkey (classic or xpac) sendEventToOOG(D2NT_MGR_RESTART, location.name, 3600); Delay(3500); break; case 23: // Character Select - Connecting if(!locationTimeout(CharacterScreenTimeout, location)) ControlData.click(ControlData.controls.characterSelect.button.exit); break; case 24: // Server Down - not much to do but wait.. break; case 25: // Lobby - Please Wait if(!locationTimeout(PleaseWaitTimeout, location)) ControlData.click(ControlData.controls.lobby.pleaseWait.button.cancel); break; case 26: // Lobby - Game Name Exists sendEventToOOG(D2NT_MGR_PRINT_LOG, "yE00000Game already exists", 0); InGameAt = 0; LastGameStatus = 0; setNextGameMake(); locationTimeout(15000, location); break; case 27: // Gateway Select ControlData.clickRealmEntry(me.gatewayid); ControlData.click(ControlData.controls.gateway.button.ok); break; case 28: // Lobby - Game Does Not Exist InGameAt = Random(GameDoesNotExistDelayMin, GameDoesNotExistDelayMax); LastGameStatus = 0; setNextGameMake(); locationTimeout(GameDoesNotExistTimeout, location); break; default: DebugInOOG("Unhandled location : "+location.id); break; } //DebugInOOG("Location : "+location.id); } function sendEventToOOG(locationId, statusString, pendingTime) { return SendCopyData("D2NT Manager", null, (locationId<<16)|pendingTime, statusString); } function setNextGameMake() { LastGameMade = GetTickCount(); NextGameMake = LastGameMade + CreateGameThreshold + Random(0-CreateGameThresholdRandom, CreateGameThresholdRandom) + InGameAt; InGameAt = 0; ChatActionsDone = false; } function outputGameLength() { if(InGameAt) { duration = GetTickCount() - InGameAt; InGameAt = (duration < GameMinLength ? GameMinLength - duration : 0); } } function locationTimeout(time, location) { endtime = GetTickCount() + time; while(ControlData.getLocation().id == location.id && endtime > GetTickCount()) { sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name + " (" + parseInt((endtime-GetTickCount())/1000) + "s)", 0); Delay(500); } return (ControlData.getLocation().id != location.id); } function timeoutDelay(time, location) { endtime = GetTickCount() + time; while(endtime > GetTickCount()) { sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name + " (" + parseInt((endtime-GetTickCount())/1000) + "s)", 0); Delay(1000); } } function getRandomString(_length) { _retString = ""; _charSet = "0123456789abcdefghijklmnopqrstuvwxyz"; while(_length--) { _retString += _charSet.charAt(Random(0, _charSet.length-1)); Delay(1); } return _retString; } function DebugInOOG(logString) { if (Debug) return SendCopyData("D2NT Manager", null, 9<<16, "-- Debug : " + logString); else return false; }
Code:
/** * This file was modified by* Check the programming section for updates and further scripts * Last Update: 17:46 17.08.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! * Backspace Force trigger auto mule. NOTE: Won't work unless auto mule is actually activated for the current char. */ 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(["NTDiabloLeechFight.ntj", 10]); MWConfig_StartAtStar = true; MWConfig_EnterUnsafeTP = true; NTConfig_PreBuff = true; NTConfig_Leader = "SSSSmite"; // If the Leecher should go to a WP and buff up before he goes into the TP. (Needs River of Flame WP for Diablo and Frigid Highlands WP for Baal) MWConfig_Script.push(["NTBaalLeechFight.ntj", 10]); NTConfig_KillBaal = true; MWConfig_DoBaalPreAttack = true; MWConfig_EnterUnsafeTP = true; NTConfig_Leader = "SSSSmite"; MWConfig_Script.push(["NTPit.ntj", 10]); MWConfig_ClearPathSpectypes.Pit = 0; MWConfig_ClearAreaSpectypes.Pit = 0x01; NTConfig_ClearPitLevel1 = 0; // 0 : don't clear, 1 : clear path only, 2 : clear all // ***************************************************** //------------------------------------------------------------------------------ // Available Scripts //------------------------------------------------------------------------------ /* NOTE: // The scripts below are actually commented out; to add a script, copy one of the lines below and add it to the current schedule above. ;) // You should also get yourself a decent editor that supports syntax highlighting for JavaScript, I'd recommend Notepad++. (http://notepad-plus-plus.org/download/) // *********************** Act I *********************** MWConfig_Script.push(["NTMausoleum.ntj", 10]); MWConfig_ClearPathSpectypes.Mausoleum = 0; MWConfig_ClearAreaSpectypes.Mausoleum = 0x01; NTConfig_KillBloodRaven = true; MWConfig_Script.push(["NTTristram.ntj", 10]); NTConfig_KillRakanishu = true; MWConfig_Script.push(["NTHole.ntj", 10]); MWConfig_ClearPathSpectypes.Hole = 0; MWConfig_ClearAreaSpectypes.Hole = 0x01; NTConfig_ClearHoleLevel1 = 1; // 0 : don't clear, 1 : clear path only, 2 : clear all MWConfig_Script.push(["NTTreehead.ntj", 10]); MWConfig_Script.push(["MWColdcrow.ntj", 10]); MWConfig_ClearCaveMode = 0; // 0: Only kill coldcrow; 1: Clear Cave Level 1; 2: Clear both Cave Level 1 & 2 MWConfig_Script.push(["NTCountess.ntj", 5]); MWConfig_ClearPathSpectypes.Countess = 0; MWConfig_ClearAreaSpectypes.Countess = 0; MWConfig_Script.push(["NTPit.ntj", 10]); MWConfig_ClearPathSpectypes.Pit = 0; MWConfig_ClearAreaSpectypes.Pit = 0x01; NTConfig_ClearPitLevel1 = 2; // 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_ClearPathSpectypes.Radament = 0; MWConfig_Script.push(["MWMaggotsLair.ntj", 10]); MWConfig_ClearPathSpectypes.MaggotsLair = 0; MWConfig_ClearAreaSpectypes.MaggotsLair = 0x01; MWConfig_Script.push(["NTAncientTunnels.ntj", 10]); MWConfig_ClearPathSpectypes.AncientTunnels = 0; MWConfig_ClearAreaSpectypes.AncientTunnels = 0x01; MWConfig_Script.push(["NTSummoner.ntj", 5]); NTConfig_KillFireEye = false; MWConfig_ClearPathSpectypes.Summoner = 0; MWConfig_Script.push(["NTDuriel.ntj", 10]); MWConfig_ClearPathSpectypes.Duriel = 0; // ********************** Act III ********************** MWConfig_Script.push(["MWFlayerJungle.ntj", 10]); MWConfig_ClearAreaSpectypes.FlayerJungle = 0x01; MWConfig_Script.push(["MWKurastSewers.ntj", 5]); MWConfig_ClearPathSpectypes.KurastSewers = 0; MWConfig_Script.push(["MWKurastTemples.ntj", 5]) MWConfig_ClearPathSpectypes.KurastTemples = 0; MWConfig_ClearAreaSpectypes.KurastTemples = 0x01; 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_ClearPathSpectypes.Izual = 0; MWConfig_Script.push(["MWRiverOfFlame.ntj", 10]); MWConfig_ClearAreaSpectypes.RiverOfFlame = 0x01; MWConfig_Script.push(["NTHephasto.ntj", 10]); MWConfig_ClearPathSpectypes.Hephasto = 0; MWConfig_Script.push(["NTDiablo.ntj", 10]); MWConfig_KillFullInfectorMob = true; MWConfig_StartAtStar = false; MWConfig_IgnoreSealOpeningErrors = false; MWConfig_FastDia = true; // *********************** Act V *********************** MWConfig_Script.push(["MWAbbadon.ntj", 10]); MWConfig_ClearPathSpectypes.Abbadon = 0; MWConfig_ClearAreaSpectypes.Abbadon = 0x01; MWConfig_Script.push(["MWPitOfAcheron.ntj", 10]); MWConfig_ClearPathSpectypes.PitOfAcheron = 0; MWConfig_ClearAreaSpectypes.PitOfAcheron = 0x01; MWConfig_Script.push(["MWInfernalPit.ntj", 10]); MWConfig_ClearPathSpectypes.InfernalPit = 0; MWConfig_ClearAreaSpectypes.InfernalPit = 0x01; MWConfig_Script.push(["MWHallsOfPain.ntj", 15]); MWConfig_ClearAreaSpectypes.HallsOfPain = 0x01; MWConfig_ClearHallsOfAnguish = true; MWConfig_Script.push(["NTPindleskin.ntj", 5]); NTConfig_NihlathakExtension = false; MWConfig_SkipOnTombVipers = true; MWConfig_Script.push(["NTEldritch.ntj", 5]); NTConfig_ShenkExtension = true; MWConfig_Script.push(["NTThreshSocket.ntj", 5]); MWConfig_ClearPathSpectypes.ThreshSocket = 0; MWConfig_Script.push(["NTFrozenRiver.ntj", 10]); MWConfig_ClearPathSpectypes.FrozenRiver = 0; MWConfig_ClearAreaSpectypes.FrozenRiver = 0x01; MWConfig_Script.push(["NTGlacialTrail.ntj", 10]); MWConfig_ClearPathSpectypes.GlacialTrail = 0; MWConfig_ClearAreaSpectypes.GlacialTrail = 0x01; MWConfig_Script.push(["NTIcyCellar.ntj", 5]); MWConfig_ClearPathSpectypes.IcyCellar = 0; MWConfig_ClearAreaSpectypes.IcyCellar = 0x01; MWConfig_Script.push(["NTNihlathak.ntj", 5]); MWConfig_ClearPathSpectypes.Nihlathak = 0; NTConfig_PindleskinExtension = false; MWConfig_SkipOnTombVipers = true; MWConfig_Script.push(["MWWorldstoneKeep.ntj", 10]); MWConfig_ClearAreaSpectypes.WorldstoneKeep = 0x01; 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(["MWAuraStack.ntj", 10]); MWConfig_StackRepetitions = 100; 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; MWConfig_Script.push(["MWAnyasBargain.ntj", 10]); MWConfig_ShoppingMinGold = 500000; MWConfig_ShoppingAttempts = 200; // ************ Leech and friends by lanara ************ MWConfig_Script.push(["NTDiabloLeechFight.ntj", 10]); MWConfig_StartAtStar = true; MWConfig_EnterUnsafeTP = true; NTConfig_PreBuff = true; NTConfig_Leader = "LeaderNameGoesHere"; // If the Leecher should go to a WP and buff up before he goes into the TP. (Needs River of Flame WP for Diablo and Frigid Highlands WP for Baal) MWConfig_Script.push(["NTBaalLeech.ntj", 10]); NTConfig_KillBaal = true; MWConfig_EnterUnsafeTP = false; NTConfig_Leader = "LeaderNameGoesHere"; MWConfig_Script.push(["NTBaalLeechFight.ntj", 10]); NTConfig_KillBaal = true; MWConfig_DoBaalPreAttack = true; MWConfig_EnterUnsafeTP = true; NTConfig_Leader = "LeaderNameGoesHere"; */ //------------------------------------------------------------------------------ // 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 = 1; // Drink a rejuvenation potion if under this percent of mana. NTConfig_MercLifeThresh = 50; // 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 = 30; // 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; // Whether or not to disable chicken when you pause the bot. MWConfig_DisableChickenOnPause = true; //------------------------------------------------------------------------------ // Inventory Configuration //------------------------------------------------------------------------------ // 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] = [0,1,1,1,1,0,0,0,0,0]; NTConfig_Columns[1] = [0,1,1,1,1,0,0,0,0,0]; NTConfig_Columns[2] = [0,1,1,1,1,0,0,0,0,0]; NTConfig_Columns[3] = [0,1,1,1,1,2,0,0,0,0]; // Number of free columns. If less full columns are free stashing is set. Call SetFreeColumns(NTConfig_Columns) to always stash right away (recommended). NTConfig_FreeSpace = SetFreeColumns(NTConfig_Columns); // Maximum gold amount carried before going to stash. NTConfig_MinGoldToStash = 100000; // 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 //------------------------------------------------------------------------------ // Available types : "hp" = health, "mp" = mana, "rv" = rejuvenation. // Define how many columns are used for each potion type. MWConfig_BeltColType["hp"].Columns = 1; MWConfig_BeltColType["mp"].Columns = 1; MWConfig_BeltColType["rv"].Columns = 2; // Define minimum number of potions per column. If the actual number of potions in a column is below this value, your char will visit a merchant when in town in order to buy potions. MWConfig_BeltColType["hp"].MinPots = 3; MWConfig_BeltColType["mp"].MinPots = 3; // 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. (Recommended value to avoid crashes: false) MWConfig_PickItemsInstantly = false; //------------------------------------------------------------------------------ // Chest Configuration //------------------------------------------------------------------------------ // Select which containers shall be looted. 0: None; 1: Super Chests, 2: All MWConfig_OpenContainerMode = 2; // 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 = true; // 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 = true; // 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 = 6000; // 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; //------------------------------------------------------------------------------ // Automule Configuration //------------------------------------------------------------------------------ // Set to true to enable auto mule. MWConfig_Automule.Activated = false; // The maximum stash load in percent before auto mule is triggered. MWConfig_Automule.MaxLoad = 95; // Set to true to show your stash's current load whenever managing stash. MWConfig_Automule.ShowCurrentLoad = true; // Set to true to finish your current game before muling, otherwise the game is left right away in case your stash is full. MWConfig_Automule.FinishGame = true; // Define which items are not to be touched when muling. MWConfig_Automule.DontMule.push("mule/dont_mule.nip"); MWConfig_Automule.DontMule.push("mule/gems.nip"); //------------------------------------------------------------------------------ // 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_SHIVER_ARMOR, MWS_ENCHANT]; // 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] = 49; // Cast your first spell once. Set to 0 if you won't NTConfig_AttackSkill[1] = 49; // Cast your primary spell to boss. NTConfig_AttackSkill[2] = 53; // Cast your primary spell to others. NTConfig_AttackSkill[3] = 0; // Cast your primary untimed spell if primary spell is timed spell. Set to 0 if you won't NTConfig_AttackSkill[4] = 0; // Cast your secondary spell if monster is immune to your primary spell. Set to 0 if you won't NTConfig_AttackSkill[5] = 0; // Cast your secondary untimed spell if secondary spell is timed spell. Set to 0 if you won't // 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 = 50; // 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 = []; // 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 = 0; NTConfig_AttackSkill[8] = 49; // Skill to be used against user defined immunes. NTConfig_AttackSkill[9] = 49; // 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>); // Select whether or not you'd like to swap slots right before killing a boss in order to benefit from some extra MF in your second slot. // The first element can either be the classid of the target or its name (case insensitive), second element is the life threshold in percent. //MWConfig_SlotSwapMonsters.push([156, 50]); // Andariel, 50% //MWConfig_SlotSwapMonsters.push([211, 20]); // Duriel, 20% //MWConfig_SlotSwapMonsters.push([242, 20]); // Mephisto, 20% //MWConfig_SlotSwapMonsters.push([243, 20]); // Diablo, 20% //MWConfig_SlotSwapMonsters.push([544, 15]); // Baal, 15% // 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 }
acc name in der ntbotleech ist richtig -.-





and 
