Alright so, If you do not know me, my name is 'MrWicked'...
As you may know Me and Gander have been working on a project for some time, I was recently told that the source was leaked, I quickly moved on and let it go..... then today I stumbled across a thread showing Gander selling the source, well thanks for lying to me Gander I appreciate it. I don't care if the alpha was leaked or whatever BS story your going to tell me, the point is you sold the source, for a fair chunk of money and I didn't see a dime of it....
Anyways enough with the story, its pretty simple because I'm the one who coded the realistic woodcutting & mining, and the Global Object Handler they are based on I am the rightful owner and I'm releasing them to the public in hopes that it sparks some good development in private servers..
So I'd hope that these come in useful to you, I don't ask that you display a message on log on stating your using my codes, Simply that you leave my handlers headers intact, and do not claim that you coded these yourself!
-------------------------- TIME FOR THE TUTORIAL!! --------------------------
First of all, copy all of this and save it into a file called 'WorldObjectHandler.java'
Code:
import java.io.*;
public class WorldObjectHandler {
//~-~-~-~-~-~-~-~-~-~-~-~-~- World Object Handler By MrWicked ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~//
public static int ObjCount = 0;
public static int MaxObj = 500;
public static int[] ObjectID = new int[MaxObj];
public static int[] ObjectAvailD = new int[MaxObj];
public static int[] ObjectGoneID = new int[MaxObj];
public static int[] ObjectX = new int[MaxObj];
public static int[] ObjectY = new int[MaxObj];
public static int[] ObjectH = new int[MaxObj];
public static int[] ObjectTimer = new int[MaxObj];
public static int[] OrigObjectTimer = new int[MaxObj];
public static int[]HarvestedObjID = new int[MaxObj];
public static int[]ObjExp = new int[MaxObj];
public static int[]ObjLvl = new int[MaxObj];
public static int[] ObjFace = new int[MaxObj];
public static int[] ObjAmount = new int[MaxObj];
public static String[] ObjName = new String[MaxObj];
public static String[] ObjType = new String[MaxObj];
public static boolean[] ObjHarvested = new boolean[MaxObj];
public int TotalCount = 0;
WorldObjectHandler() {
for(int i = 0; i < MaxObj; i++) {
ResetVariables(i);
}
loadObjectConfig("config/objects.cfg");
}
public void process() {
for(int i = 0; i < MaxObj; i++) {
if (ObjectID[i] > -1) {
if(ObjHarvested[i]) {
ObjectTimer[i]--;
if(ObjectTimer[i] < 10) {
ObjHarvested[i] = false;
ObjectTimer[i] = OrigObjectTimer[i];
ObjectID[i] = ObjectAvailD[i];
}
}
}
}
}
public void ResetVariables(int ArrayID) {
ObjectID[ArrayID] = -1;
ObjectAvailD[ArrayID] = -1;
ObjectGoneID[ArrayID] = -1;
ObjectX[ArrayID] = -1;
ObjectY[ArrayID] = -1;
ObjectH[ArrayID] = -1;
HarvestedObjID[ArrayID] = -1;
ObjExp[ArrayID] = -1;
ObjLvl[ArrayID] = -1;
ObjectTimer[ArrayID] = -1;
OrigObjectTimer[ArrayID] = -1;
ObjHarvested[ArrayID] = false;
ObjName[ArrayID] = null;
ObjType[ArrayID] = null;
ObjFace[ArrayID] = -1;
ObjAmount[ArrayID] = 5;
}
public boolean loadObjectConfig(String FileName) {
String line = "";
String token = "";
String token2 = "";
String token2_2 = "";
String[] token3 = new String[10];
boolean EndOfFile = false;
int ReadMode = 0;
BufferedReader characterfile = null;
try {
characterfile = new BufferedReader(new FileReader("./"+FileName));
} catch(FileNotFoundException fileex) {
return false;
}
try {
line = characterfile.readLine();
} catch(IOException ioexception) {
return false;
}
while(EndOfFile == false && line != null) {
line = line.trim();
int spot = line.indexOf("=");
if (spot > -1) {
token = line.substring(0, spot);
token = token.trim();
token2 = line.substring(spot + 1);
token2 = token2.trim();
token2_2 = token2.replaceAll("\t\t", "\t");
token2_2 = token2_2.replaceAll("\t\t", "\t");
token2_2 = token2_2.replaceAll("\t\t", "\t");
token2_2 = token2_2.replaceAll("\t\t", "\t");
token2_2 = token2_2.replaceAll("\t\t", "\t");
token3 = token2_2.split("\t");
if (token.equals("obj")) {
ObjectID[ObjCount] = Integer.parseInt(token3[0]);
ObjectAvailD[ObjCount] = Integer.parseInt(token3[0]);
ObjectGoneID[ObjCount] = Integer.parseInt(token3[1]);
ObjectX[ObjCount] = Integer.parseInt(token3[2]);
ObjectY[ObjCount] = Integer.parseInt(token3[3]);
ObjectH[ObjCount] = Integer.parseInt(token3[4]);
ObjectTimer[ObjCount] = Integer.parseInt(token3[5]);
OrigObjectTimer[ObjCount] = Integer.parseInt(token3[5]);
ObjName[ObjCount] = token3[6];
HarvestedObjID[ObjCount]= Integer.parseInt(token3[7]);
ObjExp[ObjCount]= Integer.parseInt(token3[8]);
ObjLvl[ObjCount]= Integer.parseInt(token3[9]);
if(token3[10].equalsIgnoreCase("North")) {
ObjFace[ObjCount]= -1;
} else if(token3[10].equalsIgnoreCase("East")) {
ObjFace[ObjCount]= -2;
} else if(token3[10].equalsIgnoreCase("South")) {
ObjFace[ObjCount]= -3;
} else if(token3[10].equalsIgnoreCase("West")) {
ObjFace[ObjCount]= 0;
} else {
ObjFace[ObjCount]= -1;
}
ObjType[ObjCount]= token3[11];
TotalCount++;
ObjCount++;
}
} else {
if (line.equals("[END]")) {
try { characterfile.close(); } catch(IOException ioexception) { }
return true;
}
}
try {
line = characterfile.readLine();
} catch(IOException ioexception1) { EndOfFile = true; }
}
try { characterfile.close(); } catch(IOException ioexception) { }
return false;
}
}
Now make a folder in your make server directory called 'config' and in that folder make a file called 'objects.cfg' and paste the following into it!
Code:
//~-~-~-~-~-~-~-~-~-~-~-~-~- World Object Handler By MrWicked ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~//
//-----ObjectID---UsedObjectID--CoordX--CoordY--Height--RespawnTime--Name--HarvestedID--Exp--Level--Face--Type//
obj = 6945 6947 2529 3890 0 160 Coal 453 12 1 North Mining
obj = 11948 11963 2529 3892 0 160 Silver 442 20 1 North Mining
obj = 6946 6948 2528 3892 0 160 Coal 453 12 1 North Mining
obj = 11948 11963 2526 3892 0 160 Silver 442 20 1 North Mining
obj = 6945 6947 2529 3894 0 160 Coal 453 12 1 North Mining
obj = 11949 11964 2527 3894 0 160 Silver 442 20 1 North Mining
obj = 11951 11963 2528 3895 0 160 Gold 444 28 1 North Mining
obj = 11953 11965 2526 3895 0 160 Gold 444 28 1 North Mining
obj = 6945 6947 2525 3894 0 160 Coal 453 12 1 North Mining
obj = 1316 9661 2531 3881 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2540 3882 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2546 3880 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1319 9661 2544 3888 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1318 9661 2554 3893 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2560 3881 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2569 3884 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2562 3872 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2555 3872 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2554 3877 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2558 3869 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2557 3865 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2553 3863 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2551 3860 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2547 3861 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2543 3859 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2530 3864 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2536 3866 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2531 3872 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2535 3875 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2540 3882 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2521 3884 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2520 3889 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2513 3885 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1315 9661 2565 3856 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1315 9661 2584 3883 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1315 9661 2590 3888 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2590 3876 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1315 9661 2598 3894 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2607 3895 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2614 3890 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1315 9661 2589 3866 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1315 9661 2604 3852 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2608 3859 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1315 9661 2616 3856 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2542 3872 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2547 3872 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2546 3869 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2550 3867 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2554 3866 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2554 3869 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2550 3864 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2543 3867 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2541 3869 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2545 3865 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2543 3863 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1316 9661 2555 3861 0 160 Evergreen 1511 25 1 South Woodcutting
obj = 1308 7399 2572 3871 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2570 3870 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2587 3886 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2567 3870 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2593 3892 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2568 3874 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2566 3873 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2597 3892 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2565 3868 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2603 3895 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2607 3889 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2562 3865 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2564 3862 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2561 3862 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2596 3885 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2595 3878 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2588 3871 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2595 3861 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2600 3857 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2605 3860 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2609 3851 0 160 Willow 1519 67 30 South Woodcutting
obj = 1308 7399 2619 3851 0 160 Willow 1519 67 30 South Woodcutting
obj = 1307 7400 2587 3874 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2585 3877 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2587 3881 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2587 3884 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2590 3882 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2595 3891 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2601 3893 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2619 3889 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2574 3875 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2552 3884 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2558 3887 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2558 3880 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2561 3858 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2533 3869 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2528 3878 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2521 3880 0 160 Maple 1517 82 45 South Woodcutting
obj = 1307 7400 2511 3882 0 160 Maple 1517 82 45 South Woodcutting
obj = 1309 7402 2505 3882 0 160 Yew 1515 165 60 South Woodcutting
obj = 1309 7402 2563 3887 0 160 Yew 1515 165 60 South Woodcutting
obj = 1309 7402 2617 3861 0 160 Yew 1515 165 60 South Woodcutting
obj = 1306 7401 2618 3887 0 160 Magic 1513 260 75 South Woodcutting
obj = 1306 7401 2529 3846 0 160 Magic 1513 260 75 South Woodcutting
obj = 1188 1188 2551 3871 0 160 Flower -1 12 -1 South Flower
obj = 1188 1188 2542 3875 0 160 Flower -1 12 -1 South Flower
obj = 1188 1188 2551 3874 0 160 Flower -1 12 -1 South Flower
[END]
Now open up 'Server.Java' and add
Code:
worldObjectHandler = new WorldObjectHandler();
Underneath of
Code:
(new Thread(clientHandler)).start();
Underneath of
Code:
while(!shutdownServer) {
Add
Code:
worldObjectHandler.process();
Underneath of
Code:
public static PlayerHandler playerHandler = null;
Add
Code:
public static WorldObjectHandler worldObjectHandler = null;
Alright Now Open up 'Client.Java' once your there...
Add
Underneath of
Search for
Code:
if (tradeRequest > 0) {
Above it Add
Code:
if(WorldObjectTimer > 0) {
WorldObjectTimer--;
}
if(WorldObjectTimer == 0) {
boolean keepChopping = false;
WorldObjectTimer = -1;
resetAnimation();
if(pObjectCount > -1) {
if(freeSlots() > 0) {
addItem(server.worldObjectHandler.HarvestedObjID[pObjectCount], 1);
} else {
createItem(server.worldObjectHandler.HarvestedObjID[pObjectCount]);
}
if(server.worldObjectHandler.ObjType[pObjectCount].equalsIgnoreCase("Woodcutting")) {
addSkillXP(server.worldObjectHandler.ObjExp[pObjectCount], 8);
sendMessage("You chop some wood!");
} else if(server.worldObjectHandler.ObjType[pObjectCount].equalsIgnoreCase("Mining")) {
addSkillXP(server.worldObjectHandler.ObjExp[pObjectCount], 14);
}
if(server.worldObjectHandler.ObjName[pObjectCount].equalsIgnoreCase("Yew") || server.worldObjectHandler.ObjName[pObjectCount].equalsIgnoreCase("Magic")) {
if(server.worldObjectHandler.ObjAmount[pObjectCount] > 0) {
WorldObjectTimer = 10;
keepChopping = true;
server.worldObjectHandler.ObjAmount[pObjectCount] = server.worldObjectHandler.ObjAmount[pObjectCount] - 1;
setAnimation(875);
} else {
server.worldObjectHandler.ObjAmount[pObjectCount] = 5;
keepChopping = false;
server.worldObjectHandler.ObjHarvested[pObjectCount] = true;
server.worldObjectHandler.ObjectID[pObjectCount] = server.worldObjectHandler.ObjectGoneID[pObjectCount];
}
} else {
keepChopping = false;
server.worldObjectHandler.ObjHarvested[pObjectCount] = true;
server.worldObjectHandler.ObjectID[pObjectCount] = server.worldObjectHandler.ObjectGoneID[pObjectCount];
}
}
if(!keepChopping) {
pObjectCount = -1;
}
}
Now search for
And replace your case 132 with the following
Code:
case 132:
int objectX = inStream.readSignedWordBigEndianA();
int objectID = inStream.readUnsignedWord();
int objectY = inStream.readUnsignedWordA();
boolean IsWorking = false;
for (int iiii = 0; iiii < server.worldObjectHandler.MaxObj; iiii++) {
if (server.worldObjectHandler.ObjectID[iiii] > -1) {
if(server.worldObjectHandler.ObjectID[iiii] == objectID) {
IsWorking = true;
}
}
}
for (int iiii = 0; iiii < server.farmingHandler.PlantMaxTotal; iiii++) {
if (server.farmingHandler.PlantStage[iiii] > -1) {
if(server.farmingHandler.PlantX[iiii] == objectX && server.farmingHandler.PlantY[iiii] == objectY) {
IsWorking = true;
}
}
}
if(IsWorking) {
for (int iii = 0; iii < server.worldObjectHandler.MaxObj; iii++) {
if (server.worldObjectHandler.ObjectID[iii] > -1) {
if (server.worldObjectHandler.ObjectX[iii] == objectX && server.worldObjectHandler.ObjectY[iii] == objectY) {
if(server.worldObjectHandler.ObjType[iii].equalsIgnoreCase("Mining")) {
if(playerEquipment[3] == 1269) {
if(GoodDistance(objectX , objectY, absX, absY, 1)) {
if(server.worldObjectHandler.ObjHarvested[iii] == true) {
sendMessage("This ore currently contains nothing!");
} else if(server.worldObjectHandler.ObjHarvested[iii] == false) {
WorldObjectTimer = 10;
setAnimation(0x554);
pObjectCount = iii;
}
}
} else {
sendMessage("You Need A Pickaxe To Mine!");
}
} else if(server.worldObjectHandler.ObjType[iii].equalsIgnoreCase("Woodcutting")) {
if(playerEquipment[3] == 1353) {
if(GoodDistance(objectX , objectY, absX, absY, 3)) {
if(playerLevel[8] >= server.worldObjectHandler.ObjLvl[iii]) {
if(server.worldObjectHandler.ObjHarvested[iii] == false) {
WorldObjectTimer = 10;
setAnimation(875);
pObjectCount = iii;
}
} else {
sendMessage("You need to be atleast level " + server.worldObjectHandler.ObjLvl[iii] + " to cut these!");
}
}
} else {
sendMessage("You Need an Axe To Woodcut!");
}
}
}
}
}
} else {
doObject(objectID,objectX,objectY);
}
break;
Now search for
And change the case statement to
Code:
case 252: // atObject2
objectID = inStream.readUnsignedWordBigEndianA(); //5292 bankwindow
objectY = inStream.readSignedWordBigEndian();
objectX = inStream.readUnsignedWordA();
for (int iii = 0; iii < server.worldObjectHandler.MaxObj; iii++) {
if (server.worldObjectHandler.ObjectID[iii] > -1) {
if (server.worldObjectHandler.ObjectX[iii] == objectX && server.worldObjectHandler.ObjectY[iii] == objectY && server.worldObjectHandler.ObjType[iii].equalsIgnoreCase("Mining")) {
if(!server.worldObjectHandler.ObjHarvested[iii]) {
sendMessage("This ore contains " + server.worldObjectHandler.ObjName[iii]);
} else {
sendMessage("This ore is currently depleted");
}
}
}
}
doObject(objectID,objectX,objectY);
break;
Now Add The following Method anywhere!
Code:
public void AddWorldObjects() {
if (IsRefreshing == false) {
IsRefreshing = true;
int tmpX = 0;
int tmpY = 0;
int calcX = 0;
int calcY = 0;
if(RegionChanged) {
for (int i = 0; i < server.worldObjectHandler.MaxObj; i++) {
if (server.worldObjectHandler.ObjectID[i] > -1) {
tmpX = server.worldObjectHandler.ObjectX[i];
tmpY = server.worldObjectHandler.ObjectY[i];
calcX = tmpX - absX;
calcY = tmpY - absY;
if (server.worldObjectHandler.ObjectH[i] == heightLevel) {
if(server.worldObjectHandler.ObjType[i].equalsIgnoreCase("Woodcutting") && server.worldObjectHandler.ObjectID[i] == server.worldObjectHandler.ObjectGoneID[i]) {
if(server.worldObjectHandler.ObjName[i].equalsIgnoreCase("Willow") || server.worldObjectHandler.ObjName[i].equalsIgnoreCase("Evergreen")) {
ReplaceObject2(tmpX +1 ,tmpY + 1,server.worldObjectHandler.ObjectID[i],server.worldObjectHandler.ObjFace[i],11);
ReplaceObject2(tmpX,tmpY,-1,server.worldObjectHandler.ObjFace[i],11);
} else {
ReplaceObject2(tmpX,tmpY,server.worldObjectHandler.ObjectID[i],server.worldObjectHandler.ObjFace[i],11);
}
} else {
ReplaceObject2(tmpX,tmpY,server.worldObjectHandler.ObjectID[i],server.worldObjectHandler.ObjFace[i],11);
}
RegionChanged = false;;
}
}
}
} else {
for (int i = 0; i < server.worldObjectHandler.MaxObj; i++) {
if (server.worldObjectHandler.ObjectID[i] > -1) {
tmpX = server.worldObjectHandler.ObjectX[i];
tmpY = server.worldObjectHandler.ObjectY[i];
calcX = tmpX - absX;
calcY = tmpY - absY;
if (calcX >= -16 && calcX <= 15 && calcY >= -16 && calcY <= 15 && CurrentObjID[i] != server.worldObjectHandler.ObjectID[i] && server.worldObjectHandler.ObjectH[i] == heightLevel) {
CurrentObjID[i] = server.worldObjectHandler.ObjectID[i];
if(server.worldObjectHandler.ObjType[i].equalsIgnoreCase("Woodcutting") && server.worldObjectHandler.ObjectID[i] == server.worldObjectHandler.ObjectGoneID[i]) {
if(server.worldObjectHandler.ObjName[i].equalsIgnoreCase("Willow") || server.worldObjectHandler.ObjName[i].equalsIgnoreCase("Evergreen")) {
ReplaceObject2(tmpX +1,tmpY +1,server.worldObjectHandler.ObjectID[i],server.worldObjectHandler.ObjFace[i],11);
ReplaceObject2(tmpX,tmpY,-1,server.worldObjectHandler.ObjFace[i],11);
} else {
ReplaceObject2(tmpX,tmpY,server.worldObjectHandler.ObjectID[i],server.worldObjectHandler.ObjFace[i],11);
}
} else {
ReplaceObject2(tmpX,tmpY,server.worldObjectHandler.ObjectID[i],server.worldObjectHandler.ObjFace[i],11);
}
}
}
}
}
IsRefreshing = false;
}
}
Find
And change the whole case statement to
Code:
case 121:
RegionChanged = true;
break;
Now Open up 'Player.Java' and add the following where you best think it fits!!
Code:
public int WorldObjectTimer = 0;
public int pObjectCount = -1;
public int[] CurrentObjID = new int[server.worldObjectHandler.MaxObj];
public boolean IsRefreshing = false;
public boolean RegionChanged = false;
public boolean HasWalked = false;
Alright so thats it!! I hope you all enjoy this and make something good from it!
Remember to give credz where it belongs!!