Q: Why does my char join a game and then leave it right away without doing anything?
There are basically two things that can cause this issue:
1. Exit on missing password
There is actually a common D2NT bug that causes your bot to create a public game even though he is supposed to create a private game. Especially in HC, this can be a major problem which is why there is a variable that makes your bot leave a game right after joining.
This is of course only useful if you actually want your bot to run private games, but can be quite annoying when actually doing public runs. To deactivate this, just set the corresponding variable in your char config (NTConfig_<YourCharClass>_<YourCharName>.ntl) to false as illustrated in the snippet below:
2. No scripts activated
It's mostly people who are not into programming who tend to give themselves an even harder time by editing configs without using proper tools, i.e. an editor that supports syntax highlighting for JavaScript. I highly recommend using a proper editor like [Only registered and activated users can see links. Click Here To Register...] for editing files written in JavaScript.
When using a proper editor, your char config should look like this:
As you can clearly see, only the scripts in your current schedule are actually activated. The scripts below that, in the list of available scripts, are all commented out by a block comment. To activate a script, copy a full line from this list into to your current schedule. Having a proper editor, you will instantly see that the copied line is no longer commented out and will be executed.
Note that changes to your script schedule will not take effect until your char joins another game.
There are basically two things that can cause this issue:
- You set your bot to exit a game on missing password, but created or joined a public games.
- You did not activate any bot scripts.
1. Exit on missing password
There is actually a common D2NT bug that causes your bot to create a public game even though he is supposed to create a private game. Especially in HC, this can be a major problem which is why there is a variable that makes your bot leave a game right after joining.
This is of course only useful if you actually want your bot to run private games, but can be quite annoying when actually doing public runs. To deactivate this, just set the corresponding variable in your char config (NTConfig_<YourCharClass>_<YourCharName>.ntl) to false as illustrated in the snippet below:
Code:
[Color=Green]//------------------------------------------------------------------------------[/Color] [Color=Green]// General Configuration[/Color] [Color=Green]//------------------------------------------------------------------------------[/Color] [Color=Green]// 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.[/Color] MWConfig_ExitGameOnMissingPassword = [B][I][Color=Navy]false[/Color][/I][/B];
It's mostly people who are not into programming who tend to give themselves an even harder time by editing configs without using proper tools, i.e. an editor that supports syntax highlighting for JavaScript. I highly recommend using a proper editor like [Only registered and activated users can see links. Click Here To Register...] for editing files written in JavaScript.
When using a proper editor, your char config should look like this:
Code:
[COLOR="Teal"]/** * This file was modified by [Only registered and activated users can see links. Click Here To Register...] * Check the programming section for updates and further scripts * Last Update: 23:10] 29.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. */[/COLOR] Include([Color=Gray]"NTBot/char_configs/MWConfig_GlobalSettings.ntl"[/Color]); [B][I][Color=Navy]function[/Color][/I][/B] NT_LoadConfig() { MW_LoadGlobalSettings(); [Color=Green]//------------------------------------------------------------------------------[/Color] [Color=Green]//[/Color] [Color=Green]// Run Configuration[/Color] [Color=Green]//[/Color] [Color=Green]//------------------------------------------------------------------------------[/Color] [Color=Green]// Use the following syntax for activating botscripts: MWConfig_Script.push([<ScriptName>, <Script runtime in minutes (0 is infinite)>]);[/Color] [Color=Green]// ***************** Current schedule ******************[/Color] MWConfig_Script.push([[Color=Gray]"NTAndariel.ntj"[/Color], [Color=Red]5[/Color]]); MWConfig_Script.push([[Color=Gray]"NTMausoleum.ntj"[/Color], [Color=Red]10[/Color]]); MWConfig_ClearPathSpectypes.Mausoleum = [Color=Red]0[/Color]; MWConfig_ClearAreaSpectypes.Mausoleum = [Color=Red]0x01[/Color]; NTConfig_KillBloodRaven = [B][I][Color=Navy]true[/Color][/I][/B]; MWConfig_Script.push([[Color=Gray]"NTPit.ntj"[/Color], [Color=Red]10[/Color]]); MWConfig_ClearPathSpectypes.Pit = [Color=Red]0[/Color]; MWConfig_ClearAreaSpectypes.Pit = [Color=Red]0x01[/Color]; NTConfig_ClearPitLevel1 = [Color=Red]2[/Color]; [Color=Green]// 0 : don't clear, 1 : clear path only, 2 : clear all[/Color] MWConfig_Script.push([[Color=Gray]"NTCountess.ntj"[/Color], [Color=Red]5[/Color]]); MWConfig_ClearPathSpectypes.Countess = [Color=Red]0[/Color]; MWConfig_ClearAreaSpectypes.Countess = [Color=Red]0[/Color]; MWConfig_Script.push([[Color=Gray]"NTSummoner.ntj"[/Color], [Color=Red]5[/Color]]); NTConfig_KillFireEye = [B][I][Color=Navy]false[/Color][/I][/B]; MWConfig_ClearPathSpectypes.Summoner = [Color=Red]0[/Color]; MWConfig_Script.push([[Color=Gray]"NTAncientTunnels.ntj"[/Color], [Color=Red]10[/Color]]); MWConfig_ClearPathSpectypes.AncientTunnels = [Color=Red]0x01[/Color]; MWConfig_ClearAreaSpectypes.AncientTunnels = [Color=Red]0x01[/Color]; MWConfig_Script.push([[Color=Gray]"MWKurastSewers.ntj"[/Color], [Color=Red]5[/Color]]); MWConfig_ClearPathSpectypes.KurastSewers = [Color=Red]0[/Color]; MWConfig_Script.push([[Color=Gray]"NTTravincal.ntj"[/Color], [Color=Red]5[/Color]]); MWConfig_Script.push([[Color=Gray]"NTMephisto.ntj"[/Color], [Color=Red]5[/Color]]); MWConfig_OpenMephistoChest = [B][I][Color=Navy]true[/Color][/I][/B]; MWConfig_MephistoClearArea = [B][I][Color=Navy]false[/Color][/I][/B]; MWConfig_Script.push([[Color=Gray]"MWSuperChests.ntj"[/Color], [Color=Red]20[/Color]]); MWConfig_SuperChestClearAreaRadius = [Color=Red]5[/Color]; MWConfig_SuperChestAreas = [[Color=Gray]"Arachnid Lair"[/Color], [Color=Gray]"Swampy Pit Level 3"[/Color], [Color=Gray]"Flayer Dungeon"[/Color], [Color=Gray]"Abbadon"[/Color], [Color=Gray]"Pit of Acheron"[/Color], [Color=Gray]"Drifter Cavern"[/Color], [Color=Gray]"Infernal Pit"[/Color], [Color=Gray]"Icy Cellar"[/Color]]; MWConfig_Script.push([[Color=Gray]"NTNihlathak.ntj"[/Color], [Color=Red]5[/Color]]); MWConfig_ClearPathSpectypes.Nihlathak = [Color=Red]0[/Color]; NTConfig_PindleskinExtension = [B][I][Color=Navy]false[/Color][/I][/B]; MWConfig_SkipOnTombVipers = [B][I][Color=Navy]true[/Color][/I][/B]; MWConfig_Script.push([[Color=Gray]"NTBaal.ntj"[/Color], [Color=Red]10[/Color]]); NTConfig_KillBaal = [B][I][Color=Navy]true[/Color][/I][/B]; MWConfig_SkipBaalOnDolls = [B][I][Color=Navy]true[/Color][/I][/B]; MWConfig_SkipBaalOnSouls = [B][I][Color=Navy]false[/Color][/I][/B]; MWConfig_DoBaalPreAttack = [B][I][Color=Navy]true[/Color][/I][/B]; MWConfig_Script.push([[Color=Gray]"NTDiablo.ntj"[/Color], [Color=Red]10[/Color]]); MWConfig_KillFullInfectorMob = [B][I][Color=Navy]true[/Color][/I][/B]; MWConfig_StartAtStar = [B][I][Color=Navy]false[/Color][/I][/B]; MWConfig_IgnoreSealOpeningErrors = [B][I][Color=Navy]false[/Color][/I][/B]; MWConfig_FastDia = [B][I][Color=Navy]true[/Color][/I][/B]; [Color=Green]// *****************************************************[/Color] [Color=Green]//------------------------------------------------------------------------------[/Color] [Color=Green]// Available Scripts[/Color] [Color=Green]//------------------------------------------------------------------------------[/Color] [COLOR="Green"]/* 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_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_PauseOnKeptTorch = 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; MWConfig_IgnoreSealOpeningErrors = true; NTConfig_Leader = "LeaderNameGoesHere"; 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"; */[/COLOR] [Color=Green]// [...][/Color] }
Note that changes to your script schedule will not take effect until your char joins another game.