Feroc1ty
2010-11-30 14:00:15
8 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
A little bit of everything.
Are you a member of any other communities?
Made scripts for WoW for a bit at MMOwned.
Tell us about yourself…
From: Feroc1ty
I like to argue.
If my app is declined can someone post my script in members, because I want to release the script but if it's released to public the method will pretty much die in my eyes.
Please show us one (or multiple) of your scripts.
zamorak wine telegrabber and alcher
sorry didnt waste my time on shit like multiplayer and proggies because I believe having more than one account is gay and proggies are just a waste of time since you're gonna have the items/xp one way or another you don't need an update on it...
Well, here it is, worked on this script for around a week or so... the values for magic tab might be messed up if you use a different resolution or if the tab isn't scrolled up.
How to use this script...
Have high alches, whatever you're alching (make sure to add the item ID to the pickalchitem function), fally teles, telegrabs in your inv, and nothing else
[simba]{ Feroc1ty's walking include...
Functions of the include:
fWalkPath(tpa:TTileArray);
}
function PtToBox(tile:TPoint;size:integer):TBox;
begin
Result.X1 := Round(tile.x - size/2);
Result.X2 := Round(tile.x + size/2);
Result.Y1 := Round(tile.y - size/2);
Result.Y2 := Round(tile.y + size/2);
end;
procedure MoveToBox(box:TBox);
var tpt:TPoint;
ttl:TTile;
begin
repeat
ttl := Tile(RandomRange(box.x1, box.x2),RandomRange(box.y1, box.y2));
sleep(500+random(300));
until TileOnMM(ttl);
tpt := TileToMM(ttl);
Mouse(tpt.x, tpt.y, 3, 3, true);
FindNormalRandoms;
end;
procedure fWalkPath(tpa:TPointArray;reverse:boolean);
var i:integer;
begin
if not reverse then
begin
for i := high(tpa) downto 0 do
begin
if TileOnMM(PointToTile(tpa[i])) then
break;
end;
for i := i to high(tpa) do
begin
MoveToBox(PtToBox(tpa[i],4));
end;
end else
begin
for i := 0 to high(tpa) do
begin
if TileOnMM(PointToTile(tpa[i])) then
break;
end;
for i := i downto 0 do
begin
MoveToBox(PtToBox(tpa[i],4));
end;
end;
R_FFlag(0);
end;[/simba]
[simba]program ZamorakWine;
{$i SRL/SRL/Misc/SMART.scar }
{$i SRL/SRL.scar }
{$i reflection/reflection.simba }
{$i Feroc1tyWalking.simba}
{F.A.Q.
Q. Why are your AntiRandom methods in the AlchItem function?
A. Most of this script runs in the magic tab, and FindNormalRandoms opens up
the inventory, which means if I placed it in the main loop after each alchemy
it would open up the inventory, and go back to magic tab.
}
const
// SMART client settings
CLIENT_MEMBERS = true;
CLIENT_SERVER = 60;
CLIENT_SIGNED = true;
CLIENT_DETAIL = false;
// Break time values in minutes
SCRIPT_ACTIVE_TIME = 120;
SCRIPT_ACTIVE_RANDOM = 30;
SCRIPT_BREAK_TIME = 10;
SCRIPT_BREAK_RANDOM = 30;
// Values for color sarching functins
GROUND_COLOR_WINE_GRAY = 7763580;
// Values of item ID's which may be used
YEW_LONGBOW = 856; // (noted) yew longbow(s)
RUNE_BRUTAL = 4803; // rune brutal arrow
MAPLE_LONGBOW_U = 63; // (noted) maple longbow(u)
var x,y,MSCheckWine,MSHighAlch:integer;
TelekineticGrab,HighAlchemy,TeleFalador,MonestarySpot:TBox;
AlchItem:TInvItem;
Monestary:TPointArray;
InveFull,Alch:boolean;
BreakTime:longint;
procedure DeclarePlayers;
begin
HowManyPlayers := 1; // How many players declared?
CurrentPlayer := 0; // Number of player to start with.
NumberOfPlayers(HowManyPlayers);
with Players[0] do
begin
Name := ''; // Characters full RS username.
Pass := ''; // Characters RS password.
Nick := ''; // 3 non-caps letters of char's RS username.
Member := false; // Is character a member?
Pin := ''; // Characters bank pin if one exists
Active := True;
end;
end;
procedure TakeBreak;
var r:integer;
begin
if GetSystemTime > breaktime then
begin
if breaktime = 0 then
begin
r := SCRIPT_ACTIVE_TIME + random(SCRIPT_ACTIVE_RANDOM);
breaktime := GetSystemTime + (r * 60000);
writeln('Next break coming in ' + inttostr(r) + ' minutes.');
exit;
end;
if random(1) = 0 then
Logout;
r := SCRIPT_BREAK_TIME + random(SCRIPT_BREAK_RANDOM);
writeln('Taking a break for ' + inttostr(r) + ' minutes.');
Sleep(r*60000);
r := SCRIPT_ACTIVE_TIME + random(SCRIPT_ACTIVE_RANDOM);
breaktime := GetSystemTime + (r * 60000);
writeln('Next break coming in ' + inttostr(r) + ' minutes.');
if not LoggedIn then
LoginPlayer;
end;
end;
procedure AntiBan;
begin
case Random(799) of
0: IdleTime(2000, 1000, 0.2);
1: HoverSkill('magic', False);
2: RandomRClick;
3: PickUpMouse;
4: RandomMovement;
5: BoredHuman;
6: MMouse(RandomRange(-100, 800), RandomRange(-100, 800), 0, 0);
7: SleepAndMoveMouse(2000+Random(1000));
end;
end;
function SearchForColorOnTile(var x,y:integer;tile:TTile;heigth,spread,color,tolerance,number:integer):boolean;
var pt:TPoint;
tpa:TPointArray;
begin
result := false;
if not TileOnMS(tile,heigth) then
begin
writeln('Attempting to search for color on a tile that''s outside the main screen!');
exit;
end;
pt := TileToMS(tile,heigth);
FindColorsTolerance(tpa, color, (pt.x - (spread/2)), (pt.y - (spread/2)), (pt.x + (spread/2)), (pt.y + (spread/2)), tolerance);
result := Length(tpa) >= number;
if result then
MiddleTPAEx(tpa, x, y);
end;
procedure ClickBox(box:TBox;left:boolean);
var x,y:integer;
begin
x := (box.x2 - box.x1)/2;
y := (box.y2 - box.y1)/2;
Mouse(box.x1 + x + Random(RandomRange(-x,x)), box.y1 + y + Random(RandomRange(-y,y)), 0, 0, left);
end;
procedure MoveBox(box:TBox);
var x,y:integer;
begin
x := (box.x2 - box.x1)/2;
y := (box.y2 - box.y1)/2;
MMouse(box.x1 + x + Random(RandomRange(-x,x)), box.y1 + y + Random(RandomRange(-y,y)), 0, 0);
end;
function PickAlchItem:boolean;
begin
result := false;
if R_ItemIDExists(AlchItem, YEW_LONGBOW) then
result := true;
if R_ItemIDExists(AlchItem, RUNE_BRUTAL) then
result := true;
if R_ItemIDExists(AlchItem, MAPLE_LONGBOW_U) then
result := true;
if result then
Alch := true
else
Alch := false;
end;
function HighAlch():boolean;
begin
if not Alch then exit;
result := true;
if MSHighAlch > 500 then
exit;
MSHighAlch := 2000;
if GetCurrentTab <> 28 then
GameTab(28);
ClickBox(HighAlchemy,true);
Sleep(300+random(150));
if not PickAlchItem then
begin
result := false;
exit;
end;
FindNormalRandoms;
InveFull := R_InvFull;
ClickBox(InvBox(AlchItem.slot),true);
Sleep(300+random(300));
end;
procedure TeleportFalador();
begin
Sleep(2000+random(500));
if GetCurrentTab <> 28 then
GameTab(28);
Sleep(2000+random(500));
ClickBox(TeleFalador,true);
Sleep(4000+random(1000));
end;
procedure CastTelegrabOn(uptext:TStringArray;x,y:integer);
begin
if GetCurrentTab <> 28 then
GameTab(28);
Sleep(100+random(100));
ClickBox(TelekineticGrab,true);
Sleep(200+random(100));
MMouse(x,y,3,3);
if r_WaitUpTextMulti(uptext, 300) then
begin
ClickMouse2(true);
end else
begin
ClickMouse2(false);
R_WaitOptionMulti(uptext, 300);
end;
Sleep(100+random(100));
end;
function IsThereWine(var x,y:integer):boolean;
begin
result := false;
if MSCheckWine > 0 then
exit;
result := SearchForColorOnTile(x, y, Tile(2931,3515), 80, 40, GROUND_COLOR_WINE_GRAY, 8, 10);
if result then
begin
CastTelegrabOn(['ine of'],x,y);
Sleep(300+random(300));
MSCheckWine := 1500;
end;
Sleep(100+random(100));
end;
function Box(x1,y1,x2,y2:integer):Tbox;
begin
result.x1 := x1;
result.y1 := y1;
result.x2 := x2;
result.y2 := y2;
end;
procedure Bank();
begin
repeat
Sleep(1500 + Random(random(500)));
until R_OpenBankBooth('fwb')
Wait(1000+Random(500));
if R_PinScreen then
begin
InPin(Players[CurrentPlayer].Pin);
end;
Sleep(400+random(200));
end;
function DepositItems(id,amount:integer):boolean;
var item:TInvItem;
begin
if not R_BankScreen then exit;
result := false;
if R_ItemIDExists(item, id) then
result := true;
if result then
begin
result := false;
MoveBox(InvBox(item.slot));
ClickMouse2(amount = 1);
if (amount = 1) then
begin
result := true;
Wait(RandomRange(250, 550));
Exit;
end;
if (Amount = 0) then
Result := WaitOptionMulti(['Deposit-All', 'd-A'], 300)
else
Result := WaitOptionMulti(['Deposit-' + IntToStr(Amount), 'd-' + IntToStr(Amount)] , 300);
if (not (Result)) and (Amount > 0) then
begin
if WaitOptionMulti(['Deposit-X', 'd-X'], 500) then
begin
X := GetSystemTime + 10000;
while (X >= GetSystemTime) and (not (InRange(CountColor(0, 250, 396, 307, 410), 155, 165))) do
Wait(50);
Wait(RandomRange(75, 400));
TypeSend(IntToStr(Amount));
Result := True;
end;
end;
end;
end;
procedure Initialize;
begin
Smart_Members := CLIENT_MEMBERS;
Smart_Server := CLIENT_SERVER;
Smart_Signed := CLIENT_SIGNED;
Smart_SuperDetail := CLIENT_DETAIL;
SetupSRL;
SetupReflection;
ActivateClient;
DeclarePlayers;
TelekineticGrab := Box(632,289,652,304);
HighAlchemy := Box(562,364,584,382);
TeleFalador := Box(686,293,704,311);
MonestarySpot := Box(2931,3513,2935,3517)
Monestary := [ Point(2945,3370), Point(2954,3381), Point(2965,3390), Point(2962,3404), Point(2958,3416),
Point(2951,3428), Point(2948,3438), Point(2944,3452), Point(2945,3468), Point(2943,3482),
Point(2941,3493), Point(2940,3501), Point(2939,3512), Point(2934,3515) ]
end;
begin
Initialize;
if not LoggedIn then
LoginPlayer;
SetAngle(true);
PickAlchItem;
if R_InvFull then
begin
Bank;
DepositItems(245,0);
end;
FindNormalRandoms;
repeat
SetRun(true);
fWalkPath(Monestary,false);
Sleep(2000+random(500));
repeat
Sleep(400+random(200));
if not PointInBox(GetMyPos(), MonestarySpot) then
begin
MoveToBox(MonestarySpot);
Sleep(5000+random(500));
end;
MSCheckWine := MSCheckWine - 500;
MSHighAlch := MSHighAlch - 500;
IsThereWine(x,y);
if not HighAlch then
begin
InveFull := R_InvFull;
FindNormalRandoms;
end;
Antiban;
until InveFull;
TeleportFalador;
fWalkPath(Monestary,true);
Bank;
DepositItems(245,0);
InveFull := false;
CloseBank;
TakeBreak;
until false
end.[/simba]