Results 1 to 18 of 18

Thread: Heavenguards Notes :D For those tutor Readers.

  1. #1
    Join Date
    Nov 2009
    Location
    Seattle, WA
    Posts
    589
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default Heavenguards Notes :D For those tutor Readers.

    Hey guys, its Heavenguard, Im an Intermediate Scripter now . Im getting there, I have updated my thread by adding quotes instead of attachments. Anyways, The point of this thread is to help out all of us, we, who read tutorials. I have read WhoCares357's Beginners Guide. I have learned all of the basics from him. Learning from him was great, he inspired me to keep scripting. I <3 him .

    After I was finished with his beginners guide, I noticed that while I was learning I did A LOT of practice. So why not help others while practicing. The more I practiced, the more I understood it. Each time I completed a part of a Tutorial that taught me a new Function, I made notes for it. These notes just Reinforce things that we have learned. They help us practice and strengthen our scripting.

    Please remember, my notes are meant to help those who have read tutorials. As they will gain the most benefit from my notes. So far I have made notes on over most (if not all) of the beginner basics. I have also gone over a couple of Intermediate things, Such as Finding Color Spirals, and 3 ways of Map Walking (DDTM, RadialWalkTolerance, and FindSymbol). I plan to continue helping my family (which is you) on our quest to becoming master Scripters.

    Here is the list of Tutorials and how they have help me on learning. Please, read them. That is all I ask/recommend of you.

    1. Unmatched Scar Scripting Tutorial for Beginners (Hands On) by WhoCares357 : This Tutorial Teaches you the basics of the basics. It is what I have read to learn how SCAR works, and how its standards are to be. This is the #1 guide I can point you out to if your new to SCAR and wish to start learning how to use it. WhoCares357 is a great teacher, I promise you will be inspired by him. He is the reason I started making notes.

    2. Coh3n’s All-In-One SCAR Scripting Tutorial! Coh3n is probably one of the most useful people you will find in this world. This tutorial shows the basics to the advanced. Everything is explained Skillfully but in a quick and Easy-to-Understand way. I Highly recommend that after you first learn the full basic's of Scar from WhoCares357's Tutorial , you should read this. I'm currently on Coh3n's Intermediate Section

    3. This tutorial helps you solve errors you obtain while scripting. Its by JAD. It explains the most common errors that you will 100% encounter while learning how to script. Jad's Thread on fixing the most Annoying but Common Errors. After scripting for a while, you'll have no problem fixing errors in Scar by yourself.

    4. If you still have problems scripting, or run into an error that you know you cant fix, don't hesitate to ask anyone on this site for help. Just go to the Scripting Help Forum and post your problem. Everyone on this site is helpful, they'll resolve your problem in no time, and you'll learn more then you thought you could from all of them.



    Scripting takes time and effort, the time it takes to learn how to script successfully is all up to you. Its all on how long it takes you to understand information. I have spent plenty of time learning only one thing, so its extremely common if you get stuck on certain points.

    Well thats my introduction! Hope I help you. Notes are great for practice and reference.

    I apologize for my huge amount of double posts, I just realized that I did it so much lol, I will definetly stop it with that.

    If you have Subversion Repository:
    Please Make sure you update your Subversion Repository to ensure you have the new UpText Fonts for Runescape. Scar-Tools-Options-SRL Download-Make Sure Subversion Repository is checked off-CheckOut. After you press checkout, all of your fonts should be updated . Good job, and Thank you. Please say thanks to all SRL members, Developers, and Freddy who have helped with the Runescape Update, they have helped us in the biggest way they possibly could.

    For one last reminder, These are only Notes meant to help those who have already read the beginner some intermediate tutorials. Basically if you have no idea on what that note is about, try not to look at it and instead look up a tutorial on it first, as these are only used as reference for practicing.

    Well Here we go, I hope I help you, you guys are my family, and I only wish to help you and my self on our journey to learning how to script

    A simple script that reinforced sendkeys for me
    SCAR Code:
    program MyFirstTestScript;//Thanks to WhoCares357 from the SRL forums for this help, this is my test script. try it out!
    begin
    Wait(500);
    SendKeys('This is Nicholas R first test'+Chr(13));//Nicholas is my name :D
    Wait(400);
    SendKeys('In four Seconds after this message you will see a message'+Chr(13));//the +Chr(13) is the command for the script to press ENTER
    Wait(4000);//In case ya didnt know, Wait just means for the script to standby, it uses miliseconds not seconds, every (1000) milliseconds is (1) second. This is a way to avoid BanHammer.
    SendKeys('Remember the WARNINGs and REMEMBERs that I placed to avoid implications.'+Chr(13));
    Wait(1000);
    SendKeys('Repeated...');//Words in Pink are WriteLN, those are sentences that are writtin out since the SendKeys command is input. otherwise it would automatically enter in.
    SendKeys(Chr(13));//The grammer of everything in this area has to be 100%, of course the only exception is the comments, which are the green words. Comments can be entered anywere, just put a // and begin typing.
    SendKeys('Remember the WARNINGs and REMEMBERs that I placed to avoid implications.');
    SendKeys(Chr(13));
    end.//End >.> stopThis is Nicholas R first tests here. go head try me out. Ctrl+Alt+R RUNS the script. Ctrl+Alt+S STOPS the script.



    Notes on Using the Function IntToStr
    SCAR Code:
    program Tutorial_on_IntToStr;//This is naming the program.

    var    // Anything under this is used to Declare (represent) the Variables  You should know by now that variables can be changed.
    i, sum: Integer; // This tells SCAR that the letter 'I' and the word 'sum' are Integers.
    Time: Integer; // This tells SCAR that the word Time is also an Integer, which is any Whole Number (+ or -).

    begin //Begins this part of this script until the End, The final Ending of the script is finished with a period(.)
     i:= 1; //in this script... or part of the script, it is said that I:=1.
     sum:= i+1;//In this script...or part of the script, it is said that Sum is I+1. Which in this case is 2. Why? because 1(which is I) + 1 = 2. Duh.
     WriteLn('The sum is ' + IntToStr(sum)); // Dont get confused, WriteLn simply means write these words, 'the sum is' the part after it sais, + IntToStr(sum), this means +(plus) Integer to String(Sum). This means it takes the integer (Sum)and writes that integer(whole number) down. the sum is I (which is 1 as you saw) +(plus) 1(one). Run this script to see the answer.
     Time:= 100;//i told scar that the Time equals 100. so if i tell scar to wait(time), that would mean wait(100), get the jist of it?
     Wait(Time);//This means Wait(100).   since i said in this part of the script ( from begin to end )that Time:=100, scar will know what Time is. do you what time is? in this script? i hope so by now.
    end. // ends it, notice that the end has a period at the end. this means that this is the final line, the script will no longer do anything that is written underneath it.
    // Well now that you sort of understand this script. let me just clear it up.
    // IntToStr(Variable or Constant integer here) means your telling scar to make the integer (number) into a string (Word) now this doesnt mean if you tell it InttoStr(X) and X = 4, it wont say X=four, it will still say X=4. I know my explanations are not clear, just experiment with the numbering in this script, take your knowledge of the basics and try to see if you can understand what this script is trying to do.
    // Var means Variable, you should know this.
    // I,sum: Integer just means that I and Sum are to be taken as Integers. Why should scar need to know this? lets say you type the letters I: in one of your lines, scar will not know the difference if it stands for a number or a letter or etc, unless you tell it. So if I:Integer, this means it can be any whole number. Now scar will know that the letter I: means a number. Then you tell scar between scripts what that number is. In this script, I:=1 :D. simple. Variables help you in many ways, its just up to you to use it efficiently.

    Notes on learning Procedures And Functions
    SCAR Code:
    Program BeginnerScript;//!!!!!!! Study this Script ONE LINE AT A TIME. FOCUS!!!!!!!!!!

    Var
      Logs:Integer;//This is used to Declare a Variable. Logs will now be seen as a number, its up to you to put that number in. Since it is a variable, you may declare it any integer you want at any time.
      Exp:Extended;//This is the same thing, Except Exp is not an Integer, it is an Extended. An Extended is allowed to be any decimal.

    Const
      NumOfLogs = 500;//This simply means NumOfLogs will be seen as the number 500 anywere in your script.
      TreeToCut ='Magic';//TreeToCut will now be seen as 'Magic', which is a string. This is all only reference from you to make it easier for you to type your script.

    Procedure HowManyLogs;//This is a procedure, it is to be included in the main loop after finishing.
    Begin   // Begins this Procedure. Procedures are basically parts of a script, litterally. Procedure HowmanyLogs tells scar to do a specific thing(s) and then stop.
      Logs:= 250;//You want them to cut 250 Logs. Once again Scar does not know that you really want it to cut 250 logs, it just really means in its self. It just takes Logs as 250 now to make it easier for u to understand. so if i say: WriteLn(Logs); It will say 250 in the debug box. get it.
      Exp:= 195.5;//Same thing, we declared what Exp(the extended) means. Scar sees this as a decimal number, 195.5.
      Writeln('we have chopped '+InttoStr(Logs)+' Logs this Session!');// No need to explain, InttoStr(logs) means IntegerToString.The word Logs is the variable it will write. This case it will be 250.: We have chopped+250+logs this session. put it together.
      Wait(500);        //Know it already.
      Writeln('We Want to Chop '+InttoStr(NumofLogs)+' Logs');  //Same thing as 15, only difference is that the constant NumOfLogs is used instead of the variable Logs, NumOfLogs in this case is 500. Since its constantly 500.
      Wait(500);
      Writeln('We are Chopping '+TreetoCut+' Trees!') //Same thing exept its a different Constant.
      Wait(500);
      Writeln('We have gained '+FloattoStr(Logs*Exp)+' Experience!');// FloattoStr(E:extended) Means Extended to String. (Logs*Exp) means 250 times 195.5. We need to use FloattoStr because were using an Extended number(195.5).
    End; // Thats it for this procedure. The only thing i want you to learn is the format. Notice that i name the procedure, tell it to begin, declare my variables, tell it what to do, then end it. Memorize this format.

    Function Wearebored:String;//Learning Functions will be easy if you study it closely. First you put Function Name:Variable;
    Var  //Now you see the variable at the end of the function (string) that means the result of the function must be a string. Yes, Functions have Results, thats the difference from a function and a procedure.
         S:String;// S:String means S is the variable, String is the variable type.
    Begin//Begin the function
                 Result:='What are we going to do now?'; //Result: well result is actually a variable. Only difference is that it does not need to be Declared one, it can be anything you want it as long as you state it in the beginning. in this case its a string.
                 S:='We are very bored chopping all these logs!';//S is allowed to be a string.
                 Wait(500);
                 Writeln(S);// Look closely, Writeln(s) means WriteLn('We are very bored chopping all these logs!') Look closely at what i typed in the function an you will see. S is just short for 'We are very bored chopping all these logs!'. its just made to make your life easier scripting.
                 Wait(500);
                 Writeln(Result);//This types in 'What are we going to do now?'. Why? Look right after We tell scar to begin the function, we tell scar that Result is just short for 'What are we going to do now?'.
                 Wait(500);
    End; // End of This Function.

    Begin   // THIS IS THE MAIN LOOP!!! remember. The procedure and functions we named basically stored the commands we told it. Now we need to tell SCAR that it needs to begin the Procedure, or the Function, or both, or none.
            ClearDebug; //Optional, but this tells scar before it does anything(Since its the first in the mainloop) to clear the Debug box.
            HowmanyLogs;//tells scar to Compile and Execute the Procedure HowmanyLogs; only write the name of the procedure/function. Scar will know what it is.
            Wearebored;// same thing as 39, it tells scar to compile and execute the Function WeAreBored.
    End.// I hope you learned something from this tutorial, no i dont expect you to go and make your own version now, but it would be easier for you to understand if you practice.
    //Remember, a Procedure is basically a list of things for scar to do. Once you tell scar to do whatever is on that list, it will do it, relate that to a procedure. A Function is 95% the same thing, the only difference is that the function has a result that your allowed to declare.

    Notes on learning If Then Else statements
    SCAR Code:
    program NicholasIfthenElseProject;//The point of this tutorial is to show myself (and readers) how to do an If Then Else Script Efficiently.

    Var                    // Variables should be understood now, I just declare what type of Variable each letter stands for.//
       I:Integer;
       B:Boolean;
       E:Extended;
       S:String;

    begin //This is the Main Loop of this Script, from here till the End. Scar follows its intructions.

         Begin // Begins this part.
              Cleardebug;// ClearDebug; Clears the Debug Box. I put it as the first thing to do so i start with a clean box.
         End; // Ends this part, every beginning must have an end.

         I:=400;//The Variable I:Integer; is declared as 400.
         If (I=400) Then//IF I=400 THEN// I is declared as 400, so it will continue to the next line of the script.
         begin //Since I is 400, Scar will begin this part.
              WriteLn('I=400.');//Write in the Debug Box that I=400.
              WriteLn('Good Job, I=400');//Disregard this for now, ill explain later. Its just a comment i leave after u successfully make this script.
         end Else//ENDS this part of the script. If I=400, This part will not go any further. BUT if I does NOT =400, then it will do this part.
         begin//Since I=400, this part would not really happen, but lets say I didnt really =400, then Scar would only do this part.
              WriteLn('I<>400');//<> means Not equal incase you were curious.
         end;// Ends this part, Notice that every beginning has an end, following this tip leaves much less room for error in a If Then Else script.
         
             Wait(1000+Random(1000));// I added this as a final touch, no its not needed at this point, but at the end you'll see why i put it.
         
         B:=True; //Now were using Booleans. Booleans only have 2 meanings, True and False. What happens if its true or false is what you'll be telling it.
         If (B=True) Then//So if B=True then , Begin this line below it.
         begin//Since B=True, Scar will do this line. Not the Else, since b is indeed true, it will do this line instead.
              WriteLn('B=True');//You should know this part, all im doing is telling scar to write in ('B=True') In the Debug Box.
              WriteLn('Your Boolean is True, Which means it still works :D');//Once again a comment, you can honestly delete this if it confuses you. Its just an Extra sentence i added for people who are 1st learning this.Ex: Me :D.
         end else// Now if B is NOT true, Ex: B:=False. Then it will do this line below instead. The beginning of this was Line 29, The ending was Line 32.
         begin//This is what B:=False would do.
              WriteLn('Trigger False')//You can change anything in these sentences. It just sais something depending on the If Then Else.
         end;
         
             Wait(1000+Random(1000));
         
         E:=9.9;//Same thing, Except not were using an Extended. Which is any Real Number Example 1.1 or -133.1312). I used 9.9 to be as simple as possible.
         If E=9.9 Then// IF E=9.9 THEN// You getting the trend here? Depending on what you inserted, Scar will do One thing, or it will do another.
         begin//If E=9.9 Then it will execute this begin.
              WriteLN('E = '+FloatToStr(E)+'.');//You should by now know what FloatToStr(Extended) is. FloatToStr means Extended to String, (extended) means any Extended Variable.
              WriteLN('Your Extented Number Statement works :D');//Once again. A Comment. >.> sorry if it confuses you, skip this for now if you honestly dont understand it. Its just a sentence i made.
         End else// Ends this part of the Script. So the beginning was Line 41, the ending was  Line 44.  Just reminding you that every begining has an end.
         Begin  // Now if E did not equal 9,9, then it would do whats below this line till the end;.
              WriteLN('E <> 9.9'); //Once again <> Means Not Equal To.
         End;
         
             Wait(1000+Random(1000));

         S:='This is String 1 of 2';// Strings should be the easiest for you to understand at this point. or at any point for that matter >.>. You got the brain, I know it.
         If S='This is String 1 of 2' then //IF S='This is String 1 of 2' Then Continue with the next line. But if its NOT = to W/e, then do the Else part.
         begin//Begins this part if S is correct.
              WriteLn(S);//Writes what S means. Remember S is a string, theres no need to convert it like IntToStr. Just put the variable S which stands for a string.
              WriteLn('Your Script is good.');// Comment. Soz. OMG LEAVE ME ALONE!!!!COMMENT:STRING!!! COMMENT:=LEAVE ME ALONE!!!!! i forgot the ''.... shame on me. Lol Inside Joke, only you guys get what im trying to say.
         end else//Now if the String was False, and it did not = w/e line 52 said. Then it would do this.
         begin
              WriteLn('S<>This is String 1 of 2'); //Get it? I hope so. If you still are honestly unsure, or just want to practice, make a new tab, and try to do the same thing i did. Type my whole script back disregarding these //greenletters. And say everything step by step as you go.
         end;//Ends this part.
         
             Wait(1000+Random(1000));
             
         Begin    //If your script runs successfully, then the messages below should come out at the end.
              WriteLn('Congratulations, If your reading this message, All of your If, Then, Else Statements work :D Nice job!');
              Wait(400);
              WriteLn('You have learned a hard step in Scripting, Great work.');
         End;
         
              // The whole point of this script was to help me learn If, Then, Else. As it is a hard step for me, but why just make all these notes for my self. I learn better when I Feel like im teaching other people what to do. It sticks in.
              //Try it yourself, make a script comparing alot to mine, type in comments (greenwords)every line to remind yourself what each line does. if it doesnt work when you run, compare each and every line to mine. Once you get it going, just study it.
             
                       //Last Words: Practice makes perfect, but in this case, i just want you to learn the Format first. Take everything 1 step at a time. Learn your mistakes if you get them, if your new to scripting, 600% of the time you will repeat the same mistake over and over. learn from them. Hope i helped. Peace out.
    end.

    Here is a script that incorperates some of the basics that you've learned
    SCAR Code:
    Program BeginnerScript;//!!!!!!! Study this Script ONE LINE AT A TIME. FOCUS!!!!!!!!!!

    Var
      Logs:Integer;//This is used to Declare a Variable. Logs will now be seen as a number, its up to you to put that number in. Since it is a variable, you may declare it any integer you want at any time.
      Exp:Extended;//This is the same thing, Except Exp is not an Integer, it is an Extended. An Extended is allowed to be any decimal.

    Const
      NumOfLogs = 500;//This simply means NumOfLogs will be seen as the number 500 anywere in your script.
      TreeToCut ='Magic';//TreeToCut will now be seen as 'Magic', which is a string. This is all only reference from you to make it easier for you to type your script.

    Procedure HowManyLogs;//This is a procedure, it is to be included in the main loop after finishing.
    Begin   // Begins this Procedure. Procedures are basically parts of a script, litterally. Procedure HowmanyLogs tells scar to do a specific thing(s) and then stop.
      Logs:= 250;//You want them to cut 250 Logs. Once again Scar does not know that you really want it to cut 250 logs, it just really means in its self. It just takes Logs as 250 now to make it easier for u to understand. so if i say: WriteLn(Logs); It will say 250 in the debug box. get it.
      Exp:= 195.5;//Same thing, we declared what Exp(the extended) means. Scar sees this as a decimal number, 195.5.
      Writeln('we have chopped '+InttoStr(Logs)+' Logs this Session!');// No need to explain, InttoStr(logs) means IntegerToString.The word Logs is the variable it will write. This case it will be 250.: We have chopped+250+logs this session. put it together.
      Wait(500);        //Know it already.
      Writeln('We Want to Chop '+InttoStr(NumofLogs)+' Logs');  //Same thing as 15, only difference is that the constant NumOfLogs is used instead of the variable Logs, NumOfLogs in this case is 500. Since its constantly 500.
      Wait(500);
      Writeln('We are Chopping '+TreetoCut+' Trees!') //Same thing exept its a different Constant.
      Wait(500);
      Writeln('We have gained '+FloattoStr(Logs*Exp)+' Experience!');// FloattoStr(E:extended) Means Extended to String. (Logs*Exp) means 250 times 195.5. We need to use FloattoStr because were using an Extended number(195.5).
    End; // Thats it for this procedure. The only thing i want you to learn is the format. Notice that i name the procedure, tell it to begin, declare my variables, tell it what to do, then end it. Memorize this format.

    Function Wearebored:String;//Learning Functions will be easy if you study it closely. First you put Function Name:Variable;
    Var  //Now you see the variable at the end of the function (string) that means the result of the function must be a string. Yes, Functions have Results, thats the difference from a function and a procedure.
         S:String;// S:String means S is the variable, String is the variable type.
    Begin//Begin the function
                 Result:='What are we going to do now?'; //Result: well result is actually a variable. Only difference is that it does not need to be Declared one, it can be anything you want it as long as you state it in the beginning. in this case its a string.
                 S:='We are very bored chopping all these logs!';//S is allowed to be a string.
                 Wait(500);
                 Writeln(S);// Look closely, Writeln(s) means WriteLn('We are very bored chopping all these logs!') Look closely at what i typed in the function an you will see. S is just short for 'We are very bored chopping all these logs!'. its just made to make your life easier scripting.
                 Wait(500);
                 Writeln(Result);//This types in 'What are we going to do now?'. Why? Look right after We tell scar to begin the function, we tell scar that Result is just short for 'What are we going to do now?'.
                 Wait(500);
    End; // End of This Function.

    Begin   // THIS IS THE MAIN LOOP!!! remember. The procedure and functions we named basically stored the commands we told it. Now we need to tell SCAR that it needs to begin the Procedure, or the Function, or both, or none.
            ClearDebug; //Optional, but this tells scar before it does anything(Since its the first in the mainloop) to clear the Debug box.
            HowmanyLogs;//tells scar to Compile and Execute the Procedure HowmanyLogs; only write the name of the procedure/function. Scar will know what it is.
            Wearebored;// same thing as 39, it tells scar to compile and execute the Function WeAreBored.
    End.// I hope you learned something from this tutorial, no i dont expect you to go and make your own version now, but it would be easier for you to understand if you practice.
    //Remember, a Procedure is basically a list of things for scar to do. Once you tell scar to do whatever is on that list, it will do it, relate that to a procedure. A Function is 95% the same thing, the only difference is that the function has a result that your allowed to declare.

    Here is just a script I made to practice around, see if you can understand what it will before running it!
    SCAR Code:
    program Miningtime;

    Var
    TodaysDate:String;
    AmountofOreMined:Integer;
    Exp:Extended;

    Const
    Oretype= 'Iron Ore';//This is the type of Ore were going to Mine.
    HowManyOre= 500;//This is How Much Ore we want to Mine.

    Procedure HowManyOre1;//This Procedure tells you how much Ore you want to Mine.
    Begin
    Wait(500)
    WriteLn('We Want to Mine '+IntToStr(HowManyOre)+ Oretype)//in this simple procedure there is only 1 action.
    //We told Scar to tell us How much of the Ore we want to mind and what type or ore it is.
    Wait(500)
    End;

    Procedure HowMuchExperience; //This Procedure Tells you how much experience you will gain.
    begin//Begins this procedure.
    Wait(500)//Waits Half a second.
    AmountofOreMined:=400;//AmountofOreMined will now be seen as 400.
    Exp:=100;//Exp will now be seen as 100.
    WriteLn('We have Mined'+InttoStr(AmountofOreMined)+' of the selected Ore');// If you dont see how this worsk, Study this closely, You should know how WriteLn works, +IntToStr(AmountofOreMined) means Integer to String. (AmountofOreMined) means 400.
    Wait(500+random(400)); //Waits 500+ 1 to 399; Milliseconds.
    WriteLn('We have Gained'+FloattoStr(AmountofOreMined*Exp)+' Experience from Mining this Ore'); //FloatToStr(AmountofOreMined*Exp) means ExtendedToString, Amount of Ore Mined Multiplied by Exp.
    End; // Ends this procedure.

    Procedure Combine;//This procedure is supposed to put Procedure HowmanyOre1 with How much experience together. it will have the same Outcome. But with some extras.
    begin
    TodaysDate:='Today is Sunday, November 15,2009';//I set TodaysDate as a String in the Variables.
    AmountofOreMined:=400;//I again declared AmountofOreMined as 400 in this procedure.
    Exp:=100;// Exp is seen as 100 now.
    Wait(600) //Waits 600 Milliseconds.
    Writeln(TodaysDate+Chr(13)+'We Want to Mine'+IntToStr(HowmanyOre)+Oretype);//Write in the Debug Box, Todaysdate+Chr(13)-Which means Enter,+'Text'+IntToStr(HowmanyOre)Which is a constant,+ Oretype Which is also a constant.
    Wait(499+Random(90))
    Writeln('We have Mined'+IntToStr(AmountofOreMined)+OreType+Chr(13)+'We have gained '+FloattoStr(AmountofOreMined*Exp)+' Exp From Mining Today');// Try to figure this one out. Run the Script. And see if you can make it out.
    End;// Ends this Procedure.



    begin // MAIN LOOP!!!! Only Procedures set under this begin are started.
    Cleardebug;//Clears your Debug box.
    combine; //Starts the Combine Procedure.
    end.

    Notes on learning cases
    SCAR Code:
    // Learning Case Statements for the first time requires FOCUS//
                                        // This script should be read after reading a tutorial on cases for a little.//
                                        // Observe my script, Read it line to line, Sorry my comments run so off.//
                                        // Take your time, You have all the time in the world, practice makes perfect. //

                                        // This should be used as a reference to study if anything, hope i help you:D//

    program UnderstandingCases;// These notes are meant to clear some confusion on cases. Bare with me, as im learning this now for the first time.//
    //This Procedure will be showing you exactly how cases are used.

    Procedure WhichStat(Stat : String);//Notice How after i name the procedure WhichStat, I put (Stat : String). Try not to get confused, it really means WhichStat(Stat). We just tell scar that Stat will be a String, which is pink text wrapped in ''.
    begin //Begins this Procedure.
      case lowercase(Stat) of // Dont get confused, this is the main part. <case> means the function case. after reading some of a basic tutorial you should know that cases are just used to make it easier for yourself while writing. Instead of Writing a huge code(or part of a script), you can save yourself alot of work by telling scar that if you type in, Whichcase(<Define which Stat here>) regardless of how you typed it, Scar will see it as you put. Now that was a extremely harsh way to explain to you, but lets go to the next line.
      'agility': WriteLN('The Stat Chosen Is Agility'); //Notice that i put the word Lowercase() next to case, this just means Lowercase any string with the name agility.
      'attack':  WriteLN('The Stat Chosen Is Attack');//Lowercase attack, means if i put WhichStat('Attack') or WhichStat('attAcK') or WhichStat('ATTaCK') or any way of ('attack'), Scar will see it as 'attack' and do whatever its told to do next, which in this case is to Writeln(attack).
      'defense': WriteLN('The Stat Chosen Is Defense');//if i type in the mainloop, WhichStat('Defense'), Scar will write in Defense. Try to study this slowly, focus and you will understand.
      else  // If Which(Stat<Which is any string instead of Stat> does not match agility, attack, or defense, then it will do this instead.
                 WriteLN('Stat not available =['); //This would only occur if i told scar WhichStat(Fishing), or WhichStat(Dog). Since I only put in agility, attack, and defense as Stats, scar will only accept those with WhichStat('Agility Attack or Defense'). Get it a little?
      End;  //Ends the casing.
    End; //Ends this Procedure.

    begin  // Main Loop.
      WhichStat('AtTack');//Begins this Procedure. I told scar to begin <WhichStat('Attack')> Can you guess what will happen if I pressed run?
    end.  //Ends Main Loop.

    // I sooooo APOLOGIZE for my >.>....... Bland language. its honestly the only way i can explain it right now.
    // The Whole point of the Case statement is to make it easier for you when you write your mainloop. Least thats the whole point i see so far as I just learned it 10 min ago.
    // You can relate the Case statement just like the If,Then,Else system. this may help you understand it a little better. its a little similar :D
    // Dont try too hard with this, still dont get it? or even if you do get it. then do this.

    //Assignment: Open a new tab, and try to make your own Case Statement without looking at my notes so much, if you can accomplish this, your good. Dont be afraid to look back, try to see if you can make at least 1 case line without looking back :D//

    Notes on Learning Repeat..Until Loops
    SCAR Code:
    // :D thanks for looking at my reference, i hope it helps\\
                                            // Please remember, Focus line by line on this script if your trying to understand it\\
                                            // This script is used as a reference, not for tutorials. you should have read some part of a tutorial about loops before looking at this. //
                                            // Hope I helped you, remember, Practice makes perfect.

    program UsingLoopsRepeatandUntil;// Program name

    Procedure RepeatUntil;   // Procedure name
      Var // Declares the variable
      I:Integer;
      S:String;

    begin
      Cleardebug; // Clears the debug box.
      S:='Nice Job';// I Declared that S means 'Nice Job' which is a string since its wrapped in margins.
      Repeat // Here i tell scar to begin repeating whatever is under this. It will repeat whatever is under this until it reaches its number.
      Wait(500);// Waits half a second.
      Inc(I);// Here is a new function, Inc(Integer;) means Add 1 to this integer. Im not sure, but i think Inc is short for  stands for Increase.( just my opinion.)
      WriteLN('I = '+IntToStr(I)+'.');// This tells scar to write in the debug box, 'I ='+ whatever the integer is + '.' , you should know this by now :D
     
                   // I put a space from 14-17 because i want this part to stick out to you.
      If (I < 5) Then   // IF (I is LESS then 5) THEN...
      WriteLN('I less then 5'+Chr(13));// Write in the debug box, 'I is less then 5'. the Chr(13) means enter, which creates a space in the debug box.
      If (I = 5) Then  // IF (I EQUALS 5) THEN...
      WriteLN((S)+Chr(13));// Write in the debug box, 'Nice Job(remember that i told scar what S meant? look at line 10 if you dont.)' + Hit enter.
      // There is no need for else here as the script does find it necesary. If I is less then 5 then..... else nothing.. lol.

      Until I = 5// see that repeat at line 11? now this script will repeat everything from 'repeat to Until'; UNTIL I = 5.
    End; // So after looking carefully at this script, you can see that during each repeat, I is increased by 1.
     //After I = 5 in the script, it will end.
    begin // BEFORE we run this script, try see if you can tell whats gonna go into the debug box, if you get it correct, pat yourself. your doing great. :D
      RepeatUntil;// Begins this Procedure.
    end.   // Ends this Procedure.

    Notes on learning While..Do Loops
    SCAR Code:
    program UsingLoopsWhileandDo;    // While..Do Loops are almost the same as repeat..until, but if used in the right place, makes the code shorter and easier to understand.

    Procedure Whiledo; //I name the procedure here.
      Var
      I:Integer;

    begin              // Begins this procedure.
      while I <> 3 Do   // I made a while .. Do statement, i told Scar WHILE I is NOT equal(<>) 3, DO ...
      begin  // the Begin here is necessary if you tell scar to do more then one thing.
      Wait(500);
      Inc(I); // Inc(I) increases I by one.
      WriteLN('I is '+IntToStr(I)+'.');// Write LN ('I is '+IntToStr(I)+'.') means write in the debug box, I is+ IntToStr(I)<Integer to string (I)>+.

      If I = 3 Then   // I added an If... Then statement in this procedure, it just sais that once I = 3, write this in.
         Begin
              Wait(500+random(50));
              WriteLN('Great Job :D');
         end;
      end;  // The Script will end here after it equals to 3.

    end; // Ends this Procedure.
                                                        // Hope I Helped you somehow, Notes are a great reference \\
    begin
      cleardebug;
      Whiledo;
    end.

    Notes on Learning For..Do Loops
    SCAR Code:
    program UsingLoopsForToDo;     // Learning and Practicing this loop requires a little more focus. Concentrate.  LINE BY LINE!
                                   // For To Do Loops increase the Variable by 1 each repeat. Once the Number is reached, it stops repeating.
                                   // These are only Notes once again, please use them as a reference.
    Procedure ForToDo;  // ForToDo is the Procedure name.
    Var     // Here I declare my Variables Locally
      I:Integer; // I is now an Integer.
     
    begin      // Begins the Procedure!
    For I:= 0 to 5 do// Here I made a Loop, FOR I:= 0 TO 5 DO...
     begin  // Try not to get confused from the statement above, I will explain it if you still dont understand it. Anyways this Begins the statement.
      Wait(500+Random(80));// You should know this by now >.>
      WriteLN('I = '+IntToStr(I)+'.'); // This tells scar to write in the debug box what I is in each loop.
     end;    // Ends this statement
    end; // Ends the Procedure!
     
    begin  // Main Loop!!!!
    cleardebug;// Clears the Debug Box.
    ForToDo; // Begins this Procedure.
    end.// Ends the Main Loop!!!!

    // For To Do Loops Increase the Number by 1 each loop. I told scar that I:= 0 when it started. and when it increased to 5, stop the Loop.
    // Congratulations If you understood the loops given to you. Now the task is on you, make YOUR own script and see if you can do the same thing :D. This is the BEST way to learn.

    Notes on Learning DTM
    SCAR Code:
    program Learning_DTMs;
    {.include SRL/SRL.scar}

    Function EquipBoots : Boolean;
    var
      Boots, x, y : Integer;
    begin
      Boots := DTMFromString('78DA63CC626660D8C4C8800C4CD49519F8813' +
           '448F43F1030C602D56C4455C3C0C0042661A28C4940358B09A829' +
           '06AAD94A404D0650CD7EFC6A00E51F0A2E'); // DTM Declared! This is the DTM for my leather boots. Be sure that you use/make your own if possible.
      Writeln('Script started, beginning Function');
      if FindDTM(Boots, x, y, MSX1, MSY1, MSX2, MSY2) then // Scar searches for the DTM in MS, Mainscreen. It saves the Coordinates into X, Y.
      begin
        Writeln('Found Boots DTM :D');
        Wait(1000);
        MMouse(x, y, 4, 4);    // Scar places the mouse on the coordinates set to X, Y. In this case, it would be the boots (Line 12).
        Writeln('Next step: Attempting to find Uptext.');
        Wait(1000);
        if IsUpText('eather') then  // Looks for the Uptext (top left corner) for the letters 'eather'.
        begin
          Writeln('Uptext found :D');
          Wait(1000);
          Mouse(x, y, 0, 0, false); // Moves the Mouse to the Coordinates saved to X, Y. Which is still the same thing, the boots (Line 12). I told scar to right click, which brings up a list in runescape as we all know.
          if ChooseOption('5') then // Tells scar to pick an option which has the number '5' in it. In the Bank, Scar will pick Withdraw 5. Get it?
          begin
            CloseWindow; // Closes the bank window.
            Wait(100+Random(200));
            if FindDTM(Boots, x, y, MIX1, MIY1, MIX2, MIY2) then // Now this is were we get new X, Y Coordinates. We tell scar the exact thing (Find the Boots DTM) only difference is that its going to look in MI. Which is the Main Inventory.
            begin
              Mouse(x, y, 4, 4, True);// Scar will move the mouse to the X, Y and left click.
              Writeln('Found Boots and Clicked Them, Checking to see If they are Equiped...');
              GameTab(tab_Equip); // GameTab(tab_-----) means click on this game tab. in this case its the Equip Tab. GameTab(tab_Equip) :D
              Result := FindDTM(Boots, x, y, MIX1, MIY1, MIX2, MIY2);  // The result will be true now if Scar can find the boots in the equip tab.
              if Result then
              begin
                Writeln('The Boots are Equiped :D Logging out');
                Logout;// Logs out of RS.
              end else
              begin
                Writeln('The Boots are not Equiped D: Logging out anyway :D');
                logout;
              end;
            end else
            begin
              Writeln('Could not find Boots in Inventory');
              Logout;
            end;
          end else
          begin
            Writeln('Could not find Option Withdraw 5');
            Logout;
          end;
        end else
        begin
          Writeln('Could not find uptext');
          Logout;
        end;
      end else
      begin
        Writeln('Could not find Boots DTM');
        logout;
      end;
      FreeDTM(Boots); // Be sure to free your DTM when your finished with it.
    end;

    begin
      SetupSRL;
      ClearDebug;
      ActivateClient;
      Wait(1000+random(500));
     
      if EquipBoots then
        writeln('Function EquipBoots 100%')
      else
      begin
        writeln('Function EquipBoots not 100%');
        logout;
      end;
    end.                                                                  .

    Notes on Learning Bitmap
    SCAR Code:
    program Understanding_Bitmaps_Step_by_Step;
    {.include SRL/SRL.scar} // Remember to include SRL in all of your scripts. I set my default script with it already included :D.

    Function ClickLogs: Boolean;// Here we name the function, the function's result will be a Boolean.
    var   // Variables are declared.
      Logs, x, y : Integer; // Notice that I put all of my Integer's in the same line, only seperated by a ','. This makes it look neater :D

    begin
      Logs := BitmapFromString(7, 7, 'beNqzEHa1EYUjJysRIHKwEEZmA5' +
           'GtmZC1iRAy28JQ0FRfwFiHH8jWVec10OIDIiAXiIDicARUBkRANRA' +
           'E1AtHENOwIABcEBka'); // Sorry guys, cant explain this. These are notes after all,I cant explain it as it itll take a while without pictures. Look it up :D but you should know it by now :O/
      GameTab(tab_Inv);// This means click the Inventory icon in runescape.
      if FindBitmapToleranceIn(Logs, x, y, MIX1, MIY1, MIX2, MIY2, 15) then // FindBitmapToleranceIn is just like find color, only it finds the bitmap. Once the bitmap is found, Scar saves the bitmaps coordinates in X and Y.
      begin  // So IF scar finds that bitmap in runescape THEN do this.
        Writeln('The Log Bitmap has been Found!');  // Tells you that the bitmap has been located.
        MMouse(x, y, 4, 4); // Moves the mouse *does not click* to the coordinates X and Y. X and Y in this case is the bitmap location (Line 13).
        If IsUpText('illow') then // IsUpText looks for the text on the top left Main interface. If TheUpText has the letters 'illow' in it, then it will continue.
        begin   // So IF scar finds the words 'illow' in the Up Text, THEN.
          Writeln('IsUpText found');// Tells you that the IsUpText was found.
          Wait(200+random(100)); // <Done this, Know that>
          Mouse(x, y, 0, 0, true); // Moves the Mouse * and clicks *. It moves the mouse to the location saved to X, Y. No Randomness is needed since the mouse is already on the logs (Line 16). So i put 0, 0 as the randomness. I also put True, which means Left Click.
          Result := True; // The Result is True After you click the logs.
        end else
          Writeln('IsUpText was not Found'); // This will show if the uptext could not be found.
      end else
        Writeln('The Log Bitmap has not been Found.'); // This will show if Scar could not find the log bitmap.
      FreeBitmap(Logs);// *** IMPORTANT *** make sure you FREE your BITMAP at the end of the function. Not Freeing it will cause massive lag.
    end;

    begin
      Cleardebug; // Clears the Debug box.
      SetupSRL;  // Sets up SRL.
      ActivateClient;  // Switches to the RS Window.
      Wait(1000+Random(200));
      If ClickLogs then  // If ClickLogs result is True Then..
        Writeln('The logs have been clicked.')
      else  // But if its false then...
        Writeln('The logs have not been clicked.');
    end.
    ----------------------------------------------------------------------------------------
    Notes on Learning DDTM
    Heres some notes on learning DDTM's. Hope they help you. Make sure you know what your doing.
    SCAR Code:
    // These Notes are to Reinforce learning DDTM's. Please make sure you know what you are doing before reading my notes, Know how DDTM's are made.
    // Coh3n's All-In-One Tutorial explains how DDTM's are used, as well as how to use the DDTM Editor.
    // For this Tutorial we will be walking out of the Lumbridge Spawning Area AKA The Castle Courtyard.
    // Lets use our Home Teleport Spell to get ourselves in Position. After you teleport to Lumbridge, Were ready to start practicing.

    program Learning_How_To_Use_A_DDTM;
    {.include SRL/SRL.scar}
    var
    DDTMTolerance : Integer; // DDTMTolerance will be used to set our DDTM's Tolerance number, well be using it in 2 functions, so well declare it globally.

    // Alrighty, Lets start off setting our Compass in one direction, usually setting the Compass direction is made to make it easier on you, but lets just set it North for now.
                                        // Now were going to actually make our DDTM,You should know how to do this, Lets take a screenshot of our Screen. (via Prt Src, Print Screen etc..)
                                        // Open up DDTM_editor found in Includes-SRL-Scripting Tools. Image - Paste Image. The Runescape Screenshot should come up.
                                        // Scroll over to your Minimap, And look for the Road/Area you want to walk to. Ill be walking anywere along the Road heading North(Near the Musician/Music Guy).
                                        // First click a Point based on the area you want to walk in, It doesn't need to be specificly specific, then pick 3 subpoints in the area that will connect to the MainPoint. This is the area that Scar will search in.
                                        // After that, Set the Area Size for each point chosen to 1. And boom, thats our DDTM, The Area Size can be adjusted, but thats basically how much of the area scar will search in, the bigger, the more of an area.
                                        // Go to File > DDTM To Text. Copy and Paste that into Scar :D. Heres mine.
                                       
    // There are plenty of things here, these are our settings for the DDTM that we created. A lot of code no? but its all very easy, as you only need to change a few easy things.
    function SetDDTM: Integer; // The Functions name is SetDDTM.
    var // Here are the variables for this Function.
      dtmMainPoint: TDTMPointDef; // Dont worry about this. Leave it there.
      dtmSubPoints: Array [0..3] of TDTMPointDef; // You should know what an Array is, and its telling SCAR that there are 3 Subpoints.
      TempTDTM: TDTM; // Dont Worry about this. Leave it there.
    begin   // Boom, the hard part is done. What?? We didnt even do anything, well really thats the hard part, it looks confusing but its not. Now for the settings, these wont look so confusing as the top did.

      dtmMainPoint.x := 953; // Remember the first point you picked? Well that was your MainPoint, Its Coordinates on the MiniMap were saved on to X and Y. This is telling you the Coordinates.
      dtmMainPoint.y := 244; // I dont even touch these points, just leave the points of x and y there for anything you see in this function, its that simple.
      dtmMainPoint.AreaSize := 1; // The AreaSize, remember I told you to set it to 1? well, if you did it, this should say AreaSize := 1, if not you can always set it here. So if its 0, make it 1. If the AreaSize is 0 Scar has no area to search in.
      dtmMainPoint.AreaShape := 0; // AreaShape, 0 is for Rectangle I believe. Just keep this the way it is.
      dtmMainPoint.Color := 8226445; // The Color that the point had. I clicked on the Road, So the Color, 8292241, was actually the RoadColor. Keep in mind a lot of the AutoColors in SRL are broken, so its wise to leave the colors as they are.
      dtmMainPoint.Tolerance := DDTMTolerance; // The Points Tolerance, Which is how hard the Color(Or The actual DDTM) will be looked for, DDTMTolerance will be adjusted when we get into the next function. For now just put it into the Tolerance.
                                   // Well thats it for the Main Point, its really simple. Now we gotta do the same thing for all of the subpoints. Notice, we really haven't touched much of the settings xD. We really don't you just need to know what your doing.

      dtmSubPoints[0].x := 953; // Leave it.
      dtmSubPoints[0].y := 244; // Leave it.
      dtmSubPoints[0].AreaSize := 1;  // Make sure its at least set to 1.
      dtmSubPoints[0].AreaShape := 0; // leave it.
      dtmSubPoints[0].Color := 8226445;// The Color, IMO, I would leave it as is. As AutoColors dont work right now.
      dtmSubPoints[0].Tolerance := DDTMTolerance; // The Tolerance, were gonna set it.

                                // Pretty much just check everything to make sure its all correct. Lets move to the Next Function, The actual Walk Function.
      dtmSubPoints[1].x := 946;
      dtmSubPoints[1].y := 233;
      dtmSubPoints[1].AreaSize := 1;
      dtmSubPoints[1].AreaShape := 0;
      dtmSubPoints[1].Color := 8226445;
      dtmSubPoints[1].Tolerance := DDTMTolerance;

      dtmSubPoints[2].x := 944;
      dtmSubPoints[2].y := 237;
      dtmSubPoints[2].AreaSize := 1;
      dtmSubPoints[2].AreaShape := 0;
      dtmSubPoints[2].Color := 8226445;
      dtmSubPoints[2].Tolerance := DDTMTolerance;

      dtmSubPoints[3].x := 953;
      dtmSubPoints[3].y := 252;
      dtmSubPoints[3].AreaSize := 1;
      dtmSubPoints[3].AreaShape := 0;
      dtmSubPoints[3].Color := 8226445;
      dtmSubPoints[3].Tolerance := DDTMTolerance;

      TempTDTM.MainPoint := dtmMainPoint;
      TempTDTM.SubPoints := dtmSubPoints;
      Result := AddDTM(TempTDTM);
    end;

    Function WalkToArea : Boolean; //WalkWithDDTM is going to now click on the area we specified. Its result will be a boolean.
    var // Were going to set X and Y for our functions. Were also going to make a variable for the actual DDTM.
      x, y : Integer;
      TheDDTM : Integer; // Well use this to declare the Function SetDDTM. Ill explain that soon.
    begin // Begins the Function.
      TheDDTM := SetDDTM; // TheDDTM will be the Function SetDDTM.
      DDTMTolerance := 5; // The DDTM's Tolerance is now 5. The Point of setting the DDTMTolerance this way is so it can be changed when needed. You'll see what I mean.
      if not LoggedIn then Exit; // Simple Failsafe.
      MakeCompass('n'); // Makes your compass Point north, usually you would put this in the direction needed. I took the screenshot while facing north.
      SetRun(True); // Turns on Run Mode.
      repeat // Scar will Repeatedly do this until...
      if DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then // DTMRotated searches for a DDTM specified. As I set it, it will look for the DDTM in the Minimap, then it will set the Coordinates to X and Y.
      begin
        Writeln('Found DDTM on Minimap, Attempting to Click the Point');
        Mouse(x, y, 4, 4, True); // Clicks the Points on X and Y, which is the DDTM.
        Result := True; // The result is True after Clicking the DDTM.
        Break; // Breaks out of the Repeat..Until Loop.
      end else // So if the DDTM was NOT Found..
      begin
        Writeln('Did not Find the DDTM, Increasing Tolerance'); // It will say this if the DDTM is not found.
        IncEx(DDTMTolerance, 5);// You should know what IncEx does, it increases the Variable by 5 each loop.
        Writeln('The DDTM Tolerance is '+IntToStr(DDTMTolerance)+'.'); // It will write the Current DDTMTolerance.
      end;
      until DDTMTolerance >= 50; // It will stop repeating the loop until the Tolerance is greater than or Equal to 50.
      DDTMTolerance := 5; // Set back the DDTMTolerance to 5.
      FreeDTM(TheDDTM);// IMPORTANT, Free your DDTM when your done. It may cause Heavy Lag if not Freed.
    end;
        // Well, I know I pelted alot of information instead of Notes, But its Notes are not really needed as a lot of the things are self explanatory.
        // So Heres what we did.
        // We Made the DDTM - Copied and Pasted its Functions into Scar - Adjusted some Information IF needed - Plugged in the DDTM Function into the Walking Function - End.
        // Now for the Main Loop.

    begin // Main Loop!!!
      SetupSRL; // Compiles the SRL Folder.
      ClearDebug; // Clears your Debug Box.
      ActivateClient; // Activates your Client. Make sure you dragged the Black Crosshair over the Runescape Window.
      if WalkToArea then
        Writeln('Walked to Area!')
      else
        Writeln('Did not Walk to Area');
    end.
    // IMPORTANT NOTE!!!, The biggest reason why some DTM's don't work is because the Color is set wrong. Usually use the Color picker to get the color Needed, and paste the color onto the MainPoint/Subpoints.
    // I Know these were harsh notes, But you have to practice. Practice makes perfect.
    ----------------------------------------------------------------------------------------
    Learning RadialWalking

    Heres the Notes for RadialWalking Try to follow along line by line. You should have read a tutorial on using Yakman's Radial Walking Aid like in Coh3n's All in One Guide or at least know how to use it. If not Please go read a tutorial first before continuing.
    SCAR Code:
    //Hey guys, Here are some Notes on RadialWalking.
    //I suppose you already know how to use Yakman's RadialWalking Aid from a tutorial (such as Coh3n's All in One Tutorial).
    //The Key Function in this Notes is the RadialWalkTolerance Function. It is new to SRL and should be added into your MapWalking Include in the Core of your SRL folder.
    //Here we go, Make sure you read the notes line by line.

    program Learning_How_to_RadialWalk;// Radial Walking is much easier then using DDTM's. It is also accurate with the new Function RadialWalkTolerance.
    {.include SRL/SRL.scar} // I dont even need to tell you this by now, Including SRL into your script is the first thing you do.

                            // Here is our big Step, For this we will be walking out of the Lumbridge Spawning Area(Or courtyard).
                            // Use the Home Teleport spell in your spellbook to put your character in the spawning area.
                            // Now we start out our Function.

    Function WalkOutOfCourtyard : Boolean; // This is our first function, Walking out of the Spawning Area. The result is a boolean.
    begin // Begins this function
      MakeCompass('n'); // MakeCompass('n') makes the compass Point north. You can use 'n','s','e','w'.
      SetRun(True); // SetRun(True) Enables Running. (False) Turns it off.
      if not LoggedIn then Exit; // This is a great yet simple failsafe. if your NOT logged in then Exit ( Or stop the Script). Get into the habbit of including this in all of your functions.
                           // The next line will be our Radial Walk. For this ill show us the Function one more time.
                           // Remember! This function is new to SRL, please make sure you put the function in your MapWalk Include.

                           // function RadialWalkTolerance(Color, sRadial, eRadial, r, modX, modY, Tol: Integer): Boolean;
                           //By: Coh3n
                           //Description: Same as RadialWalk, but with a tolerance.

                           // For Color we will be using FindLumbyRoadColor. Its a nifty function in SRL that will find the Roadcolor in Lumbridge.
                           // For StartRadial, EndRadial, and Radius, were gonna want to open up Yakmans Radial Walking Aid.
                              // After you Run the Radial Walking Aid, Go back to Runescape, Set your compass North, go back to the Radial Walking Aid and click Find RS, and then Capture the minimap.
                              // You should now see your minimap to the right of the screen.
                              // Next move the Red Line to the Radius(How far you want to search) for the road and click. I put mine at the edge of the road all the way east near the intersection going up and down.
                              // To the top left of the screen you will see the Radius, Mine is 66 :D. Anyways, Thats the Radius (r) in the RadialWalkTolerance Function.
                                // Now for StartRadial, put the red line on the top or bottom of were you want to search and click. This is your start Radial, I put mine on the edge of the road heading upward. Mine is 69.
                                // For EndRadial, you will choose the end of were you want to search, I chose the edge of the road heading downward toward those shops. My end radial is 79.
                                  // Thats all we need really, if you know with Yakman's Radial Walking Aid (which you should) then you know how to use the show path button to see how your search area is set.
                                  // Now that we have our Color, Radius, Start Radial and End Radial, were going to plug them into our function.

      if RadialWalkTolerance(FindLumbyRoadColor, 69, 79, 66, 1, 1, 15) then // The ModX and ModY you shouldnt need to worry about right now, just set those for 1. The Tolerance is the key to accuracy here, I set mine to 15 and it works pretty nicely.
      begin
        Writeln('Walking out of Lumbridge Castle Courtyard');
        Result := True; // The Result is true after SCAR clicks on the minimap.
      end else // So if Scar didnt find that RadialWalkTolerance then..
        Writeln('Did not find point on Minimap');// So if Scar didnt find the point on your Minimap, Scar will tell you that it did not find the point.
    end; // Ends this Function.

    begin // MAIN LOOP :O Here we go.
      SetupSRL; // IMPORTANT!!! make sure you put this in your MAINLOOP!!! SetupSRL compiles the SRL folder with its includes and all that.
      ClearDebug; // Clears your debug box.
      ActivateClient; // makes sure the Runescape window is clicked on.
      if WalkOutOfCourtyard then  // So if the Result of  WalkOutOfCourtyard was true, Then...
        Writeln('Walked Out of Lumbridge Castle Courtyard :D Great Job')
      else
        Writeln('Did not Walk out of Lumbridge Castle Courtyard D: Check your RadialWalkTolerance');
    end.// Ends the Main Loop. Remember the last End has a (.) at the end of it.

    // Please make sure you dragged your crosshair onto the Runescape window.
    // Understand everything you did here :D before testing it, the biggest concern is that your able to write the RadialWalkTolerance Function Correctly and get it to click.
    --------------------------------------------------------------------------------------------------------------------
    Notes on FindColorSpiralTolerance

    Hey everyone, after that Runescape update a couple of important things got messed up. For one, The Uptext Font had been changed, making us have to update the fonts in order to get the function running again. Thanks to the trustworthy members, developers, and Freddy, they have taken the time and effort to fix these fonts and changes in Runescape. Please make sure you updated your Subversion Repository , Scar - Tools - Options - SRL download - Subversion Repository - CheckOut. That will update SRL for you to ensure that you have the new Fonts. After it is updated, The Function IsUpText will work . Please make sure to say thanks to all of the Members, Developers, and Freddy for there hard work on getting this problem solved with Skill and Speed. Anyways, Here are some notes i made for the Function FindColorSpiralTolerance. Please make sure you got your uptext fonts updated or else the function IsUpText would not work.
    SCAR Code:
    // Hey everyone, These notes are on using the Function FindColorSpiralTolerance, a very simple and easy function that will take no time at all finding a color.
    // Please remember to read each line carefully to ensure you understand everything.
    // Practice makes perfect, lets start this out.

    program Learning_Find_Color_Spiral_Tolerance;// FindColorSpiralTolerance is a fun, accurate, and easy function to use.
    {.include SRL/SRL.scar} // Once again its important that you include SRL into your script,Scar's Standard Resource Library(SRL) is a primary key in scripting these days.
    // For these notes, we will be finding and clicking any tree. For this one, I will be right outside Lumbride castle, right near the entrance to the couryard.
    // There are two trees stationed outside the courtyard, one on each side. For this function we will be clicking any one of them, but the one that is closest to you will be clicked first.
    // There are a couple of things you need to know about FindColorSpiralTolerance, since you should know them from a tutorial, I will roughly explain them here.

                 // Function FindColorSpiralTolerance(var x, y: Integer; color, xs, ys, xe, ye: Integer; Tolerance: Integer): Boolean;
                   // The First 2 Variables (X and Y) are used to store the coordinates of the color. They are Integers, which is any whole number positive or negative. like 1,2,3, 403420, or -1,-2,-3, -2435234.
                   // Since were searching in a Spiral, We need to tell scar to search for the colors from the center out, we do this by telling scar that X and Y are MSCX and MSCY. Ill explain that soon.
                     // Color is the Color we are looking for. We will be using Scars Color picker located on the toolbar or by pressing Ctrl+P.
                     // Find the Color of the tree, usually use the tree on the minimap and get that dark shade that it shows. After clicking on the color you want it will show up in the debug box and is automaticcaly copied for you, all you have to do is paste it.
                        // xs, ys, xe, ye, is the area scar will look for the color. For this we will be using MSX1, MSY1, MSX2, MSY2. You should know what this means, MS means MainScreen. X1,Y1,X2,Y2 are the coordinates.
                          // The last thing we need is the Tolerance, we set this by ourselves, Usually the FindColorSpiralTolerance for me averagely is 10. The higher the tolerance the less accurate the color.
                          // For me, 10 is a good tolerance number as accuracy is needed when finding colors. There are many colors in RS as we know, you dont want a tolerance too low or we wont get a color at all. We dont want it too high as it will definetly click on another object.

    Function ClickOnTree : Boolean; // Were trying to click on a tree. so I name the function ClickOnTree just to make it make sense.
    var // Were using the variables X and Y, so we have to declare them. Remember that X and Y have to be set to MSCX and MSCY.
      x, y : Integer;
    begin // this begins this function.
      X := MSCX // MSC means Main Screen Center. This means scar will search from the center of the mainscreen outwards, like a spiral. X means the variable X.
      Y := MSCY // Same thing, except this is for Y. Remember to tell scar that X and Y are MSCX and MSCY. This is the key to finding colors in a spiral.
      if not LoggedIn then Exit; // Once again, this important Failsafe saves you. Get into the habit of writing it in all functions.
      if FindColorSpiralTolerance(x, y, 6070162, MSX1, MSY1, MSX2, MSY2, 10) then // The Color I got was 6070162, yours will most likely be much, much different.
      begin// So IF FindColorSpiralTolerance is true(which is if it finds the color) THEN
        Writeln('Found The Color of the Tree!, Saved the coordinates to X and Y.'); // So if scar finds that color then it will write this.
        MMouse(x, y, 4, 4);// MMouse is movemouse, which you should know. Next were going to check for uptext, which you should also know about.
        Wait(1000+random(1000));// ALWAYS give scar time to find the uptext, To do this, give scar some wait time before checking for the uptext.
        if IsUpText('ree') then // IsUpText is the text on the top left of the MainScreen.
        begin // So if Scar found the uptext then...
          Writeln('Found Uptext for the Tree!');
          Mouse(x, y, 0, 0, True);// Mouse is a function that you should already know about. No randomness is needed here since the Mouse is already on the point it needs to be (MMouse(x, y, 4, 4);).
          Result := True; // Since this Function returns a Boolean, The Result is True right after Scar clicks the tree. If it did not click the tree, the result would stay false.
        end else // So if scar Did NOT find the uptext, it would write this. I also ended the begin statement I made if it DID find the Uptext.
          Writeln('Did Not Find the Uptext of the Tree, Check back with your IsUpText settings.');
      end else // if scar did NOT find the ColorSpiral, it would write this. It also ended the begin statement if it DID find the Color.
        Writeln('Could Not find the Color of the Tree, check back with the color set to FindColorSpiralTolerance');
    end;

    begin // MAIN LOOP!!!!
      SetupSRL;;// Remember to SetupSRL in ALL of your scripts!!! Or else all of SRL's includes will not be loaded.
      ClearDebug;// Clears the debug box.
      ActivateClient;// Clicks on the Runescape Window.
      Wait(500+Random(100));// We tell scar to wait a little after clicking on the runescape window, to give the computer and scar a little time to prepare.
      MakeCompass('n'); // Makes your compass North, Not needed really. Just gives me a clear view.
      if ClickOnTree then // So if ClickOnTree returned True (which is after it clicked on the tree) then...
        Writeln('Clicked on the Tree!')
      else
        Writeln('Did not click on the tree D: Check your debug box to see what went wrong');
    end.
    ---------------------------------------------------------------------------------------------------------------------
    Notes on Learning the Function: FindSymbol
    SCAR Code:
    program Learning_Function_FindSymbol;// These notes are on Learning Symbol Finding. Symbol Finding is undoubtebly the easiest way to MapWalk. Too bad its also undoubtebly the most unaccurate.
    {.include SRL/SRL.scar}// We include the SRL folder. We need this in order to use our Function FindSymbol. As its located in the SRL folder.

                           //The Function FindSymbol is an incredibly easy function to write. It is usually used as a last resort if Scar fails at finding a point.
                           //Lets take a look at the Function Find Symbol taken from SRL-SRL-Core-Symbol Folder.

                                        // Function FindSymbol(var rx, ry: Integer; Name: String): Boolean;

                                        // This is a very easy Function. You should understand what that is saying, but let me dim it down.
                                        // Function FindSymbol(x, y, 'Symbol Here');
                                          // Thats pretty much how you will be writing it. It searches for the Symbol.
                                          // Once scar finds the symbol on the minimap, it saves the coordinates to x and y. Very simple ey?
                                          // There are plenty of symbols, all can be found in the Symbol.Scar file in your SRL core folder. Ill also put the arguments(List of Symbols) at the end of my notes.
                                            // For this Script, We will be walking into a bank. Any bank for this matter as all of the symbols are the same.
                                            // Make sure you can see the symbol on your minimap. Or else Scar wont be able to find it.
                                           
    Function WalkIntoBank : Boolean; // We name the function WalkIntoBank, why?, because it helps us understand what its going to do. Its result will be a Boolean.
    var
      x, y : Integer; // We need to declare X and Y as integers as they are used in FindSymbol.
     
                                           // Now for when were finding symbols, Chances are Scar wont find the Symbol for a couple of reasons. For example, if only a piece of the sybol is found, Scar may not be able to recognize the symbol. To stop this we add in Accuracy.
                                           // SymbolAccuracy := 0.1 - 1.0;
                                             // Its just like when you declare something. 0.1 means 10%. 1.0 means 100%. The higher the percent, the less chance it will detect the symbol.
                                             // We will be using 0.5 (50%) for the symbol accuracy, this means if only 50% of the symbol is found, Scar will still recognize/Find the symbol :D.
                                             // You should know how to use the Function FindSymbol and using Symbol Accuracy from a tutorial, but this is just a simple refresher.
    begin  // Begins this Function.
      SymbolAccuracy := 0.5; // We declare the Symbol Accuracy.
      if not LoggedIn then Exit; // Simple FailSafe.
      Result := FindSymbol(x, y, 'bank'); // Extremely easy to write. Result will be True if FindSymbol Returns True.
      if Result then // So if FindSymbol is True then....
      begin
        Writeln('Found the Bank Symbol, Saved the Coordinates to X and Y');
        Mouse(x, y, 4, 4, True);// The Symbol's Coordinates are saved to X and Y. Scar will move the mouse and click the symbol.
      end else // If it does NOT find the Symbol then
      begin
        Writeln('Could not Find Bank Symbol');
        Logout;// Logout means Log out of Runescape. Simple Function, Even Simpler to use.
        TerminateScript; // Terminate Script ends the script. Period.
      end;  // Every Beginning must have an end.
    end; // Ends this Function.

    begin   // MAIN LOOP.
      SetupSRL; // Compiles the SRL Folder.
      ClearDebug; // Clears your debug box.
      ActivateClient; // Activates the Client, Make sure you drag your Crosshair over to the Runescape Window!
      if WalkIntoBank then // So if Function WalkIntoBank Returns True (clicks on the Symbol) then
        Writeln('Walked into the Bank')
      else
        Writeln('Did not Walk into the Bank');
    end. // Ends the Main Loop.

    // The FindSymbol Function is very easy to use and is used as a last failsafe in many MapWalking Procedures.
    // Make sure you dragged your crosshair over the Runescape window so Scar knows that the Runescape Window is its Client.
    // Thats pretty much it, I hope my notes reminded/helped you about the functions for Scar. FindSymbol is a good MapWalking technique, it should never be underestimated.

    // Here is the list of the Symbols that can be used in the function:
    // The list of Symbols are taken directly from [Scar-Includes-SRL-SRL-Core-Symbol.Scar]

    // FindSymbol(x, y, 'Argument');
    {*******************************************************************************
    Valid Arguments are:
      - agility                  - furnace                    - rare trees, tree
      - altar                    - gem stall                  - rest, resting spot
      - anvil                    - guide                      - sandpit
      - apothecary               - hair dresser               - saw mill
      - archery shop             - herbalist                  - scimitar shop
      - arrow                    - house                      - shield
      - axe shop                 - hunter store               - shop, store
      - bar                      - hunter training            - short cut
      - bank                     - jewelery                   - silk stall
      - candle shop              - kebab shop                 - silver stall
      - churn                    - mace shop                  - slayer master
      - clothes shop             - magic shop                 - spice stall
      - cookery shop             - makeover mage              - spinning wheel, spin
      - cookery, cook            - mill                       - staff shop
      - crafing shop             - minigame                   - summoning store
      - dungeon                  - mining shop                - sword shop
      - farming shop             - pet shop                   - tanner
      - farming spot             - platebody shop             - training dummy
      - fishing shop, fish store - plateskirt shop            - underground
      - fishing spot, fish       - portal (to player owned houses) - water source, water
      - food shop                - pottery, pot               - weave
      - fur trader               - quest                      - windmill

    *******************************************************************************}

    // Hope I Helped you.
    ----------------------------------------------------------------------------------------------------------------------
    Practicing RadialWalking + FindSymbol (Failsafes)
    I made this just to practice RadialWalking and FindSymbol Functions. I made it into a Failsafe. I didn't look back at any tutorials, I made it all by my self xD, no errors at all. This is just an example of what my notes are used for, I want you to do the same, try not to look back while scripting, just script with your own knowledge.
    SCAR Code:
    // This simple Script was made to reinforce my knowledge on Map Walking.  Just to test my self, I made it without looking back at any tutorials :D. It works flawlessly.
    // This is what you should be doing when reading tutorials. Make a script, Read it over, and then run it. Make sure it does what you want it to do!
    // This script was used to walk into the Lumbridge Castle Bank. It told SCAR to walk into the bank using the Function RadialWalkTolerance. If it could not find the color on the MM, then it used the Function FindSymbol as a Failsafe. If FindSymbol Failed, then it would Logout of Runescape.
    // I placed my character to stand near the south ladder on the 3rd floor of the Lumbridge Caste. With the at least 50% of the bank area in view.

    program RadialWalkTolerance_FindSymbol_Failsafe; // We want to aim for both of the functions to work. This way if either one fails, the other will do the job.
    {.include SRL/SRL.scar}

    Function WalkToBank : Boolean; // We want to walk into the Lumbridge Castle Bank :D This should be a good name for it.
    var // We declare the variables x and y locally, as the Function Find Symbol uses them.
      x, y : Integer;
    begin // Begins the Function
      if not LoggedIn then Exit; // Very Simple FailSafe.
      MakeCompass('n'); // I usually want my Compass to point North. If it has to change during the script, just Make the compass point in the direction needed.
      SetRun(True); // Sets the Run True.
      if RadialWalkTolerance(7962234, 10, 28, 34, 1, 1, 15) then   // I used the colorpicker to get the a Color of the bank area. It works :D
      begin // So if Scar Finds and Clicks on the designated Color on the Minimap then...
        Writeln('Found Bank Area, Walking to Destination'); // It tells me in the Debug box, it found the color.
        Result := True;// Sets the Result as True, True usually means 'yes' or Completed Task.
      end else // It would end the script right there if Scar clicked in the Bank Area. But if it didnt...
      begin // So if Scar Didnt find the Designated Color on the Minimap...
        Writeln('Radial Walk Method Failed, Trying FindSymbol Method.');// Tells me in the Debug Box that the RadialWalk Method Failed. Now its gonna try the FindSymbol Method.
        SymbolAccuracy := 0.5;// Remember this? Its important that you at least adjust the accuracy to 0.5, it makes the Function FindSymbol Work much better.
        Result := FindSymbol(x, y, 'bank'); // Result is used as the Function FindSymbol. FindSymbol Records the Coordinates into X and Y. FindSymbol is a beautiful MapWalking Failsafe used to try and get the job done if others fail.
        if Result then // So if Scar found the Bank Symbol on the Minimap then...
        begin
          Writeln('Bank Symbol Found');// Tells me in the Debug box that Scar found the Bank Symbol in the Minimap.
          Mouse(x, y, 4, 4, True);// Moves the Mouse and Left Clicks on the Bank Symbol. The coordinates of the Bank Symbol were saved to X and Y.
          Writeln('Walking into Bank');// Tells me in the Debug box that Scar made my character Walk into the Bank.
        end else // But if SCAR didnt find the Bank Symbol in the Minimap.
        begin
          Writeln('Find Symbol Method Failed, Logging Out'); // Tells me in the Debug Box that the FindSymbol Method Failed. Its going to Log out.
          Logout; //Logs out of Runescape.
        end;
      end;// Ends the FindSymbol Procedure (Line 21)
    end;// Ends the Function.


    begin // MAIN LOOP!!!
      SetupSRL; // Compiles the SRL Folder.
      ClearDebug; // Clears the Debug Box.
      ActivateClient; // Makes sure the Runescape Window is clicked on. Make sure you Dragged your black Crosshair over the Runescape window.
      begin
        if WalkToBank then // So if the Function WalkToBank was True then..
          Writeln('Walked out of Bank :D')
        else   // But if it was False...
          Writeln('Did Not Walk out of Bank D:');
      end;
    end. // Ends the Main Loop.
    // I hope this helped you, remember to drag your black crosshair over the RuneScape window.
    // After your done typing up your script, mess up some of the functions. Make RadialWalkTolerance purposely fail to see if FindSymbol works. Viceversa. See if you can make both of them Fail. Mess around with it, thats the purpose of a Failsafe.
    // Practice Makes Perfect.
    ----------------------------------------------------------------------------------------------------------------------
    Notes on Learning How to Make Your Own AutoColor and Using It
    Please Remember that my Notes are mostly for people who have read Tutorials. Especially on how to use Auto Color Aid V2, as my rough explanations are not as good as picture by picture walkthroughs. Well here ya go, This was made to help me Reinforce making AutoColor and using it, since Practice Makes Perfect
    SCAR Code:
    // Hey everyone, These notes are to be used to Reinforce Our Knowledge on Making an AutoColor.
    // You should have read some type of tutorial on making your own AutoColors (from Auto Color Aid V2). Coh3n's All-In-One Tutorial Adavanced Section has a nice rundown on how to use it.
    // Once again, these are Notes only intended to help me and you (mostly me xD), you should have read a tutorial of some sort so you know the basics on how everything goes down :D.
    // Well here we go, Lets start practicing!

    program Learning_How_To_Make_A_AutoColor_And_Use_It; // Making/Using Your own AutoColor is simple, fast, and to Me, The Best way to find an accurate color.
    {.include SRL/SRL.scar} // Be sure to include SRL in your Scripts, I know I sound like a robot when I repeat these things, I only want to keep reminding my self and/or you.

                            // Now for our Big Part, were going to make our own AutoColor using the Auto Color Aid V2. You should already know how to use this Beautiful Program, but of course I'm gonna explain it rougly anyways.
                            // Auto Color Aid V2 basically takes a group of colors (In this case well be using a tree), and after picking 4-5 colors on the tree, We set the Color Tolerance Speed (more on that soon).
                            // After we get 4-5 Colors from whatever(Tree in this case) and set our CTS to 2, We then ask it whats the best color to look for, and boom, the best color and all of its settings are chosen. Beautiful ey.
                              // The Color we are given has settings to it. It has Humidity(Hue) which is how Bright the color is, and Saturation(Sat) which is how Pure the color is. You should already know this, this is only a rouch explanation.
                              // Thats basically it, After we have those settings ( The Best Color, Tolerance, Humidity, and Saturation) were ready to plug it into our FindColor Function :D.
                                // So Im just gonna tell you my Settings for finding a Tree, Which is my Best Color, my Tolerance, my Humidity, and my Saturation.
                                  // Best Color : 3373675 , Tolerance : 11, Humidity : 0.03, Saturation : 1 // These are my settings that I got, I'm certain your's will be much much different. Anyways, Lets get on with the Script.

    Function ChopTree : Boolean; // Our Function ChopTree is going to Chop a Tree. Simple :D.
    var // Since Were going to be using the Function FindColorSpiralTolerance, were going to need to declare the variables X and Y.
      x, y : Integer;
    begin // Begins our Function.
      x := MSCX // You should know what I'm doing here, FindColorSpiralTolerance searches for colors from the Center - Out, Like a spiral. We tell scar that X is Main Screen Center : X.
      y := MSCY // Same exact thing, Except for Y. If we do not do this then the Function FindColorSpiralTolerance would screw up.

                   // Remember I told you we had to set our ColorToleranceSpeed(CTS) to 2? Well, were going to have to tell SCAR that our ColorToleranceSpeed is 2. We do this by typing this simple Line.
                   // ColorToleranceSpeed(2); // Very simple. Now incase you forgot, ColorToleranceSpeed is pretty much the time Scar takes to find a Color.
                     // You can use 0 - 3 , ColorToleranceSpeed(0) is the fastest of all speeds, but the accuracy of Finding the Color is the lowest. ColorToleranceSpeed(1) is Scar's default Setting, Fast, yet still not what were looking for in accuracy.
                     // ColorToleranceSpeed(2) is what you will want to be using most/all of the time, while taking slightly(like 10%) more time, it gives us a MUCH better accuracy with the color. Much Much better xD!
                     // ColorToleranceSpeed(3) is takes a little more time finding a color, but the accuracy of that color is amazing. I haven't used (3) yet since (2) works perfectly fine.
                     // I hope that little rundown refreshed your memory, well lets set that ColorToleranceSpeed shall we!
     
      ColorToleranceSpeed(2);
                  // Next were going to set the Humidity and Saturation. Which is for me (0.03, 1). Simple. Make sure you put your Humidity and Saturation down not mine lol.
      SetColorSpeed2Modifiers(0.03, 1); // SetColorSpeed2Modifiers(Humidity, Saturation) is only used when we have ColorToleranceSpeed(2). It makes the accuracy of finding the color even much more accurate!
                  // Thats it for that >.> the tough part is done, we just have just set our ColorToleranceSpeed to 2, and use SetColorSpeed2Modifiers to place the Humidity and Saturation.
                  // On with the easy part.
      if not LoggedIn then Exit; // You should know what this does xD :D Best failsafe ever.
      if FindColorSpiralTolerance(x, y, 3373675, MSX1, MSY1, MSX2, MSY2, 11) then // Nothing changed here, just put in the Best Color you got from AutoColorAid V2 for color as well as the Tolerance.
      begin // So once SCAR picks up the Color we set it does this
        Writeln('Found Color of the Tree!, Moving Mouse to Tree'); // Well, the color I made was for a tree, so if it finds the Tree Color, Then it tells me in the Debug Box that it found it.
        MMouse(x, y, 4, 4); // Moves the Mouse to X and Y which are coordinates saved from FindColorSpiralTolerance.
        Writeln('Checking the Uptext of the Tree'); // Tells me in the Debug box that its going to check for the Uptext of the Tree.
        if WaitUpText('ree', 1000) then // WaitUpText simply waits the Time told, then checks for the UpText told. Its pretty much the Functions Wait and IsUpText build together.
        // Remember, WaitUpText will only check for one Uptext, that means : WaitUpText(['ree','hop'], 1000) would not work. If you had no idea what I did there, dont worry about it, just remember that You can only check one Uptext at a time. Not 2, 3, etc.
        begin // So if the Uptext has the word 'ree' after waiting 1 second then Scar will....
          Writeln('UpText found! Clicking on Tree');// Tells me in the Debug Box that the UpText was found, and it will click on the tree now.
          Mouse(x, y, 0, 0, True);// No randomness needed since the mouse is already on the Tree. True will left click the mouse.
          Result := True; // The Result is True after Scar clicks the Tree.
        end else // if Scar did not find that Uptext(WaitUpText) then...
          Writeln('Did not find the Uptext');
      end else // if Scar did not find the Color from FindColorSpiralTolerance then...
        Writeln('Did not find the Tree');
    end;// Ends the Function.

    begin // Main Loop!!!
      SetupSRL;// Compiles the SRL Folder.
      ClearDebug; // Clears the Debug Box.
      ActivateClient; // Activates the Current Client. Make sure you dragged your black crosshair over the Runescape window!.
      if ChopTree then // So if the Function ChopTree was True ( which was after it clicked the Tree ) then..
        Writeln('Chopped the Tree!!!');
      else // But if it was False ( if it did not Click the Tree ) then...
        Writeln('Did not Chop the Tree D=');
    end.
    // Well, I hope my notes helped you, Remember, Making your Own AutoColor is easy, Accurate, and FUN :D. Its a great thing, seriously.
    Hope I helped.
    Thanks To: Everyone on this site, ALL of you. I <3 all of you!!!
    God Bless you all, You all make it easier on us.
    Special Thanks to: WhoCares357, Coh3n, Develepers, ALL of the Tutorial Writers
    Last edited by Heavenguard; 12-09-2009 at 11:38 PM. Reason: Updating.

  2. #2
    Join Date
    Oct 2006
    Posts
    500
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Good Job on taking the initiative to read tutorials and put them in action
    If you need anymore help you can PM (Private Message) me, or add me on msn.

  3. #3
    Join Date
    Feb 2009
    Posts
    1,447
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

  4. #4
    Join Date
    Mar 2007
    Posts
    4,810
    Mentioned
    3 Post(s)
    Quoted
    3 Post(s)

    Default

    I, personally, think this is an amazing idea. Newcomers are much more able to learn with people in the same boat as them. Instead of experienced people blasting jargon to them which confuses them; carry on the good work. I endorse this

  5. #5
    Join Date
    Nov 2009
    Location
    Seattle, WA
    Posts
    589
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Hey guys, I updated my thread, I apologize for my posting problems ( double, triple, quadruple) and I have deleted them.

    I took out all of my attachments and made them quotes as I just learned how to do that not too long ago, all of my notes will be on the original thread. Along with that a lot more notes will be added. just wanted to tell you guys about it, thanks.
    Don't Troll, Don't Fight, Just keep the Respect
    Status : Offline

    Feel free to re-make my scripts ;D
    Community Member

  6. #6
    Join Date
    May 2007
    Location
    UK
    Posts
    4,007
    Mentioned
    1 Post(s)
    Quoted
    12 Post(s)

    Default

    Wow, VERY nice.
    I wasn't around when you joined but you definitely have "potential"
    If you want some help, or wanna make a script or anything, PM me

    T~M

  7. #7
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Great, great, great notes All that commentary WILL help people who are learning from this
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  8. #8
    Join Date
    Nov 2009
    Location
    Seattle, WA
    Posts
    589
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Getting there >.>... Im sad to say I gave up on Learning DDTM's. I found it fun while trying to learn it, but its even more depressing when I fail at it.

    I made some New Notes to help those tutorial Readers. I don't think many people know about my thread xD, too bad.

    Update: Yeah, After finishing up the Intermediates section and learning Auto Color, I just realized that DDTM's are pretty easy. As a matter of fact, its the same/easier difficulty then RadialWalking, Ill be adding in notes on DDTM's soon, Its extremely easy to understand.
    Last edited by Heavenguard; 12-09-2009 at 07:30 PM. Reason: Updating
    Don't Troll, Don't Fight, Just keep the Respect
    Status : Offline

    Feel free to re-make my scripts ;D
    Community Member

  9. #9
    Join Date
    Apr 2008
    Location
    Marquette, MI
    Posts
    15,252
    Mentioned
    138 Post(s)
    Quoted
    680 Post(s)

    Default

    Very, very good. I like everything about this. You should definitely keep adding notes as your scripting ability increases.

    One thing you may want to edit is that you don't need to add RadialWalkTolerance to your MapWalk.scar anymore. If you have the latest Dev Revision, it's in SRL.

    Great job, I love you attitude and initiative. Keep up the good work!

    Coh3n

  10. #10
    Join Date
    Nov 2009
    Location
    Seattle, WA
    Posts
    589
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Very, very good. I like everything about this. You should definitely keep adding notes as your scripting ability increases.

    One thing you may want to edit is that you don't need to add RadialWalkTolerance to your MapWalk.scar anymore. If you have the latest Dev Revision, it's in SRL.

    Great job, I love you attitude and initiative. Keep up the good work!

    Coh3n
    Omg Coh3n Posted on my NOTES THREAD OMG OMG OMGOMG
    -bow, kiss feet-
    Will do right away sir!
    I just added it in as a precautionary!
    Update: Deleted Sir! God bless your soul I <3 Coh3n's!!!
    Update2: No need to ask questions! you explain everything nicely in your tutorials Thanks for the Warm Welcome!
    Last edited by Heavenguard; 12-07-2009 at 02:36 AM. Reason: Updating
    Don't Troll, Don't Fight, Just keep the Respect
    Status : Offline

    Feel free to re-make my scripts ;D
    Community Member

  11. #11
    Join Date
    Apr 2008
    Location
    Marquette, MI
    Posts
    15,252
    Mentioned
    138 Post(s)
    Quoted
    680 Post(s)

    Default

    Quote Originally Posted by Heavenguard View Post
    Omg Coh3n Posted on my NOTES THREAD OMG OMG OMGOMG
    -bow, kiss feet-
    Will do right away sir!
    I just added it in as a precautionary!
    Update: Deleted Sir! God bless your soul I <3 Coh3n's!!!
    Lmao it's nice to know someone looks up to me.

    Also, since you are going through my AIO guide, don't be afraid to post on it if you see any mistakes or something is unclear.

    <3

  12. #12
    Join Date
    Oct 2007
    Posts
    742
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I love how this guy says that we are his family, unlike others...

    Great tutorial, a little disorganized but its ok not gonna criticize .
    Woot woot.

  13. #13
    Join Date
    Nov 2009
    Location
    Seattle, WA
    Posts
    589
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Yeah I deeply apologize for it being messed up in a lot of places. I practice some random stuff xD and add them, overall I try to keep it up with things I learned from WhoCares357, then I try to put in things I learned from Coh3n. Thanks for pointing it out, Ill fix that sometime.

    Update: Added my AIM and MSN, it should now be seen under my location in my posts
    Last edited by Heavenguard; 12-08-2009 at 03:22 AM. Reason: Updating
    Don't Troll, Don't Fight, Just keep the Respect
    Status : Offline

    Feel free to re-make my scripts ;D
    Community Member

  14. #14
    Join Date
    Sep 2009
    Posts
    580
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Heavenguard got MSN?
    I don't check this place often, sorry.

    Currently working on - Software Engineering degree. Thank you SRL for showing me the one true path

  15. #15
    Join Date
    Apr 2008
    Location
    Marquette, MI
    Posts
    15,252
    Mentioned
    138 Post(s)
    Quoted
    680 Post(s)

    Default

    Quote Originally Posted by Ultra View Post
    I love how this guy says that we are his family, unlike others...
    Yes, definitely the kind of attitude I'd like to see stick around.

  16. #16
    Join Date
    Nov 2009
    Location
    Seattle, WA
    Posts
    589
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Sorry to say that I won't be updating my Notes section for a while =[. Learning all about TPA's that I can atm. I Promise I will come back, remake everyone of my notes as detailed and up to date as possible, and continue to add more. I Promise this, but first I will have to dedicate a lot of time learning as much as I can.

    If I can point anyone who is learning in the right direction, please, Read the Tutorials I posted on top of the page. Read and fully understand WhoCares357's Guide, Then read and understand Coh3n's(Which will take some time), and then you'll be set to learn TPA's.
    Last edited by Heavenguard; 12-20-2009 at 12:41 AM.
    Don't Troll, Don't Fight, Just keep the Respect
    Status : Offline

    Feel free to re-make my scripts ;D
    Community Member

  17. #17
    Join Date
    Jan 2009
    Location
    Belgium
    Posts
    175
    Mentioned
    0 Post(s)
    Quoted
    14 Post(s)

    Default

    Wow u did very great man,

    very good!! +1

  18. #18
    Join Date
    May 2007
    Location
    Some where fun.
    Posts
    2,891
    Mentioned
    1 Post(s)
    Quoted
    5 Post(s)

    Default

    Excellent work, this is just awesome!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •