der Leader heißt WAF-HAMMER
hier die Char config
var NTConfig_UseRedemptionHP;
var NTConfig_UseRedemptionMP;
function NT_LoadConfig()
{
//------------------------------------------------------------------------------
// Bosseinstellungen
//------------------------------------------------------------------------------
//
//..::AKT 1::..
//-------------
//NTConfig_Script.push("NTMausoleum.ntj"); NTConfig_KillBloodRaven = true;
//NTConfig_Script.push("NTTristram.ntj"); NTConfig_KillRakanishu = true;
//NTConfig_Script.push("NTKuhlevel.ntj"); NTConfig_KillRakanishu = true; NTConfig_ClearTristram = false; NTConfig_MooMooFarm = true;
//NTConfig_Script.push("NTGraefin.ntj");
//NTConfig_Script.push("NTBaumkopf.ntj");
//NTConfig_Script.push("NTPit.ntj"); NTConfig_ClearPitLevel1 = 2; // 0 : nicht clearen, 1 : nur den Weg clearen, 2 : alles clearen
//NTConfig_Script.push("NTDas Loch.ntj"); NTConfig_ClearHoleLevel1 = 1; // 0 : nicht clearen, 1 : nur den Weg clearen, 2 : alles clearen
//NTConfig_Script.push("NTAndariel.ntj");
//
//
//..::AKT 2::..
//-------------
//NTConfig_Script.push("NTRadament.ntj");
//NTConfig_Script.push("NTKaltwurm der Graeber.ntj");
//NTConfig_Script.push("NTAlte Tunnels.ntj");
//NTConfig_Script.push("NTSummoner.ntj"); NTConfig_KillFireEye = true;
//NTConfig_Script.push("NTDuriel.ntj");
//
//
//..::AKT 3::..
//-------------
//NTConfig_Script.push("NTKanalisation Akt3.ntj"); NTConfig_ClearA3SewersLevel1 = 1; // 0 : don't clear, 1 : clear path only, 2 : clear all
//NTConfig_Script.push("NTKurastTravel.ntj");
//NTConfig_Script.push("NTTravincal.ntj");
//NTConfig_Script.push("NTMephisto.ntj");
//
//
//..::AKT 4::..
//-------------
//NTConfig_Script.push("NTIzual.ntj");
//NTConfig_Script.push("NTDer Hoellenschmied.ntj");
//NTConfig_Script.push("NTDiablo.ntj");
//NTConfig_Script.push("NTFastDiablo.ntj");
//
//
//..::AKT 5::..
//-------------
//NTConfig_Script.push("NTPindleskinWP.ntj");
//NTConfig_Script.push("NTPindleskin.ntj"); NTConfig_NihlathakExtension = false;
//NTConfig_Script.push("NTNihlathak.ntj"); NTConfig_PindleskinExtension = false;
//NTConfig_Script.push("NTEldritch.ntj"); NTConfig_ShenkExtension = true; NTConfig_DacFarren = true;
//NTConfig_Script.push("NTThreshSocket.ntj");
//NTConfig_Script.push("NTFrostfluss.ntj"); NTConfig_ClearFrozenRiver = false;
//NTConfig_Script.push("NTGletscherweg.ntj"); NTConfig_ClearGlacialTrail = false;
//NTConfig_Script.push("NTEiskeller.ntj"); NTConfig_ClearIcyCellar = false;
NTConfig_Script.push("NTBaal.ntj"); NTConfig_KillBaal = true;
//------------------------------------------------------------------------------
// Rush - Bot
//------------------------------------------------------------------------------
//NTConfig_Script.push("NTRushAct1.ntj");
//NTConfig_Script.push("NTRushAct2.ntj"); NTConfig_Cube = true; NTConfig_Staff = true; NTConfig_Amu = true; NTConfig_Summoner = true;
//NTConfig_Script.push("NTRushAct3.ntj");
//NTConfig_Script.push("NTRushAct4.ntj"); NTConfig_ClearCS = false;
//NTConfig_Script.push("NTRushAct5.ntj"); NTConfig_Anya = true; NTConfig_Ancients = true;
//------------------------------------------------------------------------------
// Baal-Leech-Bot
//------------------------------------------------------------------------------
//NTConfig_Script.push("NTBaalLeech.ntj");
//------------------------------------------------------------------------------
// Positionen anzeigen
//------------------------------------------------------------------------------
//NTConfig_Script.push("NTposition.ntj");
//------------------------------------------------------------------------------
// Zeiteinstellungen
//------------------------------------------------------------------------------
me.maxgametime = 900000; // Maximale Spielzeit für einen Run (0 = unendlich)
NTConfig_StartDelay = 500; // Zeit in Millisekunden vor dem Start
NTConfig_AreaDelay = 500; // Zeit in Millisekunden vor dem Gebietswechsel
NTConfig_SnagDelay = 1; // Zeit in Millisekunden vor dem Einsammeln von Items
//------------------------------------------------------------------------------
// Life / Mana - Einstellungen
//------------------------------------------------------------------------------
NTConfig_SkipHealLife = 90; // Unterhalb dieser % seiner Leben geht der Bot zum Heiler
NTConfig_SkipHealMana = 70; // Unterhalb dieser % seiner Mana geht der Bot zum Heiler
NTConfig_SkipHealCurses = true;// false = Flüche heilen : true = Flüche nicht heilen
NTConfig_UseMerc = true; // true = Söldner verwenden : false = keinen Söldner verwenden
NTConfig_ResetWeapon = true; // Waffe vom Söldner kurz rausnehmen und wieder reinlegen (Aura)
NTConfig_LifeThresh = 67; // Unterhalb dieser % seiner Leben trinkt der Bot einen normalen Heiltrank
NTConfig_LifeRejuvThresh = 37; // Unterhalb dieser % seiner Leben trinkt der Bot einen lila Trank
NTConfig_ManaThresh = 30; // Unterhalb dieser % seiner Mana trinkt der Bot einen normalen Manatrank
NTConfig_ManaRejuvThresh = 0; // Unterhalb dieser % seiner Mana trinkt der Bot einen lila Trank
NTConfig_LifeChicken = 27; // Unterhalb dieser % seiner Leben verlässt der Bot das Spiel
NTConfig_ManaChicken = 0; // Unterhalb dieser % seiner Mana verlässt der Bot das Spiel
NTConfig_MercLifeThresh = 80; // Unterhalb dieser % des Söldnerlebens gibt der Bot dem Söldner einen Heiltrank
NTConfig_MercRejuvThresh = 30; // Unterhalb dieser % des Söldnerlebens gibt der Bot dem Söldner einen lila Trank
NTConfig_MercChicken = 0; // Unterhalb dieser % des Söldnerlebens verlässt der Bot das Spiel
//------------------------------------------------------------------------------
// Inventar - Einstellungen
//------------------------------------------------------------------------------
NTConfig_FreeSpace = 7; // Anzahl der Kästchen im Inventar die mindestens frei sein müssen. Sind weniger Kästchen frei, geht der Bot zur Truhe.
// Die Zahlen stellen dein Inventar dar. Jede Zahl ist ein Kästchen. 0 = Der bot fässt diese items niemals an : 1 = Der Bot arbeitet mit diesen Feldern.
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 = 50000; // Maximale Goldsumme die der Bot bei sich tragen darf ohne zur Truhe zu gehen.
//------------------------------------------------------------------------------
// Gürtel - Einstellungen
//------------------------------------------------------------------------------
//
// Tragt hier ein, welche tränke in welcher Reihe des Gürtels verwendet werden sollen.
// Mögliche Arten : "hp" = Heiltrank : "mp" = Manatrank : "rv" = lila Trank.
// Versucht die Spalten zu sortieren. Z.B: Heiltrank, Manatrank, Heiltrank, Manatrank ist eine beschissene Einstellung.
// Wenn ihr lila Tränke verwendet, dann macht sie hinten in den Gürtel NICHT vorne.
// Sie MÜSSEN hinten im Gürtel sein
// Ganz coole leute schreiben rv in jede Spalte o_O
//----------------------------------------------------------------------------------------------
NTConfig_BeltColType[0] = "hp";
NTConfig_BeltColType[1] = "mp";
NTConfig_BeltColType[2] = "rv";
NTConfig_BeltColType[3] = "rv";
//------------------------------------------------------------------------------
// PickIt - Einstellungen
//------------------------------------------------------------------------------
//
// Hier könnt ihr einstellen welches Pickit verwendet wird.
// Es darf nur ein Modus ausgewählt sein!!! (normal / advance / extreme)
//-----------------------------------------------------------------------------------
//
//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("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("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("Bluebird.nip");
NTConfig_SnagRange = 50; // Radius in welchem der Bot überprüft ob etwas gedropt ist. 40 scheint ganz OK zu sein. Wenn ihr sehr häufig EBENEN farmt darfs denke ich auch 50 sein.
//------------------------------------------------------------------------------
// Cubing - Einstellungen
//------------------------------------------------------------------------------
NTConfig_Cubing = false; // Lasst das auf false
//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_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 Casque
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_HELM, 424]); // Craft Armet
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BOOTS, 388]); // Craft Battle Boots
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BOOTS, 458]); // Craft Mirrored Boots
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_GLOVES, 381]); // Craft Sharkskin Gloves
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_GLOVES, 451]); // Craft Vampirebone Gloves
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BELT, 392]); // Craft Mesh Belt
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BELT, 462]); // Craft Mithril Coil
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_AMULET, 520]); // Craft Amulet
NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_RING, 522]); // Craft Ring
//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_AMULET, 520]); // Craft Amulet
//NTConfig_CubingItem.push([NTCU_CRAFT_SAFETY_SHIELD, 447]); // Craft Monarch
//NTConfig_CubingItem.push([NTCU_CRAFT_SAFETY_AMULET, 520]); // Craft Amulet
//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, 442]); // Socket Sacred Armor
//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_UPGRADE_E_UNIQUE_WEAPON, 295]); // Titan's Revenge : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_N_UNIQUE_ARMOR, 337]); // Magefist : Normal -> Exceptional
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 360]); // Skin of the Vipermagi : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 383]); // Magefist or Lava Gout : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 389]); // Gore Rider : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 477]); // Arreat's Face : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 481]); // Herald Of Zakarum : Exceptional -> Elite
//------------------------------------------------------------------------------
// Gamble / Glücksspiel - Einstellungen
//------------------------------------------------------------------------------
NTConfig_Gamble = true; // true = Glücksspiel machen : false = kein Glücksspiel
NTConfig_GambleStartGold = 1500000; // Wenn schon soviel Gold da ist beginnt der Bot auf mit dem Glücksspiel.
NTConfig_GambleStopGold = 800000; // Wenn nurnoch soviel Gold da ist hört der Bot auf mit dem Glücksspiel.
//NTConfig_GambleItem.push(520); // Amulette
//NTConfig_GambleItem.push(522); // Ringe
NTConfig_GambleItem.push(418); // Reifen
NTConfig_GambleItem.push(419); // Coronets
//NTConfig_GambleItem.push(334); // Lederhandschuhe
//NTConfig_GambleItem.push(335); // Schwere Handschuhe
//NTConfig_GambleItem.push(336); // Lettenhandschuhe
//NTConfig_GambleItem.push(337); // Leichte Handschuhe
//NTConfig_GambleItem.push(338); // Handschuhe?
//------------------------------------------------------------------------------
// Ein paar allgemeine Einstellungen
//------------------------------------------------------------------------------
NTConfig_PublicMode = true; // Auf true setzen, wenn du mit diesem Bot öffentliche Spiele / public games machen willst
NTConfig_CheckCloneDiablo = true; // Auf true setzten, wenn du in dem Game warten willst, wenn die Nachricht "Diablo Walks the Earth" erscheint.
NTConfig_OpenChest = true; // true = Truhen öffnen : false = Truhen zulassen
me.quitonhostile = false; // Auf true setzen, wenn du public Games machst und möchtest, dass der Bot das Spiel direkt verlässt, wenn Bot-Jäger auftauchen
//------------------------------------------------------------------------------
// Angriffs - Einstellungen
//------------------------------------------------------------------------------
NTConfig_AttackSkill[0] = 0; // Anfangsskill (wird nur EIN mal gecastet) 0 = keinen
NTConfig_AttackSkill[1] = 112; // Welcher Skill soll beim Angriff gegen Bosse aktiv sein? 0 = keiner
NTConfig_AttackSkill[2] = 113; // Welche Aura soll beim Angriff gegen Bosse aktiv sein? 0 = keine
NTConfig_AttackSkill[3] = 112; // Welcher Skill soll beim Angriff gegen andere Monster aktiv sein? 0 = keiner
NTConfig_AttackSkill[4] = 113; // Welche Aura soll beim Angriff gegen andere Monster aktiv sein? 0 = keine
NTConfig_AttackSkill[5] = 0; // Zweitskill, falls ein Monster immun gegen den Hauptskill ist 0 = keinen
NTConfig_AttackSkill[6] = 0; // Zweitaura.0 = keine (braucht man eigentlich nicht)
NTConfig_ClearPosition = false; // Auf true setzen, dann cleart der Bot die nahe Umgebung des Bosses.
NTConfig_UseRedemptionHP = 80; // Unterhalb dieser % seiner Leben setzt der Bot "Rücknahme" ein. 0 = ausgeschaltet
NTConfig_UseRedemptionMP = 60; // Unterhalb dieser % seiner Mana setzt der Bot "Rücknahme" ein. 0 = ausgeschaltet
//------------------------------------------------------------------------------
// Das hier einfach so lassen. Finger weg!
//------------------------------------------------------------------------------
// 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 = 0x04|0x40;
// 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|0x04|0x10|0x40;
}
ntbotleech
function NT_LoadConfig()
{
//------------------------------------------------------------------------------
// Baal-Leech-Bot
//------------------------------------------------------------------------------
//NTConfig_Script.push("NTBaalLeech.ntj");
//------------------------------------------------------------------------------
// Co-Diablo-Bot / Co-Baal-Bot
//------------------------------------------------------------------------------
//NTConfig_Leader = "" // Hier zwischen die zwei "" den genauen Namen eures Leader-Chars eingeben
//NTConfig_Script.push("NTDiabloLeechFight.ntj");
//NTConfig_Script.push("NTBaalLeechFight.ntj"); NTConfig_KillBaal = true;
//------------------------------------------------------------------------------
// Zeiteinstellungen
//------------------------------------------------------------------------------
me.maxgametime = 900000; // Maximale Spielzeit für einen Run (0 = unendlich)
NTConfig_StartDelay = 500; // Zeit in Millisekunden vor dem Start
NTConfig_AreaDelay = 500; // Zeit in Millisekunden vor dem Gebietswechsel
NTConfig_SnagDelay = 1; // Zeit in Millisekunden vor dem Einsammeln von Items
//------------------------------------------------------------------------------
// Life / Mana - Einstellungen
//------------------------------------------------------------------------------
NTConfig_SkipHealLife = 90; // Unterhalb dieser % seiner Leben geht der Bot zum Heiler
NTConfig_SkipHealMana = 70; // Unterhalb dieser % seiner Mana geht der Bot zum Heiler
NTConfig_SkipHealCurses = true;// false = Flüche heilen : true = Flüche nicht heilen
NTConfig_UseMerc = true; // true = Söldner verwenden : false = keinen Söldner verwenden
NTConfig_ResetWeapon = true; // Waffe vom Söldner kurz rausnehmen und wieder reinlegen (Aura)
NTConfig_LifeThresh = 67; // Unterhalb dieser % seiner Leben trinkt der Bot einen normalen Heiltrank
NTConfig_LifeRejuvThresh = 37; // Unterhalb dieser % seiner Leben trinkt der Bot einen lila Trank
NTConfig_ManaThresh = 30; // Unterhalb dieser % seiner Mana trinkt der Bot einen normalen Manatrank
NTConfig_ManaRejuvThresh = 0; // Unterhalb dieser % seiner Mana trinkt der Bot einen lila Trank
NTConfig_LifeChicken = 27; // Unterhalb dieser % seiner Leben verlässt der Bot das Spiel
NTConfig_ManaChicken = 0; // Unterhalb dieser % seiner Mana verlässt der Bot das Spiel
NTConfig_MercLifeThresh = 80; // Unterhalb dieser % des Söldnerlebens gibt der Bot dem Söldner einen Heiltrank
NTConfig_MercRejuvThresh = 30; // Unterhalb dieser % des Söldnerlebens gibt der Bot dem Söldner einen lila Trank
NTConfig_MercChicken = 0; // Unterhalb dieser % des Söldnerlebens verlässt der Bot das Spiel
//------------------------------------------------------------------------------
// Inventar - Einstellungen
//------------------------------------------------------------------------------
NTConfig_FreeSpace = 7; // Anzahl der Kästchen im Inventar die mindestens frei sein müssen. Sind weniger Kästchen frei, geht der Bot zur Truhe.
// Die Zahlen stellen dein Inventar dar. Jede Zahl ist ein Kästchen. 0 = Der bot fässt diese items niemals an : 1 = Der Bot arbeitet mit diesen Feldern.
NTConfig_Columns[0] = [1,1,1,1,1,1,1,0,0,0];
NTConfig_Columns[1] = [1,1,1,1,1,1,1,0,0,0];
NTConfig_Columns[2] = [1,1,1,1,1,1,1,0,0,0];
NTConfig_Columns[3] = [1,1,1,1,1,1,1,0,0,0];
NTConfig_MinGoldToStash = 50000; // Maximale Goldsumme die der Bot bei sich tragen darf ohne zur Truhe zu gehen.
//------------------------------------------------------------------------------
// Gürtel - Einstellungen
//------------------------------------------------------------------------------
//
// Tragt hier ein, welche tränke in welcher Reihe des Gürtels verwendet werden sollen.
// Mögliche Arten : "hp" = Heiltrank : "mp" = Manatrank : "rv" = lila Trank.
// Versucht die Spalten zu sortieren. Z.B: Heiltrank, Manatrank, Heiltrank, Manatrank ist eine beschissene Einstellung.
// Wenn ihr lila Tränke verwendet, dann macht sie hinten in den Gürtel NICHT vorne.
// Sie MÜSSEN hinten im Gürtel sein
// Ganz coole leute schreiben rv in jede Spalte o_O
//----------------------------------------------------------------------------------------------
NTConfig_BeltColType[0] = "hp";
NTConfig_BeltColType[1] = "mp";
NTConfig_BeltColType[2] = "rv";
NTConfig_BeltColType[3] = "rv";
//------------------------------------------------------------------------------
// PickIt - Einstellungen
//------------------------------------------------------------------------------
//
// Hier könnt ihr einstellen welches Pickit verwendet wird.
// Es darf nur ein Modus ausgewählt sein!!! (normal / advance / extreme)
//-----------------------------------------------------------------------------------
//
//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("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("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("Everything.nip");
NTConfig_SnagRange = 50; // Radius in welchem der Bot überprüft ob etwas gedropt ist. 40 scheint ganz OK zu sein. Wenn ihr sehr häufig EBENEN farmt darfs denke ich auch 50 sein.
//------------------------------------------------------------------------------
// Cubing - Einstellungen
//------------------------------------------------------------------------------
NTConfig_Cubing = false; // Lasst das auf false
//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_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 Casque
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_HELM, 424]); // Craft Armet
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BOOTS, 388]); // Craft Battle Boots
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BOOTS, 458]); // Craft Mirrored Boots
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_GLOVES, 381]); // Craft Sharkskin Gloves
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_GLOVES, 451]); // Craft Vampirebone Gloves
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BELT, 392]); // Craft Mesh Belt
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BELT, 462]); // Craft Mithril Coil
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_AMULET, 520]); // Craft Amulet
NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_RING, 522]); // Craft Ring
//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_AMULET, 520]); // Craft Amulet
//NTConfig_CubingItem.push([NTCU_CRAFT_SAFETY_SHIELD, 447]); // Craft Monarch
//NTConfig_CubingItem.push([NTCU_CRAFT_SAFETY_AMULET, 520]); // Craft Amulet
//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, 442]); // Socket Sacred Armor
//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_UPGRADE_E_UNIQUE_WEAPON, 295]); // Titan's Revenge : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_N_UNIQUE_ARMOR, 337]); // Magefist : Normal -> Exceptional
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 360]); // Skin of the Vipermagi : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 383]); // Magefist or Lava Gout : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 389]); // Gore Rider : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 477]); // Arreat's Face : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 481]); // Herald Of Zakarum : Exceptional -> Elite
//------------------------------------------------------------------------------
// Gamble / Glücksspiel - Einstellungen
//------------------------------------------------------------------------------
NTConfig_Gamble = true; // true = Glücksspiel machen : false = kein Glücksspiel
NTConfig_GambleStartGold = 1500000; // Wenn schon soviel Gold da ist beginnt der Bot auf mit dem Glücksspiel.
NTConfig_GambleStopGold = 800000; // Wenn nurnoch soviel Gold da ist hört der Bot auf mit dem Glücksspiel.
NTConfig_GambleItem.push(520); // Amulette
NTConfig_GambleItem.push(522); // Ringe
//NTConfig_GambleItem.push(418); // Reifen
//NTConfig_GambleItem.push(419); // Coronets
//NTConfig_GambleItem.push(334); // Lederhandschuhe
//NTConfig_GambleItem.push(335); // Schwere Handschuhe
//NTConfig_GambleItem.push(336); // Lettenhandschuhe
//NTConfig_GambleItem.push(337); // Leichte Handschuhe
//NTConfig_GambleItem.push(338); // Handschuhe?
//------------------------------------------------------------------------------
// Ein paar allgemeine Einstellungen
//------------------------------------------------------------------------------
NTConfig_PublicMode = false; // Auf true setzen, wenn du mit diesem Bot öffentliche Spiele / public games machen willst
NTConfig_CheckCloneDiablo = true; // Auf true setzten, wenn du in dem Game warten willst, wenn die Nachricht "Diablo Walks the Earth" erscheint.
NTConfig_OpenChest = true; // true = Truhen öffnen : false = Truhen zulassen
me.quitonhostile = false; // Auf true setzen, wenn du public Games machst und möchtest, dass der Bot das Spiel direkt verlässt, wenn Bot-Jäger auftauchen
//------------------------------------------------------------------------------
// Angriffs - Einstellungen
//------------------------------------------------------------------------------
NTConfig_AttackSkill[0] = 0; // Anfangsskill (wird nur EIN mal gecastet) 0 = keinen
NTConfig_AttackSkill[1] = 0; // Welcher Skill soll beim Angriff gegen Bosse aktiv sein? 0 = keiner
NTConfig_AttackSkill[2] = 0; // Welche Aura soll beim Angriff gegen Bosse aktiv sein? 0 = keine
NTConfig_AttackSkill[3] = 0; // Welcher Skill soll beim Angriff gegen andere Monster aktiv sein? 0 = keiner
NTConfig_AttackSkill[4] = 0; // Welche Aura soll beim Angriff gegen andere Monster aktiv sein? 0 = keine
NTConfig_AttackSkill[5] = 0; // Zweitskill, falls ein Monster immun gegen den Hauptskill ist 0 = keinen
NTConfig_AttackSkill[6] = 0; // Zweitaura.0 = keine (braucht man eigentlich nicht)
NTConfig_ClearPosition = false; // Auf true setzen, dann cleart der Bot die nahe Umgebung des Bosses.
//------------------------------------------------------------------------------
// Das hier einfach so lassen. Finger weg!
//------------------------------------------------------------------------------
// 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 = 0x04|0x40;
// 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|0x04|0x10|0x40;
}
NT Bot Leech
var gameMinLength = 90000; // time in milliseconds, 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 = 260; // time in minutes to retry connecting on a realm down (default is 120 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 = 20000; // time in milliseconds to wait for a login to time out and click cancel and retry
var characterScreenTimeout = 10000; // time in milliseconds to wait for character screen to appear
var pleaseWaitTimeout = 10000; // time in milliseconds to wait for a please wait popup
var createGameThreshold = 5000; // time in milliseconds to wait between making games
var createGameThresholdRandom = 1000; // time in milliseconds to randomly add +/- to the game create time
var createGameTimeout = 15000; // time in milliseconds to register a failed to create game
var waitInLineTimeout = 60000; // time in milliseconds 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 loginDelay = 1000; // time in milliseconds to wait before submitting login information
var clickDelay = 500; // wait X milliseconds before next action after a click event
var textDelay = 500; // wait X milliseconds before next action after inserting text into a textbox
var clickDelayRandom = 500; // random amount of time to add to a click
var textDelayRandom = 500; // random amount of time to add to a text set
var gameDoesNotExistDelayMin = 1000; // how long to wait when a Game Does Not Exist occurs - minimum - default 10 minutes
var gameDoesNotExistDelayMax = 1000; // how long to wait when a Game Does Not Exist occurs - maximum - default 15 minutes
var gameDoesNotExistTimeout = 30000; // how long to wait for the dialog to disappear (default 30 seconds, don't change this)
var joinChatAfterGame = true; // join chat after leaving a game
var joinRandomChannel = false; // if this is true, will join a random channel, otherwise it will use the channel below..
var joinChannelInChat = ""; // leave blank to not join a private channel
var waitBeforeEnterChatMin = 1000; // min how long to wait before entering chat
var waitBeforeEnterChatMax = 2000; // max how long to wait before entering chat
var waitInChatBeforeActionsMin = 2000; // min how long to wait before joining channel
var waitInChatBeforeActionsMax = 3000; // max how long to wait before joining channel
var JoinFromChat = true;
var leaderAccountName = "dinckie4"; // Hier den ACCOUNTNAMEN des Leaders anzeigen. Der Name muss so geschrieben werden, wie er in der Freundesliste angezeigt wird!!!
var gamepassword = '1'; // Wenn du ein Passwort für deine Baalruns verwendest, schreibe es hier zwischen die zwei ''
var samegame = '';
var oldgame = '';
var check = 1;
// DONT 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;
Include("libs/controlInfo.ntl");
//Include("joinBotSettings.ntl");
var controlData = new controlInfo();
var game = '';
function NTMain()
{
Delay(1000);
var _ingame = false;
controlData.clickDelay = clickDelay;
controlData.textDelay = textDelay;
controlData.clickDelayRandom = clickDelayRandom;
controlData.textDelayRandom = textDelayRandom;
while(1)
{
if(me.ingame)
{
if(!inGameAt)
inGameAt = GetTickCount();
if(!_ingame)
{
if(Load("NTBot/NTBotGame.ntj"))
{
_ingame = true;
sendEventToOOG(D2NT_MGR_INGAME, "In Game", 0);
lastGameStatus = 2; // in game successful
}
}
Delay(1000);
}
else
{
if(_ingame)
{
_ingame = false;
sendEventToOOG(D2NT_MGR_READY, "", 0);
}
locationAction(controlData.getLocation());
Delay(500);
}
}
}
function locationAction(location)
{
switch(location.id)
{
case 3: // Lobby Chat
if(!chatActionsDone)
{
chatActionsDone = true;
Delay(Random(waitInChatBeforeActionsMin, waitInChatBeforeActionsMax));
if(joinRandomChannel || joinChannelInChat != "")
{
Say("/join " + (joinRandomChannel ? getRandomString(Random(3,10)) : joinChannelInChat));
Delay(1000);
if(check == 1)
{
sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
outputGameLength();
lastGameStatus = 0;
setNextGameMake();
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
check = check + 1;
}
}
}
if(JoinFromChat){
game = '';
if (joinChannelInChat)
Delay (1200);
//Say('Locating the leader : '+leaderAccountName);
Say('/f l');
Delay(2000);
if(chat = controlData.get(controlData.controls.lobby.chat.te xtBox.channelText))
{
var errors = '';
var found_leader = false;
lines = chat.GetText();
for (var friend = 0; friend < lines.length; friend++)
{
if (lines[friend].lastIndexOf(': '+leaderAccountName+',') > -1)
{
game = '';
found_leader = true;
var regOfflineEnglish=/^\d\s?:\s?(\w*)\s?,\s?offline\s*$/gi;
var regGameNameEnglish=/^\s*(the\s)?(game\s)?([\w\s-]*\w)\s\(private\)\.\s*$/gi;
var regGameNameFrench=/^\s*(la\s)?(partie\s)?([\w\s-]*\w)\s\(priv[^\)]*\)\.\s*$/gi;
var regGameNameGerman=/^\s*(Destruction\s)?(in\s)?(das\s)?(Spiel\s)?\'([\w\s-]*\w)\'\s\(privat[^\)]*\)\.\s*$/gi;
if (lines[friend].match(regOfflineEnglish))
{
errors += (errors == '' ? '' : ' ') + 'leader is offline';
//if (joinChannelInChat)
//Say('Leader is offline, delay 10 sec.');
//Delay(5000);
}
if (lines[friend + 1].match(regGameNameEnglish) && lines[friend+1].substr(1, 1) != ':')
{
game = lines[friend + 1].replace(regGameNameEnglish, "$3");
}
if (!game && lines[friend + 1].match(regGameNameFrench) && lines[friend+1].substr(1, 1) != ':')
{
game = lines[friend + 1].replace(regGameNameFrench, "$3");
}
if (!game && lines[friend + 1].match(regGameNameGerman) && lines[friend+1].substr(1, 1) != ':')
{
game = lines[friend + 1].replace(regGameNameGerman, "$5");
}
if (!game && lines[friend + 1].match(regGameNameFrench) && lines[friend+1].substr(1, 1) != ':')
{
game = lines[friend + 1].replace(regGameNameFrench, "$3");
}
if (game != '' && game != samegame)
{
if (joinChannelInChat)
Delay(500);
//Say('I found him! In the game ' + game);
controlData.click(controlData.controls.lobby.butto n.join);
Delay (200);
}
else
{
if(!errors)
{
errors = 'leader is not in game.';
}
}
}
}
if (!found_leader && joinChannelInChat)
{
if (errors)
Say('Errors : ' + errors);
else
Say('I couldn\'t find the leader in my friend list.');
Delay(1500);
}
}
else
{
if (joinChannelInChat)
Say('I can\'t read the chat!');
Delay(1500);
}
}
errors = '';
if(game != '')
samegame = game;
break;
case 1: // Lobby
if(location.id == 1 && joinChatAfterGame)
{
Delay(Random(waitBeforeEnterChatMin, waitBeforeEnterChatMax));
controlData.click(controlData.controls.lobby.butto n.enterChat);
break;
}
if(GetTickCount() > nextGameMake)
{
lastGameFailed = false;
switch(lastGameStatus)
{
case 0:
controlData.click(controlData.controls.lobby.butto n.create);
nextGameMake = GetTickCount() + createGameTimeout; // set our timeout
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
break;
case 1: // game failed, rollover to reset timer
//inGameAt = GetTickCount(); // reset inGameAt, to wait how long we should have waited..
lastGameFailed = true;
case 2:
outputGameLength();
lastGameStatus = 0;
setNextGameMake();
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
break;
}
}
//else
// timeoutDelay(nextGameMake-GetTickCount(), location);
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);
}
sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
RunGC(); // run garbage collector between each game
locationTimeout(5000, location);
lastGameMade = GetTickCount();
lastGameStatus = 1; // pending creation
break;
case 5: // Join Game
if(!controlData.get(controlData.controls.lobby.joi n.editBox.gameName))
{
controlData.click(controlData.controls.lobby.butto n.create);
Delay (1000);
controlData.click(controlData.controls.lobby.butto n.join);
Delay (1000);
}
if (game != '')
{
controlData.setText( controlData.controls.lobby.join.editBox.gameName, game);
Delay (200);
controlData.setText( controlData.controls.lobby.join.editBox.password, gamepassword);
Delay (200);
controlData.click(controlData.controls.lobby.join. button.joinGame);
RunGC(); // run garbage collector between each game
//locationTimeout(1000, location);
lastGameStatus = 1; // pending join
check = 1;
}
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_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
RunGC(); // run garbage collector between each game
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_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, "Game 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
//inGameAt = Random(gameDoesNotExistDelayMin, gameDoesNotExistDelayMax);
//lastGameStatus = 0;
//setNextGameMake();
//locationTimeout(gameDoesNotExistTimeout, location);
break;
}
}
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;
}