Twisted
2008-06-30 23:07:07
<!– BEGIN TEMPLATE: formanswers –>
twistedvip50 - SRL Member Application Form
twistedvip50
What is the meaning to life?
42.
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
Delphi, a little bit of C++, and learning Java
Other Community's
Cheat Engine
How Long have You Played RuneScape
4 years
Are you affiliated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
This is my 3rd application since I've started at SRL-Forums. I like computer programming languages very much, and am planning on taking C++, or Java class during the summer. Already taking a gaming class. I currently play runescape, and enjoy making scripts as it passes the time :). I'm 13 years old and am in 8th grade. Enjoy my 1131 line script :D Also tell me how you like the auto responder, and what else I should include.
Thanks for reading,
Twisted
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
——————————————————
<!– END TEMPLATE: formanswers –>
twistedvip50 - SRL Member Application Form
twistedvip50
What is the meaning to life?
42.
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
Delphi, a little bit of C++, and learning Java
Other Community's
Cheat Engine
How Long have You Played RuneScape
4 years
Are you affiliated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
This is my 3rd application since I've started at SRL-Forums. I like computer programming languages very much, and am planning on taking C++, or Java class during the summer. Already taking a gaming class. I currently play runescape, and enjoy making scripts as it passes the time :). I'm 13 years old and am in 8th grade. Enjoy my 1131 line script :D Also tell me how you like the auto responder, and what else I should include.
Thanks for reading,
Twisted
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
{==================This is my first script=====================================]
[ Twistedvip50 ]
[ ]
[ Port Sarim Willower ]
[ Made for Scar 15b, SRL 4 #17 ] ]
[ ]
[ CREDITS GO TO: ]
[ Me, for making the script. ]
[ [-Jesus-] for EntFinder ]
[=================================SETUP========================================]
[ 1. USE RuneScape with Low Detail, VERY Bright. ]
[ 2. Set your Screen to 32 bit TRUE color. ]
[ 3. Set Playernames and Passwords. ]
[ 4. Drag CROSSHAIR on RuneScape client. ]
[ 5. Make sure to start with a axe in your first inventory slot. ]
[==============================================================================}
Program PORTSARIMWILLOWER;
{.include SRL/SRL/Misc/Smart.Scar}
{.include SRL/SRL.Scar}
{.include SRL/SRL/Skill/Woodcutting.Scar}
Var
GainedLevels, FirstLevel, AxeBroke: Integer;
Axe, TotalWillows, Banked, x, y: Integer;
C, CurLvl, Dropped, Withdrawed: Integer;
//Responded: LongInt;
lol : String;
Run : Boolean;
const
Version = '1.3 BETA'; //DO NOT TOUCH UNLESS U WANT TO SCREW UP SCRIPT
YourSRLId = '2546';
YourSRLPassword = '11223344';
MSpeed = 13;
SmartWorld = 125; //Change to whatever world
Signed = True; //Signed or Unsigned
// YourChat = ''; //Chat that you normally go on.
// TimeToRespond = 30; //in minutes
Procedure CheckVersion;
var
NewVersion : String;
begin
NewVersion := GetPage('http://www.freewebs.com/st0l3n/PSVersion.txt');
If Version = NewVersion then
begin
writeln('You have the latest version');
end;
If Not (Version = NewVersion) then
begin
Writeln('Please go and get the latest version');
Writeln('Latest version := ' + NewVersion);
TerminateScript;
end;
end;
Procedure DeclarePlayers;
begin
HowManyPlayers:= 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:= 0;
Players[0].Name := 'USERNAME'; //UserName
Players[0].Pass := 'PASSWORD'; //Password
Players[0].Nick := 'SER'; //Nickname (No numbers)
Players[0].Integers[0]:= 1000; //Number of loads
Players[0].Integers[1]:= 18; //Number of extra axes
Players[0].Booleans[0]:= True; //Withdraw axe if broken
Players[0].Strings[0]:= 'false'; //Axe wielded?
Players[0].Strings[1]:= 'false'; //PowerChop = True, Bank = False
Players[0].Loc := 'Bank'; //Start out in bank..
Players[0].Active := True; //Active
{
Players[1].Name := 'USERNAME'; //UserName
Players[1].Pass := 'PASSWORD'; //Password
Players[1].Nick := 'SER'; //Nickname
Players[1].Integers[0]:= 1000; //Number of loads
Players[1].Integers[1]:= 1; //Number of extra axes
Players[1].Booleans[0]:= True; //Withdraw axe if broken
Players[1].Strings[0]:= 'true'; //Axe wielded?
Players[1].Strings[1]:= 'true'; //PowerChop = True, Bank = False
Players[1].Loc := 'Bank'; //Start out in bank..
Players[1].Active := True; //Active }
Writeln('Using '+IntToStr(HowManyPlayers)+' Players');
ClearDebug;
end;
Procedure LoadStuff;
begin
Axe := DTMFromString('78DA6394606060E06040016101010CFF81342' +
'394CF280D243851D56489F3314822ABE1021232A86AAA6204C042703' +
'58240821D554D539220AA1A3E20C18FAAA63515550D006C290671');
end;
function SetBankSpot: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..3] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 145;
dtmMainPoint.y := 97;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 15527148;
dtmMainPoint.Tolerance := 255;
dtmSubPoints[0].x := 145;
dtmSubPoints[0].y := 97;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 15527148;
dtmSubPoints[0].Tolerance := 255;
dtmSubPoints[1].x := 136;
dtmSubPoints[1].y := 97;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 195836;
dtmSubPoints[1].Tolerance := 20;
dtmSubPoints[2].x := 136;
dtmSubPoints[2].y := 105;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 195836;
dtmSubPoints[2].Tolerance := 20;
dtmSubPoints[3].x := 136;
dtmSubPoints[3].y := 110;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 195836;
dtmSubPoints[3].Tolerance := 20;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function SetBankTrees: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..6] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 147;
dtmMainPoint.y := 92;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 1598297;
dtmMainPoint.Tolerance := 255;
dtmSubPoints[0].x := 147;
dtmSubPoints[0].y := 92;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 1598297;
dtmSubPoints[0].Tolerance := 255;
dtmSubPoints[1].x := 150;
dtmSubPoints[1].y := 80;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 1006901;
dtmSubPoints[1].Tolerance := 35;
dtmSubPoints[2].x := 145;
dtmSubPoints[2].y := 100;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 610085;
dtmSubPoints[2].Tolerance := 35;
dtmSubPoints[3].x := 139;
dtmSubPoints[3].y := 84;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 610085;
dtmSubPoints[3].Tolerance := 35;
dtmSubPoints[4].x := 117;
dtmSubPoints[4].y := 111;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 12096892;
dtmSubPoints[4].Tolerance := 25;
dtmSubPoints[5].x := 132;
dtmSubPoints[5].y := 25;
dtmSubPoints[5].AreaSize := 0;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 5264476;
dtmSubPoints[5].Tolerance := 25;
dtmSubPoints[6].x := 124;
dtmSubPoints[6].y := 29;
dtmSubPoints[6].AreaSize := 0;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := 5264476;
dtmSubPoints[6].Tolerance := 25;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function SetDDTM: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..3] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 48;
dtmMainPoint.y := 56;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 1398102;
dtmMainPoint.Tolerance := 255;
dtmSubPoints[0].x := 48;
dtmSubPoints[0].y := 56;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 1398102;
dtmSubPoints[0].Tolerance := 255;
dtmSubPoints[1].x := 54;
dtmSubPoints[1].y := 46;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 681255;
dtmSubPoints[1].Tolerance := 35;
dtmSubPoints[2].x := 58;
dtmSubPoints[2].y := 55;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 681255;
dtmSubPoints[2].Tolerance := 35;
dtmSubPoints[3].x := 94;
dtmSubPoints[3].y := 50;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 681255;
dtmSubPoints[3].Tolerance := 35;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
Procedure LoggingIn;
begin
if Not LoggedIn then
LoginPlayer;
end;
procedure Chats;
begin
LoggingIn;
case random(3) of
0: SetChat('on', 1);
1: SetChat('friends', 1);
2: SetChat('off', 1);
end;
case random(3) of
0: SetChat('on', 2);
1: SetChat('friends', 2);
2: SetChat('off', 2);
end;
case random(3) of
0: SetChat('on', 3);
1: SetChat('friends', 3);
2: SetChat('off', 3);
end;
case random(3) of
0: SetChat('on', 4);
1: SetChat('friends', 4);
2: SetChat('off', 4);
end;
case random(3) of
0: SetChat('on', 5);
1: SetChat('friends', 5);
2: SetChat('off', 5);
end;
end;
Procedure BankWalk; Forward;
Procedure WillowsWalk; Forward;
Function GetWorld: Boolean;
begin
If SmartWorld = 160 or 161 then
begin
Result:= True;
Writeln('Using a Quick Chat World!');
end else
begin
Result:= False;
Writeln('Using a Normal Chat World');
end;
end;
Procedure GetFirstLevel;
var
TheResults : Integer;
begin
If Not LoggedIn then Exit;
TheResults:= 30 - FirstLevel;
FirstLevel := GetSkillInfo('woodcutting', false);
If FirstLevel < 30 then
begin
Writeln('Your woodcutting level is ' + IntToStr(TheResults) + ' levels to short');
NextPlayer(False);
Players[CurrentPlayer].Integers[0] := Players[CurrentPlayer].Integers[0] - Players[CurrentPlayer].Integers[0];
Exit;
end else
begin
Writeln('You are all good to cut.');
CurLvl := FirstLevel;
end;
end;
Procedure Leveled;
var
CurrentLevel : Integer;
begin
If Not LoggedIn then Exit;
CurrentLevel := GetSkillInfo('woodcutting', false);
If CurLvl > CurrentLevel then
begin
Writeln('Gained a level');
GainedLevels := GainedLevels + 1;
case random(9) of
0 : TypeSend('yay level ' + IntToStr(CurrentLevel) + '!');
1 : TypeSend('geez took long enough to get to lvl ' + IntToStr(CurrentLevel));
2 : TypeSend('yay I lvled 2 ' + IntToStr(CurrentLevel));
end;
end;
end;
procedure Starter;
begin
ClearDebug;
writeln(' ______ _ __ __ _ __________ ');
writeln(' /_ __/ __(_)____/ /____ ____/ / __(_)___ / ____/ __ \ ');
writeln(' / / | | /| / / / ___/ __/ _ \/ __ / | / / / __ \/___ \/ / / / ');
writeln(' / / | |/ |/ / (__ ) /_/ __/ /_/ /| |/ / / /_/ /___/ / /_/ / ');
writeln('/_/ |__/|__/_/____/\__/\___/\__,_/ |___/_/ .___/_____/\____/ ');
writeln(' /_/ ');
Wait(1500);
writeln(' ____ __ __ ');
writeln(' / __ \_________ ____/ /_ _______/ /______ ');
writeln(' / /_/ / ___/ __ \/ __ / / / / ___/ __/ ___/ ');
writeln(' / ____/ / / /_/ / /_/ / /_/ / /__/ /_(__ ) ');
writeln('/_/ /_/ \____/\__,_/\__,_/\___/\__/____/ ');
Wait(1000 +random(3500));
end;
Procedure WhatsUrWCLevel;
begin
If Not LoggedIn then Exit;
begin
case Random(30) of
0: TypeSend('Whats ur woodcutting level');
1: TypeSend('wc lvl');
2: TypeSend('woodcut levels');
3: TypeSend('woodcut lvls');
4: TypeSend('wc level');
5: TypeSend('What is your woodcutting level');
6: TypeSend('wc levelz');
end;
end;
end;
Function GotAxe : Boolean;
begin
If Not LoggedIn then Exit;
FindNormalRandoms;
If DTMRotated(Axe, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Result := True;
Writeln('Have Axe');
end else
begin
Result := False;
NextPlayer(False);
Exit;
end;
end;
Procedure GetAxe;
begin
If Not LoggedIn then Exit;
FindNormalRandoms;
If ((Players[CurrentPlayer].Booleans[1]) = True) then
begin
If ((Players[CurrentPlayer].Integers[1]) > Withdrawed) then
begin
If (Players[CurrentPlayer].Loc = 'Bank') then
begin
OpenBankFast('db');
If DTMRotated(Axe, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Mouse(x, y, 4, 4, true);
Wait(500 +random(250));
If DTMRotated(Axe, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Withdrawed := Withdrawed + 1;
end;
end else
NextPlayer(False);
end;
If (Players[CurrentPlayer].Loc = 'Willows') then
begin
BankWalk;
OpenBankFast('db');;
If DTMRotated(Axe, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Mouse(x, y, 4, 4, true);
Wait(500 +random(250));
If DTMRotated(Axe, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Withdrawed := Withdrawed + 1;
end else
begin
NextPlayer(False);
Exit;
end;
end else
begin
NextPlayer(False);
Exit;
end;
end else
Writeln('No more axes');
end;
WillowsWalk;
end;
end;
Function FindAxeFast: Boolean;
begin
If Not LoggedIn then Exit;
If (LowerCase(Players[CurrentPlayer].Strings[0]) = 'true') then
begin
GameTab(5);
Wait(15 +random(50));
If DTMRotated(Axe, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Result := True;
end else
Result := False;
end;
If (LowerCase(Players[CurrentPlayer].Strings[0]) = 'false') then
begin
GameTab(4);
If Not DTMRotated(Axe, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Result := False;
NextPlayer(False);
end else
Result := True;
end;
end;
{Function Chat: Boolean;
var
PlayerName, PlayerName1 : String;
begin
PlayerName := Players[CurrentPlayer].Name;
PlayerName1 := Players[0].Name;
If Not LoggedIn then Exit;
GameTab(10);
If FindBitmap(JChat, x, y) then
begin
Mouse(x, y, 5, 5, true);
Wait(500 +random(1250));
case random(5) of
0 : TypeSend('runescape');
1 : TypeSend(PlayerName);
2 : TypeSend('zezima');
3 : TypeSend(PlayerName1);
4 : TypeSend(YourChat);
end;
GameTab(4);
end;
}
Function AxeExist: Boolean;
begin
If Not LoggedIn then Exit;
FindNormalRandoms;
If (LowerCase(Players[CurrentPlayer].Strings[0]) = 'true') then
begin
GameTab(5);
If Not DTMRotated(Axe, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Status('Broke Axe');
AxeBroke := AxeBroke +1;
GetAxe;
If GotAxe then
begin
Result := True;
end else
NextPlayer(False);
end;
end;
If DTMRotated(Axe, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('NOT Broken');
GameTab(4);
Result := True;
end;
If (LowerCase(Players[CurrentPlayer].Strings[0]) = 'false') then
begin
GameTab(4);
If DTMRotated(Axe, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Found Axe');
Result := True;
end else
GetAxe;
If GotAxe then
begin
Result := True;
end else
Result := False;
end;
end;
Procedure PressEnter(Times : Integer);
var
Enter : Integer;
begin
If Not LoggedIn then Exit;
If Times > 0 then
begin
repeat
KeyDown(VK_RETURN);
Wait(250 +random(500));
KeyUp(VK_RETURN);
Enter := Enter + 1;
until Times = Enter;
end else
Writeln('ERROR: ' + IntToStr(Times) + ' cannot be done.');
end;
procedure AntiBan;
begin
if Not LoggedIn then
Exit;
FindNormalRandoms;
case Random(35) of
0: RandomMovement;
1: HoverSkill('Woodcutting', False);
2,3: RandomRClick;
4: PickUpMouse;
5: WhatsUrWCLevel;
6: AlmostLogout;
7: PressEnter(2);
//8: Chat;
end;
end;
{Procedure QuickChatRes(Fast : Boolean);
begin
If Not LoggedIn then Exit;
If Fast = True then
begin
keydown(vk_return);
case random(5) of
0: begin
TypeSend('x');
Wait(500 +random(250));
TypeSend('1');
end;
1: begin
TypeSend('x');
Wait(500 +random(250));
TypeSend('2');
end;
end;
end else
If Fast = False then
begin
//More el1t3 quickchat goes here...
end;
end;
Procedure Responder;
var
NickName : String;
ChattedBack, DontTalk : Integer;
begin
If GetWorld then
begin
NickName := Players[CurrentPlayer].Nick;
If Not LoggedIn then Exit;
If InChat(NickName) then
begin
case Random(10) of
0 : TypeSend('Can''t talk, eating');
1 : TypeSend('lol, no talking');
2 : TypeSend('Do you need something?');
3 : TypeSend('Yes?');
4 : TypeSend('wat?');
5 : TypeSend('sup');
6 : TypeSend('do u want something');
7 : TypeSend('Yo');
8 : TypeSend('sup dawg');
9 : TypeSend('?');
10 : TypeSend('talking on fone, cant talk');
end;
ChattedBack:= ChattedBack + 1;
DontTalk:= DontTalk + 1;
end;
If DontTalk > 1 then
begin
If InChat(NickName) then
begin
case Random(5) of
0 : TypeSend('Don''t talk to me');
1 : TypeSend('on phone can''t talk dude');
2 : TypeSend('...');
end;
end;
DontTalk := DontTalk - DontTalk;
end;
If (Players[CurrentPlayer].Strings[1] = 'true') then
begin
case Random(6) of
0 : TypeSend('banking is time consuming');
1 : TypeSend('Lol already gained ' + IntToStr(GainedLevels) + ' levels');
2 : TypeSend('i gotta go in a lil bit pplz');
3 : TypeSend('...');
4 : TypeSend(' ');
5 : TypeSend('lol');
end;
Responded := Responded + 1;
end;
Exit;
end;
end else
QuickChatRes(True);
end;
}
function MakeCompass2(Direction: string): Boolean;
var
StartAngle, Angle, DirectionDeg, i: Extended;
Left: Boolean;
Mark: Integer;
begin
Result := False;
StartAngle := (rs_GetCompassAngleDegrees);
if (StartAngle < 0) or (not LoggedIn) then Exit;
try
DirectionDeg := FixD(StrToFloat(Direction));
except
case LowerCase(Direction) of
'w': DirectionDeg := 45 +random(55);
's': DirectionDeg := 135 +random(55);
'e': DirectionDeg := 225 +random(55);
'n': DirectionDeg := 315 +random(55);
end;
end;
if (MinE(Abs(StartAngle - DirectionDeg), MinE(Abs(StartAngle - (DirectionDeg + 360)), Abs((StartAngle + 360) - DirectionDeg)))) <= 8.0 then
begin
Result := True;
Exit;
end;
Left := (Round((360 - StartAngle) + DirectionDeg) mod 360 > Round((StartAngle + 360) - DirectionDeg) mod 360);
if Left then
KeyDown(VK_LEFT)
else
KeyDown(VK_RIGHT);
Wait(10);
MarkTime(Mark);
repeat
Wait(1);
Angle:= rs_GetCompassAngleDegrees;
if ((TimeFromMark(Mark) > 6000) and (i < 1.0)) or
((TimeFromMark(Mark) > 10000) and (i < 2.0)) or
((TimeFromMark(Mark) > 14000) and (i < 3.0)) then
begin
i := i + 1.0;
end;
until ((MinE(Abs(Angle - DirectionDeg), MinE(Abs(Angle - (DirectionDeg + 360)), Abs((Angle + 360) - DirectionDeg)))) <= (7.0 + i))
or (TimeFromMark(Mark) > 14000)
or (Angle < 0);
if Left then
KeyUp(VK_Left)
else
KeyUp(VK_Right);
Wait(10);
Result := ((MinE(Abs(Angle - DirectionDeg), MinE(Abs(Angle - (DirectionDeg + 360)), Abs((Angle + 360) - DirectionDeg)))) <= (7.0 + i));
end;
{
Procedure ResponderTimed;
begin
Case Random(35) of
0 : TypeSend('wow i''ve gotten ' + IntToStr(TotalWillows) + ' willows already');
1 : TypeSend('meh wants t3h 1337 rune arm0r =)');
2 : TypeSend('GeePees pl0x');
3 : TypeSend('lol');
4 : TypeSend('boring...');
5 : TypeSend('errr');
6 : TypeSend('Poo');
7 : begin
If (Players[CurrentPlayer].Strings[1] = 'true') then
begin
case Random(5) of
0 : TypeSend('lol drop drop drop');
1 : TypeSend('hmm drops are very tastefull');
2 : TypeSend('mes gos tos thes bank onlys fors t3h axes');
3 : TypeSend('I drop just for fun');
4 : TypeSend('Wow, almost no one comes here, and thats why boring');
end;
Responded := Responded + 1;
end;
end;
end;
end;
}
Procedure RandomRotate;
begin
case random(60) of
0: begin
MakeCompass('N');
end;
1: begin
MakeCompass('S');
end;
2: begin
MakeCompass('E');
end;
3: begin
MakeCompass('W');
end;
4,5,6: begin
SetAngle(True);
end;
7: begin
SetAngle(False);
end;
8: begin
MakeCompass2('n');
end;
9: begin
MakeCompass2('e');
end;
10: begin
MakeCompass2('s');
end;
11: begin
MakeCompass2('w');
end;
end;
end;
procedure EntFinder;
var
EX, EY: integer;
FX, FY: integer;
SafeEntWait: LongInt;
begin
if Not LoggedIn then Exit;
begin
Status('Checking For Ent')
if (FindObjCustom(EX, EY, ['Willow'], [4690821], 5)) then
begin
MMouse(EX, EY, 0, 0)
if FindColorTolerance(FX, FY, 55769, 85, 15, 115, 15, 20) then
begin
Writeln('Ent Found');
MakeCompass('N');
Mouse(620, 91, 4, 4, true);
MarkTime(SafeEntWait);
repeat
FTWait(4);
FindNormalRandoms;
if Not LoggedIn then
NextPlayer(False);
until TimeFromMark(SafeEntWait) > 29000 + Random(10000);
EntsAvoided := EntsAvoided +1;
ReportVars[1]:= ReportVars[1] +1;
end;
end;
end;
end;
procedure FindAndChop;
var
CuttingTime : integer;
begin
MarkTime(CuttingTime);
repeat
if (not(LoggedIn)) then Exit;
RandomRotate;
if FindColorTolerance(x, y, 1593157, MSX1, MSY1, MSX2, MSY2, 15) then
begin
MMouse(x, y, 4, 4);
EntFinder;
FindEnt(x, y, True);
if (IsUpText('illow')) then
begin
GetMousePos(x, y);
Mouse(x, y, 2, 2, true);
Wait(4000 +Random(3000));
FindNormalRandoms;
// Responder;
case Random(45) of
0 : If Not FindAxeFast then Exit;
1 : FindNormalRandoms;
end;
end;
end;
until (InvFull) or (TimeFromMark(CuttingTime) > 600000+random(60000));
TotalWillows := TotalWillows +27;
ReportVars[0]:= ReportVars[0] +27;
Writeln('Chopped a full load of willows');
end;
procedure WillowsWalk;
var
TreeSpot : Integer;
begin
TreeSpot := SetDDTM;
if Not LoggedIn then Exit;
Makecompass('N');
SetAngle(True);
If GetMMLevels('run', lol) >= 30 then
begin
SetRun(True);
Run := True;
end else
Run := False;
FindNormalRandoms;
RoadColor := FindRoadColor;
If RadialRoadWalk(RoadColor, 287, 290, 50, 2, 2) then
FindNormalRandoms;
FFlag(3);
If RadialRoadWalk(RoadColor, 231, 260, 37, 2, 2) then
FindNormalRandoms;
Wait(500 +random(250));
if (DTMRotated(TreeSpot, x, y, MMX1, MMY1, MMX2, MMY2)) then
begin
Mouse(x, y, 4, 4, true);
end else
Mouse(576, 51, 5, 5, true);
Wait2(8500, true);
FFlag(5);
FindNormalRandoms;
If Run = True then
SetRun(False);
Players[CurrentPlayer].Loc := 'Willows';
end;
Procedure SetupSmart;
begin
SmartSetupEx(SmartWorld, false, Signed);
ClearDebug;
Writeln('Setting up S.M.A.R.T!');
Wait(12500 +random(2500));
SetTargetDC(SmartGetDC);
While Not(SmartReady) do Wait(100);
end;
procedure BankWalk;
var
TreeSpot, sx, sy, BankSpot, tree : Integer;
begin
BankSpot := SetBankSpot;
TreeSpot := SetBankTrees;
if Not LoggedIn then Exit;
MakeCompass('N');
FindNormalRandoms;
If GetMMLevels('run', lol) >= 30 then
begin
SetRun(True);
Run := True;
end else
Run := False;
GameTab(4);
Wait(500 +random(150));
RoadColor := FindRoadColor;
Writeln('Heading to bank');
If (DTMRotated(TreeSpot, x, y, MMX1, MMY1, MMX2, MMY2)) then
begin
Mouse(x, y, 5, 5, true);
writeln('found IT');
Wait(10500 +random(2500));
FindNormalRandoms;
FFlag(2);
FTWait(2);
Flag;
If Run = True then
SetRun(False);
if RadialRoadWalk(RoadColor, 112, 120, 35, 2, 2) then
FindNormalRandoms;
FFlag(5);
Wait(500 +random(250));
FindNormalRandoms;
If DTMRotated(BankSpot, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 3, 3, true);
FFlag(1);
FindNormalRandoms;
Wait(500 +random(250));
Players[CurrentPlayer].Loc := 'Bank';
end else
begin
MakeCompass('N');
FindNormalRandoms;
If FindSymbol(sx, sy, 'bank') then
mouse(x, y, 5, 5, true) else
NextPlayer(False);
logout;
end;
end else
begin
begin
repeat
Mouse(606, 82, 5, 5, true);
C := C + 1;
until C > 2;
If DTMRotated(TreeSpot, x, y, MMX1, MMY1, MMX2, MMY2) then
Mouse(x, y, 5, 5, true) else
begin
MakeCompass('N');
FindNormalRandoms;
Mouse(670, 91, 4, 4, true);
Writeln('Did other way');
end;
end;
end;
procedure DepositAll2;
begin
if (BankScreen) then
Deposit(2, 28, true);
end;
procedure tDeposit;
begin
if (BankScreen) then
Deposit(1, 28, true);
end;
function BankIt: Boolean;
var
I : Integer;
begin
if (InvFull) then
begin
OpenBankFast('db');
wait(500 + random(500));
FixBank;
If (LowerCase(Players[CurrentPlayer].Strings[0]) = 'true') then
begin
tDeposit;
ReportVars[3] := ReportVars[3] + 27;
end;
If (LowerCase(Players[CurrentPlayer].Strings[0]) = 'false') then
begin
DepositAll2;
ReportVars[3] := ReportVars[3] + 28;
end;
for I:= 2 to 28 do
begin
if ExistsItem(I) then MouseItem(I, true);
end;
CloseBank;
MakeCompass('N');
Banked := Banked +1;
end;
end;
procedure Proggie;
begin
Writeln('=======================================') ;
Writeln(' PS Willower ');
Writeln(' Version: '+Version);
Writeln('BY: Twistedvip50');
Writeln('=======================================') ;
Wait(500);
Writeln('Worked For : '+ (TimeRunning));
If(TotalWillows > 0)then
Writeln('Chopped: ' + IntToStr(TotalWillows) + ' Logs');
If(Banked > 0)then
Writeln('Bank Trips: ' + IntToStr(Banked) + ' Trips Made');
If(EntsAvoided > 0) then
Writeln('Advoided: ' + IntToStr(EntsAvoided) + ' Number Of Ents');
If(GainedLevels > 0) then
Writeln('Gained: ' + IntToStr(GainedLevels) + ' Levels');
If(AxeBroke > 0) then
Writeln('Broke ' + IntToStr(AxeBroke) + ' Axes.');
If(Dropped > 0) then
Writeln('Dropped ' + IntToStr(Dropped) + ' Loads.');
Writeln('=======================================');
end;
Procedure DropLogs;
var
i : Integer;
DropArr : Array of Integer;
begin
If Not LoggedIn then Exit;
FindNormalRandoms;
Writeln('Now dropping...');
If (LowerCase(Players[CurrentPlayer].Strings[0]) = 'false') then
begin
DropArr:= [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28];
for i := 0 to 26 do
DropItem(DropArr[i]);
Dropped := Dropped + 1;
ReportVars[2] := ReportVars[2] + 27;
end;
If (LowerCase(Players[CurrentPlayer].Strings[0]) = 'true') then
begin
DropAll;
Wait(500 +random(100));
FindNormalRandoms;
Dropped := Dropped + 1;
ReportVars[2] := ReportVars[2] + 28;
end;
end;
begin
CheckVersion;
SetUpSRL;
SetupSmart;
SetupWoodcutting;
ScriptID := '316';
SRLId := YourSRLID;
SRLPassword := YourSRLPassword;
Starter;
Wait(2500 +random(500));
ActivateClient;
DeclarePlayers;
LoadStuff;
If LoggedIn then Logout;
repeat
Wait(500 +random(750));
If (LowerCase(Players[CurrentPlayer].Strings[1]) = 'true') then
begin
Wait(100 +random(250));
LoggingIn;
Wait(750 +random(550));
SetAngle(True);
MakeCompass('N');
// MarkTime(Responded);
Chats;
MouseSpeed := MSpeed;
GetFirstLevel;
WillowsWalk;
repeat
if AxeExist then
begin
Wait(500 +random(250));
If Not LoggedIn then Break;
// If TimeFromMark(Responded) > (TimeToRespond * 60000) then
// ResponderTimed;
// Responder;
repeat
Leveled;
FindAndChop;
until (InvFull);
AntiBan;
FindNormalRandoms;
Wait(500 +random(750));
DropLogs;
FindNormalRandoms;
SRLRandomsReport;
Proggie;
end;
until Players[CurrentPlayer].Integers[0] = Dropped;
Withdrawed := Withdrawed - Withdrawed;
end;
If (Players[CurrentPlayer].Strings[1]) = 'false' then
begin
Wait(250 +random(250));
LoggingIn;
SetAngle(True);
MakeCompass('N');
Chats;
if AxeExist then
MouseSpeed := MSpeed;
repeat
If Not LoggedIn then Break;
GetFirstLevel;
WillowsWalk;
// Responder;
repeat
Leveled;
FindAndChop;
until (InvFull);
AntiBan;
FindNormalRandoms;
BankWalk;
BankIt;
Wait(500 +random(200));
FindNormalRandoms;
SRLRandomsReport;
Proggie;
until Players[CurrentPlayer].Integers[0] = Banked;
Withdrawed := Withdrawed - Withdrawed;
end;
NextPlayer(Players[CurrentPlayer].Active);
until False;
end.——————————————————
<!– END TEMPLATE: formanswers –>