|
You last visited: Today at 07:10
Advertisement
[Release] Muddy's D2NT
Discussion on [Release] Muddy's D2NT within the Diablo 2 Programming forum part of the Diablo 2 category.
07/19/2013, 21:14
|
#7051
|
elite*gold: 0
Join Date: Jan 2009
Posts: 3,170
Received Thanks: 1,191
|
Quote:
Originally Posted by Gazi61
ok und findet der nur eth armors oder wieso steht bei den meisten ethereal?
PHP Code:
// ##### Armor #########################
[Type] == armor && [Class] == elite && [Quality] == normal && [Flag] == ethereal # [Defense] >= 550 && [Sockets] <= 0 // Bugable armors
[Name] == MagePlate && [Quality] == superior && [Flag]!= ethereal # [EnhancedDefense] >= 10 && ([Sockets] == 0 || [Sockets] >= 3) // Enigma socketable
[Name] == ArchonPlate && [Quality] == superior && [Flag]!= ethereal # [EnhancedDefense] >= 5 && ([Sockets] == 4 || [Sockets] == 0) || [Sockets] == 3 && [EnhancedDefense] >= 0 // Enigma/CoH/Forti socketable
[Name] == DuskShroud && [Quality] == superior && [Flag]!= ethereal # [EnhancedDefense] >= 5 && ([Sockets] == 4 || [Sockets] == 0) || [Sockets] == 3 && [EnhancedDefense] >= 0 // Enigma/CoH/Forti socketable
[Name] == Wyrmhide && [Quality] == superior && [Flag]!= ethereal # [EnhancedDefense] >= 15 && [ItemMaxDurabilityPercent] >= 0 && ([Sockets] == 4 || [Sockets] == 0) || [Sockets] == 3 && [EnhancedDefense] >= 0 // Enigma/CoH/Forti socketable
[Name] == ScarabHusk && [Quality] == superior && [Flag]!= ethereal # [EnhancedDefense] >= 15 && [ItemMaxDurabilityPercent] >= 0 && ([Sockets] == 3 || [Sockets] == 4 || [Sockets] == 0) // Enigma/CoH/Forti socketable
[Name] == WireFleece && [Quality] == superior && [Flag]!= ethereal # [EnhancedDefense] >= 15 && [ItemMaxDurabilityPercent] >= 0 && ([Sockets] == 3 || [Sockets] == 4 || [Sockets] == 0) // Enigma/CoH/Forti socketable
[Type] == armor && [Class] == elite && [Quality] == superior && [Flag] != ethereal # [EnhancedDefense] >= 15 && [ItemMaxDurabilityPercent] >= 15 && ([Sockets] >= 3 || [Sockets] == 0) // Various 15/15 elite
[Name] == GothicPlate && [Quality] == superior && [Flag] != ethereal # [EnhancedDefense] >= 0 && [ItemMaxDurabilityPercent] >= 0 && [Sockets] == 3 // Enigma socketable
[Name] == SharktoothArmor && [Quality] == superior && [Flag] != ethereal # [EnhancedDefense] >= 0 && [ItemMaxDurabilityPercent] >= 0 && ([Sockets] == 3 || [Sockets] == 0)// Enigma Armor
[Type] == armor && [Quality] == superior && [Flag] != ethereal # [EnhancedDefense] == 0 && [ItemMaxDurabilityPercent] == 0 && [Sockets] == 3 // Various 15/15 Enigma socketables
[Type] == armor && [Quality] == normal # [Defense] >= 900 && [Sockets] >= 4 // Bugged socketable
|
[Flag] != ethereal entspricht NICHT ätherisch
[Flag] == ethereal entspricht ätherisch
|
|
|
07/20/2013, 12:46
|
#7052
|
elite*gold: 0
Join Date: Jul 2013
Posts: 28
Received Thanks: 5
|
Why does the bot freeze so much i use the process monitor and it still freezes i cant leave the bot on overnight as the freeze is so random could freeze after 1 run or 30, only time i notcied it freezes alot is if im running something else in the background.
Nevermind i fixed it changed to D2tray left bot on overnight not a single freeze
|
|
|
07/22/2013, 01:09
|
#7053
|
elite*gold: 0
Join Date: Mar 2008
Posts: 117
Received Thanks: 3
|
NT_LoadConfig is undefined: ja der error nervt mich schon seit ein paar Stunden
habe schon die FAQs gelesen, also die char_config ist richtig benannt.
NTConfig_Paladin_SomePaladin.ntl
deshalb habe ich diese mitgepostet, also es kommen 2 meldungen, einmal im NT Manager: AM Status not ready
und die NT_LoadConfig is undefined im Spiel und da steht NWBotGame.ntj (92)...
Code:
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs", false);
das mit dem item configs false ? evtl auf true stellen ?
danke im Voraus
Code:
/**
* This file was modified by
* 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.
*/
Include("NTBot/char_configs/MWConfig_GlobalSettings.ntl");
var NTConfig_UseRedemptionHP;
var NTConfig_UseRedemptionMP;
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", 5]);
MWConfig_Script.push(["NTMausoleum.ntj", 10]); MWConfig_ClearPathSpectypes.Mausoleum = 0; MWConfig_ClearAreaSpectypes.Mausoleum = 0x01; NTConfig_KillBloodRaven = true;
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(["NTCountess.ntj", 5]); MWConfig_ClearPathSpectypes.Countess = 0; MWConfig_ClearAreaSpectypes.Countess = 0;
MWConfig_Script.push(["NTSummoner.ntj", 5]); NTConfig_KillFireEye = false; MWConfig_ClearPathSpectypes.Summoner = 0;
MWConfig_Script.push(["NTAncientTunnels.ntj", 10]); MWConfig_ClearPathSpectypes.AncientTunnels = 0x01; MWConfig_ClearAreaSpectypes.AncientTunnels = 0x01;
MWConfig_Script.push(["MWKurastSewers.ntj", 5]); MWConfig_ClearPathSpectypes.KurastSewers = 0;
MWConfig_Script.push(["NTTravincal.ntj", 5]);
MWConfig_Script.push(["NTMephisto.ntj", 5]); MWConfig_OpenMephistoChest = true; MWConfig_MephistoClearArea = false;
MWConfig_Script.push(["MWSuperChests.ntj", 20]); MWConfig_SuperChestClearAreaRadius = 5; MWConfig_SuperChestAreas = ["Arachnid Lair", "Swampy Pit Level 3", "Flayer Dungeon", "Abbadon", "Pit of Acheron", "Drifter Cavern", "Infernal Pit", "Icy Cellar"];
MWConfig_Script.push(["NTNihlathak.ntj", 5]); MWConfig_ClearPathSpectypes.Nihlathak = 0; NTConfig_PindleskinExtension = true; MWConfig_SkipOnTombVipers = false;
MWConfig_Script.push(["NTBaal.ntj", 10]); NTConfig_KillBaal = true; MWConfig_SkipBaalOnDolls = true; MWConfig_SkipBaalOnSouls = true; MWConfig_DoBaalPreAttack = true;
MWConfig_Script.push(["NTDiablo.ntj", 10]); MWConfig_KillFullInfectorMob = true; MWConfig_StartAtStar = true; MWConfig_IgnoreSealOpeningErrors = false; MWConfig_FastDia = false;
// *****************************************************
//------------------------------------------------------------------------------
// 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 = true; MWConfig_IgnoreSealOpeningErrors = false; MWConfig_FastDia = false;
// *********************** 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 = true; MWConfig_SkipOnTombVipers = false;
//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 = true; MWConfig_SkipLevelOnDeathLords = true;
MWConfig_Script.push(["NTBaal.ntj", 10]); NTConfig_KillBaal = true; MWConfig_SkipBaalOnDolls = true; MWConfig_SkipBaalOnSouls = true; MWConfig_DoBaalPreAttack = true; MWConfig_ClearPathSpectypes.Baal = 0;
// *********************** Misc ************************
//MWConfig_Script.push(["MWAuraStack.ntj", 10]); MWConfig_StackRepetitions = 100; MWConfig_ResetMercWeaponAfterStacking = false;
//MWConfig_Script.push(["MWSuperChests.ntj", 20]); MWConfig_SuperChestClearAreaRadius = 5; 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";
*/
//------------------------------------------------------------------------------
// Misc Configuration
//------------------------------------------------------------------------------
NTConfig_SkipHealLife = 35; // If you have more than this percent of life, you won't go to a healer.
NTConfig_SkipHealMana = 27; // 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.
// Exit game or to reset your Enigma if Teleport skill is missing (due to identifying an item having +x to Teleport [Sorceress only]). WARNING: Activating this feature may - though not likely will - result in the loss of your enigma. Use at your own risk and make sure your char has sufficient strength!
// 0: Don't do anything; 1: Reset armor; 2: Exit game
MWConfig_ResetArmorMode = 2;
//------------------------------------------------------------------------------
// Potion Configuration
//------------------------------------------------------------------------------
NTConfig_LifeThresh = 60; // Drink a normal potion if under this percent of life.
NTConfig_LifeRejuvThresh = 45; // 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 = 25; // 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 = 40;
// 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] = [1,1,1,1,0,0,0,0,0,0];
NTConfig_Columns[1] = [1,1,1,1,0,0,0,0,0,0];
NTConfig_Columns[2] = [1,1,1,1,0,0,0,0,0,0];
NTConfig_Columns[3] = [1,1,1,1,0,0,0,0,0,2];
// 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 = 60000;
// 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 = 4;
MWConfig_BeltColType["mp"].Columns = 4;
MWConfig_BeltColType["rv"].Columns = 6;
// 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 = 1;
// 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 = false;
//------------------------------------------------------------------------------
// 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 = true;
// 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 = 2400000;
// 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 = 2400000;
//------------------------------------------------------------------------------
// 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(<areaid108>);
//------------------------------------------------------------------------------
// 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_HOLY_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] = -1; // This skill is used once whenever attacking a new target. Set to -1 to deactivate.
NTConfig_AttackSkill[1] = MWS_BLESSED_HAMMER; // Primary skill to bosses.
NTConfig_AttackSkill[2] = MWS_CONCENTRATION; // Primary aura to bosses. Set to -1 to deactivate.
NTConfig_AttackSkill[3] = MWS_BLESSED_HAMMER; // Primary skill to others.
NTConfig_AttackSkill[4] = MWS_CONCENTRATION; // Primary aura to others. Set to -1 to deactivate.
NTConfig_AttackSkill[5] = MWS_HOLY_BOLT; // Secondary skill in case monster is immune to primary skill. Set to 0 if you won't
NTConfig_AttackSkill[6] = MWS_CONCENTRATION; // Secondary aura. Set to 0 not to activate any aura.
NTConfig_AttackSkill[7] = -1; // Aura to be used against Uber Mephisto. Set to -1 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 = 12;
// 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] = 30; // 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] = 40; // 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, 3];
// 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.
// 2: Skip the monster.
// 3: Attack the monster using NTConfig_AttackSkill[8] and NTConfig_AttackSkill[9]
NTConfig_BehaviourOnImmuneMonster = 3;
NTConfig_AttackSkill[8] = MWS_HOLY_BOLT; // Skill to be used against user defined immunes.
NTConfig_AttackSkill[9] = -1; // Untimed Skill to be used against user defined immunes.
// Activate Redemption if your health is lower than this percentage. Set to 0 not to use Redemption.
NTConfig_UseRedemptionHP = 80;
// Activate Redemption if your health is lower than this percentage. Set to 0 not to use Redemption.
NTConfig_UseRedemptionMP = 60;
// 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 = 1;
// 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 = 1;
}
|
|
|
07/22/2013, 15:06
|
#7054
|
elite*gold: 0
Join Date: Jul 2009
Posts: 153
Received Thanks: 27
|
Code:
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs", false);
das musst du so lassen
kontrollier mal ob der name deines profils richtig geschrieben ist groß/klein schreibung beachten
bsp.
dein paladin profil "Fritz"
deine char datei "NTConfig_Paladin_fritz.ntl" = falsch
deine char datei "NTConfig_Paladin_Fritz.ntl" = richtig
|
|
|
07/22/2013, 17:10
|
#7055
|
elite*gold: 0
Join Date: Jan 2009
Posts: 3,170
Received Thanks: 1,191
|
blende mal dateiendungen ein; vlt heißt deine config ja "NTConfig_Paladin_SomePaladin.ntl.ntl"
|
|
|
07/23/2013, 19:24
|
#7056
|
elite*gold: 0
Join Date: Mar 2008
Posts: 117
Received Thanks: 3
|
Quote:
Originally Posted by data29
Code:
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs", false);
das musst du so lassen
kontrollier mal ob der name deines profils richtig geschrieben ist groß/klein schreibung beachten
bsp.
dein paladin profil "Fritz"
deine char datei "NTConfig_Paladin_fritz.ntl" = falsch
deine char datei "NTConfig_Paladin_Fritz.ntl" = richtig
|
Ne, dass wars nicht, hab auch beides gegengecheckt.
Hat bestimmt auch nichts mit einem Profilnamen zutun, da kann man eigl reinschreiben was man will und der bot startet immernoch.
Quote:
Originally Posted by mirkoregge
blende mal dateiendungen ein; vlt heißt deine config ja "NTConfig_Paladin_SomePaladin.ntl.ntl"
|
Das wars leider auch nicht, habe es in den Ordneroptionen ein und ausgeschaltet zum testen.
...habe mal den public mod ausgeschaltet, aber daran lags auch nicht...
|
|
|
07/23/2013, 19:47
|
#7057
|
elite*gold: 0
Join Date: Jan 2009
Posts: 3,170
Received Thanks: 1,191
|
Quote:
Originally Posted by KingPinShadow
Ne, dass wars nicht, hab auch beides gegengecheckt.
Hat bestimmt auch nichts mit einem Profilnamen zutun, da kann man eigl reinschreiben was man will und der bot startet immernoch.
Das wars leider auch nicht, habe es in den Ordneroptionen ein und ausgeschaltet zum testen.
...habe mal den public mod ausgeschaltet, aber daran lags auch nicht...
|
Nach dem einloggen bekomme ich die Fehlermeldung NT_LoadConfig() not defined, wie kann ich das beheben?
-Überprüfe, ob du die Charconfig richtig umbenannt hast. (NTConfig_<Charclass>_<Charname>)
-Wenn der Name der Datei stimmt, dann hast du einen Fehler darin gemacht. Häufige Fehlerquellen sind zum Beispiel:
--Beim aktivieren eines Scripts nur ein / gelöscht, statt beide.
--Gelöschte Zeichen, zum Beispiel: " ; ]
--Ausversehen hinzugefügte Zeichen an nicht dafür vorgesehenen Stellen.
dein Fehler dürfte hier liegen:
Code:
// 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 = 1;
// 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 = 1;
du hast // entfernt; es ist aber so gemeint, dass du z.b.
Code:
NTConfig_CheckMercSafe = 0x01;
schreibst; ist mir grad beim durchlesen aufgefallen
|
|
|
07/23/2013, 21:24
|
#7058
|
elite*gold: 0
Join Date: Mar 2008
Posts: 117
Received Thanks: 3
|
Quote:
Originally Posted by mirkoregge
Nach dem einloggen bekomme ich die Fehlermeldung NT_LoadConfig() not defined, wie kann ich das beheben?
-Überprüfe, ob du die Charconfig richtig umbenannt hast. (NTConfig_<Charclass>_<Charname>)
-Wenn der Name der Datei stimmt, dann hast du einen Fehler darin gemacht. Häufige Fehlerquellen sind zum Beispiel:
--Beim aktivieren eines Scripts nur ein / gelöscht, statt beide.
--Gelöschte Zeichen, zum Beispiel: " ; ]
--Ausversehen hinzugefügte Zeichen an nicht dafür vorgesehenen Stellen.
dein Fehler dürfte hier liegen:
Code:
// 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 = 1;
// 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 = 1;
du hast // entfernt; es ist aber so gemeint, dass du z.b.
Code:
NTConfig_CheckMercSafe = 0x01;
schreibst; ist mir grad beim durchlesen aufgefallen
|
Code:
// 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 = 0x01;
// 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;
}
sry, aber das war es auch nicht. wäre aber dann spätestens outside town die nächste error meldung gewesen, von daher geb ich dir 1 thx
also was kann es dann sein ?
|
|
|
07/23/2013, 22:04
|
#7059
|
elite*gold: 0
Join Date: Dec 2004
Posts: 875
Received Thanks: 59
|
nur mal nebenbei haste dir nochmal die version geladen und mit der es versucht wenn es da klappt weißte zumindest du hast bei deiner anderen config was falsch gemacht ^^ manchmal hilft sowas wenn mann den fehler nicht findet es kann ja wirklich dran liegen das irgendwo nen punkt strich oder sonstwas ausversehen rein gerutscht ist
|
|
|
07/24/2013, 07:16
|
#7060
|
elite*gold: 0
Join Date: Jan 2009
Posts: 3,170
Received Thanks: 1,191
|
Quote:
Originally Posted by KingPinShadow
Code:
// 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 = 0x01;
// 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;
}
sry, aber das war es auch nicht. wäre aber dann spätestens outside town die nächste error meldung gewesen, von daher geb ich dir 1 thx
also was kann es dann sein ? 
|
muaar natürlich oben ausgeklammert lassen ...
Quote:
// 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 = 0x01;
// 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;
|
dann sollte es auch klappen
|
|
|
07/24/2013, 15:04
|
#7061
|
elite*gold: 0
Join Date: Jun 2013
Posts: 16
Received Thanks: 0
|
Leechbot
Hallo,
nach Stundenlanger suche versuche ich es jetzt so.
Kann mir jemand den Link geben, wo ich des nochmal einstelle mit dem Botleech?
Würde gerne mein anderen char hochleveln, während mein Hammer boted
|
|
|
07/24/2013, 18:04
|
#7062
|
elite*gold: 0
Join Date: Dec 2004
Posts: 875
Received Thanks: 59
|
|
|
|
07/25/2013, 12:07
|
#7063
|
elite*gold: 0
Join Date: Jun 2013
Posts: 16
Received Thanks: 0
|
habe ein Problem mit dem botleech 
Habe alles so eingestellt wie es in der beschreibung steht, aber mein leechbot will nicht 
Er joint ins Game was mein Leader erstellt, soweit so gut, aber wenn er ein TP macht und sagt: TP is safe....stürzt das game ab mit der fehlermeldung: NTBaalleech.ntj failed
Was habe ich falsch eingestellt?
Es ist bestimmt nichts wildes, aber den fehler finde ich einfach nicht
Hier mal meine botleech.
Code:
/**
* This file was modified by and
* Check the programming section for updates and further scripts
* Last Update: 15:34 20.08.2011
*/
var DelayedJoinChars = new Array();
//###################################################################
//##############################Settings#############################
//###################################################################
var LeaderAccountName = "speedrunner1965";
var LeaderName = "Milow";
var GamePassword = "lol";
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 = false;
var JoinChannelInChat = "speedrunner";
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;
}
meine charconfig des leechers
Code:
/**
* This file was modified by
* 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.
*/
Include("NTBot/char_configs/MWConfig_GlobalSettings.ntl");
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", 5]);
//MWConfig_Script.push(["NTMausoleum.ntj", 10]); MWConfig_ClearPathSpectypes.Mausoleum = 0; MWConfig_ClearAreaSpectypes.Mausoleum = 0x01; NTConfig_KillBloodRaven = true;
//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(["NTCountess.ntj", 5]); MWConfig_ClearPathSpectypes.Countess = 0; MWConfig_ClearAreaSpectypes.Countess = 0;
//MWConfig_Script.push(["NTSummoner.ntj", 5]); NTConfig_KillFireEye = false; MWConfig_ClearPathSpectypes.Summoner = 0;
//MWConfig_Script.push(["NTAncientTunnels.ntj", 10]); MWConfig_ClearPathSpectypes.AncientTunnels = 0x01; MWConfig_ClearAreaSpectypes.AncientTunnels = 0x01;
//MWConfig_Script.push(["MWKurastSewers.ntj", 5]); MWConfig_ClearPathSpectypes.KurastSewers = 0;
//MWConfig_Script.push(["NTTravincal.ntj", 5]);
//MWConfig_Script.push(["NTMephisto.ntj", 5]); MWConfig_OpenMephistoChest = true; MWConfig_MephistoClearArea = false;
//MWConfig_Script.push(["MWSuperChests.ntj", 20]); MWConfig_SuperChestClearAreaRadius = 5; MWConfig_SuperChestAreas = ["Arachnid Lair", "Swampy Pit Level 3", "Flayer Dungeon", "Abbadon", "Pit of Acheron", "Drifter Cavern", "Infernal Pit", "Icy Cellar"];
//MWConfig_Script.push(["NTNihlathak.ntj", 5]); MWConfig_ClearPathSpectypes.Nihlathak = 0; NTConfig_PindleskinExtension = false; MWConfig_SkipOnTombVipers = true;
//MWConfig_Script.push(["NTBaal.ntj", 10]); NTConfig_KillBaal = true; MWConfig_SkipBaalOnDolls = true; MWConfig_SkipBaalOnSouls = false; MWConfig_DoBaalPreAttack = true;
//MWConfig_Script.push(["NTDiablo.ntj", 10]); MWConfig_KillFullInfectorMob = true; MWConfig_StartAtStar = false; MWConfig_IgnoreSealOpeningErrors = false; MWConfig_FastDia = true;
// *****************************************************
//------------------------------------------------------------------------------
// 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; MWConfig_ClearPathSpectypes.Baal = 0;
// *********************** Misc ************************
MWConfig_Script.push(["MWAuraStack.ntj", 10]); MWConfig_StackRepetitions = 100; MWConfig_ResetMercWeaponAfterStacking = false;
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 = "speedrunner1965";
MWConfig_Script.push(["NTBaalLeech.ntj", 10]); NTConfig_KillBaal = true; MWConfig_EnterUnsafeTP = false; NTConfig_Leader = "speedrunner1965";
//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 = false; // Set to true if you use a mercenary, will revive merc at a reviver npc.
// Exit game or to reset your Enigma if Teleport skill is missing (due to identifying an item having +x to Teleport [Sorceress only]). WARNING: Activating this feature may - though not likely will - result in the loss of your enigma. Use at your own risk and make sure your char has sufficient strength!
// 0: Don't do anything; 1: Reset armor; 2: Exit game
MWConfig_ResetArmorMode = 0;
//------------------------------------------------------------------------------
// 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;
//------------------------------------------------------------------------------
// 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] = [1,1,1,1,1,1,2,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];
// 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;
//------------------------------------------------------------------------------
// Find Item Configuration
//------------------------------------------------------------------------------
// Set to true to loot nearby corpses using Find Item.
MWConfig_UseFindItem = true;
// This is the default range to check for corpses when Find Item is activated.
MWConfig_FindItemRange = 30;
// Set to true to check for dropped items right after looting a corpse. NOTE: This will slow down your runs and therefore should definately be set to false when doing private games.
MWConfig_PickLootedItemsInstantly = false;
// If you do not like to loot corpses in a certain area, you can its areaid as an exception below. NOTE: All areaids can be found in "sdk\areas.txt".
// MWConfig_FindItemExceptions.push(<areaid1>, <areaid2>, <areaidn>);
//------------------------------------------------------------------------------
// 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 = false;
//------------------------------------------------------------------------------
// 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 = 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;
//------------------------------------------------------------------------------
// 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 = [];
// 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_WAR_CRY; // This skill is used once whenever attacking a new target. Set to -1 to deactivate.
NTConfig_AttackSkill[1] = MWS_WHIRLWIND; // Primary skill to bosses.
NTConfig_AttackSkill[2] = -1; // Reserved
NTConfig_AttackSkill[3] = MWS_WHIRLWIND; // Primary skill to others.
NTConfig_AttackSkill[4] = -1; // Reserved
NTConfig_AttackSkill[5] = MWS_BERSERK; // Secondary skill in case monster is immune to primary skill. Set to -1 to deactivate.
NTConfig_AttackSkill[6] = -1; // Reserved
NTConfig_AttackSkill[7] = -1; // Reserved
// 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 = 25;
// 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] = -1; // Skill to be used against user defined immunes.
NTConfig_AttackSkill[9] = -1; // Untimed Skill to be used against user defined immunes.
// 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;
}
meine char leader
Code:
/**
* This file was modified by
* 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.
*/
Include("NTBot/char_configs/MWConfig_GlobalSettings.ntl");
var NTConfig_UseRedemptionHP;
var NTConfig_UseRedemptionMP;
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", 5]);
//MWConfig_Script.push(["NTMausoleum.ntj", 10]); MWConfig_ClearPathSpectypes.Mausoleum = 0; MWConfig_ClearAreaSpectypes.Mausoleum = 0x01; NTConfig_KillBloodRaven = true;
//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(["NTCountess.ntj", 5]); MWConfig_ClearPathSpectypes.Countess = 0; MWConfig_ClearAreaSpectypes.Countess = 0;
//MWConfig_Script.push(["NTSummoner.ntj", 5]); NTConfig_KillFireEye = false; MWConfig_ClearPathSpectypes.Summoner = 0;
//MWConfig_Script.push(["NTDuriel.ntj", 10]); MWConfig_ClearPathSpectypes.Duriel = 0;
//MWConfig_Script.push(["NTAncientTunnels.ntj", 10]); MWConfig_ClearPathSpectypes.AncientTunnels = 0x01; MWConfig_ClearAreaSpectypes.AncientTunnels = 0x01;
//MWConfig_Script.push(["MWKurastSewers.ntj", 5]); MWConfig_ClearPathSpectypes.KurastSewers = 0;
//MWConfig_Script.push(["NTTravincal.ntj", 5]);
//MWConfig_Script.push(["NTMephisto.ntj", 5]); MWConfig_OpenMephistoChest = false; MWConfig_MephistoClearArea = false;
//MWConfig_Script.push(["MWSuperChests.ntj", 20]); MWConfig_SuperChestClearAreaRadius = 5; MWConfig_SuperChestAreas = ["Arachnid Lair", "Swampy Pit Level 3", "Flayer Dungeon", "Abbadon", "Pit of Acheron", "Drifter Cavern", "Infernal Pit", "Icy Cellar"];
//MWConfig_Script.push(["NTNihlathak.ntj", 5]); MWConfig_ClearPathSpectypes.Nihlathak = 0; NTConfig_PindleskinExtension = false; MWConfig_SkipOnTombVipers = false;
//MWConfig_Script.push(["NTDiablo.ntj", 10]); MWConfig_KillFullInfectorMob = true; MWConfig_StartAtStar = false; MWConfig_IgnoreSealOpeningErrors = false; MWConfig_FastDia = false;
MWConfig_Script.push(["NTBaal.ntj", 10]); NTConfig_KillBaal = true; MWConfig_SkipBaalOnDolls = false; MWConfig_SkipBaalOnSouls = false; MWConfig_DoBaalPreAttack = true;
//MWConfig_Script.push(["NTEldritch.ntj", 5]); NTConfig_ShenkExtension = true;
//MWConfig_Script.push(["NTThreshSocket.ntj", 5]); MWConfig_ClearPathSpectypes.ThreshSocket = 0;
// *****************************************************
//------------------------------------------------------------------------------
// 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; MWConfig_ClearPathSpectypes.Baal = 0;
// *********************** Misc ************************
MWConfig_Script.push(["MWAuraStack.ntj", 10]); MWConfig_StackRepetitions = 100; MWConfig_ResetMercWeaponAfterStacking = false;
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 = "speedrunner1965";
//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.
// Exit game or to reset your Enigma if Teleport skill is missing (due to identifying an item having +x to Teleport [Sorceress only]). WARNING: Activating this feature may - though not likely will - result in the loss of your enigma. Use at your own risk and make sure your char has sufficient strength!
// 0: Don't do anything; 1: Reset armor; 2: Exit game
MWConfig_ResetArmorMode = 0;
//------------------------------------------------------------------------------
// 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] = [1,1,1,1,1,0,0,0,0,0];
NTConfig_Columns[1] = [1,1,1,1,1,2,0,0,0,0];
NTConfig_Columns[2] = [1,1,1,1,1,0,0,0,0,0];
NTConfig_Columns[3] = [1,1,1,1,1,0,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 = 200000;
// 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");
//NTConfig_NIPFilePath.push("private/Bluebird.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 = 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;
//------------------------------------------------------------------------------
// 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_HOLY_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] = -1; // This skill is used once whenever attacking a new target. Set to -1 to deactivate.
NTConfig_AttackSkill[1] = MWS_BLESSED_HAMMER; // Primary skill to bosses.
NTConfig_AttackSkill[2] = MWS_CONCENTRATION; // Primary aura to bosses. Set to -1 to deactivate.
NTConfig_AttackSkill[3] = MWS_BLESSED_HAMMER; // Primary skill to others.
NTConfig_AttackSkill[4] = MWS_CONCENTRATION; // Primary aura to others. Set to -1 to deactivate.
NTConfig_AttackSkill[5] = MWS_HOLY_BOLT; // Secondary skill in case monster is immune to primary skill. Set to 0 if you won't
NTConfig_AttackSkill[6] = MWS_CONCENTRATION; // Secondary aura. Set to 0 not to activate any aura.
NTConfig_AttackSkill[7] = MWS_SALVATION; // Aura to be used against Uber Mephisto. Set to -1 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 = 25;
// 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.
// 2: Skip the monster.
// 3: Attack the monster using NTConfig_AttackSkill[8] and NTConfig_AttackSkill[9]
NTConfig_BehaviourOnImmuneMonster = 0;
NTConfig_AttackSkill[8] = -1; // Skill to be used against user defined immunes.
NTConfig_AttackSkill[9] = -1; // Untimed Skill to be used against user defined immunes.
// Activate Redemption if your health is lower than this percentage. Set to 0 not to use Redemption.
NTConfig_UseRedemptionHP = 80;
// Activate Redemption if your health is lower than this percentage. Set to 0 not to use Redemption.
NTConfig_UseRedemptionMP = 60;
// 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;
}
und meine bot.ntj
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 11:25 05.11.2011
*/
//------------------------------------------------------------------------------
// Delays
//------------------------------------------------------------------------------
var GameMinLength = 120; // Time in seconds, minimum game length, 180 seconds default (1 game/3 minutes).
var UnableToConnectRetry = 5; // Time in minutes to retry connecting on connection fail (real value is +/- 1 min).
var RealmDownRetry = 15; // Time in minutes to retry connecting on a realm down (default is 300 minutes).
var DisconnectedRetry = 5; // Time in minutes to retry on a disconnection (usually ip ban related).
var CdKeyInUseRetry = 5; // Time in minutes to retry on a cdkey in use error message (set to 0 to stop).
var ConnectingToBnetTimeout = 10; // Time in seconds to wait for a login to Time out and click cancel and retry.
var CharacterScreenTimeout = 10; // Time in seconds to wait for character screen to appear.
var PleaseWaitTimeout = 10; // Time in seconds to wait for a please wait popup.
var CreateGameThreshold = 10; // Time in seconds to wait between making games.
var CreateGameThresholdRandom = 5; // Time in seconds to randomly add +/- to the game create time.
var CreateGameTimeout = 10; // Time in seconds to register a failed to create game.
var WaitInLineTimeout = 30; // Time in seconds to wait in lines for a create game (60 second default).
var CharacterSelectDelay = 1000; // Time in milliseconds to wait before selecting a character on the char screen.
var GameDoesNotExistDelayMin = 10; // How long to wait when a Game Does Not Exist occurs - minimum - default 10 minutes.
var GameDoesNotExistDelayMax = 15; // How long to wait when a Game Does Not Exist occurs - maximum - default 15 minutes.
var GameDoesNotExistTimeout = 30; // How long to wait for the dialog to disappear (default 30 seconds, don't change this).
// Control
var LoginDelay = 5000; // Time in milliseconds to wait before submitting login information.
var ClickDelay = 2000; // Wait X milliseconds before next action after a click event.
var TextDelay = 2500; // Wait X milliseconds before next action after inserting text into a textbox.
var ClickDelayRandom = 500; // Random amount of Time in milliseconds to add to a click.
var TextDelayRandom = 500; // Random amount of Time in milliseconds to add to a text set.
// Channel
var WaitBeforeEnterChatMin = 1000; // Min time in milliseconds to wait before entering chat.
var WaitBeforeEnterChatMax = 2000; // Max time in milliseconds to wait before entering chat.
var WaitInChatBeforeActionsMin = 2000; // Min time in milliseconds to wait before joining channel.
var WaitInChatBeforeActionsMax = 3000; // Max time in milliseconds to wait before joining channel.
var GameAnnouncementDelay = 5000; // Wait X milliseconds before posting the announcement message (don't set this too low!).
var GameAnnouncementDelayRandom = 500; // Random amount of time to add to a to the announcement delay.
var UseFileBackupTimeMax = 30; // Time in minutes that may pass since last file update - The backup File is updated at the beginning of every single game and is read everytime the name of your previous game is undefined (e.g. at restarts); Set to 0 to deactivate file backup.
//------------------------------------------------------------------------------
// Game settings
//------------------------------------------------------------------------------
var PlayersPerGame = 8; // Maximum number of players to be set when creating a game.
var CharacterDifference = 91; // Level difference to be set when creating games. Set to 0 not to use level restrictions.
var GameDescription = "Speedrunner"; // The description to be used for your game. Set to "" not to enter a game description.
var JoinRandomGamesChars = new Array("YourNameGoesHere");// Dynamic array that holds chars that are to join public games.
var JoinGameKeywords = new Array("dia", "baal"); // If your char is set to join public games, games will only be joined if the game name contains one of the given keywords.
//------------------------------------------------------------------------------
// Channel Settings
//------------------------------------------------------------------------------
var IgnoreWispers = true; // Set to true to ignore all incoming wispers from players that are not on your friendlist.
var JoinChatAfterLogin = true; // Join chat after login.
var JoinRandomChannel = false; // If this is true, will join a random channel, otherwise it will use the channel below..
var JoinChannelInChat = "Speedrunner"; // Leave blank not to join a private channel.
var PerformChannelLogin = false; // Type ".login" once after joining the channel.
var ChannelUsers = new Array(); // Dynamic array that holds channel users.
// Add any char/account here that is supposed to perform chat actions/game announcements or join a private channel
ChannelUsers.push("");
// Or
ChannelUsers.push("speedrunner1965");
// The following key expressions will be replaced by their actual values: %game --> "gamename-" <> %counter --> number of the next game <> %time --> time in seconds till game creation <> %password --> game password
// Note that the announcement will start after the first run, so there usually won't be any anncouncement right after login - If the gamename is undefined, the bot will try to load the backup file to announce the upcoming game properly.
var GameAnnouncement = "Join to %game%counter in about %time seconds.";
var ShowStatusOnStartup = true;
var JoinRetries = 5; // How many attempts before giving up the mule game?
var JoinRetryDelay = 55; // Seconds to wait between Retry Attempts.
var TimeBeforeMuleGame = 1; // Minutes to wait before creating the game.
var TimeAfterMule = 3; // Minutes to wait before logging back to bot account.
var WaitOnBlockedAccount = 2; // Minutes to wait if the mule account is currently being used by another char (this delay will be used up to 20 times).
//------------------------------------------------------------------------------
// Misc
//------------------------------------------------------------------------------
var MaximumLocationLoops = 5; // The maximum number of loops for a single location; if the window is does not respond and is caught in an infinite loop it will be restarted when the number of loops exceeds the one you specify here.
//---------------------------------------------------------------------------------------------------------------------------------------------------------
// DONT EDIT ANYTHING BELOW THIS!
//---------------------------------------------------------------------------------------------------------------------------------------------------------
// AutoMule Variables and Stuff
const DGDebug = false;
const AUTOMULE_READY = 1;
const AUTOMULE_FULL = 0;
const AUTOMULE_NOMULES = -1;
function AutomuleData()
{
this.InProgress = false;
this.PreventRecover = false;
this.IsWaiting = false;
this.State = "notmuling";
this.CurrentAccount = 0;
this.MuleIndex = 0;
this.IsReadyState = AUTOMULE_READY;
// Account creation variables
this.CreateAccount = false;
this.CharCreateNumber = -1;
this.RegMail = "";
this.MuleFull = false;
this.AccName;
this.AccPw;
this.AccPrefix;
this.AccSuffix = new Array();
this.NewAccPw = new Array();
this.UserNumbers;
this.IsLadder;
this.IsHC;
this.IsClassic;
this.RandomNameLength;
this.GameName;
this.GamePassword;
this.Mules = new Array();
this.MuleAccs;
this.MulePws;
this.NipFiles = new Array();
this.CharLoc;
this.MuleIsFullThreshold;
this.JoinBug;
this.NewCharBug = 0;
this.FullAuto = false;
}
var Automule = new AutomuleData();
Include("libs/controlInfo.ntl");
Include("libs/common/NTCommon.ntl");
Include("NTBot/mule_configs/NTConfig_AutoMule.ntl");
NT_LoadMuleConfig();
Include("libs/common/DGAutoMule.ntl");
// 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 LocationLoops = new Array(2);
var ChatActionsDone = false;
var LastGameFailed = false;
var JoinedChannel = false;
var JustJoined = true;
var MadeAnnouncement = false;
// This is for recovering purpose, delete mulestate file is you get stuck
DGAM_ReadMuleStats();
MWAM_ReleaseUsedAccounts();
MWAM_InitializedMuleLoads(false);
var ControlData = new controlInfo();
function NTMain()
{
var _ingame, _scriptPath;
Delay(1000);
_ingame = false;
ConnectingToBnetTimeout *= 1000;
GameMinLength *= 1000;
CharacterScreenTimeout *= 1000;
PleaseWaitTimeout *= 1000;
CreateGameThreshold *= 1000;
CreateGameThresholdRandom *= 1000;
CreateGameTimeout *= 1000;
WaitInLineTimeout *= 1000;
GameDoesNotExistDelayMin *= 1000*60;
GameDoesNotExistDelayMax *= 1000*60;
GameDoesNotExistTimeout *= 1000;
ControlData.ClickDelay = ClickDelay;
ControlData.TextDelay = TextDelay;
ControlData.ClickDelayRandom = ClickDelayRandom;
ControlData.TextDelayRandom = TextDelayRandom;
RegisterEvent(EVENT_SCRIPTMSG, DGAM_MuleMsgEvents);
while(true)
{
if(me.ingame)
{
if(!InGameAt)
InGameAt = GetTickCount();
if(!_ingame)
{
if(Automule.InProgress)
{
if(DGDebug)
NTC_SendLogToOOG(NTC_LOG_COMMON, "[Debug] Joined Mule Game");
switch(Automule.State)
{
case "notmuling": // Done or not yet started
// No... we really are not supposed to be here
Automule.InProgress = false;
ExitGame();
NTC_SendLogToOOG(NTC_LOG_COMMON, "AutoMule Error, try again.");
SetStatusText("ÿc1AutoMule Error... (Wait 60s)");
Delay(60000);
break;
case "mulestart": // Still on Bot Account
_scriptPath = "NTBot/bots/NTPermGameandMule.ntj";
break;
case "mule": //Muleing
case "mulefull": // Mule Full
case "done": // Next Account
case "recover": // Recovering
_scriptPath = "NTBot/bots/NTPickStuff.ntj";
break;
default:
_scriptPath = "NTBot/NTPermGameandMule.ntj";
break;
}
if(DGDebug)
NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Load " + _scriptPath);
RunGC();
if(Load(_scriptPath))
{
_ingame = true;
Automule.JoinBugCount = 0;
MadeAnnouncement = false;
LocationLoops[1] = 0;
MW_WriteBackupFile();
if(me.playtype > 0)
NT_SendEventToOOG(D2NT_MGR_INGAME, "Currently in Mule Game", 0);
else
NT_SendEventToOOG(D2NT_MGR_INGAME, "Oops, that's not gonna work honey.", 0);
LastGameStatus = 2; // in game successful
}
}
else
{
RunGC(); // run garbage collector between each game
if(Load("NTBot/MWBotGame.ntj"))
{
_ingame = true;
MadeAnnouncement = false;
LocationLoops[1] = 0;
MW_WriteBackupFile();
if(me.playtype > 0)
NT_SendEventToOOG(D2NT_MGR_INGAME, "In Game [IP:" + me.gameserverip.split(".")[3] + "]", 0);
else
NT_SendEventToOOG(D2NT_MGR_INGAME, "In Game", 0);
LastGameStatus = 2; // in game successful
}
}
}
Delay(1000);
}
else
{
if(Automule.IsWaiting)
Delay(1000);
else
{
if(_ingame)
{
_ingame = false;
NT_SendEventToOOG(D2NT_MGR_READY, "", 0);
Delay(4000);
}
if(Automule.InProgress)
DGAM_DoMuleLocationAction();
else
NT_LocationAction(ControlData.getLocation());
Delay(500);
}
}
}
}
function NT_LocationAction(location)
{
var _randomChannel, _output, _control;
MW_CheckLocationLoops(location);
switch(location.id)
{
case 3: // Lobby Chat
if(JustJoined)
{
JustJoined = false;
if(MW_ArrayContainsUser(ChannelUsers))
_output = "ÿc2Chat actions enabled!";
else
_output = "ÿc1Chat actions disabled!";
for(var i = 0; i < 3; i++)
{
SetStatusText(_output);
Delay(500);
SetStatusText("");
Delay(500);
}
if(IgnoreWispers)
{
Say("/o igw");
Delay(500);
}
}
if(!ChatActionsDone && MW_ArrayContainsUser(ChannelUsers))
{
ChatActionsDone = true;
Delay(Random(WaitInChatBeforeActionsMin, WaitInChatBeforeActionsMax));
if(!JoinedChannel && (JoinRandomChannel || JoinChannelInChat != ""))
{
_randomChannel = NT_GetRandomString(Random(3,10));
SetStatusText("ÿc8Joining Channel ÿc;" + (JoinRandomChannel ? _randomChannel : JoinChannelInChat));
Delay(500);
Say("/join " + (JoinRandomChannel ? _randomChannel : JoinChannelInChat));
JoinedChannel = true;
if(PerformChannelLogin)
{
SetStatusText("ÿc8Channel Login...");
Say(".login");
Delay(1000);
}
}
}
case 1: // Lobby
if(location.id == 1 && JoinChatAfterLogin)
{
Delay(Random(WaitBeforeEnterChatMin, WaitBeforeEnterChatMax));
ControlData.click(ControlData.controls.lobby.button.enterChat);
break;
}
if(GetTickCount() > NextGameMake)
{
LastGameFailed = false;
switch(LastGameStatus)
{
case 0:
if(MW_ArrayContainsUser(JoinRandomGamesChars))
{
_control = ControlData.get(ControlData.controls.lobby.button.join);
if(_control && _control.pressed)
{
ControlData.click(ControlData.controls.lobby.button.create);
Delay(500);
}
ControlData.click(ControlData.controls.lobby.button.join);
}
else
{
_control = ControlData.get(ControlData.controls.lobby.button.create);
if(_control && _control.pressed)
{
ControlData.click(ControlData.controls.lobby.button.join);
Delay(500);
}
ControlData.click(ControlData.controls.lobby.button.create);
}
NextGameMake = GetTickCount() + CreateGameTimeout; // set our timeout
NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
break;
case 1: // game failed, rollover to reset timer
InGameAt = GetTickCount();
LastGameFailed = true;
Delay(5000);
case 2:
NT_OutputGameLength();
LastGameStatus = 0;
NT_SetNextGameMake();
if(LastGameFailed)
{
SetStatusText("ÿc1Failed to join!");
NT_SendEventToOOG(D2NT_MGR_PRINT_LOG, "ÿBE0000Game creation failed!", 0);
Delay(1000);
}
NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
break;
}
}
else
{
if(JoinChannelInChat && !MadeAnnouncement && MW_ArrayContainsUser(ChannelUsers))
{
if(MW_AnnounceGame())
MadeAnnouncement = true;
}
MW_TimeoutDelay(NextGameMake - GetTickCount(), location, !MW_ArrayContainsUser(JoinRandomGamesChars));
}
break;
case 2: // Waiting In Line
if(GetTickCount() - LastGameMade > WaitInLineTimeout)
ControlData.click(ControlData.controls.lobby.inLine.button.cancel);
break;
case 4: // Create Game
if(!MW_ArrayContainsUser(JoinRandomGamesChars))
{
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);
}
_control = ControlData.get(ControlData.controls.lobby.create.button.useCharacterDifference);
if(_control)
{
if(CharacterDifference == 0 && _control.pressed || CharacterDifference >= 1 && CharacterDifference <= 99 && !_control.pressed)
{
ControlData.click(ControlData.controls.lobby.create.button.useCharacterDifference);
Delay(1000);
}
}
_control = ControlData.get(ControlData.controls.lobby.create.editBox.maxNumberOfPlayers);
if(_control)
{
if(PlayersPerGame >= 1 && PlayersPerGame <= 8 && _control.text != PlayersPerGame.toString())
{
ControlData.setText(ControlData.controls.lobby.create.editBox.maxNumberOfPlayers, PlayersPerGame.toString());
Delay(1000);
}
}
_control = ControlData.get(ControlData.controls.lobby.create.editBox.characterDifference);
if(_control)
{
if(_control.text != CharacterDifference.toString())
{
ControlData.setText(ControlData.controls.lobby.create.editBox.characterDifference, CharacterDifference.toString());
Delay(1000);
}
}
if(GameDescription)
{
ControlData.setText(ControlData.controls.lobby.create.editBox.gameDescription, GameDescription);
Delay(1000);
}
NT_SendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
NT_LocationTimeout(5000, location);
LastGameMade = GetTickCount();
LastGameStatus = 1; // pending creation
}
break;
case 5: // Join Game
if(MW_ArrayContainsUser(JoinRandomGamesChars))
{
var _games, _game;
_games = ControlData.get(ControlData.controls.lobby.join.textBox.gameList).GetText();
_game = "";
if(_games)
{
for(var i = 0; i < _games.length; i++)
{
for(var j = 0; j < JoinGameKeywords.length; j++)
{
if(_games[i].toLowerCase().indexOf(JoinGameKeywords[j].toLowerCase()) > -1)
{
_game = _games[i];
i = _games.length;
break;
}
}
}
}
if(_game != "")
{
SetStatusText("ÿc8Joining Game: " + _game);
Delay(250);
ControlData.setText(ControlData.controls.lobby.join.editBox.gameName, _game);
Delay(1000);
ControlData.click(ControlData.controls.lobby.join.button.joinGame);
NT_LocationTimeout(5000, location);
LastGameMade = GetTickCount();
LastGameStatus = 1; // pending creation
}
else
Delay(2500);
ControlData.click(ControlData.controls.lobby.button.create);
Delay(500);
ControlData.click(ControlData.controls.lobby.button.join);
Delay(500);
}
break;
case 6: // Ladder
break;
case 7: // Channel List
break;
case 8: // Main Menu
if(ControlData.getCurrentRealmIndex() == me.gatewayid)
{
NT_OutputGameLength();
ControlData.click(ControlData.gameTypes[me.playtype]);
}
else
ControlData.click(ControlData.controls.mainMenu.button.gateway);
break;
case 9: // Login
NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
Delay(LoginDelay);
ControlData.setText(ControlData.controls.login.editBox.accountName, me.account);
NT_SendEventToOOG(D2NT_MGR_LOGIN, location.name, 0);
NT_LocationTimeout(5000, location);
break;
case 10: // Login Error (this is a fatal error, so stop)
NT_SendEventToOOG(D2NT_MGR_RESTART, location.name, 10);
Delay(3500);
break;
case 11: // Unable To Connect
MW_TimeoutDelay(UnableToConnectRetry*60*1000, location);
ControlData.click(ControlData.controls.login.unableToConnect.button.ok);
break;
case 12: // Character Select
var _time, _control;
NT_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;
NT_SetNextGameMake();
}
else
{
ControlData.click(ControlData.controls.characterSelect.button.exit);
MW_TimeoutDelay(RealmDownRetry*60*1000, location);
}
break;
case 13: // Realm Down - Character Select screen
ControlData.click(ControlData.controls.characterSelect.button.exit);
MW_TimeoutDelay(RealmDownRetry*60*1000, location);
break;
case 14: // Character Select - Disconnected
MW_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(!NT_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
MW_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(!NT_LocationTimeout(ConnectingToBnetTimeout, location))
ControlData.click(ControlData.controls.mainMenu.connecting.button.cancel);
break;
case 22: // Login - Invalid Cdkey (classic or xpac)
NT_SendEventToOOG(D2NT_MGR_RESTART, location.name, 3600);
Delay(3500);
break;
case 23: // Character Select - Connecting
if(!NT_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(!NT_LocationTimeout(PleaseWaitTimeout, location))
ControlData.click(ControlData.controls.lobby.pleaseWait.button.cancel);
break;
case 26: // Lobby - Game Name Exists
NT_SendEventToOOG(D2NT_MGR_PRINT_LOG, "ÿBE0000Game already exists", 0);
SetStatusText("ÿc1Game already exists!");
InGameAt = 0;
LastGameStatus = 0;
NT_SetNextGameMake();
NT_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;
NT_SetNextGameMake();
NT_LocationTimeout(GameDoesNotExistTimeout, location);
break;
}
}
function NT_SendEventToOOG(locationId, statusString, pendingTime)
{
return SendCopyData("D2NT Manager", null, (locationId<<16)|pendingTime, statusString);
}
function NT_SetNextGameMake()
{
LastGameMade = GetTickCount();
NextGameMake = LastGameMade + CreateGameThreshold + Random(0 - CreateGameThresholdRandom, CreateGameThresholdRandom) + InGameAt;
InGameAt = 0;
ChatActionsDone = false;
}
function NT_OutputGameLength()
{
var _duration;
if(InGameAt)
{
_duration = GetTickCount() - InGameAt;
if(_duration < GameMinLength)
InGameAt = GameMinLength - _duration;
else
InGameAt = 0;
}
}
function NT_LocationTimeout(time, location)
{
var _endtime = GetTickCount() + time;
while(ControlData.getLocation().id == location.id && _endtime > GetTickCount())
{
if(LocationLoops[1] > 1)
NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name + " [" + MWC_ConvertTicksToTimeString(_endtime - GetTickCount()) + "] [" + LocationLoops[1] + "]", 0);
else
NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name + " [" + MWC_ConvertTicksToTimeString(_endtime - GetTickCount()) + "]", 0);
Delay(1000);
}
return (ControlData.getLocation().id != location.id);
}
function MW_TimeoutDelay(time, location, showNextGameStatus)
{
var _gamename, _outputString, _timeString;
if(arguments.length < 3)
showNextGameStatus = false;
_endtime = GetTickCount() + time;
_gamename = me.gamename;
_timeString = "";
if(!_gamename)
{
_gamename = MW_ReadBackupFile(0);
if(_gamename)
SetStatusText("ÿc8Using File Backup...");
}
while(_endtime > GetTickCount())
{
_timeString = " [" + MWC_ConvertTicksToTimeString(_endtime - GetTickCount()) + "]";
NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name + _timeString , 0);
if(showNextGameStatus)
{
if(LastGameFailed && parseInt(_endtime-GetTickCount()) > CreateGameThreshold && parseInt((_endtime-GetTickCount())/1000) % 30 >= 0 && parseInt((_endtime-GetTickCount())/1000) % 30 <= 5)
{
_outputString = "ÿc1Last game failed!";
_timeString = "";
}
else if(parseInt((_endtime-GetTickCount())/1000) >= 0)
{
if(_gamename && MW_GetGameCounter(_gamename, false))
_outputString = "ÿc8Next game: " + MW_GetGameName(_gamename) + MW_GetGameCounter(_gamename, false);
else
_outputString = "ÿc8Game creation pending... ";
}
MWC_SetStatusText(_outputString, _timeString);
if(me.ingame)
_endtime = GetTickCount();
}
Delay(1000);
}
if(showNextGameStatus)
SetStatusText("ÿc8Creating game...");
return;
}
function NT_GetRandomString(length)
{
_retString = "";
_charSet = "0123456789abcdefghijklmnopqrstuvwxyz";
while(length--)
{
_retString += _charSet.charAt(Random(0, _charSet.length - 1));
Delay(1);
}
return _retString;
}
function MW_GetGameName(lastGameString)
{
if(!lastGameString)
return "";
else
return lastGameString.substr(0, lastGameString.lastIndexOf('-') + 1);
}
function MW_GetGameCounter(lastGameString, simple)
{
var _count, _countString;
if(!lastGameString)
return "-1";
else
{
_countString = lastGameString.slice(lastGameString.lastIndexOf('-') + 1);
if(_countString[0] == '0')
_countString = _countString.substr(1);
_count = parseInt(_countString) + 1;
if(_count == 100)
_count = 0;
if(!simple)
{
if(_count <= 9)
return '0' + _count;
}
return _count;
}
}
function MW_ArrayContainsUser(array)
{
for(var i = 0; i < array.length; i++)
{
if(me.account.toLowerCase() == array[i].toLowerCase() || me.charname.toLowerCase() == array[i].toLowerCase())
return true;
}
return false;
}
function MW_ReadBackupFile(type)
{
var _fhandle, _buffer, _time, _now, _retValue;
_fhandle = FileOpen("/Logs/Temporary Data/" + me.charname + ".channel", 2);
_retValue = "";
_now = new Date();
if(_fhandle && _now)
{
_buffer = _fhandle.ReadLine();
if(_buffer)
{
_time = parseInt(_buffer);
if(_now.getTime() - _time < UseFileBackupTimeMax*6E4)
{
_retValue = _fhandle.ReadLine();
if(type > 0)
_retValue = _fhandle.ReadLine();
}
}
_fhandle.Close();
}
else if(_fhandle)
_fhandle.Close();
return _retValue;
}
function MW_WriteBackupFile()
{
var _fhandle, _now;
if(UseFileBackupTimeMax == 0)
return false;
_fhandle = FileOpen("/Logs/Temporary Data/" + me.charname + ".channel", 1);
_now = new Date();
if(_fhandle && _now)
{
_fhandle.WriteLine(_now.getTime());
_fhandle.WriteLine(me.gamename);
_fhandle.WriteLine(me.gamepassword);
_fhandle.Close();
return true;
}
else if(_fhandle)
_fhandle.Close();
return false;
}
function MW_CheckLocationLoops(location)
{
if(!location)
return false;
if(!LocationLoops[0] || location.id != LocationLoops[0].id)
{
LocationLoops[0] = location;
LocationLoops[1] = 0;
}
else if(LocationLoops[0].id != 5)
{
LocationLoops[1]++;
if(LocationLoops[1] >= MaximumLocationLoops)
{
if(LocationLoops[1] < 1000)
NT_SendEventToOOG(D2NT_MGR_PRINT_LOG, "ÿBE0000Location Loop Restart!;ÿc1Location Loops: " + LocationLoops[1] + "\nÿBE0000Location: " + LocationLoops[0].name + "\nÿBE0000Location ID: " + LocationLoops[0].id, 0);
LocationLoops[1] = 1000; // Make sure the location loop notification is only shown once
NT_SendEventToOOG(D2NT_MGR_RESTART, location.name, 0);
}
}
return true;
}
function MW_AnnounceGame()
{
var _gamePass, _gameName, _gameText, _delay;
_gameName = me.gamename;
if(!_gameName)
_gameName = MW_ReadBackupFile(0);
_gamePass = me.gamepassword;
if(!_gamePass)
_gamePass = MW_ReadBackupFile(1);
if(_gameName && !me.ingame)
{
_delay = (GameAnnouncementDelay > 5000) ? GameAnnouncementDelay : 5000;
_delay += (GameAnnouncementDelayRandom > 500) ? Random(0, GameAnnouncementDelayRandom) : 500;
_gameText = GameAnnouncement.replace("%password", ((_gamePass) ? _gamePass : "N/A"));
_gameText = _gameText.replace("%game", MW_GetGameName(_gameName));
_gameText = _gameText.replace("%counter", MW_GetGameCounter(_gameName, false));
_gameText = _gameText.replace("%time", parseInt((NextGameMake - GetTickCount() - _delay + ClickDelay + TextDelay) / 1000 + 5));
if(_gameText.indexOf("NaN") > -1)
return false;
if(parseInt((NextGameMake - GetTickCount() - _delay + ClickDelay + TextDelay) / 1000) > 3)
{
Delay(_delay);
return Say(_gameText);
}
}
return false;
}
könnte mal einer ein Auge drüber werfen
Edit: Der Manager gibt mir aus: NTBaalLeech.ntj : NTC_FindUnit() failed (Harrogath)
|
|
|
07/25/2013, 12:13
|
#7064
|
elite*gold: 0
Join Date: Jul 2013
Posts: 1
Received Thanks: 0
|
Hallo @ all.
Wahrscheinlich wurden meine 2 Fragen schon auf den seiten 207, 387, 432 und 515 beantwortet... nur ich find die antworten nicht.
Sorry for that!
letztlich habe ich folgende Probleme:
Wenn ich möchte, dass der Bot etwas auslässt, z.B. Andariel, dann setz ich // vor die zeile.
Soweit hab ich es verstanden.... nu zu meinem Problem - entweder hab ich noch was anderes verhauen, aber er versucht dennoch die von mir nicht gewollten scripts zu laden. Ich hab mal die betreffenden zeilen rausgelöscht - immer fängt der bot bzw. das fenster an zu laggen und meine sorc steht die nächsten stunden im Town rum....
momentan rennt sie alles ab - was das inventar mit runen vollpackt aber keinen platz für items lässt.
diese Automule aktion spann ich net (falls da wer das für dummies erklären kann wäre auch spitze, aber nicht prio 1)
selbes Problem, andere Zeile:
ich wollte das meine Sorc nur HP und Mana pots her nimmt. wenn ich es versuche umzuschreiben - lagg und keine reaktion.
und so nutzt sie 1 spalte für HP 1 spalte für Mp und eben 1 für die reg pots.
muss ich bei beiden problemen noch etwas anderes umstellen? Global configs? oder andere zeilen?
zu meinen Configs - hab die Grundconfigs die voreingestellt eigentlich gar nicht umgestellt.
zum glück sind die configs auf FO/FB eingestellt - sonst wäre ich komplett aufgeschmissen ^^
Und noch mehr blöde Fragen:
Man kann ja CD-Keys eingeben? zu welchem Zweck? und wie?
wenn ich da meinen eingebe, dann stürzt mir das spiel schon beim laden ab....
Ich sag schon mal danke im voraus und sorry für mein unvermögen... aber alles was über PC anschalten und ausschalten geht übersteigt mein Horizont....
Gruß
Ich
@it: Hab grad oben den kompletten config vom Hammerdin gesehen - werd den mal mit meinem vergleichen (bis auf skills  ) - vllt find ich meinen fehler
|
|
|
07/28/2013, 14:53
|
#7065
|
elite*gold: 0
Join Date: Jul 2010
Posts: 331
Received Thanks: 63
|
Ist es normal, dass er nach jedem run das diabol 2 komplet neu startet ?
|
|
|
 |
|
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 07:13.
|
|