[Release] Muddy's D2NT

03/22/2011 21:06 ldevil#961
So, ich hab jetzt immer Mal wieder genau das gleiche Problem gehabt. Zugegeben ich hab nich versucht, das ganze ohne mein Auto Mule zu reproduzieren, aber ich kann mir nicht vorstellen, dass das was mit meinem Auto Mule zu tun hat...

Ich hab leider immer Mal wieder den Fehler "NTM_TakeWaypoint() failed" was ja an sich nicht wirklich tragisch ist. Nur bei mir endet das immer (?) mit einem Freez (zumindest ist jeder Freez bis jetzt direkt nach dem Fehler entstanden). Ich nehme an, hab ich aber auch noch nicht getestet, dass der Bot das Game nicht korrekt verlässt und sich daher aufhängt.

Meine Annahme ist, dass die "Beim x-ten Fehler brich ab"-Routine selber einen Fehler beherbergt und sich daher der Bot erhängt.

Ich hab das Fehler-Limit jetzt Mal etwas hoch gestellt, um zu sehen ob's daran liegt. Da der Fehler aber nur so alle 500-1000 Runs auftritt wird's wohl etwas dauern bis ich dazu was sagen kann... werd's evtl. auch Mal anders rum testen - sprich ob ich den Fehler reproduzieren kann indem ich Fehler provoziere.

03/22/2011 21:34 Muddy Waters#962
Das halte ich für unwahrscheinlich, weil in dem Falle eigentlich das Spiel korrekt verlassen wird.

Grundsätzlich sollte es doch auch nur zu dieser Fehlermeldung kommen, wenn das Spiel selber hängt bzw. die Interaktion mit Objekten in der Spielwelt D2 seitig nicht mehr funktioniert.

Mal abwarten, ob du es schaffst, deinen Verdacht zu erhärten, ich würde es aber ehrlich gesagt bezweifeln - auch wenn die Vorstellung durchaus reizvoll ist.

Insgesamt wäre ein wunderbarer handfester Fehler schön, dieses Gesuche ist schon etwas nervig. :(

Lg
Muddy
03/22/2011 23:38 RezChams#963
hmm, is sehr nice der neue, aber irgendwie ( vielleicht auch weil ich müde bin ) will der Bot nach Baal kein NG machen :/
Code:
/**
*	This file was modified by [Only registered and activated users can see links. Click Here To Register...]
*	Check the programming section for updates and further scripts
*	Last Update: 02/28/2011
*/

var GameMinLength				= 120000;		// 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			= 20000;		// 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					= 1000;			// wait X milliseconds before next action after a click event
var TextDelay					= 2500;			// wait X milliseconds before next action after inserting text into a textbox
var ClickDelayRandom			= 500;			// random amount of time 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			= "OP NewHacker";// leave blank not to join a private channel
var PerformChannelLogin			= true;		// type ".login" once after joining the channel
var ChannelUsers 				= new Array();	// dynamic array that holds channel users
var MaximumLocationLoops		= 5;			// The maximum number of loops for a single location; if the window is does not respond and is caught in an infinite loop it will be restarted when the number of loops exceeds the one you specify here
var JoinGameKeywords			= new Array("dia", "baal");
var JoinRandomGamesChars		= new Array("");
Code:
/**
*	This file was modified by [Only registered and activated users can see links. Click Here To Register...]
*	Check the programming section for updates and further scripts
*	Last Update: 03/02/2011
*
*	Hotkey				Description
*
*	Pause/Break			Pauses the current bot script.
*	Page up (PgUp)		Skips the current bot script.
*	Page down (PgDn)	Repeats the previous bot script
*	Home (Pos1)			Shows your current coordinates and areaid.
*	End					Shows current ping in status text bar.
*	Insert (Ins)		Logs all items on your char to either XML or TXT.
*	Delete (Del)		Exits the game. NOTE: Always use this key to leave a game!
*/

Include("NTBot/char_configs/MWConfig_GlobalSettings.ntl");

var NTConfig_UseRedemptionHP;
var NTConfig_UseRedemptionMP;

function NT_LoadConfig()
{
	MW_LoadGlobalSettings();
	
		//------------------------------------------------------------------------------
	//
	// Run Configuration
	//
	//------------------------------------------------------------------------------
	
	// Use the following syntax for activating botscripts: MWConfig_Script.push([<ScriptName>, <Script runtime in minutes (0 is infinite)>]);
	// ***************** Current schedule ******************
/*	MWConfig_Script.push(["NTAndariel.ntj", 10]);
	MWConfig_Script.push(["NTPit.ntj", 10]); MWConfig_ClearPathToPitSpectype = 0; NTConfig_ClearPitLevel1 = 2; // 0 : don't clear, 1 : clear path only, 2 : clear all
	MWConfig_Script.push(["NTCountess.ntj", 5]); MWConfig_ClearCountessRoomsSpectype = 0;
	MWConfig_Script.push(["NTAncientTunnels.ntj", 10]); MWConfig_ClearPathToTunnelsSpectype = 0x01;
	MWConfig_Script.push(["NTTravincal.ntj", 10]);
	MWConfig_Script.push(["NTMephisto.ntj", 10]); MWConfig_OpenMephistoChest = true; MWConfig_MephistoClearArea = true;
	MWConfig_Script.push(["NTEldritch.ntj", 10]); NTConfig_ShenkExtension = 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", 5]); MWConfig_ClearCountessRoomsSpectype = 0;
	MWConfig_Script.push(["NTPit.ntj", 10]); MWConfig_ClearPathToPitSpectype = 0; 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_ClearPathToTunnelsSpectype = 0x01;
	MWConfig_Script.push(["NTSummoner.ntj", 5]); NTConfig_KillFireEye = false; MWConfig_ClearPathToSummonerSpectype = 0;
	MWConfig_Script.push(["NTDuriel.ntj", 10]); MWConfig_ClearPathToDurielSpectype = 0x01;
	
	// ********************** Act III **********************
	
	MWConfig_Script.push(["MWFlayerJungle.ntj", 10]);
	MWConfig_Script.push(["MWKurastSewers.ntj", 5]); MWConfig_ClearPathToKurastSewersSpectype = 0;
	MWConfig_Script.push(["MWKurastTemples.ntj", 5])
	MWConfig_Script.push(["NTTravincal.ntj", 5]);
	MWConfig_Script.push(["NTMephisto.ntj", 5]); MWConfig_OpenMephistoChest = true; MWConfig_MephistoClearArea = true;
	
	// *********************** Act IV **********************
	
	MWConfig_Script.push(["NTIzual.ntj", 5]);
	MWConfig_Script.push(["MWRiverOfFlame.ntj", 10]);
	MWConfig_Script.push(["NTHephasto.ntj", 10]);
	MWConfig_Script.push(["NTDiablo.ntj", 10]); MWConfig_KillFullInfectorMob = true; MWConfig_StartAtStar = false; // false: start at entrance, true: start at star
	
	// *********************** Act V ***********************
	
	MWConfig_Script.push(["NTEldritch.ntj", 5]); NTConfig_ShenkExtension = true;
	MWConfig_Script.push(["NTThreshSocket.ntj", 5]);
	MWConfig_Script.push(["NTFrozenRiver.ntj", 10]); NTConfig_ClearFrozenRiver = false;
	MWConfig_Script.push(["NTGlacialTrail.ntj", 10]); NTConfig_ClearGlacialTrail = false;
	MWConfig_Script.push(["NTIcyCellar.ntj", 5]); NTConfig_ClearIcyCellar = false;
	MWConfig_Script.push(["NTNihlathak.ntj", 5]); 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; MWConfig_DoBaalPreAttack = false;
	
	// *********************** Misc ************************
	
/*	MWConfig_Script.push(["MWSuperChests.ntj", 20]); MWConfig_SuperChestClearAreaRadius = 10; MWConfig_SuperChestAreas = ["Cave Level 2", "Mausoleum", "Hole Level 2", "Pit Level 2", "Sewers Level 3", "Halls of the Dead Level 2", "Stony Tomb Level 2", "Maggot's Lair Level 3", "Ancient Tunnels", "Tal Rasha's Tomb", "Arachnid Lair", "Swampy Pit Level 3", "Flayer Dungeon", "Sewers Level 2", "Abbadon", "Pit of Acheron", "Drifter Cavern", "Infernal Pit", "Icy Cellar", "Halls of Pain"];
	MWConfig_Script.push(["MWRush.ntj", 0]); MWConfig_IsRusher = true; MWConfig_ActiveQuestersName = ""; MWConfig_NumberOfCharsToRush = 1; MWConfig_GetHoradricCubesInNorm = true; MWConfig_QuestSchedule = ["A4Q1", "A5Q1"]; MWConfig_RushActs = [1, 2, 3, 4, 5]; 
	MWConfig_Script.push(["MWWaypointCatcher.ntj", 0]); MWConfig_WaypointCatcherActs = [1, 2, 3, 4, 5]; MWConfig_TPWaypoints = true; MWConfig_SkipHallsOfPain = true; MWConfig_ClearWaypointPaths = false; 
	MWConfig_Script.push(["MWIdleMode.ntj", 0]); MWConfig_IdleModeRuntime = 5; // Runtime in Minutes
	MWConfig_Script.push(["NTCows.ntj", 10]);
	MWConfig_Script.push(["MWBloodyRejuvs.ntj", 10]);
	MWConfig_Script.push(["MWOrganHarvest.ntj", 10]); MWConfig_EnterInvalidUberPortals = true; MWConfig_PauseOnLackOfKeys = false; MWConfig_IntendedUberPortal = 0; // Matron's Den: 133; Forgotten Sands: 134; Furnace Of Pain: 135;
	MWConfig_Script.push(["MWUberTristram.ntj", 10]); MWConfig_PauseOnLackOfOrgans = false;
	*/
	
	//------------------------------------------------------------------------------
	// 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.
	MWConfig_ResetArmor = false;	// Set to true to reset your Enigma if Teleport skill is missing. WARNING: Activating this feature may - though not likely will - result in the loss of your enigma. Use at your own risk!

	//------------------------------------------------------------------------------
	// Potion Configuration
	//------------------------------------------------------------------------------
	
	NTConfig_LifeThresh = 70;		// Drink a normal potion if under this percent of life.
	NTConfig_LifeRejuvThresh = 60;	// Drink a rejuvenation potion if under this percent of life.
	NTConfig_ManaThresh = 30;		// Drink a normal potion if under this percent of mana.
	NTConfig_ManaRejuvThresh = 0;	// Drink a rejuvenation potion if under this percent of mana.
	
	NTConfig_MercLifeThresh = 50;	// This is the threshold to use a life potion on your merc in percent.
	NTConfig_MercRejuvThresh = 30;	// This is the threshold to use a rejuv potion on your merc in percent.
	
	//------------------------------------------------------------------------------
	// Chicken Configuration
	//------------------------------------------------------------------------------
	
	// This is your chicken life. If you go below this threshhold, your char will exit the game. You can either enter a percentage (1-100), an absolute threshold (>100) or 0 to deactivate life chicken.
	NTConfig_LifeChicken = 40;
	// This is your chicken mana. If you go below this threshhold, your char will exit the game. You can either enter a percentage (1-100), an absolute threshold (>100) or 0 to deactivate mana chicken.
	NTConfig_ManaChicken = 0;
	// This is your merc's chicken life in percent. If your merc goes below this threshhold, your char will exit the game.
	NTConfig_MercChicken = 0;
	
	//------------------------------------------------------------------------------
	// Inventory Configuration
	//------------------------------------------------------------------------------
	
	// Number of free columns. If less full columns are free stashing is set.
	NTConfig_FreeSpace = 5;

	// Each number represents a slot in your inventory.
	// Set to 0 if the slot and its content must not be touched.
	// Set to 1 to allow access to this slot.
	// Set to 2 to select the slot that is used for storing keys. (if keys are kept at another slot, your char will try to move them)
	NTConfig_Columns[0] = [1,1,1,1,1,1,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];

	// Maximum gold amount carried before going to stash.
	NTConfig_MinGoldToStash = 250000;
	
	// Set to true if your char is supposed to carry, buy and pick up keys. You do not need to add keys to your .nip files, they will be picked up anyway if this is set to true.
	MWConfig_CarryKeys = false;

	//------------------------------------------------------------------------------
	// Belt Configuration
	//------------------------------------------------------------------------------
	
	// Determine how many columns for each type of potion are used.
	// Available types : "hp" = health | "mp" = mana | "rv" = rejuvenation
	// The first number indicates how many columns will be used for this type of potion.
	// The second number indicates the minimum amount of potions in one column. If there are less potions in a single column when your char is in town, he will is visit a merchant in order to buy potions.
	// Unlike in vanilla D2NT, there is no need to specify which column is used for certain type of potion, this will be chosen automatically!
	MWConfig_BeltTypeColQuantity["hp"] = [1, 3];
	MWConfig_BeltTypeColQuantity["mp"] = [2, 3];
	MWConfig_BeltTypeColQuantity["rv"] = [1, 0];
	
	// Visit Town and buy potions if your char lacks mana when trying to loot a corpse or teleport.
	MWConfig_BuyPotionsOnLackOfMana = true;
	
	// Set to true to replace low quality potions with higher quality potions that just dropped.
	MWConfig_ReplaceLowQualityPotions = true;

	//-----------------------------------------------------------------------------------
	// NipFile Configuration
	//-----------------------------------------------------------------------------------
	
	NTConfig_NIPFilePath.push("private/normal.nip");
	NTConfig_NIPFilePath.push("private/magic_rare.nip");
	NTConfig_NIPFilePath.push("private/set.nip");
	NTConfig_NIPFilePath.push("private/unique.nip");
	NTConfig_NIPFilePath.push("private/craft.nip");
	NTConfig_NIPFilePath.push("private/temp.nip");
	
	//------------------------------------------------------------------------------
	// Pickit Configuration
	//------------------------------------------------------------------------------
	
	// Radius to check for dropped items. NOTE: The maximum is at about ~75, entering higher values will not have any effect.
	NTConfig_SnagRange = 70;
	
	// Set to true to check for dropped items whenever you kill a monster.
	MWConfig_PickItemsInstantly = true;
	
	//------------------------------------------------------------------------------
	// Chest Configuration
	//------------------------------------------------------------------------------
	
	// Set to true to open chests. NOTE: This only affects some super unique chests in certain boss scripts.
	NTConfig_OpenChest = false;
	
	// Set to true to open almost any type of container.
	MWConfig_OpenAllNearbyChests = false;
	
	// Set to true to check for dropped items right after opening a chest. NOTE: This will slow down your runs and therefore should definately be set to false when doing private games.
	MWConfig_PickChestLootsInstantly = false;
	
	// This is the range being checked for chests after clearing an area or room. NOTE: You should not set this too high, 30 is a good value.
	MWConfig_OpenChestsRange = 30;
	
	// If you do not like to open chests in a certain area, you can its areaid as an exception below. NOTE: All areaids can be found in "sdk\areas.txt".
	// MWConfig_ChestExceptions.push(<areaid1>, <areaid2>, <areaidn>);
	
	//------------------------------------------------------------------------------
	// Cubing Configuration
	//------------------------------------------------------------------------------
	
	// Set to true to enable cubing and crafting. NOTE: The recipes are added in the global config by default. If you like to craft certain recipe only using this very char, add those recipes below.
	NTConfig_Cubing = true;
	
	//------------------------------------------------------------------------------
	// General Configuration
	//------------------------------------------------------------------------------
	
	// Set to true to activate public mode. By activating public mode, your char will form a party, open TPs and do some chat outputs when running certain bot scripts.
	NTConfig_PublicMode = true;

	// Set to true to exit the game instantly if the game is public. This may happen sometimes due to an error pasting the password correctly.
	MWConfig_ExitGameOnMissingPassword = false;
	
	// Set to true to exit the game when another player expresses hostility towards you.
	me.quitonhostile = true;
	
	// This is the maximum time in seconds your char will remain in a single game. Set to 0 to stay in game infinitely.
	me.maxgametime = 4500;
	
	// This is the minimum time in seconds for your char to remain in a single game. Your char will not exit the game before this time elapsed.
	me.mingametime = 0;
	
	//------------------------------------------------------------------------------
	// Shrine Configuration
	//------------------------------------------------------------------------------
	
	// Set to true to activate nearby shrines. Shrines will only be activated if it is actually useful.
	MWConfig_ActivateNearbyShrines = true;
	
	// If you would like to skip shrines in a certain area, you can its areaid as an exception below. NOTE: All areaids can be found in "sdk\areas.txt".
	// MWConfig_ShrineExceptions.push(<areaid1>, <areaid2>, <areaidn>);
	
	//------------------------------------------------------------------------------
	// Precast Configuration
	//------------------------------------------------------------------------------
	
	// Your precast skills can be defined in the array below. NOTE: Battle Command, Battle Orders and Shout will be cast automatically. Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
	MWConfig_PrecastSkills = [MWS_HOLY_SHIELD];
	
	// Set this to true if you would like to switch slots right after casting BC, BO and Shout. If set to false, your char will remain with the BO Slot until the whole precast procedure is done.
	MWConfig_SwitchSlotsAfterBoPrecast = true;
	
	//------------------------------------------------------------------------------
	// Attack Configuration
	//------------------------------------------------------------------------------
	
	// Specify your attack skills below. NOTE: Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
	NTConfig_AttackSkill[0] = 0;					// This skill is used once whenever attacking a new target. Set to 0 to deactivate.
	NTConfig_AttackSkill[1] = MWS_BLESSED_HAMMER;	// Primary skill to bosses.
	NTConfig_AttackSkill[2] = MWS_CONCENTRATION;	// Primary aura to bosses. Set to 0 to deactivate.
	NTConfig_AttackSkill[3] = MWS_BLESSED_HAMMER;	// Primary skill to others.
	NTConfig_AttackSkill[4] = MWS_CONCENTRATION;	// Primary aura to others. Set to 0 to deactivate.
	NTConfig_AttackSkill[5] = MWS_HOLY_BOLT;		// Secondary skill in case monster is immune to primary skill. Set to 0 if you won't
	NTConfig_AttackSkill[6] = MWS_CONCENTRATION;	// Secondary aura. Set to 0 not to activate any aura.
	NTConfig_AttackSkill[7] = MWS_SALVATION;		// Aura to be used against Uber Mephisto. Set to 0 to deactivate.
	
	// Set to true if you want to clear area after killing boss. NOTE: This only affects a few botscripts.
	NTConfig_ClearPosition = true;
	
	// Set to true to clear area when killing a boss and the position is crowded by monsters. NOTE: Setting this to true may cause NTA_KillMonster() to fail way more often.
	MWConfig_ClearBossPosition = false;
	
	// This is the number of attacks to be performed before the the character tries to move to another position. Set to 0 not to reposition.
	MWConfig_AttacksBeforeRepositioning = 20;

	// Define a time limit for your attacks for each type of monster.
	MWConfig_AttackTimeLimit[0] = 20;	// Maximum time in seconds to attack a normal monster
	MWConfig_AttackTimeLimit[1] = 120;	// Maximum time in seconds to attack a super unique monster
	MWConfig_AttackTimeLimit[2] = 30;	// Maximum time in seconds to attack a champion
	MWConfig_AttackTimeLimit[3] = 120;	// Maximum time in seconds to attack a bosse
	MWConfig_AttackTimeLimit[4] = 30;	// Maximum time in seconds to attack a minion
	
	// Define when a monster is considered immune by entering the index of one or more of your attack skills. As an example: [1, 3] means that a monster is considered immune if it is immune to both NTConfig_AttackSkill[1] and NTConfig_AttackSkill[3], whatever those may be.
	MWConfig_CheckImmunitySkills = [];
	
	// Select the behaviour of your character when encountering a monsters that is considered immune referring to the definition above.
	// 0: Don't do anything. (D2NT default)
	// 1: Get close to the monster.
	// 2: Skip the monster.
	// 3: Attack the monster using NTConfig_AttackSkill[8] and NTConfig_AttackSkill[9]
	NTConfig_BehaviourOnImmuneMonster = 0;
	
	NTConfig_AttackSkill[8] = 0;	// Skill to be used against user defined immunes.
	NTConfig_AttackSkill[9] = 0;	// Untimed Skill to be used against user defined immunes.
	
	// Activate Redemption if your health is lower than this percentage. Set to 0 not to use Redemption.
	NTConfig_UseRedemptionHP = 80;
	
	// Activate Redemption if your health is lower than this percentage. Set to 0 not to use Redemption.
	NTConfig_UseRedemptionMP = 60;
	
	// 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;
}
Schlafen
03/23/2011 00:04 Muddy Waters#964
Ich sehe gerade auch nichts, vielleicht aus denselben Gründen.

Ich schlage vor wir Diskutieren morgen Nachmittag, müsste gegen 15:00 verfügbar sein, sofern du das Problem bis dahin noch nicht selber gelöst hast. :)

Lg
Muddy
03/23/2011 00:37 jexhammer#965
@Muddy

der genaue Fehler lautet "NTSnagit.ntl ]152] Typerror_ item.name is undefined "
wenns ein undefiniertes Items ist weiß ich nicht welches.

@ldevil oder iwen
kkönnt ihr die integrierte Automule funktion posten oder mir per pm mit ner kleinen erklärung zukommen lassen würde das selber gerne in verbindung mit muddys schönen bot nutzen :D
03/23/2011 05:58 RobHalford#966
Quote:
Originally Posted by Muddy_Waters View Post

Ebenen die nicht gewünscht sind, entfernst du einfach aus der Initialisierungsliste.

Lg
Muddy
Guten Morgen :)

Also einfach rauslöschen

Einfach auskommentieren wäre in diesem fall nicht möglich ? Ist gut zu wissen, dann halte ich mir auf jedenfall einmal diese zeile in der hinterhand um später einzelne gebiete wieder hinzuzufügen ... :)

Danke für deine schnelle und kompetente antwort muddy :)
03/23/2011 14:28 Muddy Waters#967
Quote:
Originally Posted by jexhammer View Post
@Muddy

der genaue Fehler lautet "NTSnagit.ntl ]152] Typerror_ item.name is undefined "
wenns ein undefiniertes Items ist weiß ich nicht welches.

