Register for your free account! | Forgot your password?

Go Back   elitepvpers > Other Online Games > Diablo 2 > Diablo 2 Programming
You last visited: Today at 18:22

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release] AutoMule mit Muddies D2NT

Discussion on [Release] AutoMule mit Muddies D2NT within the Diablo 2 Programming forum part of the Diablo 2 category.

Reply
 
Old 12/23/2010, 19:45   #151
 
elite*gold: 0
Join Date: Jul 2010
Posts: 88
Received Thanks: 0
jo ist klar. aber ich wills zunächst mal hinbekommen, dass er es im normalbetrieb auch schafft.

bei lowi's script funktioniert das ganze erst, wenn ich manuell das botscript stoppe, also auf STOP klicke. ne rd.dat ist erstellt, aber der bemerkt das nicht von selbst :/


edit: funktioniert! bugfix @letzte seite von lowi's thread, falls es wen interessiert
laxast is offline  
Old 12/24/2010, 20:31   #152
 
elite*gold: 0
Join Date: Jul 2010
Posts: 88
Received Thanks: 0
noch ne frage ^^ der bot geht irgendwie nach jedem einzelnen script (nach jedem travi, nach jedem eldritch, etc.) zu nem healer, selbst wenn er keine items mitgenommen hat. hätte das aber eigentlich weitesgehend ausgestellt. warum?

