HMK
Welcome to Rush Games! Make sure to register for tips on hacking NFM 1 or 2 and guides to being a good waster or racer on NFMM!
ChatBox
Search
 
 

Display results as :
 


Rechercher Advanced Search

Latest topics
» DONT DELETE
Wed Oct 24, 2012 1:14 pm by desu senpai

» Changing flame color in NFM 2
Tue Oct 23, 2012 12:09 am by desu senpai

» NFM 2 Blue J Java Hacks!
Mon Oct 01, 2012 8:22 pm by masheenmaster

» The Ultimate JAVA NFM Hacking Tutorial/Guide
Sat Sep 29, 2012 4:52 pm by masheenmaster

» The Ultimate Non-Java NFM Hacking Tutorial/Guide
Thu Sep 27, 2012 8:22 pm by masheenmaster

» how to hack nfm 2 with blue j!
Wed Sep 26, 2012 9:41 pm by HMK

Who is online?
In total there is 1 user online :: 0 Registered, 0 Hidden and 1 Guest

None

Most users ever online was 23 on Sun Dec 15, 2013 9:36 pm

The Ultimate JAVA NFM Hacking Tutorial/Guide

View previous topic View next topic Go down

The Ultimate JAVA NFM Hacking Tutorial/Guide

Post by desu senpai on Sat Sep 29, 2012 11:03 am

U WILL NEED:

  • 7-Zip [Only admins are allowed to see this link]
  • Java JDK [Only admins are allowed to see this link]
  • BlueJ [Only admins are allowed to see this link]
  • NFM 2 [Only admins are allowed to see this link]
  • FIXED NFM 2 CLASSES [Only admins are allowed to see this link]
    ^^^^^^^^^^^ INSTALL IN THIS ORDER


NOTE: I recommend installing NFM 2 in your My documents or somewhere else easily accessible. Windows will say it didn't install right, but it did.

Okay. Now that that stuff is all installed, Open up BlueJ

  • Click on "Project" in the top left corner. Then select "New Project". The it will ask you where the project folder should be. I recommend right along side your NFM 2 folder.
  • Now go to your Fixed NFM 2 classes and select them all. Copy them, and paste them in your BlueJ project folder.

    DONE

OK, now for the HAXS

Open BlueJ

You should see a whole bunch of boxes with names like "Madness" and "xtGraphics". That's good because that means we can hack now Smile

Just do a simple hack for now: Mod stats

First, go to Madness. Then search for "medium m;" (without quotes). Scroll down alittle bit now, and you should see a whole bunch of code.
That code represents a car, in respective order The first line of code under "acelf" is for Tornado Shark and the last line is for DR Monstaa.
Lets hack "swits" or Top Speed. Do you see the first line of numbers under swits? Change it to 5, 750, 1000.
Swits and Acelf function as a gearbox. In Swits, the first number the slowest, and the last number the fastest.
Acelf has the large number first and the small number at the end.

Here is a guide for hacking stats by RADICAL RACER <<<< KREDS

Spoiler:
aclf= acceleration (there are 3 values, the car goes from fast to slow to slow)

float acelf[][] = {
{
11F, 5F, 3F
}, {
14F, 7F, 5F
}, {
10F, 5F, 3.5F
}, {
11F, 6F, 3.5F
}, {
10F, 5F, 3.5F
}, {
12F, 6F, 3F
}, {
7F, 9F, 4F
}, {
11F, 5F, 3F
}, {
12F, 7F, 4F
}, {
12F, 7F, 3.5F
}, {
11.5F, 6.5F, 3.5F
}, {
9F, 5F, 3F
}, {
13F, 7F, 4.5F
}, {
7.5F, 3.5F, 3F
}, {
11F, 7.5F, 4F
}, {
12F, 6F, 3.5F
}
};


swits = Top Speed (there are again three values, think of it as a gear box the car gets faster and faster)

int swits[][] = {
{
50, 180, 280
}, {
100, 200, 310
}, {
60, 180, 275
}, {
70, 190, 295
}, {
70, 170, 275
}, {
60, 200, 290
}, {
60, 170, 280
}, {
60, 180, 280
}, {
90, 210, 295
}, {
90, 190, 276
}, {
70, 200, 295
}, {
50, 160, 270
}, {
90, 200, 305
}, {
50, 130, 210
}, {
80, 200, 300
}, {
70, 210, 290
}


handb= (the hand break)
int handb[] = {
7, 10, 7, 15, 12, 8, 9, 10, 5, 7,
8, 10, 8, 12, 7, 7
};



airs = (how fast the car rotates while in the air)

float airs[] = {
1.0F, 1.2F, 0.95F, 1.0F, 2.2F, 1.0F, 0.9F, 0.8F, 1.0F, 0.9F,
1.15F, 0.8F, 1.0F, 0.3F, 1.3F, 1.0F
};


airc = (how high or low the car will go while doing stunts)

int airc[] = {
70, 30, 40, 40, 30, 50, 40, 90, 40, 50,
75, 10, 50, 0, 100, 60
};


turn= ( the speed the car turns at)

int turn[] = {
6, 9, 5, 7, 8, 7, 5, 5, 9, 7,
7, 4, 6, 5, 7, 6
};


grip=( the ability you have to control the car, Example = Drifter X has low grip and is hard to control NOTE: this can effect the stat bar)

float grip[] = {
20F, 27F, 18F, 22F, 19F, 20F, 25F, 20F, 16F, 24F,
22.5F, 25F, 30F, 27F, 25F, 27F
};


bounce =( when the car hits the ground how high it jumps)

float bounce[] = {
1.2F, 1.05F, 1.3F, 1.15F, 1.3F, 1.2F, 1.15F, 1.1F, 1.2F, 1.1F,
1.15F, 0.8F, 1.05F, 0.8F, 1.1F, 1.15F
};


sigmag= (the damage the car takes toward track pieces)

float simag[] = {
0.9F, 0.85F, 1.05F, 0.9F, 0.85F, 0.9F, 1.05F, 0.9F, 1.0F, 1.05F,
0.9F, 1.1F, 0.9F, 1.3F, 0.9F, 1.28F
};


moment =( this is the cars strength, it does not change the stat however you must change multiple strength physics to raise the stat)

float moment[] = {
1.2F, 0.75F, 1.4F, 1.0F, 0.85F, 1.25F, 1.4F, 1.3F, 1.2F, 1.45F,
1.375F, 2.0F, 1.2F, 3F, 1.5F, 2.6F
};


comprad =(how much damage the car takes toward other cars)

float comprad[] = {
0.5F, 0.4F, 0.8F, 0.5F, 0.3F, 0.5F, 0.5F, 0.5F, 0.5F, 0.8F,
0.5F, 1.0F, 0.5F, 0.6F, 0.5F, 1.0F
};


push =(how much the car can push with the front)

int push[] = {
2, 2, 3, 3, 2, 2, 2, 4, 2, 2,
2, 4, 2, 2, 2, 3
};


revpush =(how much the car can push with the back)


int revpush[] = {
2, 3, 2, 2, 2, 2, 2, 1, 2, 1,
2, 1, 2, 2, 2, 2
};


lift= (how the much the car lifts other cars)


int lift[] = {
0, 30, 0, 20, 0, 30, 0, 0, 20, 0,
0, 0, 10, 0, 30, 0
};


revlift =(how much the car gets lifted while impacting other cars)


int revlift[] = {
0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 32
};


powerloss =(how much power save the car has)

int powerloss[] = {
0x2625a0, 0x2625a0, 0x3567e0, 0x2625a0, 0x3d0900, 0x2625a0, 0x30d400, 0x30d400, 0x29f630, 0x53ec60,
0x29f630, 0x44aa20, 0x3567e0, 0xfed260, 0x2dc6c0, 0x53ec60
};


flipy =( the height the car is when on a bad landing)

int flipy[] = {
-50, -60, -92, -44, -60, -57, -54, -60, -77, -57,
-82, -85, -28, -100, -63, -127
};


msquash =(how much breakage impacts the top of the car)

int msquash[] = {
7, 4, 7, 2, 8, 4, 6, 4, 3, 8,
4, 10, 3, 20, 3, 8
};


clrad =( Cars with many points should have low clrad, Cars with less should have high)

int clrad[] = {
3300, 1700, 4700, 3000, 2000, 4500, 3500, 5000, 10000, 15000,
4000, 7000, 10000, 30000, 5500, 5000
};


dammult =( this is a damage multiplier)

float dammult[] = {
0.8F, 1.17F, 0.55F, 1.0F, 0.6F, 0.7F, 0.72F, 0.8F, 0.6F, 0.46F,
0.67F, 0.5F, 0.61F, 0.176F, 0.36F, 0.46F
};


maxmag =(how much damage the car can take before being wasted)

int maxmag[] = {
6000, 4200, 7200, 6000, 6000, 9100, 14000, 12000, 12000, 9700,
13000, 10700, 13000, 30000, 5800, 28000
};



drag = (this stat is not to be touched and is uknown)

};
float drag[] = {
0.5F, 0.5F, 0.5F, 0.5F, 0.5F, 0.5F, 0.5F, 0.5F, 0.5F, 0.5F,
0.5F, 0.5F, 0.5F, 0.5F, 0.5F, 0.5F
};

