Jump to content
modulusfrank12

[ABCL10][OpenSource] mfFletcher v1.0 [OpenSource][ABCL10]

Recommended Posts

Features:

-Cuts arrow shafts

-Cuts short bows

-Cuts long bows

 

-Makes headless arrows

-Makes arrows

-Makes bolts

-Makes darts

 

-Strings long bows

-Strings short bows

 

 

Images:

 

1w42gRc.png

 

Download & Source:

Github source

Download

 

Updates:

Aug 16, 2014

-ABCL 10 implemented


 

Edited by modulusfrank12

Share this post


Link to post
Share on other sites

Nice work! Your missing a lot of the ABCL elements though. Your not ABC Sleeping prior to object interaction.

Also there are a few locations were you could have added ABC methods (perform).

 

Warfront1

Alright, I'll realyl implement ABCL10, thanks for reading my code! Really do appreciate it.

 

Edit: ABCL10 Implemented

Edited by modulusfrank12

Share this post


Link to post
Share on other sites

I love all your scripts! I chose this specific fletcher because it has better antiban and reliability then others I've tested.

 

I'm going to make as long a proggy with this script as I can! I'll update it until I'm out of my 5k logs!

 

OnCX2PB.png

Share this post


Link to post
Share on other sites

Had to stop the bot due to failed drunken dwarf random!

 

To anybody curious about the stability of this script, It was running for 1:30:00 flawlessly at around 89k an hour doing maple longs.

 

I'd pay for this script in terms of its performance!

  • Like 1

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Similar Content

    • By sohilpenguins
      Plank Collector
      Hey guys, so I was just going through my computer cleaning out old stuff and found an old script I had made months ago. It's a Plank collector; it has mule support, glory support, and f2p support. I will be releasing the F2p, non-mule support version. I know the ruling works. However, I know some people don't like to or don't want to bother. 
       
      EDIT: I recommend you have 30 hp and a little bit of defence because the skeletons in the wilderness will kill you. If you die the bot will just go back to collecting so dying isnt a big deal once in a while, level 3's WILL DIE EVERYTRIP
      https://tribot.org/repository/script/id/1868-s-plank-collector/
    • By TheHippy
      Hey everyone! before i begin i have to say big shout-out to everyone that helped me to get better at bot scripting and especially to  @JoeDezzy1  for taking the time to explain to me an improved code structure that really help make my scripts not only more clean, but also more loop-able and safe. 
      So i have 2 new open-source scripts that i released to my Pastebin and they are simple scripts that deal with the Varrock  and Canifis agility courses. Below is only the Canifis course scripts because both of them are almost identical scripts. I would like it if anyone could please give me any pointers about my script that could help improve it, especially in the effectiveness of my moveCamera() function.  Also, in my antiBanCheck() function I found that abc_util 'should' checks execute very rarely and i doubt that its enough to be effective (is it because they need to be checked every, lets say, 50ms or so?).
      Hippy's Canifis Agility Course Script:
      //Works well and needs 'ACamera' class found here: https://bitbucket.org/snippets/FinalCalibur/L8MXK (start script in canafis)(Date Created: Sept 4, 2016) package scripts; import java.awt.Color; import java.awt.Graphics; import org.tribot.api.Clicking; import org.tribot.api.DynamicClicking; import org.tribot.api.General; import org.tribot.api.Timing; import org.tribot.api.input.Mouse; import org.tribot.api.interfaces.Positionable; import org.tribot.api.types.generic.Condition; import org.tribot.api.util.abc.ABCUtil; import org.tribot.api2007.Camera; import org.tribot.api2007.GroundItems; import org.tribot.api2007.Inventory; import org.tribot.api2007.Objects; import org.tribot.api2007.Player; import org.tribot.api2007.Skills; import org.tribot.api2007.WebWalking; import org.tribot.api2007.types.RSArea; import org.tribot.api2007.types.RSGroundItem; import org.tribot.api2007.types.RSItem; import org.tribot.api2007.types.RSObject; import org.tribot.api2007.types.RSTile; import org.tribot.script.Script; import org.tribot.script.ScriptManifest; import org.tribot.script.interfaces.Painting; import scripts.fc.api.viewport.ACamera; @ScriptManifest(authors = { "TheHippy" }, category = "Agility", name = "Hippy's Canafis Agility Course") public class CanafisAgilityCourse extends Script implements Painting { //--------------------------------------------------------VARIABLES & CONSTANTS-------------------------------------------------------- private static final Color Color = null; private static final int AGILITY_COIN_ID = 11849; private static final int AGILITY_COIN_TILE_RADIUS = 6; private static final int LOBSTER_ID = 379; private static final int ACS0 = 10819;//tall tree (start) private static final int ACS1 = 10820;//gap private static final int ACS2 = 10821;//gap private static final int ACS3 = 10828;//gap private static final int ACS4 = 10822;//gap private static final int ACS5 = 10831;//harry potter private static final int ACS6 = 10823;//gap private static final int ACS7 = 10832;//gap private static final RSArea AGILITY_AREA1 = new RSArea(new RSTile(3505, 3497, 2) , new RSTile(3509, 3492, 2) );//first roof private static final RSArea AGILITY_AREA2 = new RSArea(new RSTile(3503, 3506, 2) , new RSTile(3498, 3504, 2) ); private static final RSArea AGILITY_AREA3 = new RSArea(new RSTile(3492, 3504, 2) , new RSTile(3487, 3499, 2) ); private static final RSArea AGILITY_AREA4 = new RSArea(new RSTile(3479, 3499, 3) , new RSTile(3475, 3492, 3) ); private static final RSArea AGILITY_AREA5 = new RSArea(new RSTile(3478, 3486, 2) , new RSTile(3483, 3481, 2) ); private static final RSArea AGILITY_AREA6 = new RSArea(new RSTile(3487, 3469, 3) , new RSTile(3503, 3478, 3) ); private static final RSArea AGILITY_AREA7 = new RSArea(new RSTile(3509, 3475, 2) , new RSTile(3515, 3482, 2) ); private static final RSArea EMPTY_AREA = new RSArea(new RSTile(0, 0, 0) , new RSTile(0, 0, 0) ); private static final RSTile AGILITY_WALK_TILE0 = new RSTile(3506, 3487, 0);//ground start private static final RSTile AGILITY_WALK_TILE1 = new RSTile(3506, 3495, 2); private static final RSTile AGILITY_WALK_TILE2 = new RSTile(3498, 3505, 2); private static final RSTile AGILITY_WALK_TILE3 = new RSTile(3487, 3500, 2); private static final RSTile AGILITY_WALK_TILE4 = new RSTile(3479, 3494, 3); private static final RSTile AGILITY_WALK_TILE5 = new RSTile(3479, 3484, 2); private static final RSTile AGILITY_WALK_TILE6 = new RSTile(3501, 3476, 3); private static final RSTile AGILITY_WALK_TILE7 = new RSTile(3510, 3481, 2); private long scriptStartTime; private long scriptTime; private String time; private RSTile playerPosition; private RSTile newTile; private RSItem[] inventoryIds; private RSObject[] obstacle; private ABCUtil ABC_Util; private int startLvl; private int startXP; private int currentLvl; private int currentXP; private int eatAtHP; private long moveCameraTime; private ACamera aCamera = new ACamera(this);//async camera //--------------------------------------------------------RUN-------------------------------------------------------- @Override public void run() { if(onStart()){ while(true){ switch(checkState()){ case 0://retry course println("Agility Step 0"); newTile = AGILITY_WALK_TILE0; newTile = newTile.translate(General.random(-1,1),General.random(-1,1)); agilityCourseStep(newTile, ACS0, EMPTY_AREA); break; case 1: println("Agility Step 1"); agilityCourseStep(AGILITY_WALK_TILE1, ACS1, AGILITY_AREA1); break; case 2: println("Agility Step 2"); agilityCourseStep(AGILITY_WALK_TILE2, ACS2, AGILITY_AREA2); break; case 3: println("Agility Step 3"); agilityCourseStep(AGILITY_WALK_TILE3, ACS3, AGILITY_AREA3); break; case 4: println("Agility Step 4"); agilityCourseStep(AGILITY_WALK_TILE4, ACS4, AGILITY_AREA4); break; case 5: println("Agility Step 5"); agilityCourseStep(AGILITY_WALK_TILE5, ACS5, AGILITY_AREA5); break; case 6: println("Agility Step 6"); agilityCourseStep(AGILITY_WALK_TILE6, ACS6, AGILITY_AREA6); break; case 7: println("Agility Step 7"); agilityCourseStep(AGILITY_WALK_TILE7, ACS7, AGILITY_AREA7); break; } } } } //--------------------------------------------------------START OF METHODS-------------------------------------------------------- //execute once at beggining private boolean onStart(){ println("CanifisAgilityCourse script has started"); scriptStartTime = Timing.currentTimeMillis(); startLvl = Skills.getActualLevel(Skills.SKILLS.AGILITY); startXP = Skills.getXP(Skills.SKILLS.AGILITY); ABC_Util = new ABCUtil(); General.useAntiBanCompliance(true); Mouse.setSpeed(120); eatAtHP = ABC_Util.generateEatAtHP(); moveCameraTime = Timing.currentTimeMillis() + General.random(7000, 40000); Camera.setRotationMethod(Camera.ROTATION_METHOD.ONLY_KEYS); return true; } //checks what to do based off player area private int checkState(){ playerPosition = Player.getPosition(); if(playerPosition.getPlane() == 0){ return 0; } else if(AGILITY_AREA1.contains(playerPosition)){ return 1; } else if(AGILITY_AREA2.contains(playerPosition)){ return 2; } else if(AGILITY_AREA3.contains(playerPosition)){ return 3; } else if(AGILITY_AREA4.contains(playerPosition)){ return 4; } else if(AGILITY_AREA5.contains(playerPosition)){ return 5; } else if(AGILITY_AREA6.contains(playerPosition)){ return 6; } else if(AGILITY_AREA7.contains(playerPosition)){ return 7; } sleep(50); return 8; } //execute the next obstical private void agilityCourseStep(RSTile walkTile, int obstacleId, RSArea currentArea){ obstacle = Objects.findNearest(8, obstacleId); if(obstacle.length > 0 && obstacle[0].isOnScreen()){//click obstical getAgilityCoins(currentArea); Clicking.click(obstacle[0]); Timing.waitCondition(new Condition() { @Override public boolean active() { if(!currentArea.contains(Player.getPosition())){ return true; } antiBanCheck();//while checking, preform antiban sleep(General.randomSD(200,300)); return false; } }, General.random(2600, 6000));//worked too perfectly so a shorter time out is put sleep(General.random(2000, 3000)); }else{//walk to obstical first getAgilityCoins(currentArea); walkToWaitCondition(walkTile, 4000, 6000); getAgilityCoins(currentArea); sleep(General.random(2500, 3300)); obstacle = Objects.findNearest(8, obstacleId); if(obstacle.length > 0){ Clicking.click(obstacle[0]); antiBanCheck(); } } } //if checkState fails, tele to varrock to reset (disabled) /* private void agilityCourseFailSafe(){ GameTab.open(GameTab.TABS.MAGIC); sleep(General.randomSD(500, 1000)); RSInterfaceChild varrockTele = Interfaces.get(218, 16); if(varrockTele != null){ varrockTele.click(); } } */ //check if agility coins are nearby, if so pick them up private void getAgilityCoins(RSArea currentArea){ RSGroundItem[] agilityCoins = GroundItems.find(7, AGILITY_COIN_ID); if(agilityCoins.length > 0){ RSTile coinPosition = agilityCoins[0].getPosition(); if(currentArea.contains(coinPosition) && Player.getPosition().distanceTo(coinPosition) < AGILITY_COIN_TILE_RADIUS){ println("agility coin found"); walkToWaitCondition(agilityCoins[0].getPosition(), 4000, 6000); Timing.waitCondition(new Condition() {//wait until player at agility coin position @Override public boolean active() { if(Player.getPosition() == agilityCoins[0].getPosition()){ println("at agility coin!"); return true; } antiBanCheck();//while checking, preform antiban sleep(General.randomSD(50, 60)); return false; } }, General.random(3000, 4000)); DynamicClicking.clickRSGroundItem(agilityCoins[0], 1); Timing.waitCondition(new Condition() {//continue if no more agiltiy coin after click @Override public boolean active() { RSGroundItem[] agilityCoins = GroundItems.find(7, AGILITY_COIN_ID); if(agilityCoins.length < 1){ return true; } antiBanCheck();//while checking, preform antiban sleep(General.randomSD(50, 100)); return false; } }, General.random(2000, 3000)); } } } //WebWalking with condition private void walkToWaitCondition(Positionable destination, int waitMin, int waitMax){ WebWalking.walkTo(destination, new Condition() { @Override public boolean active() { if(Player.getPosition() == destination){ return true; } antiBanCheck();//while checking, preform antiban sleep(General.randomSD(50, 100)); return false; } }, General.random(waitMin, waitMax)); } //check if player should preform antiban actions private void antiBanCheck(){ if(Skills.getCurrentLevel(Skills.SKILLS.HITPOINTS) <= eatAtHP){ inventoryIds = Inventory.find(LOBSTER_ID); if(inventoryIds.length > 0){ inventoryIds[0].click(); eatAtHP = ABC_Util.generateEatAtHP(); } } if (ABC_Util.shouldCheckTabs()){ println("antiBan shouldCheckTabs execute"); ABC_Util.checkTabs(); } if (ABC_Util.shouldCheckXP()){ println("antiBan shouldCheckXP execute"); ABC_Util.checkXP(); } if (ABC_Util.shouldExamineEntity()){ println("antiBan shouldExamineEntity execute"); ABC_Util.examineEntity(); } if (ABC_Util.shouldMoveMouse()){ println("antiBan shouldMoveMouse execute"); ABC_Util.moveMouse(); } if (ABC_Util.shouldPickupMouse()){ println("antiBan shouldPickupMouse execute"); ABC_Util.pickupMouse(); } if (ABC_Util.shouldRightClick()){ println("antiBan shouldRightClick execute"); ABC_Util.rightClick(); } if (ABC_Util.shouldRotateCamera()){ println("antiBan shouldRotateCamera execute"); ABC_Util.rotateCamera(); } if (ABC_Util.shouldLeaveGame()){ println("antiBan shouldLeaveGame execute"); ABC_Util.leaveGame(); } if(Timing.currentTimeMillis() > moveCameraTime){ println("antiBan custom moveCamera execute"); moveCamera(); moveCameraTime = Timing.currentTimeMillis() + General.random(9000, 40000); } } //custom move camera function private void moveCamera(){ int randomInt = General.random(0, 100); int signInt = 0; if(randomInt > General.random(40, 60)){ signInt = -1; }else{ signInt = +1; } int setAngle = Camera.getCameraAngle() + (signInt * General.random(23, 124)); randomInt = General.random(0, 100); if(randomInt <= General.random(86, 100)){ //86-100% chance to execute aCamera.setCameraAngle(setAngle); } randomInt = General.random(0, 100); signInt = 0; if(randomInt > General.random(40, 60)){ signInt = -1; }else{ signInt = +1; } int setRotation = Camera.getCameraRotation() + (signInt * General.random(23, 174)); randomInt = General.random(0, 100); if(randomInt <= General.random(92, 100)){//92-100% chance to execute aCamera.setCameraRotation(setRotation); } } //draws GUI @SuppressWarnings("static-access") @Override public void onPaint(Graphics g) { currentLvl = Skills.getActualLevel(Skills.SKILLS.AGILITY) - startLvl; currentXP = Skills.getXP(Skills.SKILLS.AGILITY) - startXP; scriptTime = Timing.currentTimeMillis(); scriptTime = scriptTime - scriptStartTime; time = Timing.msToString(scriptTime); g.setColor(Color.GREEN); g.drawString("Script: CanafisAgilityCourse", 350, 330); g.drawString("Time Running: " + time, 350, 315); g.drawString("Gained XP: " + currentXP + "xp" , 350, 300); g.drawString("Gained Lvl: (+" + currentLvl + ")" , 350, 285); } } Thanks!
  • Our picks

    • This release will:

      Fix key event handling issue


      Fix other event handling issue


      Fix RSServer hook


      Update world hopper to have it use OCR, thanks to Todd


      Use proper disposal of old Graphics objects


      Reformat code


      Rearrange code


      Organize code imports


      Apply around 8000 automated code refactorings


      Make preparations for Java 9


      Fix 11 various bugs


      Add more reliable debugging support


      Fix mouseEntered/Exited event dispatching bug


      Fix minimap walking bug where it opens the map


      Fix broken hooks for today's game update
      • 47 replies
    • This update will:

      Fix GE inventory item positioning bug


      Fix broken object hooks
      • 27 replies
    • This release will:

      Fix some ClosedChannelException bug


      Fix bug in RSObject#getAllTiles


      Add game tab support for "Kourend Favour"
      • 15 replies
    • This release will:

      Fix Settings UI placement bug


      Fix game object location bug


      Fix small layout bug making the client shift up and down


      Fix client crashing bug where loading the client with a small display area will cause the client to crash


      Fix annoying Linux bug relating to painting events and peers


      Fix settings saving bug where settings are saved to disk more often than they should


      Fix RSInterface#isBeingDrawn bug affecting a limited amount of people


      Drop Java 1.7 bytecode version for 1.8


      Important: Since the downloadable RS client uses Java 7, it will no longer be compatible with Looking Glass. To make up for this, we will add support for using other clients such as RuneLite (at a later date).


      This change was necessary to allow us to use Java 8 syntax. It also paves the way for Java 9/10/11 support.
      • 40 replies
    • This update will:

      Fix the RSMenuNode bug which also fixes the bug with bank opening


      Fix the incorrect object positions bug


      Fix and re-enable the LG Objects API Accelerator


      Fix the RSObject#getAllTiles bug
      • 22 replies
  • Recently Browsing   0 members

    No registered users viewing this page.

×