FuruChan
2008-06-27 12:10:49
<!– BEGIN TEMPLATE: formanswers –>
furuchan64 - SRL Member Application Form
furuchan64
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
SCAR, Flash, DarkBasic
Other Communitys
Freddy1990.com
How Long have You Played Runescape
5 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
I am getting well started on scripting, I have taken Flash scripting classes at my school which are very similar to the build of SCAR and I took another class using DarkBasic, a 3-D object video game simulator, which was completely different but good experience. I have been getting more and more into SCAR scripts and I have been using them for about 3 years now and I know the basic build for SRL. I am just now starting to get into more complicated scripting and I will continue to learn and become a better scripter with time.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
This first one was never finished because I dropped it and never found time to redo it but ill add it anyway to show how far I've got with SCAR… (It wont let me use the attachment section so ill post using the script tabs.
And this second one is one of the better ones I've made so far, It's a maple tree cutter…
——————————————————
<!– END TEMPLATE: formanswers –>
furuchan64 - SRL Member Application Form
furuchan64
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
SCAR, Flash, DarkBasic
Other Communitys
Freddy1990.com
How Long have You Played Runescape
5 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
I am getting well started on scripting, I have taken Flash scripting classes at my school which are very similar to the build of SCAR and I took another class using DarkBasic, a 3-D object video game simulator, which was completely different but good experience. I have been getting more and more into SCAR scripts and I have been using them for about 3 years now and I know the basic build for SRL. I am just now starting to get into more complicated scripting and I will continue to learn and become a better scripter with time.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
This first one was never finished because I dropped it and never found time to redo it but ill add it anyway to show how far I've got with SCAR… (It wont let me use the attachment section so ill post using the script tabs.
program TreeFletchOrDrop;
{This script was made by Furuchan64 as a first script. Tell me how it works
please! Thank you!
Instructions:
Start in Draynor, at the group of tree's by the dungeon with the "!" symbol on
the minimap.
Fill out the setup and press play.
If your fletching have knife if your second inventory slot, and axe in your
first. Other wise you can weild your axe. Do not weild axe if your fletching!
WARNING! This script does NOT have an ent finder! }
{.Include SRL/SRL/Misc/smart.scar}
{.Include SRL/SRL.scar}
{.Include SRL/SRL/Skill/Woodcutting.scar}
var
Antibans, ArrowShafts, Knife, RegLogs,
Loads: Integer;
FoundTree, WalkLog: Boolean;
{~*~*~*~*~*~*~*~*~*~*~*~*~ Setup! ~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~}
const
ExclaimRed = 2437360; // Red color in the Dungeon Exclaimation Point by the trees.
TreeColorOne = 3042140; // First Tree Color.
TreeColorTwo = 4493442; // Second Tree Color.
TreeColorThree = 3829092; // Third Tree Color.
ColTolerance = 2; // The Color Tolerance. (Only adjust if it cannot find trees)
WaitTime = 4700; // Time to wait before clicking again, or to next tree. (Milliseconds)
Fletch = True; // Fletch Logs into ArrowShafts? False = Drop logs.
NumLoads = 56; // Number of logs to chop per player.
RunDirection = 'North'; // Direction to run in case of a fight. (North, South, East, West)
SmartWorld = 124; // World you want SMART to log into.
SignedApp = True; // True = Signed, False = Unsigned.
Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:= 0;
// If you get "Out of Range" Error. Then Use "{", that symbol, in the indicated
// Area and close with "}", that symbol. (---> indicated with start and end.)
Players[0].Name := 'Username'; // Runescape Username.
Players[0].Pass := 'Password'; // Runescape Password.
Players[0].Nick := 'sern'; // 3 or 4 letters of the players name. Works better if 1st letter not used.
Players[0].Active := True; // Is this player active? False = No.
{ Players[1].Name := 'Username'; // Runescape Username.
Players[1].Pass := 'Password'; // Runescape Password.
Players[1].Nick := 'Nick'; // 3 or 4 letters of the players name.
Players[1].Active := False; // Is this player active? False = No.
Players[2].Name := 'Username'; // Runescape Username.
Players[2].Pass := 'Password'; // Runescape Password.
Players[2].Nick := 'Nick'; // 3 or 4 letters of the players name.
Players[2].Active := False; // Is this player active? False = No.
Players[3].Name := 'Username'; // Runescape Username.
Players[3].Pass := 'Password'; // Runescape Password.
Players[3].Nick := 'Nick'; // 3 or 4 letters of the players name.
Players[3].Active := False; // Is this player active? False = No. }
end;
{~*~*~*~*~*~*~*~*~*~*~*~ End Setup! ~*~*~*~*~*~*~*~*~*~*~*~*~*~*~}
Procedure LoadBitmaps;
Begin
RegLogs := BitmapFromString(37, 33, 'beNrtll1LG1EQhj13/oDiR' +
'fGrBJFSEUUUQxsUCoISjdqoWCQUQyhVIWAhULEIIS1SRER6LYUiiB' +
'Sk0B/oE16dHnfdxSTd4kUO780edufZmfPO7HZ0tFd7/d/l7ipZ0Fw' +
'6tTw9+HbmxWZ2uJQbSYzoFjIDq6+fF2aHymvjaCc/1gLOxevD0uin' +
'QrqyMYk+rk8giM3iHJXhtSkRhSILVYwdKEQGActk0KZwrpzr2V3ur' +
'eT7qqXMQfHV/ruXFlMgdgJiU7i+rs4Gie7z+rPfp3kEzicaiJ2A2B' +
'SOgjSKEwt9eT8lnAIKpHcISDiOoIliGo56iuiLnbBIHGdyuK3g9tb' +
'6D7em740vKXcdHC66raRryPyGM2IYKgrOwf+AKCMs2nA105WdePIA' +
'oqMaks+yLPxjku3V1xJELkHbfmyarjjzlOC6n2iYE6kXJM5FY4rIf' +
'nC/O2QkvY+yjiC67Wz31cmbi2+5H7WsHofF4wpuiqJIfvrxuFohRf' +
'XA/fw6rzg0O+9g3a1JZSMl0H2+b3Ws8ThK9+f7yuXRouFUTMZLuKm' +
'jQL6L5NUoHAdHdr+Ol84PF+qlyPUEDGMTJgwyljzMpXBUPgpHFpwd' +
'OOopq8Tg7u16sRB1BhQ7YepjmbAUE9xZdS6cXXi8hJMyEA3IdyS2+' +
'+rmvPkWbEzSF/E4f7CYFRv8kbhzsz9bAoPLn13/6Efl72eI7CxB+7' +
'Ql8C90QzSrJEMJEmXs5P/rAgfaXo9mXQMElenf');
{*******************************************************************}
Knife := BitmapFromString(22, 33, 'beNrFlc0KAVEYhs1WuQeXYOs' +
'O3AALiRBimsbfkEJYkchPNH4LmYWNcoXecXRmfd5ZzOndvk9P33zn' +
'TCgU0NF+4eu1YsEolVjIvy4IsWiUqPsgaKIoQxDMSkVmO5sqErRGt' +
'Spz3W5EXYnQ0nURCBB1yzBEIHDb74gJdE0TgYAcoJJAr1FHIAB/53' +
'QkBPqtJgjwt5cLQmBotUGAAPxf1wshAAImAP/zekUIjLod+GOA2OT' +
'3485NQAxQfkElgWQ8jDwPNhb44zxVd1jUJYQWENETET8Css4Rgqh7' +
'hIDq/xWittd7BueTMdaYe8bz6TS60+GAFijnsrgCuImUgEvIpJJ4Q' +
'1gB72fqo+4en3X+fAHyeZXq');
{*******************************************************************}
ArrowShafts := BitmapFromString(30, 28, 'beNrNlksOgCAMBdu1i' +
'dfxAl7CU3j/nRvEUr6lj8SuJOg4faCB6MfFa1B8HZsPHgkSVcOyEZ' +
'tc1MmGLgStK6xeDRFmcYMth6ZwGFpWUy1cUThMzeWQdqqxRuHvkQF' +
'h9gkzSlhiG+QpYe7KI4TJLVzsPRemZQkTTpjklE9Yf4BY4Ui+zx20' +
'JQrD0s9ndA8LsRyY9GXB0nhirwOyZPJw8qKDBTyENYcWRz073URv');
end;
Procedure FightRandoms;
Begin
If (FindFight) Then
Begin
Status('Fighting Random');
Begin
RunAway(RunDirection, True, 1, 7500+random(2575));
end;
end;
end;
Procedure AntiRandoms;
var
Q: Integer;
Begin
For Q:= 0 to 3 do
FindNormalRandoms;
FightRandoms;
FindNonInventoryRandoms;
Wait(10);
end;
Procedure AntiBan;
Begin
if not LoggedIn Then Exit;
Case Random(69) of
0:
Begin
HoverSkill('Woodcutting', False);
Antibans:=Antibans+1;
end;
1:
Begin
HoverSkill('Fletching', False);
Antibans:=Antibans+1;
end;
2:
Begin
BoredHuman;
Antibans:=Antibans+1;
end;
3:
Begin
BoredHuman;
Antibans:=Antibans+1;
end;
4:
Begin
AlmostLogout;
AntiBans:=Antibans+1;
end;
end;
end;
Procedure ProgressReport;
Begin
Writeln('~*~*~*~*~*~*~Progress Report~*~*~*~*~*~*~');
Writeln(' Ran for '+(TimeRunning)+' So far...');
Writeln(' Has Cut '+IntToStr(Loads)+' Logs');
Writeln(' Has done '+IntToStr(Antibans)+' Antibans');
Writeln('~*~*~*~*~*~*~Lets keep it up~*~*~*~*~*~*~');
Writeln('~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~');
end;
Procedure FindTrees;
var
x, y: integer;
Begin
If not LoggedIn then Exit;
Case Random(2) of
0: Begin
If(FindColorTolerance(x, y, TreeColorOne, 0, 0, 700, 500, ColTolerance)) Then
Begin
FoundTree:= True;
MMouse(x, y, 4, 4);
wait(100);
if not FindEnt(x, y, True) then
begin
Mouse(x, y, 4, 4, True);
Wait(WaitTime);
Loads:=Loads+1;
end;
end else
FoundTree:= False;
end;
1:Begin
If(FindColorTolerance(x, y, TreeColorTwo, 0, 0, 700, 500, ColTolerance)) Then
Begin
FoundTree:= True;
MMouse(x, y, 4, 4);
wait(100);
if not FindEnt(x, y, True) then
begin
Mouse(x, y, 4, 4, True);
Wait(WaitTime);
Loads:=Loads+1;
end;
end else
FoundTree:= False;
end;
2:Begin
If(FindColorTolerance(x, y, TreeColorThree, 0, 0, 700, 500, ColTolerance)) Then
Begin
FoundTree:= True;
MMouse(x, y, 4, 4);
wait(100);
if not FindEnt(x, y, True) then
begin
Mouse(x, y, 4, 4, True);
Wait(WaitTime);
Loads:=Loads+1;
end;
end else
FoundTree:= False;
end;
end;
end;
Procedure WalkToExclaimation;
var
x, y: Integer;
begin
if (FoundTree = False) then
Begin
wait(1000);
if (FindColorTolerance(x, y, ExclaimRed, 0, 0, 700, 500, 2)) then
Begin
Mouse(x, y, 0, 0, true);
Wait(5000);
end else
WalkLog:= False;
end;
end;
function DropLogs: Byte;
var
X, Y, I: Integer;
begin
If (Fletch = False) then
Begin
If (InvFull) then
Begin
if not LoggedIn or NoGameTab then exit;
for I := 1 to 28 do
if ExistsItem(I) then
begin
MMouseItem(I);
Wait(150 + random(175));
if Pos('Log', RS_GetUpText) <> 0 then
begin
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, False);
Wait(40 + random(45));
if ChooseOption('rop') then Inc(result);
end;
end;
end;
end;
end;
procedure FletchLogs;
var
X, Y, RX, RY, I: Integer;
Begin
If (Fletch = True) then
Begin
If (InvFull) then
Begin
if not LoggedIn or NoGameTab then exit;
for I := 1 to 2 do
if ExistsItem(I) then
begin
MMouseItem(I);
Wait(150 + random(175));
if Pos('nife', RS_GetUpText) <> 0 then
begin
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, True);
Wait(40 + random(45));
for i := 1 to InvCount do
if ExistsItem(I) then
begin
MMouseItem(I);
Wait(150 + random(175));
if Pos('Log', RS_GetUpText) <> 0 then
Begin
GetMousePos(RX, RY);
Mouse(RX, RY, 0, 0, True);
wait(200+random(150));
if FindNPCChatText('hafts', ClickRight) then
Begin
wait(180+random(60));
ChooseOption('ake X');
wait(1400+random(300));
TypeSend('28'+chr(13));
wait(42 * 1000 + random(2 * 1000));
end;
end;
end;
end;
end;
end;
end;
end;
procedure Logoutif;
Begin
if (WalkLog = False) then
Begin
Logout;
end;
end;
Procedure SetUpSmart;
Begin
SmartSetupEx(SmartWorld, False, SignedApp);
While Not (SmartReady) Do
Wait(100);
SetTargetDC(SmartGetDC);
If Not (LoggedIn) Then
While Not (SmartGetColor(386, 249) = 65535) Do
Wait(100);
end;
Procedure StartPlay;
Begin
Repeat
If Loads >= NumLoads then
Begin
if not LoggedIn then Exit;
ProgressReport;
Writeln('Logs Cut. Switching Players...');
NextPlayer(True);
Loads:= Loads-Loads;
StartPlay;
end;
ProgressReport;
ClearDeBug;
FindTrees;
WalkToExclaimation;
AntiRandoms;
FletchLogs;
DropLogs;
AntiBan;
Until(False);
end;
begin
ClearDeBug;
DeclarePlayers;
SetUpSmart;
SetupSRL;
LoginPlayer;
SetAngle(True);
MakeCompass('N');
StartPlay;
end.
And this second one is one of the better ones I've made so far, It's a maple tree cutter…
Program MapleCutter;
{.include SRL/SRL/Misc/smart.scar}
{.include SRL/SRL.scar}
var
TreeSym, Loads, SleepLoads: integer; {
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::: Thank you for using... :::::::::::::::::::
:::::::::::::::::: Furuchan's :::::::::::::::::::
:::::::::::::::::: Maple Chopper :::::::::::::::::::
:::::::::::::::::: --------------------- :::::::::::::::::::
:::::::::::::::::: INSTRUCTIONS :::::::::::::::::::
:::::::::::::::::: 1. Start in Seers Bank. :::::::::::::::::::
:::::::::::::::::: 2. Have Axe WEILDED. :::::::::::::::::::
:::::::::::::::::: 3. Fill out the Setup. :::::::::::::::::::
:::::::::::::::::: 4. Press Play. :::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::: Please Post Progress Reports :::::::::::::::::::
:::::::::::::::::: And Errors... :::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
}
{::::::::::::::::: Setup :::::::::::::::::::}
const
NumLoads = 3; // Number of Loads to do until sleep.
SleepTime = 4; // Number of minutes to sleep.
SmartWorld = 83; // World you want SMART to login to.
SignedApp = True; // Used a signed application? True, False.
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:= 0;
Players[0].Name := 'Username'; // Username.
Players[0].Pass := 'Password'; // Password.
Players[0].Nick := 'sern'; // Nickname. (3 - 4 letters of name. Use lowercase and keep out first letter.)
Players[0].Active := True;
end;
{:::::::::::::::: End Setup ::::::::::::::::::::}
//SRL's Open Bank Function Modified a little by me to work in Seers.
function RopenBankFast(Location: String): Boolean;
var
x, y, i, l, c, z: Integer;
Info: TIntegerArray;
Booths, t: TPointArray;
begin
Wait(400);
case LowerCase(Location) of
'sb', 'seers bank': Info := [MSCX, MSCY, 5335672, 14, 1];
else
begin
srl_Warn('OpenBankFast', 'Unknown bank: '+Location, warn_AllVersions);
Exit;
end;
end;
MakeCompass('N');
z := GetColorToleranceSpeed;
ColorToleranceSpeed(Info[4]);
FindColorsSpiralTolerance(Info[0], Info[1], Booths, Info[2], MSX1, MSY1, MSX2, MSY2, Info[3]);
ColorToleranceSpeed(z);
SetArrayLength(t, 0);
t := Booths;
SetArrayLength(Booths, 0);
Booths := ReArrangeAndShortenArray(t, 14);
l := GetArrayLength(Booths) -1;
for i := 0 to l do
begin
if (not LoggedIn) or BankScreen or PinScreen then
Break;
if (LowerCase(Location) = 'vwb') or (LowerCase(Location) = 'varrock west') then
begin
Booths[i].X := Booths[i].X + 5;
Booths[i].Y := Booths[i].Y - 20;
end;
MMouse(Booths[i].X, Booths[i].Y, 3, 3);
Wait(75 + Random(75));
if IsUpText('ooth') Then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, False);
Wait(70 + Random(75));
if ChooseOption('uickly') then
begin
FFLag(0);
MarkTime(c);
repeat
Wait(100);
until (BankScreen) or (PinScreen) or (TimeFromMark(c) > 3000);
end;
end;
end;
Result := (BankScreen) or (PinScreen);
end;
//SRL's Function for Ent Finding. Used in here instead of adding Woodcutting include.
//Woodcutting include messed with the script for some reason =/.
function FindEnt(fx, fy: Integer; AvoidWhenFound: Boolean): Boolean;
var
arUpTextEntColorPoints: TPointArray;
x, y, EntTime, tcts: Integer;
begin
if not(LoggedIn)then
Exit;
GetMousePos(x, y);
if(x <> fx)or(y <> fy)then
MMouse(fx, fy, 0, 0);
if(IsUpText('Chop'))then
begin
tcts := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorspeed2Modifiers(0.4, 0.4);
FindColorsTolerance(arUpTextEntColorPoints, 51657, 80, 6, 127, 20, 5);
Result := Length(arUpTextEntColorPoints) > 10;
ColorToleranceSpeed(tcts);
end;
if(Result)then
begin
WriteLn('Ent Found!!');
if(AvoidWhenFound)then
begin
Writeln('Waiting for it to go away.');
MFNF(MMCX, MMCY, -1, 1);
MarkTime(EntTime);
while(TimeFromMark(EntTime) < 35000)do
if(Random(20) > 15)then
IdleTime(500, 500, 0.4)
else
Wait(500 + Random(500));
EntsAvoided := EntsAvoided + 1;
end;
end;
end;
Procedure FightRandoms;
Begin
If (FindFight) Then
Begin
Status('Fighting Random');
Begin
RunAway('South', True, 1, 7500+random(2575));
end;
end;
end;
Procedure AntiRandoms;
var
Q: Integer;
Begin
For Q:= 0 to 3 do
FindNormalRandoms;
FightRandoms;
FindNonInventoryRandoms;
Wait(10);
end;
procedure FindTreeMM;
var
x, y, q, r: Integer;
begin
if FindSymbolIn(x, y, 'tree', MMX1, MMY1, 714, 86) then
begin
Mouse(X, Y, 3, 3, True);
FFlag(0);
end else
begin
writeln('Couldn`t find Tree Symbol, trying failsafe...');
if (FindColorTolerance(q, r, 1330031, MMX1, MMY1, 710, 100, 5)) then
begin
wait(1000);
Mouse(q, r, 2, 2, True);
FFlag(0);
end else
begin
writeln('Failsafe failed!');
logout;
end;
end;
end;
Procedure FindTreeMS;
var
x, y: integer;
Begin
If not LoggedIn then Exit;
Repeat
Case Random(3) of
0:
Begin
If(FindColorTolerance(x, y, 12393, MSX1, MSY1, MSX2, MSY2, 4)) Then
Begin
MMouse(x, y, 0, 0);
FindEnt(x, y, True);
wait(100);
Mouse(x, y, 4, 4, True);
Wait(5000);
AntiRandoms;
end;
end;
1:
Begin
If(FindColorTolerance(x, y, 10844, MSX1, MSY1, MSX2, MSY2, 4)) Then
Begin
MMouse(x, y, 0, 0);
FindEnt(x, y, True);
wait(100);
Mouse(x, y, 4, 4, True);
Wait(5000);
AntiRandoms;
end;
end;
2:
Begin
If(FindColorTolerance(x, y, 27282, MSX1, MSY1, MSX2, MSY2, 4)) Then
Begin
MMouse(x, y, 0, 0);
FindEnt(x, y, True);
wait(100);
Mouse(x, y, 4, 4, True);
Wait(5000);
AntiRandoms;
end;
end;
end;
until(InvFull);
end;
Procedure BankWalk;
var
x, y, q, r: Integer;
begin
if (InvFull) then
begin
if FindSymbol(x, y, 'bank') then
begin
Mouse(X, Y, 3, 3, True);
FFlag(0);
end else
begin
Writeln('Couldn`t find Bank Symbol, trying failsafe...');
if (FindColorTolerance(q, r, FindLadderColor, MMX1, MMY1, 688, 145, 3)) then
begin
wait(1000);
Mouse(q, r, 2, 2, True);
FFlag(0);
end else
Writeln('Failsafe failed!');
logout;
end;
end;
end;
Procedure DepositLogs;
begin
RopenBankFast('seers bank');
If (BankScreen) then
Deposit(1, 28, True);
wait(200);
CloseBank;
Loads := Loads +1;
SleepLoads := SleepLoads +1;
end;
Procedure Proggy;
begin
writeln(':::::::::::::::::::::::::::::::::::::::::');
writeln('::Thanks for using Furuchan`s Maple Chopper');
writeln('::We`ve been going for '+TimeRunning);
writeln('::We`ve done '+intToStr(Loads)+' loads');
writeln('::We`ve avoided '+intToStr(EntsAvoided)+' Ents');
writeln('::Chop til we drop! =P');
writeln(':::::::::::::::::::::::::::::::::::::::::');
end;
Procedure MainLoop;
begin
Repeat
If not (LoggedIn) then exit;
MakeCompass('S');
wait(20);
MakeCompass('N');
FindTreeMM;
FindTreeMS;
BankWalk;
DepositLogs;
Proggy;
if (SleepLoads >= NumLoads) then
begin
If not (LoggedIn) then exit;
Logout;
wait(2000);
status('Sleeping...');
writeln('Don`t worry, just taking a little nap...');
wait(SleepTime * 60000 * random(3 * 60000));
status('Starting...');
SleepLoads := 0;
LoginPlayer;
end;
Until(False);
end;
Procedure SetUpSmart;
begin
SmartSetupEx(SmartWorld, False, SignedApp);
While Not (SmartReady) Do
Wait(100);
SetTargetDC(SmartGetDC);
If Not (LoggedIn) Then
While Not (SmartGetColor(386, 249) = 65535) Do
Wait(100);
end;
Begin
ClearDebug
DeclarePlayers;
SetUpSmart;
SetupSRL;
LoginPlayer;
SetAngle(True);
MakeCompass('N');
MainLoop;
End.
——————————————————
<!– END TEMPLATE: formanswers –>