SRL Archive - Archive

TsterT - SRL Member Application


TsterT

2012-02-28 04:22:17

How Long have You Played Runescape?
1 Year(s)


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
Java, VB,


Are you a member of any other communities?
Powerbot, EpicBot, couple others that I don't remember


Tell us about yourself…
From: TsterT
I've taken an interest on programming at a young age. Around 9 or 10 I believe. I started playing around with Visual Basics then, mainly because it was so easy to pick up on the basics. At 11 or 12, I picked up on Java. My brother was getting his degree in Computer Science at the time, and he was learning Java. He showed me some of his work, and I was making my own Java programs before I knew it. At the moment, I am creating apps for the Android Market and loving it. I heard of Simba through a friend, although I don't know his username, like most others after the Bot Nuke. I'm one who if given the opportunity to code, will take it. Simba was perfect for me. I could create my own scripts for a game I enjoy playing. I am currently 15. I browse these forums on a regular bases, reading the Scripting Tutorials when there are no other interesting threads going on. Although enjoying Runescape, and creating scripts for Simba, I also enjoy playing League of Legends, obviously while I'm botting. On top of that, I am pretty outgoing I'd say. I play soccer, and have been since I was 5 or so. Soccer, programming, and gaming are really my 3 main interests. It's getting a bit long now, I think I'll stop :P



Please show us one (or multiple) of your scripts.
Not the best script, but it shows a lot of what I know how to do, and everything a previous mod told me to work on.
program new;
{$DEFINE SMART}
{$DEFINE CRASHSMART}
{$i srl/srl.simba}
{$i srl/srl/skill/fighting.simba}
{$i srl/srl/misc/paintsmart.simba}

Const
Version = '0.2 ';
scriptName = 'Fire Giant Safe Spotter ';

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

with Players[0] do
begin
Name :=''; // Username
Pass :=''; // Password
Active := True;
Booleans[0] := True; //Use Ranging potions
Booleans[1] := False; //Pick items
Arrays[0] := ['une arrow', 'ragon stone', 'lood rune', 'ire rune', 'yew', 'rune scim', 'rune']; //upText to pick
end;
end;

Var
giantKilled, xpEnd, xpStart, boneColor, RangeTime, T: Integer;
BoundaryX, BoundaryY: Array [0..3] of Integer;
HPBar: Array [0..2] of Integer;
HPBarX, HPBarY: Array [0..3] of Integer;
giantColor: Array [0..5] of Integer;
BCX, BCY: Integer;
PlayerLoc: String;
ItemsUptext: TStringArray;
UsePotion, PickItems: Boolean;

