Thread: Firemaking fire freeze

Results 1 to 5 of 5
  1. #1 Firemaking fire freeze 
    Banned

    Join Date
    Jun 2013
    Posts
    938
    Thanks given
    462
    Thanks received
    171
    Rep Power
    0
    Well..... the fire is frozen e.g.

    it just stays like that
    here is my firemaking.java
    Code:
    package server.model.players.skills;
    
    import server.Config;
    import server.world.ItemHandler;
    import server.model.players.Client;
    import server.model.objects.Objects;
    import server.Server;
    import server.world.ObjectHandler;
    import server.event.CycleEvent;
    import server.event.CycleEventContainer;
    import server.event.CycleEventHandler;
    import server.util.Misc;
    /**
     * Firemaking.java
     *
     * @author Faris
     *
     **/ 
    public class Firemaking {
    	
    	private Client c;
    	
    	private int[] logs = {1511,1521,1519,1517,1515,1513};
    	private int[] exp = {1,3,4,5,7,8};
    	private int[] level = {1,15,30,45,60,75};
    	public long lastLight;
    	private int DELAY = 1250;
    	private int fireId = 2732;
    	public int timer;
    	public int timer2;
    	public int multiplyFailChance;
    	public int chanceToLight;
    	public int chancetoFail;
    	
    	public boolean resetAnim = true;
    	
    	public Firemaking(Client c) {
    		this.c = c;
    	}
    	
    	public void checkLogType(int logType, int otherItem) {
    		for (int j = 0; j < logs.length;j++) {
    			if (logs[j] == logType || logs[j] == otherItem) {
    				attemptLighting();
    				return;
    			}
    		}	
    	}
    	
    	public void lightFire(int slot) {
    	
    	final int x = c.getX();
    	final int y = c.getY();
    	
    			
    		if (c.playerLevel[c.playerFiremaking] >= level[slot]) {
    			if (c.getItems().playerHasItem(590) && c.getItems().playerHasItem(logs[slot])) {
    				if (System.currentTimeMillis() - lastLight > DELAY) {
    					c.getItems().deleteItem(logs[slot], c.getItems().getItemSlot(logs[slot]), 1);
    					c.getPA().addSkillXP(logs[slot] * Config.FIREMAKING_EXPERIENCE, c.playerFiremaking);
    					c.getPA().checkObjectSpawn(fireId, x, y, 1, 10);
    					
    			CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    			int timer = 1;
    			@Override
    			public void execute(CycleEventContainer container) {
    			
    			
    			if (timer == 0) {
    			container.stop();
    			}
    			timer--;
    			
    			
    			}
    			@Override
    			public void stop() {
    				c.getPA().checkObjectSpawn(-1, x, y, 1, 10);
    				//c.sendMessage("Your fire has been extinguished.");
    				Server.itemHandler.createGroundItem(c, 592, x, y, 1, c.playerId);
    			}
    		}, 45);
    					c.sendMessage("You light the fire.");
    					final int walk = Misc.random(3);
    				if (walk == 0)
    					c.getPA().walkTo(-1, 0);
    				if (walk == 1)
    					c.getPA().walkTo(1, 0);
    				if (walk == 2)
    					c.getPA().walkTo(0, 1);
    				if (walk == 3)
    					c.getPA().walkTo(0, -1);
    					this.lastLight = System.currentTimeMillis();
    					resetAnim = true;
    				}
    			}
    		}	
    	}
    	
    	public void attemptLighting() {
    	if (c.duelStatus >= 5) {
    			c.sendMessage("I can't do that here.");
    			return;
    		}
    		
    	final int x = c.getX();
    	final int y = c.getY();
    	final int levelChance = c.playerLevel[11];
    		c.sendMessage("You attempt to light a fire...");
    		c.inTrade = true;
    		Server.itemHandler.createGroundItem(c, 1511, x, y, 1, c.playerId);
    		c.startAnimation(733,0);
    		CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    			int timer2 = 10;
    			@Override
    			public void execute(CycleEventContainer container) {
    			double multiplyFailChance = Misc.random(levelChance)/10;
    			int chanceToLight = Misc.random(levelChance)+1;
    			double chanceToFail = Misc.random(9)+(multiplyFailChance);
    			
    			if (chanceToLight >= chanceToFail && timer2 != 0) {
    			for (int j = 0; j < logs.length;j++) {
    			lightFire(j);
    			}
    			container.stop();
    			}
    			
    			if (timer2 == 0) {
    				//c.sendMessage("You have failed to start a fire");
    				container.stop();
    				}
    				
    			timer2--;
    			}
    			@Override
    			public void stop() {
    				c.startAnimation(65535);
    				Server.itemHandler.removeGroundItem(c, 1511, x, y, false);
    				c.inTrade = false;
    			}
    		}, 3);
    	}
    	
    }
    Reply With Quote  
     

  2. #2  
    Registered Member
    hacker's Avatar
    Join Date
    Jun 2013
    Posts
    1,409
    Thanks given
    576
    Thanks received
    580
    Rep Power
    5000
    Code:
    package server.model.players.skills;
    
    import server.Server;
    import server.event.CycleEvent;
    import server.event.CycleEventContainer;
    import server.event.CycleEventHandler;
    import server.model.players.Client;
    import server.world.Tiles;
    import server.world.WalkingCheck;
    import server.model.players.Client;
    import server.Config;
    import server.*;
    import server.clip.region.*;
    import server.world.map.VirtualWorld;
    import server.clip.region.Region;
    
    public class Firemaking {
    
    	Client c;
    
    	public Firemaking(Client c) {
    		this.c = c;
    	}
    
    	private static Tiles currentTile;
    
    	private static int[][] data = {
    		{1511, 1,  40,  25465},		//	LOG
    		{7406, 1,  250, 11406},		//	RED LOG
    		{7405, 1,  250, 11405},		//	BLUE LOG
    		{7404, 1,  250, 11404},		//	RED LOG
    		{2862, 1,  40,  25465},		//	ACHEY
    		{1521, 15, 60,  25465},		//	OAK
    		{1519, 30, 105, 25465},		//	WILLOW
    		{6333, 35, 105, 25465},		//	TEAK
    		{1517, 45, 135, 25465},		//	MAPLE
    		{10810,45, 135, 25465},		//	ARTIC PINE
    		{6332, 50, 158, 25465},		//	MAHOGANY
    		{1515, 60, 203, 25465},		//	YEW
    		{1513, 75, 304, 25465},		//	MAGIC
    	};
    
    	public static boolean playerLogs(Client c, int i, int l) {
    		boolean flag = false;
    		for(int kl = 0; kl < data.length; kl++) {
    			if((i == data[kl][0] && requiredItem(c, l)) || (requiredItem(c, i) && l == data[kl][0])) {
    				flag = true;
    			}
    		}
    		return flag;
    	}
    
    	private static int getAnimation(Client c, int item, int item1) {
    		int[][] data = {
    				{841, 6714}, {843, 6715}, {849, 6716}, {853, 6717},
    				{857, 6718}, {861, 6719},
    		};
    		for(int i = 0; i < data.length; i++) {
    			if(item == data[i][0] || item1 == data[i][0]) {
    				return data[i][1];
    			}
    		}
    		return 733;
    	}
    
    	private static boolean requiredItem(Client c, int i) {
    		int[] data = {
    				841, 843, 849, 853, 857, 861, 590
    		};
    		for(int l = 0; l < data.length; l++) {
    			if(i == data[l]) {
    				return true;
    			}
    		}
    		return false;
    	}
    
    	public static void grabData(final Client c, final int useWith, final int withUse) {
    		final int[] coords = new int[2];
    		coords[0] = c.absX;
    		coords[1] = c.absY;
    		if(c.playerIsWoodcutting) {
    			Woodcutting.resetWoodcutting(c);
    		}
    		for(int i = 0; i < data.length; i++) {
    			if((requiredItem(c, useWith) && withUse == data[i][0] || useWith == data[i][0] && requiredItem(c, withUse))) {
    				if(c.playerLevel[11] < data[i][1]) {
    					c.sendMessage("You don't have the correct Firemaking level to light this log!");
    					c.sendMessage("You need the Firemaking level of at least "+ data[i][1] +".");
    					return;
    				}
    				if (System.currentTimeMillis() - c.lastFire > 1200) {
    
    					if(c.playerIsFiremaking) {
    						return;
    					}
    
    					final int[] time = new int[3];
    					final int log = data[i][0];
    					final int fire = data[i][3];
    					if(System.currentTimeMillis() - c.lastFire > 3000) {
    						c.startAnimation(getAnimation(c, useWith, withUse));
    						time[0] = 4;
    						time[1] = 3;
    					} else {
    						time[0] = 1;
    						time[1] = 2;
    					}
    
    					c.playerIsFiremaking = true;
    
    					Server.itemHandler.createGroundItem(c, log, coords[0], coords[1], 1, c.getId());
    
    					CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    						@Override
    						public void execute(CycleEventContainer container) {
    							Server.objectHandler.createAnObject(c, fire, coords[0], coords[1]);
    							Server.itemHandler.removeGroundItem(c, log, coords[0], coords[1], false);
    							c.playerIsFiremaking = false;
    							container.stop();
    						}
    						@Override
    						public void stop() {
    
    						}
    					}, time[0]);
    
    					currentTile = new Tiles(c.absX - 1, c.absY, c.heightLevel);
    
    					if (Region.getClipping(c.getX() - 1, c.getY(), c.heightLevel, -1, 0)) {
    						c.getPA().walkTo(-1, 0);
    					} else if (Region.getClipping(c.getX() + 1, c.getY(), c.heightLevel, 1, 0)) {
    						c.getPA().walkTo(1, 0);
    					} else if (Region.getClipping(c.getX(), c.getY() - 1, c.heightLevel, 0, -1)) {
    						c.getPA().walkTo(0, -1);
    					} else if (Region.getClipping(c.getX(), c.getY() + 1, c.heightLevel, 0, 1)) {
    						c.getPA().walkTo(0, 1);
    					}
    
    
    					c.sendMessage("You light the logs.");
    
    					CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    						@Override
    						public void execute(CycleEventContainer container) {
    							c.startAnimation(65535);
    							container.stop();
    						}
    						@Override
    						public void stop() {
    
    						}
    					}, time[1]);
    
    					CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    						@Override
    						public void execute(CycleEventContainer container) {
    							Server.objectHandler.createAnObject(c, -1, coords[0], coords[1]);
    							Server.itemHandler.createGroundItem(c, 592, coords[0], coords[1], 1, c.getId());
    							container.stop();
    						}
    						@Override
    						public void stop() {
    
    						}
    					}, 200);
    
    					c.getPA().addSkillXP(data[i][2] * Config.FIREMAKING_EXPERIENCE, 11);
    					c.turnPlayerTo(c.absX+1, c.absY);
    					c.getItems().deleteItem(data[i][0], c.getItems().getItemSlot(data[i][0]), 1);
    					c.lastFire = System.currentTimeMillis();
    				}
    			}
    		}
    	}
    }
    ?
    Reply With Quote  
     

  3. #3  
    Banned

    Join Date
    Jun 2013
    Posts
    938
    Thanks given
    462
    Thanks received
    171
    Rep Power
    0
    Quote Originally Posted by Hacker View Post
    Code:
    package server.model.players.skills;
    
    import server.Server;
    import server.event.CycleEvent;
    import server.event.CycleEventContainer;
    import server.event.CycleEventHandler;
    import server.model.players.Client;
    import server.world.Tiles;
    import server.world.WalkingCheck;
    import server.model.players.Client;
    import server.Config;
    import server.*;
    import server.clip.region.*;
    import server.world.map.VirtualWorld;
    import server.clip.region.Region;
    
    public class Firemaking {
    
    	Client c;
    
    	public Firemaking(Client c) {
    		this.c = c;
    	}
    
    	private static Tiles currentTile;
    
    	private static int[][] data = {
    		{1511, 1,  40,  25465},		//	LOG
    		{7406, 1,  250, 11406},		//	RED LOG
    		{7405, 1,  250, 11405},		//	BLUE LOG
    		{7404, 1,  250, 11404},		//	RED LOG
    		{2862, 1,  40,  25465},		//	ACHEY
    		{1521, 15, 60,  25465},		//	OAK
    		{1519, 30, 105, 25465},		//	WILLOW
    		{6333, 35, 105, 25465},		//	TEAK
    		{1517, 45, 135, 25465},		//	MAPLE
    		{10810,45, 135, 25465},		//	ARTIC PINE
    		{6332, 50, 158, 25465},		//	MAHOGANY
    		{1515, 60, 203, 25465},		//	YEW
    		{1513, 75, 304, 25465},		//	MAGIC
    	};
    
    	public static boolean playerLogs(Client c, int i, int l) {
    		boolean flag = false;
    		for(int kl = 0; kl < data.length; kl++) {
    			if((i == data[kl][0] && requiredItem(c, l)) || (requiredItem(c, i) && l == data[kl][0])) {
    				flag = true;
    			}
    		}
    		return flag;
    	}
    
    	private static int getAnimation(Client c, int item, int item1) {
    		int[][] data = {
    				{841, 6714}, {843, 6715}, {849, 6716}, {853, 6717},
    				{857, 6718}, {861, 6719},
    		};
    		for(int i = 0; i < data.length; i++) {
    			if(item == data[i][0] || item1 == data[i][0]) {
    				return data[i][1];
    			}
    		}
    		return 733;
    	}
    
    	private static boolean requiredItem(Client c, int i) {
    		int[] data = {
    				841, 843, 849, 853, 857, 861, 590
    		};
    		for(int l = 0; l < data.length; l++) {
    			if(i == data[l]) {
    				return true;
    			}
    		}
    		return false;
    	}
    
    	public static void grabData(final Client c, final int useWith, final int withUse) {
    		final int[] coords = new int[2];
    		coords[0] = c.absX;
    		coords[1] = c.absY;
    		if(c.playerIsWoodcutting) {
    			Woodcutting.resetWoodcutting(c);
    		}
    		for(int i = 0; i < data.length; i++) {
    			if((requiredItem(c, useWith) && withUse == data[i][0] || useWith == data[i][0] && requiredItem(c, withUse))) {
    				if(c.playerLevel[11] < data[i][1]) {
    					c.sendMessage("You don't have the correct Firemaking level to light this log!");
    					c.sendMessage("You need the Firemaking level of at least "+ data[i][1] +".");
    					return;
    				}
    				if (System.currentTimeMillis() - c.lastFire > 1200) {
    
    					if(c.playerIsFiremaking) {
    						return;
    					}
    
    					final int[] time = new int[3];
    					final int log = data[i][0];
    					final int fire = data[i][3];
    					if(System.currentTimeMillis() - c.lastFire > 3000) {
    						c.startAnimation(getAnimation(c, useWith, withUse));
    						time[0] = 4;
    						time[1] = 3;
    					} else {
    						time[0] = 1;
    						time[1] = 2;
    					}
    
    					c.playerIsFiremaking = true;
    
    					Server.itemHandler.createGroundItem(c, log, coords[0], coords[1], 1, c.getId());
    
    					CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    						@Override
    						public void execute(CycleEventContainer container) {
    							Server.objectHandler.createAnObject(c, fire, coords[0], coords[1]);
    							Server.itemHandler.removeGroundItem(c, log, coords[0], coords[1], false);
    							c.playerIsFiremaking = false;
    							container.stop();
    						}
    						@Override
    						public void stop() {
    
    						}
    					}, time[0]);
    
    					currentTile = new Tiles(c.absX - 1, c.absY, c.heightLevel);
    
    					if (Region.getClipping(c.getX() - 1, c.getY(), c.heightLevel, -1, 0)) {
    						c.getPA().walkTo(-1, 0);
    					} else if (Region.getClipping(c.getX() + 1, c.getY(), c.heightLevel, 1, 0)) {
    						c.getPA().walkTo(1, 0);
    					} else if (Region.getClipping(c.getX(), c.getY() - 1, c.heightLevel, 0, -1)) {
    						c.getPA().walkTo(0, -1);
    					} else if (Region.getClipping(c.getX(), c.getY() + 1, c.heightLevel, 0, 1)) {
    						c.getPA().walkTo(0, 1);
    					}
    
    
    					c.sendMessage("You light the logs.");
    
    					CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    						@Override
    						public void execute(CycleEventContainer container) {
    							c.startAnimation(65535);
    							container.stop();
    						}
    						@Override
    						public void stop() {
    
    						}
    					}, time[1]);
    
    					CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    						@Override
    						public void execute(CycleEventContainer container) {
    							Server.objectHandler.createAnObject(c, -1, coords[0], coords[1]);
    							Server.itemHandler.createGroundItem(c, 592, coords[0], coords[1], 1, c.getId());
    							container.stop();
    						}
    						@Override
    						public void stop() {
    
    						}
    					}, 200);
    
    					c.getPA().addSkillXP(data[i][2] * Config.FIREMAKING_EXPERIENCE, 11);
    					c.turnPlayerTo(c.absX+1, c.absY);
    					c.getItems().deleteItem(data[i][0], c.getItems().getItemSlot(data[i][0]), 1);
    					c.lastFire = System.currentTimeMillis();
    				}
    			}
    		}
    	}
    }
    ?
    no sir that does not work:/
    Reply With Quote  
     

  4. #4  
    Donator


    Join Date
    Mar 2011
    Posts
    2,350
    Thanks given
    1,193
    Thanks received
    824
    Rep Power
    856
    replace new fire model with old one
    Reply With Quote  
     

  5. #5  
    Banned

    Join Date
    Jun 2013
    Posts
    938
    Thanks given
    462
    Thanks received
    171
    Rep Power
    0
    Quote Originally Posted by Pegasus View Post
    replace new fire model with old one
    what is the old model
    id
    Reply With Quote  
     


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. Firemaking Fire
    By Lost Legacy in forum Help
    Replies: 2
    Last Post: 12-27-2012, 04:30 AM
  2. firemaking and cooking on the fire
    By killamess in forum Tutorials
    Replies: 11
    Last Post: 10-05-2009, 11:46 AM
  3. Firemaking with fire disappearance and colored fires
    By tru3 ki11a in forum Tutorials
    Replies: 21
    Last Post: 02-04-2009, 07:46 AM
  4. Replies: 4
    Last Post: 12-23-2008, 09:10 PM
  5. Replies: 54
    Last Post: 07-28-2008, 12:29 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •