Tuesday, January 20, 2015

hilfe lech bot

Unknown
hi leute ich benutze den d2nt 3.3 ental bot bin ein frischer botter,wollt nen lecher erstellen aber der joint nicht geht ganzezeit in der freundschaftliste rein und das andauerd er joint nicht :(



ich poste mal die codes:



var NTConfig_CastRaven;



function NT_LoadConfig()

{

//-----------------------------------------------------------------------------------------------------

// If you have trouble configuring your bot, follow the links below:

// Wiki: Project Etal Wiki

// Forums: http://ift.tt/1CJOMBo

// This (& all Etal) best viewed within Notepad++ & may appear garbled in other editors.

//

// -----------------------------------------------------------------------------------------------------



//NTConfig_Script.push("ConfigCheck.ntj"); // This must be commented out & serves to prevent unconfigured characters from running.



//------------------------------------------------------------------------------>>

// Etal Clone Hunter Options.

//------------------------------------------------------------------------------>>



//NTConfig_Script.push("NTCloneHunter.ntj");

NTConfig_HotIP = [32]; // Add IP's last octet seperated by commas.

NTConfig_SaySomethingNoob = "Hot IP Found"; // Anti DC message during game.

NTConfig_JustAHunter = true; // Used if only hunting IP's, set true to idle in town (Make sure this is the only script pushed).

NTConfig_AvoidRD = 180; // Time in seconds to wait in town to avoid R/D before creating next game (NTConfig_JustAHunter must be true).



//-------------------------------------------------------------------------------

// Level announcer

//-------------------------------------------------------------------------------

NTConfig_Announcer = false; // Run the level announcer

NTConfig_LevelMin = 50; // Lowest level to announce a level up

NTConfig_Output = "Congrats on level"; // What to say on level up

NTConfig_LogIt = true; // log every level up



//------------------------------------------------------------------------------

// Leech, Leech Fighter & Team Botting Settings

//------------------------------------------------------------------------------



NTConfig_Leader = "heilliger"; // Leaders name. (Don't set to yourself.)

NTConfig_PartyOnlyLeader = true; // Party only with leader (NTConfig_Leader)? (If true, NTConfig_PublicMode MUST be set false in the general config section below).

NTConfig_PartyMaxTime = 60; // Time in seconds the leecher has to party with leader before exiting game

NTConfig_LeechBo = true; // Set false to disable BO & BC cast by leecher.

NTConfig_LeechExitDelay = 500; // Delay before leecher exits game after leader in milliseconds. Use this to stagger leechers exit times to avoid crashes.



//NTConfig_Script.push("NTLeechCows.ntj"); // Leech fighter cow script. Must run leader with NTCow.ntj

NTConfig_WaitForCowPortal = 240; // time in seconds to wait for the leader to make cow portal before aborting the script



//NTConfig_Script.push("NTTravLeader.ntj"); // Trav Leader

LeechTrav_TakeTp = "config me"; // Message from leader signifying you to take portal. (Must be different than Diablo & Baal tp messages.)

//NTConfig_Script.push("NTTravLeech.ntj"); // Trav Leecher (NTConfig_Leader must be configured above).

NTConfig_TakeTpTravincal = "config me"; // This must match leaders LeechTrav_TakeTp & must be different than Diablo & Baal tp messages.



//NTConfig_Script.push("NTUniversalDiabloLeech.ntj") ; // (NTConfig_Leader must be configured above).

NTConfig_LeechChaos = 0; // 0 = Portal Leecher, 1 = Leech follow, 2 = Leech Fighter (leech portals).

NTConfig_followDelay = 8000; // Delay in milliseconds to enter follow portal

ChaosLocx = 7763; ChaosLocy = 5267; // Hide location for Passive leecher alternate = ChaosLocx = 7767; ChaosLocy = 5263;

NTConfig_TakeTpDiablo = "config me"; // Message from leader signifying you to take portal. (Must be different than Baal & Trav tp messages.)

NTConfig_UseChatCommandPortal = true; // Use portal after TakeTpDiablo message? (False will attempt taking first TP made by leader, ignores TakeTpDiablo.)



//NTConfig_Script.push("NTUniversalBaalLeech.ntj");

NTConfig_LeechBaal = 1; // 1 = Leech Fighter (Tele), 2 = Leech Fighter (Walking), 3 = Passive Leecher (Corner dunce).

NTConfig_TakeTpBaal = "config me"; // Message from leader signifying you to take portal. (Must be different than Diablo & Trav tp messages.)

NTConfig_LeechPrecast = false; // Do you want your leecher to precast?

NTConfig_TeleEachWaveHelper = false; // Teleport bot before each wave to keep merc close (not position based yet)?

leechpos = [15118, 5003]; // X,Y coord for leechers to stand (passive leecher only).

NTConfig_LeechHydra = 0; // 0 = Don't Move, 1 = Right Side, 2 = Left Side. (Use left side if you have a leecher grabing xp shrines. (Settings Below))

NTConfig_FollowtoWorldStone = true; // Go down to Baal in WS Chamber after waves?

NTConfig_WaitAtPassiveSPotForBaal = false; // leech fighters will wait at passive leech spot for baal to enter WS Chamber. Helpful if you having problems with baal bugging and not entering portal



NTConfig_GrabShrine = "config me"; // Use shrine & return to act 5 portal Area (Leaders hot tp message is very effective, also must be different than Diablo & Trav tp messages).

_FindXPArea = []; // Area ID's, (2, 3, 4, 5, 6, 7). Set array empty "[]" to leech without grabbing shrines.

NTConfig_ClearAroundShrine = false; // Clear around shrine before going back to town?



//NTConfig_Script.push("NTHelper.ntj"); // See Beta-ish release of NTHelper.ntj | Project Etal

NTConfig_DoNotFollowAreas = [34, 35, 36, 107, 128, 129, 130, 124, 100, 101, 102]; // Won't take a WP or TP to these areas

NTConfig_DoNotAttackAreas = [34, 35, 36, 107, 128, 129, 130, 124, 100, 101, 102]; // Won't attack in these areas

NTConfig_AllowCommands = false; // Allows leader to issue commands such as 'exit', 'town', 'follow', etc. 'follow' is ON by default.

NTConfig_PortalAtLeechersCorpses = true; // Make a TP at players corpses when they die near you

NTConfig_MessageDeadPlayers = false; // Send a msg to those players when they die

NTConfig_DeadPlayerMsg = "My tp for your corpse"; // The actual message to send

NTConfig_GreetPlayers = false; // Greet players who join your party

NTConfig_GreetMsg = "Hello, %name%!"; // The message to send

NTConfig_HelperHumor = false; // 0.3% chance to say a silly phrase and skip doing the command you issued.

NTConfig_Quest_Cain = false; // true/false to do quests when using rush commands

NTConfig_Quest_Radament = false; // true/false to do quests when using rush commands

NTConfig_Quest_Izual = false; // true/false to do quests when using rush commands

NTConfig_Quest_Tome = false; // true/false to do quests when using rush commands

NTConfig_Quest_Shenk = false; // true/false to do quests when using rush commands

NTConfig_Quest_Anya = false; // true/false to do quests when using rush commands

NTConfig_Quest_Ancients = false; // true/false to do quests when using rush commands

NTConfig_Quest_Baal = false; // true/false to do quests when using rush commands

NTConfig_TpHarem = false; // true/false to tp at harem after duriel

NTConfig_KillCouncils = false; // true/false to kill all counsel members

NTConfig_ClearCS = false; // true/false to clear CS when doing diablo quest

NTConfig_CSDodge = false; // dodge in CS



//------------------------------------------------------------------------------

// Boss Configuration

//------------------------------------------------------------------------------



//------------------------------------------------------------------------------

// Act 1 Scripts

//------------------------------------------------------------------------------



//NTConfig_Script.push("NTBloodMoor.ntj");

NTConfig_ClearBloodMoor = true; // Clears Blood Moor

NTConfig_DenOfEvil = true; // Clears Den of Evil

NTConfig_ClearDenTwice = false; // Clears Den twice, good for getting quest

//NTConfig_Script.push("NTColdPlains.ntj");

NTConfig_ClearColdPlains = -1; // 0 : Bishibosh Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

NTConfig_ClearCPCaves = -1; // 0 : Cold Crow Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

NTConfig_CPSpecialChest = true; // Set to true to grab Cave level 2 chest, false if not

//NTConfig_Script.push("NTBurialGrounds.ntj");

NTConfig_ClearBurialGrounds = -1; // 0 : Blood Raven only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

NTConfig_ClearMausoleum = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearCrypt = -1; // 0 : Bonebreaker only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTStonyField.ntj");

NTConfig_ClearStony = -1; // 0 : Rakanishy only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

NTConfig_ClearTristram = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Griswold only

//NTConfig_Script.push("NTUndergroundPassage.ntj");

NTConfig_ClearPassageLevel1 = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearPassageLevel2 = false; // Set true to clear Underground Passage Level 2, false if not.

//NTConfig_Script.push("NTDarkWood.ntj");

NTConfig_ClearDarkWood = -1; // 0 : Treehead Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTBlackMarsh.ntj");

NTConfig_ClearBlackMarsh = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearForgotten = -1; // 0 : Countess Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

NTConfig_ClearTheHole = -1; // 0 : Snag chests only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTTamoeHighland.ntj");

NTConfig_ClearTamoe = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearTamoePit = -1; // 0 : Chest Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTOuterCloister.ntj");

NTConfig_ClearOCloister = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

//NTConfig_Script.push("NTBarracks.ntj");

NTConfig_ClearBarracks = 0; // 0 : Smith Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

//NTConfig_Script.push("NTJail.ntj"); // Will only clear Jail Level 1 due to pathing issues

NTConfig_ClearJail = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

//NTConfig_Script.push("NTInnerCloister.ntj");

NTConfig_ClearInnerCloister = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearCathedral = -1; // 0 : Boneash Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTCatacombs.ntj");

NTConfig_ClearAllCatacombs = 0; // 0 : Andy only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearAndarielThrone = false; // Set to true to clear the throne room after Andy, false if not



//NTConfig_Script.push("NTMooMooFarm.ntj"); // There are currently NO options for this script, still working on it

NTConfig_CowKingChicken = 95; // percentage of king's hp if below this the bot will close d2. Set to 0 to dissable. Note that this has a limited range will NOT help in pubs



//------------------------------------------------------------------------------

// Act 2 Scripts

//------------------------------------------------------------------------------



//NTConfig_Script.push("NTSewersRad.ntj");

NTConfig_RadSewerStairs = false; // Set to true to start from town stairs, false to start from the WayPoint

NTConfig_ClearRadSewers = -1; // 0 : Radament only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTRockyWaste.ntj");

NTConfig_WalkFromGohlein = true; // Set to true to walk from town, false uses WP

NTConfig_ClearRockyWaste = 1; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearStonyTomb = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTDryHills.ntj");

NTConfig_ClearDryHills = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearHallsofDead = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

//NTConfig_Script.push("NTFarOasis.ntj");

NTConfig_ClearFarOasis = -1; // 0 : BeetleBurst only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

NTConfig_ClearMaggotLair = 0; // 0 : Coldworm the Burrower Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTLostCity.ntj");

NTConfig_ClearLostCity = -1; // 0 : Dark Elder only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearAncientTunnels = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

//NTConfig_Script.push("NTClawViperTemple.ntj");

NTConfig_ClearViperTemple = 0; // 0 : Fangskin, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTHaremToCellar.ntj");

NTConfig_ClearHarem2 = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearPalaceCellar = -1; // 0 : Fire Eye only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTArcaneSanctuary.ntj");

NTConfig_ClearArcaneSanc = -1; // 0 : Summoner Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_OpenSummonerChests = false; // Set true to open the chests on the 3 Non-Summoner corners

//NTConfig_Script.push("NTCanyonOfMagi.ntj");

NTConfig_ClearMagiCanyon = 1; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_RaidTombs = -1; // 0 : Duriel Only, 1 : Chests Only, 2 : Clear Only, 3 : Everything, -1 : Disable



//------------------------------------------------------------------------------

// Act 3 Scripts

//------------------------------------------------------------------------------



//NTConfig_Script.push("NTSpiderForest.ntj");

NTConfig_ClearArachnidLair = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearSpiderForest = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearSpiderCavern = -1; // 0 : Sszark Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTGreatMarsh.ntj");

NTConfig_ClearGreatMarsh = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

//NTConfig_Script.push("NTFlayerJungle.ntj");

NTConfig_ClearFlayerJungle = -1; // 0 : StormTree Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

NTConfig_ClearFlayerDungeons = -1; // 0 : Endugu Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

NTConfig_ClearSwampyPit = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

//NTConfig_Script.push("NTLowerKurast.ntj");

NTConfig_ClearLower = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_LowerChests = false; // Set to true to grab chests, false if not

//NTConfig_Script.push("NTKurastBazaar.ntj");

NTConfig_ClearBazaar = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_BazaarChests = false; // Set to true to grab chests, false if not

NTConfig_ClearRuinedTemple = -1; // 0 : Sarina Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

NTConfig_ClearDisusedFane = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearSewersAct3 = -1; // 0 : Icehawk Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTUpperKurast.ntj");

NTConfig_ClearForgottenTemple = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearForgottenReliquary = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearUpper = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_UpperChests = false; // Set to true to grab chests, false if not

NTConfig_Script.push("NTTravincal.ntj");

NTConfig_ClearRuinedFane = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearDisusedReliquary = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearTravincal = 0; // 0 : Council Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTDuranceOfHate.ntj");

NTConfig_ClearDury = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_KillDuryCouncil = false; // Set to true to kill Council, false if not

NTConfig_KillMeph = false; // Set to true to kill Mephisto, false if not

NTConfig_MoatTrick = [true, false]; // [enable/disbale moat trick, enable/disable untimed skill]

NTConfig_RedPortal = false; // Set to true to use Red Portal, false if not



//------------------------------------------------------------------------------

// Act 4 Scripts

//------------------------------------------------------------------------------



//NTConfig_Script.push("NTOutterSteppes.ntj");

NTConfig_ClearOutterSteppes = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

//NTConfig_Script.push("NTPlainsOfDespair.ntj");

NTConfig_ClearPlains = -1; // 0 : Izual only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTCityOfDamned.ntj");

NTConfig_ClearCityOfTheDamned = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

//NTConfig_Script.push("NTRiverOfFlame.ntj");

NTConfig_ClearRiverOfFlame = -1; // 0 : Hephasto only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

NTConfig_Script.push("NTChaosSanctuary.ntj");

NTConfig_Dodge = false; //

NTConfig_FastChaos = false; // Set true to clear seal area/bosses, false for full

NTConfig_EvenFasterChaos = false; // Set to true to clear ONLY the seal bosses at each seal.

NTConfig_Entrance = false; // Set true to start from Entrance, false for Star

NTConfig_LeechSupport = false; // Set true to support leechers, false if not



//--------------------------//

// "Public Diablo Settings" //

//--------------------------//



NTConfig_CS_SafeTP = "Chaos TP up."; // Message for the Safe TP

NTConfig_CS_HotTP = "Chaos Hot TP."; // Message for the Hot TP

NTConfig_CS_NextGame = "New Game Is "; // Message after Diablo is dead

NTConfig_CS_LeechSupTP = "Leech TP up."; // Message for LeechSupport

NTConfig_CS_SealBasher = "Don't hit the seals."; // Message if people hit seals (Seal bashers, lol)



//-----------------------------------------------------------------------------------

// Act 5 Scripts

//------------------------------------------------------------------------------------



//NTConfig_Script.push("NTBloodyFoothills.ntj");

NTConfig_ClearBloodyFoothills = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_BloodyFoothillsBoss = -1; // 0 : Shenk, 1: Dac Farren, 2 : Both, -1 : Disable

//NTConfig_Script.push("NTFrigidHighlands.ntj");

NTConfig_ClearFrigidHighlands = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_KillEldritch = false; // Set true to kill Eldritch, false if not

NTConfig_KillSharptooth = false; // Set true to kill Sharptooth Slayer, false if not

NTConfig_KillEyeBack = false; // Set true to kill Eyeback The Unleashed, false if not

NTConfig_ClearAbaddon = 0; // 0 : Chest Only, 1 : Clear Path 2 : Clear All

//NTConfig_Script.push("NTArreatPlateau.ntj");

NTConfig_ClearArreatPlateau = 0; // 0 : Thresh Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

NTConfig_ArreatEvilUrn = false; // Set true to open Evil Urn, false if not

NTConfig_ClearPitOfAcheron = 0; // 0 : Chest Only, 1 : Clear Path 2 : Clear All

//NTConfig_Script.push("NTCrystallinePassage.ntj");

NTConfig_ClearCrystalline = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearFrozenRiver = 0; // 0 : Frozenstein Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTNihlathaksTemple.ntj");

NTConfig_UseTemplePortal = false; // Use red portal in act 5? (Set false for waypoint.)

NTConfig_KillPindleskin = false; // Set true to kill Pindleskin, false if not

NTConfig_KillNihlathak = false; // Set true to kill Nihlathak, false if not

NTConfig_OpenEvilUrnOrChests = -1; // 0 : Evil Urn, 1 : Super Chests, 2 : Both, -1 : Don't Open

NTConfig_ClearHalls = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_CheckVipers = false; // End script if Tomb Vipers are found around Nihlathak?

//NTConfig_Script.push("NTGlacialTrail.ntj");

NTConfig_ClearGlacialTrail = 0; // 0 : Bonesaw Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

NTConfig_ClearDrifterCavern = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

//NTConfig_Script.push("NTFrozenTundra.ntj");

NTConfig_ClearFrozenTundra = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearInfernalPit = 0; // 0 : Chest Only, 1 : Clear Path 2 : Clear All

//NTConfig_Script.push("NTAncientsWay.ntj");

NTConfig_ClearAncientWay = 0; // 0 : Don't Clear, 1 : Clear All, 2 : Clear While Skipping Regular Monsters

NTConfig_ClearIcyCellar = 0; // 0 : SnapChip Only, 1 : Clear All, 2 : Clear While Skipping Regular Monsters, -1 : Disable

//NTConfig_Script.push("NTWorldstoneKeep.ntj");

NTConfig_ClearWorldStoneKeep = 0; // 0 : Baal Run Only, 1 : Clear Path 2 : Clear All (From Waypoint)

NTConfig_MakeWSK3TP = false; // Make WS3 TP for help clearing the Throne

NTConfig_CheckSoulKillers = false; // End script if Stygian Dolls are found in Throne

NTConfig_MakeHotTP = true; // Make a hot TP before clearing Throne

NTConfig_PreWaveTele = false; // Teleport before wave to keep merc close

NTConfig_Wave2PSNCheck = false; // Heal after wave 2 if poisoned

NTConfig_Wave3Move = 0; // 0 : Don't Move, 1 : Right Side, 2 : Left Side

NTConfig_TownBeforeBaal = false; // Check inventory & town if holding any items before going to Worldstone to kill Baal. (Requires NTConfig_FreeSpace correctly configured.)

NTConfig_KillBaal = true; // Set true to kill Baal, false if not



//------------------------\\

// "Public Baal Settings" \\

//------------------------\\



NTThrone_Announce = true; // Announce mobs in the Throne room pre-tp?

Baal_WSK3_TP_MSG = "TP for WS lvl 3 up, help me clear throne"; // Message for portal in WS lvl 3. (Clears throne faster with help.)

Baal_HotTp = "TP up."; // Hot TP message. (NTConfig_MakeHotTP must be set true.)

Baal_SafeTp = "TP safe."; // What to say when bot opens the safe TP.

Baal_KillBaalMessage = "Let's kill Baal!"; // What to say after last wave, before entering chamber.

Baal_NextGameMessage = "Etal Bot - ProjectEtal.com"; // What to say after killing Baal. (We appriciate those who leave the shameless plug.)

Baal_FreeSpaceMessage = "Towning to clear space"; // Used with NTConfig_FreeSpaceBeforeBaal for message before going to town to clear inventory

Baal_BSayNextGame = "Next game will be "; // Message before announcing next game. "Next game will be chaos" for example. (Leave empty to disable.)



//------------------------------------------------------------------------------

// NTWPGrabber Instructions

//------------------------------------------------------------------------------

// NTWPGrabber iterates through areas grabbing relevant waypoints.

// * NTWPGrabber can be started (pause / unpause) in any area & will start from this point going forward.

//

// Uncomment (remove the preceeding "//") to enable quests. (The quest module will not run unless at least one is uncommented).

// * If the quest is already done, this will be detected & skipped. (Disable those you cannot handle...)

//

// It's HIGHLY recommended to disable all normal pickits while running the quest module.

// * Quest nip is required while running the quest module.

// * Make sure you have space in your stash (& a clear cube) for the quest items

//

// Your character WILL die if you cannot handle the quest.

//------------------------------------------------------------------------------



//NTConfig_Script.push("NTWPGrabber.ntj");



NTConfig_DoQuests =

[

//"Den Of Evil",

//"The Search For Cain",

//"Radament's Lair",

//"Horadric cube",

//"Lam Esen's Tome",

//"Golden Bird", // After Esen's Tome will clear the Ruined Temple in attempt for the Bird. (Doesn't always drop.)

//"Golden Bird Travincal", // Will attempt to drop the Bird from Council. (Doesn't always drop.)

//"Fallen Angel",

//"Siege on Harrogath",

//"Prison Of Ice",

//"Rite Of Passage",

];



//NTConfig_NIPFilePath.push("Quest.nip"); // Uncomment this to pick quest items.



//------------------------------------------------------------------------------

// Misc. Scripts

//------------------------------------------------------------------------------



//NTConfig_Script.push("WpGiver.ntj"); // Gives waypoints to another character via in-game chat commands.

//NTConfig_Script.push("mulelogger.ntj"); // Blank Script, loads Libs, CharConfig & Nips & enters delay loop.

//NTConfig_Script.push("TLNipCheck.ntj"); // Checks for errors in pickit files. (Alternatively, you can also use NumPad "+" while ingame.)

//NTConfig_Script.push("TLInventory.ntj"); // Logs items to text file. (Alternatively, you can use NumPad "5" while ingame.)

NTConfig_TLInventory_SkipEquipped = true; // Skip logging what you have equipped (useful for logging mules).



NTConfig_HostileHandler = true; // true to use the new hostile handler

RunFromHostiles = true; // true to leave game when hostiled

KillHostiler = true; // true to kill the hostile player

TauntHostile = true; // true to taunt the hostiler, false if not



//------------------------------------------------------------------------------

// Speed Settings

//------------------------------------------------------------------------------

me.maxgametime = 1200; // Maximum game length in seconds (0 is infinite).

NTConfig_MinIngameTime = 0; // Amount of minutes to remain ingame. Ensures game length. Setting is in minutes

NTConfig_StartDelay = 0; // Delay time in milliseconds to wait at start.

NTConfig_AreaDelay = 500; // Delay time in milliseconds to wait on each area change.

NTConfig_SnagDelay = 500; // Delay time in milliseconds (added to ping delay) to wait before each pickit call.



//------------------------------------------------------------------------------

// Chicken settings

//------------------------------------------------------------------------------

NTConfig_SkipHealLife = 90; // If you are over this percentage of life, you won't go to a healer.

NTConfig_SkipHealMana = 70; // If you are over this percentage of mana, you won't go to a healer.



NTConfig_LifeThresh = 85; // Drink a health potion if under this percent of life.

NTConfig_LifeRejuvThresh = 45; // Drink a rejuvenation potion if under this percent of life. (Will not use health potions under this %)

NTConfig_ManaThresh = 30; // Drink a mana potion if under this percent of mana.

NTConfig_ManaRejuvThresh = 0; // Drink a rejuvenation potion if under this percent of mana. (Will not use mana potions under this %)



NTConfig_EtalLifeChicken = 30; // This is your Etal chicken life percent. If you go below this life total, exit D2.

NTConfig_EtalManaChicken = 0; // This is your Etal chicken mana percent. If you go below this mana total, exit D2.

NTConfig_ChickenStyle = 0; // What kind of chicken? 0 to CloseD2 - 1 to Exit game (Closing D2 is safer)



NTConfig_TPChicken = 0; // Under this % of health will attempt to tp to town and heal. (Set 0 to disable.)

NTConfig_MercTPChicken = 0; // Under this % of Merc health will attempt to tp to town and heal. (Set to 0 to disable.)



NTConfig_MercLifeThresh = 50; // Give merc a health potion if under this percent of life.

NTConfig_MercRejuvThresh = 30; // Give merc a rejuvenation potion if under this percent of life. (Will not use health potions under this %)

NTConfig_MercChicken = 0; // This is your mercs chicken life percent. If he goes below this, exit game. (Set 0 to disable.)



//------------------------------------------------------------------------------

// Inventory settings

//------------------------------------------------------------------------------

NTConfig_FreeSpaceBeforeBoss = 2; // If # of free columns is less than this, will town before killing bosses.

NTConfig_FreeSpace = 4; // Number of free columns. If bot has less than this amount after id'ing, it will go to stash.



// These numbers correspond to your inventory. Set 0 to keep whatever is there, 1 to have the bot manage the slot.

NTConfig_Columns[0] = [1,1,1,1,1,0,0,0,0,0];

NTConfig_Columns[1] = [1,1,1,1,1,0,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];



NTConfig_MinGoldToStash = 100000; // Maximum gold amount carried before going to stash



//----------------------------------------------------------------------------------------------

// Belt Settings

// Type of potion used in each belt column

// Available types : "hp" = health | "mp" = mana | "rv" = rejuv. Can use other potion types too.

// Keep equal types at adjacent columns. First HP then MP and then HP again is a bad choice.

// Keep HP and MP at the beginning of the belt (in case you want to use rejuv and other types).

// Rejuvenations MUST, I REPEAT MUST be at the end of the belt (last x columns).

// To use rejuvenations only, put "rv" in all columns.

//----------------------------------------------------------------------------------------------

NTConfig_BeltColType[0] = "hp";

NTConfig_BeltColType[1] = "hp";

NTConfig_BeltColType[2] = "mp";

NTConfig_BeltColType[3] = "rv";



//-----------------------------------------------------------------------------------

// Pickit (SnagIt) Configuration

// * Select one group only (normal / advance / extreme / Master)

//-----------------------------------------------------------------------------------

//NTConfig_NIPFilePath.push("normal/normal.nip");

//NTConfig_NIPFilePath.push("normal/magic_rare.nip");

//NTConfig_NIPFilePath.push("normal/set.nip");

//NTConfig_NIPFilePath.push("normal/unique.nip");

//NTConfig_NIPFilePath.push("normal/craft.nip");

//NTConfig_NIPFilePath.push("normal/key.nip");



//NTConfig_NIPFilePath.push("advance/normal.nip");

//NTConfig_NIPFilePath.push("advance/magic_rare.nip");

//NTConfig_NIPFilePath.push("advance/set.nip");

NTConfig_NIPFilePath.push("advance/unique.nip");

//NTConfig_NIPFilePath.push("advance/craft.nip");

//NTConfig_NIPFilePath.push("advance/key.nip");



NTConfig_NIPFilePath.push("extreme/normal.nip");

NTConfig_NIPFilePath.push("extreme/magic_rare.nip");

//NTConfig_NIPFilePath.push("extreme/set.nip");

NTConfig_NIPFilePath.push("extreme/unique.nip");

//NTConfig_NIPFilePath.push("extreme/craft.nip");

//NTConfig_NIPFilePath.push("extreme/key.nip");



NTConfig_NIPFilePath.push("Master/Charms.nip");

//NTConfig_NIPFilePath.push("Master/Crafted.nip");

//NTConfig_NIPFilePath.push("Master/Cubed.nip");

//NTConfig_NIPFilePath.push("Master/CustomAdditions.nip");

//NTConfig_NIPFilePath.push("Master/FAST.nip");

NTConfig_NIPFilePath.push("Master/Gold Potions Runes Gems Essences Keys Organs.nip");

NTConfig_NIPFilePath.push("Master/Magic.nip");

NTConfig_NIPFilePath.push("Master/Rare.nip");

//NTConfig_NIPFilePath.push("Master/Set.nip");

//NTConfig_NIPFilePath.push("Master/Unid.nip");

NTConfig_NIPFilePath.push("Master/Unique.nip");

NTConfig_NIPFilePath.push("Master/White.nip");

//NTConfig_NIPFilePath.push("Master/Runeword.nip");



NTConfig_SnagRange = 40; // Radius to check for dropped items. 40 is a good number here



//------------------------------------------------------------------------------

// Runeword configuration

//

// * Format: NTConfig_Runeword.push([base item classid, rune1 classid, rune2 classid....]);

// * Use NTItemAlias.ntl to find classids

// * YOU MUST USE THE EXACT ORDER OF RUNES

// * Base item needs to be in the pickit, rest is picked auto.

// * To keep a runeword, include NTConfig_KeepRuneword.push("pickit syntax"); after NTConfig_Runeword.push

//------------------------------------------------------------------------------



NTConfig_MakeRunewords = false;



//NTConfig_Runeword.push([498, 616, 619, 618, 620]); // Sacred Targe, Tal, Thul, Ort, Amn SPIRIT

NTConfig_KeepRuneword.push("[name] == sacredtarge # [fcr] >= 35");



//NTConfig_Runeword.push([447, 616, 619, 618, 620]); // Monarch, Tal, Thul, Ort, Amn SPIRIT

NTConfig_KeepRuneword.push("[name] == monarch # [fcr] >= 35");



//NTConfig_Runeword.push([29, 616, 619, 618, 620]); // Crystal Sword, Tal, Thul, Ort, Amn SPIRIT

NTConfig_KeepRuneword.push("[name] == crystalsword # [fcr] >= 35");



//NTConfig_Runeword.push([254, 617, 612, 616, 621]); // Colossus Voulge, Ral, Tir, Tal, Sol

NTConfig_KeepRuneword.push("[name] == ColossusVoulge # [fcr] >= 35");



//NTConfig_Runeword.push([255, 617, 612, 616, 621]); // Thresher, Ral, Tir, Tal, Sol

NTConfig_KeepRuneword.push("[name] == thresher # [fcr] >= 35");



//NTConfig_Runeword.push([256, 617, 612, 616, 621]); // Cryptic Axe, Ral, Tir, Tal, Sol

NTConfig_KeepRuneword.push("[name] == crypticaxe # [fcr] >= 35");



//NTConfig_Runeword.push([21, 627, 635, 630, 619]); // Flail, Ko, Vex, Pul, Thul

NTConfig_KeepRuneword.push("[name] == flail # [fcr] >= 40");



//NTConfig_Runeword.push([21, 620, 617, 632, 633, 636]); // Flail, Amn, Ral, Mal, Ist, Ohm

NTConfig_KeepRuneword.push("[name] == flail # [IAS] >= 40");



//NTConfig_Runeword.push([29, 620, 617, 632, 633, 636]); // Crystal Sword, Amn, Ral, Mal, Ist, Ohm

NTConfig_KeepRuneword.push("[name] == crystalsword # [IAS] >= 40");



//------------------------------------------------------------------------------

// Cubing configuration

//------------------------------------------------------------------------------

NTConfig_Cubing = false; // Enable Cubing?



//NTConfig_CubingItem.push([NTCU_GEM, 560]); // Flawless Amethyst

//NTConfig_CubingItem.push([NTCU_GEM, 565]); // Flawless Topaz

//NTConfig_CubingItem.push([NTCU_GEM, 570]); // Flawless Saphire

//NTConfig_CubingItem.push([NTCU_GEM, 575]); // Flawless Emerald

//NTConfig_CubingItem.push([NTCU_GEM, 580]); // Flawless Ruby

//NTConfig_CubingItem.push([NTCU_GEM, 585]); // Flawless Diamond

//NTConfig_CubingItem.push([NTCU_GEM, 600]); // Flawless Skull



//NTConfig_CubingItem.push([NTCU_MAGIC, 420]); // Magic Tiara

//NTConfig_CubingItem.push([NTCU_MAGIC, 421]); // Magic Diadem

//NTConfig_CubingItem.push([NTCU_MAGIC, 285]); // Maiden Javelin - ilvl 71

//NTConfig_CubingItem.push([NTCU_MAGIC, 295]); // Ceremonial Javelin - ilvl 77

//NTConfig_CubingItem.push([NTCU_MAGIC, 305]); // Matriarchal Javelin - ilvl 80



//NTConfig_CubingItem.push([NTCU_MAGIC_CHARM, 603]); // Magic Small Charm

//NTConfig_CubingItem.push([NTCU_MAGIC_CHARM, 605]); // Magic Grand Charm



//NTConfig_CubingItem.push([NTCU_CRAFT_HITPOWER_GLOVES, 382]); // Craft Heavy Bracers

//NTConfig_CubingItem.push([NTCU_CRAFT_HITPOWER_GLOVES, 452]); // Craft Vambraces



//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_HELM, 354]); // Craft Blood Casque

//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_HELM, 424]); // Craft Blood Armet

//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BOOTS, 388]); // Craft Blood Battle Boots

//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BOOTS, 458]); // Craft Blood Mirrored Boots

//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_GLOVES, 381]); // Craft Blood Sharkskin Gloves

//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_GLOVES, 451]); // Craft Blood Vampirebone Gloves

//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BELT, 392]); // Craft Blood Mesh Belt

//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BELT, 462]); // Craft Blood Mithril Coil

//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_AMULET, 520]); // Craft Blood Amulet

//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_RING, 522]); // Craft Blood Ring



//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_AMULET, 520]); // Craft Caster Amulet

//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_BOOTS, 385]); // Craft Caster Demonhide Boots

//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_BOOTS, 455]); // Craft Caster Wyrmhide Boots

//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_BELT, 461]); // Craft Caster Vampirefang Belt

//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_BELT, 391]); // Craft Caster Sharkskin Belt



//NTConfig_CubingItem.push([NTCU_CRAFT_SAFETY_SHIELD, 447]); // Craft Monarch

//NTConfig_CubingItem.push([NTCU_CRAFT_SAFETY_AMULET, 520]); // Craft Amulet



//NTConfig_CubingItem.push([NTCU_ESSENSE, 0]);



//NTConfig_CubingItem.push([NTCU_RUNE_THUL, 562]);

//NTConfig_CubingItem.push([NTCU_RUNE_AMN, 557]);

//NTConfig_CubingItem.push([NTCU_RUNE_SOL, 567]);

//NTConfig_CubingItem.push([NTCU_RUNE_SHAEL, 577]);

//NTConfig_CubingItem.push([NTCU_RUNE_DOL, 572]);

//NTConfig_CubingItem.push([NTCU_RUNE_HEL, 582]);

//NTConfig_CubingItem.push([NTCU_RUNE_IO, 563]);

//NTConfig_CubingItem.push([NTCU_RUNE_LUM, 558]);

//NTConfig_CubingItem.push([NTCU_RUNE_KO, 568]);

//NTConfig_CubingItem.push([NTCU_RUNE_FAL, 578]);

//NTConfig_CubingItem.push([NTCU_RUNE_LEM, 573]);

//NTConfig_CubingItem.push([NTCU_RUNE_PUL, 583]);

//NTConfig_CubingItem.push([NTCU_RUNE_UM, 564]);

//NTConfig_CubingItem.push([NTCU_RUNE_MAL, 559]);

//NTConfig_CubingItem.push([NTCU_RUNE_IST, 569]);

//NTConfig_CubingItem.push([NTCU_RUNE_GUL, 579]);

//NTConfig_CubingItem.push([NTCU_RUNE_VEX, 574]);

//NTConfig_CubingItem.push([NTCU_RUNE_OHM, 584]);

//NTConfig_CubingItem.push([NTCU_RUNE_LO, 565]);

//NTConfig_CubingItem.push([NTCU_RUNE_SUR, 560]);

//NTConfig_CubingItem.push([NTCU_RUNE_BER, 570]);

//NTConfig_CubingItem.push([NTCU_RUNE_JAH, 580]);

//NTConfig_CubingItem.push([NTCU_RUNE_CHAM, 575]);



//***** Include the following, Primary item must be setted in item_configs folder *****



//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 436]); // Socket Great Hauberk

//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 435]); // Socket Boneweave

//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 443]); // Socket Archon Plate

//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 438]); // Socket Hellforge Plate

//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 439]); // Socket Kraken Shell

//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 442]); // Socket Sacred Armor



//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 254]); // Socket Colossus Voulge

//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 255]); // Socket Thresher

//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 256]); // Socket Cryptic Axe

//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 257]); // Socket Great Poleaxe

//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 258]); // Socket Giant Thresher

//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 29]); // Socket Crystal Sword



//NTConfig_CubingItem.push([NTCU_SOCKET_SHIELD, 447]); // Socket Monarch



//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 148]); // HONE SUNDAN : Exceptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 157]); // RIBCRACKER : Exceptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 103]); // SUICIDE BRANCH : Exceptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 295]); // TITANS'S REVENGE : Exceptional -> Elite



//NTConfig_CubingItem.push([NTCU_UPGRADE_N_UNIQUE_ARMOR, 335]); // BLOODFIST : Normal -> Exceptional

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 381]); // BLOODFIST or GRAVEPALM: Exceptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_N_UNIQUE_ARMOR, 337]); // MAGEFIST : Normal -> Exceptional

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 383]); // MAGEFIST or LAVA GOUT : Exceptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_N_UNIQUE_ARMOR, 339]); // HOTSPUR: Normal -> Exceptional

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 385]); // HOTSPUR or INFERNOSTRIDE : Exeptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 386]); // WATERWALK : Exeptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 389]); // GORE RIDER : Exceptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 360]); // SKIN OF THE VIPERMAGI : Exceptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 365]); // SHAFTSTOP : Exeptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 420]); // KIRA'S GUARDIAN : Exeptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 477]); // ARREAT'S FACE : Exceptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 487]); // HOMUNCULUS : Exceptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 481]); // HERALD OF ZAKARUM : Exceptional -> Elite



//------------------------------------------------------------------------------

// Gamble Configuration

// * To specify what items to gamble, adjust the array with the desired item codes.

//------------------------------------------------------------------------------

NTConfig_Gamble = false; // Enable gambling?

NTConfig_GambleStartGold = 2000000; // Gold amount to start the gambling.

NTConfig_GambleStopGold = 300000; // Gold amount to stop the gambling.



NTConfig_GC = false; // Enable gambling for craft amulet. This will keep one amulet for crafting on you when possible. Requires char lvl >= 88.

NTConfig_GCAmuGold = 300000; // Gold amount to stop gambling for amulet to craft.



NTConfig_GambleItem.push(520); // Amulets

NTConfig_GambleItem.push(522); // Rings

NTConfig_GambleItem.push(418); // Circlets

NTConfig_GambleItem.push(419); // Coronets

//NTConfig_GambleItem.push(334); // Leather Gloves

//NTConfig_GambleItem.push(335); // Heavy Gloves

//NTConfig_GambleItem.push(336); // Chain Gloves

//NTConfig_GambleItem.push(337); // Light Gauntlets

//NTConfig_GambleItem.push(338); // Gauntlets

NTConfig_GambleItem.push(331); // Kite Shield



//------------------------------------------------------------------------------

// General configuration

//------------------------------------------------------------------------------

NTConfig_PublicMode = false; // Enables "Public" features (Partying, Tp'ing etc). (Cannot be true while NTConfig_PartyOnlyLeader is.)

NTConfig_CheckCloneDiablo = false; // Set to true if you want to wait in game after "Diablo Walks the Earth" msg.

NTConfig_SoJWaitTime = 0; // Time in minutes to wait for the next SoJ sale. Set to 0 to disable SoJ notifier.

NTConfig_ExitonDclone = false; // Exit game on Diablo Walks

NTConfig_FastPickit = false; // This is a new option that causes far less crashes(maybe none). Is independent of snag delay

NTConfig_UseMerc = true; // Set true if you will use a mercenary, will revive merc at a reviver npc.

NTConfig_ResetEnigma = false; // Set true to reset enigma when tele bug exists. (Safe.)

NTConfig_QuitOnPing = 900; // Ping threshold. (0 to disable.)

NTConfig_PingInterval = 10; // If ping is greater than threshold for x seconds, exit game. (0 = Disabled, x = Time Interval In Seconds.)

NTConfig_ClearPosition = false; // Set true if you want to clear area after killing boss.

NTConfig_PrioritizeWeakerFoes = false; // Enable to kill weaker foes with higher priority as well as clear areas of minions and other foes prior to killing bosses

