Most efficient and flawless script I've used yet.
Most efficient and flawless script I've used yet.
im new idk where download is
It works good for sometime , but then it stops and this error happens.
We have made/cleaned a total of 882 super energys
Bank Uptext found, clicking bank
We did not find bank after clicking, checking for pin screen
We did not find bank after clicking or the pin screen
Bank not found, trying find_chest
Looking for bank with DTM
Warning! You passed a wrong xs to a finder function: -1. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ys to a finder function: -1. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ye to a finder function: 519. The client has a height of 503, thus the ye is out of bounds. Setting the value to 502 (h-1) for now.
Warning! You passed a wrong xs to a finder function: -21. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ys to a finder function: -21. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ye to a finder function: 539. The client has a height of 503, thus the ye is out of bounds. Setting the value to 502 (h-1) for now.
The following DTMs were not freed: [SRL - Lamp bitmap, 1, 2]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128]
I am using this script like a week and i dont get any errors. Works Brilliant!!
Ps: It cleans 5K herbs in a hour. You gain 25K herblore exp with some profit.
i cant get it to find the bank it says bank uptext not found a million times
Bank Uptext not found
Warning! You passed a wrong xs to a finder function: -101. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ys to a finder function: -101. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ye to a finder function: 619. The client has a height of 503, thus the ye is out of bounds. Setting the value to 502 (h-1) for now.
Ok so i know you've given up on this bot but i had it working last night, now i'm having trouble again, it seems to be the antiban, it's just rotating my camera, any help would be much appreciated.
Many thanks
I can't seem to trust the log in thing, is it safe to enter acc details/bank pin in the form?
script crashes on login - just spins the camera around with the text
Warning! You passed a wrong xs to a finder function: -61. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ys to a finder function: -61. That is below 0, thus out of bounds. Setting the value to 0 for now.
Warning! You passed a wrong ye to a finder function: 579. The client has a height of 503, thus the ye is out of bounds. Setting the value to 502 (h-1) for now.
I'm working on a new one atm but first I'm making an include file I'm gona call something like FindBankItems. My plan is to use this include with all my future scripts on bank withdrawing. So like using an srl function, anyone can use this include in there script to find and withdraw items. I know there are srl functions that already exist that HELP in finding items, But what I want is to be able to enter
Simba Code:if(FindBankItem('Iron ore'))then // 'Iron ore' <-- exactly how it's typed in rs
DoThis;
The above would use many types of methods in finding the item. All I would have to do after this and start collecting a database on most commonly used items.
I have alot of work to do and little free time to do it so don't expect anything anytime soon. But once I complete the FindBankItems thingy I will be a simple matter of adding it to my incomplete script I been working on just below.
For a temp script That I use on a daily bases I posted on the first page.
Just showing you that I am working on it.
Simba Code:program SRLBasicTemplet;
{$DEFINE SMART}
{$i srl/srl.Simba}
{$i FindBankItem.Simba}
//{$i Basic.Simba}
//{$i SRL/SRL/misc/paintsmart.Simba}
//{$i ObjectDTM\ObjDTMInclude.simba}
// ItemArray stores everything about every item.
type
ItemArray = record
ItemName: string;
ItemType: integer;
LocationX: integer;
LocationY: integer;
end;
var
x, y, count: Integer;
FirstTime: Boolean;
Item: array of ItemArray;
const
Login_44 = 1; // 0 =451 off; 1 = on;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Youe Rs username
Players[0].Pass := ''; //Your RS password
Players[0].Nick := ''; //3-4 letters from name
Players[0].Active:= True;
Players[0].Pin := '';
end;
//***********************************
// Logs in player, need to redo
//***********************************
procedure CheckLogin;
var
Login_Screen,Invalid_Screen, Update_Screen:Integer;
begin
Login_Screen := DTMFromString('78DA6354656460D8C1800214656418B880345' +
'086E13F1030660059EDA86A5E3FD8035703028C6E40D605026A64' +
'81AC2B04D4D80359428C286A5616B0A0AA5943849A6620AB07BF5' +
'D00B3E316FA');
//Looks for Login and Lobby Screens
if(FindDTM(Login_Screen, x, y, 243, 107, 517, 418))or
(LobbyScreen)then
begin
Sleep(1000+Random(1000));
if(LoginPlayerToLob)then
begin
if(Login_44 = 1)then
begin
if(OpenWorldScreen)then
begin
Sleep(1000+Random(1000));
Mouse(123,125, 3, 3, true);//click world order arrow
Sleep(500+Random(1000));
Mouse(686,157, 4, 0, true);//click scroll bar top
Sleep(1000+Random(1000));
Mouse(687, 257, 3, 0, true);//click scroll bar to see world 44
Sleep(1000+Random(1000));
Mouse(144, 281, 100, 8, true);//click world 44
Sleep(2000+Random(1000));
Mouse(308, 452, 160, 19, true);//click login
Sleep(2000+Random(1000));
Writeln('Logged into world 44');
end else
begin
Writeln('Could not log into world 44');
if(LoginPLayer)then
begin
Writeln('Logged in');
end else
begin
CheckLogin
end;
end;
end else
begin
if(LoginPLayer)then
begin
Writeln('Logged in');
end else
begin
CheckLogin
end;
end;
end else
begin
CheckLogin;
end;
end;
FreeDTM(Login_Screen);
end;
//***********************************
// Antiban, need to redo
//***********************************
procedure AntiBan(SlotNum: Integer);
var
j, WTime, SleepT, CTime, StartColor :Integer;
Slot: TBox;
time :longword;
begin
j := Random(201)
time := GetSystemTime;
WTime := 15000 + Random(1000);
SleepT := time + WTime;
Slot := invbox(SlotNum);
StartColor := GetColor(Slot.x1 + 19, Slot.y1 + 15);
repeat
case j of
0: begin
//Check_for_text;
HoverSkill ('Herblore', False);
Sleep(1000+Random(3000));
GameTab(tab_Inv);
end;
1..5:
begin
//Check_for_text;
PickUpMouse;
end;
6..10:
begin
//Check_for_text;
RandomRClick;
end;
11:
begin
//Check_for_text;
//GameTab(tab_Inv);
end;
12:
begin
//Check_for_text;
ExamineInv;
end;
13..200:
begin
end;
end;
Sleep(500+Random(500))
CTime := GetSystemTime;
until(WaitColorGone(StartColor, Slot.x1 + 19, Slot.y1 + 15, 5, 30000))or
(SleepT < CTime)
end;
//***********************
//Script setup ** Not Finished
//***********************
procedure SetupWhatToMake;
begin
SetArrayLength(Item, 2);
Item[0].ItemName := 'water';
Item[0].ItemType := 2;
Item[1].ItemName := 'harralander';
Item[1].ItemType := 1;
end;
var
ItemData: array of ItemDataArray;
//**************************
//
//Need a way to check current item amount in bank to
//crosscheck with how many to be made. Don't want to
//go over the amount and lose item positions
//
//*************************
//Uses SetupWhatToMake array list to find all the items in bank the
//script is gona need to complete all tasks and store it's bank location.
procedure WithdrawSetup;
var
I, Ind: Integer;
FoundXY, BankXY, RowSlot: TPoint;
begin
SetupWhatToMake;
for I := 0 to High(Item) do
begin // Loops till all items script is gonna need is found
if(FindTheItem(x, y, Item[I].ItemName, Item[I].ItemType))then
begin
FoundXY := Point(x, y); //Stores found item x, y to a Tpoint
RowSlot := MSTPointToBankPoint(FoundXY); //Converts mouse point to a bank point(row, column)
Ind := BankPointToBankIndex(RowSlot); //Converts point to index
BankXY := BankIndexToMSPoint(Ind); // Converts index to mouse point
Item[I].LocationX := BankXY.x + 14;// Stores middle point of bank slot for item
Item[I].LocationY := BankXY.y + 15;
writeln(Item[I].ItemName + ' found and stored at row ' + IntToStr(RowSlot.y + 1) + ', Slot ' + IntToStr(RowSlot.x + 1));
end else
begin
Writeln('Shutting down script');
TerminateScript;
end;
end;
end;
//Simple right click and move mouse 74(Random) pixels down to withdraw-?
procedure GetTheItem(ax, ay: integer);
begin
Mouse(ax - 4, ay - 4, 8, 8, false);
Sleep(500 + Random(500));
GetMousePos(x, y);
Mouse(x - 5, y + 74, 10, 4, true);
end;
// Withdraws First items
function WithdrawFirst: Boolean;
begin
GetTheItem(Item[0].LocationX, Item[0].LocationY);
if(WaitInvCount(14, 4000, ExactCT))then //****Change to item.amount
begin
Result := True;
end else WithdrawFirst;
end;
// Withdraws Second items
function WithdrawSecond: Boolean;
var
StartCount, FinishCount: Integer;
begin
GetTheItem(Item[1].LocationX, Item[1].LocationY);
if(WaitInvCount(28, 4000, ExactCT))then
begin
Result := True;
end else WithdrawSecond;
end;
// Withdraws items
procedure WithdrawStuff;
begin
DepositAll;
if(FirstTime = True)then
begin
WithdrawSetup;
FirstTime := False;
end;
if(WithdrawFirst)then
begin
if(WithdrawSecond)then
begin
CloseBank;
end else
begin
WithdrawStuff;
end;
end else
begin
WithdrawStuff;
end;
end;
//Waits for 4 sec for the bank screen and also handles pin screen
function WaitForBank: Boolean;
begin
if(WaitFunc(@BankScreen, 500 + Random(100), 4000))or
(WaitFunc(@PinScreen, 500 + Random(100), 4000))then
begin
if(PinScreen)then
begin
Writeln('We are at pinscreen');
if(CheckPin)then
begin
WaitFunc(@BankScreen, 500 + Random(100), 4000);
if(BankScreen)then
begin
Result := True;
Sleep(500 + Random(500));
Exit;
end else
begin
Writeln('Did not find bank after enetering pin');
end;
end;
end;
if(BankScreen)then
begin
Result := True
Sleep(500 + Random(500));
end;
end else
begin
Writeln('Did not find bank after waiting');
end;
end;
// Finds bank using OpenBankChest
function FindTheBank3: Boolean;
begin
if(OpenBankChest(SRL_BANK_SW))then Result := True;
end;
// Finds bank using OpenBankChestEdge
function FindTheBank2: Boolean;
begin
if(OpenBankChestEdge(SRL_BANK_SW))then Result := True;
end;
// Finds bank using only uptext(Quick)
function FindTheBank1: Boolean;
begin
count := 0;
x := 256;
y := 196;
repeat
MMouse(x, y, 15, 7);
WaitUpTextMulti(['Use', 'ank', 'hest', 'che', 'nk ch'], 1000 + Random(100));
Inc(count);
until(IsUpTextMultiCustom(['Use', 'ank', 'hest', 'che', 'nk ch']))or
(count > 20)
if(IsUpTextMultiCustom(['Use', 'ank', 'hest', 'che', 'nk ch']))then
begin
GetMousePos(x,y)
Mouse(x,y,0,0,true);
if(WaitForBank)then Result := True;
end;
end;
// Uses the above 3 funtions to try and open the bank.
function OpenTheBank: Boolean;
begin
if(BankScreen)then
begin
Result := True;
Exit;
end;
CheckAngle(180);
if(FindTheBank1)then
begin
Result := True;
end else
begin
if(FindTheBank2)then
begin
Result := True;
end else
begin
if(FindTheBank3)then
begin
Result := True;
end else
begin
Writeln('Could not open the bank')
end;
end;
end;
end;
//Waits 4 sec for the make screen
Function WaitForMakeScreen: Boolean;
begin
if(WaitColor(388, 357, 2070783 , 5, 4000))then
begin
Writeln('Make screen found');
Result := True;
end else
begin
Writeln('Make screen not found');
end;
end;
//Makes the items
procedure Make;
var h :Integer;
begin
if not(InvFull)then Exit;
While not(ItemActivated(13)) do
begin
Mouse(575, 329, 10, 10, True);
Sleep(500 + Random(100));
end;
Mouse(570, 372, 10, 10, true);
if(WaitForMakeScreen)then
begin
Mouse(227, 406, 30, 20, true);
count := 1;
AntiBan(14); //Tie in 14 to amount in ItemArray
end else
begin
Make;
end;
end;
//Main Loop
procedure MainLoop;
begin
if(OpenTheBank)then
begin
WithdrawStuff;
Make;
end;
end;
Begin
ClearDebug();
Smart_Server := 44;
SetupSRL();
count := 0;
FirstTime := True;
repeat
MainLoop;
until(false)
End.
[Error] (32:1): Semicolon (';') expected at line 31
Compiling failed.
It keeps saying that at the Playsound_When_Done = false;// //
But the ';' is there... and if i delete that line, It'll say that ';' is expected at the line with
Procedure DeclarePlayers;
Weird.. I'm using the Temp. script that you posted on the first page.
Why does it bank every 5 unf made? How do I change that?
Last edited by Adamcoled; 03-04-2012 at 02:31 PM.
[Hint] (142:3): Variable 'INVALID_SCREEN' never used at line 141
[Hint] (142:3): Variable 'UPDATE_SCREEN' never used at line 141
[Error] (1:1): Unexpected end of file at line 0
Compiling failed.
This is the error I keep getting :|
it worked fine for about 2minutes until the camera just keeps spinning around (antiban issues) and an issue about finding the item; im trying to finish off guam potions into attack potions and has issues finding the potions and eye of newt
looks like a great script , but needs to be corrected
Just an update I'm getting real close. I got most of the main script finished and also the bank item finding include is looking really good. If all goes as planed this include will find Items 100% of the time. I already perfected my uptext finding. Check it out.
works 100% of the time!!
Simba Code:function ConvertTextToStrArray(ItemName: string): TStringArray;
var
I: Integer;
Txtleng: LongInt;
Text_array: TStringArray;
begin
Txtleng := Length(ItemName);
SetArrayLength(Text_array, Txtleng + 1);
for I := 0 to Txtleng do
Text_array[I] := Copy(ItemName, I, 1);
Result := Text_array;
end;
function CheckUpext(text: string): Boolean;
var
I, found: integer;
leng: Extended;
CompareText: string;
TxtArray, CompareTxtArray: TStringArray;
begin
CompareText := GetTextAt(82, 10, 0, 5, 10, 3182559, 47, 75, UpChars);
Text := Replace(Text, '''', '.');
SetArrayLength(CompareTxtArray, High(TxtArray))
TxtArray := ConvertTextToStrArray(Text);
CompareTxtArray := ConvertTextToStrArray(CompareText);
Writeln('Text got from rs: ' + CompareText);
Writeln('Text we are looking for: ' + Text);
found := 0;
for I := 1 to High(TxtArray) do
begin
Writeln('Char "' + TxtArray[i] +
'"compaired with char "' + CompareTxtArray[i] +'"');
if(TxtArray[i] = CompareTxtArray[i])then
begin
Inc(found);
end;
end;
leng := High(TxtArray);
if(found > leng - (0.20 * leng))then
begin
Result := True;
end else
begin
Writeln('The uptext "' + Text + '", was not found');
Writeln('Text got from rs: ' + CompareText);
Writeln('Found ' + IntToStr(found) + ' chars out of ' + FloatToStr(leng));
end;
end;
function WaitForUpText(Text: string; Time: Integer): Boolean;
var
ax,ay: integer;
begin
if(WaitFindColor(ax, ay, 3182559, 82, 10, 100, 16, 47, Time))then
begin
if(CheckUpext(Text))then
begin
Result := True;
Exit;
end;
end;
end;
After a few more things the main thing on my list will just be to build the item database. so be on the look out!! Real Soon!!
Script is working right now, just all it makes is unf harralander pots. And I want to do some testing.
Last edited by bud_wis_er_420; 03-07-2012 at 09:11 AM.
Looks nice keep up the good work
"Sometimes User's don't need the Answer spelled out with Code. Sometimes all they need is guidance and explanation of the logic to get where they are going."
Witch bank does it support?
Hmm, script was working fine for a long time, but now i get this error.
Error: Exception: Access violation at line 101
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap]
how to make overloads?
Ok, it's beta testing time!! Check out the first page for update information.
i'm like super sad i didn't know you only gain xp from putting the ingredient in unf pot, :d cause this script is pro, would have made ALOT more xp if i knew that before
Scripts
Semtex Fishing Guild
Most difficult script to set up I've ever seen.
What is the difference between ManualMode and Easy Setup?
Do you need to fill all fields for "Easy Setup, Manual SET UP SCRIPT 1, Manual SET UP SCRIPT 2"?
What does slot 7-4 mean?
" //Fill in what to make. You can enter how ever many you want. //Just be sure to change the numbers"
Should I put a number before "//"? I tried to put 1000 and got an error.
There are currently 1 users browsing this thread. (0 members and 1 guests)