After modding what you want modded, click compile in the top lift-hand side. Open up your BlueJ project folder and also open up your Madness.jar in 7zip. (right-click Madness.jar and click "7zip" then click "Open as archive"). MAKE SURE ALL RUNFS INSTANCES ARE CLOSED. Open up Task manager (ctrl+alt+delete), click the "Processes" tab, find any "Runfs" instances and end them.Drag the modded .class file from your project folder to your Madness.jar, If it asks you anything just continue. If it gives an error, recheck to see if any Runfs processes are open, and restart 7zip. Open up NFM and enjoy the epicness Cool

HAX GUIDE

-----------------------------------------------------

CHANGE CAR STARTING POSITIONS <<<< KREDS TO RADICAL RACER

Spoiler:
Go into xtgraphics and find this:

int xstart[] = {
0, -350, 350, 0, -350, 350, 0
};
int zstart[] = {
-760, -380, -380, 0, 380, 380, 760
};


int xstart = x axis (going left and right) Subtract to go left, and add to go right

int zstart = z axis (going up and down) Subtract to go down, Add to go up

This is what I changed mine to:

int xstart[] = {
0, -1200, -800, -400, 400, 800, 1200
};
int zstart[] = {
0, 0, 0, 0, 0, 0, 0
};

-----------------------------------------------------

ADD CAR DESCRIPTION <<<< KREDS TO RADICAL RACER AND MYSELF

Open xtGraphics and search for "byte byte0 = 0;" (without quotes) And click "Next" 2x. You should then see a peice of code that looks like

Spoiler:
rd.setFont(new Font("SansSerif", 1, 13));
ftm = rd.getFontMetrics();
byte byte0 = 0;
if(flatrstart < 6)
{
byte0 = 2;
}

Right under it put:

Spoiler:
if(names[sc[0]].equals("NAMEOFCAR"))
{
drawcs( 100, "DESCRIPTION", 176, 176, 176, 3);
}
-----------------------------------------------------

FLOATING TRACK PIECES NFM1/NFM2 <<<< KREDS TO TRAITOR JACKNIFE


Spoiler:
BACK YOUR GAME UP BEFORE YOU DO ANYTHING!

TUTORIAL FOR NFM 1

