SRL Archive - RS3 Outdated / Broken Scripts

R4 ManThief


[XoL]

2011-12-05 17:01:38

Basically a script for new accounts to get to higher thieving levels without much on the account (Besides being in the room to start)

Features:
  • Steals from a women in a room near Lumbridge
  • Anti-Ban
  • Anti-Random
  • Drops after looting
  • Paint
  • Exp tracker
  • Fail Safes
  • Death walk (Hope this works, had a real hard time trying to make it work)

In Progress:
  • More anti-Ban (I have this written up I just need to implement it)
  • Fail safes (I am trying to think of some :P so far all I have is: tele-home
  • Updater (Figuring it out)
  • Form

Bugs:
  • Unexpected out of bounds error/Kills script

Updates:
2:
  • More anti-ban
  • Can eat ALL FOOD! woo so just bring an inventory full of sharks (You will never die )
  • Paint (Useless but it is there)
  • Exp Tracker (Not really sure if it works >.<)
  • Death walk (doesn't work)
  • A few fail safes

3:
  • More anti-ban
  • Paint (More interesting!)
  • Death walk
  • More random features.
  • Cleaned up a bunch of useless code (over 100 lines!)

3-1:
  • SRL-5


I really don't like releasing unfinished products but I figured I would release this as I made it almost a full month ago and I think releasing it will push me into improving it further.

Also this can easily be converted into a man killer just by changing the uptext to ttack instead of ocket. :)

Credits: Luff + Flight for a lot of help, I would not of been able to of had this working at all without their help. I also used many other's scripts to learn example narcles fighter to learn how to make my script eat.

-R4nd0m

The actual Script:
Version 3.

program R4_ManThief;
{$i SRL/SRL/misc/smart.simba}
{$i SRL/SRL.simba}
{$i sps/sps.simba}
{$i SRL/SRL/Misc/stats.simba}
{$i srl/srl/misc/paintsmart.simba}
//{$i VVForm.simba}


{Welcome to R4nd0m's Man Thief, this script steals from men/women giving
you coins and XP!.
Features:
Death Walk
Anti-Ban/Anti-Random
Eating (50%-) Any food (Just keep in inventory)
SRL Stats
An Interesting Paint/Painted Mouse
Human like Mouse moments (Thanks Flight)
Progress Reports}

Var
man, Location, TimeLast, x, y :Integer;
Lumbridge, Stairs: TPoint;
WalkHome: TPointArray;
CStatus: String;

Const
Version = 3; //Please do not change.

//SRL info HERE!
SRLStats_Username = '';
SRLStats_Password = '';

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; // This is the player to start with
Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // 3-4 lowercase letters from username;
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
end;

Procedure CheckStats;
begin
if ((SRLStats_Username = '') And (SRLStats_Password = '')) then
begin
SetupSRLStats(201,'Anonymous','anon1337');
Exit;
end;
end;

procedure ClearSmartCanvas;
{$IFDEF SMART}
var
drawing : TBitmap;
begin
drawing := TBitmap.Create;
drawing.canvas.handle := SmartGetDebugDC;
ClearRSCanvas(drawing.canvas);
try
FreeBitmap(drawing);
except
end;
{$ELSE}
begin
{$ENDIF}
end;

Procedure PrintOnSmart(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1,8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;

Procedure Painting;
begin
PrintOnSmart(['R4_ManThief','-----------', 'Status:', CStatus],
Point(40, 50),60928);
end;

procedure ProgressReport;
begin
ClearDebug;
WriteLn('[R4nd0m] ManThief');
WriteLn('===================================================');
WriteLn('===================================================');
WriteLn('Running for: ' + TimeRunning);
WriteLn('Times PickPocketed: ' + IntToStr(man));
Writeln('XP gained:'+ IntToStr(man*8));
WriteLn('===================================================');
WriteLn('===================================================');
end;

//By Benland100, modified to paint mouse movements
procedure WindMouse2(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
var
veloX, veloY, windX, windY, veloMag, dist, randomDist, lastDist, step: extended;
lastX, lastY: integer;
sqrt2, sqrt3, sqrt5: extended;
begin
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
while hypot(xs - xe, ys - ye) > 1 do
begin
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
if (maxStep < 3) then
begin
maxStep:= random(3) + 3.0;
end else
begin
maxStep:= maxStep / sqrt5;
end;
end;
veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;
if hypot(veloX, veloY) > maxStep then
begin
randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * randomDist;
veloY:= (veloY / veloMag) * randomDist;
end;
lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;
if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));
step:= hypot(xs - lastX, ys - lastY);
wait(round((maxWait - minWait) * (step / maxStep) + minWait));
lastdist:= dist;
SMART_DrawDotsEx(False, [Point(lastX, lastY)], 65280);
end;
if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MoveMouse(Round(xe), Round(ye));

end;

{*******************************************************************************
Procedure HumanMMouse(eX, eY: Integer);
By: Flight
Description: Human-like miss-and-correct mouse movement
*******************************************************************************}
Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,A,Dist,MP: integer;
begin
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;

randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(A*MP), eX+(A*MP));
Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
WindMouse2(X, Y, X2, Y2, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
ClearSmartCanvas;
end;

procedure Antiban;
begin
CStatus := 'AntiBan working'
Painting;
case Random(60) of
20: HoverSkill('Thieving', False);
30: PickUpMouse;
40: RandomMovement;
50: BoredHuman;
59: ExamineInv;
end;
Writeln('Antiban in action!');
end;

procedure AntiRandom;
begin
CStatus := 'Checking for randoms'
Painting;
FindNormalRandoms;
LampSkill := 'thieving';
LevelUp;
Writeln('Checking for randoms');
end;

procedure HpCheck; //Thanks Narcle, used your script to learn how to do this
var
a, t, b, x, y:Integer;
begin
CStatus := 'Checking Health/Eating'
Painting;
if (HPPercent < 50) and LoggedIn then
begin
if not InvEmpty then
for a := 0 to 2 do
for b := 1 to 28 do
if ExistsItem(b) then
begin
MMouseItem(b);
GetMousePos(x, y);
if WaitUptext('Eat', 400) then
begin
Mouse(x,y,0,0,false);
if WaitOption('Eat', 400) then
begin
t := GetSystemTime;
while ExistsItem(b) and ((GetSystemTime-t) < 2000) do
wait(20);
if (HPPercent > 70) then
Exit;
end;
end;
end;
if (not LoggedIn) or (HPPercent > 50) then
Exit;
end;
end;

Procedure Climb;
begin
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['tairs'], [4083549, 4215135, 4017499], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('limb');
end;
Procedure Door;
begin
WriteLn('Upstairs!');
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['oor'], [3555142, 3291713, 3686729], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('pen');
end;

Procedure WalkToHouse;
begin
CStatus := 'Walking...'
Painting;
Antirandom;
HumanMMouse(X, Y, 5, 5);
WalkHome := [Point(4725, 3785), Point(4755, 3740),
Point(4705, 3710), Point(4645, 3675)];

If(SPS_WalkPath(WalkHome)) then
WriteLn('At Stairs');
Climb;
Door;
end;

function Live: Boolean;
begin
CStatus := 'Are we alive?'
Painting;
Result := False;
if FindTextTPA(0, 0, MCX1, MCY1, MCX2, MCY2, 'dear', SmallChars, Nothing) then
if FindTextTPA(0, 0, MCX1, MCY1, MCX2, MCY2, 'dead', SmallChars, Nothing) then
begin
Inc(RandSolved[rand_Death]);
Result := True;
SaveToChatLog;
if (SRL_Procs[srl_OnFindDead] <> nil) then
SRL_Procs[srl_OnFindDead]();
if (Reincarnate) then
begin
WalkToHouse;
TakeScreen('Found Dead');
Players[CurrentPlayer].Rand := 'Oh Dear You Are in Lumby';
Players[CurrentPlayer].Active := False;
end;
end;
end;


function Steal(): Boolean;
begin
repeat
Antiban;
Antirandom;
CStatus := 'Stealing'
Painting;
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['man'], [532535, 400175, 399144, 466225], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('ocket');
until false;
end;

//reminder: Switch to TPA or DMT (Need to figure this out...)
function FindMan(): Boolean;
begin
repeat
Steal;
HpCheck;
Live;
ProgressReport;
HumanMMouse(X, Y, 5, 5);
{if(StrInArr('our gravestone', ChatBoxTextArray(clMessage)))
then
begin
HumanMMouse(X, Y, 5, 5);
WalkToHouse;
end;}

{(Use for Master Farmers/Ham members)
if InvFull then
begin
HumanMMouse(X, Y, 5, 5);
Wait(RandomRange(100, 200));
DropAll;
Writeln('Dropping inventory')
end;}

until false;
end;

procedure Sequence;
begin
SetAngle(true)
SetRun(true)
FindMan;
end;

begin
CStatus := 'Logging in...'
Lumbridge := Point(4720, 3785)
SPS_Areas := ['11_9'];
SPS_Setup(RUNESCAPE_SURFACE, SPS_Areas);

Smart_Server := 77;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;

ClearDebug;
ClearSmartCanvas;
Painting;
DeclarePlayers;
CheckStats;
LoginPlayer;
Sequence;
ProgressReport;
end.

P1nky

2011-12-06 14:39:26

Simple , but shall do the Job.

Keep trying mate, and good job.

Dr. Fuji

2011-12-07 00:28:41

Will test and post proggy any idea how much it makes per hour?

Grimtoker

2011-12-07 13:14:31

Great script! level 1-15+ Thieving in no time at all! Thank you.

One thing is they only loot 3 gold coins which now go straight into coin bag, so no need to drop anything from inventory at all.

Is it possible to modify the script so it will steal from Farmers, Guards, Warriors etc?

Eat food at HP<50 would be awesome too!

Grimtoker

2011-12-07 14:34:38

Ok I modified the colours and name from "man" to "mer" in the script and it flawlessy runs on Farmers too. Sure it will work with other npcs too.

onilika

2011-12-07 14:38:51

^ careful with double posts…

[XoL]

2011-12-07 16:46:59

From: Grimtoker
Ok I modified the colours and name from "man" to "mer" in the script and it flawlessy runs on Farmers too. Sure it will work with other npcs too.


It works on all monsters :P
Just change the name and the colors, hmm so food?

Edit:
Added progress reports (didn't release yet though) (Honestly never tested the script I just assumed it works :P if it can attack it should be able to thieve) I did not know what men gave :P

yep

2011-12-09 19:19:52

Going to use this right now, if it's easy exp I'll take it.

[XoL]

2011-12-09 22:41:25

okay :), I should have the next updated version released late tomorrow
That will include

Full deathwalk
Food eating
Exp tracker
More anti-Ban
Some interesting Paint

yep

2011-12-10 07:40:39

Gained 5 levels within 2 hours from 33-38, going to continue with this. Thanks.

[XoL]

2011-12-10 18:57:10

Awesome glad you like it :)
Updates coming out soon, might have to delay it for tomorrow but it will be out!

EDIT:
New Version has been released 1.1

New features:
More anti-ban
Can eat ALL FOOD! woo so just bring an inventory full of sharks (You will never die :p)
Paint (Useless but it is there)
Exp Tracker (Not really sure if it works >.<)
Death walk (Still broken will fix for next update)
A few fail safes

Cama

2011-12-11 09:42:16

Ive got a question:
This is what I filled in so far, but since Im new to all this I dont know if Im doing this right..

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; // This is the player to start with
Players[0].Name := '***********'; // Username
Players[0].Pass := '**********'; // Password
Players[0].Nick := ''; // 3-4 lowercase letters from username;
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];

[XoL]

2011-12-11 09:55:34

Woo version 1.1
And

HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; // This is the player to start with
Players[0].Name := 'algbla'; // Username
Players[0].Pass := 'P4$$W0RD'; // Password
Players[0].Nick := 'bla'; // 3-4 lowercase letters from username;
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];

Just like that will work.

Cama

2011-12-11 16:48:52

Somehow it doesn't do anything..

This is all Simba says:
SMART Initialized.
Loaded: Server 77, Members: True, Signed: True, Super Detail: False.

[XoL]

2011-12-11 16:52:00

Nothing shows up? I normally wait around a minute before smart actually shows up.

Cama

2011-12-11 16:52:52

Nope nothing at all, should there be popping up another window?

Edit:
I seem to get this too:
[Hint] (263:10): Variable 'Result' never used at line 262
[Hint] (12:1): Variable 'VER' never used at line 11

[XoL]

2011-12-11 17:09:22

Try to re-download this: R4_ManThief2.simba (First post)
Then when you press play it should load, no clue why it is not. Perhaps you need to update your SRL/Simba version etc.?

Goku1

2011-12-11 22:46:28

Will be trying this script out :p

[XoL]

2011-12-11 23:26:45

Good to know :) I will add that deathwalk soon!
But in all honesty if you have a bit of food and put it in your inventory, the bot will eat :) you will 99% never die :p unless you have 10 hp and no food haha

TheShuffleRobot

2011-12-11 23:30:54

You should make one for a Master Farmer!

[XoL]

2011-12-11 23:38:36

I suppose I could :P
Wouldn't be too complicated to change my code up, I believe someone has already attempted to do it with my script but I don't know how far they got. If their progress isn't really that great I will take it up add banking/walking.

TheShuffleRobot

2011-12-12 02:00:14

Alright man thanks! I hope you do, I could really use that since it seems to be the best at level 38 farming..

[XoL]

2011-12-12 16:34:32

ill give him a week to do it, otherwise ill just make it :)

TheShuffleRobot

2011-12-13 01:13:17

From: R4nd0m
ill give him a week to do it, otherwise ill just make it :)


Alright ill be staying in check with you! Ill be a tester if you want!

[XoL]

2011-12-13 16:59:19

Send me a pm in a week :)
Right now I am writing the SPS walking method for my manthief, everything else is looking great!

kyocera

2011-12-15 21:02:20

good script nice antibans, but it uses them wayyyyy too frequently IMO.

[XoL]

2011-12-16 18:05:07

From: kyocera
good script nice antibans, but it uses them wayyyyy too frequently IMO.


You think? Hmm, food for thought! maybe I will decrease them a bit :)

[XoL]

2011-12-28 13:16:49

New update is out, can't say I really tested it well (F2p :( + all the accounts I used to "die" have now become level 20+ in prior testings :p)

omgmike1

2011-12-28 13:19:59

R4 is there any way to change the code for Monkey knife fighters?

[XoL]

2011-12-28 13:28:29

I need to find out what a Monkey Knife Fighter is first :P
Ill look it up, and tell you!

E: Yes it is possible but it would require a massive rewrite for certain sections.
Basically first off change the colors, then have it cosh and spam click pickpocket (if I understood correctly) Then break out of prison if caught (This would prob be the hardest part as you would need to time this against the monkey guards) then collect more bananas for health? repeat o.o

Its basically a whole new script :P, I am pretty confident it is out of my level for now try the script requests section! One of the more advanced scripters might be able to do it.

omgmike1

2011-12-28 18:00:39

Oh. WHat if you could write it in a more simple way. Like Can u make it just mass click them for thieve xp. Like I don't mind at all baby sitting the bot all the way to 99 and I'm easily willing to get it out of prison and feed it when it needs. I just can't stand the constant clicking. Is there anyways u can make it simple like that? I would GREATLY appreciate it.

[XoL]

2011-12-29 11:51:21

In that case just change the uptext of my script to "ighter" and the colors to the colors of the monkey guy :P

it will spam click away!

omgmike1

2011-12-29 13:01:10

I have no idea how to do that. Anychance u can spare like 5ish minutes. Btw I think u need to like knock them out, then pickpocket like 3 times.

eduardo230

2011-12-30 22:24:34

a monkey fighter would be epic!

hhhzzzarn

2011-12-31 09:21:37

Is "R4_ManThief3.simba" the latest code, because it attacks the women or man in that room instead of trying to pickpocket them. I tried "R4_ManThief2.simba" and it worked correctly. At that point I switched to tea stall script till level 38. Thank you for your contribution.

[XoL]

2011-12-31 11:17:31

Oh my bad! sorry, need to change that.

I am without a members account so the only way I could test was by attacking :P, thanks for the tip :) will fix!

E: Fixed standards, now its time to make a script worthy of posting for my Application.. Hmm!

ninja1901

2012-01-15 05:54:13

Exception in Script: Unable to find file 'SRL/SRL/Misc/stats.simba' used from ''

Just started using this bot. Please let me know what I'm doing wrong..

noidea

2012-01-15 16:12:00

From: ninja1901
Exception in Script: Unable to find file 'SRL/SRL/Misc/stats.simba' used from ''

Just started using this bot. Please let me know what I'm doing wrong..


Search the forums on HOW TO SETUP SIMBA. It's not a bot.

plekter

2012-01-16 04:34:18

Hey, is it working with the recent SRL update? By the looks of it, your include has ../stats.simba file included witch is no-longer needed. I commented the line out and now I get:

[Error] (63:5): Unknown identifier 'ClearRSCanvas' at line 62
Compiling failed.

ssj5127046

2012-02-05 10:11:25

me too.can i help me

humeruzz

2012-02-09 04:41:19

what does this mean?

Exception in Script: Unable to find file 'SRL/SRL/Misc/stats.simba' used from ''

partyboyrawr

2012-02-09 09:06:40

From: humeruzz
what does this mean?

Exception in Script: Unable to find file 'SRL/SRL/Misc/stats.simba' used from ''


just remove that part. You won't be needing it.

FairyHD

2012-02-19 16:06:24

This script fucks up…

Exception in Script: Unable to find file 'SRL/SRL/Misc/stats.simba' used from ''

Pokeguyx

2012-02-22 00:44:46

[Error] (62:5): Unknown identifier 'ClearRSCanvas' at line 61
Compiling failed.

J J

2012-02-22 06:17:11

From: FairyHD
This script fucks up…

Exception in Script: Unable to find file 'SRL/SRL/Misc/stats.simba' used from ''

