Jump to content
Final Calibur

FC Scripter Application v2

Application Poll  

23 members have voted

  1. 1. Is Final Calibur worthy of the Scripter rank?

Recommended Posts

1.) Snippets


2.) Tutorials

  • N/A


3.) Randoms / updates submitted


  • N/A


4.) Open source scripts available to the public


  • FC Doric's Quest
  • FC Mining (Currently included in FC Doric's Quest for prerequisites, will be a standalone script in the near future)
  • FC Romeo & Juliet
  • FC Cook's Assistant
  • FC Sheep Shearer
  • Additionally, any open source scripts from the previous application (as well as FC AIO Miner, which is going to be replaced by FC Mining) can be viewed here.


5.) Short biography / experience

Hi everyone, I'm Freddy, otherwise known as Final Calibur (or FC). I'm 20 years old, live in New York, and am a full time student currently going for a BA in Computer Science.


Programming is my career focus as well as a passion and hobby for me, which is why I enjoy writing scripts for TRiBot and its users. I'm constantly learning more, and make it a focus to program by the book. This is why I prefer the Oracle Tutorials for Java, and it will always be my number one recommendation for beginners looking to learn Java.


The nature of computer science allows for many solutions to a single problem, and this is what makes it so interesting to me. Even within the realm of TRiBot scripts, there are many decisions to be made when it comes to the design, as well as the implementation of scripts. It's also a great feeling to build an automation from the ground up, and watch it run like a well oiled machine.



6.) Reasons why you feel you deserve Scripter


My first application was rushed, and I learned a lot from the outcome of it.


I did not deserve the Scripter rank then, but I feel like I do now. I have a solid amount of content for users to use / look at. The only differences between my open/closed source scripts are the paints and GUIs.


Most of the scripts I release will include an open source version, with a simpler paint. Due to the nature of my framework, the open sourced scripts will also be stand alone. The closed sourced scripts will allow users to chain together missions through a GUI.


7.) What you plan to provide the community with:


As I said above, almost all of the scripts I release will include an open source version with a simpler paint and GUI. I will continue to release scripts on a consistent basis, as I view this as a hobby.


8.) Do you agree to continue to not only update, but provide more free, open sourced scripts to the community?






The ACamera class, admittedly, was one of my first releases on TRiBot and sloppily done in my opinion. I don't have an answer as to why I used getAngleThread in the AngleThread class itself, as it really makes no sense. Thanks for bringing that up, I'll update it.


This is the first time I've heard of the ReentrantLock class, but after a little research, I can definitely see some benefits it offers. Wrapping all method bodies in a try / finally block after a lock seems like a minor annoyance (Although I guess you do the same thing when you wrap a method body with a synchronized block), but it's worth the benefits that the class offers.


I'll probably rewrite ACamera soon to clean it up a bit and make use of ReentrantLock. Thanks!

Edited by Final Calibur
  • Like 10

Share this post

Link to post
Share on other sites

Just by glancing at the code, it's clear you know what you're doing. No obvious flags that I could find. It's a yes from me.



@Final Calibur


The only things I have to say are suggestions more than critisisms. The only code I've looked through with any amount of detail is your asynchronous camera class, so I'll comment on that.



1. I was looking at this code:

while(script != null || runsWithoutScript){    sleep(sleepTime);    Camera.setCameraAngle(angle);    getAngleThread().wait();      }

What is the purpose of calling the getAngleThread() method instead of using the this keyword?


2. I would recommend using the ReentrantLock class instead of the synchronized keyword. This is because using the synchronized keyword instead of the ReentrantLock class sacrifices a lot of flexibility and control over your synchronization code.

Edited by TacoManStan
  • Like 2

Share this post

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

  • Recently Browsing   0 members

    No registered users viewing this page.