Code:
/**
*	This file was modified by 			
*	Check the programming section for updates and further scripts
*	Last Update: 09/05/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_UseRedemptionHP;
var NTConfig_UseRedemptionMP;

function NT_LoadConfig()
{
	NTConfig_AutoMule = true;
	DGFreeSpace = 12;
	NTConfig_ExcludeItemsFromMuling = true;
	
	//------------------------------------------------------------------------------
	// Rush - Bot
	//------------------------------------------------------------------------------

	//NTConfig_Script.push("NTRushAct1.ntj");
	//NTConfig_Script.push("NTRushAct2.ntj"); NTConfig_Cube = false; 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; 
	
	//------------------------------------------------------------------------------
	// Available Scripts
	//------------------------------------------------------------------------------
	 
	// Act1
	// NTConfig_Script.push(["NTMausoleum.ntj", 10]); NTConfig_KillBloodRaven = true;
	// NTConfig_Script.push(["NTTristram.ntj", 10]); NTConfig_KillRakanishu = true;
	// NTConfig_Script.push(["NTHole.ntj", 10]); NTConfig_ClearHoleLevel1 = 1; // 0 : don't clear, 1 : clear path only, 2 : clear all
	// NTConfig_Script.push(["NTTreehead.ntj", 10]);
	// NTConfig_Script.push(["NTCountess.ntj", 10]);
	// NTConfig_Script.push(["NTPit.ntj", 10]); NTConfig_ClearPathToPit = true; NTConfig_ClearPitLevel1 = 2; // 0 : don't clear, 1 : clear path only, 2 : clear all
	// NTConfig_Script.push(["NTAndariel.ntj", 10]);
	// NTConfig_Script.push(["NTAndarielBlizzard.ntj", 10]);
	
	// Act 2
	// NTConfig_Script.push(["NTRadament.ntj", 10]);
	// NTConfig_Script.push(["NTColdworm.ntj", 10]);
	// NTConfig_Script.push(["NTAncientTunnels.ntj", 10]); NTConfig_ClearPathToTunnels = true;
	// NTConfig_Script.push(["NTSummoner.ntj", 10]); NTConfig_KillFireEye = true;
	// NTConfig_Script.push(["NTDuriel.ntj", 10]); NTConfig_ClearPathToDuriel = true;
	
	// Act 3
	// NTConfig_Script.push(["NTFlayerJungle.ntj", 10]);
	// NTConfig_Script.push(["NTAct3Sewers.ntj", 10]); NTConfig_ClearA3SewersLevel1 = 1; // 0 : don't clear, 1 : clear path only, 2 : clear all
	// NTConfig_Script.push(["NTKurastTravel.ntj", 10]);
	// NTConfig_Script.push(["NTKurastTemple.ntj", 10]);
	// NTConfig_Script.push(["NTMephisto.ntj", 10]); NTConfig_OpenMephistoChest = true; NTConfig_MephistoClearArea = true;
	// NTConfig_Script.push(["NTMephistoBlizzard.ntj", 10]); NTConfig_OpenMephistoChest = false; NTConfig_MephistoClearArea = false;
	
	// Act 4
	// NTConfig_Script.push(["NTIzual.ntj", 10]);
	// NTConfig_Script.push(["NTHephasto.ntj", 10]);
	// NTConfig_Script.push(["NTDiabloClearAll.ntj", 10]); NTConfig_StartAtStar = false; // false: start at entrance, true: start at star
	// NTConfig_Script.push(["NTDiablo.ntj", 10]); NTConfig_StartAtStar = false; // false: start at entrance, true: start at star
	
	// Act 5
	// NTConfig_Script.push(["NTThreshSocket.ntj", 10]);
	// NTConfig_Script.push(["NTFrozenRiver.ntj", 10]); NTConfig_ClearFrozenRiver = false;
	// NTConfig_Script.push(["NTGlacialTrail.ntj", 10]); NTConfig_ClearGlacialTrail = false;
	// NTConfig_Script.push(["NTIcyCellar.ntj", 10]); NTConfig_ClearIcyCellar = false;
	// NTConfig_Script.push(["NTPindleskin.ntj", 10]); NTConfig_NihlathakExtension = true; NTConfig_SkipOnTombVipers = true;
	// NTConfig_Script.push(["NTNihlathak.ntj", 10]); NTConfig_PindleskinExtension = false; NTConfig_SkipOnTombVipers = true;
	// NTConfig_Script.push(["NTWorldstoneKeep.ntj", 10]); NTConfig_SkipLevelOnWitches = true; NTConfig_SkipLevelOnSouls = false; NTConfig_SkipLevelOnDeathLords = true;
	// NTConfig_Script.push(["NTBaal.ntj", 10]); NTConfig_KillBaal = true; NTConfig_SkipBaalOnDolls = true; NTConfig_SkipBaalOnSouls = false;
	
	// My Bosses
	 
    NTConfig_Script.push(["NTTravincal.ntj", 10]);
    NTConfig_Script.push(["NTEldritch.ntj", 10]); NTConfig_ShenkExtension = true;
	NTConfig_Script.push(["NTFastDiabloHard.ntj", 10]); // don't use for public games
    NTConfig_Script.push(["NTPindleskin.ntj", 10]); NTConfig_NihlathakExtension = false;
   
	
	// Miscellaneous
	// NTConfig_Script.push(["NTWaypointCatcher.ntj", 0]); NTConfig_WaypointCatcherActs = [1, 2, 3, 4, 5]; NTConfig_TPWaypoints = true; NTConfig_SkipHallsOfPain = true; NTConfig_ClearWaypointPaths = false; 
	// NTConfig_Script.push(["NTIdleMode.ntj", 0]); NTConfig_IdleModeRuntime = 5; // Runtime in Minutes
	// NTConfig_Script.push(["NTCows.ntj", 10]);
	
	// -------------- Organ Farm -----------------//
	// As soon as you have 1 of each key this     //
	// Script will try to get an organ.           //
	// -------------------------------------------//
	// ONLY USE WITH A CHAR THAT CAN FARM ORGANS! //
	// -------------------------------------------//
	
	// NTConfig_Script.puts(["NTOrganFarm.ntj",10]); NTConfig_SmiteUbers = false; NTConfig_PreBuffFade = false;
	
	//------------------------------------------------------------------------------
	// Baal-Leech-Bot
	//------------------------------------------------------------------------------

	//NTConfig_Script.push("NTBaalLeech.ntj"); 
	
	//------------------------------------------------------------------------------
	// Various Configuration
	//------------------------------------------------------------------------------
	NTConfig_SkipHealLife = 70;		// If you have more than this percent of life, you won't go to a healer
	NTConfig_SkipHealMana = 50;		// If you have more than this percent of mana, you won't go to a healer
	NTConfig_UseMerc = false;		// Set to true if you use a mercenary, will revive merc at a reviver npc.
	NTConfig_ResetWeapon = false;	// Set to true to reset weapon when reviving merc
	NTConfig_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 and make sure to include runewords in your .nip Files!)

	NTConfig_Teleport = true; 		// Set to false if you DONT have Teleport!

	//------------------------------------------------------------------------------
	// Chicken Configuration
	//------------------------------------------------------------------------------
	NTConfig_LifeThresh = 77;		// Drink a normal potion if under this percent of life.
	NTConfig_LifeRejuvThresh = 57;	// Drink a rejuvenation potion if under this percent of life.
	NTConfig_ManaThresh = 40;		// Drink a normal potion if under this percent of mana.
	NTConfig_ManaRejuvThresh = 5;	// Drink a rejuvenation potion if under this percent of mana.
	NTConfig_LifeChicken = 27;		// 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.
	
	NTConfig_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 = 3		// 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,0,0,0,0];
	NTConfig_Columns[1] = [1,1,1,1,1,1,0,0,0,0];
	NTConfig_Columns[2] = [1,1,1,1,1,1,0,0,0,0];
	NTConfig_Columns[3] = [1,1,1,1,1,1,0,0,0,0];

	NTConfig_MinGoldToStash = 3250000;	// 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] = "mp";
	NTConfig_BeltColType[2] = "rv";
	NTConfig_BeltColType[3] = "rv";
	
	NTConfig_BuyPotionsOnLackOfMana = true;	// Visit Town if your char lacks mana while trying to loot a corpse or to teleport
	
	//-----------------------------------------------------------------------------------
	// NipFile Configuration
	//-----------------------------------------------------------------------------------
	
	NTConfig_NIPFilePath.push("normal/1.nip");
	NTConfig_NIPFilePath.push("normal/2.nip");
	NTConfig_NIPFilePath.push("normal/3.nip");
	NTConfig_NIPFilePath.push("normal/4.nip");
	NTConfig_NIPFilePath.push("normal/5.nip");
	
	//------------------------------------------------------------------------------
	// Pickit Configuration
	//------------------------------------------------------------------------------
	NTConfig_SnagRange = 60;				// Radius to check for dropped items. 40 is a good number here
	NTConfig_PickItemsInstantly = false;			// Pickup items instantly whenever a monster is killed
	
	//------------------------------------------------------------------------------
	// FindItem Configuration
	//------------------------------------------------------------------------------
	NTConfig_UseFindItem = false;				// Loot corpses of slain Monsters when clearing positions or areas
	NTConfig_FindItemRange = 40;				// Default range to check for corpses to loot when clearing positions or areas
	NTConfig_PickLootedItemsInstantly = false;		// Pick Items directly after using Find Item (slows down looting a lot, not recommended for private games)
	
	// If you don't want to loot corpses in a certain area, add it's areaid to NTConfig_FindItemExceptions
	//NTConfig_FindItemExceptions.push(131); 		// Throne Of Destruction
	
	//------------------------------------------------------------------------------
	// Chest Configuration
	//------------------------------------------------------------------------------
	NTConfig_OpenChest = false;				// Set to true to open chest (mostly super unique chests)
	NTConfig_OpenAllNearbyChests = false;			// Open any kind of chest or lootable object nearby
	NTConfig_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
	NTConfig_OpenChestsRange = 35;				// Default range to check for chests
	// If you don't wish to open chests in a certain area, add it's areaid to NTConfig_ChestExceptions - Check the file "areas.txt" in the sdk folder to view all areaids
	//NTConfig_ChestExceptions.push(25); 			// Tower Cellar Lvl 5
	
	//------------------------------------------------------------------------------
	// Identification Configuration
	//------------------------------------------------------------------------------
	NTConfig_IdentAtCain = false;				// Identify items using cain (will only use cain, if you don't carry any items that are supposed to be kept unid)
	NTConfig_DropAtCain = false;				// Drop items at cain?
	NTConfig_AvoidCainA5 = false;				// Will Avoid Cain if visiting Malah anyway
	NTConfig_IdentAfterPickup = false;			// Identify items after pickup using a ID tome
	NTConfig_MinItemsToIdent = 2;				// Amount of unid items to carry before commencing ID progress
	
	//------------------------------------------------------------------------------
	// Itemlog Configuration
	//------------------------------------------------------------------------------
	NTConfig_UseXMLItemlog = false;				// Log kept and sold items additionally in a XML log file
	
	NTConfig_LogSoldItems = false;				// Adds sold items to the manager's itemlog
	NTConfig_ShowGoldPickupsPerScript = false;		// Shows how much gold was picked running the last script
	NTConfig_ShowGoldPickups = false;			// Show Pickup message whenever gold is picked
	NTConfig_ShowPotionPickups = false;			// Show Pickup message whenever a potion is picked
	NTConfig_LogStashToTxt = false;				// Use a textfile instead of a XML file for logging your char's carried items; false: log to .txt, true: log to .xml
	NTConfig_LowestRuneToLog = 23;				// Determine the lowest rune shown in both the Manager's and XML log at pickup (e.g. 0 to log every Rune >= EL or 19 to log every rune >= LEM)
	
	//------------------------------------------------------------------------------
	// Cubing Configuration
	//------------------------------------------------------------------------------
	NTConfig_Cubing = false;		// Enable cubing

	NTConfig_CubingItem.push([NTCU_ESSENCE, 653]);
	
	//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_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

	//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, 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

	//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
	//------------------------------------------------------------------------------
	NTConfig_AutoParty = false;					// Always use AutoParty, even if not being in public mode
	NTConfig_PublicMode = false;
		
	NTConfig_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
	
	me.maxgametime = 600; 		// 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
	//------------------------------------------------------------------------------
	NTConfig_CheckSojSales = false;			// 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 = false;		// Set to true if you want to wait in game after notifying "Diablo Walks the Earth" message.
	NTConfig_WorldEventAccount = "";		// Wisp this account in case of a world event or a soj sale every 10 minutes (leave blank not to wisp any account)
	NTConfig_WorldEventWaitTime = 0;		// How long you want to wait in game in case of a world event in minutes (0 is infinite)
		
	//------------------------------------------------------------------------------
	// Shrine Configuration
	//------------------------------------------------------------------------------
	NTConfig_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 NTConfig_ShrineExceptions - Check the file "areas.txt" in the sdk folder to view all areaids
	//NTConfig_ShrineExceptions(108); 		// Chaos Sanctuary
	
	//------------------------------------------------------------------------------
	// Attack Configuration
	//------------------------------------------------------------------------------
	NTConfig_AttackSkill[0] = 0;	// First skill. Set to 0 if you won't
	NTConfig_AttackSkill[1] = 112;	// Primary skill to boss.
	NTConfig_AttackSkill[2] = 113;	// Primary aura to boss. Set to 0 if you won't
	NTConfig_AttackSkill[3] = 112;	// Primary skill to others.
	NTConfig_AttackSkill[4] = 113;	// Primary aura 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 aura. Set to 0 if you won't
	NTConfig_ClearPosition = true;	// Set to true if you want to clear area after killing boss.

	NTConfig_CheckImmunitySkills = [];		// Define the condition for a monster being immune; Add skill numbers (0-6) here; Example: [1, 3] means that a monster is considered as immune if it is immune to both NTConfig_AttackSkill[1] and NTConfig_AttackSkill[3]
	NTConfig_BehaviourOnImmuneMonster = 0;	// Determine what the char is supposed to do when attacking immune Monsters; 0: Don't do anything (D2NT standard), 2: Skip the Monster
	// 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_UseRedemptionHP = 80;	// Use Redemption if under this percent of life. Set to 0 if you won't
	NTConfig_UseRedemptionMP = 60;	// Use Redemption if under this percent of mana. Set to 0 if you won't
}
laxast is offline  
Old 12/24/2010, 20:43   #153
 
elite*gold: 0
Join Date: Jul 2006
Posts: 469
Received Thanks: 235
Also wenn er das immer macht, dann weiss ich echt nicht wieso. Wenn's nur oft ist, dann evtl wegen dem hier:

Code:
NTConfig_SkipHealLife = 70;		// If you have more than this percent of life, you won't go to a healer
	NTConfig_SkipHealMana = 50;		// If you have more than this percent of mana, you won't go to a healer
Vorallem das Mana könnte ja uU unter 50% sein direkt nach dem Boss. Versuch es Mal mit 0 zum Testen

Frohes Fest
ldevil is offline  
Old 12/24/2010, 20:46   #154
 
elite*gold: 0
Join Date: Jul 2010
Posts: 88
Received Thanks: 0
nein, mana ist eigentlich immer drüber, habs jetzt trotzdem mal mit 0 probiert, aber macht natürlich keinen unterschied.

sind eben 5-10sek länger pro gestartetem script, aber nicht so schlimm. ich stell die frage noch bei muddy's thread selbst, vllt weiß der bescheid.

frohes fest
laxast is offline  
Old 12/24/2010, 21:56   #155
 
elite*gold: 0
Join Date: Jul 2010
Posts: 88
Received Thanks: 0
hmm, ich muss schon wieder was fragen ^^ hab das jetzt mit FullAuto gemacht, das mulen und er hat probleme beim char erstellen, weil ich im acc ne zahl drinnen hab ^^ beispiel:
acc heißt muh1-aringe

der char, den er erstellen will heißt nun: muh1-aringeundefined (wenn ich mich recht erinner)

wo ist denn die funktion zum char erstellen versteckt? damit der vllt nur den suffix nimmt zum char erstellen, d.h. das präfix löscht
laxast is offline  
Old 12/24/2010, 22:20   #156
 
elite*gold: 0
Join Date: Jul 2006
Posts: 469
Received Thanks: 235
Quote:
Originally Posted by cashgnm View Post
hmm, ich muss schon wieder was fragen ^^ hab das jetzt mit FullAuto gemacht, das mulen und er hat probleme beim char erstellen, weil ich im acc ne zahl drinnen hab ^^ beispiel:
acc heißt muh1-aringe

der char, den er erstellen will heißt nun: muh1-aringeundefined (wenn ich mich recht erinner)

wo ist denn die funktion zum char erstellen versteckt? damit der vllt nur den suffix nimmt zum char erstellen, d.h. das präfix löscht
Die ist, wer hätte es gedacht, im NTMuleFunctions.ntj

Nimm am besten das hier:

Code:
function getRandomCharName(_length)
{
   _retString = "";
   _charSet = "abcdefghijklmnopqrstuvwxyz";

   while(_length--)
   {
      _retString += _charSet.charAt(Random(0, _charSet.length-1));
      Delay(25);
   }
}
Weil du scheinst auch den "undefined" bug zu haben. Und ein zufälliger charname verhindert das.
ldevil is offline  
Thanks
1 User
Old 12/26/2010, 14:10   #157
 
elite*gold: 0
Join Date: Jul 2010
Posts: 88
Received Thanks: 0
heya erstmals danke für das mit den zufällig chars erstellen. hab da ein bisschen herumgetan, weil ich den einbau nicht ganz gecheckt hab, aber funktioniert jetzt wunderbar. (kannst dir ja angucken in der MuleFunctions, lol)

folgendes: bei RealmDowns funktioniert das mit dem sleep delay nicht, wenn man sich grade in der mulephase befindet. (d.h. RD ist während mulen aufgetreten)

im diablo fenster selber sieht man eben die RD message ganz normal, im D2NT manager steht dann immer als message "Character Select (2s)", und alle 2sekunden eben wieder von neuem.

im D2 fenster versucht der bot dann alle paar sekunden auf "create new character" zu gehen, d.h. irgendwie kapiert der das nicht ganz, dass der grad nen RD hat. normalerweise sollte er ja dann raus gehen ins startmenü.

hier meine MuleFunctions:

Code:
function NT_ScriptMsgEvents1(msg)
{
	if (DGDebug)
		NTC_SendLogToOOG(NTC_LOG_COMMON, "[Debug] ScriptMsg: " + msg);
		
	switch(msg)
	{
	case "MULE":		
		MuleState = "mule";	
		isWaiting = true;
		WriteMuleStats();
		ExitGame();	
		NTC_SendLogToOOG(NTC_LOG_COMMON, "Log on Mule Account");
		StatusDelay(20000, "Log on Mule Account ");
		ControlData.click(ControlData.controls.lobby.button.quit);
		Delay(2000);
		ControlData.click(ControlData.controls.characterSelect.button.exit);
		Delay(2000);
		
		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Prepare to log in");

		var filehandle = FileOpen("NTBot/mule_configs/" + me.account + "mulenip", 1);
		if(filehandle)
		{
			if (DGDebug)
				NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Writing Mule Nipfile : " + DGCurrentAcc);
			if (DGDebug)
				NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Content : " + DGNipFiles[DGCurrentAcc]);
				
			filehandle.WriteLine(DGNipFiles[DGCurrentAcc]); 

			filehandle.Close();
		}
		isWaiting = false;
		WriteMuleStats();
		break;
		
	case "MULE_START":			
		MuleState = "mulefull";
		isWaiting = true;
		WriteMuleStats();
		JoinBug = 0;
		isMuling = true;
		preventRecover = true;
		StatusDelay(TimeBeforeMuleGame * 60 * 1000, "Wait before MuleGame ");		
		MuleState = "mulestart";
		isWaiting = false;
		WriteMuleStats();
		break;
		
	case "MULE_FULL":					
		MuleState = "mulefull";
		isWaiting = true;
		WriteMuleStats();
		ExitGame();
		NTC_SendLogToOOG(NTC_LOG_COMMON, "Log on next Mule char because current Mulechar is full!");
		StatusDelay(10000, "Next Char ");
		ControlData.click(ControlData.controls.lobby.button.quit);
		
		isMuling  = true;
		muleFull = true;
		isWaiting = false;
		WriteMuleStats();
		break;
		
		
	case "DONE":			
		MuleState = "done";
		isWaiting = true;
		WriteMuleStats();
		ExitGame();
		DGCurrentAcc++;
		if (DGCurrentAcc >= DGNipFiles.length)
		{
			StatusDelay(TimeAfterMule * 60 * 1000, "Finished Muling ");
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Finished Muling!");
			NTC_Delay(2000);
			ControlData.click(ControlData.controls.lobby.button.quit);
			NTC_Delay(2000);
			ControlData.click(ControlData.controls.characterSelect.button.exit);
			StatusDelay(10000, "LogIn ");
			
			JoinBug = 0;
			DGCurrentAcc = 0;
			MuleState = "notmuling";
			WriteMuleStats();
			isWaiting = false;
			isMuling = false;
		}else{	
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Log on next Mule Account");
			StatusDelay(22000, "Next Account ");
			ControlData.click(ControlData.controls.lobby.button.quit);
			NTC_Delay(2000);
			ControlData.click(ControlData.controls.characterSelect.button.exit);
			NTC_Delay(2000);

			var filehandle = FileOpen("NTBot/mule_configs/" + me.account + "mulenip", 1);
			if(filehandle)
			{
				filehandle.WriteLine(DGNipFiles[DGCurrentAcc]); 

				filehandle.Close();
			}	
		}
		
		isWaiting = false;
		WriteMuleStats();
		break;

	case "DEBUGPERMED":
		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "[Debug] Game Permed");
		break;

	case "RECOVER":		
		MuleState = "recover";	
		isWaiting = true;
		WriteMuleStats();
		ExitGame();	
		NTC_SendLogToOOG(NTC_LOG_COMMON, "Trying to Recover Items");
		StatusDelay(22000, "[AutoMule] Recovering ");
		ControlData.click(ControlData.controls.lobby.button.join);
		Delay(2000);
		
		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Trying to join Game");

		isWaiting = false;
		WriteMuleStats();
		break;

	case "ABORT":			
		StatusDelay(10000, "[AutoMule] Restart");
		NTC_SendLogToOOG(NTC_LOG_COMMON, "[AutoMule] Recovery Completed! Restarting!");
		NTC_Delay(2000);
			
		JoinBug = 0;
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		WriteMuleStats();
		isMuling = false;
				
		NT_SendEventToOOG(D2NT_MGR_RESTART, location.name, 10);
		break;
	}

}

function AutoMuleLocationAction(location)
{
	switch(location.id)
	{

	case 3: // Lobby Chat
		Delay(500);
		ControlData.click(ControlData.controls.lobby.button.join);
		break;
		
	case 1:   // Lobby
		Delay(500);
		ControlData.click(ControlData.controls.lobby.button.join);
		Delay(500);
		break;

	case 2: // Waiting In Line
		if(GetTickCount()-LastGameMade > waitInLineTimeout)
		ControlData.click(ControlData.controls.lobby.inLine.button.cancel);
		break;

	case 4: // Create Game
		
		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Something is wrong! Trying to recover...");

		Delay(500);
		ControlData.click(ControlData.controls.lobby.button.join);
		break;

	case 5: // Join Game
		if(!ControlData.get(ControlData.controls.lobby.join.editBox.gameName))
		{
			ControlData.click(ControlData.controls.lobby.button.create);
			Delay (500);
			ControlData.click(ControlData.controls.lobby.button.join);
			Delay (500);
		}
		
		
		ControlData.setText( ControlData.controls.lobby.join.editBox.gameName, MuleGame);
		Delay (200);
		ControlData.setText( ControlData.controls.lobby.join.editBox.password, MuleGamePassword);
		Delay (5000);
		ControlData.click(ControlData.controls.lobby.join.button.joinGame);
		
		LastGameStatus = 1; // pending join
		break;

	case 6: // Ladder
		Delay(500);
		ControlData.click(ControlData.controls.lobby.button.join);
		break;

	case 7: // Channel List
		Delay(500);
		ControlData.click(ControlData.controls.lobby.button.join);
		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
		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Start login");
			
		NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
		
		Delay(LoginDelay);

		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Enter Account");

		ControlData.setText(ControlData.controls.login.editBox.accountName, DGMuleAccs[DGCurrentAcc]);
		Delay(1000)

		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Enter PW");

		ControlData.setText(ControlData.controls.login.editBox.password, DGMulePws[DGCurrentAcc]);
		Delay(500);

		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Click Login!");

		ControlData.click(ControlData.controls.login.button.logIn);

		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Logged In");

		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);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
		break;

	case 11: // Unable To Connect
		NT_TimeoutDelay(unableToConnectRetry*60*1000, location)
		ControlData.click(ControlData.controls.login.unableToConnect.button.ok);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
		break;

	case 12: // Character Select
		var _time, _control;
		
		if (muleFull)
		{
			MuleCharLocation[DGCurrentAcc]++;
			muleFull = false;
			if (MuleCharLocation[DGCurrentAcc] > 7)
				DGCurrentAcc++;
			if (DGCurrentAcc > DGMuleAccs.length)
			{
				ControlData.click(ControlData.controls.characterSelect.button.exit);
				DGCurrentAcc = 0;
				MuleState = "notmuling";
				isMuling = false;
				WriteMuleStats();
			}
		}
		NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);

		for(_time = 0 ; _time < CharacterScreenTimeout ; _time += 500)
		{
			if (DGDebug)
				NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Choose Character 1");

			_control = ControlData.get(ControlData.controls.characterSelect.textBox.characterInfo[MuleCharLocation[DGCurrentAcc]]);
			if(_control && _control.GetText() != undefined)
			break;

			Delay(500);
		}

		if(_time < CharacterScreenTimeout)
		{
			Delay(CharacterSelectDelay);

			if (DGDebug)
				NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Choose Character 2 - " + DGCurrentAcc);

			ControlData.click(ControlData.controls.characterSelect.textBox.characters[MuleCharLocation[DGCurrentAcc]], 0, 0, 1);

			if (DGDebug)
				NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Choose Character 3 - MuleCharLocation[DGCurrentAcc]");

			ControlData.click(ControlData.controls.characterSelect.textBox.characterInfo[MuleCharLocation[DGCurrentAcc]], 0, 0, 1);

			// reset last game made, so it doesnt make a game immediately
			InGameAt = 0;
			NT_SetNextGameMake();
		}
		else
		{
			if (DGDebug)
				NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Exit Charselection");

			           var _rdfile;
		_rdfile = FileOpen("rd.dat", 2);
        _rdfile.Close();
        
        ControlData.click(ControlData.controls.characterSelect.button.exit);
			NT_TimeoutDelay(RealmDownRetry*60*1000, location);
		}
		break;

	case 13: // Realm Down - Character Select screen
		           var _rdfile;
		_rdfile = FileOpen("rd.dat", 2);
        _rdfile.Close();
        
        ControlData.click(ControlData.controls.characterSelect.button.exit);
		NT_TimeoutDelay(RealmDownRetry*60*1000, location);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
		break;

	case 14: // Character Select - Disconnected
		NT_TimeoutDelay(disconnectedRetry*60*1000, location);
		ControlData.click(ControlData.controls.characterSelect.disconnected.button.ok);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
		break;

	case 15: // New Character
		Delay(500);
		break;   

	case 16: // Character Select - Please Wait popup
        myTest++;
		if(myTest > 10)
		{
			NT_SendEventToOOG(D2NT_MGR_PRINT_LOG, "ÿE00000Restart due to infinite loop!", 0);
			NT_SendEventToOOG(D2NT_MGR_RESTART, location.name, 10);
		}
		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
		Delay(500);
		ControlData.click(ControlData.controls.lobby.lostConnection.button.ok);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
		break;

	case 18: // D2 Splash
		Delay(500);
		ControlData.click(ControlData.controls.d2Splash.textBox.copyright);
		break;

	case 19: // Login - Cdkey In Use
		NT_TimeoutDelay(cdkeyInUseRetry*60*1000, location);
		ControlData.click(ControlData.controls.login.cdkeyInUse.button.ok);
		break;

	case 20: // Single Player - Select Difficulty
		// You can't Mule in Single Player ;)
		Delay(500);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
		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..
		Delay(5000);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
		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
		// We should not get this Message, but well - JOIN!
		Delay(500);
		NT_SendEventToOOG(D2NT_MGR_PRINT_LOG, "Game already exists", 0);

		ControlData.click(ControlData.controls.lobby.button.join);
		break;

	case 27: // Gateway Select
		Delay(500);
		ControlData.clickRealmEntry(me.gatewayid);
		ControlData.click(ControlData.controls.gateway.button.ok);
		break;

	case 28: // Lobby - Game Does Not Exist
		
		if (JoinBug == 1)
		{
			JoinBug++;
			Delay(25000);
			ControlData.click(ControlData.controls.lobby.button.create);
		}else if (JoinBug < JoinRetries){
			JoinBug++;
			Delay(JoinRetryDelay * 1000);
			ControlData.click(ControlData.controls.lobby.button.create);
		}else{
			// Well we are kinda fucked, abort!

			NTC_SendLogToOOG(NTC_LOG_COMMON, "Could not join Mulegame!");
			NTC_Delay(2000);
			ControlData.click(ControlData.controls.lobby.button.quit);
			NTC_Delay(2000);
			ControlData.click(ControlData.controls.characterSelect.button.exit);
				
			JoinBug  = 0;
			DGCurrentAcc = 0;
			MuleState = "notmuling";
			isMuling = false;
		}
		break;

	default:
		break;
	}
}

function FullAutoLocationAction(location)
{
    switch(location.id)
    {
    case 3: // Lobby Chat
        Delay (500);
        ControlData.click(ControlData.controls.lobby.button.join);
        break;
		
    case 1:    // Lobby
        Delay (500);
        ControlData.click(ControlData.controls.lobby.button.join);
        break;

    case 2: // Waiting In Line
        if(GetTickCount()-LastGameMade > WaitInLineTimeout)
            ControlData.click(ControlData.controls.lobby.inLine.button.cancel);
        break;

    case 4: // Create Game
        Delay (500);
        ControlData.click(ControlData.controls.lobby.button.join);
        break;

    case 5: // Join Game
		if(!ControlData.get(ControlData.controls.lobby.join.editBox.gameName))
		{
			ControlData.click(ControlData.controls.lobby.button.create);
			Delay (500);
			ControlData.click(ControlData.controls.lobby.button.join);
			Delay (500);
		}
		
		
		ControlData.setText( ControlData.controls.lobby.join.editBox.gameName, MuleGame);
		Delay (200);
		ControlData.setText( ControlData.controls.lobby.join.editBox.password, MuleGamePassword);
		Delay (10000);
		ControlData.click(ControlData.controls.lobby.join.button.joinGame);
		
		LastGameStatus = 1; // pending join
		
		break;

    case 6: // Ladder
        Delay (500);
        ControlData.click(ControlData.controls.lobby.button.join);
        break;
		

    case 7: // Channel List
        Delay (500);
        ControlData.click(ControlData.controls.lobby.button.join);
        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
		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Get Account Name");
			
		var _AccName = getCurrentMuleAcc();
		
		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Acc Name is '" + _AccName + "'");

		if (_AccName == "")
			createNewAccount = true;
			
		if (!createNewAccount)
		{
			Delay(1234);
			if (DGDebug)
				NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Account Name");
			ControlData.setText(ControlData.controls.login.editBox.accountName, _AccName);
			Delay(872);
			if (DGDebug)
				NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Password");
			ControlData.setText(ControlData.controls.login.editBox.password, getCurrentMulePW());
			Delay(468);
			if (DGDebug)
				NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Log In");
			ControlData.click(ControlData.controls.login.button.logIn);

			NT_LocationTimeout(5000, location);
			break;
		}else{
			Delay(1234);
			if (DGDebug)
				NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Create New Account");
			ControlData.click(ControlData.controls.login.button.createNewAccount);
			NT_LocationTimeout(5000, location);
			break;
		}


	case 10: // Login Error (this is a fatal error, so stop)
		NTC_SendLogToOOG(NTC_LOG_COMMON, "MuleScript: Login Error");
		NT_SendEventToOOG(D2NT_MGR_RESTART, location.name, 10);
		Delay(3500);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
		break;

	case 11: // Unable To Connect
		NTC_SendLogToOOG(NTC_LOG_COMMON, "MuleScript: Unable to Connect");
		NT_TimeoutDelay(unableToConnectRetry*60*1000, location)
		ControlData.click(ControlData.controls.login.unableToConnect.button.ok);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
		break;

    case 12: // Character Select
	
		Delay(500);
		for(var i = 0 ; i < 8 ; i++)
		{
			_control = ControlData.get(ControlData.controls.characterSelect.textBox.characterInfo[i]);
			if(!_control || _control.GetText() == undefined)
				break;
			Delay(500);
		}
		if(i < 8)
		{
			if (muleFull || (i == 0))
			{
				ControlData.click(ControlData.controls.characterSelect.button.createNew);
				CharCreateNumber = i;
				muleFull = false;
			}else{
				var _time, _control;

				NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);

				for(_time = 0 ; _time < CharacterScreenTimeout ; _time += 500)
				{
					if (DGDebug)
						NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Choose Character 1");

					_control = ControlData.get(ControlData.controls.characterSelect.textBox.characterInfo[i-1]);
					if(_control && _control.GetText() != undefined)
					break;

					Delay(500);
				}

				if(_time < CharacterScreenTimeout)
				{
					Delay(CharacterSelectDelay);

					if (DGDebug)
						NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Choose Character 2 - " + DGCurrentAcc);

					ControlData.click(ControlData.controls.characterSelect.textBox.characters[i-1], 0, 0, 1);

					if (DGDebug)
						NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Choose Character 3 -" + i);

					ControlData.click(ControlData.controls.characterSelect.textBox.characterInfo[i-1], 0, 0, 1);

					// reset last game made, so it doesnt make a game immediately
					InGameAt = 0;
					NT_SetNextGameMake();
				}
				else
				{
					if (DGDebug)
						NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Exit Charselection");

					           var _rdfile;
		_rdfile = FileOpen("rd.dat", 2);
        _rdfile.Close();
        
        ControlData.click(ControlData.controls.characterSelect.button.exit);
					NT_TimeoutDelay(RealmDownRetry*60*1000, location);
				}
				break;
			}
		}
		else
		{
			// No more Chars to create - Create Next Account
			Delay(500);
			if (muleFull)
			{
				ControlData.click(ControlData.controls.characterSelect.button.exit);
				createNewAccount = true;
				muleFull = false;
			}else{
				var _time, _control;

				NT_SendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);

				for(_time = 0 ; _time < CharacterScreenTimeout ; _time += 500)
				{
					if (DGDebug)
						NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Choose Character 1");

					_control = ControlData.get(ControlData.controls.characterSelect.textBox.characterInfo[i-1]);
					if(_control && _control.GetText() != undefined)
					break;

					Delay(500);
				}

				if(_time < CharacterScreenTimeout)
				{
					Delay(CharacterSelectDelay);

					if (DGDebug)
						NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Choose Character 2 - " + DGCurrentAcc);

					ControlData.click(ControlData.controls.characterSelect.textBox.characters[i-1], 0, 0, 1);

					if (DGDebug)
						NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Choose Character 3 -" + i);

					ControlData.click(ControlData.controls.characterSelect.textBox.characterInfo[i-1], 0, 0, 1);

					// reset last game made, so it doesnt make a game immediately
					InGameAt = 0;
					NT_SetNextGameMake();
				}
				else
				{
					if (DGDebug)
						NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Exit Charselection");

					ControlData.click(ControlData.controls.characterSelect.button.exit);
					NT_TimeoutDelay(RealmDownRetry*60*1000, location);
				}
				break;
			}
			break;
		}
			
		NT_LocationTimeout(2000, location);
        break;

    case 13: // Realm Down - Character Select screen
		           var _rdfile;
		_rdfile = FileOpen("rd.dat", 2);
        _rdfile.Close();
        
        NTC_SendLogToOOG(NTC_LOG_COMMON, "MuleScript: Realm Down");
        ControlData.click(ControlData.controls.characterSelect.button.exit);
        NT_TimeoutDelay(RealmDownRetry*60*1000, location);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
        break;

    case 14: // Character Select - Disconnected
		NTC_SendLogToOOG(NTC_LOG_COMMON, "MuleScript: Disconnected");
        NT_TimeoutDelay(DisconnectedRetry*60*1000, location);
        ControlData.click(ControlData.controls.characterSelect.disconnected.button.ok);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
        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
		NTC_SendLogToOOG(NTC_LOG_COMMON, "MuleScript: Connection Lost");
        ControlData.click(ControlData.controls.lobby.lostConnection.button.ok);
        Delay(15000);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
        break;

    case 18: // D2 Splash
        ControlData.click(ControlData.controls.d2Splash.textBox.copyright);
        break;

    case 19: // Login - Cdkey In Use
        NT_TimeoutDelay(CdKeyInUseRetry*60*1000, location);
        ControlData.click(ControlData.controls.login.cdkeyInUse.button.ok);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
        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);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
        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..
        Delay(15000);
		DGCurrentAcc = 0;
		MuleState = "notmuling";
		isMuling = false;
		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
		// We should not get this Message, but well - JOIN!
		Delay(500);
		ControlData.click(ControlData.controls.lobby.button.join);
		break;

    case 27: // Gateway Select
        Delay(500);
        ControlData.clickRealmEntry(me.gatewayid);
        ControlData.click(ControlData.controls.gateway.button.ok);
        break;

    case 28: // Lobby - Game Does Not Exist
		
		if (JoinBug == 1)
		{
			JoinBug++;
			Delay(25000);
			ControlData.click(ControlData.controls.lobby.button.create);
		}else if (JoinBug < JoinRetries){
			JoinBug++;
			Delay(JoinRetryDelay * 1000);
			ControlData.click(ControlData.controls.lobby.button.create);
		}else{
			// Well we are kinda fucked, abort!

			NTC_SendLogToOOG(NTC_LOG_COMMON, "Could not join Mulegame!");
			NTC_Delay(2000);
			ControlData.click(ControlData.controls.lobby.button.quit);
			NTC_Delay(2000);
			ControlData.click(ControlData.controls.characterSelect.button.exit);
				
			JoinBug  = 0;
			DGCurrentAcc = 0;
			MuleState = "notmuling";
			isMuling = false;

			//LastGameStatus = 0;
			//NT_SetNextGameMake();

			//NT_LocationTimeout(gameDoesNotExistTimeout, location);
		}
        break;
		
	case 29: // Create New Char
		Delay(613);
		ControlData.click(ControlData.controls.characterCreate.chars[0]);
		Delay(2399);
		ControlData.setText(ControlData.controls.characterCreate.editBox.charName, getNextCharName());
		// SET LADDER AND STUFF !?
		if (!isLadder)
		{
			Delay(198);
			ControlData.click(ControlData.controls.characterCreate.button.ladderChar);
		}
		if (isHC)
		{
			Delay(555);
			ControlData.click(ControlData.controls.characterCreate.button.hardcore);
			Delay(1111);
			ControlData.click(ControlData.controls.characterCreate.button.continuehardcore);
		}
		if (isClassic)
		{
			Delay(341);
			ControlData.click(ControlData.controls.characterCreate.button.expansionChar);
		}
		// Create the Char Now
		Delay(2109);
		ControlData.click(ControlData.controls.characterCreate.button.ok);
		break;
		
	case 30: // Create New Char
        Delay(222);
		break;
		
	case 31: // Terms & Stuff
		Delay(521);
		ControlData.click(ControlData.controls.termsofuse.button.agree);
        NT_LocationTimeout(1000, location);
		break;
		
	case 32: // Select New Account Name and Password
		Delay(2334);
		
		_NewAccName = getNewAccountName();
		ControlData.setText(ControlData.controls.newaccount.editBox.accountName, _NewAccName);
		
		Delay(1772);
		
		_NewAccPW = getNewAccountPassword();
		ControlData.setText(ControlData.controls.newaccount.editBox.password, _NewAccPW);
		
		Delay(1129);
		ControlData.setText(ControlData.controls.newaccount.editBox.confirmpassword, _NewAccPW);
		
		Delay(794);
		ControlData.click(ControlData.controls.newaccount.button.ok);
		
		var filehandle = FileOpen("NTBot/mule_configs/MuleAccs/MuleAccs_" + me.account + "_" + MuleAccSuffix[DGCurrentAcc] +".txt", 2);
		if(filehandle)
		{
			filehandle.WriteLine(_NewAccName + "//" + _NewAccPW);
			filehandle.Close();
		}
		createNewAccount = false;
		
        NT_LocationTimeout(2000, location);
		break;
		
	case 33: // Set Recovery E-Mail
		if (RegMail.length)
		{
			Delay(642);
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Set Mail");
			ControlData.setText(ControlData.controls.email.editBox.email, RegMail);
			Delay(1421);
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Confirm Mail");
			ControlData.setText(ControlData.controls.email.editBox.confirmemail, RegMail);
			Delay(913);
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Submit");
			ControlData.click(ControlData.controls.email.button.register);			
			NT_LocationTimeout(2000, location);
		}else{
			Delay(2311);
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Dont Reg");
			ControlData.click(ControlData.controls.email.button.dontregister);			
			NT_LocationTimeout(2000, location);
		}
		break;
		
	case 34: // No Regged Email Popup
		Delay(1391);
		ControlData.click(ControlData.controls.email.confirm.button.continue);				
		NT_LocationTimeout(2000, location);
		break;
		
	default:
		Delay(426);
		break;
    }
}

function BotMuleAction(location)
{
	switch(location.id)
	{

	case 3: // Lobby Chat
		SetStatusText("ÿc1[AutoMule] Wait 5s");    
		Delay(5000);
		
		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Click Create!");

		ControlData.click(ControlData.controls.lobby.button.create);

		break;

		
	case 1:   // Lobby

		SetStatusText("ÿc1[AutoMule] Wait 5s");    
		Delay(5000);
		ControlData.click(ControlData.controls.lobby.button.create);

		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);
		}
		
		ControlData.setText( ControlData.controls.lobby.create.editBox.gameName, MuleGame);
		Delay (600);
		ControlData.setText( ControlData.controls.lobby.create.editBox.password, MuleGamePassword);
		Delay (700);
		ControlData.click(ControlData.controls.lobby.create.button.normal);
		SetStatusText("ÿc1[AutoMule] Create Game in 5s");    
		Delay(5000);
		ControlData.click(ControlData.controls.lobby.create.button.createGame);
		Delay(500);

		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Creating Game!");	
		
		//sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);

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

        	NT_LocationTimeout(5000, location);	

		LastGameMade = GetTickCount();
        	LastGameStatus = 1; // pending creation
        	break;


	case 5: // Join Game
		if(!ControlData.get(ControlData.controls.lobby.join.editBox.gameName))
		{
			ControlData.click(ControlData.controls.lobby.button.create);
			Delay (500);
			ControlData.click(ControlData.controls.lobby.button.join);
			Delay (500);
		}
		
		
		ControlData.setText( ControlData.controls.lobby.join.editBox.gameName, MuleGame);
		Delay (200);
		ControlData.setText( ControlData.controls.lobby.join.editBox.password, MuleGamePassword);
		SetStatusText("ÿc1[AutoMule] Join in 5s");    
		Delay (5000);
		ControlData.click(ControlData.controls.lobby.join.button.joinGame);
		//RunGC(); // run garbage collector between each game
		//NT_LocationTimeout(1000, location);
		LastGameStatus = 1; // pending join
		
		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
		NT_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
		{
			           var _rdfile;
		_rdfile = FileOpen("rd.dat", 2);
        _rdfile.Close();
        
        ControlData.click(ControlData.controls.characterSelect.button.exit);
			NT_TimeoutDelay(RealmDownRetry*60*1000, location);
		}
		break;

	case 13: // Realm Down - Character Select screen
		           var _rdfile;
		_rdfile = FileOpen("rd.dat", 2);
        _rdfile.Close();
        
        ControlData.click(ControlData.controls.characterSelect.button.exit);
		NT_TimeoutDelay(RealmDownRetry*60*1000, location);
		break;

	case 14: // Character Select - Disconnected
		NT_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
		NT_TimeoutDelay(cdkeyInUseRetry*60*1000, location);
		ControlData.click(ControlData.controls.login.cdkeyInUse.button.ok);
		break;

	case 20: // Single Player - Select Difficulty
		RunGC(); // run garbage collector between each game

		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, "Game already exists", 0);

		// Well then try to join it instead ;)
		ControlData.click(ControlData.controls.lobby.button.join);

//		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
		
		if (JoinBug == 0)
		{
			JoinBug++;
			SetStatusText("ÿc1[AutoMule] Maybe Join Bug, waiting 30s");    
			Delay(25000);
			ControlData.click(ControlData.controls.lobby.button.create);
		}else if (JoinBug < JoinRetries){
			SetStatusText("ÿc1[AutoMule] Attempt #" + JoinBug + "/" + JoinRetries + " waiting " + JoinRetryDelay + "s");    
			JoinBug++;
			Delay(JoinRetryDelay * 1000);
			ControlData.click(ControlData.controls.lobby.button.create);
		}else{
			// Well we are kinda fucked, abort!

			SetStatusText("ÿc1[AutoMule] Aborting now...");   
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Could not join Mulegame!");
			NTC_Delay(2000);
			ControlData.click(ControlData.controls.lobby.button.quit);
			NTC_Delay(2000);
			ControlData.click(ControlData.controls.characterSelect.button.exit);
				
			JoinBug  = 0;
			DGCurrentAcc = 0;
			MuleState = "notmuling";
			isMuling = false;

			//LastGameStatus = 0;
			//NT_SetNextGameMake();

			//NT_LocationTimeout(gameDoesNotExistTimeout, location);
		}
		break;

	default:
		break;
	}
}

function getNextCharName()
{
   var _charname = "";
   var _charSetA = "abcdefghijklmnopqrstuvwxyz";
   var _charSetB = "abcdefghijklmnopqrstuvwxyz";
   var _charSetC = "abcdefghijklmnopqrstuvwxyz";
   var _charSetD = "abcdefghijklmnopqrstuvwxyz";
   var _charSetE = "abcdefghijklmnopqrstuvwxyz";
   var _charSetF = "abcdefghijklmnopqrstuvwxyz";
   var _charSetG = "abcdefghijklmnopqrstuvwxyz";
   var _charSetH = "abcdefghijklmnopqrstuvwxyz";
   var _charSetI = "abcdefghijklmnopqrstuvwxyz";
   var _charSetJ = "abcdefghijklmnopqrstuvwxyz";
   var _charSetK = "abcdefghijklmnopqrstuvwxyz";
   var _charSetL = "abcdefghijklmnopqrstuvwxyz";
   var _charSetM = "abcdefghijklmnopqrstuvwxyz";
   var _charSetN = "abcdefghijklmnopqrstuvwxyz";
   var _charSetO = "abcdefghijklmnopqrstuvwxyz";
   

      _charname += _charSetA.charAt(Random(0, _charSetA.length-1));
      _charname += _charSetB.charAt(Random(0, _charSetB.length-2));
      _charname += _charSetC.charAt(Random(0, _charSetC.length-3));
      _charname += _charSetD.charAt(Random(0, _charSetD.length-4));
      _charname += _charSetE.charAt(Random(0, _charSetE.length-5));
      _charname += _charSetF.charAt(Random(0, _charSetF.length-6));
      _charname += _charSetG.charAt(Random(0, _charSetG.length-7));
      _charname += _charSetH.charAt(Random(0, _charSetH.length-8));
      _charname += _charSetI.charAt(Random(0, _charSetI.length-9));
      _charname += _charSetJ.charAt(Random(0, _charSetJ.length-10));
      _charname += _charSetK.charAt(Random(0, _charSetK.length-11));
      _charname += _charSetL.charAt(Random(0, _charSetL.length-12));
      _charname += _charSetM.charAt(Random(0, _charSetM.length-13));
      _charname += _charSetN.charAt(Random(0, _charSetN.length-14));
      _charname += _charSetO.charAt(Random(0, _charSetO.length-15));
      Delay(25);
      
   return _charname;
}


function WriteMuleStats()
{
	var filehandle = FileOpen("NTBot/mule_configs/" + me.account + "mulestats", 1);
	if(filehandle)
	{
		if (DGDebug)
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Writing Mule Stat File");
			
		filehandle.WriteLine("MuleState=" + MuleState); 
		//filehandle.WriteLine("Waiting=" + isWaiting); 
		filehandle.WriteLine("CurrentAcc=" + DGCurrentAcc);
		filehandle.Close();
	}
}

function ReadMuleStats()
{
	var filehandle = FileOpen("NTBot/mule_configs/" + me.account + "mulestats", 2);
	if(filehandle)
	{
		while (!filehandle.eof)
		{
			var _stat = filehandle.ReadLine();
			_stat = _stat.split("=");
			if (_stat[0] == "MuleState")
			{
				MuleState = _stat[1];
				if (DGDebug)
					NTC_SendLogToOOG(NTC_LOG_COMMON, "[Debug] MuleState: " + MuleState);
			}
			else if (_stat[0] == "CurrentAcc")
			{
				DGCurrentAcc = _stat[1];
				if (DGDebug)
					NTC_SendLogToOOG(NTC_LOG_COMMON, "[Debug] DGCurrentAcc: " + DGCurrentAcc);
			}
			else if (_stat[0] == "Waiting")
			{
				DGCurrentAcc = _stat[1];
				if (DGDebug)
					NTC_SendLogToOOG(NTC_LOG_COMMON, "[Debug] Waiting: " + isWaiting);
			}
		}
	}
	if (MuleState != "notmuling")
	{
		isMuling = true;
	}
}

function getCurrentMuleAcc()
{
	var _name = "";
	var filehandle = FileOpen("NTBot/mule_configs/MuleAccs/MuleAccs_" + me.account + "_" + MuleAccSuffix[DGCurrentAcc] +".txt", 2);
	if(filehandle)
	{
		while (!filehandle.eof)
		{
			var _temp = filehandle.ReadLine();	
			if (_temp != "")
				_name = _temp;
		}
		filehandle.Close();
	}
	if (_name != "")
	{
		_name = _name.split("//")
		_name = _name[0];
	}
	return _name;
}

function getCurrentMulePW()
{
	var _name = "";
	var filehandle = FileOpen("NTBot/mule_configs/MuleAccs/MuleAccs_" + me.account + "_" + MuleAccSuffix[DGCurrentAcc] +".txt", 2);
	if(filehandle)
	{
		while (!filehandle.eof)
		{
			var _temp = filehandle.ReadLine();	
			if (_temp != "")
				_name = _temp;
		}
		filehandle.Close();
	}
	_name = _name.split("//")
	return _name[1];
}

function getNewAccountName()
{
	var _result;
	_result = AccPrefix + "-";
	if (UseNumbers)
	{
		_result += MuleAccSuffix[DGCurrentAcc];
		_result += getNextAccNumber();
	}
	else
	{
		_result += getNextAccLetter();
		_result += MuleAccSuffix[DGCurrentAcc];
	}	
	return _result;
}

function getNextAccNumber()
{
	var _count = 0;
	var filehandle = FileOpen("NTBot/mule_configs/MuleAccs/MuleAccs_" + me.account + "_" + MuleAccSuffix[DGCurrentAcc] +".txt", 2);
	if(filehandle)
	{
		while (!filehandle.eof)
		{
			_count++;
			filehandle.ReadLine();
		}
		filehandle.Close();
	}
	return _count;
}

function getNextAccLetter()
{
	var _count = -1;
	var _index;
	var _letter = "";
	var _Letters = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
	var filehandle = FileOpen("NTBot/mule_configs/MuleAccs/MuleAccs_" + me.account + "_" + MuleAccSuffix[DGCurrentAcc] +".txt", 2);
	if(filehandle)
	{
		while (!filehandle.eof)
		{
			_count++;
			filehandle.ReadLine();
		}
		filehandle.Close();
	}
	while (_count + 1 > _Letters.length)
	{
		_index = _count % _Letters.length;
		_letter += _Letters[_index];
		_count -= _Letters.length;
	}
	_index = _count % _Letters.length;
	_letter += _Letters[_index];
	return _letter;
}

function getNewAccountPassword()
{
	var _pw;
	if (NewAccPW[DGCurrentAcc].length)
	{
		_pw = NewAccPW[DGCurrentAcc];
	}else{
		_pw = getRandomString(8);
	}
	return _pw;
}

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

var _NTIP_DontMuleCheckList = new Array();

function NTIPDontMuleOpenFile(filepath)
{
	var _nipfile;
	var _line;
	var _filename, _lineCount, _buffer;
	
	_lineCount = 0;
	_nipfile = FileOpen(filepath, 0);
	_filename = filepath.split("/")[filepath.split("/").length - 1];

	if(!_nipfile)
		return false;

	while(!_nipfile.eof)
	{
		_lineCount++;
		_buffer = _nipfile.ReadLine();
		_line = NTIPParseLineInt(_buffer);

		if(_line)
		{
			_line.push("ÿc8" + _filename + "ÿc0, Line ÿc8" + _lineCount);
			_line.push(_buffer);
			_NTIP_DontMuleCheckList.push(_line);
		}
	}

	_nipfile.Close();

	return true;
}

function NTSI_LoadDontMule(filepath)
{
	for(var i = 0 ; i < NTConfig_DontMule.length ; i++)
		NTIPDontMuleOpenFile(filepath + "/" + NTConfig_DontMule[i]);
}

function NTIPDontMuleCheckItem(item, offset, printinfo)
{
	var i;
	var _identified;
	var _result = 0;
	var _amount, _amountString, _replacedCheckListItem, _specs;

	_identified = item.itemflag & 0x10;
	
	if(arguments.length < 2)
		printinfo = false;

	for(i = 0 ; i < _NTIP_DontMuleCheckList.length ; i++)
	{
		if(_NTIP_DontMuleCheckList[i][0].length > 0)
		{
			if(eval(_NTIP_DontMuleCheckList[i][0]))
			{
				if(_NTIP_DontMuleCheckList[i][1].length > 0)
				{
					if(eval(_NTIP_DontMuleCheckList[i][1]))
					{
						if(printinfo)
						{
							Print("Match found in " + _NTIP_DontMuleCheckList[i][2]);
							Print("Corresponding ÿc8Nip Lineÿc0: " +_NTIP_DontMuleCheckList[i][3]);
							Print("Corresponding ÿc;JavaScript Lineÿc0: " + _NTIP_DontMuleCheckList[i][0] + "&&" + _NTIP_DontMuleCheckList[i][1]);
						}
						return 1;
					}
					else if(!_identified && _result == 0)
						_result = -1;
				}
				else
				{
					if(printinfo)
					{
						Print("Match found in " + _NTIP_DontMuleCheckList[i][2]);
						Print("Corresponding ÿc8Nip Line: ÿc0" +_NTIP_DontMuleCheckList[i][3]);
						Print("Corresponding ÿc;JavaScript Line: ÿc0" + _NTIP_DontMuleCheckList[i][0]);
					}
					return 1;
				}
			}
		}
		else if(_NTIP_DontMuleCheckList[i][1].length > 0)
		{
			if(eval(_NTIP_DontMuleCheckList[i][1]))
				return 1;
			else if(!_identified && _result == 0)
				_result = -1;
		}
	}
	
	return _result;
}

und hier meine NTBot:

Code:
/**
*	This file was modified by 				
*	Check the programming section for updates and further scripts
*	Last Update: 09/03/2010
*	Edited by Ldevil
*	Last Edit: 10/28/2010							
*/

var GameMinLength		= 30000;	// time in milliseconds, minimum game length, 180 seconds default (1 game/3 minutes)
var UnableToConnectRetry	= 4;		// time in minutes to retry connecting on connection fail (real value is +/- 1 min)
var RealmDownRetry		= 4;		// time in minutes to retry connecting on a realm down (default is 300 minutes)
var DisconnectedRetry		= 4;		// time in minutes to retry on a disconnection (usually ip ban related)
var CdKeyInUseRetry		= 4;		// 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		= 15000;	// 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		= 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			= 1529;		// wait X milliseconds before next action after a click event
var TextDelay			= 2904;		// wait X milliseconds before next action after inserting text into a textbox
var ClickDelayRandom		= 1111;		// random amount of time to add to a click
var TextDelayRandom		= 1511;		// 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		= "dg";		// 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("YourCharName(s)Go(es)Here");
// Or
ChannelUsers.push("YourAccountName(s)Go(es)Here");
// 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        = "Creating %game%counter in %time seconds."; // 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


	//--------------------//
	// Auto Mule Config   //
	//--------------------//

var UsePremadeMuleAccounts = false;			// 'true' uses NTConfig_AutoMule.ntl, 'false' uses NTConfig_FullAuto.ntl

var JoinRetries = 5;						// How many Attempts before giving up the Mule game?
var JoinRetryDelay = 55;					// Seconds to wait between Retry Attempts
var TimeBeforeMuleGame = 0;					// Minutes to wait before creating the MuleGame
var TimeAfterMule = 0;						// Minutes to wait before logging back to Bot Account

var DGDebug = false;							// Print Debug Output? Mostly just for testing


//---------------------------------------------------------------------------------------------------------------------------------------//
// DONT EDIT ANYTHING BELOW THIS      !!!!!     DONT EDIT ANYTHING BELOW THIS      !!!!!     DONT EDIT ANYTHING BELOW THIS      !!!!!    //
//---------------------------------------------------------------------------------------------------------------------------------------//

// Creat New Account Variables
var createNewAccount = false;
var CharCreateNumber = -1;	
var RegMail = "";			
var muleFull = false;
var _NewAccName;
var _NewAccPW;
var AccPrefix;			
var MuleAccSuffix;
var NewAccPW;
var DGNipFiles;
var UseNumbers;				
var isLadder;				
var isHC;					
var isClassic;
var MuleGame;
var MuleGamePassword;
var DGMuleAccs;
var DGMulePws;
var DGNipFiles;
var MuleCharLocation;
	
if (UsePremadeMuleAccounts)
	Include("NTBot/mule_configs/NTConfig_AutoMule.ntl");
else
	Include("NTBot/mule_configs/NTConfig_FullAuto.ntl");

NT_LoadMuleConfig();
	
// AutoMule Variables
var JoinBug;

// 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;
var isMuling = false;
var preventRecover = false;
var isWaiting = false;
var MuleState = "notmuling";
var DGCurrentAcc = 0;
var myTest = 0;
var _Script = "";

