Table of Contents

Part 2

Entries

October 7, 2011

Today, spent most of the morning in class, and taking Cisco tests. In our server software class, me and my partner had a working copy of windows update (WSUS) but when he installed it he opted in for every update, even the software we will prolly never install in this environment. So we decided to delete the role and re-install. Unfortunetly something didn't like this and we are having trouble getting it back on.

October 15, 2011

Today I worked on one of the few minor projects I have been developing. These projects are really simple but with the intention to get me using C, and repeating some commands to help sink them into my brain. Hopefully the more I do these I actually get to a point where it flows off the mind rather than spending so much time piecing together such small pieces of logic. The one in particular I was working on was a program that accepts two int variables and multiplies them, or at least that's what it started as. Eventually so far it now uses float for the means of using decimal values, while it is structured within a “while” statement so that the user has to enter “Y/N” to terminate.

As an aid, feel free to use the following questions to help you generate content for your entries:

October 25, 2011

For a continue up on one of the last experiments I did the previous month, I have successfully got my WSUS server to work. It not only works in the domain environment, but i was able to successfully get clients non-existing in the domain to be redirected to the server for updating. The registry I had made was all correct except for one variable had spaces in the name, which was causing a <NULL> problem. Once that was done all I had to do was figure out what was causing the actual verification errors. I can write and explain it so easily its somewhat embarrassing how much time it took to finish, all I had to do was create a self signing certificate on the server to deploy to end users.

October 28, 2011

Well with the release of Diablo 3 getting pushed back I got slightly disappointed. So I went and found some old Diablo 2 keys I had laying around and played with it for a bit. Unfortunately that entailed not long after playing I wanted to configure and set up a bot again to get it working. With that said a few of the things I had to configure relate to the class in that scripts are used by the bot to configure what it does.

Here is just one of the config files, no way am I going to post all of them cause this one alone is pretty hefty. I realized though the sctructure to these, after spending time with C/C++ is more easy to see programming language and actually understand what is going on, unlike years ago when I had to configure them.

<codec>

var NTConfig_UseRedemptionHP; var NTConfig_UseRedemptionMP;

function NT_LoadConfig() {

//-----------------------------------------------------------------------------------------------------
// If you have trouble configuring your bot, follow the links below:
//		Wiki:	http://www.D2Etal.com/wiki
//		Forums:	http://www.D2Etal.com
//			This (& all Etal) best viewed within Notepad++ & may appear garbled in other editors.
// 
// -----------------------------------------------------------------------------------------------------
//NTConfig_Script.push("ConfigCheck.ntj"); 			// This must be commented out & serves to prevent unconfigured characters from running.
//------------------------------------------------------------------------------>>
// Etal Clone Hunter Options.
//------------------------------------------------------------------------------>>
//NTConfig_Script.push("NTCloneHunter.ntj");
	NTConfig_HotIP	= [32]; 						// Add IP's last octet seperated by commas.
	NTConfig_SaySomethingNoob = "Hot IP Found";		// Anti DC message during game.
	NTConfig_JustAHunter = true; 					// Used if only hunting IP's, set true to idle in town (Make sure this is the only script pushed).
	NTConfig_AvoidRD = 180;							// Time in seconds to wait in town to avoid R/D before creating next game (NTConfig_JustAHunter must be true). 	
//------------------------------------------------------------------------------
// Aura Stacking
//		Note: There are no failsafes, these are heavy beta. For manually enhanced play ONLY.
//		(Gear WILL be dropped.)
//------------------------------------------------------------------------------
	NTConfig_StackAmmount = 200; 					// Number of times to stack aura's (100-200 recommended).
//NTConfig_Script.push("NTHelmAuraStack.ntj"); 		// Stack Helm Aura
//NTConfig_Script.push("NTBodyAuraStack.ntj"); 		// Stack Armor Aura
//NTConfig_Script.push("NTWepAuraStack.ntj"); 		// Stack Weapon Aura
//------------------------------------------------------------------------------
// Leech, Leech Fighter & Team Botting Settings
//------------------------------------------------------------------------------
NTConfig_Leader = "config me";						// Leaders name. (Don't set to yourself.)
NTConfig_PartyOnlyLeader = false;					// Party only with leader (NTConfig_Leader)? (If true, NTConfig_PublicMode MUST be set false in the general config section below).
NTConfig_LeechBo = false; 							// Set false to disable BO & BC cast by leecher.
NTConfig_LeechExitDelay = 500;						// Delay before leecher exits game after leader in milliseconds.  Use this to stagger leechers exit times to avoid crashes.
//NTConfig_Script.push("NTPassiveChaosLeader.ntj"); // passive chaos leader script for NTPassiveChaosLeecher
//NTConfig_Script.push("NTPassiveChaosLeecher.ntj");// passive chaos leecher script. MUST use NTPassiveChaosLeader with it
//NTConfig_Script.push("NTDiabloLeechFight.ntj");	// (NTConfig_Leader must be configured above).
	NTConfig_LeechFrom = "S"; 						// (E)ntrance | (S)tar  (Must match leader's setting).
	NTConfig_RunScriptAfterDiablo = false;			// Set true if you will be running another script after DiabloLeechFight within the same game.	
	NTConfig_TakeTpDiablo = "config me";			// Message from leader signifying you to take portal. (Must be different than Baal & Trav tp messages.)
	NTConfig_UseChatCommandPortal = true;			// Use portal after TakeTpDiablo message? (False will attempt taking first TP made by leader, ignores TakeTpDiablo.)
//NTConfig_Script.push("NTTravLeader.ntj");			// Trav Leader
	LeechTrav_TakeTp =  "config me";				// Message from leader signifying you to take portal. (Must be different than Diablo & Baal tp messages.)
//NTConfig_Script.push("NTTravLeech.ntj");			// Trav Leecher (NTConfig_Leader must be configured above).
	NTConfig_TakeTpTravincal = "config me";			// This must match leaders LeechTrav_TakeTp & must be different than Diablo & Baal tp messages.
	
//NTConfig_Script.push("NTUniversalBaalLeech.ntj");
	NTConfig_LeechBaal = 1; 						// 1 = Leech Fighter (Tele), 2 = Leech Fighter (Walking), 3 = Passive Leecher (Corner dunce).
	NTConfig_TakeTpBaal = "config me";				// Message from leader signifying you to take portal. (Must be different than Diablo & Trav tp messages.)
	NTConfig_LeechPrecast = false; 					// Do you want your leecher to precast?
	NTConfig_TeleEachWaveHelper = false;            // Teleport bot before each wave to keep merc close (not position based yet)?
	leechpos = [15118, 5003];						// X,Y coord for leechers to stand (passive leecher only).			
	NTConfig_LeechHydra = 0; 						// 0 = Don't Move, 1 = Right Side, 2 = Left Side. (Use left side if you have a leecher grabing xp shrines. (Settings Below))
	NTConfig_FollowtoWorldStone = true;				// Go down to Baal in WS Chamber after waves?
	
	NTConfig_GrabShrine = "config me";				// Use shrine & return to act 5 portal Area (Leaders hot tp message is very effective, also must be different than Diablo & Trav tp messages).
	_FindXPArea = [];								// Area ID's, (2, 3, 4, 5, 6, 7). Set array empty "[]" to leech without grabbing shrines.
	NTConfig_ClearAroundShrine = false;				// Clear around shrine before going back to town?
	NTConfig_UsePaliAura = 0; 						// Set to the skill # of the aura you want to use.
	NTConfig_LeechHolyBoltBaal = false;				// Use Holy bolt attack sequence?
	NTConfig_LeechWalkAround = false;				// Will cause you char to move slightly if Holy Bolt is being blocked.
	
	NTConfig_RunScriptAfterBaal = false;			// Will you be running a script after leeching Baal?
//------------------------------------------------------------------------------
// Boss Configuration
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// Act 1 Scripts
//------------------------------------------------------------------------------
//NTConfig_Script.push("NTAndariel.ntj");
	NTConfig_RightWall = false;						// Set true to use the right wall on Andy (better for weeker characters).
	NTConfig_ClearAndarielThrone = false;			// Set true to clear throne room.
//NTConfig_Script.push("NTDenOfEvil.ntj");
	NTConfig_ClearTwice = false; 					// Runs clear level 2x. (Useful for having bot do quest)
//NTConfig_Script.push("NTUndergroundPassage.ntj");
	NTConfig_ClearPassageLevel1 = 2;				// 0 : Don't Clear, 1 : Clear Path Only, 2 : Clear All
//NTConfig_Script.push("NTTheSmith.ntj");
	NTConfig_ClearBarracks = false;					// Set true to clear the barracks.
NTConfig_Script.push("NTCatacombs.ntj");			// Clears Catacombs Levels 1, 2, 3, 4 (Including Andarial).
	NTConfig_BoneAshExtension = false;				// Set true to kill Bone Ash.
//NTConfig_Script.push("NTBishibosh_ENG.ntj");
	NTConfig_ClearColdPlains = false;				// Set true to clear Cold Plains.
//NTConfig_Script.push("NTCountess.ntj");
//NTConfig_Script.push("NTTreehead.ntj");
//NTConfig_Script.push("NTPit.ntj"); 				
	NTConfig_ClearPitLevel1 = 1;					
//NTConfig_Script.push("NTMausoleum.ntj"); 
	NTConfig_KillBloodRaven = false;
//NTConfig_Script.push("NTBloodRaven.ntj");			
	NTConfig_ClearMausoleum = false;					
	NTConfig_ClearCrypt = false;					
//NTConfig_Script.push("NTHole.ntj");  				
	NTConfig_ClearHoleLevel1 = 1;					// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear All
//NTConfig_Script.push("NTTristram.ntj");  			// (Not for use with Cow Script.)
	NTConfig_KillRakanishu = false;
//NTConfig_Script.push("NTCow.ntj"); 
	NTConfig_KillRakanishuCows = false; 			
	NTConfig_TristExtension = false; 				// Set true to clear Tristram.
	NTConfig_CubingDelaysCows = 800;				// Increase this delay if you are having problems with not taking portals or experiencing the "click bug".	
//NTConfig_Script.push("NTBoneAsh.ntj");  		
	NTConfig_ClearInnerCloister = 0;  				// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear While Skipping Regular Monsters
	NTConfig_ClearCathedral = 0;					// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear While Skipping Regular Monsters
//NTConfig_Script.push("NTColdCrow.ntj");  		
	NTConfig_ClearColdPlainss = 0;  				// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear While Skipping Regular Monsters
	NTConfig_CaveLevel1 = 0;						// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear While Skipping Regular Monsters
	NTConfig_CaveLevel2 = 0;						// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear While Skipping Regular Monsters
//------------------------------------------------------------------------------
// Act 2 Scripts
//------------------------------------------------------------------------------
//NTConfig_Script.push("NTTombRaider.ntj");
	NTConfig_ClearChestPosition = false; 			// Clear around chest position? 
	NTConfig_ClearTombs = false;					// Set true to clear the tombs as well.
//NTConfig_Script.push("NTSummoner.ntj"); 
		NTConfig_OpenSummonerChests = false;		// Open chests in the Arcane Sanc at the end of each wing?
		NTConfig_ClearArcaneSanc = false;			// Turn back & clear Arcane Sanctuary after killing Summoner (Teleports back to center before starting).
		NTConfig_ArcaneChampionsOnly = false;		// When clearing with the above setting, only kill Champions and above? 
		NTConfig_KillFireEye = false;
NTConfig_Script.push("NTDuriel.ntj");
//NTConfig_Script.push("NTFangskin.ntj");
	NTConfig_ClearClawViperTempleLevel1 = 0;		// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear All
//NTConfig_Script.push("NTAncientTunnels.ntj");
//NTConfig_Script.push("NTColdworm.ntj");
//NTConfig_Script.push("NTRadament.ntj");
//NTConfig_Script.push("NTDarkElder.ntj");  	
	NTConfig_ClearLostCity = 0;  					// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear While Skipping Regular Monsters
//NTConfig_Script.push("NTBeetleBurst.ntj"); 	
	NTConfig_ClearFarOasis = 0;						// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear While Skipping Regular Monsters
//------------------------------------------------------------------------------
// Act 3 Scripts
//------------------------------------------------------------------------------

//NTConfig_Script.push("NTStormTree.ntj");  	
	NTConfig_ClearFlayerJungle = 0;  				// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear While Skipping Regular Monsters
//NTConfig_Script.push("NTKurastChest.ntj");
NTConfig_Script.push("NTTravincal.ntj");
//NTConfig_Script.push("NTKurastTravel.ntj");
//NTConfig_Script.push("NTAct3Sewers.ntj");  		
	NTConfig_ClearA3SewersLevel1 = 1;				// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear All
NTConfig_Script.push("NTMephisto.ntj");
	NTConfig_KillCouncilMembers = false; 			// Kill Council in Durance Of Hate?
	NTConfig_RedPortal = false; 					// Return to town afterwards using red portal? (Only use this if Mephisto is not the last boss in your botting sequence.)
//------------------------------------------------------------------------------
// Act 4 Scripts
//------------------------------------------------------------------------------
//NTConfig_Script.push("NTIzual.ntj");
	NTConfig_ClearCityOfTheDamned = 0;  			// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear While Skipping Regular Monsters
	NTConfig_ClearPlainsOfDespair  = 0;				// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear While Skipping Regular Monsters
//NTConfig_Script.push("NTHephasto.ntj");		
	NTConfig_ClearRiverOfFlames = 0;				// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear While Skipping Regular Monsters
//NTConfig_Script.push("NTDiablo.ntj");
//--------------------------\\
// Diablo Settings:         \\
//--------------------------\\
NTConfig_CSSealsOnly	= false;
NTConfig_CSFrom			= "S";								// (E)ntrance | (S)tar
NTConfig_CSTpNotSafe	= "TP up. Might be hot!";
NTConfig_CSTpSafe		= "TP safe.";
NTConfig_CSKillDiablo	= "Diablo time!";
NTConfig_CSScriptEnd	= "It's Baal time Mubns!";
NTConfig_CSIdiotMsg 	= "Please don't hit the seals!";
NTConfig_WaitAndBO = true;				 					// Wait and cast BO? (If you don't have a tha ability to BO, set false.)
NTConfig_BOSayMsg 		= 'Casting BO in';	 				// What you'll say while waiting (time set below in seconds) to cast BO (Don't include seconds)?
NTConfig_BOWait = 2; 										// Time in seconds to wait before using BO.
NTConfig_DNextGameSay = "Next game will be ";				// Message before saying next game. (To disable, make the quotes empty "").
Diablo_FreeSpaceMessage = "Towning Quickly...";  			// NTConfig_FreeSpaceBeforeBoss (Setting below) message before going to town to clear inventory.
NTConfig_TownBeforeDiablo = false;							// Town before killing Diablo if you have less than the inventory space configured in Inventory settings?
//-----------------------------------------------------------------------------------
// Act 5 Scripts 
//------------------------------------------------------------------------------------

//NTConfig_Script.push("NTPindleskin.ntj");			// Pindleskin / Nihlathak.  (Can be configured to use waypoint or red portal.)
	NTConfig_UseTemplePortal = true; 				// Use red portal in act 5? (Set false for waypoint.)
	NTConfig_KillPindleskin = true;
	NTConfig_KillNihlathak= true;
	NTConfig_OpenEvilUrnNihl = false;        
	NTConfig_ClearHalls = 0;                 		// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear While Skipping Regular Monsters
	NTConfig_ClearHallsOfVaught = 0;            	// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear While Skipping Regular Monsters
	NTConfig_OpenHallsSuperChests = false;      		// Open super chests en-route to Nihlathak
	NTConfig_CheckVipers = false;					// End script if Tomb Vipers are found around Nihlathak?
//NTConfig_Script.push("NTEldritch.ntj"); 	
	NTConfig_ShenkExtension = false;
	NTConfig_DacFarren = false;
//NTConfig_Script.push("NTThreshSocket.ntj");
	NTConfig_OpenEvilUrn = true;				 	// Opens Evil Urn next to Thresh Socket?
//NTConfig_Script.push("NTPitOfAcheron.ntj");
	NTConfig_ClearPitOfAcheron = 0;					// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear All
//NTConfig_Script.push("NTInfernalPit.ntj");
	NTConfig_ClearInfernalPit = 0;					// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear All
	NTConfig_FTEvilUrnExtension = false;
//NTConfig_Script.push("NTDrifterCavern.ntj");
 		NTConfig_ClearDrifterCavern = false;			// Set true to clear all (not just uniques / champions).
//NTConfig_Script.push("NTAbbadon.ntj");
	NTConfig_ClearAbaddon = 0;						// 0 : Don't Clear, 1 : ClearPath Only, 2 : Clear All
//NTConfig_Script.push("NTFrozenstein.ntj"); 	
	NTConfig_ClearFrozenRiver = false;				// Set true to clear all (not just uniques / champions).
//NTConfig_Script.push("NTGlacialTrail.ntj");
	NTConfig_ClearGlacialTrail = false;				// Set true to clear all (not just uniques / champions).
//NTConfig_Script.push("NTIcyCellar.ntj");
	NTConfig_ClearIcyCellar = false;				// Set true to clear all (not just uniques / champions).
//NTConfig_Script.push("NTWorldStoneKeep.ntj");
//NTConfig_Script.push("NTBaal.ntj"); 
	NTConfig_KillBaal = true;
	NTConfig_MakeHotTP = true; 
	NTConfig_Wave3 = 0; 							// 0 = Don't Move, 1 = Right Side, 2 = Left Side. (Use left side if you have a leecher grabing xp shrines.)
	NTConfig_HolyBoltBaal = false;					// Use Holy Bolt attack sequince? (Can be bad for leechers.)
	NTConfig_WalkAround = false; 					// Move character slightly if Holy Bolt is being blocked?
	NTConfig_TownBeforeBaal = false;				// Check inventory & town if holding any items before going to Worldstone to kill Baal. (Requires NTConfig_FreeSpace correctly configured.)		
	NTConfig_MakeHelpTPBeforeThrone = false;		// TP in WS lvl 3 for help clearing the Throne Room.
	NTConfig_TeleEachWave = false;                	// Teleport bot before each wave to keep merc close (not position based yet)?
	NTConfig_ClearWSK = 0;                 			// 0 = Don't Clear, 1 = Clear Path Only, 2 = Cull Clear Of WSK 2 & 3
	NTConfig_PsnW2 = false;            				// Heal after Baal wave 2 if poisoned?
//------------------------\\
// "Public Baal Settings" \\
//------------------------\\

NTThrone_Announce = true; 											// Announce mobs in the Throne room pre-tp?
Baal_WSlvl3tpMSG = "TP for WS lvl 3 up, help me clear throne";		// Message for portal in WS lvl 3. (Clears throne faster with help.)
Baal_HotTp = "TP up.";												// Hot TP message. (NTConfig_MakeHotTP must be set true.)
Baal_SafeTp = "TP safe.";											// What to say when bot opens the safe TP.
Baal_KillBaalMessage = "Let's kill Baal!";							// What to say after last wave, before entering chamber.
Baal_NextGameMessage = "Etal Bot - D2Etal.com";						// What to say after killing Baal. (We appriciate those who leave the shameless plug.)
Baal_FreeSpaceMessage = "Towning to clear space";  					// Used with NTConfig_FreeSpaceBeforeBaal for message before going to town to clear inventory
Baal_BSayNextGame = "Next game will be ";							// Message before announcing next game.  "Next game will be chaos" for example. (Leave empty to disable.)
//------------------------------------------------------------------------------
// NTWPGrabber Instructions
//------------------------------------------------------------------------------	
// NTWPGrabber iterates through areas grabbing relevant waypoints.
//		* NTWPGrabber can be started (pause / unpause) in any area & will start from this point going forward.
//
// Uncomment (remove the preceeding "//") to enable quests. (The quest module will not run unless at least one is uncommented).
// 		* If the quest is already done, this will be detected & skipped. (Disable those you cannot handle...)
//
// It's HIGHLY recommended to disable all normal pickits while running the quest module. 
// 		* Quest nip is required while running the quest module.
// 		* Make sure you have space in your stash (& a clear cube) for the quest items
// 
// Your character WILL die if you cannot handle the quest.
//------------------------------------------------------------------------------
//NTConfig_Script.push("NTWPGrabber.ntj");	 			
	NTConfig_DoQuests =  
	[						
	//"Den Of Evil",
	//"The Search For Cain",
	//"Radament's Lair",
	//"Horadric cube",
	//"Lam Esen's Tome",
	//"Golden Bird",  								// After Esen's Tome will clear the Ruined Temple in attempt for the Bird. (Doesn't always drop.)
	//"Golden Bird Travincal", 						// Will attempt to drop the Bird from Council. (Doesn't always drop.)
	//"Fallen Angle",
	//"Siege on Harrogath",
	//"Prison Of Ice",
	//"Rite Of Passage",
	];
//NTConfig_NIPFilePath.push("Quest.nip"); 			// Uncomment this to pick quest items.

//------------------------------------------------------------------------------
// Misc. Scripts
//------------------------------------------------------------------------------

//NTConfig_Script.push("WpGiver.ntj");			// Gives waypoints to another character via in-game chat commands.
//NTConfig_Script.push("mulelogger.ntj");			// Blank Script, loads Libs, CharConfig & Nips & enters delay loop.
//NTConfig_Script.push("TLNipCheck.ntj");  			// Checks for errors in pickit files. (Alternatively, you can also use NumPad "+" while ingame.)
//NTConfig_Script.push("TLInventory.ntj"); 			// Logs items to text file. (Alternatively, you can use NumPad "5" while ingame.)
	NTConfig_TLInventory_SkipEquipped   = true;     // Skip logging what you have equipped (useful for logging mules).
LogHostiles = false;								// Captures any hostile character's in "NTBot/tools/Hostile Name's/permLog.txt".
	channelName = ""; 								// Enter channel name within quotes if you're banning characters appearing on the hostile list from your channel. (To disable, keep quotes empty ""). 
	hostile_GetThenQuit = false; 					// Capture's hostile's name & leaves game. (me.quitonhostile must be false.)	
	twelveHourClock = false;						// Check permLog.txt in "NTBot/tools/Hostile Names" 
//NTConfig_Script.push("NTManual.ntj");				// Manual play with some enhancements (auto potting etc).
	NTConfig_PickitOn = false; 						// Manual play with pickit.
	NTConfig_ShowEnemies = false; 					// Manual play with enemies on minimap
	NTConfig_RevealMap = false; 					// Manual play with maphack
	NTConfig_CheckStuff = false; 					// Gives warning when low on pots, scrolls or merc is dead.
//------------------------------------------------------------------------------
// Speed Settings
//------------------------------------------------------------------------------
me.maxgametime = 1200; 								// Maximum game length in seconds (0 is infinite).
NTConfig_StartDelay = 0;							// Delay time in milliseconds to wait at start.
NTConfig_AreaDelay = 500;							// Delay time in milliseconds to wait on each area change.
NTConfig_SnagDelay = 500;							// Delay time in milliseconds (added to ping delay) to wait before each pickit call.

//------------------------------------------------------------------------------
// Chicken settings
//------------------------------------------------------------------------------
NTConfig_SkipHealLife = 90;							// If you are over this percentage of life, you won't go to a healer.
NTConfig_SkipHealMana = 70;							// If you are over this percentage of mana, you won't go to a healer.
				
NTConfig_LifeThresh = 85;							// Drink a health potion if under this percent of life.
NTConfig_LifeRejuvThresh = 45;						// Drink a rejuvenation potion if under this percent of life. (Will not use health potions under this %)
NTConfig_ManaThresh = 30;							// Drink a mana potion if under this percent of mana.
NTConfig_ManaRejuvThresh = 0;						// Drink a rejuvenation potion if under this percent of mana. (Will not use mana potions under this %)
NTConfig_LifeChicken = 20;							// 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_TPChicken = 60; 							// Under this % of health will attempt to tp to town and heal. (Set 0 to disable.)
				
NTConfig_MercLifeThresh = 50;						// Give merc a health potion if under this percent of life.
NTConfig_MercRejuvThresh = 30;						// Give merc a rejuvenation potion if under this percent of life. (Will not use health potions under this %)
NTConfig_MercChicken = 0;							// This is your mercs chicken life percent. If he goes below this, exit game. (Set 0 to disable.)
//------------------------------------------------------------------------------
// Inventory settings
//------------------------------------------------------------------------------
NTConfig_FreeSpaceBeforeBoss = 2;					// If # of free columns is less than this, will town before killing bosses.
NTConfig_FreeSpace = 0;								// Number of free columns. If bot has less than this amount after id'ing, it will go to stash.
// These numbers correspond to your inventory. Set 0 to keep whatever is there, 1 to have the bot manage the slot.
NTConfig_Columns[0] = [1,1,1,1,1,1,1,0,0,0];
NTConfig_Columns[1] = [1,1,1,1,1,1,1,0,0,0];
NTConfig_Columns[2] = [1,1,1,1,1,1,1,0,0,0];
NTConfig_Columns[3] = [1,1,1,1,1,1,1,0,0,0];
NTConfig_MinGoldToStash = 100000;					// Maximum gold amount carried before going to stash
//----------------------------------------------------------------------------------------------
// Belt Settings
// 	 	Type of potion used in each belt column
// 		Available types : "hp" = health | "mp" = mana | "rv" = rejuv. Can use other potion types too.
// 		Keep equal types at adjacent columns. First HP then MP and then HP again is a bad choice.
// 		Keep HP and MP at the beginning of the belt (in case you want to use rejuv and other types).
// 		Rejuvenations MUST, I REPEAT MUST be at the end of the belt (last x columns).
// 		To use rejuvenations only, put "rv" in all columns.
//----------------------------------------------------------------------------------------------
NTConfig_BeltColType[0] = "hp";
NTConfig_BeltColType[1] = "hp";
NTConfig_BeltColType[2] = "mp";
NTConfig_BeltColType[3] = "rv";
//-----------------------------------------------------------------------------------
// Pickit (SnagIt) Configuration
// 		* Select one group only (normal / advance / extreme / Master)
//-----------------------------------------------------------------------------------
//NTConfig_NIPFilePath.push("normal/normal.nip");
//NTConfig_NIPFilePath.push("normal/magic_rare.nip");
//NTConfig_NIPFilePath.push("normal/set.nip");
//NTConfig_NIPFilePath.push("normal/unique.nip");  
//NTConfig_NIPFilePath.push("normal/craft.nip");  
//NTConfig_NIPFilePath.push("normal/key.nip");
//NTConfig_NIPFilePath.push("advance/normal.nip");
//NTConfig_NIPFilePath.push("advance/magic_rare.nip");
//NTConfig_NIPFilePath.push("advance/set.nip");
//NTConfig_NIPFilePath.push("advance/unique.nip");
//NTConfig_NIPFilePath.push("advance/craft.nip");
//NTConfig_NIPFilePath.push("advance/key.nip");
//NTConfig_NIPFilePath.push("extreme/normal.nip");
//NTConfig_NIPFilePath.push("extreme/magic_rare.nip");
//NTConfig_NIPFilePath.push("extreme/set.nip");
//NTConfig_NIPFilePath.push("extreme/unique.nip");
//NTConfig_NIPFilePath.push("extreme/craft.nip");
//NTConfig_NIPFilePath.push("extreme/key.nip");

NTConfig_NIPFilePath.push("Master/Charms.nip");
NTConfig_NIPFilePath.push("Master/Crafted.nip");
NTConfig_NIPFilePath.push("Master/Cubed.nip");
NTConfig_NIPFilePath.push("Master/CustomAdditions.nip");
//NTConfig_NIPFilePath.push("Master/FAST.nip");
NTConfig_NIPFilePath.push("Master/Gold Potions Runes Gems Essences Keys Organs.nip");
NTConfig_NIPFilePath.push("Master/Magic.nip");
NTConfig_NIPFilePath.push("Master/Rare.nip");
NTConfig_NIPFilePath.push("Master/Set.nip");
NTConfig_NIPFilePath.push("Master/Unid.nip");
NTConfig_NIPFilePath.push("Master/Unique.nip");
NTConfig_NIPFilePath.push("Master/White.nip");
NTConfig_NIPFilePath.push("Master/Runeword.nip");
NTConfig_SnagRange = 40;							// Radius to check for dropped items. 40 is a good number here
//------------------------------------------------------------------------------
// Runeword configuration
//
// 		* Format: NTConfig_Runeword.push([base item classid, rune1 classid, rune2 classid....]);
//		* Use NTItemAlias.ntl to find classids
// 		* YOU MUST USE THE EXACT ORDER OF RUNES
// 		* Base item needs to be in the pickit, rest is picked auto.
// 		* To keep a runeword, include NTConfig_KeepRuneword.push("pickit syntax"); after NTConfig_Runeword.push
//------------------------------------------------------------------------------

NTConfig_MakeRunewords = false;

//NTConfig_Runeword.push([498, 616, 619, 618, 620]); 					// Sacred Targe, Tal, Thul, Ort, Amn SPIRIT
	NTConfig_KeepRuneword.push("[name] == sacredtarge # [fcr] >= 35");

//NTConfig_Runeword.push([447, 616, 619, 618, 620]); 					// Monarch, Tal, Thul, Ort, Amn SPIRIT
	NTConfig_KeepRuneword.push("[name] == monarch # [fcr] >= 35");

//NTConfig_Runeword.push([29, 616, 619, 618, 620]); 					// Crystal Sword, Tal, Thul, Ort, Amn SPIRIT
	NTConfig_KeepRuneword.push("[name] == crystalsword # [fcr] >= 35");
//NTConfig_Runeword.push([254, 617, 612, 616, 621]); 					// Colossus Voulge, Ral, Tir, Tal, Sol
	NTConfig_KeepRuneword.push("[name] == ColossusVoulge # [fcr] >= 35");

//NTConfig_Runeword.push([255, 617, 612, 616, 621]); 					// Thresher, Ral, Tir, Tal, Sol
	NTConfig_KeepRuneword.push("[name] == thresher # [fcr] >= 35");

//NTConfig_Runeword.push([256, 617, 612, 616, 621]); 					// Cryptic Axe, Ral, Tir, Tal, Sol
	NTConfig_KeepRuneword.push("[name] == crypticaxe # [fcr] >= 35");
//NTConfig_Runeword.push([21, 627, 635, 630, 619]); 					// Flail, Ko, Vex, Pul, Thul
	NTConfig_KeepRuneword.push("[name] == flail # [fcr] >= 40");
//NTConfig_Runeword.push([21, 620, 617, 632, 633, 636]); 				// Flail, Amn, Ral, Mal, Ist, Ohm
	NTConfig_KeepRuneword.push("[name] == flail # [IAS] >= 40"); 
//NTConfig_Runeword.push([29, 620, 617, 632, 633, 636]); 				// Crystal Sword, Amn, Ral, Mal, Ist, Ohm
	NTConfig_KeepRuneword.push("[name] == crystalsword # [IAS] >= 40");
//------------------------------------------------------------------------------
// Cubing configuration
//------------------------------------------------------------------------------
NTConfig_Cubing = false;										// Enable Cubing?
//NTConfig_CubingItem.push([NTCU_GEM, 560]);					// Flawless Amethyst
//NTConfig_CubingItem.push([NTCU_GEM, 565]);					// Flawless Topaz
//NTConfig_CubingItem.push([NTCU_GEM, 570]);					// Flawless Saphire
//NTConfig_CubingItem.push([NTCU_GEM, 575]);					// Flawless Emerald
//NTConfig_CubingItem.push([NTCU_GEM, 580]);					// Flawless Ruby
//NTConfig_CubingItem.push([NTCU_GEM, 585]);					// Flawless Diamond
//NTConfig_CubingItem.push([NTCU_GEM, 600]);					// Flawless Skull
//NTConfig_CubingItem.push([NTCU_MAGIC, 420]);					// Magic Tiara
//NTConfig_CubingItem.push([NTCU_MAGIC, 421]);					// Magic Diadem
//NTConfig_CubingItem.push([NTCU_MAGIC, 285]);  				// Maiden Javelin - ilvl 71
//NTConfig_CubingItem.push([NTCU_MAGIC, 295]);  				// Ceremonial Javelin - ilvl 77
//NTConfig_CubingItem.push([NTCU_MAGIC, 305]);  				// Matriarchal Javelin - ilvl 80
//NTConfig_CubingItem.push([NTCU_MAGIC_CHARM, 603]);			// Magic Small Charm
//NTConfig_CubingItem.push([NTCU_MAGIC_CHARM, 605]);			// Magic Grand Charm
//NTConfig_CubingItem.push([NTCU_CRAFT_HITPOWER_GLOVES, 382]);	// Craft Heavy Bracers
//NTConfig_CubingItem.push([NTCU_CRAFT_HITPOWER_GLOVES, 452]);	// Craft Vambraces
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_HELM, 354]);		// Craft Blood Casque
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_HELM, 424]);		// Craft Blood Armet
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BOOTS, 388]);		// Craft Blood Battle Boots
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BOOTS, 458]);		// Craft Blood Mirrored Boots
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_GLOVES, 381]);		// Craft Blood Sharkskin Gloves
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_GLOVES, 451]);		// Craft Blood Vampirebone Gloves
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BELT, 392]);		// Craft Blood Mesh Belt
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BELT, 462]);		// Craft Blood Mithril Coil
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_AMULET, 520]);		// Craft Blood Amulet
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_RING, 522]);		// Craft Blood Ring
//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_AMULET, 520]);	// Craft Caster Amulet
//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_BOOTS, 385]);		// Craft Caster Demonhide Boots
//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_BOOTS, 455]);		// Craft Caster Wyrmhide Boots
//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_BELT, 461]);		// Craft Caster Vampirefang Belt
//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_BELT, 391]);		// Craft Caster Sharkskin Belt
//NTConfig_CubingItem.push([NTCU_CRAFT_SAFETY_SHIELD, 447]);	// Craft Monarch
//NTConfig_CubingItem.push([NTCU_CRAFT_SAFETY_AMULET, 520]);	// Craft Amulet
//NTConfig_CubingItem.push([NTCU_ESSENSE, 0]);
//NTConfig_CubingItem.push([NTCU_RUNE_THUL, 562]);
//NTConfig_CubingItem.push([NTCU_RUNE_AMN, 557]);
//NTConfig_CubingItem.push([NTCU_RUNE_SOL, 567]);
//NTConfig_CubingItem.push([NTCU_RUNE_SHAEL, 577]);
//NTConfig_CubingItem.push([NTCU_RUNE_DOL, 572]);
//NTConfig_CubingItem.push([NTCU_RUNE_HEL, 582]);
//NTConfig_CubingItem.push([NTCU_RUNE_IO, 563]);
//NTConfig_CubingItem.push([NTCU_RUNE_LUM, 558]);
//NTConfig_CubingItem.push([NTCU_RUNE_KO, 568]);
//NTConfig_CubingItem.push([NTCU_RUNE_FAL, 578]);
//NTConfig_CubingItem.push([NTCU_RUNE_LEM, 573]);
//NTConfig_CubingItem.push([NTCU_RUNE_PUL, 583]);
//NTConfig_CubingItem.push([NTCU_RUNE_UM, 564]);
//NTConfig_CubingItem.push([NTCU_RUNE_MAL, 559]);
//NTConfig_CubingItem.push([NTCU_RUNE_IST, 569]);
//NTConfig_CubingItem.push([NTCU_RUNE_GUL, 579]);
//NTConfig_CubingItem.push([NTCU_RUNE_VEX, 574]);
//NTConfig_CubingItem.push([NTCU_RUNE_OHM, 584]);
//NTConfig_CubingItem.push([NTCU_RUNE_LO, 565]);
//NTConfig_CubingItem.push([NTCU_RUNE_SUR, 560]);
//NTConfig_CubingItem.push([NTCU_RUNE_BER, 570]);
//NTConfig_CubingItem.push([NTCU_RUNE_JAH, 580]);
//NTConfig_CubingItem.push([NTCU_RUNE_CHAM, 575]);
//***** Include the following, Primary item must be setted in item_configs folder *****
//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 436]);				// Socket Great Hauberk
//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 435]);				// Socket Boneweave
//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 443]);				// Socket Archon Plate
//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 438]);				// Socket Hellforge Plate
//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 439]);				// Socket Kraken Shell
//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 442]);				// Socket Sacred Armor
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 254]);					// Socket Colossus Voulge
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 255]);					// Socket Thresher
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 256]);					// Socket Cryptic Axe
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 257]);					// Socket Great Poleaxe
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 258]);					// Socket Giant Thresher
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 29]);					// Socket Crystal Sword
//NTConfig_CubingItem.push([NTCU_SOCKET_SHIELD, 447]);					// Socket Monarch
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 148]);		// HONE SUNDAN : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 157]);		// RIBCRACKER : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 103]);		// SUICIDE BRANCH : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 295]);		// TITANS'S REVENGE : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_N_UNIQUE_ARMOR, 335]);			// BLOODFIST : Normal -> Exceptional
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 381]);			// BLOODFIST or GRAVEPALM: Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_N_UNIQUE_ARMOR, 337]);			// MAGEFIST : Normal -> Exceptional
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 383]);			// MAGEFIST or LAVA GOUT : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_N_UNIQUE_ARMOR, 339]);			// HOTSPUR: Normal -> Exceptional
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 385]);			// HOTSPUR or INFERNOSTRIDE : Exeptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 386]);			// WATERWALK : Exeptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 389]);			// GORE RIDER : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 360]);			// SKIN OF THE VIPERMAGI : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 365]);			// SHAFTSTOP : Exeptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 420]);			// KIRA'S GUARDIAN : Exeptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 477]);			// ARREAT'S FACE : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 487]);			// HOMUNCULUS : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 481]);			// HERALD OF ZAKARUM : Exceptional -> Elite
//------------------------------------------------------------------------------
// Gamble Configuration
// 		* To specify what items to gamble, adjust the array with the desired item codes.
//------------------------------------------------------------------------------
NTConfig_Gamble = false;							// Enable gambling?
NTConfig_GambleStartGold = 2000000;					// Gold amount to start the gambling.
NTConfig_GambleStopGold = 300000;					// Gold amount to stop the gambling.
		
NTConfig_GC = false;								// Enable gambling for craft amulet. This will keep one amulet for crafting on you when possible. Requires char lvl >= 88.
NTConfig_GCAmuGold = 300000;						// Gold amount to stop gambling for amulet to craft.
			
NTConfig_GambleItem.push(520);						// Amulets
NTConfig_GambleItem.push(522);						// Rings
NTConfig_GambleItem.push(418);						// Circlets
NTConfig_GambleItem.push(419);						// Coronets
//NTConfig_GambleItem.push(334);					// Leather Gloves
//NTConfig_GambleItem.push(335);					// Heavy Gloves
//NTConfig_GambleItem.push(336);					// Chain Gloves
//NTConfig_GambleItem.push(337);					// Light Gauntlets
//NTConfig_GambleItem.push(338);					// Gauntlets
NTConfig_GambleItem.push(331);						// Kite Shield
//------------------------------------------------------------------------------
// General configuration
//------------------------------------------------------------------------------
NTConfig_PublicMode = false;						// Enables "Public" features (Partying, Tp'ing etc). (Cannot be true while NTConfig_PartyOnlyLeader is.)
NTConfig_CheckCloneDiablo = true;					// Set to true if you want to wait in game after "Diablo Walks the Earth" msg.
NTConfig_SoJWaitTime = 5;							// Time in minutes to wait for the next SoJ sale. Set to 0 to disable SoJ notifier.
NTConfig_FastPickit = false;						// This is a new option that causes far less crashes(maybe none).  Is independent of snag delay
NTConfig_UseMerc = false;							// Set true if you will use a mercenary, will revive merc at a reviver npc.
NTConfig_ResetEnigma = false;  						// Set true to reset enigma when tele bug exists. (Safe.)
NTConfig_KillHostilePlayer = false;					// Set true to kill payers which hostile you. (Must have me.quitonhostile & hostile_GetThenQuit false.)
me.quitonhostile = false;							// Set true to quit when hostiled.
NTConfig_QuitOnPing = 900;							// Ping threshold. (0 to disable.)
NTConfig_PingInterval = 10;							// If ping is greater than threshold for x seconds, exit game. (0 = Disabled,  x = Time Interval In Seconds.)
NTConfig_ClearPosition = false;						// Set true if you want to clear area after killing boss.
NTConfig_PrioritizeWeakerFoes = false;				// Enable to kill weaker foes with higher priority as well as clear areas of minions and other foes prior to killing bosses
NTConfig_PrioritizeWeakerFoesAreaDisable = [];		// Use IDs from D2NT\sdk\areas.txt to disable for specific areas, e.g. [124,83] would disable Nihlathak and Travincial
NTConfig_SwitchTele = false; 						// Use tab 2 for teleporting (higher fcr breakpoint in tab 2)? (Slight chance of breaking an eth cta spirit.)
NTConfig_PreBuffFade = false; 						// Stand in fire until fade is triggered? (Must have Last Wish / Treachery etc.)
NTConfig_StopIfStashInventoryFull = false;    		// Pauses bot when stash/inventory are full. (Helpful for HardCore players.) Must configure NTConfig_FreeRowsQuit below.
NTConfig_FreeRowsQuit = 2;							// If after stashing less than this number of inventory columns are free, bot will pause.
NTConfig_SkipRegularMonsters = false;				// If true will only kill Champions, Uniques and Bosses.
NTConfig_DropExtraRejuvs = false;					// When belt is full bot will either drop extra rejuvs when a new rejuv is found or drink them. (true to drop, false to drink).
NTConfig_TeleGrab = 0; 								// 0 = No, 1 = Yes. Changes pickit to run after each teleport (instead of after each clear call). (Recommended for aura stacking only with a NTConfig_SnagDelay of 0.) (Can cause complications (chickens etc) depending on system / setup.)
NTConfig_CheckPassword = false; 					// Check for game password, quit if none.
NTConfig_GoWestFromLut = false;						// If new game starts in act 2, use Warriv to return to act 1?
NTConfig_MinPots = 1;								// If less then this many (Health or Mana) potions, will return to town on checkselfsafe 0x01 is calls.
NTConfig_AutoMule = false; 							// Set to true to enable muling. Requires NTMule entry point.

NTConfig_UseKeysForPlaceHolder = true; Set to true to keep a key in your inventory. (In the event that the bot has no space for ID scrolls, will sell the key instead of one of your items.) NTConfig_PropsForEtal = 1; Advertising etal at the end of public games. set to 0 to disable. Set to 1 or greater for the number of phrases spoken before exiting public games. See D2NT\scripts\NTBot\char_configs\EtalPR.ntl for instructions on adding or removing phrases

//-------------------------------------------------------------------------------
// Advanced XML Item Logging
//-------------------------------------------------------------------------------
NTConfig_UseXMLItemlog = false; 					// Log kept, sold and ignored items in an XML log file?
NTConfig_IndependantLog = true;						// Create a seperate file for each character. Item Logfile is found in logs/Item Log/
NTConfig_LogSoldItems = false;  					// Logs items sold to item logfile?
NTConfig_LogIgnoredItems = false;					// Log ignored items to item logfile?
NTConfig_LogCraftedItems = false;					// Log crafted items to item logfile? 
NTConfig_LogItemQuality = 5;						// Quality of items logged is >= of value: (3 = White, 4 = Magic, 5 = Sets, 6 = Rares, 7 = Uniques, 8 = Crafted).
//-------------------------------------------------------------------------------
// General Log File Options
//-------------------------------------------------------------------------------
NTConfig_LogShrines = false;  						// Log shrines found by NTConfig_Shrines array?
NTConfig_LogCraftingString = false;					// Log the string of ingredients that goes into cube? 
//------------------------------------------------------------------------------
// Manager Log Options
//------------------------------------------------------------------------------
NTConfig_LogSoldItemQuality = 7;					// Quality of items logged is >= of value: (3 = White, 4 = Magic, 5 = Sets, 6 = Rares, 7 = Uniques, 8 = Crafted, 0 = Disabled).
NTConfig_CubeProcessToManager = 2;					// Logs the string of ingredients that goes into cube (0 = Don't Log, 1 = Log In Item Log, 2 = Log To Common Log).
	
//-------------------------------------------------------------------------------
// Immunity Skipping
//-------------------------------------------------------------------------------
NTConfig_AreasToNotSkipImmunes = [131, 108];		// Add area ID's into the array seperated by "," for to disable immunity skipping within said area.
NTConfig_SkipSingle[0] = false;						//Skips all physical immunes.
NTConfig_SkipSingle[1] = false;						//Skips all magic immunes.
NTConfig_SkipSingle[2] = false;						//Skips all fire immunes.
NTConfig_SkipSingle[3] = false;						//Skips all lightning immunes.
NTConfig_SkipSingle[4] = false;						//Skips all cold immunes.
NTConfig_SkipSingle[5] = false;						//Skips all poison immunes.
			                                        
NTConfig_SkipDual[0] = false;						//Skips all dual physical + magic immunes.
NTConfig_SkipDual[1] = false;						//Skips all dual physical + fire immunes.
NTConfig_SkipDual[2] = false;						//Skips all dual physical + lightning immunes.
NTConfig_SkipDual[3] = false;						//Skips all dual physical + cold immunes.
NTConfig_SkipDual[4] = false;						//Skips all dual physical + poison immunes.
NTConfig_SkipDual[5] = false;						//Skips all dual magic + fire immunes.
NTConfig_SkipDual[6] = false;						//Skips all dual magic + lightning immunes.
NTConfig_SkipDual[7] = false;						//Skips all dual magic + cold immunes.
NTConfig_SkipDual[8] = false;						//Skips all dual magic + poison immunes.
NTConfig_SkipDual[9] = false;						//Skips all dual fire + lightning immunes.
NTConfig_SkipDual[10] = false;						//Skips all dual fire + cold immunes.
NTConfig_SkipDual[11] = false;						//Skips all dual fire + poison immunes.
NTConfig_SkipDual[12] = false;						//Skips all dual lightning + cold immunes.
NTConfig_SkipDual[13] = false;						//Skips all dual lightning + poison immunes.
NTConfig_SkipDual[14] = false;						//Skips all dual cold + poison immunes.
//------------------------------------------------------------------------------
// ID Options & Other Town Configs
//------------------------------------------------------------------------------
NTConfig_IdInField = false;						// set to true to have bot id items in field.  MUST have a tome of id in inventory
NTConfig_FillTombsInField = false;				// set true and the bot will fill id and tp tombs in field.  Must uncomment/add id and tp scrolls in nip files "[Name] == scrolloftownportal" and "[Name] == scrollofidentify"	
NTConfig_FreeSpaceXY = [2, 4];					// free block if less bot will id.  Easiest way to explain this is [2,4] would be free space big enough to hold a thresher
NTConfig_AnnounceDroppedItems = false;			// anounce items that are being dropped.  NOTE does not work with items sold to vendor	
NTConfig_dropMessages = [						// randomly selected phrase used for NTConfig_AnnounceDroppedItems.  Add as many as you want following the provided format
							"up for grabs ",
							"dropping ",
							"tossing ",
							"free item on ground ",
						];

