Tails111
2007-08-25 20:19:04
<!– BEGIN TEMPLATE: formanswers –>
Tails111 - SRL Member Application Form
Tails111
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
Visual Basic(6 + .net)
Other Communitys
www.modsonline.com
How Long have You Played Runescape
4+ years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
My name is Stephen, I am American, and I generally pick-up on learning things relativily quickly. I am a huge Harry Potter fan.
I have found this community to be a very rapidly growing and changing community, I can't stand to see someone stuck with an error or bug in SRL or Scripts and I almost always have the urge to help them if they ask somewhat nicely.
I have always had the love for altering game play or programming little 2D games with a friend of mine. We have never completed a game, but we have made many little pieces to a gigantic game.
I have always had a strong curiosity to how things worked.
On the side, I am American but a lot of my friends say I have somewhat of a British accent, just thought I might add that in :P.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
——————————————————
<!– END TEMPLATE: formanswers –>
Tails111 - SRL Member Application Form
Tails111
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
Visual Basic(6 + .net)
Other Communitys
www.modsonline.com
How Long have You Played Runescape
4+ years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
My name is Stephen, I am American, and I generally pick-up on learning things relativily quickly. I am a huge Harry Potter fan.
I have found this community to be a very rapidly growing and changing community, I can't stand to see someone stuck with an error or bug in SRL or Scripts and I almost always have the urge to help them if they ask somewhat nicely.
I have always had the love for altering game play or programming little 2D games with a friend of mine. We have never completed a game, but we have made many little pieces to a gigantic game.
I have always had a strong curiosity to how things worked.
On the side, I am American but a lot of my friends say I have somewhat of a British accent, just thought I might add that in :P.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
program OakchopYsell;
{.include srl/SRL.scar}
{======================================================]
[ OakchopYSell v 1.61, by Stephen(Tails111) ]
[------------------------------------------------------]
[ Revolutionizing the way Oaks are chopped and sold. ]
[------------------------------------------------------]
[======================================================]
[ Introduction ]
[------------------------------------------------------]
[ This script will cut the Oaks just North of Lumbridge]
[castle, and sell them in that general store. It is a ]
[great script to get your Army of Autos up to level 60 ]
[woodcutting for the almighty Yew trees. ]
[======================================================]
[ Instructions ]
[------------------------------------------------------]
[ 1: Fill out the Declare Players area of the script. ]
[ 2: Fill out the colors area of Consts. ]
[ 3: Make sure your characters have "sufficient" axes. ]
[ 4: Drag the crosshair to Runescape. ]
[ 5: Hit play. ]
[ 6: Watch the script for the first run to Make sure it]
[ finds all the colors it needs. ]
[======================================================}
{======================================================]
[ Set the Colors for the Shop Keeper and Shop Assistant]
[I recommend using the hair colors. Only change if it ]
[Doesn't find it. Also set the Oak color, if it doesn't]
[Find the Oak log in the Inventory. ]
[======================================================}
Const ShopKeep = 8026755; ShopAssist = 2768446; ShopSymbol = 2714552;
Const OakLogInv = 6326696; ShopGround = 3362927; Grass = 2196832;
//Don't Change under this unless it doesn't find the oak.
Const OakColor1 = 2186836; OakColor2 = 3116158; OakColor3 = 1730648;
Const OakColor4 = 1865575; OakColor5 = 1586476;
//You may change things again.
{======================================================]
[ You may set your SRLID, and SRLPassword here, if you ]
[do not have one leave it blank. ]
[======================================================}
const MySRLID = ''; // Your SRLID here
const MySRLPassword = ''; // Your SRL Password here
{======================================================]
[ Enter your Player's name, password, nickname, Loads ]
[Location and Active you may leave alone unless you ]
[know what you are doing. ]
[======================================================}
Procedure DeclarePlayers;
Begin
NumberOfPlayers(4);
CurrentPlayer := 0;
Players[0].Name :='Username';
Players[0].Pass :='Password';
Players[0].Nick :='Nickname';
Players[0].Integers[1] := 5; //How many Loads? Recommend 3-7
Players[0].Loc := 'Oaks'; //Shop or Oaks or Lumbridge or Other
Players[0].Active := True;
Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Integers[1] := 5; //How Many loads? Recommend 3-7
Players[1].Loc := 'Shop'; //Shop or Oaks or Lumbridge or Other
Players[1].Active := True;
Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].Integers[1] := 5; //How many loads? Recommend 3-7
Players[2].Loc := 'Shop'; //Shop or Oaks or Lumbridge or Other
Players[2].Active := True;
Players[3].Name :='';
Players[3].Pass :='';
Players[3].Nick :='';
Players[3].Integers[1] := 5; //How many Loads? Recommend 3-7
Players[3].Loc := 'Shop'; //Shop or Oaks or Lumbridge or Other
Players[3].Active := True;
end;
{======================================================]
[ DO NOT TOUCH BELOW THIS UNLESS YOU HAVE AN IDEA AS TO]
[WHAT YOU ARE DOING!! -You may search and use any peice]
[of my script as long as you credit. ]
[======================================================}
var H, M, S, I, tx, ty, Loads, TotalLoads, NumLoads, GP, OakLog, TTimes,
SSTimes, OakLog1, ShopTree, CloseShop, EntTxt, EntMenu, HomePort:Integer;
{==========================================]
[Function ContinueOn - A way of telling how]
[Many players are left Active, will be the ]
["Turn off" to the script. By many people..]
[==========================================}
//Credits to TOB
Function NoContinueOn: Boolean;
var i, P: Integer;
Begin
P := 0;
For i:=0 to HowManyPlayers - 1 do
Begin
If(Players[i].Active = False) Then
P := P + 1;
end;
If(P = HowManyPlayers) Then
Result := True;
end;
{===========================================]
[Procedure NoMorePlayers -Used with ]
[ContinueOn. The actual process of turning ]
[the script off. ]
[===========================================}
Procedure NoMorePlayers;
begin
if(NoContinueOn = True) then
begin
WriteLn(TheTime + ' All players are inactive.');
SendSRLReport;
end;
end;
{=============================================]
[Procedure SetUp -Sets up SRL and readys stats]
[and Activates Client. ]
[=============================================}
procedure SetUp;
begin
SetUpSRL;
SRLID := MySRLID;
SRLPassword := MySRLPassword;
ScriptID := '255';
end;
Procedure LoadImgs;
Begin
HomePort := BitmapFromString2(False, 'a647A478DA7D8D510AC42' +
'00C05AFF46C4CE27EAA6DEE7FA4FA2A6C05D9253084715400883E' +
'80560624B85A3A06358C2C64B6D79BB037657F94CC46FBB73726C' +
'89DA7AE7CCEE5A46FFA9478FD87A937BE80934C01AF5EA3EC1495' +
'6CD7CAE9791769322ECE3CDDFD6A763FF775FEF7BFFEBD01421');
EntMenu := BitmapFromString2(False, 'aD535578DA958E510E8020' +
'0C43AF547103F944C0FB1FC975F8614224711F2FA365DD00A0270' +
'3CA66100D46954EB642658FEC0F3242C8C83E1CEC552B79B9CB51' +
'485663F28474FA9FADD13D5F7A55DF95E18FCB0A4F6953913438F' +
'4D99DF5516FFD2B679EFDBB7D9DB9BE76BEF9063A8');
EntTxt := BitmapFromString2(False, 'a51BE078DA3DCBC10DC020' +
'0C03C0950CC4409E2D0AFB8FD4984A7C4E91ED00408C044F49DAE' +
'A698749CEB42C95E6BABBE3E6756A43AAE63E5FF55F321D16F2D5' +
'A69E9CAE7BEC7973341E235A8EF901864');
ShopTree := BitmapFromString2(False, 'a5652678DAED8CBB11002' +
'108445B02E51BEACDD97F49BA04B670C96DF086591E1011ADE780' +
'661C488C439D288C1B089024B6D6616AD8650BC1ACD52FBBBE46C' +
'7FCE2CA75815E7DC2F7ACCF532F79C064887FBECC06212');
OakLog1 := BitmapFromString2(False, 'aC19A778DA1DCCC11100210' +
'803C096108D704F3DA5FF92247C7632218388C8D1447C2503CC18' +
'979E6AD4D3D9AA5F547D30E3A73179AD07E8C16C2DB5B6D908378' +
'6EA8F71D451DE2F5CB11F4F9');
OakLog := DTMFromString('78DA6374666260E064644006C591A6601A26C' +
'A680154C388AA06260B57630C54C34D408D15508D3001356E4035' +
'4204D40402D5F01250E343849B417E67C0AF060095D30387');
CloseShop := DTMFromString('78DA637CCEC8C0A0C9800618914820FD1AC85' +
'221A0E611916AF488B08B801A0039F80563');
end;
{============================================]
[Procedure Report -Writes in the Debug box ]
[your Macro's current progress. Uses a total]
[of all Macros you have running. ]
[============================================}
Procedure Report;
begin
WriteLn(' =~=~=~=~=~=~=~=~=~=~=~=');
WriteLn('|ChopYSell by Tails111 -');
ConvertTime(GetTimeRunning, H, M, S);
WriteLn('|Worked For : '+ IntToStr(H) + ':' + IntToStr(M) + ':' + IntToStr(S));
WriteLn('|Chopped : ' + IntToStr(Loads) + ' Oaks');
WriteLn('|Made : ' + IntToStr(GP) + ' Gold!!')
WriteLn(' =~=~=~=~=~=~=~=~=~=~=~=');
ReportVars[0] := ReportVars[0] + 1;
ReportVars[1] := ReportVars[1] + 54;
ReportVars[2] := ReportVars[2] + 27;
SRLRandomsReport;
SendSRLReport;
end;
{============================================]
[Procedure RandomChopClick -Makes a random ]
[choice of Right click, or Left click. ]
[============================================}
Procedure RandomChopClick;
Begin
If Not(LoggedIn) Then
begin
NextPlayer(False);
Exit;
end;
Case Random(2) of
0: Begin
Mouse(tx, ty, 0, 0, False);
// wait(100 + Random(400);
If(FindBitmap(EntMenu, tx, ty)) Then
Begin
repeat
wait(1000+Random(2000));
until not(FindBitmap(EntMenu, tx, ty));
end;
ChooseOption('hop');
wait(200+Random(1000));
If(IsUpText('ak')) Then
Begin
Exit;
end;
MMouse(tx, ty, 10, 10);
end;
1: Begin
MMouse(tx, ty, 0, 0);
wait(400+Random(300));
If(FindBitmap(Enttxt, tx, ty)) Then
Begin
repeat
wait(1000+Random(2000));
until not(FindBitmap(Enttxt, tx, ty));
end;
wait(300+Random(200));
Mouse(tx, ty, 0, 0, True);
wait(200+Random(1000));
If(IsUpText('ak')) Then
Begin
Exit;
end;
MMouse(tx, ty, 10, 10);
end;
end;
end;
{===================================================]
[Procedure CastHomePort -Used to cast the home port ]
[spell to lumbridge, Created by me. Uses bitmaps ]
[===================================================}
Procedure CastHomePort;
begin
Gametab(7);
Wait(100+Random(400));
If(FindBitmap(HomePort, tx, ty)) Then
begin
wait(100 + Random(150));
Mouse(tx, ty, 5, 5, True);
wait(15000);
Status('Successfully Teleported "Home"!');
end;
If Not(FindBitmap(HomePort, tx, ty)) Then
begin
WriteLn('We did not find the Spell! Check the Deatail select, please restart.');
Players[CurrentPlayer].Loc := 'Couldn''t Find HomePort';
NextPlayer(False);
end;
end;
{=============================================]
[Procedure CastleToTrees -Walks from Lumbridge]
[Castle to the shop, and then to the Trees. ]
[=============================================}
Procedure CastleToTrees;
begin
RoadColor := FindRoadColor
ClearDebug;
If RoadColor = 0 then
begin
WriteLn('Did not find road color! Check detail and V-Bright!');
Players[CurrentPlayer].Loc := 'No road';
NextPlayer(False);
end else
begin
Status('Successfully found Road color! It is ' + inttostr(RoadColor));
RadialRoadWalk(RoadColor, 85, 93, 60, 1, 1)
Status('Successfully did first click!');
RadialRoadWalk(RoadColor, 339, 344, 62, 1, 1)
Status('Successfully did second click!');
RadialRoadWalk(RoadColor, 318, 310, 60, 1, 1)
Status('Successfully did third click!');
RadialRoadWalk(RoadColor, 316, 308, 56, 1, 1)
Status('Successfully did fourth click!');
If(FindSymbol(tx, ty, 'shop')) THen
Begin
Status('Going in Shop!');
Mouse(tx, ty, 0, 0, True);
Wait(2000+Random(1000));
Status('Going to Oaks!');
Mouse(625, 92, 10, 10, True);
Wait(5000+Random(2500));
end;
end;
end;
{============================================]
[Function QuickRandoms -A modified version of]
[the traditional FastRandoms. ]
[============================================}
Function QuickRandoms: Boolean;
var
i: Integer;
begin
for i:=1 to 9 do
begin
case I of
1: If FindDead then
Begin
Players[CurrentPlayer].loc := 'Lumbridge';
CastleToTrees;
end;
2: If FindMod then
Result := True;
3: If FindMime then
Result := True;
4: If FindMaze then
Result := True;
5: If FindQuiz then
Result := True;
6: If FindDemon then
Result := True;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
end;
end;
8: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
end;
end;
end;
{============================================]
[Procedure ShopWalk -Walks to the shop from ]
[The oak, by finding either a color in the ]
[Symbol or finding the Symbol. ]
[============================================}
Procedure ShopWalk;
Begin
Status('Walking to Shop!');
If(Findcolor(tx, ty, ShopSymbol, 580, 20, 725, 155)) or (FindSymbol(tx, ty, 'shop')) then
Begin
Mouse(tx, ty, 9, 9, True);
wait(4000+Random(1000));
end else
RadialWalk(ShopGround, 40, 75, 25, 10, 10);
end;
{=============================================]
[Procedure OakWalk -Walks to the oaks using a ]
[Coordinate, with a 10 x 10 pixel random, not ]
[Reliable and I am searching for a different ]
[way. ]
[=============================================}
Procedure OakWalk;
Begin
RadialWalk(Grass, 250, 235, 35, 10, 5);
{Status('Walking to Oaks');
Mouse(625, 92, 10, 10, True);
Wait(3000); }
end;
{=============================================]
[Procedure CheckFight -Searches for the fight ]
[Using SRL's Random but runs to the shop, and ]
[then walks back to the Oaks. ]
[=============================================}
Procedure CheckFight;
Begin
If FindFight Then
Begin
ShopWalk;
wait(5000+Random(4000));
MakeCompass('N');
OakWalk;
end;
end;
{=============================================]
[Procedure CheckEnt -Searches for the ent and ]
[if it finds one it will run to the shop, and ]
[then walk back to the Oaks trees. ]
[=============================================}
procedure CheckEnt;
begin
If FindColorTolerance(tx, ty, 55769, 85, 15, 115, 15, 20) then
Begin
WriteLn('Ent Found');
ShopWalk;
Wait(15000 + Random(5000));
EntsAvoided := EntsAvoided + 1
OakWalk;
end;
end;
{===========================================]
[Procedure CheckInv -Checks for a full inv ]
[then goes to the shop. Another procedure ]
[sells the Oak logs. ]
[===========================================}
procedure CheckInv;
begin
If(FindColor(tx, ty, OakLogInv, 684, 430, 727, 462)) Then
Begin
MMouse(tx, ty, 10, 5);
If(IsUpTextMulti('Oak Log', 'og', 'Oak')) Then
Begin
ShopWalk;
end;
end;
end;
{=============================================]
[Function RandomOakColor -Picks to search for ]
[a random Oak color, uses 5 different colors, ]
[and they can be changed in the Consts section]
[=============================================}
function RandomOakColor: integer;
Begin
Status('Picking Random Oak Color from Consts.');
Case Random(5) of
0: Result := OakColor1;
1: Result := OakColor2;
2: Result := OakColor3;
3: Result := OakColor4;
4: Result := OakColor5;
end;
end;
{=============================================]
[Procedure OakChop -Main part of the script, ]
[Chops by searching for colors, an Uptext, and]
[will search a maximum of 25 tries. ]
[=============================================}
Procedure OakChop;
Begin
If Not(LoggedIn) Then
begin
NextPlayer(False);
Exit;
end;
Status('Chopping Oaks');
If(FindColor(tx, ty, OakLogInv, 684, 430, 727, 462))Then
Begin
ShopWalk;
Exit;
end;
If(FindColorSpiralTolerance(tx, ty, RandomOakColor, 1, 1, 514, 336, 4))Then
Begin
CheckInv;
MMouse(tx, ty, 10, 10);
CheckEnt;
TTimes := TTimes + 1;
If(TTimes > 25) Then
Begin
WriteLn('Didn''t Find Tree after 25 tries, will teleport back to lumbridge');
WriteLn('And attempt to get back to shop when next turn comes.');
Players[CurrentPlayer].loc := 'Other';
TTimes := 0;
NextPlayer(True);
end;
If(IsUpText('Oak')) Then
Begin
RandomChopClick;
Status('Randomly left or right clicking.');
Wait(1000);
FindNormalRandoms;
CheckFight;
CheckEnt;
TTimes := 0;
I := 0;
end;
If(IsUpText('ree')) Then
Begin
SendArrowWait(3, 1000+Random(500));
end;
Repeat
If Not(LoggedIn) Then
begin
NextPlayer(False);
Exit;
end;
Status('Waiting for tree to be gone.');
Wait(500 + Random(354));
CheckInv;
CheckFight;
CheckEnt;
FindNormalRandoms;
I := I + 1;
If I > 65 Then
Begin
SendArrowWait(3, 100+Random(1000));
end;
until not(IsUpTextMulti('Oak', 'ak', 'oak')) or (FindColor(tx, ty, OakLogInv, 684, 430, 727, 462))
end;
end;
{============================================]
[Procedure FindKeeper -Searches for the Shop ]
[Keeper or Assistant and will try to trade ]
[============================================}
Procedure FindKeeper;
Begin
If Not(LoggedIn) Then
begin
NextPlayer(False);
Exit;
end;
Status('Trading Shop Keeper or Assistant.');
SSTimes := 0;
Repeat
If(FindColorSpiralTolerance(tx, ty, ShopKeep, 1, 1, 514, 336, 1)) or (FindColorSpiralTolerance(tx, ty, ShopAssist, 1, 1, 514, 336, 1)) Then
Begin
MMouse(tx, ty, 2, 2);
SSTimes := SSTimes + 1;
If(SSTimes > 250) Then
Begin
WriteLn('Didn''t Find Shop Keeper after 30 attempts.');
WriteLn('Next time around, will teleport to Lumbridge');
WriteLn('And try to walk back and continue.');
Players[CurrentPlayer].loc := 'Other';
NextPlayer(True);
SSTimes := 0;
end;
If(IsUpTextMulti('alk-to', 'Shop', 'keep')) Then
Begin
Mouse(tx, ty, 0, 0, False);
Wait(1000+Random(500));
ChooseOption('rade');
SSTimes := 0;
Wait(1000+Random(500));
end;
end;
Until(FindColor(tx, ty, 2070783, 175, 31, 357, 52));
end;
{===========================================]
[Procedure SellOaks -Sells the Oaks at the ]
[General store, uses DTMs and Colors. ]
[===========================================}
procedure SellOaks;
begin
If Not(LoggedIn) Then
begin
NextPlayer(False);
Exit;
end;
Status('Attempting to Sell Oaks!');
repeat
begin
If FindColorTolerance(tx, ty, OakLogInv, 554, 214, 730, 458, 10) Then
begin
wait(500 + random(250));
Status('Found logs, clicking to sell!');
Mouse(tx, ty, 1, 1, False);
Wait(250+Random(1000));
ChooseOption('ell 10');
wait(500+Random(250));
end;
end;
until not FindColorTolerance(tx, ty, OakLogInv, 554, 214, 730, 458, 10)
Loads := Loads + 27;
GP := GP + 54;
TotalLoads := TotalLoads + 1;
end;
{=============================================]
[Procedure CloseShopQuick -Closes the general ]
[Store and then walks to the Oaks. ]
[=============================================}
procedure CloseShopQuick;
Begin
If Not(LoggedIn) Then
begin
NextPlayer(False);
Exit;
end;
Status('Closing Shop');
If(FindDTM(CloseShop, tx, ty, 470, 26, 500, 50)) Then
Begin
Mouse(tx, ty, 4, 4, true);
wait(500);
MakeCompass('N');
wait(200 + Random(100));
OakWalk;
NumLoads := NumLoads + 1;
If NumLoads = Players[CurrentPlayer].Integers[1] Then
Begin
Players[CurrentPlayer].Loc := 'Oaks';
NextPlayer(True);
NumLoads := 0;
end;
end;
end;
{============================================]
[Procedure MoveChar -Moves current player to ]
[The specified place in DeclarePlayers. ]
[============================================}
Procedure MoveChar;
Begin
If Players[CurrentPlayer].loc='Lumbridge' Then
Begin
If(FindSymbol(tx, ty, 'shop')) Then
begin
WriteLn('You are near or at the Shop.');
WriteLn('Will attempt to go to Shop Symbol');
WriteLn('Then go to the Oaks and Chop!');
Exit;
end;
SetRun(False);
CastleToTrees;
end;
If Players[CurrentPlayer].loc='Other' Then
Begin
wait(4000+Random(2000));
CastHomePort;
CastleToTrees;
end;
If Players[CurrentPlayer].loc='Oaks' Then
Begin
SetRun(True);
OakChop;
SetRun(False);
end;
If Players[CurrentPlayer].loc='Shop' Then
Begin
SetRun(False);
OakWalk;
end;
end;
{===============================================]
[Procedure LetemFree -Frees all Bitmaps and DTMs]
[===============================================}
Procedure LetemFree;
Begin
FreeBitmap(HomePort);
FreeBitmap(Oaklog1);
FreeDTM(OakLog);
FreeDTM(CloseShop);
end;
{=============================================]
[ MAIN LOOP ]
[=============================================}
begin
Setup;
DeclarePlayers;
LoadImgs;
ActivateClient;
LoginPlayer;
Repeat
Wait(750+Random(500));
MoveChar;
Repeat
SymbolAccuracy := 40;
Repeat
OakChop;
FindNormalRandoms;
QuickRandoms;
Until(FindColor(tx, ty, OakLogInv, 684, 430, 727, 462));
ShopWalk;
QuickRandoms;
FindKeeper;
SellOaks;
Report;
CloseShopQuick;
Until NumLoads = Players[CurrentPlayer].Integers[1]
Until(NoContinueOn);
NoMorePlayers;
LetemFree;
end.——————————————————
<!– END TEMPLATE: formanswers –>