Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

Sign up now!

Ray's Nature Altar Runner [Deleted]

Status
Not open for further replies.
Joined
Dec 24, 2014
Messages
45
My best progress report so far (all pouches, double nats, NPC):

rh1AxGO.png
 
Joined
Jan 2, 2015
Messages
22
The bot just got stuck.

It appears to be infinitely hitting the equip button over and over again.

edit: It just did it again. It is at the teleport to bank phase and it presses n over and over again.

edit 2: Now it crashed walking to the nature altar, here is the error log. I have all settings exactly the same as you do.

java.lang.NullPointerException
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.enter(WalkToAltar.java:61)
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.enter(WalkToAltar.java:67)
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.execute(WalkToAltar.java:36)
at com.runemate.game.api.script.framework.task.TaskScript.onLoop(ewb:173)
at com.runemate.game.api.script.framework.LoopingScript.run(kub:162)
at com.runemate.game.api.script.framework.AbstractScript.start(lsb:27)
at a.Lk.run(qbb:193)
 
Last edited:
Joined
Dec 18, 2014
Messages
398
The bot just got stuck.

It appears to be infinitely hitting the equip button over and over again.
I need more details. Which equip button? As in, what item, if it's a menu option, if the bank is open, at what stage of the process it happened, etc.

Edit: Thanks Aspire, added to the front post
 
Joined
Jan 2, 2015
Messages
22
I did include the details.

The bot pressed the n key over and over again which opens and closes the equipment tab. The happened in two stages, once while at the bank just after crafting the nature runes and once at the altar just after crafting nature runes.

The reason I stopped using the bot was because it crashed four times in a row while walking to the altar. It would crash at the palm trees just before you can see the nature altar near the shilo wall.
 
Joined
Dec 11, 2014
Messages
397
it get stucked on first part in Castle wars, one time on filling pouches, the others continue to call NPC. neither the restard of client change the things
 
Joined
Dec 11, 2014
Messages
397
4 hours on one account
 

Attachments

  • Schermata 2015-01-07 alle 20.11.52.png
    Schermata 2015-01-07 alle 20.11.52.png
    139.5 KB · Views: 369
Joined
Dec 18, 2014
Messages
398
I did include the details.

The bot pressed the n key over and over again which opens and closes the equipment tab. The happened in two stages, once while at the bank just after crafting the nature runes and once at the altar just after crafting nature runes.

The reason I stopped using the bot was because it crashed four times in a row while walking to the altar. It would crash at the palm trees just before you can see the nature altar near the shilo wall.
I think this walking to altar thing isn't my fault, but maybe the client's. The trouble is that calculations regarding the ruins happens just at the moment when the game has to load a new section of the map, which may result in a false-positive nullcheck. I'll take this up with Cloud when I have time to discuss it.

When that "n" bug occurs, do you have a ring of duelling equipped?

Greaet proggy, alkimista. As noted previously, I will attempt to fix the bugs as soon as I have a respite from school.
 
Joined
Dec 20, 2014
Messages
19
Great bot, loving it so far.
I will babysit it for a few hours, and post a proggy then.

EDIT1:
e264020873.png


While running I acquired this error
java.lang.NullPointerException
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.enter(WalkToAltar.java:61)
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.enter(WalkToAltar.java:67)
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.enter(WalkToAltar.java:67)
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.enter(WalkToAltar.java:67)
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.enter(WalkToAltar.java:67)
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.execute(WalkToAltar.java:36)
at com.runemate.game.api.script.framework.task.TaskScript.onLoop(ewb:173)
at com.runemate.game.api.script.framework.LoopingScript.run(kub:162)
at com.runemate.game.api.script.framework.AbstractScript.start(lsb:27)
at a.Lk.run(qbb:193)
 
Last edited:
Joined
Dec 18, 2014
Messages
398
Great bot, loving it so far.
I will babysit it for a few hours, and post a proggy then.

EDIT1:
e264020873.png


While running I acquired this error
java.lang.NullPointerException
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.enter(WalkToAltar.java:61)
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.enter(WalkToAltar.java:67)
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.enter(WalkToAltar.java:67)
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.enter(WalkToAltar.java:67)
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.enter(WalkToAltar.java:67)
at com.raymondbl.runemate.natRunner.Tasks.WalkToAltar.execute(WalkToAltar.java:36)
at com.runemate.game.api.script.framework.task.TaskScript.onLoop(ewb:173)
at com.runemate.game.api.script.framework.LoopingScript.run(kub:162)
at com.runemate.game.api.script.framework.AbstractScript.start(lsb:27)
at a.Lk.run(qbb:193)
Yes, that's the walking to altar problem I mentioned in my last post.

EDIT: Guys, please don't think that I'm not dedicated to fixing the script. I've barely spent any time on the script at all since its first release - I sacrificed a lot to even write it in the first place, when I saw that a lot of people wanted it. I released it knowing it would have problems, but also knowing that it's better than nothing. Once I get past this insane school block of mine in a week or two, I'll be able to dedicate half an hour a day to this script and hopefully make it flawless.
 
Last edited:
Joined
Dec 20, 2014
Messages
19
It's an excellent script for just being released; I appreciate you allowing us to make the best of it before it's in prime condition.
Although, another thing I've come across: When you're in the nature altar, and it lags when the script attempts to create the nature runes, it'll click it twice, which'll bring up the dialogue box "You have no more pure essence to bind." Which causes the bot to just sit there.
 
Joined
Dec 11, 2014
Messages
397
Yes, that's the walking to altar problem I mentioned in my last post.

EDIT: Guys, please don't think that I'm not dedicated to fixing the script. I've barely spent any time on the script at all since its first release - I sacrificed a lot to even write it in the first place, when I saw that a lot of people wanted it. I released it knowing it would have problems, but also knowing that it's better than nothing. Once I get past this insane school block of mine in a week or two, I'll be able to dedicate half an hour a day to this script and hopefully make it flawless.
I hope soon as all the function on action bar :)
 
Joined
Jan 1, 2015
Messages
272
NPCContract using interfaces

Code:
InterfaceComponent ActionBar = Interfaces.getAt(640, 4);
                        if(dOpenChest(IdBankChest)) {
                            if ((Bank.getQuantity(this.IdAstralRune, this.IdCosmisRune) >= 1)) {
                               
                                Bank.withdraw(IdCosmisRune, 1);
                                Bank.withdraw(IdAstralRune, 1);
                                Execution.delay(500,550);
                                if(Inventory.getQuantity(IdCosmisRune) < 2 && Inventory.getQuantity(IdAstralRune) < 2) {
                                    Bank.close();
                                }
                                while(!ActionBar.isVisible()){ 
                                    Execution.delay(50);
                                }
                            }
                        }
                        /*if(Interfaces.getAt(548,114).isValid()){
                            Interfaces.getAt(548,114).click();
                        }*/
                        dPressKey((char)KeyEvent.VK_1);
                        Execution.delay(1500);
                        int i = 0;
                        while (i <=5){
                            Interfaces.getAt(88, 7).getComponent(5).click(); //scroll bar for npc contact menu
                            i++;
                        }
                        while (Interfaces.getAt(88, 5).isVisible()) {
                            Interfaces.getAt(88, 5).getComponent(14).click(); //Dark Mage contact
                            Execution.delay(1000);
                            i = 0;
                        }
                        while (Players.getLocal().getAnimationId() == 4413) { //wait for npc contact animation
                            Execution.delay(50);
                        }
                        while(Interfaces.getAt(1191, 19).isVisible()|| Interfaces.getAt(1184, 19).isVisible()) { //communication window to click continue
                            if(Interfaces.getAt(1191, 19).isVisible() || Interfaces.getAt(1184, 19).isVisible()) {
                                dPressKey((char)KeyEvent.VK_SPACE);
                            }
                           
                            Execution.delay(1000);
                        }
                        Execution.delay(1200);
                        dPressKey((char)KeyEvent.VK_2);//click repair pouch
                        //Interface.getAt(1188, 23).click(true); //click repair pouches
                        Execution.delay(1200);
                        while(Interfaces.getAt(1191, 19).isVisible()|| Interfaces.getAt(1184, 19).isVisible()) { //communication end window to click continue
                            if(Interfaces.getAt(1191, 19).isVisible() || Interfaces.getAt(1184, 19).isVisible()) {
                                dPressKey((char)KeyEvent.VK_SPACE);
                            }
                            Execution.delay(1000);
                        }
                        degraded = false;

