Jump to content

Bobrocket

Members
  • Posts

    1664
  • Joined

  • Last visited

  • Days Won

    4
  • Feedback

    100%

Posts posted by Bobrocket

  1. I heard that someone who is a better scripter than me would be making a dragons script but it doesn't look like he has. I may take this on again, but I'm just being lazy about it.

     

    Don't let your dreams be dreams. Yesterday you said tomorrow, so JUST DO IT!

    Make your dreams come true - JUST DO IT!

    Some people dream of success, but you're going to wake up and WORK HARD AT IT. NOTHING IS IMPOSSIBLE!

    You should get to the point where anyone else would quit and you're not going to stop there. NO! WHAT ARE YOU WAITING FOR?

    DO IT! JUST DO IT!

    YES YOU CAN!

    JUST DO IT!

    If you're tired of starting over, stop giving up.

  2. Actually it doesn't use the same template for greetings, there is a selection that it randomly chooses from. The screenshot in the post just happens to feature the same template chosen twice in a row. You're right though, it is risky because the standard of the conversations can vary a lot. I had this one recently which was pretty funny, and also fairly human like:

    Me: Hi X.
    X: Hello.
    Me: Hi.
    X: What's up.
    Me: Nothing, you?
    X: Just getting some levels.
    Me: Getting what?
    X: Strength.
    Me: Well in life you must learn to over come trails by believing that you will make it.
    X: Im too high for that much
    Me: I don't think s.
    

    Then again, you get the occasional awful one like this:

    X: Norma are u obby maulker?
    Me: I agree.
    X: So obby maulers are not 28lv anymore??
    Me: I was never Roboton...
    X: With 60str
    Me: Your best friend. 

    Your point about using people's full names just gave me an idea. Perhaps it could attempt to split up people's names into sub-names (so "DingleBert3" becomes "dingle" and "bert") and then use those instead. I'll definitely try and implement this smile.png

     

    An interesting idea definitely! Have you heard of the concept of neural networks? Because what you're suggesting is basically the same principle. Actually implementing this would be seriously hard, partly because you would need to gather a large amount of input data. It wouldn't be hard to gather a large amount of chat messages but gathering logs of people's conversations is basically impossible because the bot would need a near-human level of language understanding to be able to tell when two people are in conversation. If you can't gather conversations then the bot will be able to say runescape-esque things like "buying gf" or "selling lobs 300ea cause i'm an extortionate mf" but won't have any clue how to respond to people in a sensible way.

     

    tl;dr Your suggestion is great but would probably take a team of AI professors to implement.

     

    You wouldn't necessarily need neural networks, for example:

    You log persons

    a and b. This is an extract from their conversation:

     

    a: "glastonbury was really insane, i saw so much cool stuff"

    b: "really? i wish i went!"

     

    You can split person a's response like so:

     

    {glastonbury} (was|is|has been) (really|very|somewhat) (insane|cool|thrilling), i (saw|viewed) so much (cool|wicked|awesome) (stuff|items)

    Legend:

    {} - unnecessary filler words (nouns)

    (|) - synonyms

     

    That way, you can cover sentences like:

    college has been very cool, i saw so much awesome stuff

    (I can't think of any more)

     

    This isn't really a neural network, because you don't tweak the "nodes" per say. The only learning involved would be some sort of database that lists sentences.

    Neural networks are a very cool concept indeed, and yeah would need an entire team, but it doesn't need to be like that.

  3. Socialism here,

    I go by social for short.

    Just recently got back into botting here on osrs.

    I'm not a script writer by any means. I'm looking forward to sharing some well articulated in depth solutions on how to make bots more efficient and human-like.

    I have been running with Photoshop Cs series for a very long time. I have been considering opening a gfx shop here seeing that there seems to be a repeated style. I think that I could provide something to break the norm.

     

    Glad to be here and looking forward to a long stay here.

     

    Welcome! If you have any script ideas feel free to pitch them to me :)

  4. While it is a good idea for a conversation bot, Cleverbot shouldn't be used because it has public access for people to screw around with it.

    What you need to do is create a "web" of conversations you've seen in OSRS, and then create aliases/synonyms and when someone speaks to you the web may have a similar message so you can get a similar response. That way, you don't have the burden of Cleverbot (although a good idea), and you still have a smart system.

     

    Otherwise, good job!

  5. Sounds like some sort of manufacturer defect. Take it back to the store and talk about getting a new board or compensation, a faulty circuit could do a lot of damage to your parts.

    If you have a spare board, try and run tests on your hardware. If you have any problems with anything, it's probably from the faulty circuit.

  6. I updated the calculation for grabbing the point. Here are the results for High Level Alchemy:

     

    Is this just for spells? It has been happening for just about everything you can click on, for example when right clicking or accidentally clicking search instead of bank all within a bank.

    • Like 1
  7. Just wondering, is this because the bounding boxes between two spells/widgets appear to overlap at the borders:

    6296edf9bd028e4f368c08860f09e184.png

     

    Code used to get this info:

    Area one, two, three;
    	
    	
    	@Override
    	public int onLoop() throws InterruptedException {
    		// TODO Auto-generated method stub
    		if (getWidgets().isVisible(218, 35)) {
    			RS2Widget hla = getWidgets().get(218, 35); //High Level Alch
    			int w, h, x, y, endX, endY;
    			if (hla != null) {
    				w = hla.getWidth();
    				h = hla.getHeight();
    				x = hla.getAbsX();
    				y = hla.getAbsY();
    				endX = (x + w);
    				endY = (y + h);
    				one = new Area(x, y, endX, endY);
    			}
    			
    			RS2Widget ss = getWidgets().get(218, 42); //Saradomin Strike
    			if (ss != null) {
    				w = ss.getWidth();
    				h = ss.getHeight();
    				x = ss.getAbsX();
    				y = ss.getAbsY();
    				endX = (x + w);
    				endY = (y + h);
    				two = new Area(x, y, endX, endY);
    			}
    			
    			RS2Widget eb = getWidgets().get(218, 34); //Earth blast
    			if (eb != null) {
    				w = eb.getWidth();
    				h = eb.getHeight();
    				x = eb.getAbsX();
    				y = eb.getAbsY();
    				endX = (x + w);
    				endY = (y + h);
    				three = new Area(x, y, endX, endY);
    			}
    			
    			if (areaOverlaps(one, two)) { //HLA & SS
    				log("High level alch overlaps Saradomin Strike");
    				log("HLA: " + one);
    				log("SS: " + two);
    			}
    			if (areaOverlaps(two, three)) {
    				log("Saradomin Strike overlaps Earth Blast");
    				log("SS: " + two);
    				log("EB: " + three);
    			}
    		}
    		return 2500;
    	}
    	
    	public boolean areaOverlaps(Area a, Area b) {
    		for (Position p : a.getPositions(0)) {
    			if (b.contains(p)) {
    				return true;
    			}
    		}
    		return false;
    	}
    

    When stunalching, check if, when going to alch, it goes to Y position 340. The only thing I can think of regarding this is that you go to y=340 and RS sees that as being on Saradomin Strike because it has a higher index than HLA (42 opposed to 35).

    • Like 1
  8. funniest thing... I paid for everything on here, vip premiums, low hours etc... BANNED ON EVERRRYY ACCOUNT WITHIN A DAY.

     

    I use another bot site... FREE SCRIPT, HIGH BAN RATE AND F2P, FLAGGED IP... no ban, on second week... sorry to say OSbot but I dont think itºs jagex, I think something with your bot that theyve detected, as only complains I see is on this site. Im quite disappointed after spending almost 50 dollars only to get ban hammered on 20 PLUS accounts.. to find out using a basic RUBBISH script else where doesnt get me banned when im hammering the hours in and its two weeks later.

     

    edit, thats 50 dollars I spent on here not including the vpsºs i bought, membership paid etc. not to mention most valuable thing, time.

     

    The competitor advertisers are getting a lot more aggressive :doge:

    I've lost 2 accounts to botting, both of which were woodcutting with the same script. Mirror mode, fresh IP's, the lot. My other 2 accounts, however, are perfectly fine. Been botting ML/mining on one account, and combat on another. Not to mention the herblore and thieving from testing my scripts :doge:

    It's almost all around the script now. This "free script" you're talking about may be better than a premium script here, but are you even comparing properly? Same area, same variables, just different bot/script? There are many external factors which can lead to your ban, maybe you just got lucky. Overall, your conclusion is shit and your standard deviations are high :doge:

  9. Determining how many accounts you can run isn't really possible, as all scripts are not equal in terms of resources required. As well, you didn't specify if you were using the Mirror Client or the original OSBot client, which would greatly affect the amount of bots you can run.

     

    As a general rule you can run more bots on Linux than Windows as Linux can be very lightweight and take up very little resources which would increase the amount of bots you can run. There is no best distribution, however I can personally recommend Debian 7 32 Bit, with the LXDE Desktop Environment!

    If you have any further questions, feel free to post here, PM me, or add my Skype smile.png

     

     

    He has 8GB of RAM, he should not be using any 32 bit installation of any OS.

    If you are looking for the absolute minimal resource usage (and you're only going to be botting), go for a window manager instead of a full desktop environment such as i3

    I would personally recommend Ubuntu as the operating system, however.

  10. You can pick up really cheap servers for around $100 that have 2 CPUs (source: I bought an SC1425 for £60) - those should happily run you 4 or 5 mirror clients. The problem with mirror client is the CPU usage, as OSRS is completely CPU-rendered. Newer versions try to remedy it with less CPU overall (also click the "Low CPU mode" and when you dont need to interact "Disable client rendering"), but RAM is not the problem.

    My Linux VPS can only run 1 mirror client, for example. It can, however, run numerous injection clients.

  11. I need to save a fair amount of data locally for some scripts, and I need to know if there is any way to grab the current OSBot directory. Scripts on the SDN aren't saved locally, so I guess I cannot just check the running directory of the script.

    Any ideas?

  12. Ok so here it is! sorry about the log messages lol it was often attemtpting to use the RUNNINGAWAY state much much more than it had to..like at all..so i added in if (!myPlayer.isMoving) to solve that. not sure if it was the best way but i think its working tongue.png  i attempted to do what you had mentioned though so let me know what you think biggrin.png

    import org.osbot.rs07.api.model.Entity;

    import org.osbot.rs07.api.model.NPC;

    import org.osbot.rs07.api.ui.Skill;

    import org.osbot.rs07.api.ui.Tab;

    import org.osbot.rs07.script.Script;

    import org.osbot.rs07.script.ScriptManifest;

    import org.osbot.rs07.utility.Area;

    import java.awt.*;

    @ScriptManifest(author = "ChrisFuckingMac", info = "Chops and Drops Trees Lumbridge", name = "Level3TreeKiller", version = 2.0, logo = "StonerNewb+FriendWhoSurelyGotReallyAnnoyedWithMe")

    public class FuckYouTrees extends Script {

        private Entity tree;

        private final Area CHOPPING_AREA = new Area(3160, 3225, 3200, 3243);

        @Override

        public void onStart() {

            log("Kill All The Trees!");

            log("Fuck The World");

            log("Dont Get Banned Get Bank");

        }

        private enum State {

            CHOPPING_LOGS, DROPPING_LOGS, WAIT, RUNNINGAWAY

        };

        private Entity getbesttree() {

            Entity regtree = objects.closest("Tree");

            Entity besttree;

            Entity oakTree = objects.closest("Oak");

            boolean oak = skills.getDynamic(Skill.WOODCUTTING) >= 15;

            inventory.deselectItem();

            if (oak && oakTree != null){

                log("are both trees there?");

                besttree = oakTree;

            } else if (regtree != null) {

                log("There is no Oak, but is there a regular tree?");

                besttree = regtree;

                log("best tree was a regular tree");

            } else {

                besttree = null;

                log("apparently there is no fucking tree");

            }

            log("best tree is chosen");

            return besttree;

                    

            

            

        }

        private State getState() {

            NPC npc = npcs.closest("Mugger");

            if (inventory.isFull())

                return State.DROPPING_LOGS;

            if (npc != null)

                return State.RUNNINGAWAY;

            if (tree != null)

                if (!myPlayer().isAnimating())

                    return State.CHOPPING_LOGS;

            if (myPlayer().isAnimating())

                return State.WAIT;

            else

                return null;

        }

        @Override

        public int onLoop() throws InterruptedException {

            if (skills.getDynamic(Skill.WOODCUTTING) >= 30) {

                logoutTab.logOut();

            }

            tree = getbesttree();

            log("Onlopp started, and stated tree = getbestree");

            switch (getState()) {

            

            case DROPPING_LOGS:

                log("get state chose Dropping Shit");

                inventory.isFull();

                tabs.open(Tab.INVENTORY);

                inventory.deselectItem();

                inventory.dropAll("Oak logs");

                inventory.dropAll("Logs");

                break;

            case CHOPPING_LOGS:

                log("get state has chosen chopping logs");

                if (tree != null) {

                    if (!myPlayer().isAnimating()) {

                        camera.toEntity(tree);

                        if (!myPlayer().isMoving()) {

                            tree.interact("Chop Down");

                            sleep(gRandom(400, 750));

                        }

                    }

                }

                break;

            case WAIT:

                log("get state chose wait");

                random(1000, 2500);

                if (myPlayer().isAnimating()) {

                }

                break;

            case RUNNINGAWAY:

                log("get state chose runaway");

                NPC npc = npcs.closest("Mugger");

                if (npc != null) {

                    if (myPlayer().isUnderAttack())

                        if (myPlayer().isInteracting(npc))

                            log("am i being interacting?");

                            if (!myPlayer().isMoving())

                            log("am i already moving?");{

                        getLocalWalker().walk(CHOPPING_AREA, true);

                }

                }

                break;

            }

            return random(200, 300);

        }

        @Override

        public void onExit() {

            log("Done Already?");

        }

        @Override

        // /do this soon!!!

        public void onPaint(Graphics2D g) {

        }

    }

    Looks pretty good, but you still declare npc in a local scope. Pretty sure there is only 1 mugger so it may be more beneficial to have it in a global scope like tree.

    I would also recommend looking into a basic node framework:

    public interface Node //Can use an abstract class instead
    {
        public boolean validate();
        public void run() throws InterruptedException;
    }
    
    //Example
    public class ChopTree implements Node
    {
        @Override
        public boolean validate() {
            return (tree != null); //Need to declare "tree" obv
        }
    
        @Override
        public void run() throws InterruptedException {
            //run chopping
        }
    }
    
    //In onStart
    ArrayList<Node> nodes = new ArrayList<Node>();
    nodes.add(new ChopTree());
    
    //In onLoop
    for (Node n : nodes) {
        if (n.validate()) {
            n.run(); //runs each node
        }
    }
    
×
×
  • Create New...