banq 12 Posted April 10 (edited) Hey all! Just getting into the DreamBot community after being a professional Java & Python developer for 6+ years and playing RS for 20+ years. I recently lost my job so I am looking for some side revenue streams at the moment and have recently been building my own framework on the dreambot API for dependency graph + task & workflow based bots (kinda like Apache Airflow for composing various tasks to create a script). Happy to chat ideas with anyone as well -- I'm sure we can both be of some benefit to each other. My main strong suit is hosting large scale ML applications so applying my experience to osrs bots has been interesting. I have a pretty good understanding of basic scripting concepts within OSRS and interaction, but haven't gotten too much into advanced concepts like Widgets or bossing. Like I said my strong suit is software / ML / hosting not necessarily osrs scripting. If anyone has any good links or documentation that would be awesome! I am looking through things myself but I figured I'd make a quick post in-case anyone has anything in mind. Cheers Edited April 10 by banq
TheSinEater 22 Posted April 10 2 hours ago, banq said: Hey all! Just getting into the DreamBot community after being a professional Java & Python developer for 6+ years and playing RS for 20+ years. I recently lost my job so I am looking for some side revenue streams at the moment and have recently been building my own framework on the dreambot API for dependency graph + task & workflow based bots (kinda like Apache Airflow for composing various tasks to create a script). Happy to chat ideas with anyone as well -- I'm sure we can both be of some benefit to each other. My main strong suit is hosting large scale ML applications so applying my experience to osrs bots has been interesting. I have a pretty good understanding of basic scripting concepts within OSRS and interaction, but haven't gotten too much into advanced concepts like Widgets or bossing. Like I said my strong suit is software / ML / hosting not necessarily osrs scripting. If anyone has any good links or documentation that would be awesome! I am looking through things myself but I figured I'd make a quick post in-case anyone has anything in mind. Cheers You can find all of the Javadocs here that you'd need to code with dreambot , https://dreambot.org/javadocs/overview-summary.html They also have a section in guides that includes more info https://dreambot.org/guides/scripter-guide/starting/ I know it's not a lot but I hope it MIGHT help you! banq 1
fallacy87 18 Posted April 11 Hey mate, Widgets aren't too complicated, I like to think of it kind of like an XML element where there's a "Parent"->"Child"->"Grandchild" with each child being nested inside the other. <Parent> <Child> <Grandchild> </Grandchild> </Child> </Parent> With each element having an ID to call it. I believe everything that's not an Entity, GameObject, GroundItem etc. is a widget. So even if you wanted to click the high alch spell you would have to call the appropriate widget in order to interact with it. Let's say its parent was 300, child was 15 and grandchild was 1 then you could do something like: WidgetChild spellWindow = Widgets.get(300,15); if(spellWindow != null && spellWindow.isVisible()){ WidgetChild highAlchWidget = spellWindow.getChild(1); if(highAlchWidget !=null && highAlchWidget.isVisible()){ highAlchWidget.interact("Cast"); sleep(10000000000); } } But in the API you could easily just call Magic.cast(Normal.HIGH_LEVEL_ALCHEMY); to easily get the same result. I was just using that example to point out that all the windows are built off these widgets. Bossing and combat is pretty fun in my opinion. Getting all the timings down is key so you want to store when you last attack was and be able to tell when the next attack should be (in ticks). I do this either by an animation listener (when the player does the attack animation which is different for each weapon) or a hitsplat listener (make sure the entitys name is the bosses). This can help you keep track of if you need to click to attack the boss or not and say if you need to eat or pot you can do that in between or something. You will also want to keep track of all projectiles, the bosses animations and maybe even some graphic objects to know when to flick the right prayer, move or whatever the right counter is at that time. Theres obviously a lot more to just that and it will heavily depend on what boss you are doing but for me (i absolutely suck at the game) being able to code all the DT2 bosses was rewarding knowing I wouldn't be able to do 1/2 those bosses playing the game normally lol. banq 1
HTM 32 Posted April 11 There are select circumstances where youll use widgets, but when you need them theyre great to know how to use. As failacy said, look at them as elements. Also use developer mode on the client to help pinpoint widgets using the widget tool. I've ran into menus where there was no API so widgets were a must. it'll be a small learning curve when figuring out Widgets and widgetchilds. If you have trouble i can post some example code. When it comes to bossing, a large majority of your identifiers are going to be the animations or location identifiers using your in game tiles. Between the animations and tile awareness you can create a vast majority of bossing scripts. Your ML definitely comes in handy for osrs but only if youre willing to invest in infrastructure. That includes vpn's, proxies, accounts(which can be bypassed with an account creator). Anything ML when it comes to bossing it going to take thousands of instances to train but it's been done before. banq 1
banq 12 Author Posted April 11 14 hours ago, fallacy87 said: Hey mate, Widgets aren't too complicated, I like to think of it kind of like an XML element where there's a "Parent"->"Child"->"Grandchild" with each child being nested inside the other. <Parent> <Child> <Grandchild> </Grandchild> </Child> </Parent> With each element having an ID to call it. I believe everything that's not an Entity, GameObject, GroundItem etc. is a widget. So even if you wanted to click the high alch spell you would have to call the appropriate widget in order to interact with it. Let's say its parent was 300, child was 15 and grandchild was 1 then you could do something like: WidgetChild spellWindow = Widgets.get(300,15); if(spellWindow != null && spellWindow.isVisible()){ WidgetChild highAlchWidget = spellWindow.getChild(1); if(highAlchWidget !=null && highAlchWidget.isVisible()){ highAlchWidget.interact("Cast"); sleep(10000000000); } } But in the API you could easily just call Magic.cast(Normal.HIGH_LEVEL_ALCHEMY); to easily get the same result. I was just using that example to point out that all the windows are built off these widgets. Bossing and combat is pretty fun in my opinion. Getting all the timings down is key so you want to store when you last attack was and be able to tell when the next attack should be (in ticks). I do this either by an animation listener (when the player does the attack animation which is different for each weapon) or a hitsplat listener (make sure the entitys name is the bosses). This can help you keep track of if you need to click to attack the boss or not and say if you need to eat or pot you can do that in between or something. You will also want to keep track of all projectiles, the bosses animations and maybe even some graphic objects to know when to flick the right prayer, move or whatever the right counter is at that time. Theres obviously a lot more to just that and it will heavily depend on what boss you are doing but for me (i absolutely suck at the game) being able to code all the DT2 bosses was rewarding knowing I wouldn't be able to do 1/2 those bosses playing the game normally lol. Hey mate that is great information, really appreciate it!
banq 12 Author Posted April 11 (edited) 13 hours ago, HTM said: There are select circumstances where youll use widgets, but when you need them theyre great to know how to use. As failacy said, look at them as elements. Also use developer mode on the client to help pinpoint widgets using the widget tool. I've ran into menus where there was no API so widgets were a must. it'll be a small learning curve when figuring out Widgets and widgetchilds. If you have trouble i can post some example code. When it comes to bossing, a large majority of your identifiers are going to be the animations or location identifiers using your in game tiles. Between the animations and tile awareness you can create a vast majority of bossing scripts. Your ML definitely comes in handy for osrs but only if youre willing to invest in infrastructure. That includes vpn's, proxies, accounts(which can be bypassed with an account creator). Anything ML when it comes to bossing it going to take thousands of instances to train but it's been done before. Hey really appreciate the info! I am running my own server rack and in theory I could get up to about 500 instances at once on my current rack, so possibly doable for the ML stuff. I do use residential sticky sesion-based proxies (7 day rotation) with IPRoyal. I am starting small right now though and experimenting with some paid scripts and anti-ban testing manually before getting into anything ML based. P2P ML training sounds very expensive bond-wise especially if you don't have good anti-ban measures in place. Edited April 11 by banq
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now