presskey
Code:
private boolean dPressKey(char Key) {
        Keyboard.pressKey(Key);
        Execution.delay(80,130);
        return Keyboard.releaseKey(Key);
    }
 
Joined
Dec 18, 2014
Messages
398
Are people not able to contact the Dark Mage even once, or is it just bugging out occasionally? Because the first scenario means it's a problem with my textureID, and the second scenario means it's a problem with the failsafe.
Static sleeps are almost usually always a bad idea. Conditional sleeps are far better (Execution#delayWhile/delayUntil).

As another point, there is absolutely no reason that you should ever be looking up a specific interface component by index. Use dynamic queries instead.
You don't need a #dPressKey method because Keyboard already has the method #typeKey(String key).
I appreciate that you did this for me, but I'm not going to use your code because it uses interface indices.
Here's mine, if you can find what's causing the problems. I haven't documented it yet, though.
Code:
    public void contactDMage()
    {
        Data.gui.setStatus("Casting NPC Contact...");
        String key = ActionBar.getFirstAction(Data.NPC_CONTACT)
                .getSlot().getKeyBind();
        if(validateContactDMage())
        {
            if(Keyboard.typeKey(key))
            {
                if(Execution.delayUntil(() -> 
                    isInterface(), 2000, 4000));
                else if(validate()) {contactDMage(); return;}
                Util.getInterface(5470).hover();
                Mouse.scroll(true, (int)Random.nextGaussian(109, 420));
                Mouse.scroll(true);
                processDMage(Data.DARK_MAGE);
                while(validate() || Util.processInterface(Data.NEXT_TEXTURE_ID))
                {
                    if(Util.processInterface(Data.NEXT_TEXTURE_ID));
                    else if(Util.processInterface("Can you repair"));
                }
            }
            else contactDMage();
        }
    }
   
    private boolean validateContactDMage()
    {
        return validate() && !validateWithdrawRunes();
    }
   
    private boolean isInterface()
    {
        return !Util.isNull(Util.getInterface(Data.DARK_MAGE)) && 
                Util.getInterface(Data.DARK_MAGE).isVisible();
    }
   
    private boolean processDMage(String text)
    {
        InterfaceComponent component = Util.getInterface(text);
        if(!Util.isNull(component))
        {
            if(component.interact("Speak-to"))
            {
                if(Execution.delayUntil(() -> !Util.isNull(component), () -> 
                    Data.player.getAnimationId() != -1, 2400, 4800));
                else return processDMage(text);
            }
            else return processDMage(text);
            return true;
        }
        else return false;
    }
public static InterfaceComponent getInterface(int textureId)
    {
        return Interfaces.getVisible(Interfaces.getTextureFilter(textureId))
                .first();
    }
   
    public static InterfaceComponent getInterface(String text)
    {
        return Interfaces.getVisible(Interfaces.getTextContainsFilter(text))
                .first();
    }
   
    public static boolean processInterface(int textureId)
    {
        InterfaceComponent component = getInterface(textureId);
        if(!isNull(component))
        {
            if(component.click())
            {
                if(Execution.delayUntil(() -> !isNull(component), () -> 
                Data.player.getAnimationId() != -1, 1200, 2400))
                    return true;
                else return processInterface(textureId);
            }
            else return processInterface(textureId);
        }
        else return false;
    }
   
    public static boolean processInterface(String text)
    {
        InterfaceComponent component = getInterface(text);
        if(!isNull(component))
        {
            if(component.click())
            {
                if(Execution.delayUntil(() -> !isNull(component), () -> 
                    Data.player.getAnimationId() != -1, 2400, 4800));
                else return processInterface(text);
            }
            else return processInterface(text);
            return true;
        }
        else return false;
    }
 
Joined
Dec 24, 2014
Messages
45
Are people not able to contact the Dark Mage even once, or is it just bugging out occasionally? Because the first scenario means it's a problem with my textureID, and the second scenario means it's a problem with the failsafe.

To answer this question, it only bugs occasionally. For me at least, it will either just withdraw the runes and not cast the spells, but more often then not, it will cast the spell, select the mage, then move the mouse to literally just pixels away from clicking continue but not on it. It then leaves the mouse there and can't continue the conversation to select the pouch repair. This probably happens 1/15 NPC contact casts for me? It's really not that bad.

The withdrawing of all the dueling rings is what has been more of an issue as of late.
 
Status
Not open for further replies.
Top