Everything posted by NotoriousPP
-
Thoughts on one of the entries for the new front page?
For grammatical mistakes: I would change this entire sentence: (I remind you, I'm no English major) To something like: Using an advanced analysis system, this client presents stable hooks combined with a rich scripting API. Easily learn to develop your own scripts, or use one of the many already made scripts written by other members of the community! Not only that, but it is free for everyone use! ----- Then this: To this: OSBot promises the most secure botting experience, using advanced encryption methods that help keep your account safe, and only offering scripts that have been verified by our dedicated team! And that's all I got so far!
-
Thoughts on one of the entries for the new front page?
Though that's what I'm trying to explain, you shouldn't be posting pictures of random Medieval crap, but instead show images of the client, and maybe some features. Make the Homepage say "This is the best client!", and not "Lets go slay dragons!". I feel as if you should be displaying the client, to kind of give new comers a idea of what they are getting, and not blinding clicking download because they saw a cool Medieval picture.
-
Most unbannable place to bot with main pure
Al-Kharid Guards
-
Thoughts on one of the entries for the new front page?
By saying it looks professional with a image is outrageous, there are plenty of images that I can think of that would NOT be professional. Also neither of those images actually involve RuneScape, so how does it look like RuneScape site, to me it looks like a Medieval appreciation forum. I don't see how making a RuneScape styled site is going to attract more users either. I for one didn't come here, becasue I was like, "Ohh look at amazing homepage!!! This must be the best!"... I came here because I thought the Bot would be somewhat stable, which I feel you should be advertising, not random Mythical pictures instead.
-
Thoughts on one of the entries for the new front page?
Well for one, what you said, made no sense what so ever. I don't know how: Runescape botting == Medieval? I do see how though that: Runescape == Medieval And how that: Botting == Programming == Professional Were not a bunch of kids playing LARP, so I don't see a need for dragons or anything like that. (Sorry if you do participate in LARP) I see the programming aspect of this client; the reason we even have a client, scripts, just pretty much overall a community. Without programming you would have nothing, and programming to me is professional, not dragons...
-
Thoughts on one of the entries for the new front page?
Ehh not to be picky, but I'm not really a fan of either. It think it should look more clean and professional, and less Medieval, but that's just my opinion.
-
i just did something ill regret
I smoke weed, yet I write scripts. Drugs don't make you dumb, it's how you use them that does.
-
Do my eyes deceive me?
Two farewells later, and he's still here. Someone loves us.
-
Can a free sdn script later be switched to non free?
Proguard GUI
-
Can a free sdn script later be switched to non free?
Not really. It takes anywhere from 4 - 24 hours(Depending when the managers push them) to have a update pushed to the SDN, after you submitted it. It takes me about 3 minutes to obfuscate my jar, send it to a tester, and if there's a issue, it's fixed and sent back out. So I don't believe it's a "hassle".
-
Can a free sdn script later be switched to non free?
Obfuscation my friend.
-
Clunky code...
For one, there is nothing wrong with the way he's calling sleep using Script and MethodProvider being as you need to call that since it's a static reference. Using built functions in not terrible, unless they are not stable or is nonfunctional. Also if you want to criticize someone work, you then need to provided the correct way of doing things, and not just an ignorant "Just looks terrible.".
-
Time to leave
2nd time is the charm? Anyways peace, sorry you were always the Black sheep of the community.
-
[EDM] OSBot Official EDM Thread [EDM]
I forgot to post when I got home.. But, I'ma post this shit anyways! Epic Hardstyle: Also so sick Trap: https://soundcloud.com/ookaymusic/gta-the-crowd-ookay-remix
- Beginners Guide To Separating Classes!
-
Maldesto should be scared....
- Maldesto should be scared....
Cat+Dog = Great Cartoon. So this is completely invalid.- Beginners Guide To Separating Classes!
Using Multiple Classes Complete Guide! Tutorial Written By: @NotoriousPP Introduction: It has been brought to my attention that some script writers do not know how to use multiple class files inside of their project, and in this tutorial I will try to cover everything I can, to help you have a better understanding how this is done correctly. I will be working on an example project for this tutorial, just follow along using your own project, doesn’t matter which type of project, as long as you understand what’s going on. This project will be modeled in a State based framework, as I see this most often used throughout the forum. Another question you may have, why should you use multiple classes, what are the benefits, is there an upside? Speaking from an Organizational aspect, yes! Splitting up classes makes it easier for the writer and to whoever is working on the script, instead of having to search through a wall of text; you can simply find the class in your Project Folder. Things you’ll need: A Computer or Laptop. A IDE (For this tutorial I will be using Itellij) Latest Version of OSBot. A Brain (Might help) Getting your project setup: Create new project, and add OSBot as a library. Your project should now look something like this: Create packages inside of your src folder, this well help better organize your script! After doing this it should look similar to this: The Real Work Begins (Kinda): So now that we have packages in our src, we need to fill them up! So first lets create a Script class inside of our Core package. (Notice the Class name “ExampleScript”, this is following correct Conventions. An incorrect way of naming classes would be “examplescript”, “exampleScript”, “EXAMPLE_SCRIPT”, etc. If you would like to learn more about Conventions, you can go here: Code Conventions for the Java Programming Language) Alright so now we have a basic Skeleton setup, though it does nothing just yet. Well, lets change that! Since for this tutorial we are writing a State based script, first we need to create State Objects! To do this we need to create an Enum, which basically is “a special data type that enables for a variable to be a set of predefined constants.” (docs.oracle.com). I personally like to have a package that stores all my data needed for a script, so I’m going to create a new package “data”. After we have created the package, create a new Enum inside of the “data” package. (If you don’t know how to create an Enum right away, just create a new class file for right now, and I’ll show you what to do next!) (If you were one of the people who did not know how to create an Enum, simply create a new Class, and then replace “class” with “enum”, and your set!) For this Enum were are only really using the name, and not storing any real data here, so all we need to do is add the different States we want in our script! For this example, I will be using Attack, Eat, Loot, Drop, and Bank. REMEMBER! To follow correct Conventions we are going to name the states using all CAPITAL letters. Optional: Adding a toString() method can be used to make your “state” or “status” more presentable, and not YELLING AT YOU when displaying. The method essentially grabs whatever “state” being used, and modifies it to your liking. In the example below, it creates a final String “s”, then replaces all underscores (Not used in example) with a space; the next like I return the String “s”, though I grab the first Char of the string and add it to a substring for the rest of the string and add a toLowercase(), making ATTACK, to Attack. This is especially helpful when using States as a status; this method can be applied to all types of Enums! (Cool trick if you’re a Windows Intellij user! You can type all your states without having to type with caps lock, or holding shift; just type your states, select them, and press “ctrl + shift + u”, and it will capitalize all selected, or turn it to lowercase if already capital) So we have our States, now what do I do? Well we need to get a getState() method ready our Script class. If you don’t already know, this is the method we use to determine which action or “state” should be executed. Then in the onLoop we have a Switch statement that determines which action should be executed. So what do we do now? The some people here make the mistake of continuing using this class for their tasks, actions, and data; just everything really. This is exactly what this tutorials main focus is on; how we can use multiple classes to help organize our project. You Script class should now look something similar to this. So now we get to create our first separate class! You may ask, well how will I be able to use myPlayer(), client.getInventory(), if I’m not inside of the Script class. Well one word really “Constructors”. We are going to need to create a constructor that takes a Script variable which we can use throughout the script, in this case “sI” (Swizzbeat are you happy now? I didn’t use sA this time ) which refers to Script Instance; but first we need to create a new class inside of our “tasks” package (folder), and in the example I will be creating an Attack() class. In this class we create a public Constructor that accepts a Script variables “sI” as discussed before! So now you should have a class that looks like this. Well you’re almost done implementing your first separate class (If this is your first time that is)! In the Attack() class we can now use “sI” for all of the calls we need, so instead of typing myPlayer() like in the Script class, it would be sI.myPlayer() in your extended class. So for example you can do something along the line of this: (Please don’t use this snippit below for real, it’s just a funny example, I don’t want a PM saying this didn’t work…) Alright so I got a separate class, but how the hell do I use this shit? You might be asking. Well in your Script class, since you extended Script, by using “this” is other words a Script variable, so that’s what we will be using to call our class! So in the onLoop, we can now add the new separated class, simply by adding “new Attack(this);”. Yup it was that easy! So it should look similar to what I have below. Just import the class (Most IDEs do it automatically), and call the class using “new Class(this)”: Well if you don’t understand how this all works by now, read through it once more, it will make sense eventually! To add more classes to our project, just use the same logic we used in creating our Attack() class(Or hell you can just copy/paste, and edit a little). The other packages in our “src”, can be used for numerous of different classes, just it’s up to you to fill them, just use them to keep organized! Conculsion: Well if you followed along, and got it working correctly! Congratulations! Separating classes help you so much down the road when working with large project, teammates, and or co-workers! No one wants to read a wall of text, it’s much easier to navigate through folders and get the file you need (Like how an office files paper work, Duh…). I really hope you guys all enjoy reading this, and it helps a few people out with their scripts! If you have any suggestions, and or comments, please leave them below, and I’m more than gladly answer them! Also let me know about any errors that you find! I'm not a expert, just trying to help! Sources used: http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html http://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html http://www.oracle.com/technetwork/java/codeconv-138413.html- My players direction
I'm not sure if your using the toString() correctly, I don't believe you should have a input in the constructor. Shouldn't it be something like: @Override public String toString() { final String s = super.toString().replace('_', ' '); return s.charAt(0) + s.substring(1,s.length()).toLowerCase(); } And to call toString you would simply call: log(Direction.NORTH.toString()); //Outputs: North- Which is better
Or make a State/Node(Whatever you us) for it inside of the onLoop, so you don't need to use a sleep at all. State example: private State getState(){ if(gui.isVisible()){ return State.GUI; } else if(!gui.isVisible()){ else if(!myPlayer.isUnderAttack()){ return State.ATTACK; } } } Node: @Override private boolean validate(){ return !ScriptClass.gui.isVisible(); } @Override private void validate(){ return true; } (All code is untested and written outside a IDE, it's just for a example) By not using a sleep method, allows you to record things such as paths, etc. I've used it in a few projects, though I must admit I still use sleeps as well, just adding input!- Methods to use potions
Yea Item IDs always seem to stay constant, I've been using the same Enum for Food since I started scripting, the ID's have always stayed the same. So you should be safe using IDs for Items, just that's about it really.- Methods to use potions
Item ID's don't ever change, so you don't have to worry about them changing on you!!! But I understand your idea about getPotBonus, which a really cool actually! But thank you!- Methods to use potions
I just use this for my potion handler, it's really simple, but it works fantastically! Though a suggestion for yours would to use a Switch instead of if/else, because the only time it's efficient to use multiple if/else over a switch is when your working with less than 3, if more than that its best to use a switch statement. private void potUp(Script s) throws InterruptedException{ for(Item i : s.client.getInventory().getItems()){ for(PotionData p : PotionData.values()){ if(i != null && p.contains(i.getId())){ switch (p) { case ATTACK: if(s.client.getSkills().getCurrentLevel(Skill.ATTACK) <= s.client.getSkills().getLevel(Skill.ATTACK)){ if(s.client.getInventory().interactWithId(i.getId(), "Drink")){ break; } } break; case STRENGTH: if(s.client.getSkills().getCurrentLevel(Skill.STRENGTH) <= s.client.getSkills().getLevel(Skill.STRENGTH)){ if(s.client.getInventory().interactWithId(i.getId(), "Drink")){ break; } } break; case DEFENCE: if(s.client.getSkills().getCurrentLevel(Skill.DEFENCE) <= s.client.getSkills().getLevel(Skill.DEFENCE)){ if(s.client.getInventory().interactWithId(i.getId(), "Drink")){ break; } } break; case SUPER_ATTACK: if(s.client.getSkills().getCurrentLevel(Skill.ATTACK) <= s.client.getSkills().getLevel(Skill.ATTACK)){ if(s.client.getInventory().interactWithId(i.getId(), "Drink")){ break; } } break; case SUPER_STRENGTH: if(s.client.getSkills().getCurrentLevel(Skill.STRENGTH) <= s.client.getSkills().getLevel(Skill.STRENGTH)){ if(s.client.getInventory().interactWithId(i.getId(), "Drink")){ break; } } break; case SUPER_DEFENCE: if(s.client.getSkills().getCurrentLevel(Skill.DEFENCE) <= s.client.getSkills().getLevel(Skill.DEFENCE)){ if(s.client.getInventory().interactWithId(i.getId(), "Drink")){ break; } } break; } } } } }- Selling 1 YEAR Premium Skype Vouchers
These were free...- [EDM] OSBot Official EDM Thread [EDM]
When I get home I'll post real EDM and not a bunch of Top 100 crap songs that are ruining the entire genre! Get some hatdstyle up in here! - Maldesto should be scared....