@ldevil oder iwen
kkönnt ihr die integrierte Automule funktion posten oder mir per pm mit ner kleinen erklärung zukommen lassen würde das selber gerne in verbindung mit muddys schönen bot nutzen :D
Wir versuchen es einfach mal mit einer Debug Ausgabe.

Ändere mal den if-Block ab Zeile 146 in der NTSnagIt library in den folgenden Block um:
Code:
[B][I][Color=Navy]if[/Color][/I][/B](NTSI_PickUpItemInt(_item)) 
{
	[B][I][Color=Navy]if[/Color][/I][/B](_item && _item.name)
	{
		[B][I][Color=Navy]if[/Color][/I][/B](_item.itemtype < [Color=Red]76[/Color] || _item.itemtype > [Color=Red]81[/Color]) [Color=Green]// All items except potions[/Color]
		{
			Print([Color=Gray]"Picked up "[/Color] + NTC_ItemQualityToD2Color[MWC_GetItemColorInt(_item)] + _item.name.split([Color=Gray]"\n"[/Color])[0] + ((_checkeditem.Status == 4) ? [Color=Gray]" ÿc8["[/Color] + MWC_InsertDigitSeperator(_item.GetItemCost(1)) + [Color=Gray]"]"[/Color] : ""));
			NTC_SendMsgToScript([Color=Gray]"MWBotGame.ntj"[/Color], [Color=Gray]"SET_PICKED_1"[/Color]);
			
			[B][I][Color=Navy]if[/Color][/I][/B](!pickValuables && MWSI_IsCommonLogItem(_item))
				NTC_SendMsgToScript([Color=Gray]"MWBotGame.ntj"[/Color], [Color=Gray]"SET_COMMONITEM_"[/Color] + _item.classid);
				
			[B][I][Color=Navy]if[/Color][/I][/B](_item.quality < [Color=Red]4[/Color] && _checkeditem.Status < [Color=Red]2[/Color])
			{
				[B][I][Color=Navy]if[/Color][/I][/B](MWConfig_UseXMLItemlog)
					MWI_WriteLog(_item, [Color=Red]0[/Color]);
					
				[B][I][Color=Navy]if[/Color][/I][/B](_item.classid <= [Color=Red]609[/Color] || _item.classid >= ((MWConfig_LowestRuneToLog < [Color=Red]0[/Color] || MWConfig_LowestRuneToLog > [Color=Red]32[/Color]) ? [Color=Red]0[/Color] : MWConfig_LowestRuneToLog) + [Color=Red]610[/Color])
					MWI_WriteManagerLog(_item, [Color=Red]0[/Color]);
			}
		}
		[B][I][Color=Navy]else if[/Color][/I][/B](MWConfig_ShowPotionPickups)
			Print([Color=Gray]"Picked up "[/Color] + _item.name.split([Color=Gray]"\n"[/Color])[0]);
	}
	[B][I][Color=Navy]else[/Color][/I][/B]
	{
		[B][I][Color=Navy]var[/Color][/I][/B] _propString = [Color=Gray]"\nCurrent Area: "[/Color] + me.areaid;
		
		[B][I][Color=Navy]for[/Color][/I][/B]([B][I][Color=Navy]var[/Color][/I][/B] z in _item)
			_propString += [Color=Gray]"\n_item."[/Color] + z + [Color=Gray]" ["[/Color] +  ([COLOR="Navy"][I][B]typeof[/B][/I][/COLOR] _item[z]) + [COLOR="Gray"]"] == "[/COLOR] + _item[z];
		
		MWC_WriteToTextfile(_propString, [Color=Gray]"ItemErrors.txt"[/Color], 2, [B][I][Color=Navy]true[/Color][/I][/B]);
	}
}
Damit können wir dokumentieren was Sache ist, abgesehen davon sollte auch der Fehler selbst nicht mehr auftreten.

