Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Genka

Genka's script writer application v2

Should Genka get the script writer rank?  

6 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Recommended Posts

Scripter Application Format
 
My last application can be found here: https://tribot.org/forums/topic/56445-genkas-script-writer-application/
 
1) Snipplets: [sOURCE] (Link to thread)
N/A
2) Tutorials: [sOURCE] (Link to thread)
N/A
3) Randoms/updates submitted: [sOURCE] (Link to thread)
N/A
4) Scripts available to the public: [sOURCE] (Link to thread)
GThieving AIO  [Thread][Source] - 520 users
 
GFireCrafter [Thread][Source] - 100 users
 
GEnchant [Thread][Source] - 92 users
 
XMas event solver [Thread][Source] - 42 users (this is really messy script, and i didn't plan to release, but found that people might find it useful. I am afraid it might do more harm than good to this application, but I still thought I should add it).
 
5) Short biography / Coding Experience: [1-2 short paragraphs]
I am 23 year old computer enthusiast. I joined Tribot just over 3 years ago to bot oldschool runescape. I have made a lot of private scripts for personal use, but I came to the conclusion, that I can do a lot more good by providing my scripts to other people. My favourite activities include listening to dnb/dubstep, driving my car around the town, writing scripts for new activities on runescape and cuddling with my girlfriend.
6) Reasons why you feel you deserve Scripter: [1-3 short paragraphs]
I have been here a while and I am always looking for ways to improve my communication and programming skills. I have always thought myself to be friendly and helpful person. My last application was denied and I learned a lot from it and I will not stop learning.
7) What you plan to provide the community with: [1-3 short Paragraphs]
I am planning to provide the community with best scripts and support I can provide. Would really like to be the role model for people.
8) Do you agree to continue to not only update, but provide more free, open sourced scripts to the community? [YES/NO]
YES

Edit:

@Final Calibur , love the sophisticated answers I get in this thread. I will look into all those things and will continue to learn and make my scripts better. I will not stop improving, and I will keep applying until I get the rank.

EDIT: new and improved GFireCrafter main.java [source]

Edited by Genka
  • Like 3

Share this post


Link to post
Share on other sites

I believe you're active enough in the community, and you have a decent number of contributions under your belt.
 
Your code is what concerns me, and after looking through some of it, here are some things I noticed:

  • Convoluted methods
    • Banking07#bank (gthieving)
      • This method is long, bloated with tasks that can be separated into other methods, and hard to trace.
      • Also, instead of while loops, you can simply use Timing#waitCondition for a cleaner solution.
    • Pickpocketing#pickPocket (gthieving)
      • Once again, why combine so many different tasks into one method? Why does one method have to handle not only pick pocketing, but also walking to the npc? 
    • Main.java (GFireCrafter)
      • The methods in this class are extremely long and hard to trace. For example:
        • bank()
        • travelAndCraft()
          • Why does it have to be travel and craft? Why can't you split up the tasks into their own appropriate methods?
    • XMAS.java (XMas event solver)
      • Just take a glance at the doShit() method. It's over 500 lines long.
  • Checking from within a method if it should execute
    • Eating#eat (gthieving)
      • Within this method you're checking if needToEat evaluates to true. However in the CrackSafes class, you're checking if needToEat evaluates to true before calling Eating#eat. This is redundant, and you should get rid of the check within the eat method. Methods that perform a specific task should not need to know themselves whether or not they should execute. Determining whether or not a method should execute should be delegated to your main logic flow. This is another reason a lot of your methods are convoluted.
  • Inefficient code
  • Not making use of the boolean values returned by some API methods
    • CrackSafes#crackSafe (gthieving)
      • These two chunks of code (1 2) should be modified to first check if the clicking method returned true (meaning a successful click) before sleeping. Otherwise you're sleeping even if the click wasn't successful. Also, you should make use of conditional sleeping instead of blindly sleeping for a specific amount of time.
    • Banking07#bank (gthieving)
      • Same as above for these two chunks of code (1 2). Also, use conditional sleeps instead of while loops.
    • StealFromStall#execute (gthieving)
      • Same as above for these pieces of code (1 2).
  • Overabundance of static data
    • Not much has to be said about this, other than the fact that you're limiting your users to only being able to run your scripts in multiple clients, as opposed to multiple tabs. Programming in an object-oriented manner will allow you to solve this issue, and also make it so you won't sling around the static keyword wherever it seems to help.

After looking through your code, I just can't bring myself to say yes. I would say the main thing you need to improve on is method size and organization. Sure, messy code may work when you're making free, simple scripts. You'll run into major difficulties down the line when you try to make something more complex. If you fix this issue up, it would most likely be a yes from me.

Edited by Final Calibur
  • Like 1

Share this post


Link to post
Share on other sites

FC pretty much nailed the major things on the head, I'll point out a couple that I saw...

 


 

gThieving

					if(DynamicClicking.clickRSNPC(victim[0], "Pickpocket " + npcName)){						GThieving.abc.waitNewOrSwitchDelay(last_busy_time, false);						last_busy_time = System.currentTimeMillis();

Remember, its abc sleep -> action -> cache last_busy_time.

 


 

gFireCrafter

    private boolean isLastCharge(){        RSItem[] ring = Equipment.find(SLOTS.RING);        if(ring.length > 0){            RSItemDefinition def = ring[0].getDefinition();            if(def != null){            return def.getName().contains("1");            }        }        return false;    }

.getName() can also return null, check javadocs

 


 

gEnchant

                    withDraw(itemToEnchant, 0, "items to enchant");                    abc.waitNewOrSwitchDelay(System.currentTimeMillis(), false);

sleep -> action -> cache value, need a global variable last_busy_time and set that value to the current time after the action is complete.

 


 

No from me as well for now, good luck on your next application.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Our picks

    • Today marks a big day for TRiBot! To make it easier for users to use TRiBot, we've created installers available for every platform! These installers are all bundled with the latest version of OpenJDK 1.8 (Java 😎, which is LG compatible.

      Using TRiBot is now easy. Simply download the installer for your platform, install TRiBot, and run it. The TRiBot Loader will correctly identify the bundled JDK so there's no need to change the Java selection.

      Windows

      EXE installer: TRiBot-windows-x64-4.0.3.exe


      MSI installer: TRiBot-windows-x64-4.0.3.msi


      Portable version: TRiBot-windows-x64-4.0.3.zip


      Mac OS

      Installer: TRiBot-macos-4.0.3.dmg


      Portable version: TRiBot-macos-4.0.3.tgz


      Unix/Linux

      Installer: TRiBot-unix-4.0.3.sh


      RPM installer (CentOS/Fedora): TRiBot-linux-4.0.3.rpm


      DEB installer (Debian): TRiBot-linux-4.0.3.deb


      Portable version: TRiBot-unix-4.0.3.tar.gz


      Platform Independent

      JAR file: tribot-loader-4.0.3.jar


      Note that this jar file does not include the bundled JDK.



      Windows and Mac OS users may notice a warning message stating that the installer/application is un-recognized or un-trusted. Please ignore this message and proceed with running the installer/application. We need to acquire a code signing certificate so that we can sign the installers letting the operating system know that these files can be trusted. It will take a week or more to acquire one, so please hold tight.

      Other notable changes to the TRiBot Loader:

      Support getting the version from OpenJDK distributions


      Add check for bundled JDK


      Copy OpenJDK tools.jar to the bundled JDK if not present


      Set the current java as the first available list entry


      Ignore Java versions which are symbolic links


      Make the bundled JDK the preferred Java version


      Update icon images


      Reduce the number of HTTP calls
      • 11 replies
    • TRiBot is looking to improve a lot of its customer relationship management, customer on boarding process, customer experience, design elements, community engagement and pretty much everything else you can imagine when it comes to marketing.

      Our goal: To ensure that the marketing done TRULY reflects the experience and does not shine an inaccurate light on what TRiBot is lacking in.

      So I ask, what do you love about TRiBot and what do you hate about TRiBot? What does O S Bot, Rune M8, PowR Bot and Dre amBot do better? (yes I purposely didn't spell it right 😂).

      Love, 

      RileyZ
      • 7 replies
    • Hello TRiBot,

      Today we have a significant release that has been in the works for the last month addressing several key issues, features and bugs in the backlog.

      With these changes, we are also including a new TRiBot Loader which will allow you to select any version that is released. This adds the flexibility of allowing you to revert to a previous version should an issue arise, run development only builds, view an accurate change log between versions etc. we are very proud to offer this feature and think it will add a lot more functionality down the road as we continue to release new versions.

      These changes include 80+ commits by our development team, a list of them is summarized below and also available for your viewing pleasure in the new TRiBot Loader.

      In addition, we have taken additional steps to improve as a development team by adding continuous integration and deployment into our workflow to assist in delivering timely releases such as bug fixes as well as new features on a weekly basis depending on our development cycle.
      • 39 replies
    • Over the last three weeks, I've been working on upgrading our server infrastructure. It's finally ready and is now live!

      Why?

      Increased reliability - less server errors


      Increased availability - less downtime


      Increased security - keeping us and you secure


      Increased capacity - ability to serve you better


      Increased speed - less waiting for things to load


      Faster development - server and service updates will come faster


      What are the changes?

      Move from a single AWS EC2 instance to AWS ECS (Elastic Container Service)


      Distributed computing


      Load balancing


      Git management of server files and filesystem


      Redis caching


      How?

      AWS ECS (with 10 EC2 instances)


      AWS ElastiCache (Redis)


      AWS Load Balancing


      AWS EFS (Elastic file system)


      Please bare with us as I continue to tune the server for maximum performance. Slow loading speeds may occur temporarily. I thank everyone for their patience.

      Please post on this thread if you experience any issues other than slow loading times.
      • 51 replies
    • This update features:

      Fixed broken hooks from today's update


      Fix wilderness level with RuneLite (Thanks @Todd)


      Add support for Kotlin .class files in scripts (Thanks @wastedbro)


      Overhaul Inventory API (Thanks @wastedbro)


      Add List support for common methods


      Change method grouping to make more sense (by functionality)


      Refactor methods to utilize Java 8 streams instead of cumbersome loops




      Recognize chatbox minimization (Thanks @JoeDezzy1)


      Fix Screen#isInViewport when NPC chat is open (Thanks @JoeDezzy1)


      Fix login bot bugs (Thanks @erickho123)


      Fix hint arrow return values (Thanks @Encoded)


      Fix depositAllExcept functionality (Thanks @wastedbro)


      Change containing box interface bound and adjust for Y values (Thanks @erickho123)
      • 151 replies
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...