- Code: Select all
function toInt(value) { return ~~value; }
function findFullBarrel() {
jMoveStep(jCoord(1, 0));
jWaitStartMove();
jWaitEndMove();
var barrels = jGetObjects(50, jCoord(0, 0), ["barrel"]);
var g = 0;
var i = 0;
for (var i = 0; i < barrels.length; i++) {
var barrel = barrels[g]
jPFMoveOffset_LX(barrel.position(), 1)
waitPFEndMove();
jSleep(1000);
jDoClick(barrel.getID(), 3, 0);
while(!jHaveWindow("Barrel")) jSleep(100);
if(jGetWindow("Barrel").getLabelText(1).indexOf("water") != -1) return barrel;
else g++;
}
}
function getNearest(object) {
var obj = jGetObjects(40, jCoord(0, 0), object);
var min_len = 100500;
var objid = 0;
for (var i = 0; i < obj.length; i++) {
if (obj[i].position().dist(jMyCoords()) < min_len) {
objid = obj[i];
min_len = obj[i].position().dist(jMyCoords());
}
}
return objid;
}
function getWaterFromBarrel () {
while (checkInventory().getItems("invobjs/buckete").length > 0) {
inventory = checkInventory();
var barrel = findFullBarrel();
var bucket = inventory.getItems("buckete")[0];
var bucket_coord = bucket.coord();
var bucket_name = bucket.resName();
bucket.take();
jWaitDrag();
barrel.interactClick(0);
while (jGetDraggingItem().resName() == bucket_name) jSleep(100);
inventory.drop(bucket_coord);
jMoveStep(jCoord(0, 1));
jWaitStartMove();
jWaitEndMove();
}
}
function takeItemsToContainer (itemlist, container, containerwindow, radius) {
if (radius == null) radius = 1;
if (checkInventory().getItems(itemlist).length > 0) {
var inventory = checkInventory();
while (!jGetWindow(containerwindow)){
jPFMoveOffset_LX(container.position(), radius);
waitPFEndMove();
jDoClick(container.getID(),3,0);
jSleep(1500);
}
if (jGetWindow(containerwindow) != -1 && jGetWindow(containerwindow).getInventories()[0].freeSlotsCoords().length > 0) {
jToConsole("Putting Items into the Container");
if (inventory.getItems(itemlist).length > 0);
inventory.getItems(itemlist)[0].transferSuchAll();
jSleep(500);
}
}
jMoveStep(jCoord(0, 0));
return ;
}
function takeItemsToContainers (itemlist, containerlist, containerwindow, radius) {
if (radius == null) radius = 1;
var out = 0;
while (checkInventory().getItems(itemlist).length > 0) {
var inventory = checkInventory();
while (!jGetWindow(containerwindow)){
jPFMoveOffset_LX(containerlist[out].position(), radius);
waitPFEndMove();
jDoClick(containerlist[out].getID(),3,0);
jSleep(1500);
}
if (jGetWindow(containerwindow) != -1 && jGetWindow(containerwindow).getInventories()[0].freeSlotsCoords().length > 0) {
jToConsole("Putting Items into the Container");
if (inventory.getItems(itemlist).length > 0);
inventory.getItems(itemlist)[0].transferSuchAll();
jSleep(500);
}
else {
containerlist.splice(out, 1);
jToConsole("Deleted Full Container");
jMoveStep(jCoord(0, 0));
//out++;
jSleep(500);
}
}
jSleep(1000);
return containerlist;
}
function openCupboard(cupboard, number){
while(jHaveWindow("Cupboard")) {
jAbsClick(jMyCoords(), 1, 0);
if (jHaveWindow("Cupboard")) jSleep(500);
}
while(!jHaveWindow("Cupboard")) {
jPFMoveOffset_LX(cupboard[number].position(), 1);
waitPFEndMove();
jSleep(500);
jDoClick(cupboard[number].getID(), 3, 0);
jSleep(1000);
}
jSleep(100);
jToConsole("Walked to Cupboard Number " + number);
return number;
}
function openChest(chest){
jPFMoveOffset_LX(chest.position(), 1);
waitPFEndMove();
jSleep(500);
jDoClick(chest.getID(), 3, 0);
while(!jHaveWindow("Chest")) jSleep(100);
jToConsole("Walked to Chest");
return;
}
function alertW(title,message){
jPlayBeep(3000);
var blist = ['Exit'];
var selectWindow = jGUIWindow(jCoord(250, 250), jCoord(150, blist.length * 25 + 15), title);
var label = jGUILabel(selectWindow, jCoord(5, 5), message);
for(var i = 0; i < blist.length; i++)
jGUIButton(selectWindow, jCoord(5, 25 + i*25), 100, blist[i]);
selectWindow.toggleCloseButton();
var btext = selectWindow.waitButtonClick();
if(btext == blist[0]){
jExit();selectWindow.destroy();
}
sayVillage(title+ " -> "+message);
}
function getItemsFromContainers (itemlist, containerlist, containerwindow, noofitems, radius) {
//jToConsole(containerlist);
if (radius == null) radius = 1
var out = 0 //containerlist.length - 1;
//jToConsole("Getting");
if (containerlist.length > 0)
while (checkInventory().freeSlotsCoords().length > 0) {
//jToConsole("Getting2");
var g = 0;
while (g < noofitems) {
//jToConsole(containerlist[out]);
//jToConsole(containerlist[containerlist.length - 1]);
var inventory = checkInventory();
if (containerlist.length == 0) {return containerlist; jToConsole("Getting4"); }
var containerlist = containerlist;
while (!jGetWindow(containerwindow)){
jPFMoveOffset_LX(containerlist[out].position(), radius);
waitPFEndMove();
var player_position = jMyCoords();
jDoClick(containerlist[out].getID(),3,0);
jSleep(1500);
}
if (checkInventory().freeSlotsCoords().length > 0) {
//jToConsole("Getting Items from the Container");
if (jGetWindow(containerwindow) != -1 && jGetWindow(containerwindow).getInventories()[0].getItems(itemlist).length > 0) {
var itemsnumbers = jGetWindow(containerwindow).getInventories()[0].getItems(itemlist).length;
jGetWindow(containerwindow).getInventories()[0].getItems(itemlist)[0].transfer();
while (jGetWindow(containerwindow).getInventories()[0].getItems(itemlist).length == itemsnumbers) {jSleep(500); }
g++;
}
jSleep(500);
if (jGetWindow(containerwindow) != null){
if (jGetWindow(containerwindow) != -1 && jGetWindow(containerwindow).getInventories()[0].getItems(itemlist).length < 1) {
jToConsole(containerlist.length + " " + containerwindow + "s left");
//if (containerlist[out] == containerlist[containerlist.length -1]) {
//var containerlist = -1;
//return containerlist;
//}
//jToConsole("Getting11");
containerlist.splice(out, 1);
//containerlist.length -= 1;
//var out = containerlist.length - 1;
jToConsole("Deleted Empty Container");
jAbsClick(player_position, 1, 0);
while (jGetWindow(containerwindow) != null) jSleep(500);
jSleep(500);
}
}
}
else {
//jToConsole("Getting12");
jAbsClick(player_position, 1, 0);
jToConsole("Inventory full");
return containerlist;
}
}
//jToConsole("Getting13");
jAbsClick(player_position, 1, 0);
return containerlist;
}
if (containerlist.length == 0) {
containerlist = [];
return containerlist;
}
jToConsole("Getting14");
jToConsole("Inventory full");
return containerlist;
}
function getItemsFromContainer (itemlist, containerlist, containerwindow, noofitems, radius) { // use noofitems = 100500 for all
if (radius == null) radius = 1
while (checkInventory().freeSlotsCoords().length > 0) {
for (var g = 0; g < noofitems; g++) {
var inventory = checkInventory();
if (containerlist.length == 0) return;
while (!jGetWindow(containerwindow)){
jPFMoveOffset_LX(containerlist.position(), radius);
waitPFEndMove();
var player_pos = jMyCoords();
jDoClick(containerlist.getID(),3,0);
jSleep(1500);
}
if (checkInventory().freeSlotsCoords().length > 0) {
//jToConsole("Getting Items from the Container");
if (jGetWindow(containerwindow) != -1 && jGetWindow(containerwindow).getInventories()[0].getItems(itemlist).length > 0) {
var itemsnumbers = jGetWindow(containerwindow).getInventories()[0].getItems(itemlist).length;
if (noofitems == 100500) jGetWindow(containerwindow).getInventories()[0].getItems(itemlist)[0].transferSuchAll();
else jGetWindow(containerwindow).getInventories()[0].getItems(itemlist)[0].transfer();
while (jGetWindow(containerwindow).getInventories()[0].getItems(itemlist).length == itemsnumbers) {jSleep(500); }
jSleep(500);
}
if (jGetWindow(containerwindow) != -1 && jGetWindow(containerwindow).getInventories()[0].getItems(itemlist).length == 0) {
jAbsClick(player_pos, 1, 0);
return;
//out++;
jSleep(500);
}
}
else {
jAbsClick(player_pos, 1, 0);
jSleep(500);
jToConsole("Inventory full");
return ;
}
if (noofitems == 100500) { jAbsClick(player_pos, 1, 0); return; }
}
jAbsClick(player_pos, 1, 0);
return;
}
jToConsole("Inventory full");
return containerlist;
}
function dropFromCursor(where) { // 1 = inventory
if (jIsDragging()) {
if (where = null) where = 1
if (where = 1) {
if (checkInventory().freeSlots() > 0) checkInventory().drop(checkInventory().freeSlotsCoords()[0]);
jSleep(500);
if (!jIsDragging()) return;
}
while (jIsDragging()) {
jDropObject(0);
jSleep(300);
}
}
}
function findObjectbyBLOB(object, type, type2, type3, type4, type5) { // no water = 64, water = 66, fuel = 65, water and fuel = 67, lit = 85 cooking = 93
var objid = 0;
var g = 0;
var posb = jGetObjects(50, jCoord(0, 0), [object]);
for (var i = 0; i < 50; i++) {
objid = posb[g]
if (objid != null)
if (objid.blob(0) == type) return objid;
if (objid != null)
if (objid.blob(0) == type2) return objid;
if (objid != null)
if (objid.blob(0) == type3) return objid;
if (objid != null)
if (objid.blob(0) == type4) return objid;
if (objid != null)
if (objid.blob(0) == type5) return objid;
g++;
}
}
function selectMultiple(object, type) {
var ta = [];
var ids = [];
while (1) {
var sign = jSelectObject("Select "+ type+ " , click on the ground to stop selecting");
if (sign == null) break;
var name = sign.name();
if (name.indexOf(object) != -1) {
if (ids.indexOf(sign.getID()) != -1) {
jToConsole("ERROR: This "+type+" has been already selected.");
continue;
}
ta.push(sign);
ids.push(sign.getID());
jToConsole(type +" count: " + ta.length);
}
else break;
}
return ta;
}
function getItemsFromSigns (itemlist, signlist, signwindow, noofitems, radius, signval) {
if (radius == null) radius = 1;
if (signval == null) signval = 1;
var out = 0;
var takenitems = 0;
while (checkInventory().freeSlotsCoords().length > 0) {
while (takenitems < noofitems) {
var inventory = checkInventory();
jToConsole(takenitems + " " + noofitems);
while (!jGetWindow(signwindow)){
jPFMoveOffset_LX(signlist[out].position(), radius);
waitPFEndMove();
jDoClick(signlist[out].getID(),3,0);
jSleep(1500);
}
var buildVals = GetBuildValues(signwindow, signval);
jToConsole(buildVals[1]);
if (buildVals[1] == 0) {
signlist.splice(out, 1);
jToConsole("Deleted Empty Sign");
jMoveStep(jCoord(0, 0));
while (jGetWindow(signwindow)) jSleep(500);
}
else {
itemstotake = 0;
if (buildVals[1] > noofitems - takenitems) itemstotake = noofitems - takenitems;
else {
itemstotake = buildVals[1];
jToConsole(itemstotake);
signlist.splice(out, 1);
}
for (var t = 0; t < itemstotake; t++) {
if (checkInventory().freeSlotsCoords().length > 0) {
jPrint("Getting Items from the Container");
itemlength = checkInventory().getItems(itemlist).length
jPrint ("itemlength = "+itemlength);
jTransferBuildItem(signwindow, 1);
jSleep(500);
}
else {
jToConsole("Inventory full");
return signlist;
}
}
jMoveStep(jCoord(0, 0));
jSleep(500);
var takenitems = takenitems + itemstotake;
}
}
return signlist;
}
jToConsole("Inventory full");
return containerlist;
}
//funcs
function putItemsToSigns (itemlist, signlist, signwindow, radius, signval) {
if (radius == null) radius = 1;
if (signval == null) signval = 1;
var out = 0;
while (checkInventory().getItems(itemlist).length > 0) {
var inventory = checkInventory();
while (!jGetWindow(signwindow)){
jPFMoveOffset_LX(signlist[out].position(), radius);
waitPFEndMove();
var player_pos = jMyCoords();
jDoClick(signlist[out].getID(),3,0);
jSleep(1500);
}
var buildvals = GetBuildValues(signwindow, signval);
jToConsole(buildvals[0]);
if (checkInventory().getItems(itemlist).length > 0){
if (jGetWindow(signwindow) != -1 && buildvals[0] > 0) {
jToConsole("Putting Items into the Container");
if (inventory.getItems(itemlist).length > 0) inventory.getItems(itemlist)[0].transferSuchAll();
jSleep(500);
jAbsClick(player_pos, 1, 0);
if (checkInventory().getItems(itemlist).length == 0) return signlist;
}
else {
signlist.splice(out, 1);
jToConsole("Deleted Full Container");
jMoveStep(jCoord(0, 0));
//out++;
jSleep(500);
}
}
}
jSleep(1000);
return signlist;
}
function GetBuildValues(signName, itemNum)
{
var str = jGetBuildValues(signName, itemNum);
var strRes = str.split("/");
var res = [];
for (var i = 0; i < strRes.length; i++){
res[i] = parseInt(strRes[i]);
}
return res;
}
function putItemsToSign (itemlist, signlist, signwindow, radius, signval) {
//if(signval == null) signval = 0;
if (radius == null) radius = 1;
var out = 0;
while (checkInventory().getItems(itemlist).length > 0) {
var inventory = checkInventory();
while (!jGetWindow(signwindow)){
jPFMoveOffset_LX(signlist.position(), radius);
waitPFEndMove();
var player_pos = jMyCoords();
jDoClick(signlist.getID(),3,0);
jSleep(1500);
}
var buildvals = GetBuildValues(signwindow, signval);
jToConsole(buildvals[0]);
if (checkInventory().getItems(itemlist).length > 0){
if (jGetWindow(signwindow) != -1 && buildvals[0] > 0) {
jToConsole("Putting Items into the Container");
if (inventory.getItems(itemlist).length > 0) inventory.getItems(itemlist)[0].transferSuchAll();
jSleep(500);
jAbsClick(player_pos, 1, 0);
if (checkInventory().getItems(itemlist).length == 0) return signlist;
}
if (buildvals[0] < 0) {
jToConsole("Sign Full")
return false;
}
if (jGetWindow(signwindow) != -1) {jSleep(100);}
else {
jToConsole("Sign not seen");
return false;
}
}
jSleep(1000);
return signlist;
}
}
Leksar's pathfinder
pathfinder.japi:
- Code: Select all
function getRandomArbitary(min, max){
return Math.random() * (max - min) + min;
}
function jPFMove_LX(point) {
point = jTilify(point);
var MyX = jMyCoords().x;
var MyY = jMyCoords().y;
if (!jIsPathFree(point)) jPFMove(point);
else jAbsClick(point, 1, 0);
cycles = 0;
wcontinue = true;
while (wcontinue) {
wcontinue = MyX != point.x || MyY != point.y;
jPrint("jPFMove_LX My =" + MyX + " " + MyY + " - " + point.x + " " + point.y);
jSleep(1000);
MyX = jMyCoords().x;
MyY = jMyCoords().y;
if(cycles == 6) {
jPrint("jPFMove_LX trying to move again");
jOffsetClick(jCoord(getRandomArbitary(-2,2),getRandomArbitary(-2,2)),1,0);
jSleep(500);
if (!jIsPathFree(point)) jPFMove(point);
else jAbsClick(point, 1, 0);
cycles = 0
wcontinue = false;
}
cycles++;
}
jPrint("jPFMove ended");
}
function jPFMoveOffset_LX(point, offset) {
offsMoveS=jCoord(0,offset);
offsMoveE=jCoord(offset,0);
offsMoveW=jCoord(-offset,0);
offsMoveN=jCoord(0,-offset);
while (1) {
if(jPFMove(point.add(offsMoveS.mul(11))) > 0) {
jPFMove_LX(point.add(offsMoveS.mul(11)));
return offsMoveS;
}
if(jPFMove(point.add(offsMoveE.mul(11))) > 0) {
jPFMove_LX(point.add(offsMoveE.mul(11)));
return offsMoveE;
}
if(jPFMove(point.add(offsMoveW.mul(11))) > 0) {
jPFMove_LX(point.add(offsMoveW.mul(11)));
return offsMoveW;
}
if(jPFMove(point.add(offsMoveN.mul(11))) > 0) {
jPFMove_LX(point.add(offsMoveN.mul(11)));
return offsMoveN;
}
jPrint("jPFMoveOffset_LX can't find path");
// break;
jOffsetClick(jCoord(getRandomArbitary(-2,2),getRandomArbitary(-2,2)),1,0);
jSleep(500);
}
}
function waitPFEndMove(){
jWaitStartMove(300);
jSleep(100);
while (true) {
jWaitEndMove(10000);
jSleep(200);
if (!jIsMoving()) {
return;
}
}
}
Crafter:
Run in an area with the right tools, and ingredients in cupboards. At the start it will prompt for input cupboards, select the cupboards containing ingredients, or select none to select all.
If there are large chests in sight, product will go in there, if not it will go in cupboards.
Water will be taken from all barrels in the area, don't have barrels with wine/vinegar.
- Code: Select all
//#! name = Crafter
//#! uniq = arcanist_crafter
//#! icon = gfx/invobjs/flour
// Globals
//include("jBotAPITalon");
include("jBotAPIArcanist");
include("jBotAPI");
include("pathfinder");
var inventory = checkInventory();
var cooker;
var out = 0;
// Settings
var actionTimeout = 1000 * 60 * 2; // Lag timeout
var free = inventory.freeSlots();
// Flags
var stopFlag = false;
var cupb = jGetObjects(35, jCoord(0, 0), ["cupboard"]);
var ingredlength = 0;
//var drop = dropFromCursor(0);
var barrel = jGetObjects(35, jCoord(0, 0), ["barrel"]);
/* =========================================================================== */
/* ============================== ÌÎÐÊÎÂÊÀ ============================== */
/* =========================================================================== */
function PumpkinPieMaker() {
this.ingred = ["invobjs/flour", "invobjs/pumpkinflesh", "invobjs/pumpkinflesh"];
this.craft = jSendDoubleAction("craft", "dough_pumpkinpie");
this.dough = ["invobjs/dough-pie-pumpkin"];
this.water = true
this.cauldron = false
this.sausage = false
}
function ApplePieMaker() {
this.ingred = ["invobjs/flour", "invobjs/apple", "invobjs/butter"];
this.craft = jSendDoubleAction("craft", "apdough");
this.dough = ["invobjs/dough-pie-apple"];
this.water = true
this.cauldron = false
this.sausage = false
}
function ChickenSaladMaker() {
this.ingred = ["invobjs/flour", "invobjs/pumpkinflesh", "invobjs/pumpkinflesh"];
this.craft = jSendDoubleAction("craft", "dough_pumpkinpie");
this.dough = ["invobjs/dough-pie-pumpkin"];
this.water = false
this.cauldron = false
this.sausage = false
}
function RennetMaker() {
this.ingred = ["invobjs/flour", "invobjs/pumpkinflesh", "invobjs/pumpkinflesh"];
this.craft = jSendDoubleAction("craft", "dough_pumpkinpie");
this.dough = ["invobjs/wurst"];
this.water = false
this.cauldron = true
this.sausage = false
}
function CowChorizoMaker() {
this.ingred = ["invobjs/intestines", "invobjs/meat-cow", "meat-cow"];
this.craft = jSendDoubleAction("craft", "wurst_cowchorizo");
this.dough = ["invobjs/wurst"];
this.water = false;
this.cauldron = false;
this.sausage = true;
}
function BoarBoudinMaker() {
this.ingred = ["invobjs/intestines", "invobjs/meat-pig", "invobjs/meat-cow"];
this.craft = jSendDoubleAction("craft", "wurst_boarboudin");
this.dough = ["invobjs/wurst"];
this.water = false;
this.cauldron = false;
this.sausage = true;
}
function LambSausageMaker() {
this.ingred = ["invobjs/intestines", "invobjs/meat-pig", "invobjs/meat-sheep"];
this.craft = jSendDoubleAction("craft", "wurst_lambsausages");
this.dough = ["invobjs/wurst"];
this.water = false;
this.cauldron = false;
this.sausage = true;
}
function ChickenChorizoMaker() {
this.ingred = ["invobjs/intestines", "invobjs/meat-chicken", "meat-sheep"];
this.craft = jSendDoubleAction("craft", "wurst_chickenchorizo");
this.dough = ["invobjs/wurst"];
this.water = false;
this.cauldron = false;
this.sausage = true;
}
function BoarBaloneyMaker() {
this.ingred = ["invobjs/intestines", "invobjs/meat-pig", "invobjs/meat-pig","invobjs/meat-pig"];
this.craft = jSendDoubleAction("craft", "wurst_boarbaloney");
this.dough = ["invobjs/wurst"];
this.water = false;
this.cauldron = false;
this.sausage = true;
}
function PigletMaker() {
this.ingred = ["invobjs/intestines", "invobjs/meat-pig"];
this.craft = jSendDoubleAction("craft", "wurst_piglet");
this.dough = ["invobjs/wurst"];
this.water = false;
this.cauldron = false;
this.sausage = true;
}
function TinyAbacusMaker() {
this.ingred = ["invobjs/board",
"invobjs/branch","invobjs/branch","invobjs/branch","invobjs/branch",
"invobjs/nugget-tin","invobjs/nugget-tin","invobjs/nugget-tin",
"invobjs/nugget-castiron","invobjs/nugget-castiron"];
this.craft = jSendDoubleAction("craft", "tinyabacus");
this.dough = ["invobjs/tinyabacus"];
this.water = false;
this.cauldron = false;
this.sausage = false;
}
function BearBangerMaker() {
this.ingred = ["invobjs/intestines", "invobjs/meat-pig", "invobjs/meat-pig", "invobjs/meat-bear", "invobjs/meat-bear"];
this.craft = jSendDoubleAction("craft", "wurst_bigbearbanger");
this.dough = ["invobjs/wurst"];
this.water = false;
this.cauldron = false;
this.sausage = true;
}
function FlourMaker() {
this.ingred = ["invobjs/seed-wheat", "invobjs/seed-wheat"];
this.craft = jSendDoubleAction("craft", "flour");
this.dough = ["invobjs/flour"];
this.water = true;
this.cauldron = false;
this.sausage = false;
this.flour = true;
}
function SoldierMaker() {
this.ingred = ["invobjs/nugget-tin", "invobjs/nugget-tin", "invobjs/nugget-tin", "invobjs/nugget-tin", "invobjs/nugget-tin",
"invobjs/nugget-tin", "invobjs/nugget-tin", "invobjs/nugget-tin", ];
this.craft = jSendDoubleAction("craft", "tinsoldier");
this.dough = ["invobjs/tinsoldier"];
this.crucible = true;
this.fuel = "coal";
this.fuelcup = selectMultiple("cupboard", "Fuel Cupboards");
this.tool = "alloyer";
this.toolwindow = "Crucible";
}
function OnionMaker() {
this.ingred = ["invobjs/herbs/chantrelle", "invobjs/onion", "invobjs/dough"];
this.craft = jSendDoubleAction("craft", "dough_pirozhki");
this.dough = ["invobjs/dough-pirozhki"];
}
function BreadMaker() {
this.ingred = ["invobjs/flour"];
this.craft = jSendDoubleAction("craft", "dough");
this.dough = ["invobjs/dough"];
this.water = true;
}
/*==============================Êðîï÷èêè============================================*/
function ScanCup4Ingredients2(ObjCook,ObjCupboard){
jWaitWindow("Cupboard",3000);
ObjCook.ingred.forEach(function(entry) {
quantity=jGetWindow("Cupboard").getInventories()[0].getItems(entry).length;
jPrint(quantity)
if(quantity > 0){
CookVars.cups.push(ObjCupboard.getID());
}
return;
});
}
// ArrayCupboard[ingred] [cupboard jGob]
function ScanCup4Ingredients(containerlist){
ArrayCupboard = [];
IngredCupboard = [];
var ObjCupboard = [];
var cupboards = containerlist;
// for(var z = 0; z < cooker.ingred.length; z++) { var ObjCupboard[z] = []; }
for(var i = 0; i < cupboards.length; i++) {
openCupboard(cupboards, i);
jWaitWindow("Cupboard",3000);
//jToConsole("Cupboards Searched = "+ i);
//jToConsole(ObjCupboard);
for (var k = 0; k < cooker.ingred.length; k++){
//jToConsole("ObjCupboard length" + ObjCupboard.length);
//jToConsole(ObjCupboard);
if(ObjCupboard.length < k + 1) ObjCupboard.push([]);
//jToConsole("Ingredient" + ObjCupboard.length);
//jToConsole(ObjCupboard);
if(jGetWindow("Cupboard").getInventories()[0].getItems(cooker.ingred[k]).length > 0){
ObjCupboard[k].push(cupboards[i]);
jToConsole("Cupboards of "+ cooker.ingred[k] + " found = "+ObjCupboard[k].length);
//jToConsole(ObjCupboard);
}
}
}
jAbsClick(jMyCoords(), 1, 0);
return ObjCupboard;
}
function filltool(tooltype, toolwindow, fueltype){
if (jGetWindow(toolwindow).getMeterValue(1) < 6){
var coal = checkInventory().getItems(fueltype);
coal[0].take();
jWaitDrag();
var tool = findObjectbyBLOB(tooltype, 0,0,0,0);
tool.interactClick(0);
jSleep(1000);
}
while (!jGetWindow(toolwindow)){
var tool = findObjectbyBLOB(tooltype, 0,0,0,0);
//jPFMoveOffset_LX(alloyer.position(), 1);
//waitPFEndMove();
jDoClick(tool.getID(),3,0);
jSleep(1500);
}
jGetWindow(toolwindow).pushButton("Light");
}
function search(items, cookno) {
var i = 0;
for (var i = 0; i < (cookno - 1); i++) {
cupno = getRandomArbitary(0, cupb.length);
cupno = toInt(cupno);
jPFMoveOffset_LX(cupb[cupno].position(), 1);
waitPFEndMove();
jSleep(500);
jDoClick(cupb[cupno].getID(), 3, 0);
while(!jHaveWindow("Cupboard"))
jSleep(100);
var g = 0;
var emptycheck = 0;
for (var g = 0; g < items.length; g++) {
var inventory = checkInventory();
var ingred_inventory = inventory.getItems(items);
var open_cupboard = jGetWindow("Cupboard");
var current_cupboard = jGetWindow("Cupboard").getInventories()[0];
var currentingred = current_cupboard.getItems(items[g]);
if (currentingred.length > 0) {
currentingred[0].transfer();
jSleep(500);
}
else {
emptycheck++;
//jMoveStep(jCoord(0, 0));
}
jToConsole(emptycheck); //debugging
if (emptycheck == items.length)
delete cupb[cupno];
}
jSleep(1000);
//if jGetWindow("Cupboard")
}
}
function mainBaker() {
jDropLastWindow();
var blist = ["Pumpkin Pie", "Apple Pie","Cow Chorizo", "Boar Boudin", "Chicken Salad","Lamb Sausages",
"Chicken Chorizo","Boar Baloney", "Piglet Wurst","Big Bear Banger", "Tiny Abacus", "Flour", "Tin Soilder", "Onion and Chantrelle Bread", "Bread", "Exit"];
var selectWindow = jGUIWindow(jCoord(250, 250), jCoord(110, blist.length * 25 + 15), "Farming");
var label = jGUILabel(selectWindow, jCoord(5, 5), "Select food type:");
for(var i = 0; i < blist.length; i++)
jGUIButton(selectWindow, jCoord(5, 25 + i*25), 100, blist[i]);
selectWindow.toggleCloseButton();
var btext = selectWindow.waitButtonClick();
if(btext == blist[0]) cooker = new PumpkinPieMaker();
if(btext == blist[1]) cooker = new ApplePieMaker();
if(btext == blist[2]) cooker = new CowChorizoMaker()
if(btext == blist[3]) cooker = new BoarBoudinMaker();
if(btext == blist[4]) cooker = new ApplePieMaker();
if(btext == blist[5]) cooker = new LambSausageMaker();
if(btext == blist[6]) cooker = new ChickenChorizoMaker();
if(btext == blist[7]) cooker = new BoarBaloneyMaker();
if(btext == blist[8]) cooker = new PigletMaker();
if(btext == blist[9]) cooker = new BearBangerMaker();
if(btext == blist[10]) {cooker = new TinyAbacusMaker(); ingredlength = 13 }
if(btext == blist[11])cooker = new FlourMaker();
if(btext == blist[12])cooker = new SoldierMaker();
if(btext == blist[13])cooker = new OnionMaker();
if(btext == blist[14])cooker = new BreadMaker();
if(btext == blist[blist.length - 1]) {selectWindow.destroy(); return;}
selectWindow.destroy();
if (ingredlength == 0) ingredlength = cooker.ingred.length;
var outtype = jGetObjects(35, jCoord(0, 0), ["lchest"]); outtypewindow = "Chest";
if (outtype.length < 1) {var outtype = jGetObjects(35, jCoord(0, 0), ["cupboard"]); outtypewindow = "Cupboard";}
/*
jDropLastWindow();
var blist = ["Large Chests", "Cupboards", "Exit"];
var selectWindow = jGUIWindow(jCoord(250, 250), jCoord(110, blist.length * 25 + 15), "Farming");
var label = jGUILabel(selectWindow, jCoord(5, 5), "Select Out type:");
for(var i = 0; i < blist.length; i++)
jGUIButton(selectWindow, jCoord(5, 25 + i*25), 100, blist[i]);
selectWindow.toggleCloseButton();
var btext = selectWindow.waitButtonClick();
if(btext == blist[0]) {outtype = jGetObjects(35, jCoord(0, 0), ["lchest"]); outtypewindow = "Chest";}
if(btext == blist[1]) {outtype = jGetObjects(35, jCoord(0, 0), ["cupboard"]); outtypewindow = jGetWindow("Cupboard");}
if(btext == blist[blist.length - 1]) {selectWindow.destroy(); return;}
selectWindow.destroy();
*/
//jToConsole(ingredlength);
var cubbz = [];
var cubbz = selectMultiple("cupboard", "In containers");
if (cubbz.length < 1) var cubbz = jGetObjects(35, jCoord(0, 0), ["cupboard"]);
var cupboardlist = ScanCup4Ingredients(cubbz);
if (cupboardlist.length < cooker.ingred.length) {
jToConsole("Cannot find all ingredients");
jExit();
}
jSleep(500);
while (1) {
if (cooker.fuel != null) var freeSlots = checkInventory().freeSlots() - 1;
else var freeSlots = checkInventory().freeSlots();
var cookno = freeSlots / (ingredlength);
var cookno = toInt(cookno);
jToConsole ("Items Cook per inventory " + cookno);
jToConsole ("Number of Ingredients per item " + ingredlength);
var takeningred = cooker.ingred;
var emptycupboard = 0;
var currentingred = 0;
var cubbs = cupboardlist;
jToConsole (cooker.ingred);
for (var currentingred = 0; currentingred < cooker.ingred.length; currentingred++) {
getItemsFromContainers (cooker.ingred[currentingred], cubbs[currentingred], "Cupboard", cookno, 1);
jAbsClick(jMyCoords(), 1, 0);
jSleep(1000);
jSleep(1000);
/* var stufftaken = 0;
while (stufftaken < cookno) {
drinkWater();
if (!jHaveWindow("Cupboard")) cupno = openCupboard(cubbs[currentingred], toInt(getRandomArbitary(0, cubbs.length)));
if (jHaveWindow("Cupboard")!= -1) {
jSleep(500);
stuffincupb = jGetWindow("Cupboard").getInventories()[0].getItems(cooker.ingred[currentingred]);
//jToConsole(cooker.ingred[currentingred] +" in Cupboard " +stuffincupb.length);
jSleep(500);
if (stuffincupb.length == 0) {
//jToConsole("Empte Cupboard Deleted");
//cubbs.splice(cupno, 1);
jMoveStep(jCoord(0, 0));
jSleep(300);
}
if (stuffincupb.length > 0) {
if (stuffincupb[0].isActual()) {
stuffincupb[0].transfer();
stufftaken++;
jSleep(500);
jToConsole("Stuff Taken "+ stufftaken);
}
}
}
//jMoveStep(jCoord(0, 1));
jToConsole ("Current Ingredient: " + currentingred);
jSleep(500);
} */
}
cooker.craft;
jWaitCraft();
jToConsole("Crafing Stuff");
if (cooker.sausage == true) {
var grinder = findObjectbyBLOB("mgrind", 2, 2, 2, 2)
jPFMoveOffset_LX(grinder.position(), 1);
waitPFEndMove();
jDoClick(grinder.getID(),3,0);
jSleep(1000);
}
if (cooker.flour == true) {
var quern = findObjectbyBLOB("quern", 0, 0, 0, 0);
jPFMoveOffset_LX(quern.position(), 1);
waitPFEndMove();
jDoClick(quern.getID(),3,0);
jSleep(1000);
}
if (cooker.crucible == true) {
var stopflag = false;
while (stopflag == false){
var fuel = checkInventory().getItems(cooker.fuel);
if (fuel.length < 1) getItemsFromContainers (cooker.fuel, cooker.fuelcup, "Cupboard", 1, 1);
while (!jGetWindow(cooker.toolwindow)){
var tewl = findObjectbyBLOB(cooker.tool, 0,0,0,0);
jPFMoveOffset_LX(tewl.position(), 1);
waitPFEndMove();
var player_pos = jMyCoords();
jDoClick(tewl.getID(),3,0);
jSleep(1500);
}
filltool(cooker.tool, cooker.toolwindow, cooker.fuel);
if (jGetWindow(cooker.toolwindow).getMeterValue(1) > 5) var stopflag = true;
}
}
if (jGetHungry() < 55) { jLogout(); jExit(); }
while (checkInventory().getItems(cooker.dough).length < cookno) {
if (cooker.water == true) getWaterFromBarrel();
jCraftItem(true);
jWaitProgress(actionTimeout);
jSleep(500);
dropFromCursor(1);
drinkWater(30);
}
jToConsole("End Of Crafting");
var inventory = checkInventory();
var outtype = takeItemsToContainers (cooker.dough, outtype, outtypewindow);
}
}
mainBaker();
Auto Butcher:
- Code: Select all
//#! name = Butcherer
//#! uniq = arcanist_butcher
//#! icon = gfx/invobjs/meat-cow
// Globals
include("jBotAPIArcanist");
include("jBotAPI");
include("pathfinder");
var inventory = checkInventory();
//var cupb = jGetObjects(35, jCoord(0, 0), ["cupboard"]);
var corpse = jGetObjects(35, jCoord(0, 0), ["cdv"]);
function mainbutcher(list, listwindow) {
var i = 0;
while ( i < corpse.length) {
jPFMoveOffset_LX(corpse[i].position(), 1);
waitPFEndMove();
jSleep(1000);
while (jIsMoving() || jMyCoords().dist(corpse[i].position()) > 11) jSleep(500);
jDoClick(corpse[i].getID(),3,0);
jWaitPopup(3000);
jSelectContextMenu("Butcher");
while (checkInventory().freeSlots() > 2 && corpse[i].blob(0) == 2) jSleep(500);
jMoveStep(jCoord(0, 0));
if (corpse[i].blob(0) == 4) {
jDoClick(corpse[i].getID(),3,0);
jWaitPopup(3000);
jSelectContextMenu("Collect Bones");
jWaitProgress(actionTimeout);
}
jSleep(500);
dropFromCursor(1);
drinkWater(30);
list = takeItemsToContainers (["intestines", "meat", "bone"] , list, listwindow);
if (!corpse[i].isActual()) i++;
}
}
function intro() {
jDropLastWindow();
var blist = ["Cupboards", "Large Chests", "Exit"];
var selectWindow = jGUIWindow(jCoord(250, 250), jCoord(110, blist.length * 25 + 15), "Select Out Type");
var label = jGUILabel(selectWindow, jCoord(5, 5), "Select food type:");
for(var i = 0; i < blist.length; i++)
jGUIButton(selectWindow, jCoord(5, 25 + i*25), 100, blist[i]);
selectWindow.toggleCloseButton();
var btext = selectWindow.waitButtonClick();
if(btext == blist[0]) {var list = jGetObjects(15, jCoord(0, 0), ["cupboard"]); var listwindow = "Cupboard"; }
if(btext == blist[1]) {var list = selectMultiple("lchest", "chests"); var listwindow = "Chest";}
if(btext == blist[blist.length - 1]) {selectWindow.destroy(); return;}
selectWindow.destroy();
mainbutcher(list, listwindow);
}
intro();
Nuggify!
- Code: Select all
//#! name = Nuggeter
//#! uniq = arcanist_nuggs
//#! icon = gfx/invobjs/nugget-metal
// Globals
include("jBotAPI");
include("pathfinder");
var inventory = checkInventory();
//var cupb = jGetObjects(35, jCoord(0, 0), ["cupboard"]);
//var corpse = jGetObjects(35, jCoord(0, 0), ["cdv"]);
function fillcrucible(){
if (jGetWindow("Crucible").getMeterValue(1) < 6){
var coal = checkInventory().getItems("coal");
coal[0].take();
jWaitDrag();
alloyer = findObjectbyBLOB("alloyer", 0,0,0,0);
alloyer.interactClick(0);
jSleep(1000);
}
while (!jGetWindow("Crucible")){
alloyer = findObjectbyBLOB("alloyer", 0,0,0,0);
//jPFMoveOffset_LX(alloyer.position(), 1);
//waitPFEndMove();
jDoClick(alloyer.getID(),3,0);
jSleep(1500);
}
jGetWindow("Crucible").pushButton("Light");
}
function mainnuggeter(list, listwindow) {
while(1) {
var i = 0;
while (!jGetWindow("Crucible")){
alloyer = findObjectbyBLOB("alloyer", 0,0,0,0);
jPFMoveOffset_LX(alloyer.position(), 1);
waitPFEndMove();
var player_pos = jMyCoords();
jDoClick(alloyer.getID(),3,0);
jSleep(1500);
}
fillcrucible();
if(jGetWindow("Crucible")) {
if (checkInventory().freeSlots() >=10) {
jGetWindow("Crucible").pushButton("Light");
jSendDoubleAction("craft", "nuggify");
jWaitCraft();
while (checkInventory().freeSlots() > 10) {
jSleep(500);
jCraftItem(true);
while (jHaveHourglass () && checkInventory().freeSlots() > 10) jSleep(500)
fillcrucible();
dropFromCursor(1);
drinkWater(30);
}
jAbsClick(player_pos, 1, 0);
jSleep(1000);
}
list = takeItemsToContainers (["nugget"] , list, listwindow);
}
}
}
function intro() {
jDropLastWindow();
var blist = ["Cupboards", "Large Chests", "Exit"];
var selectWindow = jGUIWindow(jCoord(250, 250), jCoord(110, blist.length * 25 + 15), "Select Out Type");
var label = jGUILabel(selectWindow, jCoord(5, 5), "Select food type:");
for(var i = 0; i < blist.length; i++)
jGUIButton(selectWindow, jCoord(5, 25 + i*25), 100, blist[i]);
selectWindow.toggleCloseButton();
var btext = selectWindow.waitButtonClick();
if(btext == blist[0]) {var list = selectMultiple("cupboard", "Nugg Cubbs");
if (list == null) var list = jGetObjects(15, jCoord(0, 0), ["cupboard"]); var listwindow = "Cupboard"; }
if(btext == blist[1]) {var list = jGetObjects(15, jCoord(0, 0), ["lchest"]); var listwindow = "Chest";}
if(btext == blist[blist.length - 1]) {selectWindow.destroy(); return;}
selectWindow.destroy();
mainnuggeter(list, listwindow);
}
intro();