Code:
UseItem.ItemonItem(c, itemUsed, useWith);
if((useWith == 1511 || itemUsed == 1511) && (useWith == 946 || itemUsed == 946)) {
Fletching.normal(c, itemUsed, useWith);
} else if(useWith == 946 || itemUsed == 946) {
Fletching.others(c, itemUsed, useWith);
} else if(Fletching.arrows(c, itemUsed, useWith)) {
Fletching.makeArrows(c, itemUsed, useWith);
}
if (c.getFiremaking().isLog(itemUsed)) {
c.getFiremaking().lightFire(c, itemUsed, itemUsedSlot);
}
if (c.getFiremaking().isLog(useWith)) {
c.getFiremaking().lightFire(c, useWith, usedWithSlot);
}
Firemaking
Code:
package server.model.players.skills;
import server.model.players.Client;
import server.clip.region.Region;
import server.model.players.skills.Firemaking;
import server.event.CycleEvent;
import server.event.CycleEventContainer;
import server.event.CycleEventHandler;
import server.Server;
import server.Config;
import server.util.Misc;
import server.world.ItemHandler;
import server.model.objects.Objects;
import server.util.Misc;
/**
* Firemaking.java
*
* @author Spike/Flow/Faris
*
**/
public class Firemaking {
private final Client c;
public Firemaking(final Client c) {
this.c = c;
}
public enum Firemake {
NORMAL(1511, 40, 1, 4266, 30),
OAK(1521, 60, 15, 4266, 45),
WILLOW(1519, 90, 30, 4266, 60),
MAPLE(1517, 135, 45, 4266, 85),
YEW(1515, 200, 60, 4266, 110),
MAGIC(1513, 300, 75, 4266, 135),
RED(7404, 50, 1, 11404, 30),
GREEN(7405, 50, 1, 11405, 30),
BLUE(7406, 50, 1, 11406, 30),
PURPLE(10329, 50, 1, 20001, 30),
WHITE(10328, 50, 1, 20000, 30);
int logID, xp, levelReq, obj, last;
private Firemake(int logID, int xp, int levelReq, int obj, int last) {
this.logID = logID;
this.xp = xp;
this.levelReq = levelReq;
this.obj = obj;
this.last = last;
}
}
public Firemake forLog(int id) {
for (Firemake f : Firemake.values()) {
if (f.logID == id) {
return f;
}
}
return null;
}
public boolean isLog(int id) {
return forLog(id) != null;
}
public void lightFire(final Client c, int logID, int fromSlot) {
Firemake f = forLog(logID);
final int x = c.getX();
final int y = c.getY();
final int last = f.last + Misc.random(5);
final int logid = f.logID;
if (f != null) {
if (System.currentTimeMillis() - c.lastLight > 1800) {
if (c.playerLevel[c.playerFiremaking] >= f.levelReq) {
if (c.getItems().playerHasItem(590) && c.getItems().playerHasItem(f.logID)) {
c.lastLight = System.currentTimeMillis();
c.getItems().deleteItem(f.logID, fromSlot, 1);
c.getPA().addSkillXP(f.xp *Config.FIREMAKING_EXPERIENCE, c.playerFiremaking);
//c.startAnimation(733);
c.getPA().object(f.obj, c.getX(), c.getY(), 0, 10);
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
int timer = last;
@Override
public void execute(CycleEventContainer container) {
//c.startAnimation(-1);
if (timer == 0 && timer != -1) {
c.startAnimation(65535);
container.stop();
}
if (timer > 0 && c != null) {
timer--;
//c.sendMessage("log timer = "+timer +"/"+last +" logId = " +logid);
}
}
@Override
public void stop() {
c.getPA().object(-1, x, y, 1, 10);
c.getItems().createGroundItem(592, x, y, 1);
//c.sendMessage("turned = "+logid +"into ashes");
}
}, 1);
//c.startAnimation(-1);
c.turnPlayerTo(c.getX() + 1, c.getY());
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);
}
}
} else {
c.sendMessage("You need a firemaking level of at least "+f.levelReq+" to burn this log.");
}
}
}
}
}
Would appreciate any help + will rep and thanks!