NTConfig_IdentAtCain = false;						// Identify @ Cain? (Quicker & will skip using cain if something in inventory is suppose to be kept unidentified. Will not log sold items.)
NTConfig_PocketChange = 500000;						// Amount of gold you want to keep on hand used for repairs. Make adjustments to this & repair % to keep equipment from breaking.
NTConfig_DontCainAct = [];							// List any act you don't want to use cain on seperated by ",".  Set to "0" to id in all acts.
NTConfig_Repair = "40";								// Set to how much durability you want to repair at, 40 is normal, 99 is as soon as you loose one point.
NTConfig_AlwaysUseCain = false;						// Always use cain to ID? (Will ID items which are set to keep unid if they are in the inventory when visiting Cain.)
NTConfig_DropCainItems = false;						// set to true to drop items/false sells them to vendor
//------------------------------------------------------------------------------
// DPS Meter Config
//------------------------------------------------------------------------------	
DPSMeter = false;									// This toggles the DPS Meter on / off.
	miniDPSDisplay = false;							// Set true if you run a resolution below 800*600. (Formatting removed.)
	DPSScanSpeed = 50; 								// Delay between each scan (in ms).
	DPSDisplayRate = 1000; 							// Interval DPS is recalculated and displayed (in ms). (Default 1000.)
	DPSScanHist = 2; 								// Scan history (in seconds) to average. (Default 2.)	
	
//----------------------------------------------------------------------------------
//Open chest configs configs.  
//		* Chest ID's can be added to NTConfig_Chestids. Look for ID's in "Chest ID's.txt".
//----------------------------------------------------------------------------------
NTConfig_OpenChest = false;							// Open most super unique chests at the end of runs. (Chest ID settings below do not effect this.)
NTConfig_OpenChestsInArea = false;  				// Open chests set by NTConfig_chestids @ end of run? (Currently supports most maps.)
NTConfig_CheckChestid = false;						// Print chest ID's to screen as they're opened?
NTConfig_keys = 8;									// Minimum # of keys to keep on hand. (>12 will result in multiple stacks.)
NTConfig_OpenChestsInAreaClearing = false;			// Open chests while using clear functions? (Uses NTConfig_Chestids.)  
NTConfig_AreasToOpenChestClearing  = [];			// Enter areas for chests to be cleared within. (Areas seperated by commas.)
// Remove area / chest ID's in the arrays below to open (all chests within removed area) / (specific chest). 
//		* Current area ID can be displayed ingame by pressing Num Pad "*".
//		* Nearby chest ID's can be displayed ingame by pressing Num Pad "2".
// 		* Default listed ID's are the currently supported ID's.
NTConfig_DontOpenChestAreas = 	[2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 
								27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 
								52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,  64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
								74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 									
								97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 
								115, 116, 117, 118, 119,120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131];

NTConfig_Chestids = [104, 105, 106, 107, 5, 6, 87, 143, 140, 141, 144, 146, 147, 148, 174, 175, 176, 177, 181, 183, 198,
					240, 241, 242, 243, 329, 330, 331, 332, 333, 334, 335, 336, 354, 355, 356, 371, 387, 389, 390,        
 					391, 397, 405, 406, 407, 413, 420, 424, 425, 430, 431, 454, 455, 501, 502, 504, 505,
					580, 581, 1, 3, 50, 51, 53, 79, 54, 55, 56, 57, 58, 20, 55, 139, 155, 159];
//------------------------------------------------------------------------------
// Shrine Grabber Settings
//------------------------------------------------------------------------------

NTConfig_ShareExpShrine = false;					// Cleare around exp shrines and TP? (Will not grab experience shrines if true.)
NTConfig_Shrines = [0, 0, 0, 0, 0];					// Change 0's to the corresponding #'s found in /D2NT/sdk/shrines.txt (To add more shrines, seperate values with a comma.)

//------------------------------------------------------------------------------
// Attack Configuration
// 		* Change the -1's to the corresponding #'s found in /D2NT/sdk/skills.txt
// 		* As of Jan 17th: -1 = Disabled, 0 = Normal Attack.
//------------------------------------------------------------------------------
NTConfig_AttackSkill[0] = -1;	// 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] = -1;	// Secondary skill in case monster is immune to primary skill. Set to 0 if you won't
NTConfig_AttackSkill[6] = -1;	// Secondary aura. Set to 0 if you won't
NTConfig_AttackSkill[7] = -1;	// Tertiary skill in case monster is immune to primary skill. Set to 0 if you won't
NTConfig_AttackSkill[8] = -1;	// Tertiary aura. Set to 0 if you won't
prewavespot = [15092, 5028];						// Pre-Wave standing (X,Y) coordinates. (For Baal Scripts.)

NTconfig_HighMaxAttack = true;						// Use HighMaxAttacks? (False = LowMaxAttacks.) High/Low are below.
NTConfig_HighMaxAttackAreas = [131];				// If above is set false (you're using LowMaxAttacks), add areas to bypass LowMaxAttacks and use HighMaxAttacks instead. (Recommended in Baal's Throne Room.)

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

MonstersToAttackFirst = 							// Monster ID's to attack first. (Monsters which resurrect / spawn others are good choices.)
[58,59,60,61,62,101,102,103,104,190,191,
192,193,194,206,207,208,209,228,239,240,
241,278,279,280,281,282,283,303,312,480,
481,482,483,484,485,486,529];
//------------------------------------------------------------------------------
// Check Safe Settings
//------------------------------------------------------------------------------
// Check Self Safe. Set to []; for none.
// 01=Potion. 02=Poison. 04=Amplify Damage. 08=Weaken. 10=Iron Maiden. 20=Decrepify. 40=Lower Resist. 80=Blood Mana.
// Use this format: ['01','02'] etc. Add as many or as few as you want.
NTConfig_CheckSelfSafe = [];
// Check Merc's Safe. Set to []; for none.
// 01=Death, 02=Poison, 04=Amplify Damage, 08=Weaken, 10=Iron Maiden, 20=Decrepify, 40=Lower Resist
// Use this format: ['01','02'] etc. Add as many or as few as you want.
NTConfig_CheckMercSafe = [];
//------------------------------------------------------------------------------
// Class Specific Settings
//------------------------------------------------------------------------------
NTConfig_OnlySmiteStationary = false; // Use Attackskill 3 on bosses which can be knocked back. Fixes potential bugs.

NTConfig_UseRedemptionHP = 80;						// Use Redemption if under this % health. (Set 0 to disable.)
NTConfig_UseRedemptionMP = 60;						// Use Redemption if under this % mana. (Set 0 to disable.)

}

</code>

cprog Topics

Scope

Identification and definition of the chosen keyword.

If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:

/*
 * Sample code block
 */
#include <stdio.h>
 
int main()
{
    return(0);
}

Compiler

program or interface which translates code into a machine language. Usually outputting an executable program such as we use via putty terminal.

Source Code

listing of commands, in a text based language, that are more user friendly than machine language, to be compiled or assembled into an executable computer program.

Object Code

Identification and definition of the chosen keyword. Substitute “keyword” with the actual keyword.

If you want to demonstrate something on the command-line, you can do so as follows:

lab46:~$ cd src
lab46:~/src$ gcc -o hello hello.c
lab46:~/src$ ./hello
Hello, World!
lab46:~/src$ 

Binary Code

A form of code using 0's and 1's. More commonly associated with low level programming such as machine language, that most programmers don't work with but a library of language a compiler may use.

Flags

In programming, a flag is a predefined bit or bit sequence that holds a binary value. Typically, a program uses a flag to remember something or to leave a sign for another program.

For example, in a message being exchanged by two programs, a three-bit flag's field or data area might be set to one of three configurations:

001 (meaning “I'm a self-contained message”)

011 (meaning “I'm one of several chunks of data in this message”)

111 (meaning “I'm the last chunk of data in this message”)

Preprocessor

Separate program invoked by the compiler as the first part of translation.

The preprocessor handles directives for source file inclusion (#include), macro definitions (#define), and conditional inclusion (#if).

#include <stdio.h>
 
int main(void)
{
    printf("Hello, world!\n");
    return 0;
}

The preprocessor replaces the line #include <stdio.h> with the system header file of that name, which declares the printf()

assembler

An assembler is a program that takes basic computer instructions and converts them into a pattern of bits that the computer's processor can use to perform its basic operations. Some people call these instructions assembler language and others use the term assembly language.

Linker

a computer program that takes one or more objects generated by a compiler and combines them into a single executable program

Pointers

they “point” to locations in memory. In the computer, pointers are just variables that store memory addresses, usually the addresses of other variables. <codec> <variable_type> *<name>; one pointer, one regular int int *pointer1, nonpointer1; two pointers int *pointer1, *pointer2; </code>

Typedef

The purpose of typedef is to assign alternative names to existing types

typedef struct var newtype;
newtype a;

Typedefs can also simplify declarations for pointer types.

enum

An enumeration consists of a set of named integer constants. An enumeration type declaration gives the name of the (optional) enumeration tag and defines the set of named integer identifiers (called the “enumeration set,” “enumerator constants,” “enumerators,” or “members”). A variable with enumeration type stores one of the values of the enumeration set defined by that type.

Variables of enum type can be used in indexing expressions and as operands of all arithmetic and relational operators. Enumerations provide an alternative to the #define preprocessor directive with the advantages that the values can be generated for you and obey normal scoping rules.

<codec> enum DAY /* Defines an enumeration type */ {

  saturday,       /* Names day and declares a       */
  sunday = 0,     /* variable named workday with    */ 
  monday,         /* that type                      */
  tuesday,
  wednesday,      /* wednesday is associated with 3 */
  thursday,
  friday

} workday; </code>

cprog Objective

Objective

understand the difference between procedural and object-oriented languages

Method

To understand the difference between the two, it would probably be easiest to have someone create a program that best depicts both types of writing.

Measurement

Object Orientation Languages (OOL) is concerned to develop an application based on real time while

Procedural Programing Languages (PPL) are more concerned with the processing of procedures and functions.

OOL concepts includes Inheritance, Encapsulation and Data Abstraction, Late Binding, Polymorphism, Multithreading, and Message Passing while PPL is simply a programming in a traditional way of calling functions and returning values.

Analysis

Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.

Experiments

Experiment 1

Question

Can I put Ubuntu on a HP touchpad. (not the easy way with meta-doctor)

Resources

http://www.webos-internals.org/wiki/Preware

http://forums.precentral.net/canuck-coding/274461-webos-quick-install-v4-3-1-a.html

http://www.infogenra.com/how-to-install-ubuntu-linux-on-your-hp-touchpad.html

http://www.webos-internals.org/wiki/UbuntuChroot#Instructions

Hypothesis

Well considering the bit of knowledge I had with command line, and the fact that it has already been done, I was pretty confident in getting it done.

State your rationale. If it has been done it can be done, if it hasn't been done there is a way to do it.

Experiment

Well I so happen to come across one for arround $100.00, so it gives the the perfect opportunity to have fun and play with a new toy testing its limits to what it can do.

Data

connect with novaterm (not via quicklaunch as you can't see dialogs)

First determine how much actual space is being used by /media/internal (not whats allocated to it)

df -h | grep internal

Remember this as you will need to keep that in mind when you resize Disconnect cryptofs:

pkill -SIGUSR1 cryptofs

Unmount /media/internal:

umount /media/internal

verify you have a clean filesystem *before* you resize it:

/usr/sbin/fsck.vfat /dev/mapper/store-media

Then verify how much space /media/internal is using

lvscan | grep media

For a 16GB TP you should only reduce the size by 4GB and for a 32GB TP you can safely reduce by 8GB So this means if the size is 23GB on a 32GB TP your final space that you would resize to is ie: 23GB-8GB=15GB

<code>resizefat /dev/mapper/store-media {size you determined it to be}G - I picked 4G to leave about 9G for my Ubuntu. Decide for yourself. This operation will delete your data if you make it too small.

lvresize -L 4G /dev/mapper/store-media

now, remount /media/internal and /media/cryptofs. I decided to just reboot but you could do the remount/reboot later. rwhitby advises pkill -SIGUSR2 cryptofs here.

lvcreate -l 100%FREE -n ext3fs store

mkfs.ext3 /dev/mapper/store-ext3fs

mount -o remount,rw /

echo “/dev/mapper/store-ext3fs /media/ext3fs auto noatime 0 0” » /etc/fstab

check to make sure nothing already exists under mount point: ls -l /media/ext3fs

If above shows files/dirs under /media/ext3fs, you will need to copy it and then move it back after mounting:

cd /media/ext3fs; tar -cf /tmp/ext3fs-files.tar .

and then rm -rf /media/ext3fs

mkdir /media/ext3fs

mount -o remount,ro /

mount -a or reboot

If files existed under /media/ext3fs before mounting, recreate them with:

cd /media/ext3fs ; tar xvf /tmp/ext3fs-files.tar ; rm /tmp/ext3fs-files.tar

Analysis

Based on the data collected:

Conclusions

What can you ascertain based on the experiment performed and data collected? Well it WILL work, and I refuse to give up, but now I have a reason to do more research as into what I need to understand and as to what will fix it. Roughly where I stand on it is, the main fat32 part was shrunk too small, alot of the commands were stored on this, thus not giving access for some reason to them. The USB drivers are also stored on this part, and WEBOS doctor needs a large enough space to write to, so that it can put a fresh install on it. My problem I ran into was before i ran webos doctor i was able to use alot of the commands for re-sizing etc. After it was ran it forced almost all of the directories on the devices drive to go write only, and alot of the volume commands are not being found due to directories being mixed up. Worse comes to worse it eats alot of time and i figure it out, or maybe attempt to put the Alpha of cyanogen 7 mod for android os, which i am alot more familiar with.

Experiment 2

Question

What happens when a “int” is multiplied by a “float” and the output is “float”.

Resources

With what I have gathered and from some of the small projects I have yet to submit I have gathered enough to be able to write and perform this on my own.

Hypothesis

Based on what I have seen when playing with the two var types I either expect it to return the answer that it should be, or the answer will be effected by the fact the two vars are of not the same type.

State your rationale. 1.5 x 2 = 3 1 x 3 = 3 this case 1.5 = float 2 = int and 3 = float or int, so it should work in that it has the ability to output a decimal number still.

Experiment

Going to set up a scenario as follows:

#include <stdio.h> float mult ( int x, int y ); main() {

float x;
int y;
printf( "Please input two numbers to be multiplied: " );
scanf( "%f", &x );
scanf( "%d", &y );
printf( "The product of your two numbers is %f\n", mult( x, y ) );
getchar(); 

} float mult (float x, int y) {

return x * y;

}

I keep having trouble when placing the code statements before and after this small section, and I can't quite see what is doing it, but experiment one is tied into this one when I do it. I don't think I have a unclosed code tag above?

Data

Well nothing of what I had expected happened.

Analysis

Based on the data collected: I had got an error of conflicting types for 'mult', and previous declaration of 'mult' was here.

Conclusions

Learning new languages can be annoying when trying to overcome the way we have already been wired to learn.

Retest

If you're doing an experiment instead of a retest, delete this section.

If you've opted to test the experiment of someone else, delete the experiment section and steps above; perform the following steps:

State Experiment

Whose existing experiment are you going to retest? Prove the URL, note the author, and restate their question.

Resources

Evaluate their resources and commentary. Answer the following questions:

Hypothesis

State their experiment's hypothesis. Answer the following questions:

Experiment

Follow the steps given to recreate the original experiment. Answer the following questions:

Data

Publish the data you have gained from your performing of the experiment here.

Analysis

Answer the following:

Conclusions

Answer the following: