Some times it starts on another rock before last one is finished and is a bit slow on detecting new rocks.
Anyways it works and you put in some much appreciated time and effort, Thanks!
been running for 2 days now Works well!
Thanks!
I had to log the script in to make it work but it is working! I may attempt to tweak it to have a timer and maybe a ores per hour counter or something. Cheers!
Is there a particular reason for the latter half of this suggestion?
I've found that when run as suggested, the script often struggles to locate objects/rocks, as others in this thread have commented on. It functions, but often goes through several attempts and multiple camera rotations before detecting any rocks at all.
I found that upon changing settings to DirectX, the script runs much more smoothly for me.
I thank you very much for this contribution. Performs flawlessly for many hours.
Opengl and DirectX have slightly different colors, so if this script uses colors you might want to go into ACA and change things around.
Make sure birghtness is all the way up I've had a problem with that before and had to rewrite all my scripts :x
I have just update the color's :-)
A couple things to note:
1. Running with DirectX does help the script find objects/ore easier.
2. The color changes suggested by miningboy11 (LADDER_DOWN_COLOR = 1068910 & BANK_BOOTH_COLOR = 7706818) helped the script when trying to locate the bank and ladder down.
With these changes in mind, the script was able to work properly with little fuss, for me at least.
Last edited by davyfarra; 11-20-2015 at 09:28 PM.
Regardless, the script ran for a few hundred coal with these changes rather than not running at all
I think i fix it, I'm new to ACA.
Simba Code:| |
| 1. Have pickaxe in FIRST inventory slot or equipped |
| 2. Start near the ladders above the mining guild |
| 3. Have camera zoomed all the way out |
| 4. I recommend wearing no clothing |
\_____________________________________________________________________________}
{==============================================================================\
| Features |
|==============================================================================|
| |
| * Unlimited players * Antiban |
| * Custom script * Supports ANY pickaxe |
| * Detailed progress report * Efficient rock finding/banking |
| * Supports Coal * Plus many more! |
\_____________________________________________________________________________}
{==============================================================================|
| Credits |
|==============================================================================|
| |
| * The Mayor -> for everything |
| * Everyone who helped me on the forums/IRC |
| * Everyone who has posted progress reports and/or bugs |
\_____________________________________________________________________________}
program guildMiner;
{$DEFINE SMART} // Always have this to load smart
{$I SRL-6/SRL.simba} // To load the SRL include files
{$I SPS/lib/SPS-RS3.Simba} // To load the SPS include files
const
SCRIPT_VERSION = '1';
const
COAL_ORE_COLOR = 2303783;
LADDER_DOWN_COLOR = 2382973;
LADDER_UP_COLOR = 4346199;
IRON_DOOR_COLOR = 3887956; // So the bot does not go out the bounderies of the mining guild
BANK_BOOTH_COLOR = 4873073;
var
mining_guild, mining_dungeon, ladder, bankz: TSPSArea;
exp_gained : integer;
total_coal_ore : integer;
currentSlot : integer; //to count how many items mined in bagpack
procedure declarePlayers();
begin
setLength(players, 1);
with players[0] do
begin
loginName := 'zezima';
password := 'iloveyou';
isActive := true;
isMember := true;
end
currentPlayer := 0;
end;
procedure informationScreen();
begin
smartImage.clear;
smartImage.drawText('Total coal ore mined : ' + ToStr(total_coal_ore),point(0, 0), 'UpCharsEx', true, clWhite);
smartImage.drawText('Experience gained : ' + ToStr(exp_gained),point(0, 30), 'UpCharsEx', true, clWhite);
end;
procedure runToGuild();
var
pathToMine: TPointArray;
begin
if not isLoggedIn() then
exit;
pathToMine := [Point(240, 222), Point(255 + random(7), 280 + random(9))];
if mining_guild.walkPath(pathToMine) then
minimap.waitPlayerMoving()
else
writeLn('We failed to walk to the mine');
end;
procedure useLadderDown();
var
x, y, i: integer;
TPA: TPointArray;
ATPA: T2DPointArray;
clicked : boolean;
clockTimer : TTimeMarker;
begin
if not isLoggedIn() then
exit;
begin
clockTimer.start();
repeat
clicked := false;
findColorsSpiralTolerance(x, y, TPA, LADDER_DOWN_COLOR, mainScreen.getBounds(), 5, colorSetting(2, 0.07, 1.47));
if (Length(TPA) < 1) then
exit;
ATPA := TPA.toATPA(30, 30);
ATPA.filterBetween(0, 10); //I added this line
ATPA.sortFromMidPoint(mainscreen.playerPoint);
smartImage.debugATPA(ATPA);
for i := 0 to high(ATPA) do
begin
if (clockTimer.getTime() > 5000) then
exit;
mouse(middleTPA(ATPA[i]), MOUSE_MOVE);
if isMouseOverText(['limb-down'], 500 + random(250)) then
begin
fastClick(MOUSE_LEFT);
smartImage.clear;
informationScreen();
clicked := true;
break;
end;
end;
wait(5000 + random(1000));
until clicked = true;
end;
end;
procedure runToRock();
var
pathToMine: TPointArray;
begin
if not isLoggedIn() then
exit;
pathToMine := [Point(215, 229), Point(250, 230), Point(273, 225 + random(6)), Point(285 + random(7), 233)];
if mining_dungeon.walkPath(pathToMine) then
minimap.waitPlayerMoving()
else
runToGuild();
//writeLn('We failed to walk to the mine');
end;
procedure Load_Antiban;
begin
case Random(100) of
10: RandomRClickItem();
20: MouseOffClient(Random(5));
30: RandomCompass(0, 180, false);
40: RandomCompass(0, 0, false);
50: MouseOffClient(Random(5));
60: MouseMovingObject();
70: SleepAndMoveMouse(200 + Random(50));
90: PickUpMouse();
95: gameTabs.openTab(TAB_EQUIPMENT);
100: gameTabs.openTab(TAB_STATS);
end;
end;
procedure checkForCoalOre();
begin
if (tabBackpack.isItemInSlot(currentSlot+1)) then
begin
total_coal_ore := total_coal_ore + 1;
exp_gained := exp_gained + 50;
writeLn('COAL ORE FOUND! ', currentSlot);
currentSlot := currentSlot + 1;
end else
writeLn('COAL ORE NOT FOUND!', currentSlot);
end;
procedure mineRocks();
var
x, y, i: integer;
TPA: TPointArray;
ATPA: T2DPointArray;
expGainz : integer;
tries : boolean;
aantal : integer;
currentRock : TPoint;
PBox: TBox;
colors: TIntegerArray = [
1250581,
1316117];
begin
if not isLoggedIn() then
exit;
expGainz := -1;
aantal := 0;
tries := true;
PBox := IntToBox(270, 150, 302, 230); //player position
smartImage.drawBox(PBox);
repeat
//writeLn('exp gainzz : ', expGainz, ' xp : ', chatbox.getXP());
//if (((expGainz <> chatbox.getXP()) and (tries >= 2 + random(2))) or tries >= 8) then
writeLn('trying...', mainscreen.isPlayerAnimating(), ' currentrock : ', currentRock);
mouse(currentRock, MOUSE_MOVE, MOUSE_HUMAN);
if ((not mainscreen.isPlayerAnimating()) or tries = true) then
begin
if (not gameTabs.isTabActive(TAB_BACKPACK)) then
gameTabs.openTab(TAB_BACKPACK);
tries := false;
//expGainz := chatbox.getXP();
if (findColorsSpiralTolerance(x, y, TPA, IRON_DOOR_COLOR, PBox, 9, colorSetting(2, 0.08, 0.55))) then
begin
runToRock();
writeLn('got bar');
end;
if (aantal >= 4) then
begin
RandomCompass(0, 360, false);
wait(RandomRange(1000, 2000));
end;
setLength(TPA, 0);
findColorsSpiralTolerance(x, y, TPA, COAL_ORE_COLOR, mainScreen.getBounds(), 3, colorSetting(2, 0.00, 0.49)); // 2303526
writeLn('test: ', aantal);
if (Length(TPA) < 1) then
begin
RandomCompass(0, random(360), false);
exit;
end;
ATPA := TPA.toATPA(30, 30);
ATPA.filterBetween(0, 10); //I added this line
ATPA.sortFromMidPoint(mainscreen.playerPoint);
smartImage.debugATPA(ATPA);
for i := 0 to high(ATPA) do
begin
mouseSpeed = 20 + random(30);
case Random(4) of
0: mouse(middleTPA(ATPA[i]), MOUSE_MOVE, MOUSE_BREAK);
1: mouse(middleTPA(ATPA[i]), MOUSE_MOVE, MOUSE_ACCURATE);
2: mouse(middleTPA(ATPA[i]), MOUSE_MOVE, MOUSE_HUMAN);
3: missMouse(middleTPA(ATPA[i]));
end;
if isMouseOverText(['ine Coal'], 500 + random(250)) then
begin
//fastClick(MOUSE_LEFT);
multiClick(middleTPA(ATPA[i]), 50, 2);
currentRock := middleTPA(ATPA[i]);
smartImage.clear;
informationScreen();
wait(100 + random(500));
Load_Antiban;
aantal := 0;
break;
end;
end;
end;
aantal := aantal + 1;
wait(5000 + random(500));
checkForCoalOre();
if (RandomRange(1, 10) = 5) then
begin
MouseOffClient(Random(5));
wait(RandomRange(5000, 10000));
end;
until (not isLoggedIn()) or (tabBackpack.isFull());
end;
procedure runToLadderUp();
var
pathToMine: TPointArray;
begin
if not isLoggedIn() then
exit;
minimap.clickCompass();
pathToMine := [Point(300, 233), Point(268, 236), Point(235, 230)] ;
if ladder.walkPath(pathToMine) then
minimap.waitPlayerMoving()
else
writeLn('We failed to walk to the mine');
end;
procedure runToBank();
var
pathToMine: TPointArray;
p : TPoint;
clockTimer : TTimeMarker;
begin
clockTimer.start();
repeat
if not isLoggedIn() then
exit;
if (minimap.findSymbol(p, MM_SYMBOL_BANK, minimap.getBounds())) then
begin
pathToMine := [Point(259, 293), Point(277, 247), Point(235, 224)];
if bankz.walkPath(pathToMine) then
minimap.waitPlayerMoving()
else
writeLn('We failed to walk to the mine');
end;
wait(2000);
until clockTimer.getTime() > 10000;
end;
procedure useLadderUp();
var
x, y, i: integer;
TPA: TPointArray;
ATPA: T2DPointArray;
clicked : boolean;
clockTimer : TTimeMarker;
begin
if not isLoggedIn() then
exit;
begin
clockTimer.start();
repeat
clicked := false;
findColorsSpiralTolerance(x, y, TPA, LADDER_UP_COLOR, mainScreen.getBounds(), 5, colorSetting(2, 0.23, 0.08));
if (Length(TPA) < 1) then
runToBank();
ATPA := TPA.toATPA(30, 30);
ATPA.filterBetween(0, 10); //I added this line
ATPA.sortFromMidPoint(mainscreen.playerPoint);
smartImage.debugATPA(ATPA);
for i := 0 to high(ATPA) do
begin
if (clockTimer.getTime() > 5000) then
exit;
mouse(middleTPA(ATPA[i]), MOUSE_MOVE);
if isMouseOverText(['limb-up'], 500 + random(250)) then
begin
fastClick(MOUSE_LEFT);
smartImage.clear;
informationScreen();
clicked := true;
break;
end;
end;
wait(3000 + random(1000));
until clicked = true;
end;
end;
procedure useBank();
var
x, y, i: integer;
TPA: TPointArray;
ATPA: T2DPointArray;
clicked : boolean;
clockTimer : TTimeMarker;
begin
if not isLoggedIn() then
exit;
begin
clockTimer.start();
repeat
clicked := false;
findColorsSpiralTolerance(x,y,TPA, BANK_BOOTH_COLOR, mainscreen.getBounds(),14,colorSetting(2, 0.05,0.51));
if (Length(TPA) < 1) then
runToBank();
ATPA := TPA.toATPA(30, 30);
ATPA.filterBetween(0, 10); //I added this line
ATPA.sortFromMidPoint(mainscreen.playerPoint);
smartImage.debugATPA(ATPA);
for i := 0 to high(ATPA) do
begin
if (clockTimer.getTime() > 5000) then
exit;
mouse(middleTPA(ATPA[random(high(ATPA))]), MOUSE_MOVE);
if isMouseOverText(['ank'], 500 + random(250)) then
begin
fastClick(MOUSE_LEFT);
smartImage.clear;
informationScreen();
clicked := true;
currentSlot := 0;
break;
end;
end;
wait(3000 + random(1000));
until clicked = true;
end;
end;
procedure storeItemsInBank();
var
bankTimer: TTimeMarker;
begin
if not isLoggedIn() then
exit;
begin
bankTimer.start();
repeat
wait(1000);
if (bankScreen.quickDeposit(QUICK_DEPOSIT_INVENTORY)) then
begin
writeLn('banked');
end else
begin
useBank();
end;
wait(2000 + random(2000));
until(bankScreen.isPackEmpty) or (not isLoggedIn()) or (bankTimer.getTime() > 15000);
bankScreen.close();
end;
end;
// main loop
begin
clearDebug(); // Clear the debug box
smartEnableDrawing := true; // So we can draw on SMART
setupSRL(); // Load the SRL include files
//declarePlayers(); // Set up your username/pass
if not isLoggedIn() then // If player isn't logged in then
begin
players[currentPlayer].login(); // Log them in
exitTreasure(); // Exit treasure hunter
minimap.setAngle(MM_DIRECTION_NORTH); // Make compass north and angle high
mainScreen.setAngle(MS_ANGLE_HIGH);
end;
mining_dungeon.setup('MINING_DUNGEON_MAP', RUNESCAPE_OTHER); // Setup our map
mining_guild.setup('MINING_GUILD_MAP', RUNESCAPE_OTHER); // Setup our map
ladder.setup('MINING_DUNGEON_MAP', RUNESCAPE_OTHER); // Setup our map
bankz.setup('MINING_GUILD_MAP', RUNESCAPE_OTHER); // Setup our map
repeat
runToGuild();
useLadderDown();
runToRock();
mineRocks();
runToLadderUp();
useLadderUp();
runToBank();
useBank();
storeItemsInBank();
wait(2000);
until false;
end.]
Anyone know how muhch xp/h or gp/h this is? Are there any progress pics or did anyone do any calculations? if you did that'd be great!
why wont mine bank or deposit? (
where is it??
Script has been updated, banking works again.
Any more questions? feel free to pm me.
Only script I have used is this for around an hour on main account. Perma-banned. What gives? Any other more senior scripters know why? What methods is this guy using that's so detectable?
No offence intended this seemed a good script and I'm using probably the same tutorial to try and make my own, there are failsafes and good logic for finding ores and banking.
Before anyone calls BS either I have genuinely only used this for around an hour one night. I can only see 4 scenarios. 1. Settings for simba to work correctly are a dead giveaway, especially switching graphics then botting. 2. Some sort of procedure is detectable like SRS walking. 3. SMART is detected or 4. Ive been wrongfully banned (I spent 6 hours doing a repetitive task the other night whilst watching films).
•·.·´¯`·.·•JاH•·.·´¯`·.·•
There are currently 1 users browsing this thread. (0 members and 1 guests)