After backing up, open Gamesparker and search for: if(s1.startsWith("set))

If should look like this:

Spoiler:

if(s1.startsWith("set"))
{
int k = getint("set", s1, 0);
aconto[nob] = new ContO(aconto1[k], getint("set", s1, 1), medium.ground - aconto1[k].grat, getint("set", s1, 2), getint("set", s1, 3));
if(s1.indexOf(")p") != -1)
{
checkpoints.x[checkpoints.n] = getint("chk", s1, 1);
checkpoints.z[checkpoints.n] = getint("chk", s1, 2);
checkpoints.y[checkpoints.n] = 0;
checkpoints.typ[checkpoints.n] = 0;
if(s1.indexOf(")pt") != -1)
{
checkpoints.typ[checkpoints.n] = -1;
}
if(s1.indexOf(")pr") != -1)
{
checkpoints.typ[checkpoints.n] = -2;
}
if(s1.indexOf(")po") != -1)
{
checkpoints.typ[checkpoints.n] = -3;
}
if(s1.indexOf(")ph") != -1)
{
checkpoints.typ[checkpoints.n] = -4;
}
checkpoints.n++;
notb = nob + 1;
}
nob++;
}
if(s1.startsWith("chk"))
{
int l = getint("chk", s1, 0);
aconto[nob] = new ContO(aconto1[l], getint("chk", s1, 1), medium.ground - aconto1[l].grat, getint("chk", s1, 2), getint("chk", s1, 3));
checkpoints.x[checkpoints.n] = getint("chk", s1, 1);
checkpoints.z[checkpoints.n] = getint("chk", s1, 2);
checkpoints.y[checkpoints.n] = medium.ground - aconto1[l].grat;
if(getint("chk", s1, 3) == 0)
{
checkpoints.typ[checkpoints.n] = 1;
} else
{
checkpoints.typ[checkpoints.n] = 2;
}
checkpoints.pcs = checkpoints.n;
checkpoints.n++;
checkpoints.nsp++;
nob++;
notb = nob;
}


If that's EXACTLY what you see . . . Replace it with this code:

Spoiler:

if(s1.startsWith("set"))
{
int k = getint("set", s1, 0);
aconto[nob] = new ContO(aconto1[k], getint("set", s1, 1), getint("set", s1, 3), getint("set", s1, 2), getint("set", s1, 4));
if(s1.indexOf(")p") != -1)
{
checkpoints.x[checkpoints.n] = getint("chk", s1, 1);
checkpoints.z[checkpoints.n] = getint("chk", s1, 2);
checkpoints.y[checkpoints.n] = getint("chk", s1, 3);
checkpoints.typ[checkpoints.n] = 0;
if(s1.indexOf(")pt") != -1)
{
checkpoints.typ[checkpoints.n] = -1;
}
if(s1.indexOf(")pr") != -1)
{
checkpoints.typ[checkpoints.n] = -2;
}
if(s1.indexOf(")po") != -1)
{
checkpoints.typ[checkpoints.n] = -3;
}
if(s1.indexOf(")ph") != -1)
{
checkpoints.typ[checkpoints.n] = -4;
}
checkpoints.n++;
notb = nob + 1;
}
nob++;
}
if(s1.startsWith("chk"))
{
int l = getint("chk", s1, 0);
aconto[nob] = new ContO(aconto1[l], getint("chk", s1, 1), getint("chk", s1, 3), getint("chk", s1, 2), getint("chk", s1, 4));
checkpoints.x[checkpoints.n] = getint("chk", s1, 1);
checkpoints.z[checkpoints.n] = getint("chk", s1, 2);
checkpoints.y[checkpoints.n] = getint("chk", s1, 3);
if(getint("chk", s1, 4) == 0)
{
checkpoints.typ[checkpoints.n] = 1;
} else
{
checkpoints.typ[checkpoints.n] = 2;
}
checkpoints.pcs = checkpoints.n;
checkpoints.n++;
checkpoints.nsp++;
nob++;
notb = nob;
}

TUTORIAL FOR NFM 2

Find this:

Spoiler:

if(s1.startsWith("set"))
{
int k1 = getint("set", s1, 0);
k1 += 6;
aconto[nob] = new ContO(aconto1[k1], getint("set", s1, 1), medium.ground - aconto1[k1].grat, getint("set", s1, 2), getint("set", s1, 3));
if(s1.indexOf(")p") != -1)
{
checkpoints.x[checkpoints.n] = getint("chk", s1, 1);
checkpoints.z[checkpoints.n] = getint("chk", s1, 2);
checkpoints.y[checkpoints.n] = 0;
checkpoints.typ[checkpoints.n] = 0;
if(s1.indexOf(")pt") != -1)
checkpoints.typ[checkpoints.n] = -1;
if(s1.indexOf(")pr") != -1)
checkpoints.typ[checkpoints.n] = -2;
if(s1.indexOf(")po") != -1)
checkpoints.typ[checkpoints.n] = -3;
if(s1.indexOf(")ph") != -1)
checkpoints.typ[checkpoints.n] = -4;
if(s1.indexOf("out") != -1)
System.out.println("out: " + checkpoints.n);
checkpoints.n++;
notb = nob + 1;
}
nob++;
}
if(s1.startsWith("chk"))
{
int l1 = getint("chk", s1, 0);
l1 += 6;
aconto[nob] = new ContO(aconto1[l1], getint("chk", s1, 1), medium.ground - aconto1[l1].grat, getint("chk", s1, 2), getint("chk", s1, 3));
checkpoints.x[checkpoints.n] = getint("chk", s1, 1);
checkpoints.z[checkpoints.n] = getint("chk", s1, 2);
checkpoints.y[checkpoints.n] = medium.ground - aconto1[l1].grat;
if(getint("chk", s1, 3) == 0)
checkpoints.typ[checkpoints.n] = 1;
else
checkpoints.typ[checkpoints.n] = 2;
checkpoints.pcs = checkpoints.n;
checkpoints.n++;
aconto[nob].checkpoint = checkpoints.nsp + 1;
checkpoints.nsp++;
nob++;
notb = nob;
}

and replace with this:

Spoiler:

if(s1.startsWith("set"))
{
int k1 = getint("set", s1, 0);
k1 += 6;
aconto[nob] = new ContO(aconto1[k1], getint("set", s1, 1), getint("set", s1, 3), getint("set", s1, 2), getint("set", s1, 4));
if(s1.indexOf(")p") != -1)
{
checkpoints.x[checkpoints.n] = getint("chk", s1, 1);
checkpoints.z[checkpoints.n] = getint("chk", s1, 2);
checkpoints.y[checkpoints.n] = getint("chk", s1, 3);
checkpoints.typ[checkpoints.n] = 0;
if(s1.indexOf(")pt") != -1)
{
checkpoints.typ[checkpoints.n] = -1;
}
if(s1.indexOf(")pr") != -1)
{
checkpoints.typ[checkpoints.n] = -2;
}
if(s1.indexOf(")po") != -1)
{
checkpoints.typ[checkpoints.n] = -3;
}
if(s1.indexOf(")ph") != -1)
{
checkpoints.typ[checkpoints.n] = -4;
}
if(s1.indexOf("out") != -1)
{
System.out.println((new StringBuilder()).append("out: ").append(checkpoints.n).toString());
}
checkpoints.n++;
notb = nob + 1;
}
nob++;
}
if(s1.startsWith("chk"))
{
int l1 = getint("chk", s1, 0);
l1 += 6;
aconto[nob] = new ContO(aconto1[l1], getint("set", s1, 1), getint("set", s1, 3), getint("set", s1, 2), getint("set", s1, 4));
checkpoints.x[checkpoints.n] = getint("chk", s1, 1);
checkpoints.z[checkpoints.n] = getint("chk", s1, 2);
checkpoints.y[checkpoints.n] = getint("chk", s1, 3);
if(getint("chk", s1, 3) == 0)
{
checkpoints.typ[checkpoints.n] = 1;
} else
{
checkpoints.typ[checkpoints.n] = 2;
}
checkpoints.pcs = checkpoints.n;
checkpoints.n++;
aconto[nob].checkpoint = checkpoints.nsp + 1;
checkpoints.nsp++;
nob++;
notb = nob;
}

Now you have to recode your tracks:

This is an example of what you would have:

set(10,0,0,0)p

That won't work. Time to add the new value!

set(10,0,0,250,0)p

That "250" marks your height. 250 is the ground.
-----------------------------------------------------

My haxs below this line . . . you know the deal, don't use without pwners consent bla blah bleh

__________________________________________________________________________________


MAKE UR WHEELS A SILVERY WHITE

Go to Wheels.class

Change all the falses to trues

=========================

MAKE FLAMES A DIFFERENT COLOR

[Only admins are allowed to see this link]

=========================
TELEPORTER

Change yflip in madness to 20000

=========================

WASTE HAX

Search for

if(cntdest == 7)

in Madness

Change the true to a false


Last edited by K-K-KAFFeinated on Mon Oct 29, 2012 3:45 pm; edited 21 times in total
avatar
desu senpai
Kaffe Addict / Dark Chocolate Admin
Kaffe Addict / Dark Chocolate Admin

Posts : 43
Points : 2608
Reputation : 0
Join date : 2012-09-22
Age : 18
Location : Fuck-Offity Land

Level
Level: 2
Car: Custom
Exp:
25/200  (25/200)

View user profile

Back to top Go down

Re: The Ultimate JAVA NFM Hacking Tutorial/Guide

Post by masheenmaster on Sat Sep 29, 2012 4:52 pm

for the track limit hack, you can also go into trackers and change all the values!
avatar
masheenmaster
Megaman
Megaman

Posts : 152
Points : 2021
Reputation : 7
Join date : 2012-09-16

Level
Level: 1
Car: MASHEEN
Exp:
25/100  (25/100)

View user profile

Back to top Go down

View previous topic View next topic Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum