soccnut
2008-08-11 10:00:38
<!– BEGIN TEMPLATE: formanswers –>
soccnut - SRL Member Application Form
soccnut
What is the meaning to life?
Life is about enjoying yourself while SCAR works away to up your RS char's stats :D
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
only pascal/scar
Other Communitys
runescapecommunity
How Long have You Played Runescape
since 2004
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Im a 15 yo girl from singapore.Hobbies are playing runescape and playing piano.Currently studying in school now.English is not my first language so pardon me if i make grammar mistakes and so on.
Played legit all the way till last year
Chanced upon scar last year around november.Played around with most scripts and used many such as Narcle autofight and Jukka guildminer.
Stopped around late Dec when my main got banned for using some lousy cooking script.
Started out contributing by posting proggies and helping others to solve simple problems like input nicknames or updating to latest SRL and so on before graudually moving on to helping with changing DTMs/Co-ords in outdated scripts and so on.
Decided to play again after hearing about RunescapeHD.Installed SCAR and continued to run scripts.Decided to contribute to the community also and thus learnt scripting from tutorials.
This is my 2nd proper script( excluding those fooling around attempts).My first was the alkhariad cooker which did not go well because my scripting knowledge not good enough to overcome the barren featureless terrain.
This script is a Falador clay wetter which uses DTMs to find the clay and bucket and uses a combination of radialroadwalk and symbol finding to get to the fountain and back.
Hope to contribute more to the community in the near future.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
Currently version 1.1
New features
-DDTM walking as a backup if radial walking fails
-Added SMART
-Fixed Standards
-Backups for fountain finding and wetting clay
-Added function to prevent leechers fom using
Reflection has got to wait because i just discovered that
Instead of this
I only have access to this
If you want reflection walking and banking then you got to let me have all the reflection functions and the only way to get these functions is if you are a member.So *Cough* Vote Yes *Cough*
——————————————————
<!– END TEMPLATE: formanswers –>
soccnut - SRL Member Application Form
soccnut
What is the meaning to life?
Life is about enjoying yourself while SCAR works away to up your RS char's stats :D
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
only pascal/scar
Other Communitys
runescapecommunity
How Long have You Played Runescape
since 2004
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Im a 15 yo girl from singapore.Hobbies are playing runescape and playing piano.Currently studying in school now.English is not my first language so pardon me if i make grammar mistakes and so on.
Played legit all the way till last year
Chanced upon scar last year around november.Played around with most scripts and used many such as Narcle autofight and Jukka guildminer.
Stopped around late Dec when my main got banned for using some lousy cooking script.
Started out contributing by posting proggies and helping others to solve simple problems like input nicknames or updating to latest SRL and so on before graudually moving on to helping with changing DTMs/Co-ords in outdated scripts and so on.
Decided to play again after hearing about RunescapeHD.Installed SCAR and continued to run scripts.Decided to contribute to the community also and thus learnt scripting from tutorials.
This is my 2nd proper script( excluding those fooling around attempts).My first was the alkhariad cooker which did not go well because my scripting knowledge not good enough to overcome the barren featureless terrain.
This script is a Falador clay wetter which uses DTMs to find the clay and bucket and uses a combination of radialroadwalk and symbol finding to get to the fountain and back.
Hope to contribute more to the community in the near future.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
//Instructions: Fill up form and loads to do
// Place players in falador east bank near bank slot
// Make sure clay and bucket is visible in the top of bank
// Hit play and watch the magic!
program Wet;
{.Include SRL\SRL\Misc\SMART.SCAR}
{.include SRL/SRL.scar}
{.include srl/srl/misc/users.scar}
{.include srl/srl/misc/faladorcolorfinder.scar}
{.include srl/srl/reflection/reflection.scar}
Const
SRLStatsID = ''; // Your SRL Stats ID
SRLStatsPW = ''; // Your SRL Stats Password
Var
x,y : integer; // co-ords for walking
a,b : integer; //co-ords for finding fountain
c,d,e,f : integer; //co-ords for storing DTMs of bucket and dry clay
g : integer;//store value of combat lvl for leecher check
Loads : integer; // loads done
Time: integer; //failsafe for procedures
BankDTM: integer; //DTM to find bank
WetClayDTM, DryClayDTM, BucketDTM : integer; //DTM for various objects
WalkDTM: integer;
z: extended; // FindDTMRotated for bank
Procedure DeclarePlayers;
begin
HowManyPlayers:= 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:= 0;
Players[0].Name := ''; //username
Players[0].Pass := ''; //password
Players[0].Nick := ''; //nickname P.S leave out the first letter of your name.
Players[0].Active := True; //True = Active, False = Inactive
end;
procedure LeecherCheck;
begin
g := GetCombatLevel;
if g < 20 then
begin
Writeln('Train up your char combat first, noob!');
Exit;
end;
if (SRLStatsID = '') or (SRLStatsPW = '') then
begin
Writeln('SRL ID invalid, get an account at "http://www.stats.srl-forums.com"')
end;
end;
procedure Failsafe;
begin
if (loggedIn) then exit;
Writeln('Player false, next player');
Players[CurrentPlayer].Active := False;
end;
procedure Antiban;
begin
if not LoggedIn then Exit;
Status('Performing Antiban');
case Random(250) of
0:
begin
HoverSkill('Crafting', False);
Gametab(4);
wait(500+random(100));
end;
1:
begin
wait(3000+random(300));
end;
2:
begin
GameTab(1 + Random(12));
wait(800 + random(500));
GameTab(4);
wait(500+random(300));
end;
3:
begin
MouseBox(MSx1, MSy1, MSx2, MSy2, 3);
end;
end;
Gametab(4);
Status('SCAR Divi CDE');
end;
function LoadAllDTMWalks(WalkNumber: Integer): Integer; //walk to well1
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array[0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
case WalkNumber of
1: begin
dtmMainPoint.x := 817;
dtmMainPoint.y := 287;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 7504271;
dtmMainPoint.Tolerance := 0;
dtmSubPoints[0].x := 817;
dtmSubPoints[0].y := 287;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 7504271;
dtmSubPoints[0].Tolerance := 0;
dtmSubPoints[1].x := 801;
dtmSubPoints[1].y := 282;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 7504271;
dtmSubPoints[1].Tolerance := 0;
dtmSubPoints[2].x := 802;
dtmSubPoints[2].y := 274;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 7504271;
dtmSubPoints[2].Tolerance := 0;
dtmSubPoints[3].x := 823;
dtmSubPoints[3].y := 290;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 7504271;
dtmSubPoints[3].Tolerance := 0;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
2: begin
dtmMainPoint.x := 772;
dtmMainPoint.y := 311;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 7635857;
dtmMainPoint.Tolerance := 0;
dtmSubPoints[0].x := 772;
dtmSubPoints[0].y := 311;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 7635857;
dtmSubPoints[0].Tolerance := 0;
dtmSubPoints[1].x := 771;
dtmSubPoints[1].y := 288;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 7635857;
dtmSubPoints[1].Tolerance := 0;
dtmSubPoints[2].x := 761;
dtmSubPoints[2].y := 294;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 7635857;
dtmSubPoints[2].Tolerance := 0;
dtmSubPoints[3].x := 779;
dtmSubPoints[3].y := 328;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 7635857;
dtmSubPoints[3].Tolerance := 0;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
3: begin
dtmMainPoint.x := 687;
dtmMainPoint.y := 296;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 7635857;
dtmMainPoint.Tolerance := 0;
dtmSubPoints[0].x := 687;
dtmSubPoints[0].y := 296;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 7635857;
dtmSubPoints[0].Tolerance := 0;
dtmSubPoints[1].x := 696;
dtmSubPoints[1].y := 279;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 7635857;
dtmSubPoints[1].Tolerance := 0;
dtmSubPoints[2].x := 683;
dtmSubPoints[2].y := 272;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 7635857;
dtmSubPoints[2].Tolerance := 0;
dtmSubPoints[3].x := 677;
dtmSubPoints[3].y := 282;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 7635857;
dtmSubPoints[3].Tolerance := 0;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
end;
end;
procedure WalkToWell1;
var
RoadColor : integer;
begin
if (not(loggedIn)) then exit;
MarkTime(Time);
setrun(true);
RoadColor := FindFallyRoadColor;
RadialRoadWalk(RoadColor, 80, 85, 73, -1, 1);
Antiban;
wait (2000);
FFlag(5);
WriteLn('Walk 1 - Sucess');
if (TimeFromMark(Time) <= 15000) then exit;
Failsafe;
if (RoadColor = 0) then
begin
WalkDTM := LoadAllDTMWalks(1);
if FindDTM(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2) then
begin
Mouse(X, Y, 2, 2, True);
FFlag(5);
WriteLn('Walk 1 - Sucess');
end;
end else
begin
Players[CurrentPlayer].Active := False;
LogOut;
Writeln('Player false, next player')
end;
FreeDTM(WalkDTM);
end;
procedure WalkToWell2;
begin
if Findsymbol(x, y, 'water')then
begin
Mouse( x, y, 2, 2, true);
Writeln('Walk 2 - Sucess');
Antiban;
wait (2000);
FFlag(5);
if (TimeFromMark(Time) <= 20000) then exit;
Failsafe;
end else
begin
WalkDTM := LoadAllDTMWalks(2);
if FindDTM(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2) then
begin
Mouse(X, Y, 2, 2, True);
FFlag(5);
WriteLn('Walk 2 - Sucess');
end;
FreeDTM(WalkDTM);
begin
Players[CurrentPlayer].Active := False;
LogOut;
Writeln('Player false, next player')
end;
end;
end;
procedure FountainColor;
var
FountainColors: Array[1..4] of integer;
begin
FountainColors[1] := 9336671
FountainColors[2] := 10914928
FountainColors[3] := 9074019
FountainColors[4] := 10191721
end;
procedure WettingBucket;
var
FountainColors: Array[1..4] of integer;
fountain : integer;
begin
MarkTime(Time);
wait(500+random(300));
BucketDTM := DTMFromString('78DA633466646028026224B0A0D90B4CC3441' +
'97580AC4A54353059B81A4D202B8B801A1B202B95801A2B20AB1C' +
'BF1A0035B804B5');
If FindDTM(BucketDTM,x,y,MIX1,MIY1,MIX2,MIY2) then
begin
for fountain := 1 to 4 do
if FindColorTolerance(a, b, FountainColors[fountain], MSx1, MSy1, MSx2, MSy2, 50)then
Mouse(x,y,0,0,True);
Mouse(a, b, 2, 2, true);
Antiban;
wait(8000+random(400));
end else
begin
WaterColor := FindFaladorWaterColor;
if FindColorTolerance(a, b, WaterColor, MSX1, MSY1, MSX2, MSY2, 50)then
begin
BucketDTM := DTMFromString('78DA633466646028026224B0A0D90B4CC3441' +
'97580AC4A54353059B81A4D202B8B801A1B202B95801A2B20AB1C' +
'BF1A0035B804B5');
FindDTM(BucketDTM,x,y,MIX1,MIY1,MIX2,MIY2)
Mouse(x,y,0,0,True);
Mouse(a, b, 2, 2, true);
Antiban;
wait(8000+random(400));
end else
begin
Players[CurrentPlayer].Active := False;
LogOut;
Writeln('Player false, next player')
if (TimeFromMark(Time) <= 20000) then exit;
Exit;
end;
end;
FreeDTM(WalkDTM);
FreeDTM(BucketDTM);
end;
procedure UseBucketOnClay;
begin
MarkTime(Time);
wait(500+random(300));
begin
BucketDTM := DTMFromString('78DA633466646028026224B0A0D90B4CC3441' +
'97580AC4A54353059B81A4D202B8B801A1B202B95801A2B20AB1C' +
'BF1A0035B804B5');
DryClayDTM := DTMFromString('78DA63DCC9C4C0B0979101192CEA8C06D3305' +
'1C64D986A60B27035DB816A761250B307A8E60001350708DB0500' +
'F94E08F2');
If FindDTM(BucketDTM,c,d,MIX1,MIY1,MIX2,MIY2) and FindDTM(BucketDTM,e,f,MIX1,MIY1,MIX2,MIY2) then
begin
Mouse(c,d,0,0,True);
Mouse (e,f,0,0,True);
Antiban;
Wait(12000);
end else
If (loggedIn)then
begin
MouseItem(1,true);
MouseItem(15,true);
Antiban;
wait(12000);
end else
begin
Players[CurrentPlayer].Active := False;
LogOut;
Writeln('Player false, next player')
if (TimeFromMark(Time) <= 20000) then exit;
end;
end;
end;
procedure WalkToBank1;
begin
begin
if (not(loggedIn)) then exit;
MarkTime(Time);
RoadColor := FindFallyRoadColor;
RadialRoadWalk(RoadColor, 300, 315, 73, 1, 1);
Antiban;
wait (2000);
FFlag(5);
WriteLn('Walk 1 Back - Sucess');
end;
if (RoadColor = 0) then
begin
WalkDTM := LoadAllDTMWalks(1);
if FindDTM(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2) then
begin
Mouse(X, Y, 2, 2, True);
FFlag(5);
WriteLn('Walk 1 Back - Sucess');
end;
end else
begin
Players[CurrentPlayer].Active := False;
LogOut;
Writeln('Player false, next player')
end;
FreeDTM(WalkDTM);
end;
procedure WalkToBank2;
begin
If Findsymbol(x, y, 'Bank')then
begin
Mouse( x, y, 2, 2, true);
Antiban;
wait (2000);
FFlag(5);
BankDTM := DTMFromString('78DA637CC9C4C0A0CBC8800CD62EEE02D3305' +
'1C647403586A86AFEFC614255F38C0835EF8850F309C83722A0E6' +
'1B6135000B861286');
if FindDTMRotated(BankDTM,x,y,MMX1,MMY1,MMX2,MMY2,-1/8*pi,1/8*pi,1/32*pi,z) then
Mouse( x, y, 2, 2, true);
Antiban;
wait (2000);
FFlag(5);
Writeln('Walk 2 Back - Sucess')
end else
begin
WalkDTM := LoadAllDTMWalks(3);
if FindDTM(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2) then
begin
Mouse(X, Y, 2, 2, True);
FFlag(5);
Antiban;
WriteLn('Walk 2 Back - Sucess');
end else
Players[CurrentPlayer].Active := False;
LogOut;
Writeln('Player false, next player')
if (TimeFromMark(Time) <= 20000) then exit;
Exit;
end;
if (TimeFromMark(Time) <= 15000) then exit;
Failsafe;
FreeDTM(WalkDTM)
end;
procedure DepositBank;
begin
if (not(loggedIn)) then exit;
MarkTime(Time);
OpenBank('feb',false,false);
wait (1000+random(200));
DepositAll;
Wait(500+random(100));
BucketDTM := DTMFromString('78DA633466646028026224B0A0D90B4CC3441' +
'97580AC4A54353059B81A4D202B8B801A1B202B95801A2B20AB1C' +
'BF1A0035B804B5');
If FindDTM(BucketDTM,x,y,MSX1,MSY1,MSX2,MSY2) then
begin
Mouse(x,y,0,0,False);
Wait(100+random(100));
ChooseOption('X');
Wait(400+random(200));
Typesend('14');
end;
Wait(500+random(200))
WetClayDTM := DTMFromString('78DA637CC2C4C0B09B9101191484F08269982' +
'8E363A09A0DA86A60B2703537806AF61150F30CA8E60801351F80' +
'6AF61050F316A866237E350059570AB1');
If FindDTM(WetClayDTM,x,y,MIX1,MIY1,MIX2,MIY2) then
begin
Mouse(x,y,0,0,False);
Wait(100+random(100));
ChooseOption('ll');
end;
Wait(500+random(200));
DryClayDTM := DTMFromString('78DA63DCC9C4C0B0979101192CEA8C06D3305' +
'1C64D986A60B27035DB816A761250B307A8E60001350708DB0500' +
'F94E08F2');
If FindDTM(DryClayDTM,x,y,MSX1,MSY1,MSX2,MSY2) then
begin
Mouse(x,y,0,0,False);
Wait(100+random(100));
ChooseOption('X');
Wait(400+random(200));
Typesend('14');
end;
wait (1000+random(200));
Closebank;
wait (1000+random(200));
MakeCompass('N');
if (TimeFromMark(Time) <= 20000) then exit;
Failsafe;
FreeDTM(BucketDTM);
FreeDTM(WetClayDTM);
FreeDTM(DryClayDTM);
end;
procedure DepositBank2;
begin
WetClayDTM := DTMFromString('78DA637CC2C4C0B09B9101191484F08269982' +
'8E363A09A0DA86A60B2703537806AF61150F30CA8E60801351F80' +
'6AF61050F316A866237E350059570AB1');
If FindDTM(WetClayDTM,x,y,MIX1,MIY1,MIX2,MIY2) then
begin
Mouse(x,y,0,0,False);
Wait(100+random(100));
ChooseOption('ll');
Wait(500+random(200));
DryClayDTM := DTMFromString('78DA63DCC9C4C0B0979101192CEA8C06D3305' +
'1C64D986A60B27035DB816A761250B307A8E60001350708DB0500' +
'F94E08F2');
end;
If FindDTM(DryClayDTM,x,y,MSX1,MSY1,MSX2,MSY2) then
begin
Mouse(x,y,0,0,False);
Wait(100+random(100));
ChooseOption('X');
Wait(200+random(200));
Typesend('14');
end;
Wait(1000+random(500));
CloseBank;
FreeDTM(WetClayDTM);
FreeDTM(DryClayDTM);
end;
procedure Report; // A proggy
begin
Writeln('//////////////////////////////////////////////////');
wait(200);
Writeln('////////// Wet! Progress Report////////////////');
wait(200);
Writeln('// Clay Wetted ' + IntToStr(Loads*28)+ ' clay///');
wait(200);
Writeln('// Thank you for using Wet!/////////////////////');
wait(200);
Writeln('//////////////////////////////////////////////////');
SRLRandomsReport;
end;
Procedure MainLoop;
begin
loginplayer;
wait(800+random(500));
LeecherCheck;
SetAngle(true);
MakeCompass('N');
Repeat
DepositBank;
WalktoWell1;
WalktoWell2;
FountainColor;
WettingBucket;
UseBucketOnClay;
WettingBucket;
WalkToBank1;
WalkToBank2;
DepositBank2;
UseBucketOnClay;
Antiban;
Loads:= Loads+1
until Loads >= 3;
Logout;
Repeat
NextPlayer(Players[CurrentPlayer].Active);
until False;
end;
begin
SMARTSetUp('world57', True, True, False);
SetTargetDC(SMARTGetDC);
SetupSRL;
ScriptID := '938';
SRLId:= SRLStatsID;
SRLPassword:= SRLStatsPW;
SRLRandomsReport;
ActivateClient;
DeclarePlayers;
MainLoop;
Report;
end.
Currently version 1.1
New features
-DDTM walking as a backup if radial walking fails
-Added SMART
-Fixed Standards
-Backups for fountain finding and wetting clay
-Added function to prevent leechers fom using
Reflection has got to wait because i just discovered that
Instead of this
//------------------------------------------------------------------\\
//-- Scar Non-Standard Resource Library --||
//-- » Reflection Routines - Walking --||
//------------------------------------------------------------------//
// * Function DistanceFrom(TileX, TileY: Integer) : Integer; // * by Widget
// * Function ClickTile(TileX, TileY, Height : Integer; // * by ss23 and Widget
// Left : Boolean) : Boolean; // º
// * Function WalkToTile(TileX, TileY : Integer): Boolean; // * by ss23 and Widget
// * Function WalkToTileTol(TileX, TileY, Tol : Integer): Boolean; // * by ss23 and Widget and TheGuyWhoGotOn
// * Function AlmostThere: Boolean; // * by TheGuyWhoGotOn
// * function LongWalkEx(TileX, TileY, DisX, DisY, // * by TheGuyWhoGotOn
// * Tol : integer): boolean; // º
// * function LongWalk(TileX, TileY, Tol : integer): boolean; // * by TheGuyWhoGotOn
// * function PathWalk(Path : array of TPoint; Long : boolean; // * by TheGuyWhoGotOn
// * Tol : integer): Boolean; // º
// * Function GoToTile(XTile, YTile, FlagD: Integer): Boolean; // * by Timer
// * Function WalkPath(Path: TPointArray; StartTile, // * by Timer
// * FlagD: Integer): Boolean; // º
// * Function GetLowest(aVar: TIntegerArray): Integer; // * by Timer
// * Function GetHighest(aVar: TIntegerArray): Integer; // * by Timer
// * Function FindMeOnPath(Var aVar: Integer; Path: TPointArray; // * by Timer
// * LocateTo: Boolean): Boolean; // º
// * Function WalkThePath(Path: TPointArray): Boolean; // * by Timer
// * Function GerneratePath(StartTilePosX, StartTilePosY, TilePosX, // * by MasterKill
// * TilePosY: Integer): TPointArray; // * º
// * Function BlindWalkToTile(TilePosX, TilePosY): Boolean; // * by MasterKill
// * Procedure R_Flag; // * by Timer
// * procedure R_FFlag(Distance: Integer); // * by ZephyrsFury
//------------------------------------------------------------------//
I only have access to this
//------------------------------------------------------------------\\
//-- Scar Non-Standard Resource Library --||
//-- » Reflection Routines - Walking --||
//------------------------------------------------------------------//
// * function WalkToTile(TileX, TileY : Integer): Boolean; // * by ss23 and Widget
// * function GetFlag(var x, y: Integer): boolean; // * by TheGuyWhoGotOn
// * procedure R_Flag; // * by Timer
// * procedure R_FFlag(Distance: Integer); // * ZephyrsFury
// * Function DistanceFrom(TileX, TileY: Integer) : Integer; // * by Widget
//------------------------------------------------------------------//If you want reflection walking and banking then you got to let me have all the reflection functions and the only way to get these functions is if you are a member.So *Cough* Vote Yes *Cough*
——————————————————
<!– END TEMPLATE: formanswers –>