osmm
2008-03-01 01:38:57
osmm - SRL Member Application Form
osmm
What is the meaning to life?
:spot::sasmokin:To have fun.:sasmokin::spot:
Where you Referred to SRL? If yes, by whom?
yes
Town
Programming Knowledge
Nope
Other Communitys
Sythe and sp0rk-eh
How Long have You Played Runescape
Since the yo-yo / rubber chicken holiday events
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
I like to program. If I get my "cretification" for Pascal (as in become srl members), I will attempt to learn Java starting during Spring brake. If I don't I'll keep at it until I am good enough to move on. I Think I'v done tons with Pascal, and got most of everything there is to learn in it. I hope you guys like my script, which took me many hours to type.
Thanks,
Osmm
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
{ ___
/ _ \__ _____ ___ ___ _ __ ___
| | | \ \ /\ / / _ \/ __/ __/ `_ ` _ \
| |_| |\ V V / __/\__ \__ \ | | | | |
\___/ \_/\_/ \___//___/___/_| |_| |_|
________________________________________
________________By______________________
__ ___ _ _
\ \ / (_) | | _____ __
\ \ /\ / /| | | |/ _ \ \ /\ / /
\ V V / | | | | (_) \ V V /
\_/\_/ |_|_|_|\___/ \_/\_/
________________________________________
_______________Osmm_____________________
____ _
| __ ) __ _ _ __ | | _____ _ __
| _ \ / _` | `_ `| |/ / _ \ `__|
| |_) | (_| | | | | < __/ |
|____/ \__,_|_| |_|_|\_\___|_|
________________________________________
____________Version 4.5_________________
<><><><><><><><><><><><><><><><><><><><>
<><><><><><><><><><><><><><><><><><><><>
Copyright © 2007-2008 Osmm
<><><><><><><><><><><><><><><><><><><><>
<><><><><><><><><><><><><><><><><><><><>
____________Instructions________________
________________________________________
1. Use SCAR Divi CDE 3.14.
2. Use SRL 4.5 rev #14.
3. Enter your SRL stats ID and Password.
If you don't have, get them at [url]http://www.stats.srl-forums.com/[/url]
4. Set up script lines 75-82 & DeclarePlayers.
5. Make the following settings:
A. Highest Brightness. - runescape
B. Start in the bank; first bank booth. - runescape
C. Have axe in first invitory slot or equpit (NOT in bank). - runescape
D. 32-Bit True Color. - computer
6. Start script logged out.
7. Enjoy!
________________Credits_________________
________________________________________
1. Mickalanous: Thanks a lot for guiding
me through scripting and a lot more!!!
2. JuKKa: Thanks for spending some time
with me, helping with problems
3. Derek-: Thanks for getting me through
player forums (previous script) and
helping some with this script.
________________Extra___________________
________________________________________
1. My msn - [email]i13229@hotmail.com[/email].
2. This script is only allowed on:
A. [url]http://www.srl-forums.com/[/url].
B. [url]http://www.rs-palace.com/[/url].
C. [url]http://www.sp0rk-eh.com/[/url].
________________________________________
________________________________________ }
program Owessm_Willow_Banker;
{.include SRL/SRL/Misc/Smart.scar}
{.include SRL/SRL.scar}
var
TimesThrough, AmountofWillows, NumberofWillows, dtmAxe,
dragonAxe, My_Wc_Level, Responds : Integer;
AxeInInvy : boolean;
//-----------------------------------------------------------------------------------------------\\
//-----------------------------------------------------------------------------------------------\\
const
My_World = 153; // Runescape world to load S.M.A.R.T. in.
Do_you_want_to_talk = true; // When invy full; will ask wc lvls, then tell your own.
Lets_Talk_Back = true; // Will respond to other players; WILL NOT lag.
LoadsPerPlayer = 17; // How many loads to cut before sleeping / next player.
TreeColor1 = 3830377; // Leave this tree color unless the script is not willow trees.
TreeColor2 = 3432536; // Leave this tree color unless the script is not willow trees.
SleepTime = 2; // How many minutes to sleep inbetween cycles.
ExtraSleepTime = 1; // Extra time to sleep, also in minutes.
//-----------------------------------------------------------------------------------------------\\
//-----------------------------------------------------------------------------------------------\\
procedure DeclarePlayers;
begin
HowManyPlayers:= 1; // How many players are you using
CurrentPlayer:= 0; // Don't touch this.
NumberOfPlayers(HowManyPlayers); // Don't touch this.
SRLID := ''; // SRL Stats ID - Should be a number; NOT your srl username
SRLPassword := ''; // SRL Stats Password - Random letters & numbers; NOT your srl password
// The script WILL NOT work without a SRL ID and Password.
// Get them here [url]http://www.stats.srl-forums.com/[/url]
Players[0].Name := ''; // Username.
Players[0].Pass := ''; // Password.
Players[0].Nick := ''; // 2-4 letters of Username (that are not capital letters or numbers).
Players[0].Active := True; // Don't touch this.
Players[0].Strings[0] := '0000'; // Bank pin if you have one; no bank pin = " '0000' ".
{Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Active := True;
Players[1].Strings[0] := '0000';
Players[2].Name := '';
Players[2].Pass := '';
Players[2].Nick := '';
Players[2].Active := True;
Players[2].Strings[0] := '0000';
Players[3].Name := '';
Players[3].Pass := '';
Players[3].Nick := '';
Players[3].Active := True;
Players[3].Strings[0] := '0000';
Players[4].Name := '';
Players[4].Pass := '';
Players[4].Nick := '';
Players[4].Active := True;
Players[4].Strings[0] := '0000';}
end;
//////////////////////|\\\\\\\\\\\\\\\\\\\\\\
//|---------------------------------------|\\
//| DO NOT TOUCH ANYTHING PAST THIS POINT |\\
//|---------------------------------------|\\
//////////////////////|\\\\\\\\\\\\\\\\\\\\\\
procedure LoadAllDTMs;
begin
dtmAxe := DTMFromString('78DA631461606060674001CE51290CFF81342' +
'310FF07024621208385010D302291405A02D31C0C3502408213BF' +
'1A00D2AB0671'); // Universal axe DTM
dragonAxe := DTMFromString('78DA6314636060E060400171A23C0CFF81342' +
'310FF07024651208389010D302291405A0248081250230B24B808' +
'A8610612D2F8D5000078CB062C'); // Dragon axe DTM
AmountofWillows := DTMFromString('78DA631465606010604001AEB6120C5C409A1' +
'188FF0301230F90C1CE800618914820CD02244408A85102124204' +
'D4081261171F909021A0460A48B0E05703007FAD0599'); // Willow DTM
end;
// Humanly changes compass angle
procedure RandomlyMoveMyCompass;
begin
if(Random(10) >= 2)then
begin
case Random(2) of
0: begin
KeyDown(VK_Left);
Wait(RandomRange(100,600));
KeyUp(VK_Left);
Wait(RandomRange(100,600));
end;
1: begin
KeyDown(VK_Right);
Wait(RandomRange(100,600));
KeyUp(VK_Right);
Wait(RandomRange(100,600));
end;
2: begin
KeyDown(VK_Right);
Wait(RandomRange(100,600));
KeyUp(VK_Left);
Wait(RandomRange(100,600));
end;
3: begin
KeyDown(VK_Left);
Wait(RandomRange(100,600));
KeyUp(VK_Right);
Wait(RandomRange(100,600));
end;
end;
if(Random(10) > 4)then
begin
case Random(2) of
0: begin
KeyDown(VK_Down);
Wait(RandomRange(100,600));
KeyUp(VK_Down);
Wait(RandomRange(100,600));
end;
1: begin
KeyDown(VK_Up);
Wait(RandomRange(100,600));
KeyUp(VK_Up);
Wait(RandomRange(100,600));
end;
2: begin
KeyDown(VK_Up);
Wait(RandomRange(100,600));
KeyUp(VK_Down);
Wait(RandomRange(100,600));
end;
3: begin
KeyDown(VK_Down);
Wait(RandomRange(100,600));
KeyUp(VK_Up);
Wait(RandomRange(100,600));
end;
end;
end;
end;
end;
// Cool disguise`s
procedure Disguise_Me;
begin
case Random(5) of
0: Disguise('' +IntToStr(NumberofWillows)+' Willows Cut');
1: Disguise('' +IntToStr(Round(37.5 * NumberofWillows)) + ' Exp gained');
2: Disguise('Wc level - ' +IntToStr(My_Wc_Level));
3: Disguise('Post all progys');
4: Disguise('Owessm Willow Banker');
end;
end;
// TONS and TONS of antiban
procedure Antiban;
begin
MouseSpeed := 9 + Random(5);
case random(20) of
0: begin
RandomlyMoveMyCompass;
SleepAndMoveMouse(500 + random(500));
SleepAndMoveMouse(1500);
end;
1: begin
MMouse(Random (500), Random (500), 10 , 10);
SleepAndMoveMouse(1000 + random(500));
MMouse(Random (500), Random (500), 10 , 10);
end;
2: begin
RandomlyMoveMyCompass;
GameTab(1 + random(13));
FTWait(RandomRange(2,4));
GameTab(4);
end;
3: begin
RandomMovement;
Wait2(1000, true);
end;
4: begin
GameTab(2);
FTWait(RandomRange(2,4));
GameTab(4);
end;
5: begin
FTWait(RandomRange(2,4));
RandomMovement;
GameTab(4);
end;
6: begin
Pickupmouse;
Wait2(1000, true);
GameTab(4);
end;
7: begin
SleepAndMoveMouse(500 + random(500));
MMouse(Random (500), Random (500), 10 , 10);
SleepAndMoveMouse(500 + random(500));
MMouse(Random (500), Random (500), 10 , 10);
end;
8: SleepAndMoveMouse(500 + random(500));
9: RandomlyMoveMyCompass;
10: MMouse(Random (500), Random (500), 10 , 10);
11: Pickupmouse;
12: ChooseOption('Cancel');
13: RandomMovement;
14: begin
SleepAndMoveMouse(500 + random(500));
SleepAndMoveMouse(500 + random(500));
Pickupmouse;
MMouse(Random (500), Random (500), 10 , 10);
SleepAndMoveMouse(500 + random(500));
end;
15: begin
SleepAndMoveMouse(500 + random(500));
SleepAndMoveMouse(1500);
SleepAndMoveMouse(500 + random(500));
SleepAndMoveMouse(1500);
end;
16: IdleTime(1000 + random(1000), 450, 0.5);
17: begin
SleepAndMoveMouse(500 + random(500));
IdleTime(1000 + random(1000), 450, 0.7);
SleepAndMoveMouse(1500);
IdleTime(500 + random(500), 350, 0.6);
end;
18: begin
IdleTime(1000 + random(1000), 450, 0.5);
IdleTime(750 + random(250), 250, 0.3);
Pickupmouse;
IdleTime(1000 + random(1000), 500, 0.9);
end;
19: begin
MMouse(Random (500), Random (500), 10 , 10);
IdleTime(1000 + random(1000), 500, 0.2);
IdleTime(300 + random(200), 500, 0.8);
end;
end;
end;
// Auto responds if told to, won't check everytime called to reduce lag.
procedure AutoResponder;
begin
if Lets_Talk_Back then
begin
if (InChat('woodcutting lvl') or InChat('wc level') or InChat('wc lvl')) and
(random(10) >= 5) then
begin
case Random(8) of
0 : TypeSend(IntToStr(My_Wc_Level));
1 : TypeSend(IntToStr(My_Wc_Level) + ' you');
2 : TypeSend('look it up');
3 : TypeSend('not telling');
4 : TypeSend('right now ' +IntToStr(My_Wc_Level));
5 : TypeSend('look me up');
6 : TypeSend('almost at ' +IntToStr(My_Wc_Level + 1));
7 : TypeSend(IntToStr(My_Wc_Level) + ' u');
end;
Responds := Responds + 1;
end;
if (InChat('lol') or InChat('lamo') or InChat('ha')or
InChat('lmfao') or InChat('rofl') or InChat('omg')) and
(random(10) >= 8) then
begin
case Random(10) of
0 : TypeSend('hahaha');
1 : TypeSend('hehehehe');
2 : TypeSend('...wow');
3 : TypeSend('rof lmao');
4 : TypeSend('rof lmfao');
5 : TypeSend('hehe');
6 : TypeSend('haha');
7 : TypeSend('r o f l');
8 : TypeSend('omg');
9 : TypeSend('lol');
end;
Responds := Responds + 1;
end;
if (InChat(Players[CurrentPlayer].Nick)) and
(random(10) >= 3) then
begin
case Random(10) of
0 : TypeSend('stop bugging me');
1 : TypeSend('stop bothering me');
2 : TypeSend('dude stop talking so much');
3 : TypeSend('im busy');
4 : TypeSend('ffs stop talking so much');
5 : TypeSend('not now');
6 : TypeSend('busy');
7 : TypeSend('i am busy sorry');
8 : TypeSend('stop talking with me');
9 : TypeSend('can you leave me alone');
end;
Responds := Responds + 1;
end;
end;
end;
Procedure Randoms; // Made by Masterkill - EXTENCIVLY reformated by Osmm
var
i : integer;
FindDemon, FindMime, FindMaze : boolean;
begin
for i := 1 to 13 do
begin
if not LoggedIn then Exit;
case i of
1: if FindMod then
begin
LogOut;
WriteLn('There is a mod around, waiting 15mins + 5 random mins');
Wait(900000 + Random(300000));
WriteLn('Times up, logging back in');
LoginPlayer;
end;
2: FindTalk;
3: If SolveChatRandom then
begin
Players[CurrentPlayer].Loc := Players[CurrentPlayer].Rand
WriteLn(Players[CurrentPlayer].Name + ' = ' + Players[CurrentPlayer].Loc);
end;
4: FindInventoryRandoms;
5: begin
If FindDemon then
SolveDemon;
end;
6: begin
if FindQuiz then
SolveQuiz;
end;
7: If FindDead then
begin
WriteLn('Dang! Sorry, script got you killed');
WriteLn('Terminating script now - so your character doesn`t `hang`');
Logout;
terminatescript;
end;
8: if FindMime then
begin
WriteLn('Found mime random...yea its unsolveable');
WriteLn('Terminating script now - so your character doesn`t `hang`');
Logout;
terminatescript;
end;
9: if FindMaze then
begin
WriteLn('Found maze random...yea its unsolveable');
WriteLn('Terminating script now - so your character doesn`t `hang`');
Logout;
terminatescript;
end;
10: FindTalk;
11: If NoGameTab then
begin
Wait(5000 + random(3000));
if SolveChatRandom then Exit;
Players[CurrentPlayer].Loc := 'no GameTab';
LogOut;
end;
12: if FindFight then
begin
case Random(2) of
0: Runaway('s', true, 1, 7500 + random(2500));
1: Runaway('w', false, 1, 7500 + random(2500));
end;
end;
13: begin
if (random(10) >= 7) then
AutoResponder;
end;
end; // Amazingly I am prety sure this is right spacing
end;
end;
// Isn't used until AskWCLevels calls it
procedure TellMyLevel;
var
yourwclevel: integer;
begin
yourwclevel := GetSkillInfo('woodcutting', false);
case Random(7) Of
0: begin
Typesend('Im gona be ' + inttostr(yourwclevel + 2) + ' wc soon');
Typesend('woops, I mean ' + inttostr(yourwclevel + 1) + ' soon');
end;
1: Typesend('Im almost at ' + inttostr(yourwclevel + 1));
2: Typesend(inttostr(yourwclevel) + ' here');
3: Typesend(inttostr(yourwclevel) + ' me');
4: Typesend(inttostr(yourwclevel) + ' = me');
5: begin
Typesend('my wc lvl is at ' + inttostr(yourwclevel));
case Random(7) Of
1: Typesend('I wish it was 99');
2: Typesend('lol i wish I was 99, then i could cut uber fast!');
3: Typesend('I wish my wc was 99, then id have a skill cape :p');
4: Typesend('=[, I want 99 sooo bad');
end;
end;
6: Typesend('my wc is ' + inttostr(yourwclevel));
end;
end;
// Asks wc lvls, then tells your own
procedure AskWCLevels;
begin
if Do_you_want_to_talk = true then
begin
if (random(10) >= 8)then
WriteLn('Asking wc levels, then replying');
begin
case Random(12) of
0: begin
Typesend('Wc lvls');
TellMyLevel;
end;
1: begin
Typesend('wc lvls?');
TellMyLevel;
end;
2: begin
Typesend('woodcutting lvls?');
TellMyLevel;
end;
3: begin
Typesend('woodcutting lvls');
TellMyLevel;
end;
4: begin
Typesend('woodcut lvls?');
TellMyLevel;
end;
5: begin
Typesend('woodcut lvls');
TellMyLevel;
end;
6: begin
Typesend('whats up people?');
wait(3000 + random(500));
Typesend('Wc lvls???');
TellMyLevel;
end;
7: begin
Typesend('huh...boring');
wait(3000 + random(500));
Typesend('wc lvls?');
TellMyLevel;
end;
8: begin
Typesend('wht up ppl');
wait(3000 + random(500));
Typesend('woodcutting lvls?');
TellMyLevel;
end;
9: begin
Typesend('how you guys doin?');
wait(3000 + random(500));
Typesend('woodcutting lvls');
TellMyLevel;
end;
10: begin
Typesend('woodcutting ownz =P');
wait(3000 + random(1500));
Typesend('woodcut lvls?');
TellMyLevel;
end;
11: begin
Typesend('what your guys wc lvls?');
wait(1000 + random(1000));
Typesend('...?');
wait(500 + random(500));
Typesend('wc lvls?!?!');
TellMyLevel;
end;
end;
wait(1000+random(500));
end;
end;
end;
function AllPlayersFalse: boolean; // Thanks to Mickaliscious =D
var ActivePlayers, i : byte;
begin
for i := 0 to High(Players) do
if Players[i].Active then Inc(ActivePlayers);
if ActivePlayers = 0 then Result := True;
end;
// Counts number of willows cut (doesn't include random event items)
procedure WillowCounter;
var Number: byte;
begin
if not LoggedIn then Exit;
GameTab(4);
Number := CountItemsDTM('inv', AmountOfWillows);
WriteLn(inttostr(number) + ' willows cut this load');
IncEx(NumberofWillows, Number);
IncEx(ReportVars[1], Number);
IncEx(ReportVars[2], Round(37.5 * Number));
end;
// Progress report
procedure ProgressReport;
var
i, Loads : Integer;
begin
for i := 0 to High(Players) do
IncEx(Loads, Players[i].Banked);
Writeln('====================================');
Writeln('| Owessm Willow Banker ');
Writeln('| Version 4.5 ');
Writeln('| -Progress Report- ');
WriteLn('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
if Loads > 0 then Writeln('| Did ' + IntToStr(Loads) + ' Loads');
if NumberofWillows > 0 then Writeln('| Cut ' + IntToStr(NumberofWillows) + ' Willows');
if Round(37.5 * NumberofWillows) > 0 then WriteLn('| Gained ' + IntToStr(Round(37.5 * NumberofWillows)) + ' exp');
if Lets_Talk_Back then if Responds > 0 then WriteLn('| Responded ' + IntToStr(Responds) + ' times');
WriteLn('| Worked For ' + (timerunning));
WriteLn('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('| ~~~Thank you for using~~~ ');
WriteLn('| Please post all progies and bugs ');
Writeln('====================================');
end;
// Go to willows from bank
procedure GoToWillows;
var
x, y: integer;
begin
WriteLn('Going to willows');
SetAngle(True);
MakeCompass('n');
mouse(610 - random(10), 120 + random(10), 5 - random(5), 5 + random(5), True);
FFlag(8);
if(not FindSymbol(x,y,'fish'))then
mouse(641 - random(10), 125 + random(10), 5 - random(5), 5 + random(5), True);
if (FindSymbol(x,y,'fish')) then
begin
WriteLn('At the willow field');
WriteLn('Cutting willows');
SetRun(True);
GameTab(4);
end;
end;
// Go to bank from willow field
procedure Bank;
var
x, y : integer;
begin
WriteLn('Going to Draynor bank');
MakeCompass('n');
SetAngle(True);
SymbolAccuracy:= 0.4;
repeat // loop to make sure you clicked on bank symbol
if(FindSymbol(x,y,'bank'))then
Mouse(x, y, 3, 3, true);
until(FlagPresent);
FFlag(0);
WriteLn('At Draynor Bank');
Repeat // loop to make sure you open bank booth
OpenBankQuiet('db');
if PinScreen then InPin(Players[CurrentPlayer].Strings[0]) else
FFlag(0);
Wait(500+Random(400));
until(BankScreen)or(not Loggedin);
if BankScreen then
begin
WillowCounter;
if AxeInInvy then
begin
Deposit(2, 28, 2);
if(Random(10) > 3)then
CloseBank;
end else
begin
Deposit(1, 28, 2);
if(Random(10) > 3)then
CloseBank;
end;
Inc(ReportVars[0]);
SRLRandomsReport;
Inc(Players[CurrentPlayer].Banked);
ProgressReport;
Disguise_me;
wait(250 + random(250));
GameTab(4);
end;
end;
// Made things a little bit easyer doing it this way
// Used when ent found
procedure Ent_phrases;
begin
if(Random(10) >= 5)then
begin // ^ will talk 50% of time
case random(18) of
0: Typesend('arg! stupied ent!');
1: Typesend('lol, lil nub ent');
2: Typesend('hahaha funny lil ent');
3: Typesend('tree got mad, hahaha');
4: Typesend('ents are funny');
5: Typesend('O M G, stupied ent');
6: Typesend('ffs dumb ent');
7: Typesend('rofl ent got mad');
8: Typesend('lamo, ent gone crazzy');
9: Typesend('huhh.....');
10: Typesend('ents are pointless to rs');
11: Typesend('Why did jagex make ents?');
12: Typesend('huh....ents are so useless');
13: Typesend('hahaha, stupied lil ent');
14: Typesend('oooo, an ent!');
15: Typesend('aarrgg, dumb ent');
16: Typesend('E N T !');
17: Typesend('ffs, an ent');
end;
end;
end;
// Actual ent FINDING by Sumilion - from Woodcutting.scar
// Everything else edited by Osmm
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 // All my stuff from here on down
MarkTime(EntTime);
WriteLn('Ent Found!!');
Writeln('Waiting for it to go away.');
begin
case random(2) of
0: begin // stuff to do when ent is found
mouse(627, 86, 5, 5, true);
mouse(627, 86, 10, 10, true);
Ent_phrases;
wait(750 + random(750));
GameTab(4);
wait(750 + random(750));
AntiBan;
Wait(10000 + random(5000));
Randoms;
end;
1: begin // other stuff to do when ent is found
DoEmote(4);
wait(750 + random(750));
Ent_phrases;
wait(750 + random(750));
Hoverskill('woodcutting', false);
wait(750 + random(750));
AntiBan;
wait(10000 + random(5000));
Randoms;
end;
end;
end;
begin
if (TimeFromMark(EntTime) < 35000) then
case random(2) of
0: begin
if Random(10) > 8 then
Hoverskill('woodcutting', false);
end;
1: AntiBan;
end;
end;
Inc(EntsAvoided);
end;
end;
// Checks if you got an axe at all
function FindAxe: Boolean;
var
Ix, Iy : Integer;
begin
if LoggedIn then
begin
GameTab(5); // checks if equipt
if(FindDtm(dtmAxe, Ix, Iy, MIX1, MIY1, MIX2, MIY2)) or
(FindDTM(dragonaxe, Ix, Iy, MIX1, MIY1, MIX2, MIY2)) then
Result := True
else
begin
GameTab(4); // checks invatory
if(FindDtm(dtmAxe, Ix, Iy, MIX1, MIY1, MIX2, MIY2)) or
(FindDTM(dragonaxe, Ix, Iy, MIX1, MIY1, MIX2, MIY2))then
begin
Result := True;
AxeInInvy := True;
end else Result := False;
end;
end;
end;
{*******************************************************************************
procedure FindBirdsNest;
By: Liquid and Starblaster100
Description: If a birds nest is found, it will pick it up
*******************************************************************************}
procedure FindBirdsNest;
var
tries, x, y: Integer;
s: string;
begin
if (not (GetLastChatText(s))) then
LastChatter(s);
if (Pos(s, 'A bird') <> 0) then
begin
repeat
if not (FindObj(x, y, 'Take Bird', 3952984, 10)) or
not (FindObj(x, y, 'Take Bird', 1713706, 10)) or
not (FindObj(x, y, 'Take Bird', 1581604, 10)) then
begin
KeyDown(VK_LEFT);
Wait(700 + Random(500));
KeyUp(VK_LEFT);
Wait(400 + Random(300));
end;
if not (FindObj(x, y, 'Take Bird', 3952984, 10)) or
not (FindObj(x, y, 'Take Bird', 1713706, 10)) or
not (FindObj(x, y, 'Take Bird', 1581604, 10)) then
begin
x := 648;
y := 83;
tries := tries + 1;
FindColorSpiral(x, y, 241, 570, 5, 725, 155);
Mouse(x + 3, y + 3, 2, 2, True);
FFlag(0);
Wait(200 + Random(100));
end;
if (FindObj(x, y, 'Take Bird', 3952984, 10)) or
(FindObj(x, y, 'Take Bird', 1713706, 10)) or
(FindObj(x, y, 'Take Bird', 1581604, 10)) then
begin
WriteLn('Birds Nest Found');
Wait(450 + Random(400));
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
FFlag(0);
Wait(500 + Random(300));
if (Screenshots) then
SaveScreenshot('Birds Nest - SRL - ' + IntToStr(GetTimeRunning) + '.bmp');
tries := tries + 100;
Birdsnest := Birdsnest + 1;
Mouse(583, 226, 2, 2, False);
Wait(100 + Random(100));
ChooseOption('Examine');
Exit;
end;
until (FindObj(x, y, 'Take Bird', 3952984, 10)) or
(FindObj(x, y, 'Take Bird', 1713706, 10)) or
(FindObj(x, y, 'Take Bird', 1581604, 10)) or (tries > 5)
end;
end;
// Based off of Mickaliscious's version checker
procedure Version_Checker(Current_Version: string);
var
Version: string;
begin
Version := GetPage('http://osmm.freehostia.com/version_checker.txt');
if Version = Current_Version then
begin
ClearDebug;
WriteLn('You have the latest version!');
Wait(2000);
end else
begin
ClearDebug;
Wait(1000);
WriteLn('The latest version is ' + Version);
Wait(2000);
WriteLn('You have version '+ Current_Version);
Wait(2000);
WriteLn('Opening website for latest version');
Wait(1000);
OpenWebPage('http://www.villavu.com/forum/showthread.php?t=23470');
TerminateScript;
end;
end;
procedure WaitChop(time, cox, coy: integer); // Full of Antirandoms / Antiban stuff
var // DO NOT edit or delete
timer: integer;
begin
marktime(timer);
repeat
Randoms;
if(Random(20) > 18)then
Antiban else FTWait(2 + random(1));
if(FindEnt(coX, coY, True))then exit;
until(timefrommark(timer)>time)or(not loggedin);
end;
// Different ways to click on willow tree
procedure ClickTree(cx, cy : integer);
begin
case random(16) of
0,1,2,3,4,5: mouse(cx, cy, 7, 7, true); // left click
6,7,8: begin
mouse(cx, cy, 7, 7, false);
ChooseOption('Chop'); // right click
end;
9,10,11,12,13,14: begin
mouse(cx, cy, 7, 7, true); // double click
wait(50 + random(25));
mouse(cx, cy, 7, 7, true);
end;
15: begin
mouse(cx, cy, 7, 7, true); //click; anti ban; click
wait(50 + random(50));
mouse(cx, cy, 7, 7, false);
ChooseOption('Chop');
end;
end;
end;
procedure ChopTree;
var
cx, cy, MyMark : integer;
begin
if not Loggedin then exit;
GameTab(4);
MarkTime(MyMark);
repeat
if FindObjCustom(cx, cy, ['Willow', 'llow'], [TreeColor1, TreeColor2], 3) then
begin
if(FindEnt(cx, cy, false))then break;
ClickTree(cx, cy);
if(FindEnt(cx, cy, false))then break;
begin
WaitChop(3500 + random(3500), cx, cy);
exit;
end;
end else
wait(750 + random(750));
if TimeFromMark(MyMark) > (120000) then
begin
Logout;
Exit;
end;
until not loggedin
end;
// My leet intro
procedure Intro;
begin
ClearDebug;
wait(225);
WriteLn(' ____ ');
wait(225);
WriteLn(' / __ \');
wait(225);
WriteLn(' | | | |___ ____ ___ ____ ___ ');
wait(225);
WriteLn(' | | | / __| _ ` _ \| _ ` _ \');
wait(225);
WriteLn(' | |__| \__ \ | | | | | | | | | |');
wait(225);
WriteLn(' \____/|___/_| |_| |_|_| |_| |_|');
wait(500);
WriteLn(' Copyright © 2007-2008 Osmm ');
wait(1500)
ClearDebug;
WriteLn('Presents:');
Wait(1000);
ClearDebug;
WriteLn('Owessm Draynor Willow Banker');
Wait(1000);
WriteLn(' Version 4.5')
Wait(5000); // to give SMART an extra 5 seconds to start
end;
// Player setup
procedure setupplayer;
begin
if not FindAxe then
begin
Logout;
GetSelf.WindowState := wsNormal;
wait(1000);
WriteLn('You do not have a wc axe in your invy or equipt.');
wait(1000);
WriteLn('How are we suspose to cut willows?');
wait(1000);
WriteLn('Sorry, but script has to be terminated.');
wait(1000);
terminatescript;
end;
SetAngle(True);
MakeCompass('n');
begin
case Random(2) of
0: begin
SetChat('On',1);
SetChat('On',1);
SetChat('Off',2);
SetChat('Off',2);
SetChat('Friends',3);
SetChat('Friends',3);
SetChat('On',4);
SetChat('On',4);
SetChat('On', 5);
SetChat('On', 5);
end;
1: begin
SetChat('On', 5);
SetChat('On', 5);
SetChat('On',4);
SetChat('On',4);
SetChat('Friends',3);
SetChat('Friends',3);
SetChat('Off',2);
SetChat('Off',2);
SetChat('On',1);
SetChat('On',1);
end;
end;
end;
Players[CurrentPlayer].Level[8] := GetSkillInfo('hitpoints', false);
My_Wc_Level := GetSkillInfo('woodcutting', false);
if My_Wc_Level < 30 then
begin
Logout;
GetSelf.WindowState := wsNormal;
WriteLn('...you don`t even have 30 wc');
WriteLn('how are we suspose to cut willows?');
WriteLn('sorry, script terminated');
terminatescript;
end;
SetRun(False);
GameTab(4);
end;
procedure ForgetStuff;
begin
FreeDtm(dtmAxe);
FreeDtm(dragonAxe);
FreeDtm(AmountofWillows);
end;
///////////////////////////////////////////////
procedure AntiRandoms; begin if (SRLID = '') or (SRLPassword = '') then begin ClearDebug; WriteLn('You must have an SRL stats acount to use this script.'); Wait(2500); WriteLn('Or be smart enough to edit this feature out / get around it.'); Wait(2500); WriteLn('If you cant do either, just get an SRL stats acount at http://www.stats.srl-forums.com/'); Wait(2500); OpenWebPage('http://www.stats.srl-forums.com/index.php?action=register'); Wait(2000); terminatescript; end; end;
///////////////////////////////////////////////
//////////////////Main Loop////////////////////
///////////////////////////////////////////////
//Copyright © 2007-2008 Osmm
///////////////////////////////////////////////
// Script setup
procedure Startup;
begin
Version_Checker('4.5');
SmartSetupEx(My_World, false, true); // Thanks Smartzkid for SmartSetupEx
SetTargetDC(SmartGetDC); // Thanks A LOT BenLand100 for S.M.A.R.T.
while not SmartReady do Wait(1000);
SetupSRL;
ScriptID := '551';
DeclarePlayers;
AntiRandoms;
ClearDebug;
Disguise('POST ALL PROGYS!');
LoadAllDTMs;
Intro;
Getapplication.minimize;
ActivateClient;
if LoggedIn then Logout;
LoginPlayer;
TimesThrough := 1;
end;
begin
Startup;
repeat
repeat // Sets up your character and takes to willow feild
setupplayer;
GoToWillows;
repeat // repeats cutting willows until invy full, then bank
// if all loads are done, brake loop and sleep
if InvFull then
begin
Bank;
if Players[CurrentPlayer].Banked >= LoadsPerPlayer*TimesThrough then Break else
begin
GoToWillows;
end;
end else
GameTab(4);
ChopTree;
until (not LoggedIn);
CloseBank;
Logout;
until (CurrentPlayer = High(Players));
Wait((SleepTime * 60000) + Random(ExtraSleepTime * 60000));
Nextplayer(True);
Inc(TimesThrough);
LoginPlayer;
until (AllPlayersFalse)
ForgetStuff;
end.
——————————————————
<!– END TEMPLATE: formanswers –>