procedure PrintOnSmart(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb : Integer;
TTP: TPointArray;
Canvas : TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1,8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;

Procedure PaintIt;
begin
xpEnd := (GetXPBarTotal - xpStart);
PrintOnSmart([scriptName + Version + ' by TsterT',
'Fire Giants Killed: ' + IntToStr(giantKilled),
'Fire Giants/Hour: ' + FloatToStr(Round(giantKilled * 3600) / (GetTimeRunning / 1000)),
'Experience Gained: ' + IntToStr(xpEnd),
'Experience/Hour: ' + FloatToStr(Round(xpEnd * 3600) / (GetTimeRunning / 1000))],Point(30,30),clWhite);
end;

procedure AntiBan;
begin
case Random(300) of
1: ExamineInv;
2: HoverSkill('random', false);
3: HoverSkill('ranged', false);
4: PickUpMouse;
end;
end;

function proggy(Reason: String): Boolean;
begin
xpEnd := (GetXPBarTotal - xpStart);
Writeln('[-------------------------------------------------]');
Writeln('[ ' + PadR(ScriptName + Version + ' By TsterT', 50) + ']');
Writeln('[ ' + PadR('Fire Giants killed: ' + IntToStr(giantKilled), 50) + ']');
Writeln('[ ' + PadR('Fire Giants/Hour: ' + FloatToStr(Round(giantKilled * 3600) / (GetTimeRunning / 1000)), 50) + ']');
Writeln('[ ' + PadR('XP Gained: ' + IntToStr(xpEnd), 50) + ' ]');
Writeln('[ ' + PadR('XP Gained/Hour: ' + FloatToStr(Round(xpEnd * 3600) / (GetTimeRunning / 1000)), 50) + ']');
if not(Reason = '') then
begin
Writeln('[ ' + PadR('Reason Stopped: ' + Reason, 50) + ']');
end;
Writeln('[ ' + PadR('Time Ran: ' + TimeRunning, 50) + ']');
Writeln('[-------------------------------------------------]');
if not(Reason = '') then
TerminateScript;
end;

procedure DeclareVars;
Var
i: Integer;
begin
UsePotion := players[CurrentPlayer].Booleans[0];
PickItems := players[CurrentPlayer].Booleans[1];

SetLength(ItemsUptext, Length(players[CurrentPlayer].Arrays[0]));

for i := 0 to High(ItemsUptext) do
ItemsUptext[i] := players[CurrentPlayer].Arrays[0][i];

if UsePotion then
Writeln(Capitalize(players[CurrentPlayer].Name) + ' is using Ranging Potions');
if PickItems then
Writeln('Uptext to pick: ' + ToStr(ItemsUptext));

giantColor[0] := 4550044;
giantColor[1] := 2042182;
giantColor[2] := 3822979;
giantColor[3] := 3495031;
giantColor[4] := 7786464;
giantColor[5] := 2836364;

BoneColor := 14869485;

HPBar[0] := 132923;
HPBar[1] := 51867;
HPBar[2] := 524465;

HPBarX[0] := 116;
HPBarY[0] := 132;
HPBarX[1] := 164;
HPBarY[1] := 132;
HPBarX[2] := 73;
HPBarY[2] := 134;
HPBarX[3] := 121;
HPBarY[3] := 136;

BoundaryX[0] := 12;
BoundaryY[0] := 129;
BoundaryX[1] := 160;
BoundaryY[1] := 312;

BoundaryX[2] := 171;
BoundaryY[2] := 232;
BoundaryX[3] := 21;
BoundaryY[3] := 312;

BCX := 101;
BCY := 232;
end;

function isInFight: Boolean;
Var
i: Integer;
HpPosX, HpPosY: Integer;
begin
for i := 0 to High(HPBar) do
begin
if FindColorSpiralTolerance(HpPosX, HpPosY, HPBar[i], BoundaryX[0], BoundaryY[0], BoundaryX[1], BoundaryY[1], 3) or FindColorSpiralTolerance(HpPosX, HpPosY, HPBar[i], BoundaryX[0], BoundaryY[0], BoundaryX[1], BoundaryY[1], 3) or OthersInFight then
begin
Result := True;
end else
Result := False;
end;

if FindBlackChatMessage('no ammo') then
proggy('Out of arrows!');

if InFight then
//proggy('We were attacked!');

if not(Result) then
Status('In Fight!');
end;

procedure MakeDots;
Var
TPA: TPointArray;
begin
TPA := [Point(BoundaryX[0], BoundaryY[0]), Point(BoundaryX[1], BoundaryY[1]), Point(BoundaryX[2], BoundaryY[2]), Point(BoundaryX[3], BoundaryY[3])];
SMART_DrawDotsEx(True, TPA, clRed);
end;

procedure BackToSpot;
begin
Mouse(584, 74, 0, 0, mouse_left);
Wait(4000);
Mouse(648, 91, 0, 0, mouse_left);
Wait(4000);
PlayerLoc := 'FindMob';
end;

procedure RangePots;
Var
i: Integer;
begin
MarkTime(RangeTime);
Status('Using Ranging Potion');
for i := 1 to 28 do
begin
if ExistsItem(i) then
begin
MouseItem(i, mouse_move);
if WaitUptext('anging', 300) then
begin
MouseItem(i, mouse_left);
PlayerLoc := 'FindMob';
Break;
end;
if i = 28 then
begin
Writeln('Out of Ranging Potions!');
UsePotion := False;
PlayerLoc := 'FindMob';
end;
end;
end;
end;

procedure PickupItems;
Var
x, y, i, ii: Integer;
TPA: TPointArray;
ATPA: T2DPointArray;
begin
if not(isInFight) then
begin
MarkTime(T);

FindColorsSpiralTolerance(BCX, BCY, TPA, BoneColor, BoundaryX[0], BoundaryY[0], BoundaryX[1], BoundaryY[1], 3);
ATPA := TPAToATPAEx(TPA, 15, 15);

if (Length(ATPA) <= 0) then
PlayerLoc := 'FindMob';

for i := 0 to High(ATPA) do
begin
MiddleTPAEx(TPA, x, y);
MMouse(x, y, 2, 2);
Wait(RandomRange(300,400));
if WaitUpText('ake', 300) then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, mouse_right);
if OptionsExist([ItemsUptext], True) then
begin
for ii := 0 to High(ItemsUptext) do
begin
if OptionsExist([ItemsUptext[i]], True) then
ChooseOption(ItemsUptext[i]);
if ii = High(ItemsUptext) then
PlayerLoc := 'BackToSpot';
end;
end;
end;
end;

if (TimeFromMark(T) > 15000) then
PlayerLoc := 'FindMob';
end;
end;

procedure StillInFight;
begin
Wait(RandomRange(10000,15000));
MarkTime(T);

repeat
isInFight;
until(TimeFromMark(T) > 60000) or (not(isInFight));

if (TimeFromMark(T) > 60000) then
begin
Writeln('Taking to long, finding another Fire Giant');
PlayerLoc := 'FindMob';
end;

if (not(isInFight)) then
PlayerLoc := 'PickUpItems';
end;

function FindMob: Boolean;
Var
x, y, i, NPC: Integer;
TP: TPoint;
NPCs, TPA: TPointArray;
ATPA: T2DPointArray;
BoxArr: TBoxArray;
begin
Result := False;
Status('Searching for Fire Giant');
MakeCompass('N');
SetAngle(SRL_ANGLE_HIGH);
MarkTime(T);
NPCs := GetMMDotsOnMS('npc');
NPC := Length(NPCs);

SetLength(BoxArr, NPC);

for i := 0 to NPC-1 do
begin
TP := MMtoMS(NPCs[i]);
BoxArr[i] := IntToBox(Max(TP.x-40, MSX1), Max(TP.y-40, MSY1), Min(TP.x+40, MSX2), Min(TP.y+40, MSY2));
end;

repeat
for i := 0 to High(giantColor) do
begin
Writeln('Trying color number: ' + IntToStr(i));
Writeln('Trying color: ' + IntToStr(giantColor[i]));
FindColorsSpiralTolerance(BCX, BCY, TPA, giantColor[i], BoundaryX[0], BoundaryY[0], BoundaryX[1], BoundaryY[1], 5);
if (Length(TPA) > 0) then
begin
Writeln('Found Fire Giant');
PaintIt;
Proggy('');
Result := True;
Break;
end;
Wait(RandomRange(300,400));
end;
until(Result);

ATPA := TPAtoATPAEx(TPA, 15, 15);

for i := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 3, 3);
if WaitUpTextMulti(['alk', 'ere', '2 more', 'ptions'], 400) then
begin
//SMART_DrawBoxEx(False, BoxArr[i], clBlue);
GetMousePos(x, y);
Mouse(x, y, 0, 0, mouse_right);
Wait(RandomRange(300,400));
if OptionsExist(['tack', 'ire', 'iant', '86', 'evel: 86'], True) then
begin
Writeln('Attacking Fire Giant');
ChooseOption('tack');
Inc(giantKilled);
if PickItems then
StillInFight;
Break;
end;
end;
end;

if (TimeFromMark(T) > 180000) then
proggy('Failed to find Giant after 3 minutes');
end;

procedure NextStep;
begin
Status(PlayerLoc);

if not(isInFight) then
begin
case PlayerLoc of
'BackToSpot': BackToSpot;
'FindMob': FindMob;
'PickUpItems': PickupItems;
end;
end;
end;

begin
SMART_Server := 30;
SMART_Signed := True;
SMART_Members := True;
SetupSRL;
DeclarePlayers;
DeclareVars;
LogInPlayer;
MakeCompass('N');
SetAngle(SRL_ANGLE_HIGH);
MakeDots;
xpStart := GetXPBarTotal;
PlayerLoc := 'FindMob';
repeat
if (TimeFromMark(RangeTime) > 300000) and (UsePotion) and (not(isInFight)) then
RangePots;
if (RangeTime = 0) and (UsePotion) and (not(isInFight)) then
RangePots;
if FindNormalRandoms then
proggy('Random!');
NextStep;
until(false);
end.

Work with DTMs:

program new;
{$DEFINE SMART}
{$DEFINE CRASHSMART}
{$i srl/srl.simba}
{$i sps/sps.simba}
{$i srl/srl/misc/paintsmart.simba}

Const
Version = 'v0.1 ';
scriptName = 'Barbarian Basic ';

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

with Players[0] do
begin
Name :=''; // Username
Pass :=''; // Password
Active := True;
end;
end;

Var
ropeDTM, logDTM, netDTM, plankDTM, wall1DTM, wall2DTM: Integer;
laps, xpStart, xpEnd: Integer;
PlayerLoc: String;
PosStart, PosWall1: TPoint;
aFound: Extended;

procedure Antiban;
begin
case Random(999) of
1: HoverSkill('Agility', False);
2: ExamineInv;
3: Wait(RandomRange(3000,5000));
4: PickUpMouse;
end;
end;

procedure DeclareVars;
begin
PosStart := Point(2047, 2426);
PosWall1 := Point(1988, 2432);

ropeDTM := DTMFromString('mggAAAHicY2NgYMhlYWCIBuJgIC4H4logzgLi04wMDJeA+BQQnwTii1C+thovQ1W2C0NVURwEg9hAzA80CxtmxIEhAAChqQ4+');
logDTM := DTMFromString('mrAAAAHic42BgYLgKxAeA+BoQv4fid1D+ISCWY2RgEINiCSBWAmJNKFYHYid9VQZVWUkGOTFBBitNBYbO2nIGfRV5Bht9DQYrXXUGfqAZ+DAjAQwDAFraDSY=');
netDTM := DTMFromString('mlwAAAHicY2cAAhYGhvvMDAy/gFgCyBYC4h9A9i0gDmZkYLCFYjsgjgLiJCgdE27HkOhrxpAbbstQGGXPYG2pxxDoZ8cQ6KjLwA80FhdmxIOhAADr6wyr');
plankDTM := DTMFromString('mrAAAAHic42BgYOBiYWBgA+LvzAwMX4D4KxBzA/niQCwMxLWMDAwtQNwOxPVAXA7FdVAxBwMxhngvBQZXE0mGZF95hgA7aQZdZX4GewNhBmcjEQYukB14MCMBDAMAqa4MaA==');
wall1DTM := DTMFromString('mlwAAAHicY2dgYGBkhOD3QPZbIP4OxLxAvigQ3weyrwLxFQYI+zEQP4GKhYcGM3R3tDLMmz2dwd3VmcHQUB+M49y1GPiB8rgwIx4MBQBsLxCd');
wall2DTM := DTMFromString('mggAAAHicY2NgYGBlZGB4zwDBnEC2KBCzAPFDIP86ED8B4qdAfA2Ko6PCGSb0dTFYWZoz6GhrMSyYO5OhvbWRgR8ohw0z4sAQAADD6A7f');
end;

procedure FreeDTMs;
begin
FreeDTM(ropeDTM);
FreeDTM(logDTM);
FreeDTM(netDTM);
FreeDTM(plankDTM);
FreeDTM(wall1DTM);
FreeDTM(Wall2DTM);
end;

procedure LoginProc;
begin
SMART_Server := 38;
SMART_Members := False;
SMART_Signed := True;
SetupSRL;
SPS_Setup(RUNESCAPE_SURFACE,['4_5']);
DeclarePlayers;
DeclareVars;
LoginPlayer;
end;

function proggy(Reason: String): Boolean;
begin
xpEnd := GetXPBarTotal - xpStart;
Writeln('[' + PadR('----------------- ' + scriptName + Version + ' by TsterT -----------------', 50) + ']');
Writeln('[' + PadR('Xp Gained: ' + IntToStr(xpEnd), 50) + ']');
Writeln('[' + PadR('XP Gained/Hour: ' + FloatToStr(Round(xpEnd * 3600) / (GetTimeRunning / 1000)), 50) + ']');
if not(Reason = '') then
Writeln('[' + PadR('Reason Stopped: ' + Reason, 50) + ']');
Writeln('[' + PadR('Time Ran: ' + TimeRunning, 50) + ']');
Writeln('[' + PadR('----------------- ' + scriptName + Version + ' by TsterT -----------------', 50) + ']');
if not(Reason = '') then
begin
Logout;
TerminateScript;
end;
end;

function FindFails: Boolean;
begin
case PlayerLoc of
'DoRope':
begin
if not(FindBlackChatMessage('skilfully swing across.')) then
PlayerLoc := 'FailedRope';
end;
'DoLog':
begin
if FindBlackChatMessage('Something in the water bites you.') then
PlayerLoc := 'DoLog';
end;
'DoNet':
begin
if not(FindBlackChatMessage('climb the netting.')) then
PlayerLoc := 'DoNet';
end;
'DoPlank':
begin
if not(FindBlackChatMessage('edge across the gap.')) then
PlayerLoc := 'DoNet';
end;
'DoWall1':
begin
if not(FindBlackChatMessage('climb the low wall...')) then
PlayerLoc := 'ToWall1';
end;
'DoWall2':
begin
if not(FindBlackChatMessage('climb the low wall...')) or FindBlackChatMessage('You cannot climb from that side') then
begin
Mouse(623, 110, 0, 0, mouse_left);
PlayerLoc := 'DoWall2';
end;
end;
end;
end;

function FailedRope: Boolean;
begin

end;

function DoRope: Boolean;
Var
x, y, T, i, TimesFailed: Integer;
begin
MarkTime(T);
MakeCompass('N');
SetAngle(SRL_ANGLE_HIGH);
Status('Rope');
repeat
if FindDTMRotated(ropeDTM, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
MMouse(x, y, 2, 2);
if WaitUptext('swing', 400) then
begin
Mouse(x, y, 2, 2, mouse_left);
Wait(RandomRange(2500,3500));
if not(FindFails) then
begin
Result := True;
PlayerLoc := 'DoLog';
end;
end;
end else
begin
Inc(TimesFailed);
Writeln('Failed ' + IntToStr(TimesFailed) + ' times');
end;
until(TimeFromMark(T) > 30000) or (TimesFailed > 15) or (Result);

if (TimeFromMark(T) > 30000) or (TimesFailed > 15) then
proggy('Failed Rope swing.');
end;

function DoLog: Boolean;
Var
x, y, T, TimesFailed: Integer;
begin
MarkTime(T);
MakeCompass('N');
SetAngle(SRL_ANGLE_HIGH);
Status('Log');
repeat
if FindDTMRotated(logDTM, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
MMouse(x, y, 2, 2);
if WaitUptext('alance', 400) then
begin
Mouse(x, y, 2, 2, mouse_left);
Wait(RandomRange(5000,6000));
if not(FindFails) then
begin
Result := True;
PlayerLoc := 'DoNet';
end;
end;
end else
begin
Inc(TimesFailed);
Writeln('Failed ' + IntToStr(TimesFailed) + ' times');
end;
until(TimeFromMark(T) > 30000) or (TimesFailed > 15) or (Result);

if (TimeFromMark(T) > 30000) or (TimesFailed > 15) then
proggy('Failed Log Balance.');
end;

function DoNet: Boolean;
Var
x, y, T, TimesFailed: Integer;
begin
MarkTime(T);
MakeCompass('W');
SetAngle(SRL_ANGLE_LOW);
Status('Net');
repeat
if FindDTMRotated(netDTM, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
MMouse(x, y, 2, 2);
if WaitUptext('bstacle', 400) then
begin
Mouse(x, y, 2, 2, mouse_left);
Wait(RandomRange(500,1000));
if not(FindFails) then
begin
Result := True;
PlayerLoc := 'DoPlank';
end;
end;
end else
begin
Inc(TimesFailed);
Writeln('Failed ' + IntToStr(TimesFailed) + ' times');
end;
until(TimeFromMark(T) > 30000) or (TimesFailed > 15) or (Result);

if (TimeFromMark(T) > 30000) or (TimesFailed > 15) then
proggy('Failed Obstacle Net.');
end;

function DoPlank: Boolean;
Var
x, y, T, i, TimesFailed: Integer;
TPA: TPointArray;
ATPA: T2DPointArray;
begin
MarkTime(T);
MakeCompass('N');
SetAngle(SRL_ANGLE_HIGH);
Status('Ledge');
repeat
//if FindDTMRotated(plankDTM, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1718601, MSX1, MSY1, MSX2, MSY2, 5);
ATPA := TPAToATPAEx(TPA, 15, 15);

for i := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
if WaitUptext('ledge', 400) then
begin
Mouse(x, y, 2, 2, mouse_left);
Wait(RandomRange(500,1000));
if not(FindFails) then
begin
Result := True;
PlayerLoc := 'DoLadder';
end;
Break;
end else
begin
Inc(TimesFailed);
Writeln('Failed ' + IntToStr(TimesFailed) + ' times');
end;
end;
until(TimeFromMark(T) > 30000) or (TimesFailed > 15) or (Result);

if (TimeFromMark(T) > 30000) or (TimesFailed > 15) then
proggy('Failed Balancing Ledge.');
end;

function DoLadder: Boolean;
Var
x, y, T, TimesFailed: Integer;
begin
MarkTime(T);
MakeCompass('S');
SetAngle(SRL_ANGLE_HIGH);
Status('Ladder');
repeat
Mouse(659, 61, 3, 3, mouse_left);
Wait(RandomRange(300,400));
Mouse(262, 132, 2, 2, mouse_left);
Result := True;
PlayerLoc := 'ToWall1';
until(TimeFromMark(T) > 30000) or (TimesFailed > 15) or (Result);

if (TimeFromMark(T) > 30000) or (TimesFailed > 15) then
proggy('Failed Ladder.');
end;

procedure ToWall1;
begin
SPS_WalkToPos(PosWall1);
PlayerLoc := 'DoWall1';
end;

function DoWall1: Boolean;
Var
x, y, T, TimesFailed: Integer;
begin
MarkTime(T);
MakeCompass('W');
SetAngle(SRL_ANGLE_HIGH);
Status('Wall 1');
repeat
if FindDTMRotated(wall1DTM, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
MMouse(x, y, 2, 2);
if WaitUptext('rumbling wall', 400) then
begin
Mouse(x, y, 2, 2, mouse_left);
Wait(RandomRange(2000,3000));
Mouse(623, 110, 0, 0, mouse_left);
Wait(RandomRange(500,1000));
if not(FindFails) then
begin
Result := True;
PlayerLoc := 'DoWall2';
end;
end;
end else
begin
Inc(TimesFailed);
Writeln('Failed ' + IntToStr(TimesFailed) + ' times');
end;
until(TimeFromMark(T) > 30000) or (TimesFailed > 15) or (Result);

if (TimeFromMark(T) > 30000) or (TimesFailed > 15) then
proggy('Failed Crumbling Wall 1.');
end;

function DoWall2: Boolean;
Var
x, y, T, TimesFailed: Integer;
begin
MarkTime(T);
MakeCompass('W');
SetAngle(SRL_ANGLE_HIGH);
Status('Wall 2');
repeat
if FindDTMRotated(wall2DTM, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
MMouse(x, y, 2, 2);
if WaitUptext('rumbling wall', 400) then
begin
Mouse(x, y, 2, 2, mouse_left);
Wait(RandomRange(500,1000));
if not(FindFails) then
begin
Result := True;
PlayerLoc := 'ToStart';
end;
end;
end else
begin
Inc(TimesFailed);
Writeln('Failed ' + IntToStr(TimesFailed) + ' times');
end;
until(TimeFromMark(T) > 30000) or (TimesFailed > 15) or (Result);

if (TimeFromMark(T) > 30000) or (TimesFailed > 15) then
proggy('Failed Crumbling Wall 2.');
end;

procedure ToStart;
begin
SPS_WalkToPos(PosStart);
FreeDTMs;
DeclareVars;
proggy('');
FindNormalRandoms;
PlayerLoc := 'DoRope';
end;

procedure NextStep;
begin
case PlayerLoc of
'DoRope': DoRope;
'DoLog': DoLog;
'DoNet': DoNet;
'DoPlank': DoPlank;
'DoLadder': DoLadder;
'ToWall1': ToWall1;
'DoWall1': DoWall1;
'DoWall2': DoWall2;
'FailedRope': FailedRope;
'ToStart': ToStart;
end;
end;

begin
LoginProc;
xpStart := GetXPBarTotal;
PlayerLoc := 'ToStart';
repeat
NextStep;
Antiban;
until(false);
end.

TsterT

2012-02-28 05:53:33

If you vote no, please say why. You voting no means I need to improve. I can't improve if you don't tell me how I can improve.

masterBB

2012-02-28 05:57:42

You shown knowledge in TPAs and ATPAs. At a first glance the script looks good, but I will hold my vote till I have more time to give a good look at it. If the logic is good I will vote 'yes'.

Justin

2012-02-28 06:37:21

Holding my vote for now, You show some knowledge in TPAs but the thing that is holding my vote is your static mouse clicking and wait times


Mouse(584, 74, 0, 0, mouse_left);
Wait(4000);
Mouse(648, 91, 0, 0, mouse_left);
Wait(4000);

Once fixed up I will review the script again. Good luck!

Er1k

2012-02-28 06:45:43

At a first glance it looks quite nice. I looked at your previous app as well. You have shown improvements, but your activity holds my vote back for now.

By the way, are you going to fill one request, and what would that be? I'm interested, and this might change my voting preference :)

Sin

2012-02-28 06:59:04

You show good knowledge in TPA's but I don't see RRW, DTM's and even Bitmaps.
You've definetly improved since your last app.
Work on the things I told you + be more active and you're set :)

[XoL]

2012-02-28 07:33:43

I like what you added to the script, but as Sin and others have pointed out there are just other features of the SRL library you are excluding try to add them.

Also try to increase activity in other areas of the forums. I really think is important is being community focused! Posting actively in all sections not only shows you genuinely care for the community it also helps your chances of getting accepted.

These guides can help you with that:
http://villavu.com/forum/showthread.php?t=72050
http://villavu.com/forum/showthread.php?t=66084

Anyway, sorry for the roughness. Good luck.

TsterT

2012-03-01 00:51:47

I don't take constructive criticism hard at all, it helps me. Thanks for all the recommendations.


From: nosaj.421
By the way, are you going to fill one request, and what would that be? I'm interested, and this might change my voting preference :)

If you're talking about the agility script you requested, I have actually already started working on it. Just getting used to using DTMs in a different way :).

Er1k

2012-03-01 01:50:01

From: TsterT
If you're talking about the agility script you requested, I have actually already started working on it. Just getting used to using DTMs in a different way :).


I give you a yes for taking up that request and as encouragement :)

TsterT

2012-03-01 04:24:12

From: nosaj.421
I give you a yes for taking up that request and as encouragement :)


Got the script to somewhat work, posted it here.

Bam Bam

2012-03-02 17:24:31

I voted yes, however you need to make improvements with your failsafes and multiplayer aspects of your scripts.

Hobbit

2012-03-17 21:04:33

The poll has closed and you didn't quite make it this time. Please take the suggestions made in this thread and improve on the script and reapply in 4 weeks time :)

Cheers
Hobbit