Thread: ---- Realistic Mining + Woodcutting ----

Page 1 of 16 12311 ... LastLast
Results 1 to 10 of 154
  1. #1 ---- Realistic Mining + Woodcutting ---- 
    MrWlcked
    Guest
    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
    Code:
    AddWorldObjects();
    Underneath of
    Code:
    AddDroppedItems();
    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
    Code:
    Case 132:
    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
    Code:
    case 252:
    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
    Code:
    case 121:
    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!!
     

  2. #2  
    Zsakul2
    Guest
    Man your my god seriously im not trying to be a suckup if your the real mr wicked. I loved your old gang server sucked it got leaked.
     

  3. #3  
    MrWlcked
    Guest
    BTW, IF I DONT SEE A 4:1 VIEW/COMMENT RATIO I WILL REMOVE THIS.

    Quote Originally Posted by 6ironmaiden9 View Post
    Man your my god seriously im not trying to be a suckup if your the real mr wicked. I loved your old gang server sucked it got leaked.
    Thanks for the comment, I am the real MrWicked I have had the same email address for years!
    Last edited by MrWlcked; 08-05-2007 at 02:20 AM. Reason: Double posting is not allowed!
     

  4. #4  
    Community Veteran


    Join Date
    Oct 2006
    Posts
    451
    Thanks given
    5
    Thanks received
    1
    Rep Power
    137
    Thank you for releasing, Wicked. It was a very good feature of the server.

    By the way, woodcutting is amazing
    Est. 2006
     

  5. #5  
    Banned

    Join Date
    Oct 2006
    Age
    31
    Posts
    777
    Thanks given
    24
    Thanks received
    95
    Rep Power
    0
    wow this is awesome rep+
     

  6. #6  
    Registered Member
    Z's Avatar
    Join Date
    Jun 2007
    Age
    29
    Posts
    1,390
    Thanks given
    7
    Thanks received
    30
    Rep Power
    853
    pretty good.....i got my own i use though=0
     

  7. #7  
    I'm unique


    Join Date
    Oct 2006
    Age
    32
    Posts
    708
    Thanks given
    0
    Thanks received
    1
    Rep Power
    82
    Nice, thanks
    Sincerly yours,
    Simox.
     

  8. #8  
    Diablo1123
    Guest
    Quote Originally Posted by MrWlcked View Post
    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
    Code:
    AddWorldObjects();
    Underneath of
    Code:
    AddDroppedItems();
    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
    Code:
    Case 132:
    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
    Code:
    case 252:
    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
    Code:
    case 121:
    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!!
    So what do you do now?
     

  9. #9  
    Banned

    Join Date
    Oct 2006
    Age
    31
    Posts
    777
    Thanks given
    24
    Thanks received
    95
    Rep Power
    0
    Quote Originally Posted by Zack77 View Post
    pretty good.....i got my own i use though=0
    Quote Originally Posted by Zack77
    that's just spam....and you doubled.....you probably don't know how to do this....so why post it?....noob
    oooo... i see it now
     

  10. #10  
    Registered Member
    Eternal Darknes's Avatar
    Join Date
    Jul 2007
    Age
    30
    Posts
    384
    Thanks given
    0
    Thanks received
    0
    Rep Power
    95
    Lawl hope people post about and DEAM! that **** be pimpin!
    Level me up

    Not allowed
     

Page 1 of 16 12311 ... LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Mining & Woodcutting on Hyperion
    By Kelvin in forum Show-off
    Replies: 5
    Last Post: 08-16-2009, 12:58 PM
  2. Basic Woodcutting and Mining
    By Vegeta in forum Tutorials
    Replies: 12
    Last Post: 07-21-2009, 05:01 AM
  3. [TuT]90% Full rs-realistic woodcutting
    By Wolf in forum Tutorials
    Replies: 11
    Last Post: 08-21-2007, 08:25 AM
  4. [TuT]97% full rs-realistic mining
    By Wolf in forum Tutorials
    Replies: 18
    Last Post: 08-13-2007, 08:04 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •