Jump to content

[Tutorial] Simple but Effective Tips


Deceiver

Recommended Posts

When programming, regardless if you're new or old to programming, it should always be your best practice into improving your code for good(clean) looks, so that you and others may understand it as well, etc. This short and simple tutorial (more of a guide) will help you understand some general tips when you start your new project.

 

  • Object Defining
    • Bad Example:
    • public RS2Object entrance;
          public RS2Widget wait;
          public RS2Widget cont;
          public NPC guard;
          public NPC tzkih;
          public NPC tzkek;
          public NPC tokxil;
          public NPC ytmejkot;
          public NPC ketzek;
          public NPC jad;
          public NPC ythurkot;
          String state;
          int startHPExp;
          int startATTExp;
          int startDEFExp;
          int startSTRExp;
          int completed;
          long startTime;
          long runTime;
      

      This is an example of bad code! Most of us have probably defined our variables like this before and thought it is correct. Though it is correct and will work, it is not the most efficient and clean way to define them.

 

  • Good Example:
  • int profit, age;
    int a = 4, b = 6;
    long startTime, timeRun
    RS2Object guard, target, chicken;
    RS2Widget selectX, makeAll;
    ..... so forth
    

    Fewer lines of your code, all your variables are still there and it looks neater and easier on the eyes.

 

  • Casting and 'this'
    • Bad Example:
  •  this.wait = this.widgets.getWidgetContainingText(new String[] { "Hey, JalyYt, you were in a cave only a moment ago." });
            this.cont = this.widgets.getWidgetContainingText(new String[] { "Well done in the cave, here take TokKul as reward." });
            this.entrance = (RS2Object)this.objects.closest(new String[] { "Cave entrance" });
            this.guard = (NPC)this.npcs.closest(new String[] { "TzHaar-Mej-Jal" });
            this.tzkih = (NPC)this.npcs.closest(new String[] { "Tz-Kih" });
            this.tzkek = (NPC)this.npcs.closest(new String[] { "Tz-Kek" });
            this.tokxil = (NPC)this.npcs.closest(new String[] { "Tok-Xil" });
            this.ytmejkot = (NPC)this.npcs.closest(new String[] { "Yt-MejKot" });
            this.ketzek = (NPC)this.npcs.closest(new String[] { "Ket-Zek" });
            this.ythurkot = (NPC)this.npcs.closest(new String[] { "Yt-HurKot" });
    

    In this example, the variable names are the same ones we defined earlier, therefore, we do not need this. As well, we do not need the absurd and gross looking String array and casting. 

 

  • Good Example:
  •  wait = widgets.getWidgetContainingText("Hey, JalyYt, you were in a cave only a moment ago.");
            entrance = objects.closest("Cave entrance");
            guard = npcs.closest("TzHaar-Mej-Jal" );
            tzkih = npcs.closest("Tz-Kih" );
           
    cpiigR.png

Refer to the above picture.

 

  • Method Naming
    • Bad Example:
  • void eatfood() {}
    void attacktarget() {}
    
    • Good Example:
  • boolean isUnderAttack() {}
    boolean findTarget() {}
    void eatFood() {}
    

 

I hope this simple but hopefully effective guide has opened some new things to your eyes and knowledge of programming your projects.

 

  • Like 7
Link to comment
Share on other sites

Nice guide. Will help a ton of new scripters.

ayylmao 

 

ayylmao

 

 

Use getters where appropriate

npcs //...
getNpcs() //...

Don't abuse public/static, only when necessary - variables should be private (with setters and getters if needed), to prevent any possible problems.

 

 

 

Good tip!

 

6d3f129807933195ddbc6af27d0f932b.png

what ?? f -> F ????

 

whatDo();

Link to comment
Share on other sites

I don't like declaring multiple variables on the same line. It tires the eye imo.

Because of completion OCD I occasionally will use a "this" where it's not necessary, or sometimes I'll just do it to improve readability.

I will sometimes prefer snake_case over headlessCamelCase when the latter looks awkward.

 

But yeah.

 

Conventions.

Edited by Botre
Link to comment
Share on other sites

 

I don't like declaring multiple variables on the same line. It tires the eye imo.
Because of completion OCD I occasionally will use a "this" where it's not necessary, or sometimes I'll just do it to improve readability.
I will sometimes prefer snake_case over headlessCamelCase when the latter looks awkward.
 
But yeah.
 
Conventions.

 

Had to take a Python class and it was such a pain transitioning between conventions. D:

Link to comment
Share on other sites

 

I don't like declaring multiple variables on the same line. It tires the eye imo.
Because of completion OCD I occasionally will use a "this" where it's not necessary, or sometimes I'll just do it to improve readability.
I will sometimes prefer snake_case over headlessCamelCase when the latter looks awkward.
 
But yeah.
 
Conventions.

 

 

this is a roast thread tbh

  • Like 2
Link to comment
Share on other sites

CamelCase conventions, this should be nothing new if you remotely deserve any sort of Scripter rank...

You obviously missed my point,

Why would one need to use camelcase if it doesn't improve anything ? That's like saying go buy a new table and not the old one because how ugly it looks even though they both do the same thing without any issues, :facep:

Link to comment
Share on other sites

You obviously missed my point,

Why would one need to use camelcase if it doesn't improve anything ? That's like saying go buy a new table and not the old one because how ugly it looks even though they both do the same thing without any issues, facep.gif

That's like saying dont capitalize first letter of a sentence. It's super common practice, makes reading easier and 'correct' according to standards.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...