Include("libs/controlInfo.ntl");
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();

ReadMuleStats();

var ControlData = new controlInfo();

function NTMain()
{
    Delay(1000);

    var _ingame = false;

    ControlData.ClickDelay = ClickDelay;
    ControlData.TextDelay = TextDelay;
    ControlData.ClickDelayRandom = ClickDelayRandom;
    ControlData.TextDelayRandom = TextDelayRandom;
	
	RegisterEvent(EVENT_SCRIPTMSG, NT_ScriptMsgEvents1);
			
	while(1)
    {
		if(me.ingame)
		{
			if(!InGameAt)
                		InGameAt = GetTickCount();
			
			if(!_ingame)
			{

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

				if(isMuling)
				{
					if (DGDebug)
						NTC_SendLogToOOG(NTC_LOG_COMMON, "[Debug] Joined Mule Game");
						
					switch (MuleState)
					{
						case "notmuling": //Done or not yet started
							// No... we really are not supposed to be here
							isMuling = false;
							ExitGame();
							NTC_SendLogToOOG(NTC_LOG_COMMON, "AutoMule Error, try again.");
							SetStatusText("ÿc1AutoMule Error... (Wait 60s)");    
							Delay(60000);
							break;
							
						case "mulestart": //Still on Bot Account
							_Script = "NTBot/bots/NTMule.ntj";
							break;
							
						case "mule": //Muleing
							_Script = "NTBot/bots/NTJOIN.ntj";
							break;
							
						case "mulefull": // Mule Full
							_Script = "NTBot/bots/NTJOIN.ntj";
							break;
							
						case "done": // Next Account
							_Script = "NTBot/bots/NTJOIN.ntj";
							break;
							
						case "recover": // Recovering						
							_Script = "NTBot/bots/NTRecover.ntj";	
							break;
							
						default:
							_Script = "NTBot/NTMule.ntj";	
							break;
					}
				}
				else // not muling
				{
					if(me.gamename)
						NT_WriteBackupFile(me.gamename);
					
					_Script = "NTBot/NTBotGame.ntj";
				}
				
				if (DGDebug)
					NTC_SendLogToOOG(NTC_LOG_COMMON, "Debug: Load " + _Script);
					
				if(Load(_Script))
				{
					_ingame = true;
					JoinBug = 0;

					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 // !me.ingame
		{
			if(!isMuling)
			{
				if(_ingame)
				{
					_ingame = false;

					NT_SendEventToOOG(D2NT_MGR_READY, "", 0);
				}
		
				NT_LocationAction(ControlData.getLocation());
			}
			else
			{				
				if (DGDebug && !isWaiting)
					NTC_SendLogToOOG(NTC_LOG_COMMON, "[Debug] Loc: " + ControlData.getLocation().id + " State: " + MuleState);

				if(_ingame)
				{
					_ingame = false;
				}
				if (isWaiting)
				{
					Delay(1000);
				}
				else
				{
					switch (MuleState)
					{
						case "notmuling": //Done or not yet started
							NT_LocationAction(ControlData.getLocation());
							break;
							
						case "mulestart": //Still on Bot Account
							BotMuleAction(ControlData.getLocation());
							break;
							
						case "mule": //Muleing
							if (UsePremadeMuleAccounts)
								AutoMuleLocationAction(ControlData.getLocation());
							else
								FullAutoLocationAction(ControlData.getLocation());
							break;
							
						case "mulefull": //Muleing
							if (UsePremadeMuleAccounts)
								AutoMuleLocationAction(ControlData.getLocation());
							else
								FullAutoLocationAction(ControlData.getLocation());
							break;
							
						case "done": //Muleing
							if (UsePremadeMuleAccounts)
								AutoMuleLocationAction(ControlData.getLocation());
							else
								FullAutoLocationAction(ControlData.getLocation());
							break;
							
						case "recover": //Muleing
							if (UsePremadeMuleAccounts)
								AutoMuleLocationAction(ControlData.getLocation());
							else
								FullAutoLocationAction(ControlData.getLocation());
							break;
							
						default: //We are toast ;)
							break;				
					}
				}
			}
			Delay(500);
		}
    }
}
laxast is offline  
Old 12/26/2010, 17:25   #158
 
elite*gold: 0
Join Date: Jul 2006
Posts: 469
Received Thanks: 235
Das liegt an der Weise wie ich die #Chars auf dem Account zähle für die Nummerierung. Denn wenn der Acc leer ist, ist es genau das selbe für die Funktion wie wenn ein RD passiert ist.

Ich habs auf meiner Liste stehen, dass ich 1. die Anzahl Chars in ein file schreibe, was weniger dynamisch aber stabiler ist und 2. werd ich wohl einbauen, dass er wenn's mit dem Create Char nicht klappt annimt, es sei ein RD
ldevil is offline  
Old 12/27/2010, 16:42   #159
 
elite*gold: 0
Join Date: Jul 2010
Posts: 88
Received Thanks: 0
jop, also wegen dem was ich in muddys thread geschrieben habe, hast du da ne ahnung, was nicht passen könnte?
laxast is offline  
Old 12/28/2010, 07:24   #160
 
elite*gold: 0
Join Date: Jun 2010
Posts: 6
Received Thanks: 0
Quote:
Originally Posted by ldevil View Post

1. In der NTConfig_FullAuto.ntl (aber das undefined hat mit was anderem zu tun, muss ich irgendwann fixen)
2. Lösche einfach das file "charnamemulestats" und dann sollt's wieder gehen.
danke dir, hat gefunzt

hatte zwischenzeitlich noch anderes problem:
bot hatte wohl probs damit, wenn ich [Quality] >= normal in die pickit geschrieben hatte (funzte bei bluebird ohne probleme)
mit ner oder-verbindung ([Quality] == normal || [Quality] == superior) klappte es dann.
gestört hat aber, dass der bot dann mit ner fehlermeldung stehenbleibt und das script stoppt (hat vll. mit debug-modus zu tun?)
ich wäre dir für eine Antwort dankbar, denn die Ungewissheit, dass mein lvl98-hdin sich von ner Monsterhorde ohne Gegenwehr abschlachten lässt, nur weil ich die pickit iwo versemmelt habe, is schon störend

edit:
mir fällt grade auf: kann es sein, dass der bot keine keys kauft?
mausi85 is offline  
Old 12/28/2010, 23:28   #161
 
elite*gold: 0
Join Date: Jul 2006
Posts: 469
Received Thanks: 235
Hm, eigentlich sollte er Keys kaufen und ich hab keine Probleme mit meiner PickIt. Ich weiss allerdings nicht wofür man ein [Quality] >= normal verwenden sollte, denn das heisst ja sowas wie: alle normalen, magischen, rares, sets, uniques,... halt alles ausser broken. sollte zwar auch keine Probleme geben, aber er nimmt dann halt extrem viel auf.

Die "Oder"-Verbindung ist sicher die bessere Variante, da dann alle magischen+ Items liegen gelassen werden.

Probleme mit der PickIt hatte ich nur wenn ich wirklich nen Fehler drin hatte oder wenn ich den Bot auf Deutsch laufen liess. Was beides nicht gerade schlau ist

Du musst NTConfig_OpenChest = true haben damit er Keys kauft... hm, evtl. sollte ich das ändern
ldevil is offline  
Thanks
1 User
Old 12/29/2010, 06:43   #162
 
elite*gold: 0
Join Date: Jun 2010
Posts: 6
Received Thanks: 0
Quote:
Originally Posted by ldevil View Post
Hm, eigentlich sollte er Keys kaufen und ich hab keine Probleme mit meiner PickIt. Ich weiss allerdings nicht wofür man ein [Quality] >= normal verwenden sollte, denn das heisst ja sowas wie: alle normalen, magischen, rares, sets, uniques,... halt alles ausser broken. sollte zwar auch keine Probleme geben, aber er nimmt dann halt extrem viel auf.

Die "Oder"-Verbindung ist sicher die bessere Variante, da dann alle magischen+ Items liegen gelassen werden.
ich hatte das in bluebird in meiner pickit stehen, weil ich den bot dazu bringen wollte, nicht nur eine st45 aufzuheben (normal), sondern auch die st45 15/15 mitzunehmen (superior). Zu dem Zeitpunkt wusste ich noch nicht, dass sich die Reihe bis hin zu den uniques fortsetzt.

Quote:
Originally Posted by ldevil View Post
Probleme mit der PickIt hatte ich nur wenn ich wirklich nen Fehler drin hatte oder wenn ich den Bot auf Deutsch laufen liess. Was beides nicht gerade schlau ist
so ist das halt, wenn man ständig an der pickit herumfeilt, ohne wirklich viel ahnung von Jscript zu haben.


Quote:
Originally Posted by ldevil View Post
Du musst NTConfig_OpenChest = true haben damit er Keys kauft... hm, evtl. sollte ich das ändern
mausi85 is offline  
Old 12/30/2010, 21:08   #163
 
elite*gold: 0
Join Date: Jul 2010
Posts: 88
Received Thanks: 0
frage: wie bau ich das ein, dass der nach ablauf der realm-down-wartezeit (ich hab da z.b. 5min eingestellt), automatisch den cdkey wechselt, also auf den nächsten key wechselt, so wie es bei "Game# / CdKey" ist.

hab ja nen automatischen reconnect, aber bekomm dann trotzdem wieder relativ schnell nen RD, weil die CDKeys "geflagged" sind für eine kurze zeit. (so denke ich zumindest)
laxast is offline  
Old 01/07/2011, 02:43   #164
 
elite*gold: 0
Join Date: Nov 2010
Posts: 32
Received Thanks: 1
Ich hätt da nochmal ne fraaage

Zuerst mal großes Lob, der bot läuft wirklich Super !


Wollt mittlerweile aber dass er nebenbei craftet, tut er aber nur wenn ich die ****/unid jewels aus der pickit nehme ([Type] == jewel && quality == magic) -- diese kommen sonst egtl. auf nen seperaten muleaccount.
Ist diese Zeile drin = kein craften
Ist sie raus (bzw sind welche er behalten soll genau definiert) = craften

Würde aber gerne dass er das ein oder andere zum Craften benutzt, den überschuss beim automulen dann halt wegmuled...



Zudem sehr wichtig da Fatal !! Amus (caster) crafting tut er mit ilvl 8x - sollte nicht so sein, mindestens lvl 90 (also 94, 95, 99 diablo oder gamble-amu) da 2 skills mind. lvl 90 vorraussetzt......


Ist das irgendwie machbar?

Dankeschön
Texhnolyze is offline  
Old 01/08/2011, 21:35   #165
 
elite*gold: 0
Join Date: Jun 2010
Posts: 6
Received Thanks: 0
hab mal meine pickits durchforstet. das steht ne zeile drin für amawurfspeere:
[Type] == amazonjavelin && [Quality] == magic # [IAS] >= 30 && [AmazonSkills]+[javelinandspearskilltab] >= 4
müssen da bei javelinandspearskilltab net auch irgendwo ein paar große Buchstaben vorkommen?
kann mir da vll irgendjemand helfen?

edit: ^^ habs gefunden: JavelinAndSpearSkillTab
mausi85 is offline  
Reply


Similar Threads 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
[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...
Automule Beta
09/03/2010 - Diablo 2 - 152 Replies
wäre doll wenn n paar leute lust haben das automule feature bissl zu testen Download im Anhang BEKANNTE BUGS: Bitte den LobbyChat nicht nützen dort gibts noch bugs!
wie sicher d2nt-automule
06/01/2010 - Diablo 2 - 4 Replies
hi, wie sicher ist denn das auto-mule script? der ersteltl ja ein game in der hoffnung es bleibt offen wenn man es leaved? danke
D2NT mit Automule?
01/30/2010 - Diablo 2 - 8 Replies
Hi, Jo ich bin mal wieder :D Ist es möglich den D2NT mit automule auszustatten ich verwände ATM v 1.9 steig aber auchw ieder auf 1.7 um wenn man da automulen kann :) also kennt jemand ein script ich hab noch nix gefunden :)



All times are GMT +1. The time now is 18:22.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.