I have edited it slightly and it works now. It will eat if HP % is <30. It will eat lobsters and is build for 10 hp so a lobster heals me to full hp at all times. So this will not work efficiently if you are >10 hp.

program R4_ManThief;
{$DEFINE SMART}
{$i SRL/SRL/misc/smart.simba}
{$i SRL/SRL.simba}
{$i sps/sps.simba}
{$I SRL/SRL/misc/paintsmart.simba}
//{$i VVForm.simba}

{Welcome to R4nd0m's Man Thief, this script steals from men/women giving
you coins and XP!.
Features:
Death Walk
Anti-Ban/Anti-Random
Eating (30%-) Any food (Just keep in inventory)
SRL Stats
An Interesting Paint/Painted Mouse
Human like Mouse moments (Thanks Flight)
Progress Reports}

Var
man, Location, TimeLast, x, y :Integer;
Lumbridge, Stairs: TPoint;
WalkHome: TPointArray;
CStatus: String;

Const
Version = 3; //Please do not change.

//SRL info HERE!
SRLStats_Username = '';
SRLStats_Password = '';

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; // This is the player to start with
Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // 3-4 lowercase letters from username;
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
end;

Procedure CheckStats;
begin
if ((SRLStats_Username = '') And (SRLStats_Password = '')) then
begin
SetupSRLStats(201,'Anonymous','anon1337');
Exit;
end;
end;

procedure ClearSmartCanvas;
{$IFDEF SMART}
var
drawing : TBitmap;
begin
drawing := TBitmap.Create;
drawing.canvas.handle := SmartGetDebugDC;
try
FreeBitmap(drawing);
except
end;
{$ELSE}
begin
{$ENDIF}
end;

Procedure PrintOnSmart(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1,8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;

Procedure Painting;
begin
PrintOnSmart(['R4_ManThief','-----------', 'Status:', CStatus],
Point(40, 50),60928);
end;

procedure ProgressReport;
begin
ClearDebug;
WriteLn('[R4nd0m] ManThief');
WriteLn('===================================================');
WriteLn('===================================================');
WriteLn('Running for: ' + TimeRunning);
WriteLn('Times PickPocketed: ' + IntToStr(man));
Writeln('XP gained:'+ IntToStr(man*8));
WriteLn('===================================================');
WriteLn('===================================================');
end;

//By Benland100, modified to paint mouse movements
procedure WindMouse2(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
var
veloX, veloY, windX, windY, veloMag, dist, randomDist, lastDist, step: extended;
lastX, lastY: integer;
sqrt2, sqrt3, sqrt5: extended;
begin
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
while hypot(xs - xe, ys - ye) > 1 do
begin
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
if (maxStep < 3) then
begin
maxStep:= random(3) + 3.0;
end else
begin
maxStep:= maxStep / sqrt5;
end;
end;
veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;
if hypot(veloX, veloY) > maxStep then
begin
randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * randomDist;
veloY:= (veloY / veloMag) * randomDist;
end;
lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;
if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));
step:= hypot(xs - lastX, ys - lastY);
wait(round((maxWait - minWait) * (step / maxStep) + minWait));
lastdist:= dist;
SMART_DrawDotsEx(False, [Point(lastX, lastY)], 65280);
end;
if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MoveMouse(Round(xe), Round(ye));

end;

{*******************************************************************************
Procedure HumanMMouse(eX, eY: Integer);
By: Flight
Description: Human-like miss-and-correct mouse movement
*******************************************************************************}
Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,A,Dist,MP: integer;
begin
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;

randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(A*MP), eX+(A*MP));
Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
WindMouse2(X, Y, X2, Y2, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
ClearSmartCanvas;
end;

procedure Antiban;
begin
CStatus := 'AntiBan working'
Painting;
case Random(60) of
20: HoverSkill('Thieving', False);
30: PickUpMouse;
40: RandomMovement;
50: BoredHuman;
59: ExamineInv;
end;
Writeln('Antiban in action!');
end;

procedure AntiRandom;
begin
CStatus := 'Checking for randoms'
Painting;
FindNormalRandoms;
LampSkill := 'thieving';
LevelUp;
Writeln('Checking for randoms');
end;

procedure HpCheck; //Thanks Narcle, used your script to learn how to do this
var
a, t, b, x, y:Integer;
begin
CStatus := 'Checking Health/Eating'
Painting;
if (HPPercent < 30) then
begin
for a := 0 to 2 do
for b := 1 to 28 do
if ExistsItem(b) then
begin
MMouseItem(b);
GetMousePos(x, y);
Mouse(x, y, 0, 0, false);
ChooseOption('Eat');
Wait(RandomRange(323, 1278));
if (HPPercent > 70) then
Exit;
end;
end;

if (not LoggedIn) or (HPPercent > 50) then
Exit;
end;


Procedure Climb;
begin
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['tairs'], [4083549, 4215135, 4017499], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('limb');
end;

Procedure Door;
begin
WriteLn('Upstairs!');
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['oor'], [3555142, 3291713, 3686729], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('pen');
end;

Procedure WalkToHouse;
begin
CStatus := 'Walking...'
Painting;
Antirandom;
HumanMMouse(X, Y, 5, 5);
WalkHome := [Point(4725, 3785), Point(4755, 3740),
Point(4705, 3710), Point(4645, 3675)];

If(SPS_WalkPath(WalkHome)) then
WriteLn('At Stairs');
Climb;
Door;
end;

function Steal(): Boolean;
begin
repeat
Antiban;
HpCheck;
Antirandom;
CStatus := 'Stealing'
Painting;
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['man'], [532535, 400175, 399144, 466225], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('ocket');
until false;
end;

//reminder: Switch to TPA or DMT (Need to figure this out...)
function FindMan(): Boolean;
begin
repeat
HpCheck;
Steal;
HpCheck;
ProgressReport;
HumanMMouse(X, Y, 5, 5);
{if(StrInArr('our gravestone', ChatBoxTextArray(clMessage)))
then
begin
HumanMMouse(X, Y, 5, 5);
WalkToHouse;
end;}

{(Use for Master Farmers/Ham members)
if InvFull then
begin
HumanMMouse(X, Y, 5, 5);
Wait(RandomRange(100, 200));
DropAll;
Writeln('Dropping inventory')
end;}

until false;
end;

begin
CStatus := 'Logging in...'
Lumbridge := Point(4720, 3785)
SPS_Areas := ['11_9'];
SPS_Setup(RUNESCAPE_SURFACE, SPS_Areas);

Smart_Server := 77;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;

ClearDebug;
ClearSmartCanvas;
Painting;
DeclarePlayers;
CheckStats;
LoginPlayer;
Findman;
HpCheck;
ProgressReport;
end.

I don't think everything works correctly. But if you start it upstairs it will work. Better then nothing I guess, got me 1-20 so far. Enjoy.

timrocks

2012-03-07 11:50:33

Exception in Script: Unable to find file 'SRL/SRL/Misc/stats.simba' used from ''

What do I have to do with this^?

Thanks for reading

timrocks

2012-03-07 13:19:43

From: RuneScapeJJ
I have edited it slightly and it works now. It will eat if HP % is <30. It will eat lobsters and is build for 10 hp so a lobster heals me to full hp at all times. So this will not work efficiently if you are >10 hp.

program R4_ManThief;
{$DEFINE SMART}
{$i SRL/SRL/misc/smart.simba}
{$i SRL/SRL.simba}
{$i sps/sps.simba}
{$I SRL/SRL/misc/paintsmart.simba}
//{$i VVForm.simba}

{Welcome to R4nd0m's Man Thief, this script steals from men/women giving
you coins and XP!.
Features:
Death Walk
Anti-Ban/Anti-Random
Eating (30%-) Any food (Just keep in inventory)
SRL Stats
An Interesting Paint/Painted Mouse
Human like Mouse moments (Thanks Flight)
Progress Reports}

Var
man, Location, TimeLast, x, y :Integer;
Lumbridge, Stairs: TPoint;
WalkHome: TPointArray;
CStatus: String;

Const
Version = 3; //Please do not change.

//SRL info HERE!
SRLStats_Username = '';
SRLStats_Password = '';

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; // This is the player to start with
Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // 3-4 lowercase letters from username;
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
end;

Procedure CheckStats;
begin
if ((SRLStats_Username = '') And (SRLStats_Password = '')) then
begin
SetupSRLStats(201,'Anonymous','anon1337');
Exit;
end;
end;

procedure ClearSmartCanvas;
{$IFDEF SMART}
var
drawing : TBitmap;
begin
drawing := TBitmap.Create;
drawing.canvas.handle := SmartGetDebugDC;
try
FreeBitmap(drawing);
except
end;
{$ELSE}
begin
{$ENDIF}
end;

Procedure PrintOnSmart(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1,8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;

Procedure Painting;
begin
PrintOnSmart(['R4_ManThief','-----------', 'Status:', CStatus],
Point(40, 50),60928);
end;

procedure ProgressReport;
begin
ClearDebug;
WriteLn('[R4nd0m] ManThief');
WriteLn('===================================================');
WriteLn('===================================================');
WriteLn('Running for: ' + TimeRunning);
WriteLn('Times PickPocketed: ' + IntToStr(man));
Writeln('XP gained:'+ IntToStr(man*8));
WriteLn('===================================================');
WriteLn('===================================================');
end;

//By Benland100, modified to paint mouse movements
procedure WindMouse2(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
var
veloX, veloY, windX, windY, veloMag, dist, randomDist, lastDist, step: extended;
lastX, lastY: integer;
sqrt2, sqrt3, sqrt5: extended;
begin
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
while hypot(xs - xe, ys - ye) > 1 do
begin
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
if (maxStep < 3) then
begin
maxStep:= random(3) + 3.0;
end else
begin
maxStep:= maxStep / sqrt5;
end;
end;
veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;
if hypot(veloX, veloY) > maxStep then
begin
randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * randomDist;
veloY:= (veloY / veloMag) * randomDist;
end;
lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;
if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));
step:= hypot(xs - lastX, ys - lastY);
wait(round((maxWait - minWait) * (step / maxStep) + minWait));
lastdist:= dist;
SMART_DrawDotsEx(False, [Point(lastX, lastY)], 65280);
end;
if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MoveMouse(Round(xe), Round(ye));

end;

{*******************************************************************************
Procedure HumanMMouse(eX, eY: Integer);
By: Flight
Description: Human-like miss-and-correct mouse movement
*******************************************************************************}
Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,A,Dist,MP: integer;
begin
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;

randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(A*MP), eX+(A*MP));
Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
WindMouse2(X, Y, X2, Y2, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
ClearSmartCanvas;
end;

procedure Antiban;
begin
CStatus := 'AntiBan working'
Painting;
case Random(60) of
20: HoverSkill('Thieving', False);
30: PickUpMouse;
40: RandomMovement;
50: BoredHuman;
59: ExamineInv;
end;
Writeln('Antiban in action!');
end;

procedure AntiRandom;
begin
CStatus := 'Checking for randoms'
Painting;
FindNormalRandoms;
LampSkill := 'thieving';
LevelUp;
Writeln('Checking for randoms');
end;

procedure HpCheck; //Thanks Narcle, used your script to learn how to do this
var
a, t, b, x, y:Integer;
begin
CStatus := 'Checking Health/Eating'
Painting;
if (HPPercent < 30) then
begin
for a := 0 to 2 do
for b := 1 to 28 do
if ExistsItem(b) then
begin
MMouseItem(b);
GetMousePos(x, y);
Mouse(x, y, 0, 0, false);
ChooseOption('Eat');
Wait(RandomRange(323, 1278));
if (HPPercent > 70) then
Exit;
end;
end;

if (not LoggedIn) or (HPPercent > 50) then
Exit;
end;


Procedure Climb;
begin
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['tairs'], [4083549, 4215135, 4017499], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('limb');
end;

Procedure Door;
begin
WriteLn('Upstairs!');
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['oor'], [3555142, 3291713, 3686729], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('pen');
end;

Procedure WalkToHouse;
begin
CStatus := 'Walking...'
Painting;
Antirandom;
HumanMMouse(X, Y, 5, 5);
WalkHome := [Point(4725, 3785), Point(4755, 3740),
Point(4705, 3710), Point(4645, 3675)];

If(SPS_WalkPath(WalkHome)) then
WriteLn('At Stairs');
Climb;
Door;
end;

function Steal(): Boolean;
begin
repeat
Antiban;
HpCheck;
Antirandom;
CStatus := 'Stealing'
Painting;
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['man'], [532535, 400175, 399144, 466225], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('ocket');
until false;
end;

//reminder: Switch to TPA or DMT (Need to figure this out...)
function FindMan(): Boolean;
begin
repeat
HpCheck;
Steal;
HpCheck;
ProgressReport;
HumanMMouse(X, Y, 5, 5);
{if(StrInArr('our gravestone', ChatBoxTextArray(clMessage)))
then
begin
HumanMMouse(X, Y, 5, 5);
WalkToHouse;
end;}

{(Use for Master Farmers/Ham members)
if InvFull then
begin
HumanMMouse(X, Y, 5, 5);
Wait(RandomRange(100, 200));
DropAll;
Writeln('Dropping inventory')
end;}

until false;
end;

begin
CStatus := 'Logging in...'
Lumbridge := Point(4720, 3785)
SPS_Areas := ['11_9'];
SPS_Setup(RUNESCAPE_SURFACE, SPS_Areas);

Smart_Server := 77;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;

ClearDebug;
ClearSmartCanvas;
Painting;
DeclarePlayers;
CheckStats;
LoginPlayer;
Findman;
HpCheck;
ProgressReport;
end.

I don't think everything works correctly. But if you start it upstairs it will work. Better then nothing I guess, got me 1-20 so far. Enjoy.


This worked for me thanks m8! I got it already from 2-24. But I took 20 tuna's in my inventory and after it is out of food it is looking for more food because i got 2 strange rocks in my inventory. Can you or someone else make a fix?

Thanks

colour

2012-03-14 06:19:45

From: RuneScapeJJ
I have edited it slightly and it works now. It will eat if HP % is <30. It will eat lobsters and is build for 10 hp so a lobster heals me to full hp at all times. So this will not work efficiently if you are >10 hp.

program R4_ManThief;
{$DEFINE SMART}
{$i SRL/SRL/misc/smart.simba}
{$i SRL/SRL.simba}
{$i sps/sps.simba}
{$I SRL/SRL/misc/paintsmart.simba}
//{$i VVForm.simba}

{Welcome to R4nd0m's Man Thief, this script steals from men/women giving
you coins and XP!.
Features:
Death Walk
Anti-Ban/Anti-Random
Eating (30%-) Any food (Just keep in inventory)
SRL Stats
An Interesting Paint/Painted Mouse
Human like Mouse moments (Thanks Flight)
Progress Reports}

Var
man, Location, TimeLast, x, y :Integer;
Lumbridge, Stairs: TPoint;
WalkHome: TPointArray;
CStatus: String;

Const
Version = 3; //Please do not change.

//SRL info HERE!
SRLStats_Username = '';
SRLStats_Password = '';

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; // This is the player to start with
Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // 3-4 lowercase letters from username;
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
end;

Procedure CheckStats;
begin
if ((SRLStats_Username = '') And (SRLStats_Password = '')) then
begin
SetupSRLStats(201,'Anonymous','anon1337');
Exit;
end;
end;

procedure ClearSmartCanvas;
{$IFDEF SMART}
var
drawing : TBitmap;
begin
drawing := TBitmap.Create;
drawing.canvas.handle := SmartGetDebugDC;
try
FreeBitmap(drawing);
except
end;
{$ELSE}
begin
{$ENDIF}
end;

Procedure PrintOnSmart(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1,8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;

Procedure Painting;
begin
PrintOnSmart(['R4_ManThief','-----------', 'Status:', CStatus],
Point(40, 50),60928);
end;

procedure ProgressReport;
begin
ClearDebug;
WriteLn('[R4nd0m] ManThief');
WriteLn('===================================================');
WriteLn('===================================================');
WriteLn('Running for: ' + TimeRunning);
WriteLn('Times PickPocketed: ' + IntToStr(man));
Writeln('XP gained:'+ IntToStr(man*8));
WriteLn('===================================================');
WriteLn('===================================================');
end;

//By Benland100, modified to paint mouse movements
procedure WindMouse2(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
var
veloX, veloY, windX, windY, veloMag, dist, randomDist, lastDist, step: extended;
lastX, lastY: integer;
sqrt2, sqrt3, sqrt5: extended;
begin
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
while hypot(xs - xe, ys - ye) > 1 do
begin
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
if (maxStep < 3) then
begin
maxStep:= random(3) + 3.0;
end else
begin
maxStep:= maxStep / sqrt5;
end;
end;
veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;
if hypot(veloX, veloY) > maxStep then
begin
randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * randomDist;
veloY:= (veloY / veloMag) * randomDist;
end;
lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;
if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));
step:= hypot(xs - lastX, ys - lastY);
wait(round((maxWait - minWait) * (step / maxStep) + minWait));
lastdist:= dist;
SMART_DrawDotsEx(False, [Point(lastX, lastY)], 65280);
end;
if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MoveMouse(Round(xe), Round(ye));

end;

{*******************************************************************************
Procedure HumanMMouse(eX, eY: Integer);
By: Flight
Description: Human-like miss-and-correct mouse movement
*******************************************************************************}
Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,A,Dist,MP: integer;
begin
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;

randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(A*MP), eX+(A*MP));
Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
WindMouse2(X, Y, X2, Y2, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
ClearSmartCanvas;
end;

procedure Antiban;
begin
CStatus := 'AntiBan working'
Painting;
case Random(60) of
20: HoverSkill('Thieving', False);
30: PickUpMouse;
40: RandomMovement;
50: BoredHuman;
59: ExamineInv;
end;
Writeln('Antiban in action!');
end;

procedure AntiRandom;
begin
CStatus := 'Checking for randoms'
Painting;
FindNormalRandoms;
LampSkill := 'thieving';
LevelUp;
Writeln('Checking for randoms');
end;

procedure HpCheck; //Thanks Narcle, used your script to learn how to do this
var
a, t, b, x, y:Integer;
begin
CStatus := 'Checking Health/Eating'
Painting;
if (HPPercent < 30) then
begin
for a := 0 to 2 do
for b := 1 to 28 do
if ExistsItem(b) then
begin
MMouseItem(b);
GetMousePos(x, y);
Mouse(x, y, 0, 0, false);
ChooseOption('Eat');
Wait(RandomRange(323, 1278));
if (HPPercent > 70) then
Exit;
end;
end;

if (not LoggedIn) or (HPPercent > 50) then
Exit;
end;


Procedure Climb;
begin
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['tairs'], [4083549, 4215135, 4017499], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('limb');
end;

Procedure Door;
begin
WriteLn('Upstairs!');
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['oor'], [3555142, 3291713, 3686729], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('pen');
end;

Procedure WalkToHouse;
begin
CStatus := 'Walking...'
Painting;
Antirandom;
HumanMMouse(X, Y, 5, 5);
WalkHome := [Point(4725, 3785), Point(4755, 3740),
Point(4705, 3710), Point(4645, 3675)];

If(SPS_WalkPath(WalkHome)) then
WriteLn('At Stairs');
Climb;
Door;
end;

function Steal(): Boolean;
begin
repeat
Antiban;
HpCheck;
Antirandom;
CStatus := 'Stealing'
Painting;
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['man'], [532535, 400175, 399144, 466225], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('ocket');
until false;
end;

//reminder: Switch to TPA or DMT (Need to figure this out...)
function FindMan(): Boolean;
begin
repeat
HpCheck;
Steal;
HpCheck;
ProgressReport;
HumanMMouse(X, Y, 5, 5);
{if(StrInArr('our gravestone', ChatBoxTextArray(clMessage)))
then
begin
HumanMMouse(X, Y, 5, 5);
WalkToHouse;
end;}

{(Use for Master Farmers/Ham members)
if InvFull then
begin
HumanMMouse(X, Y, 5, 5);
Wait(RandomRange(100, 200));
DropAll;
Writeln('Dropping inventory')
end;}

until false;
end;

begin
CStatus := 'Logging in...'
Lumbridge := Point(4720, 3785)
SPS_Areas := ['11_9'];
SPS_Setup(RUNESCAPE_SURFACE, SPS_Areas);

Smart_Server := 77;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;

ClearDebug;
ClearSmartCanvas;
Painting;
DeclarePlayers;
CheckStats;
LoginPlayer;
Findman;
HpCheck;
ProgressReport;
end.

I don't think everything works correctly. But if you start it upstairs it will work. Better then nothing I guess, got me 1-20 so far. Enjoy.


shot brah

SkunkVT

2012-03-14 12:50:08

Here's a few edits I made to this script to make it a little nicer. Two things mainly: only report about an antiban action if it's actually doing one (less debug clutter), and proggy/stats on the screen to show approx. XP/hr, etc. :-)

