As you all know, ninja needs you to run the game at 1024x768 windowed full with low graphics settings so that it can read the pixels proper. It also changes some other options.... When I play manually, i have all graphics settings maxed out and way diff controls... i got tired of changing the options every time i want to play or want to bot... so i made 2 system.cfg files.. one good, one for ninja.. and then swapped them in and out.... then i got tired of that too... so i wrote a program in c++ that does it for me.
What you need to do:
1. Go in game and set your options how you like them.
2. Exit game and copy ...\NCSoft\Aion\system.cfg to any folder and call it "Good".
3. Go back in game and set all the ninja options. (easiest way is probly just using the autosetup feature of ninja) and then exit game.
4. Copy the same file again to a folder called "Ninja"
5. add the paths of each of those files to the top section of the following code:
//libraries
#include <iostream>
#include <string>
#include <conio.h>
#include <windows.h>
#include <fstream>
//namespaces
using namespace std;
//prototypes
void swap(string, string); //copys the files
void flush(void); //flush kb buffer
int main(void)
{
//vars
string strGood="REPLACE THIS TEXT WITH THE FILEPATH TO YOUR GOOD FILE"; //be sure to use a double \\ for the slashes or c++ will hate you
string strNinja="REPLACE THIS TEXT WITH THE FILEPATH TO YOUR NINJA FILE"; //be sure to use a double \\ for the slashes or c++ will hate you
char chrUserInput=0; //holds user input
bool bDone=false; //exit flag
do
{
cout << "Chose a mode:\n1)Ninja\n2)Good\n'q' to quit\n>"; //prompt for user input
flush(); //flush kb buffer
chrUserInput=getch(); //store input in a var
if (chrUserInput!='1' && chrUserInput!='2')
{
tolower(chrUserInput); //converts user input to lower case
}
switch (chrUserInput)
{
case '1':
swap("ninja",strNinja); //swap in ninja cfg
break;
case '2':
swap("good",strGood); //swap in good cfg
break;
case 'q':
bDone++; //raise exit flag
break;
default:
cout << "\n\nINVALID SELECTION!"; //advise user they're a moron
}
} while(!bDone);
return 0;
}
void swap(string strNinjaGood, string strSourcePath)
{
//vars
bool bBadInput=false;
char chrUserInput='\0';
system("cls"); //clear screen
do
{
bBadInput=false; //reset bad input flag
cout << "Are you using a 64bit OS(y\\n)\n> "; //prompt user for 64/32 bit
flush(); //flush kb buffer
chrUserInput=getch(); //store user input in var
tolower(chrUserInput); //converts user input to lower case
if (chrUserInput!='n' && chrUserInput!='y')
{
bBadInput++; //raises bad input flag
cout << "\n\nINVALID INPUT!\n\n"; //flog user
}
} while (bBadInput==true);
if (chrUserInput=='y') //64 bit path
{
ifstream f1(strSourcePath.c_str(), fstream::binary);
ofstream f2("C:\\Program Files (x86)\\NCSoft\\Aion\\system.cfg", fstream::trunc|fstream::binary);
f2 << f1.rdbuf();
}
else //32 bit path
{
ifstream f1(strSourcePath.c_str(), fstream::binary);
ofstream f2("C:\\Program Files\\NCSoft\\Aion\\system.cfg", fstream::trunc|fstream::binary);
f2 << f1.rdbuf();
}
system("cls"); //clear screen
cout << "Success!\n\n"; //give user a cookie
}
void flush(void)
{
::FlushConsoleInputBuffer(::GetStdHandle(STD_INPUT_HANDLE));
}
5. Compile and Enjoy! Now it's a one click jobby
6. If you want a compiled version, pm me and I'll email it. I just didn't want to post an exe on the site :P
edit: i have better formatting then that, this forum killed all my indentation... and double spaced it for some reason... :P