Jump to content

Nbacon

Members
  • Posts

    251
  • Joined

  • Last visited

  • Feedback

    100%

Everything posted by Nbacon

  1. Well the main goal is run-time scripts. Then after I get it debugged this nightmare. Ill slap a gui on and make it look like scatch just for the memes. I do have some methods 100% working and this code below makes uncharged orbs.
  2. I hope you can understand this below... Ive been told I suck at explain things. so follow up questions if needed. At the moment im just doing every method 1 at a time and they mostly work on the frist try just need ideas to speed it up. How the program works. So I casted everthing to Object so it can be passed every were and casted back to that object. This is not the best way but it was fastest way implenet the whole api. So there are 2 ways to test the code call the lamba with java or in scheme. The lambdas on the java side are stored in a hashmap <int, 3-arg-lamba> with 1 maped to acceptTrade, 2 maped to ActionFilter, and 3 maped to add... . Calling the hashmaps in java. OSBOT.get(idNumber).run(args, interp, this.name) idNumber every method has a number and there are about 1000 of them. args is a linked list [something ]-> [something] -> ...-> [null] interp is my programing language no osbot methods need it. this.name is the name of the method like EDGEVILLE,equip,open , isopen, caaar, cddddr Calling the method in scheme and how it will run it in java. (equip (getEquipment) (HEADSLOT) "Rune full helm" ) what it turns into on the java side. OSBOT.get( equip id Number).run( [(getEquipment) ] -> [(HEADSLOT) ] ->["Rune full helm" ] ->[null], interp, "equip"); x is the linked list first(x) = [(getEquipment) ] rest(x)= [(HEADSLOT) ] ->["Rune full helm" ] ->[null] [this is a cdr ] x =rest(x) now first(x) =[(HEADSLOT) ] and second(x) = first(rest(x))=["Rune full helm" ] return scemeBot.getEquipment().equip((EquipmentSlot) (HEADSLOT), new String((char[]) ("Rune full helm" ))); examples of scheme code and how it works >(EDGEVILLE)\n returns Banks.EDGEVILLE not matter what is given to it. >EDGEVILLE\n returns {EDGEVILLE} this says its a method and should go in () The line below is example of inside out aways does the inner most right () set and is also infix... (op0 (op1 arg ... ) (op2 arg1 arg2 ) (op3 arg1)) op3 then op2 then op1 then op0 (EDGEVILLE (+ 5 2 (* 5 6) )) turns to (EDGEVILLE (+ 5 2 30 )) turns to (EDGEVILLE (37 )) and is the same thing as (EDGEVILLE) beucase it takes no arges same thing is posible with equip and open bank but in this case they would do something (EDGEVILLE (open (getBank)) (equip (getEquipment) (HEADSLOT) "Rune full helm" ) ) this will put on the rune full helm open the bank then finally Banks.EDGEVILLE Testcases The lines below will fail cases. (equip (getEquipment)) returns FALSE (equip (getEquipment) (HEADSLOT) ) returns FALSE (equip "Rune full helm" (HEADSLOT) ) returns FALSE (equip (HEADSLOT) ) returns FALSE The line below will do the same thing [returns true if the bot puts a rune full helm on] the (getEquipment) is not needed. (equip (getEquipment) (HEADSLOT) "Rune full helm" ) == (equip (getEquipment) (HEADSLOT) 1163 ) ==(equip (HEADSLOT) "Rune full helm" ) == (equip (HEADSLOT) 1163 ) (equip (getEquipment) 9 "equip" ) == (equip 9 "equip" ) *no idea what that means but what ever (Equips an item in the specified inventory slot with the specified action.)* So I think there are 4 Types. static return / do the same thing no mater the args. examples getKeyboard(), getMap().isMinimapLocked(), getBot().isMirrorMode() 1 class many methods with diffent args types examples equip, most RS2Widget methods ... its a long list muiltple classes all with same method that need casting examples use , get, getHeight muiltple classes all with same static/ do the one thing no mater the args examples isopen, close, getInterfaceChildId Type 1. DEF("EDGEVILLE", c, 0, (x, y, z) -> { return Banks.EDGEVILLE; }); Type 2 can take a class but off of context it not needed. Because there are no other methods called that in any other class. Type 3 need to cast to get make object usable with method type Type 4 alot of method with the same name but no need to cast. Thanks.
  3. I just finshed writing 15000 lines of code that implements every method and class once in the osbot api. I want to make something like "OSRS Script Factory" after Im doing writing my implementation of scheme in java. Only problems is I have 15000 lines of untested code. Any and all ideas on how to legitment test every method and class in the api are welcome. And how much memory is too much memory for one bot? I know it caps out at 4 gp but what is max you would goto.
  4. If batch files are not your thing or your on linux like me. You could make the pogram in java Runtime.getRuntime().exec("java -jar ~/Bot/OSBot.jar "+account.info); just need to make a class that holds account info and a loop that loops though all the accounts.
  5. RS2Object ditch = getObjects().closest("Wilderness Ditch"); InteractionEvent interact = new InteractionEvent(ditch, "Cross"); if (ditch.isVisible()){ execute(interact); } This a tip for all new to coding and want to see exaples of obscure code with bad docs. goto github.com login type the string of the package you are using your case "import org.osbot.rs07.event.InteractionEvent;" put osbot after click Code its under Repositories Look at the code and try to make it work. If you cant find anything try searching other keywords or using something else or rethink logic
  6. I have made 5 bots with 99 crafting that just did hides for 8 hours a day till they got banned. I would pay around 50-ish m.it is only 1.2m a hour.
  7. I would use getKeyboard().typeKey(KeyEvent.VK_SPACE); and getKeyboard().typeKey(KeyEvent.VK_2); or getKeyboard().typeKey(' '); and getKeyboard().typeKey('2'); I don't see why you would hardcode it with a value that is not 100% obvious (to you in a few weeks of not working on it and others tring to read your code).
  8. Don't feel bad. I still have to draw the alligator teeth. I'm 22 years old.
  9. I hate this advice. Everone has to start somewhere. Program is problem solving. It realy does not matter where or what you learn as long as you find it fun and engaging. I teach 10-15 years how to program and they always ask what is the best/fastest/coolest. I all ways use "i statements" when talking about those. You can learn the basic syntax of c type (blocked) language in week (few hours) if you never programed a day in your life on khan academy. Its instant feed back... of 'this' did 'this' and 'this' did 'that' and that broke the whole program. Then go look up the almost 1 to 1 correlation of syntax and pogram in any language you want. But problem solving of programing is something you have to apply yourself. There are not alot of short cuts to problem solving you need to find out what works for you and apply it. I bet you could program in APL https://en.wikipedia.org/wiki/APL_(programming_language) , lisp, haskel. They look "hard" not because they are hard but becuase you've never seen it befor. You can change to any languages but the lessons you learn to solve problems make the next problem easier. p.s. this post is 30 days old............
  10. Amazing Quote. dreameo I have used Event Handlers when making my muti-boxer. I thought you could just add a button to the bot screen (but thats not the case?). So the only way to add the button is to draw a rectangle and do some math that says clicked in side x,y and x',y'. I came up this that checks for updates evey 5 ish min and everytime you pause. @Override public void onStart() throws InterruptedException { ... fileShit(); } int counter= 0; @Override public int onLoop() throws InterruptedException { if (counter%450==0){ fileShit(); } counter++; log(x.eval("(loop)")); return 700; } private long size=0; private long amount=0; private void fileShit(){ File folder = new File(getDirectoryData() + File.separator + "bacon_runtime"); File[] files = folder.listFiles(); long sizeHolder =0; long amountHolder =files.length; for (File file : files) { sizeHolder +=file.length(); } if (sizeHolder!=size || amount !=amountHolder){ x.reset(); size=sizeHolder; amount=amountHolder; BufferedReader br = null; for (File file : files) { try { br = new BufferedReader(new FileReader(file)); String st; while ((st = br.readLine()) != null) { log(x.eval(st)); } } catch (IOException e) { e.printStackTrace(); } } } } @Override public void pause() { fileShit(); log(x.eval("(pause)")); }
  11. So I made scheme in java its a flavor of lips (Lost in Stupid Parentheses). The programing language looks terrible for someone that used to java but whatever. The beauty of it is that you can make new run time programs. So I have a way to update programs over sockets ( they cost alot in ram) and don’t know anything about swing/awt. I would like to click a button on the botscreen that would update the code from a file or just automaticly after code goes into a file. [example code makes glass orbs] (define makepart (lambda () (cond ((bankopen?)(closebank)) ((Animation?)(wait)) ((makeall?)(makeall 7)) ((not (use? 1785) )(interact 1785)) (else (interact 567))))) (define bankpart (lambda () (if(not (bankopen?)) (bankopen) (and (getitem? 1785 1)(getitem 567 "all") ) (define loop (lambda () (if (not (invhas? 567 )) (makepart) (bankpart)))) my java code (not alot of help) import com.bacon.bot.scheme.Scheme; import org.osbot.rs07.script.Script; import com.bacon.bot.network.Client_sock; import org.osbot.rs07.script.ScriptManifest; import java.io.StringReader; @ScriptManifest(author = "Bacon", name = "lisp" + ScemeBot.VERSION, info = "Runtime bots", version = 0, logo = "") public class ScemeBot extends Script { static final String VERSION = " 0.0023"; Scheme x ; Client_sock xx = new Client_sock(8888); @Override public void onStart() throws InterruptedException { x =new Scheme(this); log( x.eval("(define test" + " (lambda () \n" + " (if (bankopen?)\n" + " (bankclose)\n" + " (bankopen)\n" + " )))")); log(x.eval("(test)")); log("bot works"); log(x.eval("(start)")); } @Override public int onLoop() throws InterruptedException { if(xx.hasUpdate()){ x.eval(xx.update()); } log(x.eval("(Loop)")); return 700; } @Override public void pause() { log(x.eval("(pause)")); } @Override public void resume() { log(x.eval("(resume)")); } @Override public void onExit() { log(x.eval("(exit)")); } } The automatic code reading would be the best so i dont have to fuck with GUI'S. Thanks.
  12. I am closing this. Sadly there not alot more I can do in the way of mutli-boxing. I'm going to spin off verbose mode in to a machine learning project to make my own human mouse movement and macro recorder. I will keep working on the muler and ge mercher and when I get that done, Ill release it (It needs alot of work and i have to deal with a lot of irl stuff so don't hold your breath). For all who care and commented about multi-boxing. Yes, it is hot garbage for any thing more then Questing and bank standing. I did Tutorial Island, Rune Mysteries, Sheep shear, Cook's Assistant, X Marks the Spot, Imp Catcher, Witch's Potion, Doric's Quest on 25 accounts at onces took me like 4 ish hours. I bet a logic bot could do all these quest in less then 1 hour. Thank you, for your negitive and positive comments/support. Lol_marcus,Ray Reddington,powerrangeralt,LuukBot ,Kramnik,Protoprize,Fenzer,ExtraBotz,Roboman,shreder,Wizzy Sleeve
  13. PC it as a lot. There are 8 accounts with 50+ crafting each and garbage other (100 total level no more no less). Accounts are 30 days + olds with 20ish hours of play time 10-12qp each. I am looking to sell but just need a real pc.
  14. Just the highlights Account 1(type rc): 75 rc, ~50 att/str/def 54 rc, Enlightened Journey Account 2: 99 crafting Account 3 (type smithing): 75 smithing + coal bag 50 smithing + coal bag 30 smithing + coal bag Account 4: Quest cape main ~85 att/str/def/magic/range 70 pray most Diaries done
  15. Hi marcus I think this would solve alot of your problems. Just look at the script I see little errors that do unintended things. If you do it like this , you dont have to do alot of chained if. I found the those to slow down bots.(but not by alot)
  16. week 1 Update:(Schools ending soon so i did not get alot done.) Side goals: got a bitchen GUI for merching and muling part of the scirpt Has a group ge veiw so you can see all your merches at once. Has a group bank so you can see all Items arcoss all accounts A account mangent area with commands to mule/sell/buy item/walk to place in game/ and other Holy fuck verbose mode is hard. Checking if a click is a movent click / a dead click / a menu legit took me like 7 hours. video of a kinda working verbose mode is hard to show. I show it once I make the rs gp to buy VIP(I have like 10ish-M need 30M?) Pictures of the GUI (not connected to the bot yet) Thanks for the support
  17. Hey bitchy Britneys and whining Wendys, I just tring to have fun and make something that I thought would be changing for me. This project has alot more reach then just a simple muti boxer that was legit like 70-100 lines of code and most of them were for debuging. At the moment im implenting a group active filper gui were you give it items with a price and a buy limit and how much you want to buy/sell and it trys to optimize your ge offer slots to get the most items bought with the cash each account has.
  18. Thank you. Thank you. I have a java program that can be ran that just prints out what it would do in the bot.(video below) I do agree that you could just write a script to do a task and load it up on 100 accounts at once. but i hope when I get the verbose mode done/working it could be used to make on-the-fly macros, muling, mass questing, group tasks like muling rc and mini games ,other "by hand accitives" that people recomend you do.
  19. So because sir puggers made a new video I have gotten a lot of people asking for the mutli box. You can contact me with a personal message or on discord inept#0327 [254157948585115650] https://osbot.org/forum/topic/162117-multiboxer-public-release/ This project is done for. Outcomes: Basic multi boxer works alot better then i thought it would. Sold the Verbose mode code to some who wants to use it to make questing bots. Ge mercher works great just need to glue my gui to it. [OG Post] This is my first project that I would like to release to the public. To learn the api of this bot I made a multi-boxer with 2 modes, 1 to 1 and verbose. 1 to 1 is legit how it sounds if you click the bot will click in the same spot on all acounts good for bank standing tasks(when it sets up all bots will be faced the same way and walked to the same square whit all setting changed to the same as the master accounts). Places this can be used blast furnace, low population banks, ge merching, opening rune and feather packs. Verbose is still in pre pre pre beta. It has a master bot with slaves on a 1-3 second delay(try to get this to under 200 ms). What does verbose mean? If you trade a shop keeper on one account(master) it will not be in the same place on a different world(a slave account). Hopefull the verbose mode will take care of this By using the Api for interfaces,bank and walking. Atm I have able to do bank standing skills at any where in runescape off of 1 master account with the bank being in any order. I am running a beta if you would like to test it. All I ask is if I get my debuging mode to work is you give me the file it outputs and tell me any possible features you would like and fill out a little survey . **I don't have vip so I cant prove that I does the same thing on all acounts** (bad qulaty video) In this video you can see that the user input is off but when you click on the canvas the bot will uses the Api to move the mouse and click at that spot on all accounts using this bot. I hope with the video you can get the jest of how it works.
  20. I found a bug in isRequirementItem in Itemreq. Bug matchs any stackable item that can't be noted (ie coins and woad leafs) to all stackable item that can't be noted. old code (around line 126) public final boolean isRequirementItem(final Item item) { return item.getName().equals(getName()) && (item.isNote() == isNoted()) || (isStackable() && item.getDefinition().getNotedId() == -1); } The fix public final boolean isRequirementItem(final Item item) { return item.getName().equals(getName()) && ((item.isNote() == isNoted()) || (isStackable() && item.getDefinition().getNotedId() == -1)); }
×
×
  • Create New...