NTConfig_PrioritizeWeakerFoesAreaDisable = []; // Use IDs from D2NT\sdk\areas.txt to disable for specific areas, e.g. [124,83] would disable Nihlathak and Travincial

NTConfig_SwitchTele = false; // Use tab 2 for teleporting (higher fcr breakpoint in tab 2)? (Slight chance of breaking an eth cta spirit.)

NTConfig_PreBuffFade = false; // Stand in fire until fade is triggered? (Must have Last Wish / Treachery etc.)

NTConfig_StopIfStashInventoryFull = false; // Pauses bot when stash/inventory are full. (Helpful for HardCore players.) Must configure NTConfig_FreeRowsQuit below.

NTConfig_FreeRowsQuit = 2; // If after stashing less than this number of inventory columns are free, bot will pause.

NTConfig_SkipRegularMonsters = false; // If true will only kill Champions, Uniques and Bosses.

NTConfig_DropExtraRejuvs = false; // When belt is full bot will either drop extra rejuvs when a new rejuv is found or drink them. (true to drop, false to drink).

NTConfig_TeleGrab = 0; // 0 = No, 1 = Yes. Changes pickit to run after each teleport (instead of after each clear call). (Recommended for aura stacking only with a NTConfig_SnagDelay of 0.) (Can cause complications (chickens etc) depending on system / setup.)

NTConfig_CheckPassword = false; // Check for game password, quit if none.

NTConfig_GoWestFromLut = false; // Use Warriv to go to A1 for town functions if starting in A2

NTConfig_MinPots = 1; // If less then this many (Health or Mana) potions, will return to town on checkselfsafe 0x01 is calls.

NTConfig_CheckPotsTown = 0; // If less then this many (Health or Mana) potions, will shop them in normal town functions. Set 0 to always shop them

NTConfig_AutoMule = false; // Set to true to enable muling. Requires NTMule entry point.

NTConfig_FinishRun = false; // true will finish current game. Good for if running the leecher entry or if running main as leader.

NTConfig_MuleStash = 8; // Set this to the free block limit in your Stash. If less than this mule.

NTConfig_MuleInv = 2; // Set this to the free column limit in your Inventory. If less than this mule. Must be set to higher than NTConfig_FreeSpace

NTConfig_UseKeysForPlaceHolder = true; // Set to true to keep a key in your inventory. (In the event that the bot has no space for ID scrolls, will sell the key instead of one of your items.)

NTConfig_PropsForEtal = 1; // Advertising etal at the end of public games. set to 0 to disable. Set to 1 or greater for the number of phrases spoken before exiting public games. See D2NT\scripts\NTBot\char_configs\EtalPR.ntl for instructions on adding or removing phrases

NTConfig_MercStats = false; // Prints Merc stats to Common Log with Char stats if true

NTConfig_VoyageToMissingWps = true; // when missing a wp setting this to true will have the bot path to and grab the missing wp



NTConfig_ChatRecording = false; // Logs all in game chat to a .txt file in D2NT/scripts/logs/ChatR folder

NTConfig_WhisperToManager = false; // Logs whispers from in-game to your manager

NTConfig_WhisperToTab = "common"; // Choose which tab whispers go to, either "common" or "item"



//-------------------------------------------------------------------------------

// Advanced XML Item Logging

//-------------------------------------------------------------------------------

NTConfig_UseXMLItemlog = false; // Log kept, sold and ignored items in an XML log file?

NTConfig_IndependantLog = true; // Create a seperate file for each character. Item Logfile is found in logs/Item Log/

NTConfig_LogSoldItems = false; // Logs items sold to item logfile?

NTConfig_LogIgnoredItems = false; // Log ignored items to item logfile?

NTConfig_LogCraftedItems = false; // Log crafted items to item logfile?

NTConfig_LogItemQuality = 5; // Quality of items logged is >= of value: (3 = White, 4 = Magic, 5 = Sets, 6 = Rares, 7 = Uniques, 8 = Crafted).



//-------------------------------------------------------------------------------

// General Log File Options

//-------------------------------------------------------------------------------

NTConfig_LogShrines = false; // Log shrines found by NTConfig_Shrines array?

NTConfig_LogCraftingString = false; // Log the string of ingredients that goes into cube?



//------------------------------------------------------------------------------

// Manager Log Options

//------------------------------------------------------------------------------

NTConfig_LogSoldItemQuality = 7; // Quality of items logged is >= of value: (3 = White, 4 = Magic, 5 = Sets, 6 = Rares, 7 = Uniques, 8 = Crafted, 0 = Disabled).

NTConfig_CubeProcessToManager = 2; // Logs the string of ingredients that goes into cube (0 = Don't Log, 1 = Log In Item Log, 2 = Log To Common Log).



//-------------------------------------------------------------------------------

// Immunity Skipping

//-------------------------------------------------------------------------------

NTConfig_AreasToNotSkipImmunes = [131, 108]; // Add area ID's into the array seperated by "," for to disable immunity skipping within said area.



NTConfig_SkipSingle[0] = false; //Skips all physical immunes.

NTConfig_SkipSingle[1] = false; //Skips all magic immunes.

NTConfig_SkipSingle[2] = false; //Skips all fire immunes.

NTConfig_SkipSingle[3] = false; //Skips all lightning immunes.

NTConfig_SkipSingle[4] = false; //Skips all cold immunes.

NTConfig_SkipSingle[5] = false; //Skips all poison immunes.



NTConfig_SkipDual[0] = false; //Skips all dual physical + magic immunes.

NTConfig_SkipDual[1] = false; //Skips all dual physical + fire immunes.

NTConfig_SkipDual[2] = false; //Skips all dual physical + lightning immunes.

NTConfig_SkipDual[3] = false; //Skips all dual physical + cold immunes.

NTConfig_SkipDual[4] = false; //Skips all dual physical + poison immunes.

NTConfig_SkipDual[5] = false; //Skips all dual magic + fire immunes.

NTConfig_SkipDual[6] = false; //Skips all dual magic + lightning immunes.

NTConfig_SkipDual[7] = false; //Skips all dual magic + cold immunes.

NTConfig_SkipDual[8] = false; //Skips all dual magic + poison immunes.

NTConfig_SkipDual[9] = false; //Skips all dual fire + lightning immunes.

NTConfig_SkipDual[10] = false; //Skips all dual fire + cold immunes.

NTConfig_SkipDual[11] = false; //Skips all dual fire + poison immunes.

NTConfig_SkipDual[12] = false; //Skips all dual lightning + cold immunes.

NTConfig_SkipDual[13] = false; //Skips all dual lightning + poison immunes.

NTConfig_SkipDual[14] = false; //Skips all dual cold + poison immunes.



//------------------------------------------------------------------------------

// ID Options & Other Town Configs

//------------------------------------------------------------------------------

NTConfig_IdInField = false; // set to true to have bot id items in field. MUST have a tome of id in inventory

NTConfig_FreeSpaceXY = [2, 4]; // free block if less bot will id. Easiest way to explain this is [2,4] would be free space big enough to hold a thresher

NTConfig_AnnounceDroppedItems = false; // anounce items that are being dropped. NOTE does not work with items sold to vendor

NTConfig_dropMessages = [ // randomly selected phrase used for NTConfig_AnnounceDroppedItems. Add as many as you want following the provided format

"up for grabs ",

"dropping ",

"tossing ",

"free item on ground ",

];



NTConfig_IdentAtCain = true; // Identify @ Cain? (Quicker & will skip using cain if something in inventory is suppose to be kept unidentified. Will not log sold items.)

NTConfig_PocketChange = 500000; // Amount of gold you want to keep on hand used for repairs. Make adjustments to this & repair % to keep equipment from breaking.

NTConfig_DontCainAct = []; // List any act you don't want to use cain on seperated by ",". Set to "0" to id in all acts.

NTConfig_Repair = "60"; // Set to how much durability you want to repair at, 40 is normal, 99 is as soon as you loose one point.

NTConfig_AlwaysUseCain = false; // Always use cain to ID? (Will ID items which are set to keep unid if they are in the inventory when visiting Cain.)

NTConfig_DropCainItems = false; // set to true to drop items/false sells them to vendor



//------------------------------------------------------------------------------

// DPS Meter Config

//------------------------------------------------------------------------------

DPSMeter = false; // This toggles the DPS Meter on / off.

miniDPSDisplay = false; // Set true if you run a resolution below 800*600. (Formatting removed.)

DPSScanSpeed = 50; // Delay between each scan (in ms).

DPSDisplayRate = 1000; // Interval DPS is recalculated and displayed (in ms). (Default 1000.)

DPSScanHist = 2; // Scan history (in seconds) to average. (Default 2.)



//----------------------------------------------------------------------------------

//Open chest configs configs.

// * Chest ID's can be added to NTConfig_Chestids. Look for ID's in "Chest ID's.txt".

//----------------------------------------------------------------------------------

NTConfig_OpenChest = false; // Open most super unique chests at the end of runs. (Chest ID settings below do not effect this.)

NTConfig_CheckChestid = false; // Print chest ID's to screen as they're opened?

NTConfig_OpenChestsInAreaClearing = false; // Open chests while using clear functions? (Uses NTConfig_Chestids.)



// Remove area / chest ID's in the arrays below to open (all chests within removed area) / (specific chest).

// * Current area ID can be displayed ingame by pressing Num Pad "*".

// * Nearby chest ID's can be displayed ingame by pressing Num Pad "2".

// * A partial list of chest id's can be found in your D2NT\scripts\NTBot\char_configs\Chest ID's.txt. NOTE some of these are wrong.



NTConfig_AreasToOpenChestClearing = []; // Enter areas for chests to be cleared within. (Areas seperated by commas.)



NTConfig_Chestids = [104, 105, 106, 107, 5, 6, 87, 143, 140, 141, 144, 146, 147, 148, 174, 175, 176, 177, 181, 183, 198,

240, 241, 242, 243, 329, 330, 331, 332, 333, 334, 335, 336, 354, 355, 356, 371, 387, 389, 390,

391, 397, 405, 406, 407, 413, 420, 424, 425, 430, 431, 454, 455, 501, 502, 504, 505,

580, 581, 1, 3, 50, 51, 53, 79, 54, 55, 56, 57, 58, 20, 55, 139, 155, 159];



//------------------------------------------------------------------------------

// Shrine Grabber Settings

//------------------------------------------------------------------------------



NTConfig_ShareExpShrine = false; // Cleare around exp shrines and TP? (Will not grab experience shrines if true.)

NTConfig_Shrines = [0, 0, 0, 0, 0]; // Change 0's to the corresponding #'s found in /D2NT/sdk/shrines.txt (To add more shrines, seperate values with a comma.)



//------------------------------------------------------------------------------

// Attack Configuration

// * Change the -1's to the corresponding #'s found in /D2NT/sdk/skills.txt

// * As of Jan 17th: -1 = Disabled, 0 = Normal Attack.

//------------------------------------------------------------------------------

NTConfig_AttackSkill[0] = 245; // First skill. Maybe slow missiles

NTConfig_AttackSkill[1] = 245; // Primary skill to super unique/champion.

NTConfig_AttackSkill[2] = 245; // Primary untimed skill to super unique/champion.

NTConfig_AttackSkill[3] = 245; // Primary skill to others.

NTConfig_AttackSkill[4] = 245; // Primary untimed skill to others.

NTConfig_AttackSkill[5] = 250; // Secondary skill in case monster is immune to primary skill.

NTConfig_AttackSkill[6] = 250; // Secondary untimed skill.

NTConfig_AttackSkill[7] = 1; // Tertiary skill to everything else in case monster is immune to both primary and secondary.

NTConfig_AttackSkill[8] = 235; // Tertiary untimed skill.

NTConfig_AttackSkill[9] = 1; // Primary skill to boss (diablo/baal/meph/etc) Not immune to spells I guess.



NTConfig_DiaSpam = 0; // Skill to spam before Diablo Spawns



DruidPreAtt = [15092, 5028, 1]; // Pre-Wave attack position (X,Y,On/Off (0 for off, 1 for on)). (This only works if NTConfig_AttackSkill[3] is set to nado.)

prewavespot = [15092, 5040]; // Pre-Wave standing (X,Y) coordinates. (For Baal Scripts.)



NTconfig_HighMaxAttack = false; // Use HighMaxAttacks? (False = LowMaxAttacks.) High/Low are below.

NTConfig_HighMaxAttackAreas = [131]; // If above is set false (you're using LowMaxAttacks), add areas to bypass LowMaxAttacks and use HighMaxAttacks instead. (Recommended in Baal's Throne Room.)



NTConfig_HighMaxAttacks = 300; // Maximum number of attacks (HIGH) before skipping.

NTConfig_LowMaxAttacks = 20; // Maximum number of attacks (LOW) before skipping.



MonstersToAttackFirst = // Monster ID's to attack first. (Monsters which resurrect / spawn others are good choices.)

[58,59,60,61,62,101,102,103,104,190,191,

192,193,194,206,207,208,209,228,239,240,

241,278,279,280,281,282,283,303,312,480,

481,482,483,484,485,486,529];



NTConfig_AttackingThis = false; // Used to say target monsters ID/Name - Primarily for Dev purposes



//------------------------------------------------------------------------------

// Check Safe Settings

//------------------------------------------------------------------------------

// Check Self Safe. Set to []; for none.

// 01=Potion. 02=Poison. 04=Amplify Damage. 08=Weaken. 10=Iron Maiden. 20=Decrepify. 40=Lower Resist. 80=Blood Mana.

// Use this format: ['01','02'] etc. Add as many or as few as you want.



NTConfig_CheckSelfSafe = ['01'];



// Check Merc's Safe. Set to []; for none.

// 01=Death, 02=Poison, 04=Amplify Damage, 08=Weaken, 10=Iron Maiden, 20=Decrepify, 40=Lower Resist

// Use this format: ['01','02'] etc. Add as many or as few as you want.



NTConfig_CheckMercSafe = ['01'];



//------------------------------------------------------------------------------

// Class Specific Settings

//------------------------------------------------------------------------------



NTConfig_CastRaven = false;

NTConfig_CastPast = 1; // Distance to cast nado past the target. (Small # works best.)

NTConfig_NadoDist = 2; // Distance between your toon and the target. (Small # works best.)











und das lech script:



// commented out the /f l line, but can be uncommented if you wich

// added white screen of death fix and also some print txt for testing 2-17-11 stairbuilder

// added stagger leech joining 9-25-11 by stair

// added single /f l try to enter games for switching keys and missing the game join message 9-25-11 by stair

// added a while loop and manager print if a bad cd key is used or bad account or password stair 9-25-11

// added gameDoesNotExistDelay and txt file joining. Must use updated leader entry point for the txt joining

// added 3 new config options tryLeaderGame1x, retryLeaderGame, tryLeaderGame1x 12-22-2011

// changed where the game count increase is called to right when bot enters chat instead of waiting for game name. Saves a second or 2 credit for this goes to stib 1-21-12

// fixed /f l delay to only apply after the first /f l 1-21-12

// added fastJoin option. read comments next to setting below 1/22/12

///////////////////////////////////////////////////////////////////////////////////////////////////////////

// Renamed from LeechStarter2.3 to LeechStarter on 4/27/2013 by Tru

// Version of the LeechStarter remains at 2.3!



// ================================================== ===========================

// Leader Account settings

// ================================================== ===========================



var leaderAccountName = "benito19";

var leaderName = "Heilliger";



// ================================================== ===========================

// Leecher game entry delays use to stagger when leechers join game

// [characterName, delay in milliseconds] - leave these as-is to not use them

// ================================================== ===========================



var leecher1 = ["characterName", 100];

var leecher2 = ["characterName", 750];

var leecher3 = ["characterName", 1250];

var leecher4 = ["characterName", 2000];



//================================================== ============================

// join options

//================================================== ============================



var useFL = true; // set true if you wish your leecher to use /f l to join games. useFL MUST be set to 0 for this to work

var useFLCount = 1; // this is seperate from the above setting allows you to use /f l to join, but will only spam /f l the set number of times. set to 0 to disable

var delayFL = 3000; // milliseconds before the bot will use the /f l command in loby

var reEnterSameGame = false; // set to false to keep the bot from using /f l to re enter same game also must be set to false if you don't want bot to re enter same game for txt joining

var useTextFileJoin = false; // use txt file communication between leader and leecher to join games

var gameDoesNotExistDelay = 10; // time to idle before trying if leader's game does not exist. In seconds.

var tryLeaderGame1x = true; // will only try to enter the game one time. Good for when leader drops before leecher gets in.

var retryLeaderGame = 0; // nuber of times you would like to try joining leaders game. Note tryLeaderGame1x = true bypasses this and the delay below

var retryLeaderGameDelay = 10; // time in seconds to delay between retrying to enter leaders game

var fastJoin = false; // this has preconfigured delays for easy switching. Gets you leecher in game in about 3 seconds. THIS MAY CAUSE JOIN PROBLEMS FOR SOME USERS!!!!!

var ftjDelay = 180; // time to idle before trying if leecher failed to join. In seconds.



// ================================================== ===========================

// Game password (leave blank if none)

// ================================================== ===========================



var gamepassword = "";



// ================================================== ===========================

// UseCDKeyChangeTrick :

// if true, the follow bot will say his gamename/gamepwd (set in the OOG) in chat before each game

// in order to increment his number of runs (to switch CDKeys after xx runs)

// if false, the follow bot will never change his CDKey

// ================================================== ===========================



var UseCDKeyChangeTrick = false;



// ================================================== ===========================

// Debug : set to true if you are experiencing problems with your JoinBot

// it will log in your OOG the lobby chat actions

// ================================================== ===========================



var Debug = false;



////////////////////////////////////////////////////////////////////////////////

// Lobby chat settings :

////////////////////////////////////////////////////////////////////////////////



var joinChatAfterGame = true; // Set to true to join the chat after each game (needed for JoinBot)

var firstJoinMessage = "60"; // Message said when you first enter the chat

var chatMessageAfterGame = "5"; // Message said after each game

var joinRandomChannel = true; // if this is true, will join a random channel, otherwise it will use the channel below..

var joinChannelInChat = ""; // Name of the channel you want to join (leave blank if you want to stay in the default channel)



////////////////////////////////////////////////////////////////////////////////

// Delays:

////////////////////////////////////////////////////////////////////////////////

// Minimum game length, waits in the lobby if last game was too short

// I recommend to keep a value > 300000 (milliseconds) to avoid bnet temporary ban

var gameMinLength = 420000; // Milliseconds



// Realm Delays

var unableToConnectRetry = 20; // Minutes

var realmDownRetry = 480; // Minutes

var disconnectedRetry = 5; // Minutes

var cdkeyInUseRetry = 5; // Minutes



if(fastJoin) {

// interface delays (milliseconds)

var connectingToBnetTimeout = 20000;

var characterScreenTimeout = 10000;

var pleaseWaitTimeout = 10000;

var createGameThreshold = 10000;

var createGameThresholdRandom = 1000;

var createGameTimeout = 15000;

var waitInLineTimeout = 15000;

var characterSelectDelay = 1000;

var loginDelay = 1000;

var clickDelay = 0;

var textDelay = 0;

var clickDelayRandom = 0;

var textDelayRandom = 0;

var gameDoesNotExistDelayMin = 600000; // this not for leech configuration. Look for gameDoesNotExistDelay above

var gameDoesNotExistDelayMax = 900000; // this not for leech configuration. Look for gameDoesNotExistDelay above

var gameDoesNotExistTimeout = 30000;

var waitBeforeEnterChatMin = 1000;

var waitBeforeEnterChatMax = 2000;

var waitInChatBeforeActionsMin = 2000;

var waitInChatBeforeActionsMax = 3000;

} else {

var connectingToBnetTimeout = 20000;

var characterScreenTimeout = 10000;

var pleaseWaitTimeout = 10000;

var createGameThreshold = 10000;

var createGameThresholdRandom = 1000;

var createGameTimeout = 15000;

var waitInLineTimeout = 15000;

var characterSelectDelay = 1000;

var loginDelay = 1000;

var clickDelay = 500;

var textDelay = 500;

var clickDelayRandom = 500;

var textDelayRandom = 500;

var gameDoesNotExistDelayMin = 600000; // this not for leech configuration. Look for gameDoesNotExistDelay above

var gameDoesNotExistDelayMax = 900000; // this not for leech configuration. Look for gameDoesNotExistDelay above

var gameDoesNotExistTimeout = 30000;

var waitBeforeEnterChatMin = 1000;

var waitBeforeEnterChatMax = 2000;

var waitInChatBeforeActionsMin = 2000;

var waitInChatBeforeActionsMax = 3000;

}



// Only for JoinBot (friend list delay, milliseconds)

var LeaderOfflineDelay = 30000;

var LeaderInChatDelay = 10000;

var GameIsFullDelay = 30000;



////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////

// DO NOT EDIT 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 = false;

var ftjcount = 0;



Include("libs/controlInfo.ntl");

Include("libs/common/NTColorConverter.ntl");



var controlData = new controlInfo();



var increaseGameCount = false;

var firstTimeFl = true;

var retryLeaderGameCount = 0;

var lastGame = "";

var retryFL = 0;

var game = '';

var _gamename = "";

var _gamepassword = "";

var _leaderOfflineTick = -LeaderOfflineDelay;

var _leaderInChatTick = -LeaderInChatDelay;

var _GameIsFullTick = -GameIsFullDelay;



function NTMain()

{

Delay(1000);



var _ingame = false;



controlData.clickDelay = clickDelay;

controlData.textDelay = textDelay;

controlData.clickDelayRandom = clickDelayRandom;

controlData.textDelayRandom = textDelayRandom;

while(1)

{

if(me.ingame)

{

_gamename = me.gamename;

_gamepassword = me.gamepassword;



if(!inGameAt)

inGameAt = GetTickCount();



if(!_ingame)

{

RunGC(); // run garbage collector between each game



if(Load("NTBot/NTBotGame.ntj"))

{

if(!reEnterSameGame) { NT_File("logs/messagecomands/"+me.charname+"-lastgame.txt", 1, me.gamename); } // writes current game for comparing to new game to join next time in lobby



retryFL = 0; // sets the counter back to 0 upon game entry.

_ingame = true;

retryLeaderGameCount = 0;

firstTimeFl = true;

increaseGameCount = 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)

{





My_ExitGame_Check(); // out of korean modded d2nt fixes white screen of death

_ingame = false;

sayChatMsgAfterGame = true;



sendEventToOOG(D2NT_MGR_READY, "", 0);

}



locationAction(controlData.getLocation());



Delay(500);

}

}

}



function locationAction(location)

{

switch(location.id)

{

case 3: // Lobby Chat

sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);

//ftjcheck

if (ftjcount >= 10 && lastGameStatus == 1) {

sendEventToOOG(D2NT_MGR_PRINT_LOG, COLOR_1 + "FTJ detected...........Idling", 0);

ftjcount = 0;

inGameAt = 0;

lastGameStatus = 0;

setNextGameMake();

locationTimeout(ftjDelay*1000, location);

}

//LogPrintSimple(me.account + "MyAccountTest.txt", me.account + " / " + me.charname) // this is to check for 2nd account login

if (UseCDKeyChangeTrick && increaseGameCount) {

sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);

increaseGameCount = false;

Delay(1000);

}

if(!chatActionsDone)

{

Delay(Random(waitInChatBeforeActionsMin, waitInChatBeforeActionsMax));



if(joinRandomChannel || joinChannelInChat != "")

{

Say("/join " + (joinRandomChannel ? getRandomString(Random(3,10)) : joinChannelInChat));

Delay(1000);

}



if(firstJoinMessage)

{

Say(firstJoinMessage);

Delay(200);

}



chatActionsDone = true;

}



if (chatMessageAfterGame && _gamename != "" && sayChatMsgAfterGame == true)

{

Say(chatMessageAfterGame);

sayChatMsgAfterGame = false;

Delay(200);

}



game = '';

if(useTextFileJoin) {

NT_RetrievenextGame(); //read message from txt file and set game and gamepassword vars from that

}

else {

if(useFL || useFLCount > 0) {

var _tick = GetTickCount();

if ((_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick) // maybe play with this so it skips it for 30 seconds

&& (_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick)

&& (_GameIsFullTick < 0 || (_GameIsFullTick + GameIsFullDelay) < _tick))

{

Delay(500);

DebugInOOG('Locating the leader : '+leaderAccountName);

if(useFLCount > 0 && retryFL < useFLCount) {



if(!firstTimeFl) {

Delay(delayFL);

} else {

firstTimeFl = false;

}



Say('/f l');

retryFL++;

}

else if(useFL) {

if(!firstTimeFl) {

Delay(delayFL);

} else {

firstTimeFl = false;

}

Say('/f l');

}



}

}



if(chat = controlData.get(controlData.controls.lobby.chat.te xtBox.channelText))

{

var found_leader = false;

lines = chat.GetText();

if(!lines) { break; }

for (var line_id = lines.length - 1; line_id > -1; line_id--)

{

if (found_leader) // useless... :/

break;



if (lines[line_id].substring(0,1) == " ")

continue;



// retrieving the whole message

var msg = lines[line_id].replace(/^\s+|\s+$/, "");

var msglines = 1;

while (lines[line_id+msglines] != undefined && lines[line_id+msglines].substring(0,2) == " ")

{

msg += " " + lines[line_id+msglines].replace(/^\s+|\s+$/, "");

msglines++;

}

if (msg.lastIndexOf(leaderName) >= 0)

DebugInOOG("yc8found him :;"+msg);



// checking if the msg is a friendly whisper

if (msg.lastIndexOf(leaderName + ' (*' +leaderAccountName+')') > -1 || msg.lastIndexOf(leaderName + '@' + GateWayToName() + ' (*' +leaderAccountName+')') > -1)

// if (msg.lastIndexOf(leaderName + ' (*' +leaderAccountName+')') > -1) // need to modify this and then add another to handle the "@USWest

{ // should be just a matter of leaderName + '@' and then register the 2nd line as game name

var regGameNameWhispered=/^.*in_new_game\s+(.*)$/gi; // replaced below with this to join on mesage upon entering game

//var 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, "$1"); // replaced below with this to join on mesage upon entering game

//game = msg.replace(regGameNameWhispered, "$3");



if (game != '')

{

found_leader = true;

break;

}

}



// checking if the msg is from the friend list

if (msg.lastIndexOf(': '+leaderAccountName+',') > -1)

{

found_leader = true;

var regOffline=/^.*(offline|desconectado).*$/gi;

var regInChat=/^.*(channel|canale?)\s*([\w\s-]*\w)\.?\s*$/gi;

var regGameName=/^.*(game|partie|spiel|partita|partida)\s*([\w\s-]*\w)\s*\(priv[^\)]*\)\.\s*$/gi;



if (msg.match(regOffline)

&& (_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick))

{

DebugInOOG('Leader is offline, delay '+Math.round(LeaderOfflineDelay/1000)+' sec for next /f l.');

_leaderOfflineTick = GetTickCount();

}

else if (msg.match(regInChat)

&& (_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick))

{

DebugInOOG('Leader is in the chat "'+msg.replace(regInChat, "$2")+'", delay '+Math.round(LeaderInChatDelay/1000)+' sec for next /f l.');

_leaderInChatTick = GetTickCount();

}

else if (msg.match(regGameName)

&& ((_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick)

&& (_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick)))

{

game = msg.replace(regGameName, "$2");

}

else if ((_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick)

&& (_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick))

{

// unhandled line, supposelly "In Realm"

DebugInOOG('The leader was in the the lobby but not in chat, delay '+Math.round(LeaderInChatDelay/1000)+' sec for next /f l.');

_leaderInChatTick = GetTickCount();

}



break;

}

}



if (found_leader == false)

DebugInOOG('I couldn\'t find the leader in my friend list!');

}

else

{

DebugInOOG('I can\'t read the chat!');

//DebugInOOG('You probably haven\'t added the lobby chat controlinfo coordinates!');

Delay(30000);

}

}

if(!reEnterSameGame) { // added to check game name. If same as last game then don't re enter.

NT_RetrieveLastGame();

//Delay(250);

if(lastGame == game) {

game = "";

}

}

if (game!="")

{

DebugInOOG('Leader is in the game "' + game + '"');

controlData.click(controlData.controls.lobby.butto n.join);

Delay(100);

}



break;



case 1: // Lobby

if(location.id == 1 && joinChatAfterGame)

{

//LogPrintSimple(me.account + "MyAccountTest.txt", me.account + " / " + me.charname) // this is to check for 2nd account login

Delay(Random(waitBeforeEnterChatMin, waitBeforeEnterChatMax));

controlData.click(controlData.controls.lobby.butto n.enterChat);



break;



}

break;



case 2: // Waiting In Line

if(GetTickCount()-lastGameMade > waitInLineTimeout)

controlData.click(controlData.controls.lobby.inLin e.button.cancel);

break;



case 4: // Create Game

if(!controlData.get(controlData.controls.lobby.cre ate.editBox.gameName))

{

controlData.click(controlData.controls.lobby.butto n.join);

Delay (500);

controlData.click(controlData.controls.lobby.butto n.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)

{

if(retryLeaderGameCount > 0 && retryLeaderGameDelay > 0) {

Delay(retryLeaderGameDelay * 1000);

}

controlData.setText( controlData.controls.lobby.join.editBox.gameName, game);

Delay (100);

controlData.setText( controlData.controls.lobby.join.editBox.password, gamepassword);

//SendCopyData("D2NT Manager", null, 9<<16, "-- Debug : " + COLOR_1 +me.charname);

if(leecher1[0] == me.charname){

Delay(leecher1[1]);

}

else if(leecher2[0] == me.charname){

Delay(leecher2[1]);

}

else if(leecher3[0] == me.charname){

Delay(leecher3[1]);

}

else if(leecher4[0] == me.charname){

Delay(leecher4[1]);

}

else{

Delay(100);

}

if(tryLeaderGame1x && retryLeaderGame <= 0) {

NT_File("logs/messagecomands/"+me.charname+"-lastgame.txt", 1, game); // writes current game for comparing to new game to join next time in lobby

game = "";

}

if(retryLeaderGame > 0 && !tryLeaderGame1x && retryLeaderGameCount < retryLeaderGame) { // increases the leadergamecount

retryLeaderGameCount++;

}

if(retryLeaderGame > 0 && !tryLeaderGame1x && retryLeaderGameCount >= retryLeaderGame) { // sets game name to "" because we have made as many attempts as configured to join

game = "";

}

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.bu tton.gateway);

break;



case 9: // Login

sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);

Delay(loginDelay);



controlData.setText(controlData.controls.login.edi tBox.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_PRINT_LOG, COLOR_1 + "Bad Account or PW Entered.......Idling", 0);

while(1) { Delay(500); }

//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.unabl eToConnect.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.characterSele ct.textBox.characterInfo[me.charloc]);

if(_control && _control.GetText() != undefined)

break;



Delay(500);

}



if(_time < characterScreenTimeout)

{

Delay(characterSelectDelay);



controlData.click(controlData.controls.characterSe lect.textBox.characters[me.charloc], 0, 0, 1);

controlData.click(controlData.controls.characterSe lect.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.characterSe lect.button.exit);

timeoutDelay(realmDownRetry*60*1000, location);

}

break;



case 13: // Realm Down - Character Select screen

controlData.click(controlData.controls.characterSe lect.button.exit);

timeoutDelay(realmDownRetry*60*1000, location);

break;



case 14: // Character Select - Disconnected

timeoutDelay(disconnectedRetry*60*1000, location);

controlData.click(controlData.controls.characterSe lect.disconnected.button.ok);

break;



case 15: // New Character

break;



case 16: // Character Select - Please Wait popup

if(!locationTimeout(pleaseWaitTimeout, location))

controlData.click(controlData.controls.characterSe lect.pleaseWait.button.cancel);

break;



case 17: // Lobby - Lost Connection - just click okay, since we're toast anyway

controlData.click(controlData.controls.lobby.lostC onnection.button.ok);

break;



case 18: // D2 Splash

controlData.click(controlData.controls.d2Splash.te xtBox.copyright);

break;



case 19: // Login - Cdkey In Use

timeoutDelay(cdkeyInUseRetry*60*1000, location);

controlData.click(controlData.controls.login.cdkey InUse.button.ok);

break;



case 20: // Single Player - Select Difficulty

controlData.click(controlData.singlePlayerDifficul ties[me.diff]);

break;



case 21: // Main Menu - Connecting

if(!locationTimeout(connectingToBnetTimeout, location))

controlData.click(controlData.controls.mainMenu.co nnecting.button.cancel);

break;



case 22: // Login - Invalid Cdkey (classic or xpac)

sendEventToOOG(D2NT_MGR_PRINT_LOG, COLOR_1 + "Bad CD Key...........Idling", 0);

while(1) { Delay(500); }

//sendEventToOOG(D2NT_MGR_RESTART, location.name, 3600);

Delay(3500);

break;



case 23: // Character Select - Connecting

if(!locationTimeout(characterScreenTimeout, location))

controlData.click(controlData.controls.characterSe lect.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.pleas eWait.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.but ton.ok);

break;



case 28: // Lobby - Game Does Not Exist

sendEventToOOG(D2NT_MGR_PRINT_LOG, COLOR_1 + "Leader's game does not exist...........Idling", 0);

Delay(gameDoesNotExistDelay*1000);

inGameAt = Random(gameDoesNotExistDelayMin, gameDoesNotExistDelayMax);

lastGameStatus = 0;

setNextGameMake();



locationTimeout(gameDoesNotExistTimeout, location);

break;

default:

if (lastGameStatus == 1) {

sendEventToOOG(D2NT_MGR_PRINT_STATUS, "Please Wait...", 0);

for (ftjcount=0; ftjcount<=10 && !me.ingame; ftjcount++) {

Delay(1000)

}

}

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;

}



function My_ExitGame_Check()

{

for (var i = 0; i < 40; i++)

{

if (controlData.getLocation().id != undefined)

break;



if (i > 38)

{

LogPrintSimple(me.account + " StarterTest.txt", "White Screen of Death: Restarting")

sendEventToOOG(D2NT_MGR_PRINT_LOG, COLOR_1 + "White Screen of Death: Restarting", 0);

sendEventToOOG(D2NT_MGR_RESTART, "", 5);

My_Delay(); // make sure and add this also

}



Delay(500);

}

}



function My_Delay(retry)

{

if (arguments.length < 1)

retry = 20;



while (retry-- > 0)

Delay(1000);

}



function LogPrintSimple(filepath, mesg){



var _filepath = filepath;

var _mesg = mesg;



var date = new Date().toLocaleFormat("<%a, %b %d, %H:%M>");

var logfile = FileOpen(_filepath, 2); // opens file

if(!logfile)

var logfile = FileOpen(_filepath, 1); // if file not there then creates it



logfile.WriteLine(date + " " + _mesg );

logfile.Close();

}



function GateWayToName(){

switch(me.gatewayid){

case 0: return 'USWest';

case 1: return 'USEast';

case 2: return 'Asia';

case 3: return 'Europe';

default: return 'ugly'; // not sure how asia1, asia2, etc work so adding this for now

}

}

// modes 0 = read only, 1 = overwrite the file, 2 = add to file

function NT_File(path, mode, msg, delay) { //big thanks to all the koreans out there

var _msg = "";

var _line = "";

var _fileHandle;

var _isFileCheck = false;



if (arguments.length < 3) { msg = ""; }

if (arguments.length < 4) { delay = (mode > 0) ? 5 : 2; }



while (delay--) {

if (mode == 2 && !_isFileCheck) {

_fileHandle = FileOpen(path, 0);

if (!_fileHandle)

_fileHandle = FileOpen(path, 1);



if (_fileHandle)

_fileHandle.Close();



_isFileCheck = true;

}



_fileHandle = FileOpen(path, mode);

if (_fileHandle)

break;



if (delay)

Delay(200);

}



if (_fileHandle) {

if (mode == 0) {

while (!_fileHandle.eof) {

_line = _fileHandle.ReadLine();

if (_line || !_fileHandle.eof)

_msg += _line + msg;

}

}

else if (msg)

_fileHandle.WriteLine(msg);



_fileHandle.Close();

}



return _msg;

}



function NT_RetrieveLastGame() {

var grabLastGame = FileOpen("logs/messagecomands/"+me.charname+"-lastgame.txt", 0); // open file in read only

if(!grabLastGame){

var grabLastGame = FileOpen("logs/messagecomands/"+me.charname+"-lastgame.txt", 1); // because the file doesn't exist create it

}

if(grabLastGame){

lastGame = grabLastGame.ReadLine(); //retrieve the line and set the lastGame variable to it so we can check it against the game we may want to join

grabLastGame.Close();

}

return;

}



function NT_RetrievenextGame() { // to retrieve game and pw

var grabLine;

var grabNextGame = FileOpen("logs/messagecomands/"+leaderName+"-nextgame.txt", 0); // open file in read only

if(!grabNextGame){

var grabNextGame = FileOpen("logs/messagecomands/"+leaderName+"-nextgame.txt", 1); // because the file doesn't exist create it

}

if(grabNextGame){

grabLine = grabNextGame.ReadLine(); //retrieve the line and set the nextGame variable to it so we can check it against the game we may want to join

game = grabLine.substring(0, grabLine.indexOf('/')); //extracting game name from beginning of line to the "/"

gamepassword = grabLine.substring(grabLine.indexOf('/') + 1, grabLine.length); //Parse after symbol till end of line.

grabNextGame.Close();

}

return;

}

// so now we need to add code to get the next game and pw as well as check it against the last game



bitte um hilfe danke schonmal:)







Ver publicacion completa // See full post --> >>elitepvpers<<




Thx halunke122

PostDate: January 19, 2015 at 09:39PM

About the Author

Unknown / Author & Editor

Somos una comunidad de gamers estrategas. Buscamos las mejores y mas rapidas formas de realizar cosas en los juegos. Muchos ya nos conocen, visitanos https://www.facebook.com/TLTDLJ/

0 comments:

Post a Comment