|
You last visited: Today at 19:34
Advertisement
[Release] Muddy's D2NT
Discussion on [Release] Muddy's D2NT within the Diablo 2 Programming forum part of the Diablo 2 category.
02/06/2011, 16:22
|
#616
|
Administrator
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
|
Quote:
Originally Posted by Ecksteinchen
ach son **** das sieht man ja kaum also da steht :
<D2NT Error> C:\Users\Hardy\Downloads\Muddy's D2NT V1.13\Muddy's D2NT\scripts\NTBot.ntj (35) : SyntaxError: unterminated string literal
|
Also eigentlich ist die Fehlermeldung Ausnahmsweise mal extrem präzise.
Du hast irgendwas im Entry Point verändert, sodass dort nun in Zeile 35 ein Syntaxfehler vorliegt, nämlich eine nicht abgeschlossene Zeichenkette.
Syntaxfehler im Entry Point führen immer zum sofortigen Restart.
Statt des riesigen Bildes hätte es daher gereicht, einfach mal zu posten, was denn genau in Zeile 35 steht.
Solltest du den Fehler nicht selber finden würde ich letzteres auch einfach mal tun.
Lg
Muddy
P.S: Bitte benutz den Edit Button für derartige Ergänzungen!
Weiterhin gilt: Wenn du deinen Entry Point nicht postest, kann ich auch nichts dazu sagen.
|
|
|
02/06/2011, 16:30
|
#617
|
elite*gold: 0
Join Date: Nov 2010
Posts: 43
Received Thanks: 1
|
joa das hab ich au beim druchgucken nochma gemerkt.. aber jetzt hab ich den alten verfickten fehler wieder den ich bei jedem anderen bot auch hatte man ey... ich verstehs einfach nich... wenn ich mich in singleplayer einlogg dann gehts doch nur sobald der auf b.net klickt. bam fehler... ich raffs einfach nich
|
|
|
02/06/2011, 16:30
|
#618
|
elite*gold: 0
Join Date: Nov 2010
Posts: 43
Received Thanks: 1
|
sorry fuer die ausdrucksweise aber ich verzweifel grad son bissichen ^^
|
|
|
02/06/2011, 19:53
|
#619
|
elite*gold: 0
Join Date: May 2010
Posts: 212
Received Thanks: 40
|
Quote:
Originally Posted by Ecksteinchen
sorry fuer die ausdrucksweise aber ich verzweifel grad son bissichen ^^
|
Dann poste doch mal, wie Muddy sagte, deinen Entry Point.
Deine Profile Settings im Manager sind korrekt? Gross-Klein Charname z.B.
Was hast du in deinen Botversionen gleich geändert, den selben Fehler also doppelt gemacht?
Ohne Bot kommst du ins B.net?
|
|
|
02/06/2011, 20:19
|
#620
|
Administrator
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
|
Quote:
Originally Posted by fred9x9
Dann poste doch mal, wie Muddy sagte, deinen Entry Point.
Deine Profile Settings im Manager sind korrekt? Gross-Klein Charname z.B.
Was hast du in deinen Botversionen gleich geändert, den selben Fehler also doppelt gemacht?
Ohne Bot kommst du ins B.net?
|
Er hat es mittlwerweile hinbekommen, auch wenn unklar bleibt, was eigentlich das Problem war, an meiner Version lag es wohl aber nicht, hätte mich auch stark gewundert.
Lg
Muddy
|
|
|
02/07/2011, 16:21
|
#621
|
elite*gold: 0
Join Date: Sep 2008
Posts: 31
Received Thanks: 3
|
Hi,
ich habe den Bot schon mit einigen anderen Chars benutzt, mit meiner Blitz-Sorc hab ich allerdings einige Probleme.
Undzwar schließt sich Diablo erst, nachdem der Bot fertig ist, loggt sich neu ein und erstellt erst dann das neue Spiel. Das ganze wird auch als restart gezählt.
Außerdem beendet sich Diablo, wenn ich ein Item im Inventar hab, das verkauft werden soll.
Es werden die selben PickIts benutzt, wie bei meinen anderen Chars.
Hier mal die Char-Config:
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 12/18/2010
*
* Hotkey Reference NTBot:
*
* Pause/Break - Pause the current script
* Page up (PgUp) - Skip to the next script
* Page down (PgDn) - Repeat the previous script
* Home (Pos1) - Show your current coordinates and area id
* End - Delete current XML Logfile
* Insert (Ins) - Log all items on your char to XML or TXT
* Delete (Del) - Exit Game
*
* Backspace - Shows the item level and some .nip specific information for items that match your current.nip files; The item(s) have to be located in your horadric cube when you press backspace!
* NipCheckID Reference: -1 - The item migh might be useful, but has to be identified first
* 0 - The item does NOT match any .nip line and is therefore trashed
* 1 - The item matches at least one .nip line and is stashed - Additional console output: corresponding .nip line, corresponding .nip line in JavaScript code, the name of the .nip file that contains the line and the line number
* (true) - The item is kept for cubing
* (false) - The item is NOT kept for cubing
*/
var NTConfig_CastStatic;
function NT_LoadConfig()
{
//------------------------------------------------------------------------------
//
// Run Configuration
//
//------------------------------------------------------------------------------
// Script activation reference: MWConfig_Script.push([<ScriptName>, <Script Runtime in Minutes (0 is infinite)>]);
// ***************** Current schedule ******************
//MWConfig_Script.push(["NTRushAct1.ntj", 30]);
//MWConfig_Script.push(["NTKuhlevel.ntj", 10]); NTConfig_KillRakanishu = false; NTConfig_ClearTristram = false; NTConfig_MooMooFarm = true;
TalRasha_TpUpMessage = "TP up. Might be hot!" //What to say when bot opens TP.
TalRasha_AfterOpeningTpMessage = "Stay Close!" //What to say after bot opens TP.
TalRasha_AfterCleaningTombMessage = "Tomb clear! Take my TP to town and wait for next tomb!" //What to say when bot has cleared a tomb.
TalRasha_NextGameMessage = "NG!" //What to say after all tombs are cleared.
NTConfig_TombWisperToFriendList = true; //Set to true to whisper GN+PW to your friend list.
//MWConfig_Script.push(["NTPublicTombs.ntj", 30]);
//MWConfig_Script.push(["NTAndariel.ntj", 10]);
MWConfig_Script.push(["NTCountess.ntj", 10]); MWConfig_ClearCountessRooms = false;
//MWConfig_Script.push(["NTPit.ntj", 10]); MWConfig_ClearPathToPit = true; NTConfig_ClearPitLevel1 = 2; // 0 : don't clear, 1 : clear path only, 2 : clear all
//MWConfig_Script.push(["NTMausoleum.ntj", 10]); NTConfig_KillBloodRaven = true;
MWConfig_Script.push(["NTSummoner.ntj", 10]); NTConfig_KillFireEye = false;
//MWConfig_Script.push(["NTAncientTunnels.ntj", 10]); MWConfig_ClearPathToTunnels = true;
//MWConfig_Script.push(["NTDuriel.ntj", 10]); MWConfig_ClearPathToDuriel = true;
//MWConfig_Script.push(["MWSewers.ntj", 10]);
//MWConfig_Script.push(["NTMephisto.ntj", 10]); MWConfig_OpenMephistoChest = true; MWConfig_MephistoClearArea = false;
MWConfig_Script.push(["NTEldritch.ntj", 10]); NTConfig_ShenkExtension = true;
//MWConfig_Script.push(["NTNihlathak.ntj", 10]); NTConfig_PindleskinExtension = true; MWConfig_SkipOnTombVipers = true;
//------------------------------------------------------------------------------
// Available Scripts
//------------------------------------------------------------------------------
/*
// *********************** Act I ***********************
//MWConfig_Script.push(["NTMausoleum.ntj", 10]); NTConfig_KillBloodRaven = true;
//MWConfig_Script.push(["NTTristram.ntj", 10]); NTConfig_KillRakanishu = true;
//MWConfig_Script.push(["NTHole.ntj", 10]); NTConfig_ClearHoleLevel1 = 1; // 0 : don't clear, 1 : clear path only, 2 : clear all
//MWConfig_Script.push(["NTTreehead.ntj", 10]);
//MWConfig_Script.push(["NTCountess.ntj", 10]); MWConfig_ClearCountessRooms = true;
//MWConfig_Script.push(["NTPit.ntj", 10]); MWConfig_ClearPathToPit = true; NTConfig_ClearPitLevel1 = 2; // 0 : don't clear, 1 : clear path only, 2 : clear all
//MWConfig_Script.push(["NTAndariel.ntj", 10]);
// *********************** Act II **********************
//MWConfig_Script.push(["NTRadament.ntj", 10]);
//MWConfig_Script.push(["NTColdworm.ntj", 10]);
//MWConfig_Script.push(["NTAncientTunnels.ntj", 10]); MWConfig_ClearPathToTunnels = true;
//MWConfig_Script.push(["NTSummoner.ntj", 10]); NTConfig_KillFireEye = true;
//MWConfig_Script.push(["NTDuriel.ntj", 10]); MWConfig_ClearPathToDuriel = true;
// ********************** Act III **********************
//MWConfig_Script.push(["MWFlayerJungle.ntj", 10]);
//MWConfig_Script.push(["NTAct3Sewers.ntj", 10]); NTConfig_ClearA3SewersLevel1 = 1; // 0 : don't clear, 1 : clear path only, 2 : clear all
//MWConfig_Script.push(["MWSewers.ntj", 10]);
//MWConfig_Script.push(["NTKurastTravel.ntj", 10]);
//MWConfig_Script.push(["NTTravincal.ntj", 10]);
//MWConfig_Script.push(["NTMephisto.ntj", 10]); MWConfig_OpenMephistoChest = true; MWConfig_MephistoClearArea = true;
// *********************** Act IV **********************
//MWConfig_Script.push(["NTIzual.ntj", 10]);
//MWConfig_Script.push(["NTHephasto.ntj", 10]);
//MWConfig_Script.push(["NTDiablo.ntj", 10]); MWConfig_StartAtStar = false; // false: start at entrance, true: start at star
// *********************** Act V ***********************
//MWConfig_Script.push(["NTEldritch.ntj", 10]); NTConfig_ShenkExtension = true;
//MWConfig_Script.push(["NTThreshSocket.ntj", 10]);
//MWConfig_Script.push(["NTFrozenRiver.ntj", 10]); NTConfig_ClearFrozenRiver = false;
//MWConfig_Script.push(["NTGlacialTrail.ntj", 10]); NTConfig_ClearGlacialTrail = false;
//MWConfig_Script.push(["NTIcyCellar.ntj", 10]); NTConfig_ClearIcyCellar = false;
//MWConfig_Script.push(["NTNihlathak.ntj", 10]); NTConfig_PindleskinExtension = false; MWConfig_SkipOnTombVipers = true;
//MWConfig_Script.push(["MWWorldstoneKeep.ntj", 10]); MWConfig_SkipLevelOnWitches = true; MWConfig_SkipLevelOnSouls = false; MWConfig_SkipLevelOnDeathLords = true;
//MWConfig_Script.push(["NTBaal.ntj", 10]); NTConfig_KillBaal = true; MWConfig_SkipBaalOnDolls = false; MWConfig_SkipBaalOnSouls = false;
// *********************** Misc ************************
//MWConfig_Script.push(["MWWaypointCatcher.ntj", 0]); MWConfig_WaypointCatcherActs = [1, 2, 3, 4, 5]; MWConfig_TPWaypoints = true; MWConfig_SkipHallsOfPain = true; MWConfig_ClearWaypointPaths = false;
//MWConfig_Script.push(["MWIdleMode.ntj", 0]); MWConfig_IdleModeRuntime = 5; // Runtime in Minutes
//MWConfig_Script.push(["NTCows.ntj", 10]);
//NTConfig_Script.push(["NTBaalLeech.ntj", 20]);
*/
//------------------------------------------------------------------------------
// Misc Configuration
//------------------------------------------------------------------------------
NTConfig_SkipHealLife = 90; // If you have more than this percent of life, you won't go to a healer
NTConfig_SkipHealMana = 70; // If you have more than this percent of mana, you won't go to a healer
NTConfig_UseMerc = true; // Set to true if you use a mercenary, will revive merc at a reviver npc.
NTConfig_ResetWeapon = false; // Set to true to reset weapon when reviving merc
MWConfig_ResetArmor = false; // Reset Enigma if Teleport Skill is missing (Note: Activating this function may - though not likely will - lead to the loss of your enigma; Use at your own risk!)
//------------------------------------------------------------------------------
// Chicken Configuration
//------------------------------------------------------------------------------
NTConfig_LifeThresh = 70; // Drink a normal potion if under this percent of life.
NTConfig_LifeRejuvThresh = 60; // Drink a rejuvenation potion if under this percent of life.
NTConfig_ManaThresh = 30; // Drink a normal potion if under this percent of mana.
NTConfig_ManaRejuvThresh = 0; // Drink a rejuvenation potion if under this percent of mana.
NTConfig_LifeChicken = 35; // This is your chicken life percent. If you go below this life total, exit game.
NTConfig_ManaChicken = 0; // This is your chicken mana percent. If you go below this mana total, exit game.
NTConfig_MercLifeThresh = 50; // This is the threshold to use a life potion on your merc in percent.
NTConfig_MercRejuvThresh = 30; // This is the threshold to use a rejuv potion on your merc in percent.
NTConfig_MercChicken = 0; // This is your mercs chicken life percent. If he goes below this, exit game.
MWConfig_UseChickenLog = false; // Creates a logfile in case of chicken including useful information such as nearby monsters, negative/positive effects, potions etc.
// Note: This function may delay chickens and is likely to cause chicken counter errors, use at your own risk
//------------------------------------------------------------------------------
// Inventory Configuration
//------------------------------------------------------------------------------
NTConfig_FreeSpace = 5; // Number of free columns. If less full columns are free stashing is set.
// The numbers correspond to your inventory. Set 0 to keep whatever is there, 1 to stash it.
NTConfig_Columns[0] = [1,1,1,1,1,1,1,1,0,0];
NTConfig_Columns[1] = [1,1,1,1,1,1,1,1,0,0];
NTConfig_Columns[2] = [1,1,1,1,1,1,1,1,0,0];
NTConfig_Columns[3] = [1,1,1,1,1,1,1,1,0,0];
NTConfig_MinGoldToStash = 200000; // Maximum gold amount carried before going to stash
//----------------------------------------------------------------------------------------------
// 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] = "mp";
MWConfig_BuyPotionsOnLackOfMana = true; // Visit Town if your char lacks mana while trying to loot a corpse or to teleport
//-----------------------------------------------------------------------------------
// NipFile Configuration
//-----------------------------------------------------------------------------------
NTConfig_NIPFilePath.push("private/normal.nip");
NTConfig_NIPFilePath.push("private/magic_rare.nip");
NTConfig_NIPFilePath.push("private/set.nip");
NTConfig_NIPFilePath.push("private/unique.nip");
NTConfig_NIPFilePath.push("private/craft.nip");
NTConfig_NIPFilePath.push("private/temp.nip");
//------------------------------------------------------------------------------
// Pickit Configuration
//------------------------------------------------------------------------------
NTConfig_SnagRange = 60; // Radius to check for dropped items. 40 is a good number here
MWConfig_PickItemsInstantly = false; // Pickup items instantly whenever a monster is killed
MWConfig_MinimumTpScrollCount = 20; // Minimum amount of TP scrolls in tome before the char starts picking them
MWConfig_MinimumIdScrollCount = 20; // Minimum amount of ID scrolls in tome before the char starts picking them
//------------------------------------------------------------------------------
// Chest Configuration
//------------------------------------------------------------------------------
NTConfig_OpenChest = false; // Set to true to open chest (mostly super unique chests)
MWConfig_OpenAllNearbyChests = false; // Open any kind of chest or lootable object nearby
MWConfig_PickChestLootsInstantly = false; // Wether to pickup items each time a chest is opened; true: pickup items after every single chest; false: pickup items after opening all nearby chests first
MWConfig_OpenChestsRange = 30; // Default range to check for chests
// If you don't wish to open chests in a certain area, add it's areaid to MWConfig_ChestExceptions - Check the file "areas.txt" in the sdk folder to view all areaids
//MWConfig_ChestExceptions.push(25); // Tower Cellar Lvl 5
//------------------------------------------------------------------------------
// Identification Configuration
//------------------------------------------------------------------------------
MWConfig_IdentAtCain = false; // Identify items using cain (will only use cain, if you don't carry any items that are supposed to be kept unid)
MWConfig_IdentAfterPickup = true; // Identify items after pickup using an ID tome
MWConfig_MinItemsToIdent = 5; // Amount of unid items to carry before commencing ID process
//------------------------------------------------------------------------------
// Itemlog Configuration
//------------------------------------------------------------------------------
MWConfig_UseXMLItemlog = true; // Log kept and sold items additionally in an XML log file
MWConfig_NipDebugMode = false; // Show additional info about the nip match in the Manager's itemlog
MWConfig_LogSoldItems = true; // Show sold items in the manager's itemlog
MWConfig_ShowGoldPickupsPerScript = true; // Shows how much gold was picked running the last script
MWConfig_ShowGoldPickups = false; // Show Pickup message whenever gold is picked
MWConfig_ShowPotionPickups = false; // Show Pickup message whenever a potion is picked
MWConfig_LogStashToTxt = true; // Use a textfile instead of a XML file for logging your char's carried items; false: log to .xml, true: log to .txt
MWConfig_LowestRuneToLog = 19; // Determine the lowest rune shown in the Manager's log (e.g. 0 to log every Rune above EL or 19 to log every rune above LEM)
//------------------------------------------------------------------------------
// Cubing Configuration
//------------------------------------------------------------------------------
NTConfig_Cubing = true; // Enable cubing
MWConfig_ShowCubedGemsInCommonLog = false; // Whether cubed gems are supposed to be shown in common log
// *********************** Misc ***********************
//NTConfig_CubingItem.push([NTCU_ESSENCE, 653]); // Essences --> Token
// ****************** Transmute Gems ******************
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
// ************* Transmute magic and rares *************
//NTConfig_CubingItem.push([NTCU_MAGIC_CHARM, 603]); // Magic Small Charm
NTConfig_CubingItem.push([NTCU_MAGIC_CHARM, 605]); // Magic Grand Charm
//NTConfig_CubingItem.push([MWCU_RARE, 421]); // Rare Diadem
// ********************** Crafting *********************
//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_BOOTS, 455]); // Craft Wyrmhide Boots
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
// ****************** Transmute runes ******************
NTConfig_CubingItem.push([NTCU_RUNE_THUL, 562]); // Transmute 3xTHUL --> 1xAMN
NTConfig_CubingItem.push([NTCU_RUNE_AMN, 557]); // Transmute 3xAMN --> 1xSOL
NTConfig_CubingItem.push([NTCU_RUNE_SOL, 567]); // Transmute 3xSOL --> 1xSHAEL
NTConfig_CubingItem.push([NTCU_RUNE_SHAEL, 577]); // Transmute 3xSHAEL --> 1xDOL
NTConfig_CubingItem.push([NTCU_RUNE_DOL, 572]); // Transmute 3xDOL --> 1xHEL
NTConfig_CubingItem.push([NTCU_RUNE_HEL, 582]); // Transmute 3xHEL --> 1xIO
NTConfig_CubingItem.push([NTCU_RUNE_IO, 563]); // Transmute 3xIO --> 1xLUM
NTConfig_CubingItem.push([NTCU_RUNE_LUM, 558]); // Transmute 3xLUM --> 1xKO
NTConfig_CubingItem.push([NTCU_RUNE_KO, 568]); // Transmute 3xKO --> 1xFAL
NTConfig_CubingItem.push([NTCU_RUNE_FAL, 578]); // Transmute 3xFAL --> 1xLEM
//NTConfig_CubingItem.push([NTCU_RUNE_LEM, 573]); // Transmute 3xLEM --> 1xPUL
//NTConfig_CubingItem.push([NTCU_RUNE_PUL, 583]); // Transmute 2xPUL --> 1xUM
//NTConfig_CubingItem.push([NTCU_RUNE_UM, 564]); // Transmute 2xUM --> 1xMAL
//NTConfig_CubingItem.push([NTCU_RUNE_MAL, 559]); // Transmute 2xMAL --> 1xIST
//NTConfig_CubingItem.push([NTCU_RUNE_IST, 569]); // Transmute 2xIST --> 1xGUL
//NTConfig_CubingItem.push([NTCU_RUNE_GUL, 579]); // Transmute 2xGUL --> 1xVEX
//NTConfig_CubingItem.push([NTCU_RUNE_VEX, 574]); // Transmute 2xVEX --> 1xOHM
//NTConfig_CubingItem.push([NTCU_RUNE_OHM, 584]); // Transmute 2xOHM --> 1xLO
//NTConfig_CubingItem.push([NTCU_RUNE_LO, 565]); // Transmute 2xLO --> 1xSUR
//NTConfig_CubingItem.push([NTCU_RUNE_SUR, 560]); // Transmute 2xSUR --> 1xBER
//NTConfig_CubingItem.push([NTCU_RUNE_BER, 570]); // Transmute 2xBER --> 1xJAH
//NTConfig_CubingItem.push([NTCU_RUNE_JAH, 580]); // Transmute 2xJAH --> 1xBER
//NTConfig_CubingItem.push([NTCU_RUNE_CHAM, 575]); // Transmute 2xCHAM --> 1xZOD
// ******************* Socket items ********************
// Primary item must inlcluded in one of your .nip Files
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 429]); // Socket Dusk Shroud
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 430]); // Socket Wyrmhide
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 431]); // Socket Scarab Husk
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 432]); // Socket Wire Fleece
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 433]); // Socket Diamond Mail
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 434]); // Socket Loricated Mail
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 435]); // Socket Bone Weave
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 436]); // Socket Great Hauberk
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 437]); // Socket Balrog Skin
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, 440]); // Socket Lacquered Plate
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 441]); // Socket Shadow Plate
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 442]); // Socket Sacred Armor
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 443]); // Socket Archon Plate
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 200]); // Socket Berserker Axe
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
// ******************* Upgrade items *******************
//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 Configuration
// To specify what items to gamble, adjust the array with the desired item codes
//------------------------------------------------------------------------------
NTConfig_Gamble = false; // Enable gambling
NTConfig_GambleStartGold = 3000000; // Gold amount to start the gambling
NTConfig_GambleStopGold = 150000; // Gold amount to stop the gambling
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
//------------------------------------------------------------------------------
// General Configuration
//------------------------------------------------------------------------------
MWConfig_AutoParty = true; // Always use AutoParty, even if not being in public mode
NTConfig_PublicMode = false; // Enable auto party and create TPs when running baal or diablo
MWConfig_ExitGameOnMissingPassword = false; // Exit the game if it is public due to an error pasting the password at game creation
me.quitonhostile = false; // Exit the game if another player expresses hostility towards you
MWConfig_GameErrorLimit = 3; // The maximum amount of script errors that may occur before the game is left
me.maxgametime = 3000; // Time in seconds, maximum game length (0 is infinite)
NTConfig_StartDelay = 0; // Delay time in milliseconds to start;
NTConfig_AreaDelay = 500; // Delay time in milliseconds to change area;
NTConfig_SnagDelay = 500; // Delay time in milliseconds to wait before starting picking items
//------------------------------------------------------------------------------
// World Event Configuration
//------------------------------------------------------------------------------
MWConfig_CheckSojSales = true; // If set to true, the bot will stop the current script and wait 5 minutes for every "x Stones of Jordan sold to Merchants" message. Your char will continue running in the same game, unless your me.maxgametime is not reached yet.
NTConfig_CheckCloneDiablo = true; // Set to true if you want to wait in game after notifying "Diablo Walks the Earth" message.
MWConfig_WorldEventAccount = ""; // Wisp this account in case of a world event or a soj sale every 10 minutes (leave blank not to wisp any account)
MWConfig_WorldEventWaitTime = 0; // How long you want to wait in game in case of a world event in minutes (0 is infinite)
//------------------------------------------------------------------------------
// Shrine Configuration
//------------------------------------------------------------------------------
MWConfig_ActivateNearbyShrines = true; // Set to true if you'd like to use shrines (Note: Shrines will only be activated if it is actually useful)
// If you don't wish to activate shrines in a certain area, add it's areaid to MWConfig_ShrineExceptions - Check the file "areas.txt" in the sdk folder to view all areaids
//MWConfig_ShrineExceptions.push(108); // Chaos Sanctuary
//------------------------------------------------------------------------------
// Attack Configuration
//------------------------------------------------------------------------------
NTConfig_AttackSkill[0] = 0; // First skill. Set to 0 if you won't
NTConfig_AttackSkill[1] = 49; // Primary skill to boss.
NTConfig_AttackSkill[2] = 0; // Primary untimed skill to boss. Set to 0 if you won't
NTConfig_AttackSkill[3] = 53; // Primary skill to others.
NTConfig_AttackSkill[4] = 0; // Primary untimed skill to others. Set to 0 if you won't
NTConfig_AttackSkill[5] = 0; // Secondary skill in case monster is immune to primary skill. Set to 0 if you won't
NTConfig_AttackSkill[6] = 0; // Secondary untimed skill. Set to 0 if you won't
NTConfig_AttackSkill[7] = 0; // Alternative untimed skill which is used if the target is immune to your untimed skill - mostly useful for FB/FO/Meteor sorcs or other sorcs that are using the same untimed Skills
NTConfig_ClearPosition = true; // Set to true if you want to clear area after killing boss.
// *************** Attack time limitation **************
// Every target will only be attacked for the time specified and is then skipped
MWConfig_AttackTimeLimit[0] = 20; // Maximum time in seconds to attack normal monsters
MWConfig_AttackTimeLimit[1] = 60; // Maximum time in seconds to attack super uniques
MWConfig_AttackTimeLimit[2] = 30; // Maximum time in seconds to attack champions
MWConfig_AttackTimeLimit[3] = 30; // Maximum time in seconds to attack bosses
MWConfig_AttackTimeLimit[4] = 30; // Maximum time in seconds to attack minions
// **************** Behaviour on immunes ***************
MWConfig_CheckImmunitySkills = [1, 3, 5]; // Define the condition for a monster being immune; Add skill numbers (0-6) here; Example: [1, 3] means that a monster is considered immune if it is immune to both NTConfig_AttackSkill[1] and NTConfig_AttackSkill[3]
NTConfig_BehaviourOnImmuneMonster = 1; // Determine what the char is supposed to do when encountering immune Monsters; 0: Don't do anything (D2NT standard), 1: Get close to the target, use static field in case the monster is not immune to lightning, 2: Skip the Monster
MWConfig_KeepDistanceToMonsters = true; // Always check if monsters are closing in and back off, in case they get too close (Note: Activating this option will lead to ignoring the spectype of monsters when clearing rooms or spots --> Champions and bosses won't be attacked first, but the monster which is closest, no matter if it's a boss or a normal monster)
// If you don't wish to evade monsters in a certain area, add it's areaid to MWConfig_EvasionExceptions - Check the file "areas.txt" in the sdk folder to view all areaids
//MWConfig_EvasionExceptions.push(/*areaid*/)
// Check self safe in field (NOT in town). Set to 0 if you won't
// 0x01 : Potion, 0x02 : Poison, 0x04 : Amplify Damage, 0x08 : Weaken, 0x10 : Iron Maiden, 0x20 : Decrepify, 0x40 : Lower Resist
NTConfig_CheckSelfSafe = 0;
// Check merc's safe in field (NOT in town). Set to 0 if you won't
// 0x01 : Death, 0x02 : Poison, 0x04 : Amplify Damage, 0x08 : Weaken, 0x10 : Iron Maiden, 0x20 : Decrepify, 0x40 : Lower Resist
NTConfig_CheckMercSafe = 0x01;
NTConfig_CastStatic = 100; // Cast Static Field until monster's HP lower less than this percent. Set to 100 if you won't
}
|
|
|
02/07/2011, 16:48
|
#622
|
Administrator
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
|
Quote:
Originally Posted by dragon_killer
Hi,
ich habe den Bot schon mit einigen anderen Chars benutzt, mit meiner Blitz-Sorc hab ich allerdings einige Probleme.
Undzwar schließt sich Diablo erst, nachdem der Bot fertig ist, loggt sich neu ein und erstellt erst dann das neue Spiel. Das ganze wird auch als restart gezählt.
Außerdem beendet sich Diablo, wenn ich ein Item im Inventar hab, das verkauft werden soll.
Es werden die selben PickIts benutzt, wie bei meinen anderen Chars.
Hier mal die Char-Config:
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 12/18/2010
*
* Hotkey Reference NTBot:
*
* Pause/Break - Pause the current script
* Page up (PgUp) - Skip to the next script
* Page down (PgDn) - Repeat the previous script
* Home (Pos1) - Show your current coordinates and area id
* End - Delete current XML Logfile
* Insert (Ins) - Log all items on your char to XML or TXT
* Delete (Del) - Exit Game
*
* Backspace - Shows the item level and some .nip specific information for items that match your current.nip files; The item(s) have to be located in your horadric cube when you press backspace!
* NipCheckID Reference: -1 - The item migh might be useful, but has to be identified first
* 0 - The item does NOT match any .nip line and is therefore trashed
* 1 - The item matches at least one .nip line and is stashed - Additional console output: corresponding .nip line, corresponding .nip line in JavaScript code, the name of the .nip file that contains the line and the line number
* (true) - The item is kept for cubing
* (false) - The item is NOT kept for cubing
*/
var NTConfig_CastStatic;
function NT_LoadConfig()
{
//------------------------------------------------------------------------------
//
// Run Configuration
//
//------------------------------------------------------------------------------
// Script activation reference: MWConfig_Script.push([<ScriptName>, <Script Runtime in Minutes (0 is infinite)>]);
// ***************** Current schedule ******************
//MWConfig_Script.push(["NTRushAct1.ntj", 30]);
//MWConfig_Script.push(["NTKuhlevel.ntj", 10]); NTConfig_KillRakanishu = false; NTConfig_ClearTristram = false; NTConfig_MooMooFarm = true;
[COLOR=Red] TalRasha_TpUpMessage = "TP up. Might be hot!" //What to say when bot opens TP.
TalRasha_AfterOpeningTpMessage = "Stay Close!" //What to say after bot opens TP.
TalRasha_AfterCleaningTombMessage = "Tomb clear! Take my TP to town and wait for next tomb!" //What to say when bot has cleared a tomb.
TalRasha_NextGameMessage = "NG!" //What to say after all tombs are cleared.[/COLOR]
NTConfig_TombWisperToFriendList = true; //Set to true to whisper GN+PW to your friend list.
//MWConfig_Script.push(["NTPublicTombs.ntj", 30]);
//MWConfig_Script.push(["NTAndariel.ntj", 10]);
MWConfig_Script.push(["NTCountess.ntj", 10]); MWConfig_ClearCountessRooms = false;
//MWConfig_Script.push(["NTPit.ntj", 10]); MWConfig_ClearPathToPit = true; NTConfig_ClearPitLevel1 = 2; // 0 : don't clear, 1 : clear path only, 2 : clear all
//MWConfig_Script.push(["NTMausoleum.ntj", 10]); NTConfig_KillBloodRaven = true;
MWConfig_Script.push(["NTSummoner.ntj", 10]); NTConfig_KillFireEye = false;
//MWConfig_Script.push(["NTAncientTunnels.ntj", 10]); MWConfig_ClearPathToTunnels = true;
//MWConfig_Script.push(["NTDuriel.ntj", 10]); MWConfig_ClearPathToDuriel = true;
//MWConfig_Script.push(["MWSewers.ntj", 10]);
//MWConfig_Script.push(["NTMephisto.ntj", 10]); MWConfig_OpenMephistoChest = true; MWConfig_MephistoClearArea = false;
MWConfig_Script.push(["NTEldritch.ntj", 10]); NTConfig_ShenkExtension = true;
//MWConfig_Script.push(["NTNihlathak.ntj", 10]); NTConfig_PindleskinExtension = true; MWConfig_SkipOnTombVipers = true;
//------------------------------------------------------------------------------
// Available Scripts
//------------------------------------------------------------------------------
/*
// *********************** Act I ***********************
//MWConfig_Script.push(["NTMausoleum.ntj", 10]); NTConfig_KillBloodRaven = true;
//MWConfig_Script.push(["NTTristram.ntj", 10]); NTConfig_KillRakanishu = true;
//MWConfig_Script.push(["NTHole.ntj", 10]); NTConfig_ClearHoleLevel1 = 1; // 0 : don't clear, 1 : clear path only, 2 : clear all
//MWConfig_Script.push(["NTTreehead.ntj", 10]);
//MWConfig_Script.push(["NTCountess.ntj", 10]); MWConfig_ClearCountessRooms = true;
//MWConfig_Script.push(["NTPit.ntj", 10]); MWConfig_ClearPathToPit = true; NTConfig_ClearPitLevel1 = 2; // 0 : don't clear, 1 : clear path only, 2 : clear all
//MWConfig_Script.push(["NTAndariel.ntj", 10]);
// *********************** Act II **********************
//MWConfig_Script.push(["NTRadament.ntj", 10]);
//MWConfig_Script.push(["NTColdworm.ntj", 10]);
//MWConfig_Script.push(["NTAncientTunnels.ntj", 10]); MWConfig_ClearPathToTunnels = true;
//MWConfig_Script.push(["NTSummoner.ntj", 10]); NTConfig_KillFireEye = true;
//MWConfig_Script.push(["NTDuriel.ntj", 10]); MWConfig_ClearPathToDuriel = true;
// ********************** Act III **********************
//MWConfig_Script.push(["MWFlayerJungle.ntj", 10]);
//MWConfig_Script.push(["NTAct3Sewers.ntj", 10]); NTConfig_ClearA3SewersLevel1 = 1; // 0 : don't clear, 1 : clear path only, 2 : clear all
//MWConfig_Script.push(["MWSewers.ntj", 10]);
//MWConfig_Script.push(["NTKurastTravel.ntj", 10]);
//MWConfig_Script.push(["NTTravincal.ntj", 10]);
//MWConfig_Script.push(["NTMephisto.ntj", 10]); MWConfig_OpenMephistoChest = true; MWConfig_MephistoClearArea = true;
// *********************** Act IV **********************
//MWConfig_Script.push(["NTIzual.ntj", 10]);
//MWConfig_Script.push(["NTHephasto.ntj", 10]);
//MWConfig_Script.push(["NTDiablo.ntj", 10]); MWConfig_StartAtStar = false; // false: start at entrance, true: start at star
// *********************** Act V ***********************
//MWConfig_Script.push(["NTEldritch.ntj", 10]); NTConfig_ShenkExtension = true;
//MWConfig_Script.push(["NTThreshSocket.ntj", 10]);
//MWConfig_Script.push(["NTFrozenRiver.ntj", 10]); NTConfig_ClearFrozenRiver = false;
//MWConfig_Script.push(["NTGlacialTrail.ntj", 10]); NTConfig_ClearGlacialTrail = false;
//MWConfig_Script.push(["NTIcyCellar.ntj", 10]); NTConfig_ClearIcyCellar = false;
//MWConfig_Script.push(["NTNihlathak.ntj", 10]); NTConfig_PindleskinExtension = false; MWConfig_SkipOnTombVipers = true;
//MWConfig_Script.push(["MWWorldstoneKeep.ntj", 10]); MWConfig_SkipLevelOnWitches = true; MWConfig_SkipLevelOnSouls = false; MWConfig_SkipLevelOnDeathLords = true;
//MWConfig_Script.push(["NTBaal.ntj", 10]); NTConfig_KillBaal = true; MWConfig_SkipBaalOnDolls = false; MWConfig_SkipBaalOnSouls = false;
// *********************** Misc ************************
//MWConfig_Script.push(["MWWaypointCatcher.ntj", 0]); MWConfig_WaypointCatcherActs = [1, 2, 3, 4, 5]; MWConfig_TPWaypoints = true; MWConfig_SkipHallsOfPain = true; MWConfig_ClearWaypointPaths = false;
//MWConfig_Script.push(["MWIdleMode.ntj", 0]); MWConfig_IdleModeRuntime = 5; // Runtime in Minutes
//MWConfig_Script.push(["NTCows.ntj", 10]);
//NTConfig_Script.push(["NTBaalLeech.ntj", 20]);
*/
//------------------------------------------------------------------------------
// Misc Configuration
//------------------------------------------------------------------------------
NTConfig_SkipHealLife = 90; // If you have more than this percent of life, you won't go to a healer
NTConfig_SkipHealMana = 70; // If you have more than this percent of mana, you won't go to a healer
NTConfig_UseMerc = true; // Set to true if you use a mercenary, will revive merc at a reviver npc.
NTConfig_ResetWeapon = false; // Set to true to reset weapon when reviving merc
MWConfig_ResetArmor = false; // Reset Enigma if Teleport Skill is missing (Note: Activating this function may - though not likely will - lead to the loss of your enigma; Use at your own risk!)
//------------------------------------------------------------------------------
// Chicken Configuration
//------------------------------------------------------------------------------
NTConfig_LifeThresh = 70; // Drink a normal potion if under this percent of life.
NTConfig_LifeRejuvThresh = 60; // Drink a rejuvenation potion if under this percent of life.
NTConfig_ManaThresh = 30; // Drink a normal potion if under this percent of mana.
NTConfig_ManaRejuvThresh = 0; // Drink a rejuvenation potion if under this percent of mana.
NTConfig_LifeChicken = 35; // This is your chicken life percent. If you go below this life total, exit game.
NTConfig_ManaChicken = 0; // This is your chicken mana percent. If you go below this mana total, exit game.
NTConfig_MercLifeThresh = 50; // This is the threshold to use a life potion on your merc in percent.
NTConfig_MercRejuvThresh = 30; // This is the threshold to use a rejuv potion on your merc in percent.
NTConfig_MercChicken = 0; // This is your mercs chicken life percent. If he goes below this, exit game.
MWConfig_UseChickenLog = false; // Creates a logfile in case of chicken including useful information such as nearby monsters, negative/positive effects, potions etc.
// Note: This function may delay chickens and is likely to cause chicken counter errors, use at your own risk
//------------------------------------------------------------------------------
// Inventory Configuration
//------------------------------------------------------------------------------
NTConfig_FreeSpace = 5; // Number of free columns. If less full columns are free stashing is set.
// The numbers correspond to your inventory. Set 0 to keep whatever is there, 1 to stash it.
NTConfig_Columns[0] = [1,1,1,1,1,1,1,1,0,0];
NTConfig_Columns[1] = [1,1,1,1,1,1,1,1,0,0];
NTConfig_Columns[2] = [1,1,1,1,1,1,1,1,0,0];
NTConfig_Columns[3] = [1,1,1,1,1,1,1,1,0,0];
NTConfig_MinGoldToStash = 200000; // Maximum gold amount carried before going to stash
//----------------------------------------------------------------------------------------------
// 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] = "mp";
MWConfig_BuyPotionsOnLackOfMana = true; // Visit Town if your char lacks mana while trying to loot a corpse or to teleport
//-----------------------------------------------------------------------------------
// NipFile Configuration
//-----------------------------------------------------------------------------------
NTConfig_NIPFilePath.push("private/normal.nip");
NTConfig_NIPFilePath.push("private/magic_rare.nip");
NTConfig_NIPFilePath.push("private/set.nip");
NTConfig_NIPFilePath.push("private/unique.nip");
NTConfig_NIPFilePath.push("private/craft.nip");
NTConfig_NIPFilePath.push("private/temp.nip");
//------------------------------------------------------------------------------
// Pickit Configuration
//------------------------------------------------------------------------------
NTConfig_SnagRange = 60; // Radius to check for dropped items. 40 is a good number here
MWConfig_PickItemsInstantly = false; // Pickup items instantly whenever a monster is killed
MWConfig_MinimumTpScrollCount = 20; // Minimum amount of TP scrolls in tome before the char starts picking them
MWConfig_MinimumIdScrollCount = 20; // Minimum amount of ID scrolls in tome before the char starts picking them
//------------------------------------------------------------------------------
// Chest Configuration
//------------------------------------------------------------------------------
NTConfig_OpenChest = false; // Set to true to open chest (mostly super unique chests)
MWConfig_OpenAllNearbyChests = false; // Open any kind of chest or lootable object nearby
MWConfig_PickChestLootsInstantly = false; // Wether to pickup items each time a chest is opened; true: pickup items after every single chest; false: pickup items after opening all nearby chests first
MWConfig_OpenChestsRange = 30; // Default range to check for chests
// If you don't wish to open chests in a certain area, add it's areaid to MWConfig_ChestExceptions - Check the file "areas.txt" in the sdk folder to view all areaids
//MWConfig_ChestExceptions.push(25); // Tower Cellar Lvl 5
//------------------------------------------------------------------------------
// Identification Configuration
//------------------------------------------------------------------------------
MWConfig_IdentAtCain = false; // Identify items using cain (will only use cain, if you don't carry any items that are supposed to be kept unid)
MWConfig_IdentAfterPickup = true; // Identify items after pickup using an ID tome
MWConfig_MinItemsToIdent = 5; // Amount of unid items to carry before commencing ID process
//------------------------------------------------------------------------------
// Itemlog Configuration
//------------------------------------------------------------------------------
MWConfig_UseXMLItemlog = true; // Log kept and sold items additionally in an XML log file
MWConfig_NipDebugMode = false; // Show additional info about the nip match in the Manager's itemlog
MWConfig_LogSoldItems = true; // Show sold items in the manager's itemlog
MWConfig_ShowGoldPickupsPerScript = true; // Shows how much gold was picked running the last script
MWConfig_ShowGoldPickups = false; // Show Pickup message whenever gold is picked
MWConfig_ShowPotionPickups = false; // Show Pickup message whenever a potion is picked
MWConfig_LogStashToTxt = true; // Use a textfile instead of a XML file for logging your char's carried items; false: log to .xml, true: log to .txt
MWConfig_LowestRuneToLog = 19; // Determine the lowest rune shown in the Manager's log (e.g. 0 to log every Rune above EL or 19 to log every rune above LEM)
//------------------------------------------------------------------------------
// Cubing Configuration
//------------------------------------------------------------------------------
NTConfig_Cubing = true; // Enable cubing
MWConfig_ShowCubedGemsInCommonLog = false; // Whether cubed gems are supposed to be shown in common log
// *********************** Misc ***********************
//NTConfig_CubingItem.push([NTCU_ESSENCE, 653]); // Essences --> Token
// ****************** Transmute Gems ******************
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
// ************* Transmute magic and rares *************
//NTConfig_CubingItem.push([NTCU_MAGIC_CHARM, 603]); // Magic Small Charm
NTConfig_CubingItem.push([NTCU_MAGIC_CHARM, 605]); // Magic Grand Charm
//NTConfig_CubingItem.push([MWCU_RARE, 421]); // Rare Diadem
// ********************** Crafting *********************
//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_BOOTS, 455]); // Craft Wyrmhide Boots
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
// ****************** Transmute runes ******************
NTConfig_CubingItem.push([NTCU_RUNE_THUL, 562]); // Transmute 3xTHUL --> 1xAMN
NTConfig_CubingItem.push([NTCU_RUNE_AMN, 557]); // Transmute 3xAMN --> 1xSOL
NTConfig_CubingItem.push([NTCU_RUNE_SOL, 567]); // Transmute 3xSOL --> 1xSHAEL
NTConfig_CubingItem.push([NTCU_RUNE_SHAEL, 577]); // Transmute 3xSHAEL --> 1xDOL
NTConfig_CubingItem.push([NTCU_RUNE_DOL, 572]); // Transmute 3xDOL --> 1xHEL
NTConfig_CubingItem.push([NTCU_RUNE_HEL, 582]); // Transmute 3xHEL --> 1xIO
NTConfig_CubingItem.push([NTCU_RUNE_IO, 563]); // Transmute 3xIO --> 1xLUM
NTConfig_CubingItem.push([NTCU_RUNE_LUM, 558]); // Transmute 3xLUM --> 1xKO
NTConfig_CubingItem.push([NTCU_RUNE_KO, 568]); // Transmute 3xKO --> 1xFAL
NTConfig_CubingItem.push([NTCU_RUNE_FAL, 578]); // Transmute 3xFAL --> 1xLEM
//NTConfig_CubingItem.push([NTCU_RUNE_LEM, 573]); // Transmute 3xLEM --> 1xPUL
//NTConfig_CubingItem.push([NTCU_RUNE_PUL, 583]); // Transmute 2xPUL --> 1xUM
//NTConfig_CubingItem.push([NTCU_RUNE_UM, 564]); // Transmute 2xUM --> 1xMAL
//NTConfig_CubingItem.push([NTCU_RUNE_MAL, 559]); // Transmute 2xMAL --> 1xIST
//NTConfig_CubingItem.push([NTCU_RUNE_IST, 569]); // Transmute 2xIST --> 1xGUL
//NTConfig_CubingItem.push([NTCU_RUNE_GUL, 579]); // Transmute 2xGUL --> 1xVEX
//NTConfig_CubingItem.push([NTCU_RUNE_VEX, 574]); // Transmute 2xVEX --> 1xOHM
//NTConfig_CubingItem.push([NTCU_RUNE_OHM, 584]); // Transmute 2xOHM --> 1xLO
//NTConfig_CubingItem.push([NTCU_RUNE_LO, 565]); // Transmute 2xLO --> 1xSUR
//NTConfig_CubingItem.push([NTCU_RUNE_SUR, 560]); // Transmute 2xSUR --> 1xBER
//NTConfig_CubingItem.push([NTCU_RUNE_BER, 570]); // Transmute 2xBER --> 1xJAH
//NTConfig_CubingItem.push([NTCU_RUNE_JAH, 580]); // Transmute 2xJAH --> 1xBER
//NTConfig_CubingItem.push([NTCU_RUNE_CHAM, 575]); // Transmute 2xCHAM --> 1xZOD
// ******************* Socket items ********************
// Primary item must inlcluded in one of your .nip Files
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 429]); // Socket Dusk Shroud
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 430]); // Socket Wyrmhide
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 431]); // Socket Scarab Husk
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 432]); // Socket Wire Fleece
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 433]); // Socket Diamond Mail
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 434]); // Socket Loricated Mail
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 435]); // Socket Bone Weave
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 436]); // Socket Great Hauberk
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 437]); // Socket Balrog Skin
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, 440]); // Socket Lacquered Plate
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 441]); // Socket Shadow Plate
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 442]); // Socket Sacred Armor
NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 443]); // Socket Archon Plate
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 200]); // Socket Berserker Axe
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
// ******************* Upgrade items *******************
//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 Configuration
// To specify what items to gamble, adjust the array with the desired item codes
//------------------------------------------------------------------------------
NTConfig_Gamble = false; // Enable gambling
NTConfig_GambleStartGold = 3000000; // Gold amount to start the gambling
NTConfig_GambleStopGold = 150000; // Gold amount to stop the gambling
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
//------------------------------------------------------------------------------
// General Configuration
//------------------------------------------------------------------------------
MWConfig_AutoParty = true; // Always use AutoParty, even if not being in public mode
NTConfig_PublicMode = false; // Enable auto party and create TPs when running baal or diablo
MWConfig_ExitGameOnMissingPassword = false; // Exit the game if it is public due to an error pasting the password at game creation
me.quitonhostile = false; // Exit the game if another player expresses hostility towards you
MWConfig_GameErrorLimit = 3; // The maximum amount of script errors that may occur before the game is left
me.maxgametime = 3000; // Time in seconds, maximum game length (0 is infinite)
NTConfig_StartDelay = 0; // Delay time in milliseconds to start;
NTConfig_AreaDelay = 500; // Delay time in milliseconds to change area;
NTConfig_SnagDelay = 500; // Delay time in milliseconds to wait before starting picking items
//------------------------------------------------------------------------------
// World Event Configuration
//------------------------------------------------------------------------------
MWConfig_CheckSojSales = true; // If set to true, the bot will stop the current script and wait 5 minutes for every "x Stones of Jordan sold to Merchants" message. Your char will continue running in the same game, unless your me.maxgametime is not reached yet.
NTConfig_CheckCloneDiablo = true; // Set to true if you want to wait in game after notifying "Diablo Walks the Earth" message.
MWConfig_WorldEventAccount = ""; // Wisp this account in case of a world event or a soj sale every 10 minutes (leave blank not to wisp any account)
MWConfig_WorldEventWaitTime = 0; // How long you want to wait in game in case of a world event in minutes (0 is infinite)
//------------------------------------------------------------------------------
// Shrine Configuration
//------------------------------------------------------------------------------
MWConfig_ActivateNearbyShrines = true; // Set to true if you'd like to use shrines (Note: Shrines will only be activated if it is actually useful)
// If you don't wish to activate shrines in a certain area, add it's areaid to MWConfig_ShrineExceptions - Check the file "areas.txt" in the sdk folder to view all areaids
//MWConfig_ShrineExceptions.push(108); // Chaos Sanctuary
//------------------------------------------------------------------------------
// Attack Configuration
//------------------------------------------------------------------------------
NTConfig_AttackSkill[0] = 0; // First skill. Set to 0 if you won't
NTConfig_AttackSkill[1] = 49; // Primary skill to boss.
NTConfig_AttackSkill[2] = 0; // Primary untimed skill to boss. Set to 0 if you won't
NTConfig_AttackSkill[3] = 53; // Primary skill to others.
NTConfig_AttackSkill[4] = 0; // Primary untimed skill to others. Set to 0 if you won't
NTConfig_AttackSkill[5] = 0; // Secondary skill in case monster is immune to primary skill. Set to 0 if you won't
NTConfig_AttackSkill[6] = 0; // Secondary untimed skill. Set to 0 if you won't
NTConfig_AttackSkill[7] = 0; // Alternative untimed skill which is used if the target is immune to your untimed skill - mostly useful for FB/FO/Meteor sorcs or other sorcs that are using the same untimed Skills
NTConfig_ClearPosition = true; // Set to true if you want to clear area after killing boss.
// *************** Attack time limitation **************
// Every target will only be attacked for the time specified and is then skipped
MWConfig_AttackTimeLimit[0] = 20; // Maximum time in seconds to attack normal monsters
MWConfig_AttackTimeLimit[1] = 60; // Maximum time in seconds to attack super uniques
MWConfig_AttackTimeLimit[2] = 30; // Maximum time in seconds to attack champions
MWConfig_AttackTimeLimit[3] = 30; // Maximum time in seconds to attack bosses
MWConfig_AttackTimeLimit[4] = 30; // Maximum time in seconds to attack minions
// **************** Behaviour on immunes ***************
MWConfig_CheckImmunitySkills = [1, 3, 5]; // Define the condition for a monster being immune; Add skill numbers (0-6) here; Example: [1, 3] means that a monster is considered immune if it is immune to both NTConfig_AttackSkill[1] and NTConfig_AttackSkill[3]
NTConfig_BehaviourOnImmuneMonster = 1; // Determine what the char is supposed to do when encountering immune Monsters; 0: Don't do anything (D2NT standard), 1: Get close to the target, use static field in case the monster is not immune to lightning, 2: Skip the Monster
MWConfig_KeepDistanceToMonsters = true; // Always check if monsters are closing in and back off, in case they get too close (Note: Activating this option will lead to ignoring the spectype of monsters when clearing rooms or spots --> Champions and bosses won't be attacked first, but the monster which is closest, no matter if it's a boss or a normal monster)
// If you don't wish to evade monsters in a certain area, add it's areaid to MWConfig_EvasionExceptions - Check the file "areas.txt" in the sdk folder to view all areaids
//MWConfig_EvasionExceptions.push(/*areaid*/)
// Check self safe in field (NOT in town). Set to 0 if you won't
// 0x01 : Potion, 0x02 : Poison, 0x04 : Amplify Damage, 0x08 : Weaken, 0x10 : Iron Maiden, 0x20 : Decrepify, 0x40 : Lower Resist
NTConfig_CheckSelfSafe = 0;
// Check merc's safe in field (NOT in town). Set to 0 if you won't
// 0x01 : Death, 0x02 : Poison, 0x04 : Amplify Damage, 0x08 : Weaken, 0x10 : Iron Maiden, 0x20 : Decrepify, 0x40 : Lower Resist
NTConfig_CheckMercSafe = 0x01;
NTConfig_CastStatic = 100; // Cast Static Field until monster's HP lower less than this percent. Set to 100 if you won't
}
|
Also ich sehe auf den ersten Blick schonmal, dass du selber gebastelt hast und dein jetziger Fehler somit eigentlich nicht auf meinem Mist gewachsen ist.
In sämtlichen rot markierten Zeilen fehlt das Semikolon zum Abschließen der Anweisung. Auch wenn das mit dem Beschriebenen Problem wenig zu tun hat, es erhöht nur eventuell die Restart Quote.
Dein Fehler klingt für mich nach einem Logikfehler im Entry Point, welcher anders als ein Syntaxfehler erst dann zum Tragen kommt, wenn die entsprechende Zeile ausgeführt wird.
Was du nun aber im Entry Point verändert hast, weisst du wohl selber am besten, insofern bin ich da vermutlich die falsche Anlaufstelle.
Lg
Muddy
|
|
|
02/07/2011, 16:55
|
#623
|
elite*gold: 0
Join Date: Sep 2008
Posts: 31
Received Thanks: 3
|
Bis auf auf die Script die hinzugefügt wurden, und auskommentiert sind, ists eigtl. dein Original.
|
|
|
02/07/2011, 16:57
|
#624
|
Administrator
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
|
Quote:
Originally Posted by dragon_killer
Bis auf auf die Script die hinzugefügt wurden, und auskommentiert sind, ists eigtl. dein Original.
|
Dann lass mal den Entry Point sehen.
Der Fehler deutet stark darauf hin, dass das Problem dort liegt, denn alles was dort schiefgeht resultiert direkt in einem Restart.
Lg
Muddy
|
|
|
02/07/2011, 17:03
|
#625
|
elite*gold: 0
Join Date: Sep 2008
Posts: 31
Received Thanks: 3
|
NTBot.ntj
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 08/23/2010
*/
var GameMinLength = 180000; // 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 = 15; // time in minutes to retry connecting on a realm down (default is 300 minutes)
var DisconnectedRetry = 5; // time in minutes to retry on a disconnection (usually ip ban related)
var CdKeyInUseRetry = 5; // time in minutes to retry on a cdkey in use error message (set to 0 to stop)
var ConnectingToBnetTimeout = 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 = 10000; // time in milliseconds to wait between making games
var CreateGameThresholdRandom = 5000; // 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 = 15000; // 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 = 1000; // wait X milliseconds before next action after a click event
var TextDelay = 1000; // 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 = 600000; // how long to wait when a Game Does Not Exist occurs - minimum - default 10 minutes
var GameDoesNotExistDelayMax = 900000; // 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 JoinChatAfterLogin = true; // join chat after login
var JoinRandomChannel = false; // if this is true, will join a random channel, otherwise it will use the channel below..
var JoinChannelInChat = ""; // leave blank not to join a private channel
var PerformChannelLogin = false; // type ".login" once after joining the channel
var ChannelUsers = new Array(); // dynamic array that holds channel users
//---------------------------------------------------------------------------------------------------------------------------------------------------------
// Add any char/account here that is supposed to perform chat actions/game announcements or join a private channel
ChannelUsers.push("YourCharNameGoesHere");
// Or
ChannelUsers.push("YourAccountNameGoesHere");
// The following key expressions will be replaced by their actual values: %game --> "gamename-" <> %counter --> number of the next game <> %time --> time in seconds till game creation <> %password --> game password
// Note that the announcement will start after the first run, so there usually won't be any anncouncement right after login - If the gamename is undefined, the bot will try to load the backup file to announce the upcoming game properly
var GameAnnouncement = ""; // Leave blank not to post a channel announcement
var GameAnnouncementDelay = 5000; // Wait X milliseconds before posting the announcement message (don't set this too low!)
var GameAnnouncementDelayRandom = 500; // Random amount of time to add to a to the announcement delay
var UseFileBackupTimeMax = 15; // Time in minutes that may pass since last file update - The backup File is updated at the beginning of every single game and is read everytime the name of your previous game is undefined (e.g. at restarts); Set to 0 to deactivate file backup
//----------------------------------------------------------------------------------------------------------------------------------------------------------
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
// 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;
var JoinedChannel = false;
var JustJoined = true;
Include("libs/controlInfo.ntl");
var ControlData = new controlInfo();
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)
{
RunGC(); // run garbage collector between each game
if(me.gamename)
MW_WriteBackupFile(me.gamename);
if(Load("NTBot/MWBotGame.ntj"))
{
_ingame = true;
if(me.playtype > 0)
NT_SendEventToOOG(D2NT_MGR_INGAME, "In Game [IP:" + me.gameserverip.split(".")[3] + "]", 0);
else
NT_SendEventToOOG(D2NT_MGR_INGAME, "In Game", 0);
LastGameStatus = 2; // in game successful
}
}
Delay(1000);
}
else
{
if(_ingame)
{
_ingame = false;
NT_SendEventToOOG(D2NT_MGR_READY, "", 0);
}
NT_LocationAction(ControlData.getLocation());
Delay(500);
}
}
}
function NT_LocationAction(location)
{
switch(location.id)
{
case 3: // Lobby Chat
if(JustJoined)
{
JustJoined = false;
if(MW_IsChannelUser(me.account, me.charname))
{
for(var i = 0; i < 3; i++)
{
SetStatusText("ÿc2Chat actions enabled!");
Delay(750);
SetStatusText("");
Delay(750);
}
}
else
{
for(var i = 0; i < 3; i++)
{
SetStatusText("ÿc1Chat actions disabled!");
Delay(750);
SetStatusText("");
Delay(750);
}
}
}
if(!ChatActionsDone && MW_IsChannelUser(me.account, me.charname))
{
ChatActionsDone = true;
Delay(Random(WaitInChatBeforeActionsMin, WaitInChatBeforeActionsMax));
if(!JoinedChannel && (JoinRandomChannel || JoinChannelInChat != ""))
{
var rndChannel = getRandomString(Random(3,10));
SetStatusText("ÿc8Joining Channel " + (JoinRandomChannel ? rndChannel : JoinChannelInChat) );
Delay(500);
Say("/join " + (JoinRandomChannel ? rndChannel : JoinChannelInChat));
JoinedChannel = true;
Delay(500);
if(PerformChannelLogin)
{
SetStatusText("ÿc8Channel Login...");
Say(".login");
Delay(1000);
}
}
}
case 1: // Lobby
if(location.id == 1 && JoinChatAfterLogin)
{
Delay(Random(WaitBeforeEnterChatMin, WaitBeforeEnterChatMax));
ControlData.click(ControlData.controls.lobby.button.enterChat);
break;
}
if(GetTickCount() > NextGameMake)
{
var _control;
LastGameFailed = false;
switch(LastGameStatus)
{
case 0:
_control = ControlData.get(ControlData.controls.lobby.button.create);
if(_control && _control.pressed)
{
ControlData.click(ControlData.controls.lobby.button.join);
Delay(500);
}
ControlData.click(ControlData.controls.lobby.button.create);
NextGameMake = GetTickCount() + CreateGameTimeout; // set our timeout
NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
break;
case 1: // game failed, rollover to reset timer
InGameAt = GetTickCount();
LastGameFailed = true;
Delay(5000);
case 2:
NT_OutputGameLength();
LastGameStatus = 0;
NT_SetNextGameMake();
if(LastGameFailed)
{
SetStatusText("ÿc1Failed to join!");
NT_SendEventToOOG(D2NT_MGR_PRINT_LOG, "ÿE00000Game " + ((MW_GetGameCounter(me.gamename, true)) ? ("(" + MW_GetGameCounter(me.gamename, true) + ")") : "") + " creation failed!", 0);
Delay(2500);
}
NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
break;
}
}
else
{
var _gamename = me.gamename;
if(!_gamename)
_gamename = MW_ReadBackupFile();
if(JoinChannelInChat && GameAnnouncement && _gamename && MW_IsChannelUser(me.account, me.charname))
{
var _tempDelay = (GameAnnouncementDelay > 5000) ? GameAnnouncementDelay : 5000 +
(GameAnnouncementDelayRandom > 500) ? Random(0, GameAnnouncementDelayRandom) : 500;
var _gameText = GameAnnouncement;
_gameText = _gameText.replace("%password", ((me.gamepassword) ? me.gamepassword : "N/A"));
_gameText = _gameText.replace("%game", MW_GetGameName(_gamename));
_gameText = _gameText.replace("%counter", MW_GetGameCounter(_gamename, false));
_gameText = _gameText.replace("%time", parseInt((NextGameMake - GetTickCount() - _tempDelay)/1000+3.0));
if(parseInt((NextGameMake - GetTickCount() - _tempDelay)/1000+3.0) > 3)
{
Delay(_tempDelay);
Say(_gameText);
}
}
MW_TimeoutDelay(NextGameMake-GetTickCount(), location, true);
}
break;
case 2: // Waiting In Line
if(GetTickCount()-LastGameMade > WaitInLineTimeout)
ControlData.click(ControlData.controls.lobby.inLine.button.cancel);
break;
case 4: // Create Game
if(!ControlData.get(ControlData.controls.lobby.create.editBox.gameName))
{
ControlData.click(ControlData.controls.lobby.button.join);
Delay (500);
ControlData.click(ControlData.controls.lobby.button.create);
Delay (500);
}
NT_SendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
NT_LocationTimeout(5000, location);
LastGameMade = GetTickCount();
LastGameStatus = 1; // pending creation
break;
case 5: // Join Game
break;
case 6: // Ladder
break;
case 7: // Channel List
break;
case 8: // Main Menu
if(ControlData.getCurrentRealmIndex() == me.gatewayid)
{
NT_OutputGameLength();
ControlData.click(ControlData.gameTypes[me.playtype]);
}
else
ControlData.click(ControlData.controls.mainMenu.button.gateway);
break;
case 9: // Login
NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
Delay(LoginDelay);
ControlData.setText(ControlData.controls.login.editBox.accountName, me.account);
NT_SendEventToOOG(D2NT_MGR_LOGIN, location.name, 0);
NT_LocationTimeout(5000, location);
break;
case 10: // Login Error (this is a fatal error, so stop)
NT_SendEventToOOG(D2NT_MGR_RESTART, location.name, 10);
Delay(3500);
break;
case 11: // Unable To Connect
MW_TimeoutDelay(UnableToConnectRetry*60*1000, location)
ControlData.click(ControlData.controls.login.unableToConnect.button.ok);
break;
case 12: // Character Select
var _time, _control;
NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
for(_time = 0 ; _time < CharacterScreenTimeout ; _time += 500)
{
_control = ControlData.get(ControlData.controls.characterSelect.textBox.characterInfo[me.charloc]);
if(_control && _control.GetText() != undefined)
break;
Delay(500);
}
if(_time < CharacterScreenTimeout)
{
Delay(CharacterSelectDelay);
ControlData.click(ControlData.controls.characterSelect.textBox.characters[me.charloc], 0, 0, 1);
ControlData.click(ControlData.controls.characterSelect.textBox.characterInfo[me.charloc], 0, 0, 1);
// reset last game made, so it doesnt make a game immediately
InGameAt = 0;
NT_SetNextGameMake();
}
else
{
ControlData.click(ControlData.controls.characterSelect.button.exit);
MW_TimeoutDelay(RealmDownRetry*60*1000, location);
}
break;
case 13: // Realm Down - Character Select screen
ControlData.click(ControlData.controls.characterSelect.button.exit);
MW_TimeoutDelay(RealmDownRetry*60*1000, location);
break;
case 14: // Character Select - Disconnected
MW_TimeoutDelay(DisconnectedRetry*60*1000, location);
ControlData.click(ControlData.controls.characterSelect.disconnected.button.ok);
break;
case 15: // New Character
break;
case 16: // Character Select - Please Wait popup
if(!NT_LocationTimeout(PleaseWaitTimeout, location))
ControlData.click(ControlData.controls.characterSelect.pleaseWait.button.cancel);
break;
case 17: // Lobby - Lost Connection - just click okay, since we're toast anyway
ControlData.click(ControlData.controls.lobby.lostConnection.button.ok);
break;
case 18: // D2 Splash
ControlData.click(ControlData.controls.d2Splash.textBox.copyright);
break;
case 19: // Login - Cdkey In Use
MW_TimeoutDelay(CdKeyInUseRetry*60*1000, location);
ControlData.click(ControlData.controls.login.cdkeyInUse.button.ok);
break;
case 20: // Single Player - Select Difficulty
ControlData.click(ControlData.singlePlayerDifficulties[me.diff]);
break;
case 21: // Main Menu - Connecting
if(!NT_LocationTimeout(ConnectingToBnetTimeout, location))
ControlData.click(ControlData.controls.mainMenu.connecting.button.cancel);
break;
case 22: // Login - Invalid Cdkey (classic or xpac)
NT_SendEventToOOG(D2NT_MGR_RESTART, location.name, 3600);
Delay(3500);
break;
case 23: // Character Select - Connecting
if(!NT_LocationTimeout(CharacterScreenTimeout, location))
ControlData.click(ControlData.controls.characterSelect.button.exit);
break;
case 24: // Server Down - not much to do but wait..
break;
case 25: // Lobby - Please Wait
if(!NT_LocationTimeout(PleaseWaitTimeout, location))
ControlData.click(ControlData.controls.lobby.pleaseWait.button.cancel);
break;
case 26: // Lobby - Game Name Exists
NT_SendEventToOOG(D2NT_MGR_PRINT_LOG, "ÿE00000Game already exists", 0);
SetStatusText("ÿc1Game already exists!");
InGameAt = 0;
LastGameStatus = 0;
NT_SetNextGameMake();
NT_LocationTimeout(15000, location);
break;
case 27: // Gateway Select
ControlData.clickRealmEntry(me.gatewayid);
ControlData.click(ControlData.controls.gateway.button.ok);
break;
case 28: // Lobby - Game Does Not Exist
InGameAt = Random(GameDoesNotExistDelayMin, GameDoesNotExistDelayMax);
LastGameStatus = 0;
NT_SetNextGameMake();
NT_LocationTimeout(GameDoesNotExistTimeout, location);
break;
}
}
function NT_SendEventToOOG(locationId, statusString, pendingTime)
{
return SendCopyData("D2NT Manager", null, (locationId<<16)|pendingTime, statusString);
}
function NT_SetNextGameMake()
{
LastGameMade = GetTickCount();
NextGameMake = LastGameMade + CreateGameThreshold + Random(0-CreateGameThresholdRandom, CreateGameThresholdRandom) + InGameAt;
InGameAt = 0;
ChatActionsDone = false;
}
function NT_OutputGameLength()
{
if(InGameAt)
{
duration = GetTickCount() - InGameAt;
InGameAt = (duration < GameMinLength ? GameMinLength - duration : 0);
}
}
function NT_LocationTimeout(time, location)
{
var _endtime = GetTickCount() + time;
while(ControlData.getLocation().id == location.id && _endtime > GetTickCount())
{
NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name + " (" + parseInt((_endtime-GetTickCount())/1000) + "s)", 0);
Delay(500);
}
return (ControlData.getLocation().id != location.id);
}
function MW_TimeoutDelay(time, location, showNextGameStatus)
{
var _gamename;
if(arguments.length < 3)
showNextGameStatus = false;
_endtime = GetTickCount() + time;
_gamename = me.gamename;
if(!_gamename)
{
_gamename = MW_ReadBackupFile();
if(_gamename)
SetStatusText("ÿc4Using File Backup...");
}
while(_endtime > GetTickCount())
{
NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name + " (" + parseInt((_endtime-GetTickCount())/1000) + "s)", 0);
if(showNextGameStatus)
{
if(LastGameFailed && parseInt(_endtime-GetTickCount()) > CreateGameThreshold)
{
if(parseInt((_endtime-GetTickCount())/1000) % 30 >= 0 && parseInt((_endtime-GetTickCount())/1000) % 30 <= 5)
SetStatusText("ÿc1Last game failed!");
else
{
if(_gamename && MW_GetGameCounter(_gamename, false))
SetStatusText("ÿc1Next game: " + MW_GetGameName(me.gamename) + MW_GetGameCounter(me.gamename, false) + " (" + parseInt((_endtime-GetTickCount())/1000) + "s)");
else
SetStatusText("ÿc1Game creation pending... (" + parseInt((_endtime-GetTickCount())/1000) + "s)");
}
}
else if(parseInt((_endtime-GetTickCount())/1000) >= 0)
{
if(_gamename && MW_GetGameCounter(_gamename, false))
SetStatusText("ÿc8Next game: " + MW_GetGameName(_gamename) + MW_GetGameCounter(_gamename, false) + " (" + parseInt((_endtime-GetTickCount())/1000) + "s)");
else
SetStatusText("ÿc8Game creation pending... (" + parseInt((_endtime-GetTickCount())/1000) + "s)");
}
if(me.ingame)
_endtime = GetTickCount();
}
Delay(1000);
}
if(showNextGameStatus)
SetStatusText("ÿc8Creating game...");
}
function getRandomString(length)
{
_retString = "";
_charSet = "0123456789abcdefghijklmnopqrstuvwxyz";
while(length--)
{
_retString += _charSet.charAt(Random(0, _charSet.length-1));
Delay(1);
}
return _retString;
}
function MW_GetGameName(lastGameString)
{
if(!lastGameString)
return "";
else
return (lastGameString.substr(0, lastGameString.lastIndexOf('-')+1));
}
function MW_GetGameCounter(lastGameString, simple)
{
var _count, _countString;
if(!lastGameString)
return "-1";
else
{
_countString = lastGameString.slice(lastGameString.lastIndexOf('-')+1);
switch(_countString)
{
case "08":
_count = 9;
break;
case "09":
_count = 10;
break;
default:
_count = parseInt(_countString) + 1;
break;
}
if(_count == 100)
_count = 0;
if(!simple)
{
if(_count <= 9)
return ('0' + _count);
}
return _count;
}
}
function MW_IsChannelUser(accountname, charname)
{
for(var i = 0; i < ChannelUsers.length; i++)
{
if(accountname.toLowerCase() == ChannelUsers[i].toLowerCase() || charname.toLowerCase() == ChannelUsers[i].toLowerCase())
return true;
}
return false;
}
function MW_ReadBackupFile()
{
var _fhandle, _buffer, _time, _now, _gamename;
_fhandle = FileOpen("/Channel/Anncouncement_Backup_" + me.charname, 2);
_gamename = "";
_now = new Date();
if(_fhandle && _now)
{
if(_buffer = _fhandle.ReadLine())
{
_time = parseInt(_buffer);
if(_now.getTime() - _time < UseFileBackupTimeMax*6E4 && (_buffer = _fhandle.ReadLine()))
{
_gamename = _buffer;
}
}
_fhandle.Close();
}
else if(_fhandle)
_fhandle.Close();
return _gamename;
}
function MW_WriteBackupFile(gamename)
{
var _fhandle, _now;
if(UseFileBackupTimeMax == 0)
return false;
_fhandle = FileOpen("/Channel/Anncouncement_Backup_" + me.charname, 1);
_now = new Date();
if(_fhandle && _now)
{
_fhandle.WriteLine(_now.getTime() + "\n" + gamename);
_fhandle.Close();
return true;
}
else if(_fhandle)
_fhandle.Close();
return false;
}
|
|
|
02/07/2011, 17:33
|
#626
|
Administrator
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
|
Das sieht leider besser aus, als mir lieb gewesen wäre.
Nochmal zum Mitschreiben:
- Das Spiel wird normal erstellt
- Alle Botscripte laufen normal durch
- Noch im Spiel erfolgt der Restart
- Das nächste Spiel wird erstellt und es geht wieder bei 1. los
In der MWBotGame.ntj hast du ja nichts geändert, oder?
Erstmal mehr Unput sammeln, scheint ja doch was hatrnäckigeres zu sein, als ich dachte.
Lg
Muddy
|
|
|
02/07/2011, 17:56
|
#627
|
elite*gold: 0
Join Date: Sep 2008
Posts: 31
Received Thanks: 3
|
So, das Problem mit dem exit beim Start hab ich gelöst: Hatte vergessen das spiel per Direct Txt auf Englisch zu stellen.
Nach dem Spiel machter trotzdem nen restart.
1-3 Stimmen so. Er fängt aber nicht bei 1 an (Wenn du die "Runs" meinst), sondern macht halt weiter. Statstik ist zZ. bei 26 Runs/Restarts.
(Das Problem liegt nicht an dem Bossscript, das zum Schluss läuft, Fehler besteht bei Eldtrich genauso wie beim Summoner)
Das seltsame ist ja, das ein anderer Bot, der mit sogut wie den gleichen Einstellungen läuft (Nur Skills geändert) ohne Problem funktioniert.
|
|
|
02/07/2011, 18:20
|
#628
|
Administrator
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
|
Quote:
Originally Posted by dragon_killer
So, das Problem mit dem exit beim Start hab ich gelöst: Hatte vergessen das spiel per Direct Txt auf Englisch zu stellen.
Nach dem Spiel machter trotzdem nen restart.
1-3 Stimmen so. Er fängt aber nicht bei 1 an (Wenn du die "Runs" meinst), sondern macht halt weiter. Statstik ist zZ. bei 26 Runs/Restarts.
(Das Problem liegt nicht an dem Bossscript, das zum Schluss läuft, Fehler besteht bei Eldtrich genauso wie beim Summoner)
Das seltsame ist ja, das ein anderer Bot, der mit sogut wie den gleichen Einstellungen läuft (Nur Skills geändert) ohne Problem funktioniert.
|
Nee, ich meinte schon Schritt 1.
Leider bin ich auch etwas ratlos, weil das Problem schwer nachvollziehbar ist.
Eine "falsche" Skill Einstellung hat eigentlich keinen Restart zur Folge.
Das tritt normalerweise nur sicher dann auf, wenn Fehler im Entry Point vorliegen oder teilweise auch dann, wenn globale Funktionen mit falschen Parametern aufgerufen werden, wobei es hier wieder sehr auf die Funktion ankommt.
Ist denn irgendeine aussagekräftige Fehlermeldung zu sehen?
Abgesehen von "Unhandled Exception: (c0000005)", die ist nicht aussagekräftig.
Lg
Muddy
|
|
|
02/07/2011, 18:45
|
#629
|
elite*gold: 0
Join Date: Sep 2008
Posts: 31
Received Thanks: 3
|
AH! Hab das Problem.
Da ich 2 Bots laufen lasse, habe ich bei dem 2. (Um den es ja geht) ne cdkey.mpq und unter "Game# / CDKey" 1 eingetragen, damit der den CDKey auch benutzt.
Wenn ich da ne 0 reinsetze und er den Standart-Key benutzt, funktionierts wieder o_O
|
|
|
02/07/2011, 19:37
|
#630
|
Administrator
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
|
Quote:
Originally Posted by dragon_killer
AH! Hab das Problem.
Da ich 2 Bots laufen lasse, habe ich bei dem 2. (Um den es ja geht) ne cdkey.mpq und unter "Game# / CDKey" 1 eingetragen, damit der den CDKey auch benutzt.
Wenn ich da ne 0 reinsetze und er den Standart-Key benutzt, funktionierts wieder o_O
|
Top!
Mir gingen auch echt die Erklärungen aus... 
Aber ist doch klasse, damit wird direkt die Liste bekannter Probleme um eines erweitert.
Ich hoffe nur, dass jetzt alles so läuft wie es soll.
Ich experimentiere übrigens gerade mit dem Aufnehmen des aktuellen Desktops, vielleicht gibt es nachher mal ein kleines Preview in Form eines Videos.
Lg
Muddy
|
|
|
 |
|
Similar Threads
|
[Release] D2NT 3.1 1.13c
07/17/2016 - Diablo 2 - 91 Replies
hi,
hab eben den d2nt3.1 gefunden. ein neues baba script is dabei.
release thread eon
D2NT3.1
|
[Realease] Muddy's Waypoint Catcher
08/21/2013 - Diablo 2 Programming - 46 Replies
Moin zusammen,
hier mal die erste Release Version eines kleinen Scripts genannt Waypoint Catcher. Das ganze ist jetzt nichtmal 24h alt, dementsprechend sind vermutlich noch einige Bugs vorhanden. Hinweise dazu nehme ich gerne entgegen. ;)
Features:
- Suchen sämtlicher Wegpunkte mit Ausnahme, wobei in Akt ein durch Probleme im Jail Bereich nach dem Wegpunkt Outer Cloister abgebrochen wird
- Wahlweise auch mit TP an jedem gefundenen Wp, sodass man damit auch anderen (nicht-Bots) die...
|
[D2NT] Long Dia Release
05/10/2011 - Diablo 2 Programming - 28 Replies
Ein kleines Script für diablo, es startet beim eingang macht ein tp cleart den weg zum star macht am star noch ein tp dann läufts wie das normale nur cleart es schöner :)
hoffe euch gefällts ich habs noch nicht wirklich getestet (2-3 runs) bugs können gerne hier gepostet werden verbesserungs vorschläge auch :D
installation:
1.)Script in den Bot ordner kopieren
2.)Script im editor oder vergleichbaren öffnen
3.) Msg´s anpassen (ist nicht schwer)
4.) in der char config die zeile...
|
D2NT 3.0 Pickit release
10/22/2010 - Diablo 2 - 77 Replies
edit
|
Muddy's D2NT Help
07/29/2010 - Diablo 2 - 3 Replies
hi i just started to use the bot it work's great.
how do i set up the skill's i use on my Sorc and pick up itme's?
.....
if you reply to this post please use english
|
All times are GMT +1. The time now is 19:39.
|
|