View Full Version : W100S-EM W100 Shantay Bonfires
melee
06-19-2012, 03:34 PM
yeah they changed look needs update
Replace the function AddingScreen with the following code. I am leaving for my flight in a few hours, and this quickfix is made up in literally 5 minutes, so help each other if there are more updates/problems in the next 2 weeks or so.
function AddingScreen :Boolean;
var x, y: integer;
begin
// Result := CountColorTolerance(4543066, 17, 355, 484, 456, 2) > 2000;
Result := FindTextTPAEx(2070783, 0, MCX1, MCY1, MCX2, MCY2, X, Y, 'onfire', StatChars, Nothing);
if result then writeln('Found add logs');
end;
In case you're wondering why I won't be around, read this (http://villavu.com/forum/showthread.php?t=84634)
Good luck and help yourselves ;)
kidnappings
06-19-2012, 05:21 PM
Replace the function AddingScreen with the following code. I am leaving for my flight in a few hours, and this quickfix is made up in literally 5 minutes, so help each other if there are more updates/problems in the next 2 weeks or so.
function AddingScreen :Boolean;
var x, y: integer;
begin
// Result := CountColorTolerance(4543066, 17, 355, 484, 456, 2) > 2000;
Result := FindTextTPAEx(2070783, 0, MCX1, MCY1, MCX2, MCY2, X, Y, 'onfire', StatChars, Nothing);
if result then writeln('Found add logs');
end;
In case you're wondering why I won't be around, read this (http://villavu.com/forum/showthread.php?t=84634)
Good luck and help yourselves ;)
thank you, it worked have fun on your vaction. XD
dafuq
06-19-2012, 10:20 PM
Thanks worked :D
Enjoy your vacation :)
wow, that was a pretty fast fix on the new update :) ty very much! :D
enjoy the vacation
Why does it just sit there ? :[
Earth
06-20-2012, 03:20 PM
ugh thank you for the code lol. I was getting so frustrated trying to figure out what was going on.
bryanfish
06-21-2012, 02:19 AM
Whenever I run this script, it just clicks my logs over and over and fails to click add to bonfire? It just repeats 'current action is burn' constantly. what do I do?
Run S Kape
06-21-2012, 06:33 AM
Whenever I run this script, it just clicks my logs over and over and fails to click add to bonfire? It just repeats 'current action is burn' constantly. what do I do?
See the above post , fix has been posted
Whenever I run this script, it just clicks my logs over and over and fails to click add to bonfire? It just repeats 'current action is burn' constantly. what do I do?
Why does it just sit there ? :[
Read the above post by Er1k. He is currently away but has posted a simple fix for his script to remain compatible with the new chat screen update.
Scroll through the script and find the function 'AddingScreen' select all of it and remove it. Then replace it with this code below provided by Er1k and it will work as it used to.
function AddingScreen :Boolean;
var x, y: integer;
begin
// Result := CountColorTolerance(4543066, 17, 355, 484, 456, 2) > 2000;
Result := FindTextTPAEx(2070783, 0, MCX1, MCY1, MCX2, MCY2, X, Y, 'onfire', StatChars, Nothing);
if result then writeln('Found add logs');
end;
rougarou
06-21-2012, 06:53 PM
How do i disable the firespirits?
Been using this script for a few hours and overall it's a nice script, but I noticed a small issue with the spirits that could appear very bot-like.
Here's my fix:
for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
{$IFDEF SMART}
SMART_DrawDotsEx(false, ATPA[a], clYellow);
{$ENDIF}
if not FindBlackChatMessage('ppear') then //added
Mouse(MP.X, MP.Y, 2, 2, mouse_move);
if WaitUpText('spiri', 500) then //using Uptext detection instead of just right-click
begin
ClickMouse2(mouse_right);
// Mouse(MP.X, MP.Y, 2, 2, mouse_Right);
if WaitOption('ollect', 3000) then
begin
WaitFunc(@RewardsCollected, 10, 3000);
writeln('Collect rewards');
writeln('Back to BonBon');
Result := True;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
Break;
end;
end;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
end;
Previously the script would move the mouse to many familiars even after the rewards were collected.
I'll keep you posted on my progress towards 25M experience :)
Hazzah
06-23-2012, 12:44 AM
tehq, I added that and am going to test it.
omar84
06-23-2012, 03:01 AM
great script and thanks for taking it over erik. 99 because of you!!
Powerbee
06-23-2012, 09:07 AM
not working anymore?
Run S Kape
06-24-2012, 08:23 AM
not working anymore?
Its working
....................................http://villavu.com/forum/picture.php?albumid=95&pictureid=246
Ezio Auditore da Firenze
06-24-2012, 08:55 AM
not working anymore?
Find this in the script " function AddingScreen "
and replace it with this:
function AddingScreen :Boolean;
var x, y: integer;
begin
// Result := CountColorTolerance(4543066, 17, 355, 484, 456, 2) > 2000;
Result := FindTextTPAEx(2070783, 0, MCX1, MCY1, MCX2, MCY2, X, Y, 'onfire', StatChars, Nothing);
if result then writeln('Found add logs');
end;
Absolutely wonderful script! Thanks for the fix for the updated AddingScreen.
the script wont seem to run for me, i log in manually to get to w100 and then nothing happens, it just sits there.
the script wont seem to run for me, i log in manually to get to w100 and then nothing happens, it just sits there.
Is SMART enabled? Have you edited the script to use the new AddingScreen code? Are your graphics settings set to minimum and fixed? That's all I can think of at the moment...
yolofish
06-25-2012, 04:00 PM
hey im havin a problem. It logs me in all good and everything, banks, gets logs out clicks on them but wont burn them. Anyone else having this problem?
hey im havin a problem. It logs me in all good and everything, banks, gets logs out clicks on them but wont burn them. Anyone else having this problem?
Replace function AddingScreen with this:
function AddingScreen :Boolean;
var x, y: integer;
begin
// Result := CountColorTolerance(4543066, 17, 355, 484, 456, 2) > 2000;
Result := FindTextTPAEx(2070783, 0, MCX1, MCY1, MCX2, MCY2, X, Y, 'onfire', StatChars, Nothing);
if result then writeln('Found add logs');
end;
Thanks to the above posters for fixing this.
Valeyard
06-25-2012, 07:59 PM
I know this is not a problem with the script, but as I just found out its very easy to have people suspicious of you. Some guy just lit a bunch of fires here at the chest and they all seem to be reporting the random people spread out alone at a single fire, including myself.
MotorMouse
06-26-2012, 09:58 AM
Logs / Hour : 839
Logs Done : 588
Fire Spirit : 8
EXP Gained : 109530
EXP / Hour : 156285
Running for : 42 Minutes and 2 Seconds
-------------------------------------------------------
Maples,
EPIC
kritis
06-26-2012, 11:09 AM
This script did not pick fire spirit ?
omar84
06-26-2012, 04:54 PM
it will miss the occasional fire spirit but 9/10 times it will get it ;)
Product
06-26-2012, 06:51 PM
the script doesn't add logs, it only tries to make it's own fire on the back square, which you cannot make a fire on.. >_>?
Product
06-26-2012, 06:59 PM
"fixed now working"
SavageKitty
06-27-2012, 08:20 PM
When I run the script it does everything right, but after it clicks on the log is does nothing, and doesn't hit "Add To Bonfire"
cmxz1
06-28-2012, 11:02 PM
How many charms do i get 1-99 fm?
yolofish
06-29-2012, 02:03 AM
it works good for me but the only thing wrong with it is it always fails randoms. Any suggestions??
F33NY
06-29-2012, 02:12 AM
it works good for me but the only thing wrong with it is it always fails randoms. Any suggestions??
That's not the script. That's SRL. If your account gets stuck in a random and you're willing to let people borrow your account to fix it for the future, there's a section of the forum for that.
When I run the script it does everything right, but after it clicks on the log is does nothing, and doesn't hit "Add To Bonfire"
I have the exact same problem.
I looked at the script, but as I am a newbie I can't really find out what's wrong :pinch: .
--
Edit: nvm just needed to go a few pages back to solve the problem^.^
~Mayx
ironsighted
06-29-2012, 10:00 PM
Script doesn;t work, always goes to "Add to bonfire" option
damiani
06-30-2012, 02:11 AM
Doesn't work for me either, it just keeps clicking on log and never on the "add to bonfire" option
zamserv
06-30-2012, 02:14 AM
Doesn't work for me either, it just keeps clicking on log and never on the "add to bonfire" option
there is a fix posted in one if the pages, keep looking.
damiani
06-30-2012, 02:28 AM
thanks so much now works!
Based Lord
06-30-2012, 08:17 PM
Replace the function AddingScreen with the following code. I am leaving for my flight in a few hours, and this quickfix is made up in literally 5 minutes, so help each other if there are more updates/problems in the next 2 weeks or so.
function AddingScreen :Boolean;
var x, y: integer;
begin
// Result := CountColorTolerance(4543066, 17, 355, 484, 456, 2) > 2000;
Result := FindTextTPAEx(2070783, 0, MCX1, MCY1, MCX2, MCY2, X, Y, 'onfire', StatChars, Nothing);
if result then writeln('Found add logs');
end;
In case you're wondering why I won't be around, read this (http://villavu.com/forum/showthread.php?t=84634)
Good luck and help yourselves ;)
This is the fix guys
Brandon02852
06-30-2012, 11:13 PM
What the script does fine:
1. Finds the chest.
2. Withdraws logs
3. Selects the "craft" function for the log
What the scrips doesn't do.
1. CLICKS ADD TO BONFIRE!
Ezio Auditore da Firenze
06-30-2012, 11:28 PM
What the script does fine:
1. Finds the chest.
2. Withdraws logs
3. Selects the "craft" function for the log
What the scrips doesn't do.
1. CLICKS ADD TO BONFIRE!
Find this function "AddingScreen" in the v1.2 and replace it with this.
function AddingScreen :Boolean;
var x, y: integer;
begin
// Result := CountColorTolerance(4543066, 17, 355, 484, 456, 2) > 2000;
Result := FindTextTPAEx(2070783, 0, MCX1, MCY1, MCX2, MCY2, X, Y, 'onfire', StatChars, Nothing);
if result then writeln('Found add logs');
end;
Brandon02852
07-01-2012, 12:29 AM
Okay thanks.
orangenut
07-01-2012, 01:01 AM
when i start the script i get an error saying "error starting smart, ensure the target page has an applet declaration"
Ezio Auditore da Firenze
07-01-2012, 01:43 AM
when i start the script i get an error saying "error starting smart, ensure the target page has an applet declaration"
That is because Runescape servers are down: http://villavu.com/forum/showthread.php?t=85490
RS Forums: http://services.runescape.com/m=forum/sl=0/forums.ws?25,26,367,63841580
kritis
07-01-2012, 03:16 PM
It's me or when I use your script ( or Simba ), my FPS is only 5 FPS :o In other bots, I'm at 35+FPS >< ( Fixed screen & low graphic )
Shatterhand
07-02-2012, 03:53 PM
- Good way to start summoning
How?
Ezio Auditore da Firenze
07-02-2012, 04:00 PM
How?
You get charms from fire spirits, isn't much but over time it looks like this!
http://villavu.com/forum/attachment.php?attachmentid=16100&stc=1&d=1337651142
bottingisforcoolpeople
07-02-2012, 04:07 PM
It won't find the chest, the cursor will be all over the place and randomly clicking assuming it's the chest :o
Shatterhand
07-02-2012, 05:51 PM
You get charms from fire spirits, isn't much but over time it looks like this!
http://villavu.com/forum/attachment.php?attachmentid=16100&stc=1&d=1337651142
Oh, looks great! :D
EDIT: The script needs an update, the adding logs window changed.
I solved the problem with a simple DTM.
function AddingScreen :Boolean;
var
DTM, X, Y : Integer;
begin
DTM := DTMFromString('mggAAAHicY2NgYHBgZGBoBuJWIHYE4glAbA LEU4B4MhAfBeLDQLwCiFcBMbeBAwTr24OxkIQUGPMDzcKGGXFg CAAAOPkJMQ==');
Result := FindDTM(DTM,X,Y,MCX1,MCY1,MCX2,MCY2);
FreeDTM(DTM);
end;
paskalakki
07-02-2012, 11:55 PM
It's me or when I use your script ( or Simba ), my FPS is only 5 FPS :o In other bots, I'm at 35+FPS >< ( Fixed screen & low graphic )
yh same for me too.
WackaFlacka
07-04-2012, 11:45 PM
Thanks for the script! It has essentially been running flawless for me.
As said, I have just come back from vacation. I want to know if the fix posted before I leave is still working ;)
Earth
07-05-2012, 05:54 AM
Well, the fix you posted has been helping real good. So far the script has been working just great. Currently at 85 fm.
koage
07-05-2012, 06:14 AM
Refuses to click Add to bonfire, but runs smoothly other than that, too bad i can't use it though.
carson1023
07-05-2012, 07:02 AM
Refuses to click Add to bonfire, but runs smoothly other than that, too bad i can't use it though.
Just update the colors yourself. Change the color tolerance for the AddingScreen, to the correct color with the color picker tool, and replace. Fixed for myself works perfectly :). Good luck.
Shatterhand
07-05-2012, 07:57 AM
Nice script, got me 80fm. :)
shadowknite
07-06-2012, 06:40 PM
Just update the colors yourself. Change the color tolerance for the AddingScreen, to the correct color with the color picker tool, and replace. Fixed for myself works perfectly :). Good luck.
What color should i pick :O?
carson1023
07-07-2012, 05:50 AM
What color should i pick :O?
Here's where you need to add the new color.
function AddingScreen :Boolean;
begin
Result := CountColorTolerance(4141067, 17, 355, 484, 456, 2) > 2000;
end;
The numbers in bold text are what I added and our working for me.
Andres
07-07-2012, 08:28 PM
I laughed the first time I got a fire spirit. OMG SPIRIT?
Nice script, I'll post a proggy after a while.
Evaporation
07-07-2012, 10:26 PM
I've been using this for the past week. The fix that was posted on the previous pages works very well. It's gotten me 40-91 FM so far. Thanks alot!
Just a quick progress report:
################################################## #####
Shantay Bank Chest Bonfire
################################################## #####
Logs / Hour : 749
Logs Done : 112
Fire Spirit : 2
EXP Gained : 21525
EXP / Hour : 144033
Running for : 8 Minutes and 57 Seconds
Andres
07-08-2012, 12:09 AM
I don't think this script calls FindNormalRandoms enough. I've had two randoms that haven't been detected.
Otherwise, it is flawless. Really an excellent script. I had to restart the script so I lost my proggy, but I am getting 230k xp per hour with yews.
rowan131
07-08-2012, 10:54 AM
When i press play in simba i get this error
[Error] C:\Simba\Includes\sps/sps.simba(300:3): Unknown identifier 'SPS_FilterMinimap' at line 299
Compiling failed.
I haven't tryed version 1.1 yet but how do i fix this, this isn't the only script ive had an error like this.
WackaFlacka
07-10-2012, 03:10 AM
Very nice script! It seems like you may not update this script again, but here has been some issues I have noticed using this script from 65-98 firemaking (hoping to get 99 within the next couple of days) in case you do.
-Sometimes when you recover from a random, the camera angle is out of align and so the script can not see the bank chest.
-Sometimes the script spend too much time looking for a bonfire for only a couple of logs left. It may be faster after the first attempt to locate a bonfire, to bank and withdraw more logs. Note: this mainly seems to happen when you are at a bonfire a ways away from the bank. The bonfire that is one square southwest of the chest is blocked by the sign, so runescape can not see the bonfire
-While it seems to get most fire spirits, it seems to have a hard time when two fire spirits appear very close to each other (it seems to forget about one once one is clicked).
-Along the same lines, if a fire spirit appears and then the script banks, it forgets about the fire spirit
EDIT: Whoops, just realized I already posted a good job post. I guess here is the expanded version
EDIT 2: 99 firemaking! thanks for the script!
I am aware of that camera angle problem. You could add a a line that does ClickNorth from time to time, but as you said, I'm only planning to update it when it breaks/ after nuke.
element82196
07-17-2012, 04:01 AM
can anyone help me? this bot doesnt work for me :\ all it does is keep typing my username and password in chat box :\
Maybach
07-17-2012, 01:46 PM
[Error] C:\Simba\Includes\srl/srl/misc/paintsmart.simba(560:12): Unknown identifier 'TPAFromEllipse' at line 559
Compiling failed.
[Error] C:\Simba\Includes\srl/srl/misc/paintsmart.simba(560:12): Unknown identifier 'TPAFromEllipse' at line 559
Compiling failed.
AFAIK if you are running the temp fix, it does NOT support PaintSmart.simba. Remove all the paintsmart functions used in the script and it will compile again.
illuminatiswag
07-26-2012, 10:38 PM
havent been on here in a while
[Error] C:\Simba\Includes\srl/srl/misc/smart.simba(53:19): Invalid number of parameters at line 52
Compiling failed.
TehNeonFishy
07-27-2012, 11:02 AM
havent been on here in a while
[Error] C:\Simba\Includes\srl/srl/misc/smart.simba(53:19): Invalid number of parameters at line 52
Compiling failed.
I'm getting the same, it really doesn't like line 52.
EDIT: When coming up with this error it is actually opening up a tab called smart in Simba, highlighting line 52 in the smart tab.
i'm getting the same, it really doesn't like line 52.
Edit: When coming up with this error it is actually opening up a tab called smart in simba, highlighting line 52 in the smart tab.
{$define smart}
Destined2bGreat
07-28-2012, 03:00 PM
Could anyone point me in the right direction to fix this? Trying to use smartgraphics gives me errors with canvasing, and removing paintsmart gives me an error on line 52 in smart.simba.
Pukka
07-28-2012, 05:28 PM
Need help with this, spent around 20 minutes trying to think how, I'm new to these kinds of scripts as the only thing I know is Rsps server codes.. Help would be sweet.
[Error] C:\Simba\Includes\srl/srl/misc/smart.simba(53:19): Invalid number of parameters at line 52
Compiling failed.
Jos3ph
08-01-2012, 02:31 AM
How much xp do you think 100k maple logs would get?
Leonardo Da Vinci
08-01-2012, 06:16 AM
How much xp do you think 100k maple logs would get?
Here. (http://lmgtfy.com/?q=Firemaking+calculator+RuneScape)
chujowski
08-02-2012, 05:18 PM
Can someone please update the script?
Jos3ph
08-03-2012, 09:43 PM
Really want to start running the script; please post back when its updated.
Solar
08-05-2012, 05:41 PM
I got it to compile but didn't bother testing. Hope this helps.
program W100S_EM;
{************************************************* ******************************
W100S-EM - World 100 Shantay Chest Bonfires Er1k's Mod
author; CephaXz
modded; Er1k
Description: World 100 Shantay Chest Bonfire trainer
1.2 changelog
- Added SRL Stats
- Added more FindNormalRandoms for better random detection
- Minor additions to the object finders, showing colors count/ no detection
- Script turns assists to off for you, set chat to game at start
************************************************** *****************************}
{$define SMART}
{$define USESPS}
//{$define USEODTM} //you must only enable either ODTM or SPS
{$i srl/srl.simba}
//
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}
//
{$IFDEF USEODTM}
{$i ObjectDTM\ObjDTMInclude.simba}
//{$ELSE}
//{$i srl/srl/misc/smartgraphics.simba}
{$ENDIF}
{$IFDEF USESPS}
{$i sps/sps.simba} //now used again
{$ENDIF}
const
ODTM_WALK = '81:91:4:9:7:39:60:9:7:30:81:9:7:91:95:9:7:99:74';
ODTM_AREA = '81:91:4:9:7:39:60:9:7:30:81:9:7:91:95:9:7:99:74:7 :56:47:82:47:96:73:85:102:56:102:48:91:48:55';
var
Stats, Logs, CollectedRewards, StartingXP: Integer;
const
version = '1.2';
SRLStats_Username = '';
SRLStats_Password = '';
{Which slot in bank is your log is?}
LOGS_BANKSLOT = 1;
{How many ms to timeout for re-adding, change if you're LOW LEVEL}
FM_TIMEOUT = 10000;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Active := True;
Players[0].Pin := '';
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
Players[0].WorldInfo := [False, 100]; //thanks olly
end;
procedure SetupLogin;
begin
ClearDebug;
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}
SetupSRL;
if (SRLStats_Username = '') then
SetupSRLStats(1155, 'Anonymous', 'anon1337')
else
SetupSRLStats(1155, SRLStats_Username, SRLStats_Password);
DeclarePlayers;
if not LoggedIn then
begin
repeat
LoginPlayerToLob;
until LobbyScreen;
OpenWorldScreen;
if not WorldScreen then
OpenWorldScreen;
if WorldScreen then
begin
writeln('picking world 100');
SelectWorld(100);
LogInPlayer;
end;
end;
while not LoggedIn do
wait(500);
if LoggedIn then
begin
ClickNorth(SRL_ANGLE_HIGH);
ExitSquealOfFortune();
if not IsXPBarOpen then
ToggleXPBar(True);
StartingXP := GetXPBarTotal;
SetChat('off', CHAT_ASSIST); //turn off your assist so that you wont complain
SetChat('off', CHAT_PUBLIC);
Mouse(90 + (CHAT_GAME * 55), 496, 8, 3, mouse_left); //click game tab
end;
end;
Procedure StartDTM;
begin
Logs := DTMFromString('mwQAAAHic42RgYHBiYmCwZoLQ3kDsA8SBUL YLVO4pUN0dIL4NxDeA+CEQPwPiN0D8Dog/ArGJngCQZMKL/zMQBoxEYDgAAI5rDB0=');
end;
Procedure EndDTM;
begin
FreeDTM(Logs);
end;
Function FindInvLogs: Boolean; //Modified by Er1k
var x, y: integer;
begin
Result := FindDTM(Logs, x, y, MIX1, MIY1, MIX2, MIY2);
end;
Function NotFindInvLogs: Boolean;
var x, y: integer;
begin
Result := not FindDTM(Logs, x, y, MIX1, MIY1, MIX2, MIY2);
end;
Function FoundInvLogs: Boolean;
var x, y: integer;
begin
if FindDTM(Logs, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
MouseItem(CoordsToItem(x, y), mouse_move);
Result := True;
end;
end;
function OpeningBank: boolean; //Modified by Er1k
begin
result:=false;
if not LoggedIn then Exit;
FindNormalRandoms;
if PinScreen then
InPin(Players[CurrentPlayer].Pin);
if WaitFunc(@BankScreen, 100, 5000) then
begin
if not InvEmpty then DepositAll;
writeln('Withdrawing logs');
//Keep inventory slot
while GetBankItemAmount((LOGS_BANKSLOT-1) mod 10, (LOGS_BANKSLOT-1) div 10) = 0 do
begin
wait(100+random(50));
if not LoggedIn then Exit; //didn't expect this to fail actually, but it did
end;
writeln('amount of logs: ' + IntToStr(GetBankItemAmount((LOGS_BANKSLOT-1) mod 10, (LOGS_BANKSLOT-1) div 10)));
if GetBankItemAmount((LOGS_BANKSLOT-1) mod 10, (LOGS_BANKSLOT-1) div 10) < 29 then //sorry guys
begin
writeln('Not enough logs - Logout');
Logout;
TerminateScript;
end;
MouseBankSlot(LOGS_BANKSLOT, mouse_Right);
result:= WaitOption('All', 1000);
if result then
result:= CloseBank;
end;
end;
Function RewardsCollected :Boolean; //Unused
begin
Result := IsChatBoxTextAnyLine('spirit', clBlack);
end;
Function FindSpirit :Boolean; //Modified by Er1k
var
a: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS : Integer;
begin
result:=false;
if(not(LoggedIn))then Exit;
FindNormalRandoms;
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
// Original colors
// SetColorSpeed2Modifiers(0.52, 0.55);
// if FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4021133, 202, 129, 325, 230, 14) then
SetColorSpeed2Modifiers(0.19, 0.75);
if FindColorsSpiralTolerance(MSCX, MSCY, TPA, 3825566, 202, 129, 325, 230, 12) then
begin
writeln('color count: ' + InttoStr(length(tpa)));
if Length(TPA) < 20 then //modded
begin
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end else
begin
writeln('OMG SPIRIT?');
end;
end;
ATPA := TPAtoATPAEx(TPA, 20, 20);
SortATPAFromSize(ATPA, 1000, true);
for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
{$IFDEF SMART}
SMART_DrawDotsEx(false, ATPA[a], clYellow);
{$ENDIF}
Mouse(MP.X, MP.Y, 2, 2, mouse_move);
if WaitUpText('spiri', 500) then //using Uptext detection instead of just right-click
begin
ClickMouse2(mouse_right);
// Mouse(MP.X, MP.Y, 2, 2, mouse_Right);
if WaitOption('ollect', 3000) then
begin
WaitFunc(@RewardsCollected, 10, 3000);
writeln('Collect rewards');
writeln('Back to BonBon');
Result := True;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
Break;
end;
end;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;
function BankScreenEx: boolean; //New
begin
result:= BankScreen or PinScreen;
end;
function FindShantayChest: boolean; //New
var a, tmpCTS, Tries: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
begin
result:=false;
if not LoggedIn then Exit;
if BankScreenEx then
begin
result:=true;
Exit;
end;
FindNormalRandoms;
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.07, 0.12);
if FindColorsSpiralTolerance(MSCX, MSCY, tpa, 6451582, MSX1, MSY1, MSX2, MSY2, 7) then
begin
writeln('shantay chest tpa count: ' + IntToStr(length(tpa)));
ATPA:= TPAtoATPAEx(tpa, 25, 25);
for a:=0 to high(atpa) do
begin
{$IFDEF SMART}
SMART_DrawDotsEx(false, ATPA[a], clYellow);
{$ENDIF}
MP:= MiddleTPA(atpa[a]);
Mouse(mp.x, mp.y, 4, 4, mouse_move);
if WaitUpTextMulti(['pen S', 'antay','tay c', 'hest'], 500) then
begin
ClickMouse2(mouse_left);
if WaitFunc(@DidRedClick, 50, 1000) then
begin
writeln('Clicked Bank chest');
if WaitFunc(@BankScreenEx, 100, 5000) then
begin
writeln('BankScreenEx found');
result:= true;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
break;
end;
end;
end;
end;
end
else writeln('Shantay chest not found...');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;
procedure AntiBan;
var r: Integer;
begin
if not LoggedIn then Exit;
r := (RandomRange(1, 14));
if (r = 4) then
begin
writeln('Doing antiban');
case Random(20) of
0, 3: PickUpMouse;
1: RandomRClick;
2:
begin
HoverSkill('firemaking', false);
GameTab(tab_Inv);
end;
4: MMouse(MIX1, MIY1, MIX2, MIY2);
5: MMouse(MMX1, MMY1, MMX2, MMY2);
end;
end;
end;
function AddingScreen :Boolean;
begin
Result := CountColorTolerance(4543066, 17, 355, 484, 456, 2) > 2000;
end;
function BonBon: boolean; //Modified by Er1k
begin
result:=false;
if not LoggedIn then Exit;
if not (getCurrentTab = tab_Inv) then
FTab(tab_Inv);
if WaitFunc(@FoundInvLogs, 200, 5000) then
begin
ClickMouse2(mouse_Left);
if WaitFunc(@AddingScreen, 200, 5000) then
begin
writeln('Found add to bonfire screen');
MouseBox(323, 411, 389, 448, mouse_Left);
writeln('BONBONBONBON-ing');
result:= true;
end;
end;
end;
procedure XPTotalFinding;
var
XPGained: Integer;
begin
XPGained := GetXPBar(1);
writeln('EXP Gained' + IntToStr(XPGained));
end;
Procedure DrawTheBox;
var
XPBOX: TBox;
begin
XPBOX := IntToBox(375, 7, 421, 21);
SMART_DrawBox(XPBOX);
end;
procedure PlayerStats;
var
Wet, Wst, Cst, Srt, Tih, Tim, Tis, Awt, Sec, sst, EndingXP, XPGained: Integer;
begin
Cst := GetSystemTime;
Srt := (cst - sst) / 1000;
Tih := srt / 3600;
tim := (srt / 60) - tih * 60;
Tis := srt - tim * 60 - tih * 3600;
Awt := wet - wst
Sec := GetTimeRunning div 1000 + 1;
EndingXP := GetXPBarTotal;
XPGained := EndingXP - StartingXP;
Writeln('######################################### ##############');
Writeln(' Shantay Bank Chest Bonfire ');
Writeln('######################################### ##############');
Writeln('Logs / Hour : ' + IntToStr(Round(3600 * Players[CurrentPlayer].Integers[3] / Sec)));
Writeln('Logs Done : ' + IntToStr(Players[CurrentPlayer].Integers[3]));
Writeln('Fire Spirit : ' + IntToStr(CollectedRewards));
writeln('EXP Gained : ' + IntToStr(XPGained));
writeln('EXP / Hour : ' + IntToStr(Round(3600 * XPGained / Sec)));
Writeln('Running for : ' + TimeRunning);
Writeln('-------------------------------------------------------');
//SRL stats
if (TimeFromMark(Stats) > 360000) then // 6 minutes.
begin
Stats_Commit;
MarkTime(Stats);
end;
end;
function LogsDecreased(start: integer): boolean; //New
begin
result:= CountItems('dtm', logs, []) < start;
end;
function InShantayPassTPA: boolean;
var tpa: TPointArray;
begin
result:= false;
SetColorToleranceSpeed(1);
if FindMMColorsSpiralTolerance(tpa, 2248829, 25) then //rock brown
begin
writeln('tpa count: '+ IntToStr(length(tpa)));
result:= length(tpa) >= 850;
end;
writeln('InShantayPassTPA: ' + booltostr(result));
end;
function AdjustPositionTPA: boolean;
var x, y: integer;
tpa: TPointArray;
begin
result:= false;
if not InShantayPassTPA then Exit; //
SetColorToleranceSpeed(1);
if FindMMColorsSpiralTolerance(tpa, 2413294, 25) then //bank symbol
begin
writeln('tpa count: '+ IntToStr(length(tpa)));
MiddleTPAEx(tpa, x, y);
Mouse(x, y, 3, 3, mouse_left);
wait(1000+random(250));
while IsMoving do
wait(100+random(50));
result:= true;
end;
writeln('AdjustPositionTPA: ' + booltostr(result));
end;
//odtm main point
//'84:84:3:9:7:49:39:9:7:31:56:9:7:36:80'
//odtm area
//'80:80:3:9:7:49:39:9:7:31:56:9:7:36:80:8:58:40:77: 40:92:53:92:83:76:96:61:96:51:81:51:46'
{$IFDEF USEODTM}
function InShantayPass: boolean; //New
begin
result:=false;
if not LoggedIn then Exit;
FindNormalRandoms;
result:= ObjDTM_InArea(ODTM_AREA, true);
end;
function AdjustPosition: boolean; //New
var odtm: string;
cx, cy: integer;
begin
result:=false;
if not LoggedIn then Exit;
FindNormalRandoms;
odtm:=ODTM_WALK;
if ObjDTM_Find(odtm, cx, cy, True) then
begin
result:= true;
Writeln('We found it, now lets walk it!');
ObjDTM_Walk(odtm, 2, 200, 10, True);
end else
Writeln('We could not walk here, what a shame');
if result then
FFlag(2);
end;
{$ENDIF}
{$IFDEF USESPS}
function InShantayPass: boolean;
var p: TPoint;
begin
result:= false;
FindNormalRandoms;
if not InShantayPassTPA then Exit;
p:= SPS_GetMyPos;
writeln('Acquiring position...');
writeln('SPS located: ' + format('%d %d', [p.x, p.y]));
if (p.x <= -1) and (p.y <= -1) then Exit; //lost
result:= (Distance(p.x, p.y, 5065, 4185) <= 75);
writeln('InShantayPass: ' + booltostr(result));
end;
function AdjustPosition: boolean; //New
var p: TPoint;
begin
result:= false;
FindNormalRandoms;
if not InShantayPass then
begin
writeln('Cannot adjust as we''re not in Shantay Pass');
writeln('AdjustPosition: ' + booltostr(result));
Exit;
end;
p:= SPS_GetMyPos();
writeln('Adjusting position...');
writeln('SPS located: ' + format('%d %d', [p.x, p.y]));
result:= SPS_WalkPath([Point(5060, 4185)]);
writeln('AdjustPosition: ' + booltostr(result));
end;
{$ENDIF}
function CheckWorld100: boolean;
var cw: integer;
begin
result:=false;
FindNormalRandoms;
cw:= CurrentWorld;
writeln('current world is: ' + IntToStr(cw));
if (cw<>100) then
begin
writeln('world switch required');
result:= ChangeWorld(100);
writeln('world switch success: ' + booltostr(result));
end
else result:= true;
end;
procedure MainLoop; //New
var action: string;
t, t2, t3, ts, start, fail, fail2, fail3: integer;
check, redo: boolean;
v: TVariantArray;
begin
action:= 'bank';
while LoggedIn do
begin
FindNormalRandoms;
writeln('Current action is: ' + action);
if fail > 0 then
writeln('fail: ' + IntToStr(fail));
if (fail >= 5) then
begin
writeln('banking failed consecutively...');
writeln('checking our position...');
FindNormalRandoms;
if InShantayPass then
action:='walk'
else
action:='lode';
end;
if (fail3 >= 3) then //verify if we''re in world 100
begin
writeln('failed to add to bonfires for quite a bit...');
writeln('verifying if we''re on world 100 at all...');
FindNormalRandoms;
if not CheckWorld100 then
begin
Logout; //finish the script and hope SMARTManager/CrashSMART restarts it
TerminateScript;
end
else fail3:= 0; //continue, we''re just having very bad luck
end;
case action of
'bank': begin
if FindShantayChest then
begin
if OpeningBank then
begin
WaitFunc(@FindInvLogs, 200, 2000);
action:= 'burn';
fail:= 0;
end;
end
else Inc(fail);
end;
'burn': begin
redo:= true;
check:=true;
if (CountItems('dtm', Logs, []) = 0) then
begin
action:='bank';
continue;
end;
if Bonbon then
begin
start:= CountItems('dtm', Logs, []);
writeln('starting logs: ' + IntToStr(start));
v:= [start];
//use first log adding as heuristic, does not work for low levels
//because low levels might have large delays in adding first log to bonfire
if not WaitFuncEx('LogsDecreased', v, 500, 5000) then
begin
writeln('Guessing no bonfires nearby, relocate!');
AdjustPosition;
Inc(fail2); //silent updated
//Maybe try to find fire here later??
//todo
//if you insist you want to make your own fires
//add code here, but i aint doing this for your safety
if (fail2 >= 2) then //force banking to relocate
begin
writeln('position adjusting doesnt seem to work...');
writeln('will try to find bank chest to relocate...');
action:='bank';
fail2:= 0;
Inc(fail3);
end;
continue;
end;
fail2:=0;
MarkTime(t);
MarkTime(t2);
MarkTIme(t3);
repeat
FindNormalRandoms;
// writeln('current logs: ' + IntToStr(CountItems('dtm', Logs, [])));
//find fire spirit, thanks Ashaman88 for the tips
if IsChatBoxTextAnyLine('emerges', 397249) and (InvCount<24) and check then
// if (FindChatBoxText('emerges',8,397249{clRed})) and (InvCount<24) then
begin
writeln('Spirit is around!');
if FindSpirit then
begin
check:= false; //dont scan after we have collected rewards
Inc(CollectedRewards);
break;
end;
end;
//update and continue
if LogsDecreased(start) then
begin
start:= CountItems('dtm', Logs, []);
MarkTime(t);
end;
//No update in FM_TIMEOUT ms, force redo
if (TimeFromMark(t) > FM_TIMEOUT) and not LogsDecreased(start) then
begin
writeln('Logs stopped burning - will reburn');
break;
end;
wait(250+random(250));
until (CountItems('dtm', Logs, []) = 0) or (TimeFromMark(t2) > 120000);
//Decide action
if (CountItems('dtm', Logs, []) = 0) then
begin
IncEx(Players[CurrentPlayer].Integers[3], 28);
redo:= false;
PlayerStats;
end;
if not redo then
action:= 'bank';
end;
end;
'walk': begin
if AdjustPosition then
begin
action:='bank';
fail:= 0;
end;
end;
'lode': begin
FindNormalRandoms;
writeln('If you get this chances are you''ve failed a random!');
writeln('Or you''ve got a random but SRL failed to detect it');
writeln('TODO - logout and terminate');
Logout;
TerminateScript;
end;
end;
wait(100+random(50));
end;
end;
procedure DebugLocations; //Acid test on location finders
begin
InShantayPass;
AdjustPosition;
end;
begin
SetupLogin;
{$IFDEF USEODTM}
ObjDTM_Setup; //req'd for ODTM usage
ObjDTM_Debug := True;
{$ENDIF}
{$IFDEF USESPS}
SPS_SETUP(RUNESCAPE_SURFACE,['12_10']);
{$ENDIF}
SMART_ClearCanvas;
AddOnTerminate('EndDTM');
StartDTM;
// UseFindMod := false; //uncomment if you don't want mods to mess up
// DebugLocations; //uncomment if you need debug
MainLoop;
end.
satkan
08-05-2012, 05:59 PM
Yeah, the above script doesn't work.
It starts up, but gets stuck at Add to bonfire
(Doesn't want to click it, but instead shows :
Current action is: burn
Current action is: burn
Current action is: burn
Current action is: burn
Current action is: burn
Current action is: burn)
(Shantay pass)
Nickeh221
08-06-2012, 04:08 AM
[Error] C:\Simba\Includes\srl/srl/misc/smart.simba(56:19): Invalid number of parameters at line 55
Compiling failed.
shoeyman
08-10-2012, 04:12 AM
Mine won't even get passed the login
Leonardo Da Vinci
08-12-2012, 11:51 AM
Anyone able to update?
I think I speak for everyone when I say this would be absolutely brilliant to get up and working!
Working version of script here! I fixed it . Also tried adding support for anagoglic orts but i dont know if it works, i also dont know if simba reads the yellow text color in the chatbox.
program W100S_EM;
{************************************************* ******************************
W100S-EM - World 100 Shantay Chest Bonfires Er1k's Mod
author; CephaXz
modded; Er1k
Description: World 100 Shantay Chest Bonfire trainer
1.2 changelog
- Added SRL Stats
- Added more FindNormalRandoms for better random detection
- Minor additions to the object finders, showing colors count/ no detection
- Script turns assists to off for you, set chat to game at start
************************************************** *****************************}
{$define SMART}
{$define USESPS}
//{$define USEODTM} //you must only enable either ODTM or SPS
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF USEODTM}
{.include ObjectDTM\ObjDTMInclude.simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}
{$IFDEF USESPS}
{.include sps/sps.simba} //now used again
{$ENDIF}
const
ODTM_WALK = '81:91:4:9:7:39:60:9:7:30:81:9:7:91:95:9:7:99:74';
ODTM_AREA = '81:91:4:9:7:39:60:9:7:30:81:9:7:91:95:9:7:99:74:7 :56:47:82:47:96:73:85:102:56:102:48:91:48:55';
var
Stats, Logs, CollectedRewards, StartingXP: Integer;
const
version = '1.2';
SRLStats_Username = '';
SRLStats_Password = '';
{Which slot in bank is your log is?}
LOGS_BANKSLOT = 5;
{How many ms to timeout for re-adding, change if you're LOW LEVEL}
FM_TIMEOUT = 10000;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Active := True;
Players[0].Pin := '';
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
// Players[0].WorldInfo := [False, 100]; //thanks olly
end;
procedure SetupLogin;
begin
ClearDebug;
SRL_SixHourFix := True;
Smart_FixSpeed := True;
SetupSRL;
if (SRLStats_Username = '') then
SetupSRLStats(1155, 'Anonymous', 'anon1337')
else
SetupSRLStats(1155, SRLStats_Username, SRLStats_Password);
DeclarePlayers;
if not LoggedIn then
begin
repeat
LoginPlayerToLob;
until LobbyScreen;
OpenWorldScreen;
if not WorldScreen then
OpenWorldScreen;
if WorldScreen then
begin
writeln('picking world 100');
SelectWorld(100);
LogInPlayer;
end;
end;
while not LoggedIn do
wait(500);
if LoggedIn then
begin
ClickNorth(SRL_ANGLE_HIGH);
ExitSquealOfFortune();
if not IsXPBarOpen then
ToggleXPBar(True);
StartingXP := GetXPBarTotal;
// SetChat('off', CHAT_ASSIST); //turn off your assist so that you wont complain
// SetChat('off', CHAT_PUBLIC);
Mouse(90 + (CHAT_GAME * 55), 496, 8, 3, mouse_left); //click game tab
end;
end;
Procedure StartDTM;
begin
Logs := DTMFromString('mwQAAAHic42RgYHBiYmCwZoLQ3kDsA8SBUL YLVO4pUN0dIL4NxDeA+CEQPwPiN0D8Dog/ArGJngCQZMKL/zMQBoxEYDgAAI5rDB0=');
end;
Procedure EndDTM;
begin
FreeDTM(Logs);
end;
Function FindInvLogs: Boolean; //Modified by Er1k
var x, y: integer;
begin
Result := FindDTM(Logs, x, y, MIX1, MIY1, MIX2, MIY2);
end;
Function NotFindInvLogs: Boolean;
var x, y: integer;
begin
Result := not FindDTM(Logs, x, y, MIX1, MIY1, MIX2, MIY2);
end;
Function FoundInvLogs: Boolean;
var x, y: integer;
begin
if FindDTM(Logs, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
MouseItem(CoordsToItem(x, y), mouse_move);
Result := True;
end;
end;
function OpeningBank: boolean; //Modified by Er1k
begin
result:=false;
if not LoggedIn then Exit;
FindNormalRandoms;
if PinScreen then
InPin(Players[CurrentPlayer].Pin);
if WaitFunc(@BankScreen, 100, 5000) then
begin
if not InvEmpty then DepositAll;
writeln('Withdrawing logs');
//Keep inventory slot
while GetBankItemAmount((LOGS_BANKSLOT-1) mod 10, (LOGS_BANKSLOT-1) div 10) = 0 do
begin
wait(100+random(50));
if not LoggedIn then Exit; //didn't expect this to fail actually, but it did
end;
writeln('amount of logs: ' + IntToStr(GetBankItemAmount((LOGS_BANKSLOT-1) mod 10, (LOGS_BANKSLOT-1) div 10)));
if GetBankItemAmount((LOGS_BANKSLOT-1) mod 10, (LOGS_BANKSLOT-1) div 10) < 29 then //sorry guys
begin
writeln('Not enough logs - Logout');
Logout;
TerminateScript;
end;
MouseBankSlot(LOGS_BANKSLOT, mouse_Right);
result:= WaitOption('All', 1000);
if result then
result:= CloseBank;
end;
end;
Function RewardsCollected :Boolean; //Unused
begin
Result := IsChatBoxTextAnyLine('spirit', clBlack);
end;
Function FindSpirit :Boolean; //Modified by Er1k
var
a: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS : Integer;
begin
result:=false;
if(not(LoggedIn))then Exit;
FindNormalRandoms;
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
// Original colors
// SetColorSpeed2Modifiers(0.52, 0.55);
// if FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4021133, 202, 129, 325, 230, 14) then
SetColorSpeed2Modifiers(0.19, 0.75);
if FindColorsSpiralTolerance(MSCX, MSCY, TPA, 3825566, 202, 129, 325, 230, 12) then
begin
writeln('color count: ' + InttoStr(length(tpa)));
if Length(TPA) < 20 then //modded
begin
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end else
begin
writeln('OMG SPIRIT?');
end;
end;
ATPA := TPAtoATPAEx(TPA, 20, 20);
SortATPAFromSize(ATPA, 1000, true);
for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
{$IFDEF SMART}
SMART_DrawDotsEx(false, ATPA[a], clYellow);
{$ENDIF}
Mouse(MP.X, MP.Y, 2, 2, mouse_move);
if WaitUpText('spiri', 500) then //using Uptext detection instead of just right-click
begin
ClickMouse2(mouse_right);
// Mouse(MP.X, MP.Y, 2, 2, mouse_Right);
if WaitOption('ollect', 3000) then
begin
WaitFunc(@RewardsCollected, 10, 3000);
writeln('Collect rewards');
writeln('Back to BonBon');
Result := True;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
Break;
end;
end;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;
function BankScreenEx: boolean; //New
begin
result:= BankScreen or PinScreen;
end;
function FindShantayChest: boolean; //New
var a, tmpCTS, Tries: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
begin
result:=false;
if not LoggedIn then Exit;
if BankScreenEx then
begin
result:=true;
Exit;
end;
FindNormalRandoms;
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.07, 0.12);
if FindColorsSpiralTolerance(MSCX, MSCY, tpa, 6451582, MSX1, MSY1, MSX2, MSY2, 7) then
begin
writeln('shantay chest tpa count: ' + IntToStr(length(tpa)));
ATPA:= TPAtoATPAEx(tpa, 25, 25);
for a:=0 to high(atpa) do
begin
{$IFDEF SMART}
SMART_DrawDotsEx(false, ATPA[a], clYellow);
{$ENDIF}
MP:= MiddleTPA(atpa[a]);
Mouse(mp.x, mp.y, 4, 4, mouse_move);
if WaitUpTextMulti(['pen S', 'antay','tay c', 'hest'], 500) then
begin
ClickMouse2(mouse_left);
if WaitFunc(@DidRedClick, 50, 1000) then
begin
writeln('Clicked Bank chest');
if WaitFunc(@BankScreenEx, 100, 5000) then
begin
writeln('BankScreenEx found');
result:= true;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
break;
end;
end;
end;
end;
end
else writeln('Shantay chest not found...');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;
procedure AntiBan;
var r: Integer;
begin
if not LoggedIn then Exit;
r := (RandomRange(1, 14));
if (r = 4) then
begin
writeln('Doing antiban');
if inchat('anagogic') then
begin
MMouse(261, 227, 6, 6);
if IsUptext('gog') then
ClickMouse2(true);
end;
case Random(20) of
0, 3: PickUpMouse;
1: RandomRClick;
2:
begin
HoverSkill('firemaking', false);
GameTab(tab_Inv);
end;
4: MMouse(MIX1, MIY1, MIX2, MIY2);
5: MMouse(MMX1, MMY1, MMX2, MMY2);
end;
end;
end;
function AddingScreen :Boolean;
begin
Result := CountColorTolerance(4141067, 17, 355, 484, 456, 2) > 2000;
end;
function BonBon: boolean; //Modified by Er1k
begin
result:=false;
if not LoggedIn then Exit;
if not (getCurrentTab = tab_Inv) then
FTab(tab_Inv);
if WaitFunc(@FoundInvLogs, 200, 5000) then
begin
ClickMouse2(mouse_Left);
if WaitFunc(@AddingScreen, 200, 5000) then
begin
writeln('Found add to bonfire screen');
MouseBox(323, 411, 389, 448, mouse_Left);
writeln('BONBONBONBON-ing');
result:= true;
end;
end;
end;
procedure XPTotalFinding;
var
XPGained: Integer;
begin
XPGained := GetXPBar(1);
writeln('EXP Gained' + IntToStr(XPGained));
end;
Procedure test;
var
bb: TBox;
begin
bb := IntToBox(323, 411, 389, 448);
SMART_DrawBox(bb);
end;
Procedure DrawTheBox;
var
XPBOX: TBox;
begin
XPBOX := IntToBox(375, 7, 421, 21);
SMART_DrawBox(XPBOX);
end;
procedure PlayerStats;
var
Wet, Wst, Cst, Srt, Tih, Tim, Tis, Awt, Sec, sst, EndingXP, XPGained: Integer;
begin
Cst := GetSystemTime;
Srt := (cst - sst) / 1000;
Tih := srt / 3600;
tim := (srt / 60) - tih * 60;
Tis := srt - tim * 60 - tih * 3600;
Awt := wet - wst
Sec := GetTimeRunning div 1000 + 1;
EndingXP := GetXPBarTotal;
XPGained := EndingXP - StartingXP;
Writeln('######################################### ##############');
Writeln(' Shantay Bank Chest Bonfire ');
Writeln('######################################### ##############');
Writeln('Logs / Hour : ' + IntToStr(Round(3600 * Players[CurrentPlayer].Integers[3] / Sec)));
Writeln('Logs Done : ' + IntToStr(Players[CurrentPlayer].Integers[3]));
Writeln('Fire Spirit : ' + IntToStr(CollectedRewards));
writeln('EXP Gained : ' + IntToStr(XPGained));
writeln('EXP / Hour : ' + IntToStr(Round(3600 * XPGained / Sec)));
Writeln('Running for : ' + TimeRunning);
Writeln('-------------------------------------------------------');
//SRL stats
if (TimeFromMark(Stats) > 360000) then // 6 minutes.
begin
Stats_Commit;
MarkTime(Stats);
end;
end;
function LogsDecreased(start: integer): boolean; //New
begin
result:= CountItems('dtm', logs, []) < start;
end;
function InShantayPassTPA: boolean;
var tpa: TPointArray;
begin
result:= false;
SetColorToleranceSpeed(1);
if FindMMColorsSpiralTolerance(tpa, 2248829, 25) then //rock brown
begin
writeln('tpa count: '+ IntToStr(length(tpa)));
result:= length(tpa) >= 850;
end;
writeln('InShantayPassTPA: ' + booltostr(result));
end;
function AdjustPositionTPA: boolean;
var x, y: integer;
tpa: TPointArray;
begin
result:= false;
if not InShantayPassTPA then Exit; //
SetColorToleranceSpeed(1);
if FindMMColorsSpiralTolerance(tpa, 2413294, 25) then //bank symbol
begin
writeln('tpa count: '+ IntToStr(length(tpa)));
MiddleTPAEx(tpa, x, y);
Mouse(x, y, 3, 3, mouse_left);
wait(1000+random(250));
while IsMoving do
wait(100+random(50));
result:= true;
end;
writeln('AdjustPositionTPA: ' + booltostr(result));
end;
//odtm main point
//'84:84:3:9:7:49:39:9:7:31:56:9:7:36:80'
//odtm area
//'80:80:3:9:7:49:39:9:7:31:56:9:7:36:80:8:58:40:77: 40:92:53:92:83:76:96:61:96:51:81:51:46'
{$IFDEF USEODTM}
function InShantayPass: boolean; //New
begin
result:=false;
if not LoggedIn then Exit;
FindNormalRandoms;
result:= ObjDTM_InArea(ODTM_AREA, true);
end;
function AdjustPosition: boolean; //New
var odtm: string;
cx, cy: integer;
begin
result:=false;
if not LoggedIn then Exit;
FindNormalRandoms;
odtm:=ODTM_WALK;
if ObjDTM_Find(odtm, cx, cy, True) then
begin
result:= true;
Writeln('We found it, now lets walk it!');
ObjDTM_Walk(odtm, 2, 200, 10, True);
end else
Writeln('We could not walk here, what a shame');
if result then
FFlag(2);
end;
{$ENDIF}
{$IFDEF USESPS}
function InShantayPass: boolean;
var p: TPoint;
begin
result:= false;
FindNormalRandoms;
if not InShantayPassTPA then Exit;
p:= SPS_GetMyPos;
writeln('Acquiring position...');
writeln('SPS located: ' + format('%d %d', [p.x, p.y]));
if (p.x <= -1) and (p.y <= -1) then Exit; //lost
result:= (Distance(p.x, p.y, 5065, 4185) <= 75);
writeln('InShantayPass: ' + booltostr(result));
end;
function AdjustPosition: boolean; //New
var p: TPoint;
begin
result:= false;
FindNormalRandoms;
if not InShantayPass then
begin
writeln('Cannot adjust as we''re not in Shantay Pass');
writeln('AdjustPosition: ' + booltostr(result));
Exit;
end;
p:= SPS_GetMyPos();
writeln('Adjusting position...');
writeln('SPS located: ' + format('%d %d', [p.x, p.y]));
result:= SPS_WalkPath([Point(5060, 4185)]);
writeln('AdjustPosition: ' + booltostr(result));
end;
{$ENDIF}
function CheckWorld100: boolean;
var cw: integer;
begin
result:=false;
FindNormalRandoms;
cw:= CurrentWorld;
writeln('current world is: ' + IntToStr(cw));
if (cw<>100) then
begin
writeln('world switch required');
result:= ChangeWorld(100);
writeln('world switch success: ' + booltostr(result));
end
else result:= true;
end;
procedure MainLoop; //New
var action: string;
t, t2, t3, ts, start, fail, fail2, fail3: integer;
check, redo: boolean;
v: TVariantArray;
begin
action:= 'bank';
while LoggedIn do
begin
FindNormalRandoms;
writeln('Current action is: ' + action);
if fail > 0 then
writeln('fail: ' + IntToStr(fail));
if (fail >= 5) then
begin
writeln('banking failed consecutively...');
writeln('checking our position...');
FindNormalRandoms;
if InShantayPass then
action:='walk'
else
action:='lode';
end;
if (fail3 >= 3) then //verify if we''re in world 100
begin
writeln('failed to add to bonfires for quite a bit...');
writeln('verifying if we''re on world 100 at all...');
FindNormalRandoms;
if not CheckWorld100 then
begin
Logout; //finish the script and hope SMARTManager/CrashSMART restarts it
TerminateScript;
end
else fail3:= 0; //continue, we''re just having very bad luck
end;
case action of
'bank': begin
if FindShantayChest then
begin
if OpeningBank then
begin
WaitFunc(@FindInvLogs, 200, 2000);
action:= 'burn';
fail:= 0;
end;
end
else Inc(fail);
end;
'burn': begin
redo:= true;
check:=true;
if (CountItems('dtm', Logs, []) = 0) then
begin
action:='bank';
continue;
end;
if Bonbon then
begin
start:= CountItems('dtm', Logs, []);
writeln('starting logs: ' + IntToStr(start));
v:= [start];
//use first log adding as heuristic, does not work for low levels
//because low levels might have large delays in adding first log to bonfire
if not WaitFuncEx('LogsDecreased', v, 500, 5000) then
begin
writeln('Guessing no bonfires nearby, relocate!');
AdjustPosition;
Inc(fail2); //silent updated
//Maybe try to find fire here later??
//todo
//if you insist you want to make your own fires
//add code here, but i aint doing this for your safety
if (fail2 >= 2) then //force banking to relocate
begin
writeln('position adjusting doesnt seem to work...');
writeln('will try to find bank chest to relocate...');
action:='bank';
fail2:= 0;
Inc(fail3);
end;
continue;
end;
fail2:=0;
MarkTime(t);
MarkTime(t2);
MarkTIme(t3);
repeat
FindNormalRandoms;
// writeln('current logs: ' + IntToStr(CountItems('dtm', Logs, [])));
//find fire spirit, thanks Ashaman88 for the tips
if IsChatBoxTextAnyLine('emerges', 397249) and (InvCount<24) and check then
// if (FindChatBoxText('emerges',8,397249{clRed})) and (InvCount<24) then
begin
writeln('Spirit is around!');
if FindSpirit then
begin
check:= false; //dont scan after we have collected rewards
Inc(CollectedRewards);
break;
end;
end;
//update and continue
if LogsDecreased(start) then
begin
start:= CountItems('dtm', Logs, []);
MarkTime(t);
end;
//No update in FM_TIMEOUT ms, force redo
if (TimeFromMark(t) > FM_TIMEOUT) and not LogsDecreased(start) then
begin
writeln('Logs stopped burning - will reburn');
break;
end;
wait(250+random(250));
until (CountItems('dtm', Logs, []) = 0) or (TimeFromMark(t2) > 120000);
//Decide action
if (CountItems('dtm', Logs, []) = 0) then
begin
IncEx(Players[CurrentPlayer].Integers[3], 28);
redo:= false;
PlayerStats;
end;
if not redo then
action:= 'bank';
end;
end;
'walk': begin
if AdjustPosition then
begin
action:='bank';
fail:= 0;
end;
end;
'lode': begin
FindNormalRandoms;
writeln('If you get this chances are you''ve failed a random!');
writeln('Or you''ve got a random but SRL failed to detect it');
writeln('TODO - logout and terminate');
Logout;
TerminateScript;
end;
end;
wait(100+random(50));
end;
end;
procedure DebugLocations; //Acid test on location finders
begin
InShantayPass;
AdjustPosition;
end;
begin
SetupLogin;
{$IFDEF USEODTM}
ObjDTM_Setup; //req'd for ODTM usage
ObjDTM_Debug := True;
{$ENDIF}
{$IFDEF USESPS}
SPS_SETUP(RUNESCAPE_SURFACE,['12_10']);
{$ENDIF}
SMART_ClearCanvas;
AddOnTerminate('EndDTM');
StartDTM;
// UseFindMod := false; //uncomment if you don't want mods to mess up
// DebugLocations; //uncomment if you need debug
// OpeningBank;
MainLoop;
end.
satkan
08-16-2012, 09:29 AM
^ Looks more in place now :)
[F]aceless
08-16-2012, 11:59 AM
Nice script! Works great! Thanks man
You forgot something on the script.
Im sure it checks for that red text on game box for tracking fire spirits right?
But as long as the red line is still visible it keeps looking for the spirit even if it was already freed.
You should add something to ignore that specific red line after the spirit is freed.
Randoms are still a problem. cant do any randoms. logs out after every random appears and sometimes tries doing it and fails and then my player is teleported to some random place and script logs out.
Apart from that the script is awesome
Andres
08-18-2012, 07:59 PM
Good fix, Mika. Working like a charm:
################################################## #####
Shantay Bank Chest Bonfire
################################################## #####
Logs / Hour : 733
Logs Done : 224
Fire Spirit : 24
EXP Gained : 63574
EXP / Hour : 208060
Running for : 18 Minutes and 19 Seconds
-------------------------------------------------------
P1nky
08-19-2012, 12:59 PM
################################################## #####
Shantay Bank Chest Bonfire
################################################## #####
Logs / Hour : 875
Logs Done : 1036
Fire Spirit : 12
EXP Gained : 152543
EXP / Hour : 128849
Running for : 1 Hours, 11 Minutes and 1 Seconds
-------------------------------------------------------
Works like a charm, just hate that randoms are quite frequent... :/
satkan
08-20-2012, 09:21 AM
Especially at xp rates like this.
I always expect a random after about 100-125k xp.
Mostly that is a right estimate.
Valeyard
08-21-2012, 07:51 PM
Last time I used this I must of got closed to getting banned, people sometimes start a bunch of random fires away from the chest and all the people that move away from the chest and go to those random fires on their own are obviously bots.
Does this still happen with the script, or does it force you to stay on a fire that is one square beside the bank chest?
Virtus Titan
08-22-2012, 07:39 PM
shantay chest tpa count: 213
Clicked Bank chest
BankScreenEx found
Withdrawing logs
doesnt withdraw ,just sits there
bweibking
08-24-2012, 05:09 AM
Hope This Gets Updated Soon =)
[F]aceless
08-25-2012, 05:47 PM
the randoms are always breaking the script because it cant do randoms.
Valeyard
08-29-2012, 04:10 PM
You REALLLLLY have to babysit this much more than other bots. If someone makes a fire a couple squares away from the chest, this will use it, and then say they make a fire another square or two over it will use that. But then if that fire goes out, it kind of gets stuck since it can't add logs to fire - no fire in range. And it is dead obvious who the bots are. People are already suspicious when people run out and use the other random fires rather than the one by the chest.
If the script used its old method of finding a fire and then doing click log --> use --> click fire, then it shhouldn't be too hard to write a bit of code to search for fires, provide arbitary distance values from the chest and then decide to use whichever one is closest to the chest.
Of course none of this is going to happen since this script (along with part of the community :( ) seems dead. But thats' just my 2 cents.
Valeyard
08-29-2012, 05:12 PM
Been here an hour and already some guy is lighting fires all the way over at the side shouting "bot trap lololol"
:(
[F]aceless
08-29-2012, 05:23 PM
Been here an hour and already some guy is lighting fires all the way over at the side shouting "bot trap lololol"
:(
lol i saw that too. dont mind that some non bots go there too because they use the same bonfire option as we do. and it rarely happens
[F]aceless
08-29-2012, 05:42 PM
Got 99!!
Thanks Erik! Thanks Mika!
U can add me to the OP
Valeyard
08-29-2012, 06:04 PM
Congratulations!
(another "bot trap")
Valeyard
08-29-2012, 09:56 PM
Holy shit these people in W100 Shantary are doing my head in, considering buying Magic logs just to get through this faster. I don't think I am going to make it through this without a ban/statwipe. The people here are actively seeking out bots and are so suspicious.
With that said, even if I were to be reported I am not sure it would even result in any trouble, I have been talking in game quite a bit today anyway
Leonardo Da Vinci
09-06-2012, 11:02 AM
Any chance of getting any anti-randoms?
The script is flawless, it's amazing!
But the randoms are unbearable!
onilika
09-06-2012, 03:47 PM
Any chance of getting any anti-randoms?
The script is flawless, it's amazing!
But the randoms are unbearable!
There's no way to avoid randoms. So, anti-randoms don't exist.
All you have to do is complete the random.
If it fails the random, the script writer has nothing to do with it, since randoms solvers are implemented on Simba.
If you see that the script fails some random, you should post in the right section of this forum, in order that developers update the random's solver.
Emotional
09-13-2012, 03:23 AM
[Error] C:\Simba\Includes\srl/srl/misc/smart.simba(46:19): Invalid number of parameters at line 45
Compiling failed.
any help?
satkan
09-13-2012, 03:10 PM
Well, Ashaman's POH Bonfire is working of the bat, and there are no randoms there?
Leo, you should look into it.
Others with compiling problems also.
guide
09-17-2012, 11:43 PM
Thanks for the fix!
################################################## #####
Shantay Bank Chest Bonfire
################################################## #####
Logs / Hour : 845
Logs Done : 812
Fire Spirit : 5
EXP Gained : 135732
EXP / Hour : 141264
Running for : 57 Minutes and 38 Seconds
Parfilo
10-13-2012, 06:02 AM
This script has worked well for me and I just want to let you guys know that tonight I'm getting 99 FireMaking! 600k xp left, thank you so much!
Powered by vBulletin® Version 4.2.1 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.