program R4_ManThief;
{$DEFINE SMART}
{$i SRL/SRL/misc/smart.simba}
{$i SRL/SRL.simba}
{$i sps/sps.simba}
{$I SRL/SRL/misc/paintsmart.simba}
//{$i VVForm.simba}

{Welcome to R4nd0m's Man Thief, this script steals from men/women giving
you coins and XP!.
Features:
Death Walk
Anti-Ban/Anti-Random
Eating (30%-) Any food (Just keep in inventory)
SRL Stats
An Interesting Paint/Painted Mouse
Human like Mouse moments (Thanks Flight)
Progress Reports}

Var
man, Location, TimeLast, x, y :Integer;
Lumbridge, Stairs: TPoint;
WalkHome: TPointArray;
CStatus: String;
XPperHour:Integer;

Const
Version = 3; //Please do not change.

//SRL info HERE!
SRLStats_Username = '';
SRLStats_Password = '';

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; // This is the player to start with
Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // 3-4 lowercase letters from username;
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
end;

Procedure CheckStats;
begin
if ((SRLStats_Username = '') And (SRLStats_Password = '')) then
begin
SetupSRLStats(201,'Anonymous','anon1337');
Exit;
end;
end;

procedure ClearSmartCanvas;
{$IFDEF SMART}
var
drawing : TBitmap;
begin
drawing := TBitmap.Create;
drawing.canvas.handle := SmartGetDebugDC;
try
FreeBitmap(drawing);
except
end;
{$ELSE}
begin
{$ENDIF}
end;

Procedure PrintOnSmart(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1,8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;

Procedure Painting;
begin
if ((GetTimeRunning/1000) > 0) then
XPperHour := round((((man*8.0*1000.0) / (GetTimeRunning))) * 3600.0) //XP Per hour
else
XPperHour := -1;

PrintOnSmart(['R4_ManThief','-----------', 'Status:', CStatus,'Running for: ' + TimeRunning,'Times PickPocketed: ' + IntToStr(man),'XP gained:'+ IntToStr(man*8),'XP/hr:'+IntToStr(XPperHour)],
Point(40, 50),60928);
end;

procedure ProgressReport;
begin
ClearDebug;
WriteLn('[R4nd0m] ManThief');
WriteLn('===================================================');
WriteLn('===================================================');
WriteLn('Running for: ' + TimeRunning);
WriteLn('Times PickPocketed: ' + IntToStr(man));
Writeln('XP gained:'+ IntToStr(man*8));
WriteLn('===================================================');
WriteLn('===================================================');
end;

//By Benland100, modified to paint mouse movements
procedure WindMouse2(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
var
veloX, veloY, windX, windY, veloMag, dist, randomDist, lastDist, step: extended;
lastX, lastY: integer;
sqrt2, sqrt3, sqrt5: extended;
begin
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
while hypot(xs - xe, ys - ye) > 1 do
begin
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
if (maxStep < 3) then
begin
maxStep:= random(3) + 3.0;
end else
begin
maxStep:= maxStep / sqrt5;
end;
end;
veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;
if hypot(veloX, veloY) > maxStep then
begin
randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * randomDist;
veloY:= (veloY / veloMag) * randomDist;
end;
lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;
if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));
step:= hypot(xs - lastX, ys - lastY);
wait(round((maxWait - minWait) * (step / maxStep) + minWait));
lastdist:= dist;
SMART_DrawDotsEx(False, [Point(lastX, lastY)], 65280);
end;
if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MoveMouse(Round(xe), Round(ye));

