Table of Contents

Joshua Daivs's Fall of 2011 Opus

OPTIONAL SUBTITLE

Introduction

My name is Josh Davis, been around for almost 26 years. I have always had a hobby in computers, and due to conflict of interests from my last employer(Kennedy Valve) I decided going back to school was one of my smartest options. I Went to school in 2005-2006, and had no real idea of what it was that I was interested in really learning. Luckily through working enough factory jobs, I decided to pursue something in relation to what has always been a hobby. So with that in mind the classes I am taking partially some self interest and the other part requirements for the degree I wish to have. My plans after CCC is a little rough at the moment, but with interests with building computers and working on them, networking, and computer languages. My hopes are that with the classes I am taking, I will get a good general idea as to what it is and where it is that I wanna end up at in life, and the path I will be taking to get there.

A Web page with more details such as, email, resume, about me, and objectives can be found at: http://lab46.corning-cc.edu/~jdavis34/aboutme.html

Part 1

Entries

September 21, 2011

I was a bit unsure of a few things that we were doing, so this is a bit late. With the emails that we have received via alpine I am a bit more clear where we stand. So I am a quite late on actually getting to the first of my dated Opus entries, though I enjoy more being inside the “lair” or email, its probably a good thing I begin this documentation part of the class.

I picked up a few good things I am sure I will be making use of throughout this semester,

  1. Creating files within the directory I plan to use them Via Nano.
  2. compile them with gcc:
  gcc -o programname sourcecode.c 
- Then run them:
  ./programname 
  
  Where sourcecode.c = the actual file created with Nano
  
  programname = the name of the program created when the file is compiled.
  

Lastly to finish this entry, I am not quite sure if there is a data base for where we are suppose to be getting Keywords from or if they are just picked up as we go.

I plan to begin working on making a Number conversion from Decimal to Hex for one of my beginning projects.

September 23, 2011

So I spent a good amount of time last night, because once again awesome folks at xda have a bit on dx2, working on flashing different roms to my phone. Though I wound up restoring the Nand back-up I had to make there was a few decent roms which show a promising future.

-moto blur taken out

-bloatware removed

-Root access (not the roms doing)

The bootstrap for this phone (Droid x2) has yet to be as solid as the other ones.

-can only gain access to it via running it through the apk on the phone. -It is wiped with data if on the ROM install.

  1. Not a issue because most ROMs flashed to the device have it built in. But if for any reason you get errors or soft brick it, not as easy as previous versions to deal with.
  2. Semi-periminant down sides are of those above.

The Rom I played with, though I did not spend too much time with it was that of eclipse .6 remix. The problem I did not like is you have to currently wipe data when installing so contacts and all are a pain process to port back onto the phone. The Facebook contacts sync isn't active, but should be released in .7. There is a face book app I read about to help sync it but just not as solid of a built ROM, hoping cyanogen will have his work released soon for the Droid x2.

September 27, 2011

Today I spent a few hours reading into some beginner tutorials on C/C++. Made a few stupid programs that do pretty much nothing, but helped me start to get a better understanding of how things work, and how to write a little.

Made one with a age input, favorite day input and plan to do a few more once I am done with this if I have time later after I get other homework done. All in all slightly accomplishing day considering was one of the very few people who successfully got our windows 7 unattend.xml to properly work.

September 30, 2011

Well today I was kinda excited after class because I picked up a HP touch pad. I spent most of my night distracted by it, creating a partition for ubuntu and getting it installed. Unfortunetly my work with it was cut short with a call from family, our grandmother on moms side just passed, exactly 3 months from the passing from our mom. As most of you can guess alot of my time has been with family and trying to keep positive about all of this.

Topics

Variables

Are allocated blocks of storage in memory that we can associate with a name, such as “pirce”, “age”, “year”, etc.

Name Type Range

int Numeric - Integer -32 768 to 32 767

short Numeric - Integer -32 768 to 32 767

long Numeric - Integer -2 147 483 648 to 2 147 483 647

float Numeric - Real 1.2 X 10-38 to 3.4 X 1038

double Numeric - Real 2.2 X 10-308 to 1.8 X 10308

char Character All ASCII characters

Examples of variables can be but not limited to:

int x %d
short x %d
long x %d
char x %c
float x %f
double x %lf

Sizeof

The sizeof operator gets the size of its operand.

This initializes X to the size of c, resulting in a integer of the type size_t:

size_t X = sizeof(c);

Standard I/O (STDIO, STDOUT, STDERR)

The preferred method of performing input and out. The three I/O connections are called standard input (stdin), standard output (stdout) and standard error (stderr). -Standard input is data (often text) going into a program. -Standard output is the stream where a program writes its output data. -Standard error is another output stream typically used by programs to output error messages or diagnostics.

#include <stdio.h>
printf()
scanf()

Header file

A header file is a file containing C declarations and macro definitions to be shared between several source files. You request the use of a header file in your program by including it, with the C preprocessing directive `#include'.

example:

#include header.h
#include <stdio.h>
#include <math.h>

arithmetic (equations, operators)

Binary arithmetic operators are +, -, *, /, and %.

         int a = 25;
         int b = 5;
         int c;
 
         c = a + b;
         printf( "a + b = %dn", c );
 
         c = a - b;
         printf( "a - b = %dn", c );
 
 
         printf( "a * b = %dn", a * b );
 
         c = a / b;
         printf( "a / b = %dn", c );
 
         c = 100 % 3;
         printf( "a % b = %dn", c );

logic and operators

and && groups left to right, returns 1 on unequal comparison, and 0 anything else. or || groups left to right, returns 1 if if either of its operands compare unequal to zero, and 0 otherwise.

“String”

In computing, a C string is a character sequence terminated with a null character

In the following, the string literal “hello world” is printed.

/*
 * Sample code block
 */
#include <stdio.h>
 
int main()
{
 
printf("hello world");
}

Repetition/Iteration Structures For

The variable initialization allows you to either declare a variable and give it a value or give a value to an already existing variable. Second, the condition tells the program that while the conditional expression is true the loop should continue to repeat itself.

FOR - for loops are the most useful type. The syntax for a for loop is

for ( variable initialization; condition; variable update ) {
  Code to execute while the condition is true
}

Repetition/Iteration Structures While

while loop is like a stripped-down version of a for loop– it has no initialization or update section. However, an empty condition is not legal for a while loop as it is with a for loop.

while ( condition ) { Code to execute while the condition is true }

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

Arrays

allow the programmer to store more than one value in a variable. An array is the equivalent of a box divided into partitions, each containing a piece of data. so this means an array is- An array is a series of elements of the same type placed in memory locations that can be individually referenced by adding an index to a identifier.

type name [elements];

int array [5] = { 0, 1, 2, 3, 4 };

this initializes the array to 5 place holders

accessing array elements

array[0]; //value of '0'
array[1]; //value of '1'
array[2]; //value of '2' 

Trying to access a value outside the bounds of index 1 through size_of_array – 1, results in runtime errors. Your compiler will not complain, but your program will crash when it executes.

Multi-dimensional arrays

multi-dimensional arrays are arrays of arrays.

#define WIDTH 2
#define HEIGHT 5
 
int multiarray [HEIGHT][WIDTH];
int n,m;

this initializes the multi-dimensional array to 2 dimensions of a 5 element array

File Access (Read, Write, Append)

To open a file you need to use the fopen function, which returns a FILE pointer. Once you've opened a file, you can use the FILE pointer to let the compiler perform input and output functions on the file.

you first need a pointer such as

FILE *fp;

You then need to use this pointer and point to the file and what you intend to do with it

 FILE *fp;
fp=fopen("c:\\test.txt", "r");

r - open for reading

w - open for writing (file need not exist)

a - open for appending (file need not exist)

Objectives

demonstrate structured and object-oriented problem solving concepts

By the end of this semester show the ability to demonstrate the use of logic and structure in program writing.

Method

The method of this could be variously described, but a easy effective means would be to ask a student to create a set of instructions that:

1. creates a program

2. Initializes the program

3. contains a logical sense to obtain a desired result, IE: if someone wanted to multiply 2 numbers and get a result.

Measurement

To asses how a students effectiveness was in creating this first:

1. Does the program compile without errors.

2. Does the program ask for input for the 2 variables to be multiplied.

3. Does the program give the correct desired answer for this function it is to serve.

4. Lastly the code in which it is written, was it initialized properly, does it only prompt the user for one occurring event, Does it ask the user to input a variable to end, does it continuously loop and not close itself without the user having to exit the program, there is a large list in structuring the means to a achieved goal and many ways to reach it, but in the end was it the most efficient.

Analysis

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

  • How did you do? So far have created a few usable logical programs, simple but usable.
  • Room for improvement? ALOT
  • Could the measurement process be enhanced to be more effective?
  • Do you think this enhancement would be efficient to employ?
  • Could the course objective be altered to be more applicable? How would you alter it?

Experiments

Experiment 2

Question

What is the use of \n and to what effect does it have if in a simple program designed to print “hello world” if:

1. it exists.

2. it does not.

Resources

created a simple program that says “hello world”

1.

#include <stdio.h>
 
void main()
{
  if(printf("Hello World\n"))
}

2.

#include <stdio.h>
 
void main()
{
  if(printf("Hello World"))
}

Hypothesis

Based on what I know the function of /n is, to tell the program next line, I think it either will not compile, or it will not display “hello world” on its own line creating a new line after execution. State your rationale.

Experiment

As listed in resources I created 2 programs to test one with one without, and plan to run both and record the results.

Data

1.

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

2.

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

Analysis

Based on the data collected:

  • was your hypothesis correct? Yes and no, I was not sure if it would compile and it did, but as I suspected if it did, it would print the text without breaking to a new line.
  • was your hypothesis not applicable? yes
  • is there more going on than you originally thought? Not really due to this test was kinda simple, in understanding context of code and its importance to output.

Conclusions

Based on the data collected, It is obvious the use, and results of having /n in program syntax, where as if it does not exist what will happen.

Experiment 3

Question

What is the question you'd like to pose for experimentation? State it here.

Resources

Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.

Hypothesis

Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.

State your rationale.

Experiment

How are you going to test your hypothesis? What is the structure of your experiment?

Data

Perform your experiment, and collect/document the results here.

Analysis

Based on the data collected:

  • was your hypothesis correct?
  • was your hypothesis not applicable?
  • is there more going on than you originally thought? (shortcomings in hypothesis)
  • what shortcomings might there be in your experiment?
  • what shortcomings might there be in your data?

Conclusions

What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.

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:

  • What action or concept of significance, as related to the course, did you experience on this date? Well it was quite of bit of errors I ran into, luckily Matt was on to help me with, such as getchar() placement, my while loop and particular syntax errors such as wrongly placed “;” and few other minor things.
  • Why was this significant? In understanding how to make it work as intended yes, and also for a bit of a hands on learning that reading just doesn't seem to give.
  • What concepts are you dealing with that may not make perfect sense? Just the use of syntax where it belongs and how to properly use it.
  • What challenges are you facing with respect to the course? Time

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.

  • How did you do? Still somewhat confused on what exactly both entail, I guess picking this for my objective made me more curious to understand both of them a little better.
  • Room for improvement? ALOT for me in the terms of using both and knowing when and why i would want to.
  • Could the measurement process be enhanced to be more effective?
  • Do you think this enhancement would be efficient to employ?
  • Could the course objective be altered to be more applicable? How would you alter it?

Experiments

Experiment 1

Question

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

Resources

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:

  • was your hypothesis correct? Yes and no. I got it on and I made the drive for it to exist on ext3fs partition. But for some reason when booting into Ubuntu, there was a missing directory or something. So in my attempts to figure this out I began playing with directories, which I probably shouldn't have considering the lack of sleep I had and amount of time I had already put into it.
  • was your hypothesis not applicable? It was, and I did get to to boot, but there were some shortcomings I didn't expect nor know how to fix.
  • is there more going on than you originally thought? (shortcomings in hypothesis) WAY WAY more than I had expected, and when all was said and done, not even support could reverse or explain what was done.
  • what shortcomings might there be in your experiment? Lack of documentation as to what and what was all being done in the few write ups I found detailing how to do it.
  • what shortcomings might there be in your data? Details onto the commands in some cases, the sizes in some examples, and the full amount of comfort working with a UNIX based command-line environment and 100% full understanding of exactly everything i was doing per command used.

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.

  • was your hypothesis correct? No, I guess I have to get to understand variables more than I had thought.
  • was your hypothesis not applicable? It would not even compile.
  • is there more going on than you originally thought? Yes and no, I thought since it made logical sense 1.5×2 is 3 that it would be able to execute.

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:

  • Do you feel the given resources are adequate in providing sufficient background information?
  • Are there additional resources you've found that you can add to the resources list?
  • Does the original experimenter appear to have obtained a necessary fundamental understanding of the concepts leading up to their stated experiment?
  • If you find a deviation in opinion, state why you think this might exist.

Hypothesis

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

  • Do you feel their hypothesis is adequate in capturing the essence of what they're trying to discover?
  • What improvements could you make to their hypothesis, if any?

Experiment

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

  • Are the instructions correct in successfully achieving the results?
  • Is there room for improvement in the experiment instructions/description? What suggestions would you make?
  • Would you make any alterations to the structure of the experiment to yield better results? What, and why?

Data

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

Analysis

Answer the following:

  • Does the data seem in-line with the published data from the original author?
  • Can you explain any deviations?
  • How about any sources of error?
  • Is the stated hypothesis adequate?

Conclusions

Answer the following:

  • What conclusions can you make based on performing the experiment?
  • Do you feel the experiment was adequate in obtaining a further understanding of a concept?
  • Does the original author appear to have gotten some value out of performing the experiment?
  • Any suggestions or observations that could improve this particular process (in general, or specifically you, or specifically for the original author).

Part 3

Entries

Month Day, Year

This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.

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

  • What action or concept of significance, as related to the course, did you experience on this date?
  • Why was this significant?
  • What concepts are you dealing with that may not make perfect sense?
  • What challenges are you facing with respect to the course?

Remember that 4 is just the minimum number of entries. Feel free to have more.

Month Day, Year

This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.

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

  • What action or concept of significance, as related to the course, did you experience on this date?
  • Why was this significant?
  • What concepts are you dealing with that may not make perfect sense?
  • What challenges are you facing with respect to the course?

Remember that 4 is just the minimum number of entries. Feel free to have more.

Month Day, Year

This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.

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

  • What action or concept of significance, as related to the course, did you experience on this date?
  • Why was this significant?
  • What concepts are you dealing with that may not make perfect sense?
  • What challenges are you facing with respect to the course?

Remember that 4 is just the minimum number of entries. Feel free to have more.

Month Day, Year

This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.

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

  • What action or concept of significance, as related to the course, did you experience on this date?
  • Why was this significant?
  • What concepts are you dealing with that may not make perfect sense?
  • What challenges are you facing with respect to the course?

Remember that 4 is just the minimum number of entries. Feel free to have more.

cprog Topics

Keyword 1

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);
}

Keyword 2

Identification and definition of the chosen 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$ 

Keyword 3

Identification and definition of the chosen keyword. Substitute “keyword” with the actual 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);
}

Keyword 4

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$ 

Keyword 5

Identification and definition of the chosen keyword. Substitute “keyword” with the actual 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);
}

Keyword 6

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$ 

Keyword 7

Identification and definition of the chosen keyword. Substitute “keyword” with the actual 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);
}

Keyword 8

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$ 

Keyword 9

Identification and definition of the chosen keyword. Substitute “keyword” with the actual 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);
}

Keyword 10

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$ 

Keyword 11

Identification and definition of the chosen keyword. Substitute “keyword” with the actual 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);
}

Keyword 12

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$ 

cprog Objective

Objective

State the course objective; define what that objective entails.

Method

State the method you will use for measuring successful academic/intellectual achievement of this objective.

Measurement

Follow your method and obtain a measurement. Document the results here.

Analysis

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

  • How did you do?
  • Room for improvement?
  • Could the measurement process be enhanced to be more effective?
  • Do you think this enhancement would be efficient to employ?
  • Could the course objective be altered to be more applicable? How would you alter it?

Experiments

Experiment 1

Question

What is the question you'd like to pose for experimentation? State it here.

Resources

Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.

Hypothesis

Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.

State your rationale.

Experiment

How are you going to test your hypothesis? What is the structure of your experiment?

Data

Perform your experiment, and collect/document the results here.

Analysis

Based on the data collected:

  • was your hypothesis correct?
  • was your hypothesis not applicable?
  • is there more going on than you originally thought? (shortcomings in hypothesis)
  • what shortcomings might there be in your experiment?
  • what shortcomings might there be in your data?

Conclusions

What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.

Experiment 2

Question

What is the question you'd like to pose for experimentation? State it here.

Resources

Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.

Hypothesis

Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.

State your rationale.

Experiment

How are you going to test your hypothesis? What is the structure of your experiment?

Data

Perform your experiment, and collect/document the results here.

Analysis

Based on the data collected:

  • was your hypothesis correct?
  • was your hypothesis not applicable?
  • is there more going on than you originally thought? (shortcomings in hypothesis)
  • what shortcomings might there be in your experiment?
  • what shortcomings might there be in your data?

Conclusions

What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.

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:

  • Do you feel the given resources are adequate in providing sufficient background information?
  • Are there additional resources you've found that you can add to the resources list?
  • Does the original experimenter appear to have obtained a necessary fundamental understanding of the concepts leading up to their stated experiment?
  • If you find a deviation in opinion, state why you think this might exist.

Hypothesis

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

  • Do you feel their hypothesis is adequate in capturing the essence of what they're trying to discover?
  • What improvements could you make to their hypothesis, if any?

Experiment

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

  • Are the instructions correct in successfully achieving the results?
  • Is there room for improvement in the experiment instructions/description? What suggestions would you make?
  • Would you make any alterations to the structure of the experiment to yield better results? What, and why?

Data

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

Analysis

Answer the following:

  • Does the data seem in-line with the published data from the original author?
  • Can you explain any deviations?
  • How about any sources of error?
  • Is the stated hypothesis adequate?

Conclusions

Answer the following:

  • What conclusions can you make based on performing the experiment?
  • Do you feel the experiment was adequate in obtaining a further understanding of a concept?
  • Does the original author appear to have gotten some value out of performing the experiment?
  • Any suggestions or observations that could improve this particular process (in general, or specifically you, or specifically for the original author).