Wegen der Automule Sache wendest du dich bitte direkt an ldevil.

Ich habe dazu zwar schon was von ihm bekommen, mir fehlt es aber derzeit etwas an Zeit und Lust das umzusetzen. ;)

Quote:
Originally Posted by RobHalford View Post
Guten Morgen :)

Also einfach rauslöschen

Einfach auskommentieren wäre in diesem fall nicht möglich ? Ist gut zu wissen, dann halte ich mir auf jedenfall einmal diese zeile in der hinterhand um später einzelne gebiete wieder hinzuzufügen ... :)

Danke für deine schnelle und kompetente antwort muddy :)
Du könntest Blockweise auskommentieren, solltest dann aber sehr genau auf Kommata achten. Denn wenn du nur die Begriffe selber auskommentierst, resultiert das in Syntaxfehlern.

Hier ein Beispiel dazu:
Code:
MWConfig_SuperChestAreas = [[COLOR=Gray]"Cave Level 2"[/COLOR], [COLOR=Gray]"Mausoleum"[/COLOR], [COLOR="Green"]/*"Hole Level 2", "Pit Level 2", "Sewers Level 3", "Halls of the Dead Level 2", "Stony Tomb Level 2",*/[/COLOR] [COLOR=Gray]"Maggot's Lair Level 3"[/COLOR], [COLOR=Gray]"Ancient Tunnels"[/COLOR], [COLOR=Gray]"Tal Rasha's Tomb"[/COLOR], [COLOR=Gray]"Arachnid Lair"[/COLOR], [COLOR=Gray]"Swampy Pit Level 3"[/COLOR], [COLOR=Gray]"Flayer Dungeon"[/COLOR], [COLOR=Gray]"Sewers Level 2"[/COLOR]];
Lg
Muddy
03/24/2011 00:33 ldevil#968
Quote:
Originally Posted by jexhammer View Post
@ldevil oder iwen
kkönnt ihr die integrierte Automule funktion posten oder mir per pm mit ner kleinen erklärung zukommen lassen würde das selber gerne in verbindung mit muddys schönen bot nutzen :D
Hab am Auto Mule nicht wirklich wieter gearbeitet (ausser es in Muddies 1.2 zu integrieren), ne Anleitung dazu gibt's allerdings nicht und da ich keine Zeit habe, wird es die wohl auch so schnell nicht geben. Hab dir ne PM geschickt, evtl. wirst du damit ja glücklich ;)
03/24/2011 07:04 Onkarion#969
Quote:
Originally Posted by Onkarion View Post
Huhu!

Danke für die neue Version! Sie läuft gefühlt um einiges schneller und das Precast bei den Wellen bei Baal ist genial:handsdown:

Nur habe ich ein Problem bei der Gräfin. Meine Sorc telt zwar zu ihr, schreibt aber "NTA_KillMonster() failed (Tower Cellar Level 5)" obwohl die Gräfin etwa eine Orb-Reichweite entfernt steht.

D2 ist auf englisch umgestellt. Geändert habe ich bisher nur die Char-Config. Habe auch mal das alte Countess-Skript probiert und es klappt nicht.

Hast du eine Idee?

Grüße
Onkarion
Hallo Muddy!

mein Problem ist schon ein Weilchen her.
Da ich in letzter Zeit vermehrt Classic gebottet hab, ist das auch nicht weiter schlimm. Durch den Reset wollte ich aber vorher doch noch ein paar Runen zusammenkratzen und dafür ist die Gräfin doch sehr gut geeignet :D
Du meintest, du guckst mal über den Algorithmus. Ich habe mich selbst schon daran versucht, bin da aber nicht so in der Materie drin.
Momentan cleart die Sorc das 5. Lvl über NTA_ClearLevel(), aber da überspringt sie die Gräfin auch etwa 1 von 3 Mal.

Wäre super, wenn du mir da helfen könntest :)

P.S.: Es ist eine FO/FBall/Meteor-Soso
03/24/2011 07:12 jannimanni#970
sooooo, ich hab mittlerweile alles gemacht was mir einfällt um was am "access_violation (c0000005)"-fehler zu machen. bringt alles nix :(

komischerweise, schau ich heute in meinen manager und er EINZIGE der restarts hatte war mein paladin oO

die sorc 130/0
der barb 120/0
und der paladin 118/19

hab dann versucht ihm die selben runs wie den anderen eiden zu geben --> schonwieder restarts :(

ich bin echt mit meinem latein am ende :<
03/24/2011 13:46 Xerxen#971
Ich sach mal ein wirkliches problem ist das nicht...."Zitat:Dein Paladin tut was für sein geld!:Zitat Ende :mofo: ich habe auch so ca den gleichen mist :D was mich aber nicht besonders stört...den auch ich muß mal schlafen und wer übernimmt den Job dann?? :bandit:
03/24/2011 14:24 Muddy Waters#972
Quote:
Originally Posted by Onkarion View Post
Hallo Muddy!

mein Problem ist schon ein Weilchen her.
Da ich in letzter Zeit vermehrt Classic gebottet hab, ist das auch nicht weiter schlimm. Durch den Reset wollte ich aber vorher doch noch ein paar Runen zusammenkratzen und dafür ist die Gräfin doch sehr gut geeignet :D
Du meintest, du guckst mal über den Algorithmus. Ich habe mich selbst schon daran versucht, bin da aber nicht so in der Materie drin.
Momentan cleart die Sorc das 5. Lvl über NTA_ClearLevel(), aber da überspringt sie die Gräfin auch etwa 1 von 3 Mal.

Wäre super, wenn du mir da helfen könntest :)

P.S.: Es ist eine FO/FBall/Meteor-Soso
Bin derzeit irgendwie wieder etwas am kränkeln und jetzt gerade habe ich so tierische Kopfschmerzen, dass ich nicht wirklich Lust habe mich mit irgendetwas geistig anspruchsvolleren auseinanderzusetzen. :o

Ich werde es mir am Wochenende mal anschauen. :)

Quote:
Originally Posted by jannimanni View Post
sooooo, ich hab mittlerweile alles gemacht was mir einfällt um was am "access_violation (c0000005)"-fehler zu machen. bringt alles nix :(

komischerweise, schau ich heute in meinen manager und er EINZIGE der restarts hatte war mein paladin oO

die sorc 130/0
der barb 120/0
und der paladin 118/19

hab dann versucht ihm die selben runs wie den anderen eiden zu geben --> schonwieder restarts :(

ich bin echt mit meinem latein am ende :<
Ich allerdings auch, weil die Ursache einfach alles andere als einfach auszumachen ist. :(

Lg
Muddy
03/24/2011 16:36 DeathFromHeaven#973
so hab mal um mich auf den Reset vorzubereiten, die AlteTunnels, Pit, und Mauso scripte vom Sterni ausprobiert, aber auch mit denen kommt es gehäuft zu restarts... :(

Meine erste Vermutung war, dass es hackt weil du viel mehr areaid's, und teilweise auch andere areaid's in den scripten hast wie die vom Sternenlooper, aber das wurde dann wiederlegt, nachdem auch mit den anderen scripten restarts kamen :(

werde mal ausprobieren obs besser geht, wenn ich die LackOfMana Geschichte ausstelle, glaub aber nicht :(

was mir noch aufgefallen ist, er lädt nach fast jedem Script die kompletten Configs nochmal neu, und dabei hackt es bei mir das ein oder andere Mal, vlt führt das ja auch zum Restart?

lönnte es vlt auch an zu hoch eingestelltem FasterCast liegen? was sind denn da mit Fastmod gute Werte?

soviele Fragen... XD
so genug Vermutungen meinerseits :o
03/24/2011 17:57 Muddy Waters#974
Die sind ja auch bei Sterni nicht viel anders umgesetzt, insofern sind dabei auch keine größeren Unterschiede im Verhalten zu erwarten. :D

Das glaube ich auch nicht, da das eher eine Fehlermeldung aufgrund von Endlosrekursion auslösen würde, nicht aber einen "stillen" Restart.

Das mit den Configs macht D2NT aber von Haus aus so, ich sehe darin auch eigentlich kein Problem, es sei denn, du beobachtest jetzt, dass die Restarts zu 90% immer beim Laden eines neuen Bot Scripts auftreten - das wage ich aber sehr zu bezweifeln.

Keine Ahnung, ich habe dort eigentlich wenig verändert, kannst ja mal experimentieren. Obwohl ich das eigentlich auch für unwahrscheinlich halte...

Wie schon gesagt, das Problem bei der Sache ist, dass die Ursache hierbei der berühmten Nadel im Heuhaufen ziemlich nahe kommt. :(

Lg
Muddy
03/24/2011 19:07 DeathFromHeaven#975
hattest du ja schon gesagt, dass die Mana geschichte es nicht sein könnte, aber komisch, dass es nur bei den längeren scripten auftritt wo viel hin und her teleportiert wird...

hatte vorhin kurz das erlebnis, dass es genau mit dem Ende eines Scriptes nen Restart gab, konnte das bisher aber nicht öfter beobachten.

Naja zum Thema andere scipte: der Pala läuft stabiler, sorc wie eh und je :(
aber das mit den unterschiedlichen areaid's hat mich schon ein wenig verwundert, dass es trotzdem klappt^^ naja werds mal nem längeren Test jetzt unterziehen, bzw. dann in der neuen Ladder wieder intensiver testen.

Aber Danke für die schnellen Antworten^^