end;

{*******************************************************************************
Procedure HumanMMouse(eX, eY: Integer);
By: Flight
Description: Human-like miss-and-correct mouse movement
*******************************************************************************}
Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,A,Dist,MP: integer;
begin
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;

randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(A*MP), eX+(A*MP));
Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
WindMouse2(X, Y, X2, Y2, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
ClearSmartCanvas;
end;

procedure Antiban;
begin
CStatus := 'AntiBan working'
Painting;
case Random(60) of
20: begin Writeln('Antiban in action!'); HoverSkill('Thieving', False); end;
30: begin Writeln('Antiban in action!'); PickUpMouse; end;
40: begin Writeln('Antiban in action!'); RandomMovement; end;
50: begin Writeln('Antiban in action!'); BoredHuman; end;
59: begin Writeln('Antiban in action!'); ExamineInv; end;
end;

end;

procedure AntiRandom;
begin
CStatus := 'Checking for randoms'
Painting;
FindNormalRandoms;
LampSkill := 'prayer';
LevelUp;
Writeln('Checking for randoms');
end;

procedure HpCheck; //Thanks Narcle, used your script to learn how to do this
var
a, b, x, y:Integer;
begin
CStatus := 'Checking Health/Eating'
Painting;
if (HPPercent < 30) then
begin
for a := 0 to 2 do
for b := 1 to 28 do
if ExistsItem(b) then
begin
MMouseItem(b);
GetMousePos(x, y);
Mouse(x, y, 0, 0, false);
ChooseOption('Eat');
Wait(RandomRange(323, 1278));
if (HPPercent > 70) then
Exit;
end;
end;

if (not LoggedIn) or (HPPercent > 50) then
Exit;
end;


Procedure Climb;
begin
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['tairs'], [4083549, 4215135, 4017499], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('limb');
end;

Procedure Door;
begin
WriteLn('Upstairs!');
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['oor'], [3555142, 3291713, 3686729], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('pen');
end;

Procedure WalkToHouse;
begin
CStatus := 'Walking...'
Painting;
Antirandom;
HumanMMouse(X, Y, 5, 5);
WalkHome := [Point(4725, 3785), Point(4755, 3740),
Point(4705, 3710), Point(4645, 3675)];

If(SPS_WalkPath(WalkHome)) then
WriteLn('At Stairs');
Climb;
Door;
end;

function Steal(): Boolean;
begin
repeat
Antiban;
HpCheck;
Antirandom;
CStatus := 'Stealing'
Painting;
Wait(RandomRange(200, 700));
FindObjCustom(x, y, ['man'], [532535, 400175, 399144, 466225], 10);
Mouse(x, y, 5, 5, false);
ChooseOption('ocket');
if(StrInArr('coins have', ChatBoxTextArray(clMessage))) then
man:=man+1;
until false;
end;

//reminder: Switch to TPA or DMT (Need to figure this out...)
function FindMan(): Boolean;
begin
repeat
HpCheck;
Steal;
HpCheck;
ProgressReport;
HumanMMouse(X, Y, 5, 5);
{if(StrInArr('our gravestone', ChatBoxTextArray(clMessage)))
then
begin
HumanMMouse(X, Y, 5, 5);
WalkToHouse;
end;}

{(Use for Master Farmers/Ham members)
if InvFull then
begin
HumanMMouse(X, Y, 5, 5);
Wait(RandomRange(100, 200));
DropAll;
Writeln('Dropping inventory')
end;}

until false;
end;

begin
man:=0;
CStatus := 'Logging in...'
Lumbridge := Point(4720, 3785)
SPS_Areas := ['11_9'];
SPS_Setup(RUNESCAPE_SURFACE, SPS_Areas);

Smart_Server := 77;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;

ClearDebug;
ClearSmartCanvas;
Painting;
DeclarePlayers;
CheckStats;
LoginPlayer;
Findman;
HpCheck;
ProgressReport;
end.

Rushera

2012-04-09 14:04:22

great thanks need 25 thiev on my pure but im to lazy

kunzy

2012-04-10 23:37:53

Ill try this now r4ndom :) will let u know how it goes with a proggy hopfully

[XoL]

2012-04-11 09:09:49

Remember it is only half updated, I did it to stop "basic, who refuse to learn anything" people from using it. Simply need to change two small small things.

Good luck, if it proves too difficult tell me. I can update it fully and put a different "break" in it.

Benson

2012-04-17 00:51:49

Hey Random, I've been trying to figure out how to fix this script all day :S Any chance I can grab some hints?

I already took out the SRL/SRL/misc/stats.simba part. And the unknown command in the write on script section. But there is a bunch of type mismatches, and other things that pop up when I try and compile it :(

NOV5

2012-05-04 06:20:34

There is a error with the SRL/SRL/misc/stats.simba part. Stops the script from running.

jkmp

2012-05-05 13:05:36

From: NOV5
There is a error with the SRL/SRL/misc/stats.simba part. Stops the script from running.

it just means the script is outdated and wont work until otherwise updated

Yellow Partyhat

2012-05-28 16:11:44

Hey When I try to run I got a compiling error at line 88 :L to fix I deleted the line above it and it worked :o

Yellow Partyhat

2012-05-28 16:13:46

From: Benson
Hey Random, I've been trying to figure out how to fix this script all day :S Any chance I can grab some hints?

I already took out the SRL/SRL/misc/stats.simba part. And the unknown command in the write on script section. But there is a bunch of type mismatches, and other things that pop up when I try and compile it :(


Did it say anything about a specific line?? if so just delete the line completely or delete the line above it, trust me i got compiling errors to and that method worked great for me. :)

claymoar

2012-05-30 17:31:55

won't work for me..

SeaBass

2012-05-30 17:39:20

Thanks mate Great Script :P