Jump to content
liverare

A Pro's Beginner Guide to Scripting

Recommended Posts

	String food = "trout";
	NPC rockCrab;
	
	@Override
	public int onLoop() {
		if (atBank()) {
			doBank();
		} else if (atRockCrabs()) {
			doRockCrabs();
		}
		return 250;
	}
	
	private void doBank() {
		if (stockedUpOnFood()) {
			if (goodHealth()) {
				goToRockCrabs();
			} else {
				eat();
			}
		} else if (bankHasFood()) {
			withdrawFood();
		} else {
			stopScript();
		}
	}
	
	private void doRockCrabs() {
		if (goodHealth()) {
			if (findRockCrab()) {
				attackRockCrab();
			}
		} else if (hasFood()) {
			eat();
		} else {
			goToBank();
		}
	}
  • Easy to debug.
  • Easy to predict.
  • Simple script logic.

This is a high-level overview of an upcoming rock crab script. You can see from this small snippet everything my script does without having to read further into the script. Additionally, the logic's presented simplistically, enough so that it can be compared to pseudo code (if you plan your scripts).

Maintainability is one of the most important elements of a script. Why? There'll come a time when this logic fails and you may not necessarily be the one maintaining your own scripts. Years from now when you've probably f'd off to pursue some other interest, your work will still be here, being used by people. Your script will break (because Jagex can't leave well enough alone) and some poor motherfucker is going to be tasked with salvaging your works. Do you really want to give him or her a hard time of it?

You don't need to use task frameworks. You can, but please know what you're doing and how to make the most use out of it first. I've seen new scripters try use tasks frameworks and it saddens me, because their desired outcome could be written so much simpler.

  • Like 5
Link to comment
Share on other sites

Indeed Pseudo code is useful. However, I've noticed that sometimes if you do have a bigger project/script, using a task framework is somewhat less tedious for me. But not sure if it also applies to some other people.

Of course, the elements of using the task framework properly comes into hand.

  • Like 1
Link to comment
Share on other sites

20 minutes ago, Viston said:

Indeed Pseudo code is useful. However, I've noticed that sometimes if you do have a bigger project/script, using a task framework is somewhat less tedious for me. But not sure if it also applies to some other people.

Of course, the elements of using the task framework properly comes into hand.

:???:

Pseudo code? Not sure you know what pseudo code is fren

and also the "Task pattern" is trash

Edited by Explv
  • Like 1
  • Sad 1
Link to comment
Share on other sites

Just now, Apaec said:

I'm all for this, and for some scripts this style works great. It's also quick to put together which is nice. That being said, for certain projects (mostly AIO stuff), going to town with OOP can be very rewarding and also really fun, lol

 

Yes, you are correct my friend.

But when you're using the janky ass "Task pattern" with dumb shit like WalkingToTheBankOnTheOtherSideOfVarrockHaHaTask.java like a lot of people do, then you're just shooting yourself in the foot.

  • Like 3
Link to comment
Share on other sites

1 hour ago, Explv said:

preach the gospel, preachhhhhh

"4000 camels came down upon the earth to bite the whore wives of alpaca thieves."

explv 4:16

"In order to free themselves from the jews, they thrusted their genitalia towards yahweh"

explv 2:19

 

Edited by Rxd
  • Doge 2
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.

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...