SRL Archive - Archive

twistedvip50 - SRL Member Application Form


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

{==================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 –>

Scaper

2008-06-30 23:43:02

at the top of ya script ya say this is ya 1st script. But in ya app ya say this is ya 3rd application?


holding vote!!

edit: whats this meen lol

What is the meaning to life?
42.

Twisted

2008-06-30 23:45:29

it's still my first script though…

EDIT: In Hitchhikers guide to the galaxy the machine thing said "The meaning of like is: 42."

Just wanted to put that there since the question was asked in app.

FreakyMonkey

2008-06-30 23:58:13

Lol Scaper, I think you should wait a little before voting, you should read the sticky at the apps page. I made the same mistake when I started. Anyway…

It's a very need script, although I don't understand why you needed to make a "MakeCompass2". What didn't you like about SRL's?

Anyway, very good knowledge of DDTMs and Map Walking in general. Excellently standarded (sexy,sexy).

I'm kind of disappointed that you didn't use any TPAs, but it still looks like it works fine.

I'm going to hold my vote.

@Scaper: This means that you are going to wait to see other peoples' opinions b4 voting. (if this is what you were asking for).

richk1693

2008-06-30 23:58:27

Don't diss the 42. That's what I put in my app.

Scaper

2008-07-01 00:01:32

From: freakymonkey
Lol Scaper, I think you should wait a little before voting, you should read the sticky at the apps page. I made the same mistake when I started. Anyway…

It's a very need script, although I don't understand why you needed to make a "MakeCompass2". What didn't you like about SRL's?

Anyway, very good knowledge of DDTMs and Map Walking in general. Excellently standarded (sexy,sexy).

I'm kind of disappointed that you didn't use any TPAs, but it still looks like it works fine.

I'm going to hold my vote.

@Scaper: This means that you are going to wait to see other peoples' opinions b4 voting. (if this is what you were asking for).


yer jus gunna wait see other people's opinion iv got an opinion jus holding of for the time beign :D


edit @rich im not dissing i jus dont understand why put 42?? realy i cant grasp it? :p

Twisted

2008-07-01 00:05:51

Did you even look at the MoveCompass2?

I made it northeast, northwest, southeast, southwest.

With the randomness to make it go pretty much everywhere. And for the TPA's I looked at them, but didn't think I quiet needed them.

-twisted

Raskolnikov

2008-07-01 01:26:06

I'm leaning to a yes but it would've been nice to see some TPAs in there although the DDTM's, MakeCompass2, and Map walking look very sexy ;)

Good Luck!
I'm holding my vote for now

Cut em2 it

MasterKill

2008-07-01 02:07:29

yes from me.

try to use FindObjectTPA for the willow finding though!

Raskolnikov

2008-07-01 02:12:36

I vote yes!

Scaper

2008-07-01 02:15:01

im leaning towards a yes ill come back later today so tiered now 7:15am here in uk :s

Lee Lok Hin

2008-07-01 03:50:51

If Not DTMRotated(Axe, x, y, MIX1, MIY1, MIX2, MIY2) then

Finddtm is fine for Inventory

There is no point using DDTMs if you are not going to change any of the varialbes. I mean, if the color was findvarrockcoler; or something, fine. But all of your ddtms can be made into a dtm. Not saying you don't understand DDTMs or anything.

Makecompass('') accepts angles in degrees. '140' Is perfectly acceptable to it, so your movecompass2 might be redundant.

Great standards. Better than most I see around here :p

Findobjcustom. Urrgh. Findobjtpa > Findobjcustom.

Unless findnormalrandoms finds ents too, you only check for ents at the beggining of the chop. Not really good.

  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]);

Eh?

for i:=2 to 28 do
dropitem(i);

  If CurLvl > CurrentLevel then
begin
Writeln('Gained a level');

What about if he gained two?


Your Multiplayer is going to be a bit funky, considering you nextplayer(?); everywhere in your procedures.

I'm just oging to hold my vote and see what other's do. Good luck with it though.

PvH

2008-07-01 04:04:31


  If CurLvl > CurrentLevel then
begin
Writeln('Gained a level');

What about if he gained two?

You get with a full inv 1890 exp of 28 willows.
And for a lvlup at lvl 30 you need 1.470 to lvlup.
This means, you can NEVER levelup twice..
Ohh wait.. You can if you start with a few exp before you lvl and than again.. Hmm
Maybe have something like CurLvl - CurrentLevel = levelgain
If levelgain > 1 then
writeln('We gained' +inttostr(levelgain)' levels!');?

A yes from me,
You got really good scripting skills.
I like your ddtms and things:)
I hope you get in:D

PvH

EvilChicken!

2008-07-01 05:22:08

I vote yes, on the only condition that you learn TPAs.
.:The Almighty TPA Tutorial:.
TPA's explained.


Last link is better IMO.

ZephyrsFury

2008-07-01 06:53:05

Wait you call NextPlayer in your procedures as well as at the end of your main loop - doesn't that mean it will switch twice?

BobboHobbo

2008-07-01 07:39:45

Looks ok, yes from me.

Twisted

2008-07-01 09:58:29

I guess I better start learning TPA's then XD

@Lee, Axe is a dtm…

It checks it everytime, while its chopping, and before it starts to chop. Never when we are walking… So its more handy like that (less stuff to find = less lag imo)

For my makecompass2() it moves everywhere in the map, not just at a certain coord. So it's a billion times more effective on antiban then just makecompass.

For my drop procedure, it drops 2-28, not 1-28 because if you have an axe in your inventory then it would drop it. And its shorter then writing DropItem(1) DropItem(2) DropItem(3)…

I doubt seriously that you would get 2 levels in a load, but if it's important I could make it like pvh said.

And for my multiplayer(Player Switching), yeah, it's very sloppy imo. I need to look over it and make some changes :)

Yeah, like everyone else said I need to add TPA's.

Thanks for all of your opinions.

Negaal

2008-07-01 12:08:40

Doh. Yes.

n3ss3s

2008-07-01 13:56:25


try to use FindObjectTPA for the willow finding though!


Good luck with that, finding willows on a grass floor…

You need to either use CTS 3 with 5 tolerance (Note: FindObjTPA does not support it in Rev #16 / #17 beta), or lower the Hue and Saturation mods a bit, look at my willow finder from my power willower -


Function FindWillows: Array of TPointArray;

Var
TPA: TPointArray;
CTS: Integer;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.15, 0.15);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4953479, MSX1, MSY1, MSX2, MSY2, 10);
SetColorSpeed2Modifiers(0.2, 0.2);
ColorToleranceSpeed(CTS);
Result := SplitTPA(TPA, 4);
End;



It's pretty accurate, atleast when you use a length check (I do > 15).

Lee Lok Hin

2008-07-01 21:52:03

@Lee, Axe is a dtm…


So? Why not use Finddtm for a dtm but dtmrotated when finddtm works perfectly and with less lag?

For my drop procedure, it drops 2-28, not 1-28 because if you have an axe in your inventory then it would drop it. And its shorter then writing DropItem(1) DropItem(2) DropItem(3)…


for i:=2 to 28 do {for i:=3 to 28? 4 to 28, 500 downto 28?}
dropitem(i);


Still, it's going to be a yes. Naw learn some TPAs

Twisted

2008-07-01 22:06:36

lol whatever, I'll change it, and start to learn TPA's…

Jackrawl

2008-07-01 22:58:17

From: scaper123
yer jus gunna wait see other people's opinion iv got an opinion jus holding of for the time beign :D


edit @rich im not dissing i jus dont understand why put 42?? realy i cant grasp it? :p


Scaper, almost everyone that puts in 42 has both a life and brain.

Yes, although I don't like your randoms. What you should've done for the compass was to hold down "VK_Left" or "VK_Right" for a random amount of time.

Also, only use DTMRotated for the minimap.

Twisted

2008-07-01 23:10:54

yeah, lol. I'll remember that. And I like the compass because I think it's a lot better..

Jackrawl

2008-07-02 00:10:02

From: twistedvip50
yeah, lol. I'll remember that. And I like the compass because I think it's a lot better..


Problem with the compass is that no one is that accurate, and it's a lot faster to say hold, wait, and release.

Twisted

2008-07-02 02:19:35

exactly, that's why I did +random(55) so that it'll be like 143, 98, 134, 234, etc. So that it won't be perfect at all, and most like a human XD.

Scaper

2008-07-02 05:23:39

From: Jackrawl
Scaper, almost everyone that puts in 42 has both a life and brain.

Yes, although I don't like your randoms. What you should've done for the compass was to hold down "VK_Left" or "VK_Right" for a random amount of time.

Also, only use DTMRotated for the minimap.


umm i must of lost my life a brain some were must find them :p i still dont understand why put 42 realy iv never heard of it b4

[ontopic]ill vote YES! if you promise to continue scripting when u get in and not to jus leech the members scripts etc?[/ontopic]

Twisted

2008-07-02 10:14:40

already scripting a clay miner and a mind crafter :D

ZephyrsFury

2008-07-02 10:26:28

From: scaper123
[ontopic]ill vote YES! if you promise to continue scripting when u get in and not to jus leech the members scripts etc?[/ontopic]


Lol umm everyone in their right mind would say yes to that. You should only vote yes if you they they deserve members (ie their scripting ability is up to the right level and their attitude towards other members and general behavior is good).

Scaper

2008-07-02 10:48:42

From: ZephyrsFury
Lol umm everyone in their right mind would say yes to that. You should only vote yes if you they they deserve members (ie their scripting ability is up to the right level and their attitude towards other members and general behavior is good).


i don't realy know about his attitude etc but he seems ok!! i know they will just say yes to that to get the yes and get in etc but you know lol it's worth a try :D his scripting is qiuet good etc!!! yer i see your point zeph but i have got it coverd ;)


i voted YES!!!

skilld u

2008-07-02 10:48:56

yes.

Twisted

2008-07-02 10:58:20

Thanks scaper, I worked quiet a bit on that script :)

Scaper

2008-07-03 12:41:16

From: twistedvip50
Thanks scaper, I worked quiet a bit on that script :)


yer i can see i jus wanted to see what other peoples views were etc coz im fairly new SRL mem too you see :D

looking good looks like you'll be getting in gratz man ;)

Twisted

2008-07-03 16:57:40

Thanks, I hope I do get it :D Be lots of fun being a member :)

And thanks everyone for the reviews :P

nielsie95

2008-07-05 11:17:41

Welcome, sir! :)