Jump to content
  • Create New...

All Activity

This stream auto-updates

  1. Today
  2. @klumel8can you test it on the new client and make sure it’s all good before I move to archive?
  3. Yesterday
  4. Last week
  5. Yeah, it's like 120 herbs an hour, 100k/hr hunter xp ( with stam pots), and a 4% drop rate of fossils which can be traded for lamps. It's basically an ironman-specific grind. Yeah, it looked janky in the paint when doing it in the poll, due to how sometimes a poll() gets blocked up doing stuff (eg webwalking locks that cycle for 30+ seconds), and the paint wouldnt update in that time. By running it in a seprarate thread it continues unimpeaded. I do hate threads though, they're a last resort. I shouldn't be using .firstOrNull() tbh. I'll revert back to just .first() and .valid(). (Personal bias; I do really dislike the .nil() objects, so nulls work better in my head.) 100%, just rushed code I guess. I use isEmpty/isNotEmpty in most other places. 😘
  6. Ty for the video, had no idea what herbiboar was till now. Although seems like a dumb minigame as it's a lot of effort for a single herb???? Anyway, we all know full well you've been there done that with the SW ranks and client developer in the past so I don't see a reason why you won't be a great addition to the team! The below may well be my lack of understanding but just some things I saw that stood out to me. https://gitlab.com/powbot-bpl/herbiboar/-/blob/main/src/com/runemax/herbiboar/threads/RunEnergyUsageTrackingThread.java Rather than creating your own thread, you're running approx every tick anyway so it would probably be easier to utilise the tick events that are already running. https://docs.powbot.org/#/Basic_Fundamentals/Events https://gitlab.com/powbot-bpl/herbiboar/-/blob/main/src/com/runemax/herbiboar/tasks/HarvestTask.java#L21 I don't know if there's any benefit for doing .count() over .isNotEmpty() but .isNotEmpty() is nicer 🙄 https://gitlab.com/powbot-bpl/herbiboar/-/blob/main/src/com/runemax/herbiboar/tasks/HarvestTask.java#L28 Is this not 2 unnecessary checks? Surely a herbiboarNpc.valid() would also mean it's not null? However I obviously have no issues at all welcoming you to the team. Unless of course anyone else has any feedback, @const_
  7. You seem to have misunderstood me here. You had a conditional wait inside an if() which was correct, you only want to pickpocket again, if that first wait returns true. However what you had was Conditional.wait(Conditions) if(Conitional.wait(Same conditions as above)) Meaning the first wait isn't needed because you're then doing it exactly the same way again inside the if(). You've seemingly removed the OpenPouch.java altogether here?? It again seems you're just trying to resolve the issues that I'm pointing out but not understanding them at all. Don't get me wrong, you've come a hell of a long way from where you started but I still don't think you quite understand how it all works enough yet. I've put this on hold till mid-end of Feb. In the mean time, write some different scripts, get a better understanding of how it all works and come back to this and apply your newly learned knowledge to this.
  8. Yo, it's ya boi bpl. I'm submitting my spaghetti for review, so I can start submitting scripts to the SDN. First up, herbiboar. I gained hundreds of herbs and ~60k prayer xp from fossils during testing this. Project: https://gitlab.com/powbot-bpl/herbiboar Basically: It uses some form of dogshit task framework to waterfall down a collection of tasks, typical accept() poll() shit This is actually a section of my larger project, so it might look a little detached. (The herbiboar specific logic can be found in https://gitlab.com/powbot-bpl/herbiboar/-/tree/main/src/com/runemax/herbiboar) Utilises varps to work out what route of the herbiboar trail is currently active Notes herbs at tool leprechaun Stores fossils at fossil storage box Sexy paint stats Works fine with breaks and restarting/starting the script part way through an existing trail. Todo: Add support for stamina pots (will do tomorrow) Optimise a couple of the Conditions.waits() to listen for chat messages/varp changes; rather than animation changes etc (eg when herbi harvesting) Refine the task framework (thinking of implementing some form of priority queue rather than a LinkedHashSet) Doesnt yet use the tunnel shortcut, requires webwalker changes. (super low priority) Main Entrypoint: https://gitlab.com/powbot-bpl/herbiboar/-/blob/main/src/com/runemax/BplHerbiboar.java Reqs: Access to fossil island, 80+ hunter. Progress + Video: 1 hour proggie unassisted (aka log in, start script, wait). NOTE: As i'm using my iron and lack stamina pots (thus the 53% run enabled stat) the XP is reduced compared to the wiki rates. recording.mp4
  9. Well it just doesn't use it, I've tried starting the script when coal bag is in invy and in the bank, but it just ignores it
  10. Hiya, I got 99 smithing using this script with a coal bag, can you provide some more details?
  11. Hey, I've tried krul BlastFurnace today, but it doesn't seem to support coal bag as it says in the features.
  12. Dan

    ugge application

    Hi mate, thanks for the application however this is too simple to consider for your application however some feedback for you anyway. Seems thrown together without much thought, the main script class is called testerscript… You have a task framework but your tasks have no validations other than your states. If the condition to set your states fail you end up getting stuck in a loop. Instead, try to work actually use the validations to tell the script when to activate something, your herb combine script has absolutely no validations whatsoever before interacting and using the vial. Also you should have 1 task per responsibility, within reason at least. Your bank task also opens a door, walks to the bank, then does the banking. Too much for 1 task. Something else I noticed in your bank task is you query the door, then check if the door has the action “Open” rather than using .actions(“Open”) as part of your door query. On top of that, open and closed doors usually have different ID’s. As you’re passing the ID, it likely is the closed state door so wouldn’t need to check for actions anyway. Magic numbers is a big no no, use variables and pass those variables around to your classes, A) you can give it a memorable name, so next time you come to do maintenance on it, you know exactly what the number represents. B) if it’s used multiple times, then you only need to maintain the one variable if it were changed. Rather than have to go through and change all instances of that number for example. Hopefully you can see the benefits in the points I’ve made, it not feel free to reach out to us or I, on discord or here 🙂
  13. Hello, I'm applying with the following scripts, it's somewhat niche, but used for herblore leveling while on a specific step on the Lunar Diplomacy quest. https://github.com/uggeg/lunarherbs The script has 2 modes which I'll briefly explain below: Talk mode Will run inbetween Lunar Isle bank and Oneiromancer and talk to her and do some inventory interactions to get the vials. Then it runs and fills them with water in the lunar village, and then proceeds to bank them. Herb mode Will use the herbs and combine them together with the filled vials to get 84xp for each marrentil/guam herb. Here's a youtube video that uses the same method kind of(but mine is for regular accounts, not UIM):
  14. Earlier
  15. Great thanks for letting me know what to look for! I plan on applying all of this yet again tomorrow to the entire script! 🙂 enjoy your slepe friend.( nightmare joke)
  16. As per your message on discord, here's some more feedback 🙂 User interface is much better allowing the user to select from drop downs rather than have to type names or id's 👍 Also nice job on splitting up the tasks to 1 responsibility i.e. splitting eat and opening pouches. Just some general feedback here, nothing too major. https://github.com/MaddoxOSRS/BlackJack/blob/855038192a6494686aebf48908c1a78e36bf491b/src/io/maddox/behaviour/KnockandPick/leaves/Eat.java#L27 This is over complex for what it is. HOWEVER I see the logic and the ingenuity behind what you've done here. Rather than have to have different methods or eat or drink, you pull the actions and use the first one which is pretty clever. The part here that's over complex is checking that actions > 0, every single item in the game has an action, usually bare minimum "Use" and "Cancel" so this check is completely unnecessary as you're already checking that it's valid in the step above. Further to that, you also specify i.valid() in your filter query which again isn't necessary as you're checking if food.valid() later on. You're doubling up the workload for no reason here. https://github.com/MaddoxOSRS/BlackJack/blob/855038192a6494686aebf48908c1a78e36bf491b/src/io/maddox/behaviour/KnockandPick/leaves/OpenPouch.java#L22 Not sure I understand the wait logic here; opening coin poches has no animation, right? So why check if you're idle and not moving as an alternative to having no coin pouches? https://github.com/MaddoxOSRS/BlackJack/blob/855038192a6494686aebf48908c1a78e36bf491b/src/io/maddox/behaviour/KnockandPick/leaves/MovetoBandit.java#L15 Brackets are your friends here, you'll want to use brackets to group together your conditions. So rather than: condition1 && condition2 || condition3 && condition4 it becomes (condition1 && condition2) || (condition3 && condition4) What this does is it evaluates the contents of the brackets as a whole boolean, so it becomes Condition1 || Condition2 HOWEVER, you don't need condition4 in this statement as it's the same as condition 2; so you'd be better off rewriting this to @Override public boolean isValid() { return !Configs.house.contains(Players.local()) && (Inventory.stream().name(Configs.food).action("Eat").isNotEmpty() || Inventory.stream().name(Configs.food).action("Drink").isNotEmpty()) } Otherwise you're re-evaluating the same condition multiple times which again is more workload for the script/client to do when it doesn't need to. Judging by the amount of times you're quering for both Eat and Drink actions, you'd be better off creating a variable in your main class, like you did with the noted id, store the designated action. Default "Eat" unless they chose wines, then change to "Drink". This way you don't have to query both all the time. https://github.com/MaddoxOSRS/BlackJack/blob/855038192a6494686aebf48908c1a78e36bf491b/src/io/maddox/behaviour/KnockandPick/leaves/KnockandPick.java#L44 As you are using on line 45, conditional waits return a boolean as to whether they early returned true, or they timed out false. So why do you repeat the wait on line 44? 44 can be removed completely. https://github.com/MaddoxOSRS/BlackJack/blob/master/src/io/maddox/behaviour/Luring/leaves/Lure.java Much much better than before, using variables rather than magic numbers all over the place. The next step would be to house all of your constants in 1 place so they're accessible by all of your leaves should they need it. For example a Constants.java to store all of these in, just like you do with Configs. 🙂 https://github.com/MaddoxOSRS/BlackJack/blob/855038192a6494686aebf48908c1a78e36bf491b/src/io/maddox/behaviour/Restocking/Leaves/SellEmptyjugs.java#L26 Not sure if you knew, but we have a Store section in the api so you can do your trade, and then a conditional wait for Store.opened() rather than have to check and get all the widgets. I've not finished going through it yet but if I see anything else I'll add some more 🙂 Otherwise some great improvements but for now I'm off to sleep 😄
  17. tile visible not behind widget [] Point(x=453, y=281) // centerPoint() [] [487, 427, 419, 481] // matrix().bounds().getXpoints() tile now behind widget [] Point(x=-1, y=-1) // centerPoint() [] [805, 748, 751, 809] // matrix().bounds().getXpoints() Point p = tile.matrix().centerPoint(); System.out.println(p.toString()); System.out.println(Arrays.toString(tile.matrix().bounds().getXpoints())); Obviously then the methods to interact at these points then fails because it passes a null point. The testing for behind widget was simply behind the inventory, tested on both inventory open and inventory closed. If this is somehow intended, it leaves an extremely limited viewpoint for interactions.
  18. should be resolved now; you can also tag me on discord or create a thread on discord or dm me on discord basically anything on discord where I'll get a notification if you're not sure where to post it but should be all good now.
  19. One video is just alching, watching the script turning single tap on and off just fine the other video is powmagic teleporting alching and getting stuck in a loop turning single tap on and off NsLG2RsfQf.mp4 g3XaBr2dIi.mp4
  20. Script: Fossil Island Giant Seaweed Farmer Details: A simple farming bot that would be able to harvest giant seaweed and plant the spores. Features: 1. Spore collecting: As seaweed spores randomly spawn when you are in the area, maybe the bot can hang around and pick them up when they spawn. 2. Leprechaun NPC interaction: It would be nice if the bot could withdraw ultracompost from the leprechaun to use on the seaweed patches and then storing the empty buckets in the leprechaun. Also, the bot would hopefully banknote the giant seaweed it harvests by using them on the leprechaun. 3. Loop: As it only takes 40 mins for giant seaweed to grow, it would be nice if you could run the script, let the bot do it's tasks, then log out until the seaweed has grown where it will repeat its processes. This is useful for ironmen and pet hunters.
  21. I see! Either way looks good, sorry it took so long, I didn't realise it had all been updated lol; welcome to the team 🙂 @const_
  1. Load more activity