Th e Doctor Posted July 18, 2013 Share Posted July 18, 2013 Currently I'm working on making feather headdresses with AHK for crafting exp. I seem to be stuck at around 300 k exp/hr and grimy's sheets say that it maxes at 400ish. The script I'm currently using to make them is below... [hide]\::click]::mousemove 0,37,0,R[::clickp::mousemove 0,-37,0,Ro::clicki::mousemove 37,0,0,Ru::clicky::mousemove -37,0,0,Rt::clickr::mousemove -37,-37,0,re::clickw::mousemove 37,37,0,rq::clicka::mousemove 37,-37,0,rs::clickd::mousemove -37,37,0,rf::clickg::mousemove -37,74,0,rh::clickj::mousemove 37,-74,0,rk::clickl::mousemove 0,74,0,r'::click/::mousemove 0,-74,0,r.::click,::mousemove -37,-74,0,rm::clickn::mousemove 37,74,0,rb::clickv::mousemove 0,111,0,rc::clickx::mousemove 0,-111,0,rz::click ^q::mousemove -200,-200,0,r^w::click^e::mousemove 163,163,0,r^r::rbutton^t::mousemove 0,74,0,r^y::click^u::mousemove -126,-190,0,r^i::rbutton^o::mousemove 0,74,0,r^p::click^[::mousemove 50,-480,0,r^]::click^\::mousemove 113,559,0,r [/hide] I basically drag my finger across the keys back and forth and then reverse the same dragging motion but this only ends up making 16 per inventory or 800 exp in about 6 seconds. Any help or suggestions on how to make a better script (or if someone feels like making one for me) would be appreciated. In the mean time I'm just going to wait for my feathers to buy and work on RC. Armadyl Drops : 4 Hilts; 3 Chestplates; 2 Chainskirts; 1 Helmet; 1 Buckler; 2 Shard 1; 2 Shard 2; 1 Shard 3Nex : 1 Zaryte BowKalphite King : 1 Drygore Rapier ; 1 Drygore Longsword : 1 Drygore Offhand Rapier : 1 Drygore Offhand Longsword Link to comment Share on other sites More sharing options...
Low C Posted July 19, 2013 Share Posted July 19, 2013 I hope you don't get botwatched. :/ Link to comment Share on other sites More sharing options...
Hedgehog Posted July 19, 2013 Share Posted July 19, 2013 Can't really help you out much without actually making headdresses myself, but the prettiest way to do it is to store your x coords in an array and your y coords in another, and move the mouse to each when your iterator is even. You can tell if an integer is even by taking the modulo of 2, i.e. i%2 is 1 if i is odd and 0 if it is even. Link to comment Share on other sites More sharing options...
mlskid Posted July 19, 2013 Share Posted July 19, 2013 (edited) [hide=ahk script] Action := 0 Jump := 0 RCtrl:: Gosub , Clean return Esc:: Action := 0 Jump := 0 return Clean: If (Action = 0) { Click Left Action++ } Else If (Action = 1) { Mousemove , 0 , 36 , 0 , R Action++ } Else If (Action = 2) { Click Left Action++ } Else If (Action = 3) { Mousemove , 0 , 36 , 0 , R Action++ } Else If (Action = 4) { Click Left Action++ } Else If (Action = 5) { Mousemove , 0 , 36 , 0 , R Action++ } Else If (Action = 6) { Click Left Action++ } Else If (Action = 7) { Mousemove , 0 , 36 , 0 , R Action++ } Else If (Action = 8) { Click Left Action++ } Else If (Action = 9) { Mousemove , 0 , 36 , 0 , R Action++ } Else If (Action = 10) { Click Left Action++ } Else If (Action = 11) { Mousemove , 0 , 36 , 0 , R Action++ } Else If (Action = 12) { Click Left Action++ } Else If (Action >= 13) { Gosub , Jump1 Action:= 0 } return Jump1: If (Jump <= 2) { Mousemove , 40 , -216 , 0 , R Jump++ } Else If (Jump >= 3) { Mousemove , 40 , -216 , 0 , R Action := 0 Jump := 0 } return To use this you just put your mouse over the first inventory slot and rapidly press the right control/hold it down. Pressing esc will reload the script.[/hide] The original intent of this script was to clean herbs, which is now obsolete. What it does is it moves and clicks each of your inventory spaces and then jumps to the next row. It's actually really good and easily tweakable if you understand AHK even a little bit. I'd use this as a skeleton for things that are click intensive in your inventory. Take a look over this for an idea of what you can do just pressing one button and assigning it to do different things. Or you could do as Mere suggested and store it in an array, but personally I think this way is easier to script as it makes sense to me. Just something to look into if you're really wanting to do this, and be aware to keep it 1:1 as I'm sure you already know. :P Edited July 19, 2013 by mlskid Summoning help:[hide=Wio, lol][/hide] Link to comment Share on other sites More sharing options...
Sy_Accursed Posted July 19, 2013 Share Posted July 19, 2013 ^ That script is nice and all but it breaks the golden rule:1 input to 1 output. If you can just hold the button down and it keeps moving and clicking it is basically an outright macro; you shouldn't even move and click in 1 key press really, as that is 2 outputs. Operation Gold Sparkles :: Chompy Kills :: Full Profound :: Champions :: Barbarian Notes :: Champions Tackle Box :: MA RewardsDragonkin Journals :: Ports Stories :: Elder Chronicles :: Boss Slayer :: Penance King :: Kal'gerion Titles :: Gold Statue Link to comment Share on other sites More sharing options...
Stev Posted July 19, 2013 Share Posted July 19, 2013 ^ It became a macro the second he made a hotkey react with an input - Doesn't make it illegal. Though, I'm sure (optimist here) that he's lifting the key each time. :P. But then again - put logs in your inventory, put logs on your actionbar and hold the key. One action, multiple reactions (drops the full inventory of logs in one press). As is, his script technically does one action per reaction. Now, even though your script abides by the one action per reaction, it still runs risk of being falsely detected as a bot. Why? Because you're using precise move and click values. I know it sounds bad to say make it undetectable, but running it for a few hours/days as is, you're being very risky, no matter how legal it is. Randomize your movements. As Meredith pointed out, you can simplify your script by storing the data in an array. Though, I'd structure it differently:action:=-1 perform:=[{action:"press",button:"rbutton"},{action:"move",x:425,y:475},{action:"press",button:"lbutton"},{action:"move",x:350,y:200}] ;~ Create an array of actions esc:: action++ if(perform[mod(action,perform.maxindex())+1].action=="press") sendinput,% "{" perform[mod(action,perform.maxindex())+1].button "}" else if(perform[mod(action,perform.maxindex())+1].action=="move") mousemove,% perform[mod(action,perform.maxindex())+1].x,% perform[mod(action,perform.maxindex())+1].y returnThe above script, according to RnuneScape's rules, is entirely legal. You'll notice that the above loops actions fine by using modulo - though in a different way then Meredith suggested. However, it also is not random, so use it only as an example. You can add actions or button presses by simply adding to perform:...{action:"press",button:"1"},{action:"press",button:"enter"},{action:"press",button:"z"}... or ...{action:"move",x:500,y:475}... Ofc since I wrote that off the top of my head, the press is only single buttons. So saying, press:"12345", wouldn't work. Although, if you look at the sendinput line, I suppose you could technically do:...{action:"press",button:"enter}hello world{!}{enter"},{action:"press",button:"backspace 5"}......But that's another story and thread all together. Link to comment Share on other sites More sharing options...
Th e Doctor Posted July 19, 2013 Author Share Posted July 19, 2013 ^ It became a macro the second he made a hotkey react with an input - Doesn't make it illegal. Though, I'm sure (optimist here) that he's lifting the key each time. :P. But then again - put logs in your inventory, put logs on your actionbar and hold the key. One action, multiple reactions (drops the full inventory of logs in one press). As is, his script technically does one action per reaction. Now, even though your script abides by the one action per reaction, it still runs risk of being falsely detected as a bot. Why? Because you're using precise move and click values. I know it sounds bad to say make it undetectable, but running it for a few hours/days as is, you're being very risky, no matter how legal it is. Randomize your movements. As Meredith pointed out, you can simplify your script by storing the data in an array. Though, I'd structure it differently:action:=-1 perform:=[{action:"press",button:"rbutton"},{action:"move",x:425,y:475},{action:"press",button:"lbutton"},{action:"move",x:350,y:200}] ;~ Create an array of actions esc:: action++ if(perform[mod(action,perform.maxindex())+1].action=="press") sendinput,% "{" perform[mod(action,perform.maxindex())+1].button "}" else if(perform[mod(action,perform.maxindex())+1].action=="move") mousemove,% perform[mod(action,perform.maxindex())+1].x,% perform[mod(action,perform.maxindex())+1].y returnThe above script, according to RnuneScape's rules, is entirely legal. You'll notice that the above loops actions fine by using modulo - though in a different way then Meredith suggested. However, it also is not random, so use it only as an example. You can add actions or button presses by simply adding to perform:...{action:"press",button:"1"},{action:"press",button:"enter"},{action:"press",button:"z"}... or ...{action:"move",x:500,y:475}... Ofc since I wrote that off the top of my head, the press is only single buttons. So saying, press:"12345", wouldn't work. Although, if you look at the sendinput line, I suppose you could technically do:...{action:"press",button:"enter}hello world{!}{enter"},{action:"press",button:"backspace 5"}......But that's another story and thread all together. That first script you posted I can get to work for the first headdress but attempting to add any more to it results in an error. I really don't understand much about AHK outside of the basic mousemoves and clicks. Armadyl Drops : 4 Hilts; 3 Chestplates; 2 Chainskirts; 1 Helmet; 1 Buckler; 2 Shard 1; 2 Shard 2; 1 Shard 3Nex : 1 Zaryte BowKalphite King : 1 Drygore Rapier ; 1 Drygore Longsword : 1 Drygore Offhand Rapier : 1 Drygore Offhand Longsword Link to comment Share on other sites More sharing options...
Stev Posted July 19, 2013 Share Posted July 19, 2013 Show your code and maybe I'll be able to help. Link to comment Share on other sites More sharing options...
Stev Posted July 19, 2013 Share Posted July 19, 2013 action:=-1 perform:=[{action:"sendinput",buttons:"{enter}hello world{!}{enter}"},{action:"mousemove",x:500,y:500,speed:10},{action:"sendinput",buttons:"{rbutton}"},{action:"mousemove",x:0,y:100,relative:true}] esc:: action++ if(perform[mod(action,perform.maxindex())+1].action=="sendinput"&&perform[mod(action,perform.maxindex())+1].buttons!="") sendinput,% perform[mod(action,perform.maxindex())+1].buttons else if(perform[mod(action,perform.maxindex())+1].action=="mousemove"&&(perform[mod(action,perform.maxindex())+1].x/perform[mod(action,perform.maxindex())+1].x||perform[mod(action,perform.maxindex())+1].x==0)&&(perform[mod(action,perform.maxindex())+1].y/perform[mod(action,perform.maxindex())+1].y||perform[mod(action,perform.maxindex())+1].y==0)) mousemove,% perform[mod(action,perform.maxindex())+1].x,% perform[mod(action,perform.maxindex())+1].y,% perform[mod(action,perform.maxindex())+1].speed,% perform[mod(action,perform.maxindex())+1].relative?"r":"" returnDon't worry about anything below the second line. speed and relative in may be omitted, as you can see from the example above. A quick explanation for those curious:Since AHK has no isNaN() or typeof, and if var is number can not be used in/as expression, using the following is a make-shift way of telling if a variable is a number:msgbox,% variable/variable||variable==0You can see I used that to ensure the x and y massed to mousemove were numbers here:perform[mod(action,perform.maxindex())+1].y/perform[mod(action,perform.maxindex())+1].y||perform[mod(action,perform.maxindex())+1].y==0 If perform.y is a string, then perform.y/perform.y will be null. If perform.y is 0, it'll still fail the perform.y/perform.y (0 is false), and therefore we have the perform.y==0. Link to comment Share on other sites More sharing options...
Th e Doctor Posted July 19, 2013 Author Share Posted July 19, 2013 action:=-1perform:=[{action:"mousemove",x:615,y:525},{action:"press",button:"lbutton"},{action:"mousemove",x:615,y:562},{action:"press",button:"lbutton"},{action:"mousemove",x:615,y:525},{action:"press",button:"lbutton"},{action:"mousemove",x:615,y:599},{action:"press",button:"lbutton"},] esc:: action++ if(perform[mod(action,perform.maxindex())+1].action=="sendinput"&&perform[mod(action,perform.maxindex())+1].buttons!="") sendinput,% perform[mod(action,perform.maxindex())+1].buttons else if(perform[mod(action,perform.maxindex())+1].action=="mousemove"&&(perform[mod(action,perform.maxindex())+1].x/perform[mod(action,perform.maxindex())+1].x||perform[mod(action,perform.maxindex())+1].x==0)&&(perform[mod(action,perform.maxindex())+1].y/perform[mod(action,perform.maxindex())+1].y||perform[mod(action,perform.maxindex())+1].y==0)) mousemove,% perform[mod(action,perform.maxindex())+1].x,% perform[mod(action,perform.maxindex())+1].y,% perform[mod(action,perform.maxindex())+1].speed,% perform[mod(action,perform.maxindex())+1].relative?"r":""return Armadyl Drops : 4 Hilts; 3 Chestplates; 2 Chainskirts; 1 Helmet; 1 Buckler; 2 Shard 1; 2 Shard 2; 1 Shard 3Nex : 1 Zaryte BowKalphite King : 1 Drygore Rapier ; 1 Drygore Longsword : 1 Drygore Offhand Rapier : 1 Drygore Offhand Longsword Link to comment Share on other sites More sharing options...
mlskid Posted July 20, 2013 Share Posted July 20, 2013 What I posted before wasn't actually a script I made, rather someone else's. I just posted it as something of an idea if you knew much about AHK (sorry for not making that clearer). Stev is much more advanced in programming than me and I'm really nubish at creating working ahk scripts but nonetheless I this script shouldn't be too hard to for me to tinker with and find a decent solution.Also, Yes, I realize I posted a 'macro' but as Stev pointed out its nothing really more than what has already been created by Jagex inside the game... Not much of an edge honestly... And in all honesty if you really wanted to do this as easily as possible you could just use the actionbar... set the feathers to one key, then the next has the coif. hit the key for the feather, then doubleclick (with the option checked to have all clicks default to the same thing) with your chat minimized and you could probably do it just as fast as any sort of script... :rolleyes: Summoning help:[hide=Wio, lol][/hide] Link to comment Share on other sites More sharing options...
Ammako Posted July 20, 2013 Share Posted July 20, 2013 The most advanted AHK script I ever made is "XButton2::Ctrl" Link to comment Share on other sites More sharing options...
Th e Doctor Posted July 20, 2013 Author Share Posted July 20, 2013 What I posted before wasn't actually a script I made, rather someone else's. I just posted it as something of an idea if you knew much about AHK (sorry for not making that clearer). Stev is much more advanced in programming than me and I'm really nubish at creating working ahk scripts but nonetheless I this script shouldn't be too hard to for me to tinker with and find a decent solution.Also, Yes, I realize I posted a 'macro' but as Stev pointed out its nothing really more than what has already been created by Jagex inside the game... Not much of an edge honestly... And in all honesty if you really wanted to do this as easily as possible you could just use the actionbar... set the feathers to one key, then the next has the coif. hit the key for the feather, then doubleclick (with the option checked to have all clicks default to the same thing) with your chat minimized and you could probably do it just as fast as any sort of script... :rolleyes: Is there a way to set up the action bar so that it doesnt just drop the feathers and coifs that I'm unaware of? Armadyl Drops : 4 Hilts; 3 Chestplates; 2 Chainskirts; 1 Helmet; 1 Buckler; 2 Shard 1; 2 Shard 2; 1 Shard 3Nex : 1 Zaryte BowKalphite King : 1 Drygore Rapier ; 1 Drygore Longsword : 1 Drygore Offhand Rapier : 1 Drygore Offhand Longsword Link to comment Share on other sites More sharing options...
Stev Posted July 20, 2013 Share Posted July 20, 2013 Do you just click use feathers on coif? Do you get a window that appears to ask Make X? Etc. Do you have to do them 1 by 1? Link to comment Share on other sites More sharing options...
Th e Doctor Posted July 20, 2013 Author Share Posted July 20, 2013 Do you just click use feathers on coif? Do you get a window that appears to ask Make X? Etc. Do you have to do them 1 by 1? There is no make x option (yet) so it's as fast as you can click them 1 by 1. I've been working off of what you gave me and came up with this so far... action:=-1perform:=[{action:"mousemove",x:615,y:525},{action:"mousemove",x:615,y:562},{action:"mousemove",x:615,y:525},{action:"mousemove",x:615,y:599},{action:"mousemove",x:615,y:525},{action:"mousemove",x:615,y:636},{action:"mousemove",x:615,y:525},{action:"mousemove",x:615,y:673},{action:"mousemove",x:615,y:525},{action:"mousemove",x:615,y:710},{action:"mousemove",x:615,y:525},{action:"mousemove",x:615,y:747},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:525},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:562},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:599},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:636},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:673},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:710},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:747},{action:"mousemove",x:615,y:525},{action:"mousemove",x:705,y:525},{action:"mousemove",x:615,y:525},{action:"mousemove",x:705,y:562},{action:"mousemove",x:615,y:525},{action:"mousemove",x:705,y:599},{action:"mousemove",x:615,y:525},{action:"mousemove",x:705,y:636},{action:"mousemove",x:615,y:525},{action:"mousemove",x:705,y:673},{action:"mousemove",x:615,y:525},{action:"mousemove",x:705,y:710},{action:"mousemove",x:615,y:525},{action:"mousemove",x:705,y:747},{action:"mousemove",x:615,y:525},{action:"mousemove",x:745,y:525},{action:"mousemove",x:615,y:525},{action:"mousemove",x:745,y:562},{action:"mousemove",x:615,y:525},{action:"mousemove",x:745,y:599},{action:"mousemove",x:615,y:525},{action:"mousemove",x:745,y:636},{action:"mousemove",x:615,y:525},{action:"mousemove",x:745,y:673},{action:"mousemove",x:615,y:525},{action:"mousemove",x:745,y:710},{action:"mousemove",x:615,y:525},{action:"mousemove",x:745,y:747}] ]:: action++ if(perform[mod(action,perform.maxindex())+1].action=="sendinput"&&perform[mod(action,perform.maxindex())+1].buttons!="") sendinput,% perform[mod(action,perform.maxindex())+1].buttons else if(perform[mod(action,perform.maxindex())+1].action=="mousemove"&&(perform[mod(action,perform.maxindex())+1].x/perform[mod(action,perform.maxindex())+1].x||perform[mod(action,perform.maxindex())+1].x==0)&&(perform[mod(action,perform.maxindex())+1].y/perform[mod(action,perform.maxindex())+1].y||perform[mod(action,perform.maxindex())+1].y==0)) mousemove,% perform[mod(action,perform.maxindex())+1].x,% perform[mod(action,perform.maxindex())+1].y,% perform[mod(action,perform.maxindex())+1].speed,% perform[mod(action,perform.maxindex())+1].relative?"r":""return \::click That's all the coordinates for the coifs alternating between them and the feathers. Problem is that I run into the "expression too long" error after doing more than 15 coordinates worth of lines. Is there a way to allow for larger expressions or can I just map the 2nd half of my inventories coordinates to a different key? Armadyl Drops : 4 Hilts; 3 Chestplates; 2 Chainskirts; 1 Helmet; 1 Buckler; 2 Shard 1; 2 Shard 2; 1 Shard 3Nex : 1 Zaryte BowKalphite King : 1 Drygore Rapier ; 1 Drygore Longsword : 1 Drygore Offhand Rapier : 1 Drygore Offhand Longsword Link to comment Share on other sites More sharing options...
Hedgehog Posted July 20, 2013 Share Posted July 20, 2013 Split it into 2 arrays Link to comment Share on other sites More sharing options...
Th e Doctor Posted July 20, 2013 Author Share Posted July 20, 2013 Split it into 2 arrays I'm assuming I would just need to do this? action:=-2perform:=[{all my coordinates}] p:: action++ if(perform[mod(action,perform.maxindex())+1].action=="sendinput"&&perform[mod(action,perform.maxindex())+1].buttons!="") sendinput,% perform[mod(action,perform.maxindex())+1].buttons else if(perform[mod(action,perform.maxindex())+1].action=="mousemove"&&(perform[mod(action,perform.maxindex())+1].x/perform[mod(action,perform.maxindex())+1].x||perform[mod(action,perform.maxindex())+1].x==0)&&(perform[mod(action,perform.maxindex())+1].y/perform[mod(action,perform.maxindex())+1].y||perform[mod(action,perform.maxindex())+1].y==0)) mousemove,% perform[mod(action,perform.maxindex())+1].x,% perform[mod(action,perform.maxindex())+1].y,% perform[mod(action,perform.maxindex())+1].speed,% perform[mod(action,perform.maxindex())+1].relative?"r":""return EDIT I'm not trying to be difficult, I just really don't understand this stuff very well. Armadyl Drops : 4 Hilts; 3 Chestplates; 2 Chainskirts; 1 Helmet; 1 Buckler; 2 Shard 1; 2 Shard 2; 1 Shard 3Nex : 1 Zaryte BowKalphite King : 1 Drygore Rapier ; 1 Drygore Longsword : 1 Drygore Offhand Rapier : 1 Drygore Offhand Longsword Link to comment Share on other sites More sharing options...
Th e Doctor Posted July 20, 2013 Author Share Posted July 20, 2013 [hide]action:=-1perform:=[{action:"mousemove",x:615,y:525},{action:"mousemove",x:615,y:562},{action:"mousemove",x:615,y:525},{action:"mousemove",x:615,y:599},{action:"mousemove",x:615,y:525},{action:"mousemove",x:615,y:636},{action:"mousemove",x:615,y:525},{action:"mousemove",x:615,y:673},{action:"mousemove",x:615,y:525},{action:"mousemove",x:615,y:710},{action:"mousemove",x:615,y:525},{action:"mousemove",x:615,y:747},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:525},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:562},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:599},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:636},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:673},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:710},{action:"mousemove",x:615,y:525},{action:"mousemove",x:660,y:747},{action:"mousemove",x:615,y:525},{action:"mousemove",x:705,y:525},{action:"mousemove",x:615,y:525},{action:"mousemove",x:705,y:562},{action:"mousemove",x:615,y:525},{action:"mousemove",x:705,y:599},{action:"mousemove",x:615,y:525},{action:"mousemove",x:705,y:636},{action:"mousemove",x:615,y:525},{action:"mousemove",x:705,y:673}] ]:: action++ if(perform[mod(action,perform.maxindex())+1].action=="sendinput"&&perform[mod(action,perform.maxindex())+1].buttons!="") sendinput,% perform[mod(action,perform.maxindex())+1].buttons else if(perform[mod(action,perform.maxindex())+1].action=="mousemove"&&(perform[mod(action,perform.maxindex())+1].x/perform[mod(action,perform.maxindex())+1].x||perform[mod(action,perform.maxindex())+1].x==0)&&(perform[mod(action,perform.maxindex())+1].y/perform[mod(action,perform.maxindex())+1].y||perform[mod(action,perform.maxindex())+1].y==0)) mousemove,% perform[mod(action,perform.maxindex())+1].x,% perform[mod(action,perform.maxindex())+1].y,% perform[mod(action,perform.maxindex())+1].speed,% perform[mod(action,perform.maxindex())+1].relative?"r":""return \::click ^q::mousemove 450,400,0^w::click^1::mousemove 616,563,0^2::rbutton^3::mousemove 0,74,0,r^4::click^5::mousemove 502,466,0^6::rbutton^7::mousemove 0,74,0,r^8::click^9::mousemove 540,70,0^0::click^-::mousemove 615,525,0=::reload[/hide] This is what I'm currently using. Banking is near instant so it's pretty much constant headdress making anyways. I'd still appreciate any help/feedback/improvements that you guys could make but I'll be content with what I've got for now. Armadyl Drops : 4 Hilts; 3 Chestplates; 2 Chainskirts; 1 Helmet; 1 Buckler; 2 Shard 1; 2 Shard 2; 1 Shard 3Nex : 1 Zaryte BowKalphite King : 1 Drygore Rapier ; 1 Drygore Longsword : 1 Drygore Offhand Rapier : 1 Drygore Offhand Longsword Link to comment Share on other sites More sharing options...
X3EN Posted July 20, 2013 Share Posted July 20, 2013 I love it when people take a script with absolute coordinates and comment on it as 'legal'. You are basically implying that a human can disregard the starting mouse position and move it to any point of the screen in the same amount of time and using the same amount of effort. P.S. I am aware that in the end it translates to relative movements and in essence is just enhanced mousekeys (since they have a really crappy/counterintuitive configuration). And yes, I know that MKs are legal. R.I.P. oO000oO0oO00, RS2 range pure transformed to a maxed PvM char in EoC, ten years of time completely wasted.Good to be gone :) Link to comment Share on other sites More sharing options...
Hedgehog Posted July 20, 2013 Share Posted July 20, 2013 Well it is legal, so yeah. Could it be mistaken by botwatch? Sure. Is it against the spirit of the game? Sure. Is it legal? 100% Link to comment Share on other sites More sharing options...
Stev Posted July 20, 2013 Share Posted July 20, 2013 http://pastebin.com/embed_iframe.php?i=551iBXP0 Only works in resizable because I CBA to make it work in fixed. Functions included are edited from my RS_Functions.ahk library: _rs_get_inventory(), _rs_mouse_click(), _rs_mouse_move_inventory(), _rs_find_applet(), _rs_nrand(), _rs_rand(). This will handle everything except banking, is 1:1, and is random. Feathers should be in your first inventory space. The rest of your inventory filled with cowls. Script will automatically find your inventory and items 1-28. If you mess up, Ctrl-ESC will reset action to the beginning. Edit: Apparently Ctrl-ESC can not be set in AHK (on Windows 7 anyways). So you might want to change that hotkey to something else. Link to comment Share on other sites More sharing options...
mlskid Posted July 20, 2013 Share Posted July 20, 2013 [hide=useless stuff]What I posted before wasn't actually a script I made, rather someone else's. I just posted it as something of an idea if you knew much about AHK (sorry for not making that clearer). Stev is much more advanced in programming than me and I'm really nubish at creating working ahk scripts but nonetheless I this script shouldn't be too hard to for me to tinker with and find a decent solution.Also, Yes, I realize I posted a 'macro' but as Stev pointed out its nothing really more than what has already been created by Jagex inside the game... Not much of an edge honestly... And in all honesty if you really wanted to do this as easily as possible you could just use the actionbar... set the feathers to one key, then the next has the coif. hit the key for the feather, then doubleclick (with the option checked to have all clicks default to the same thing) with your chat minimized and you could probably do it just as fast as any sort of script... :rolleyes:[/hide]Is there a way to set up the action bar so that it doesnt just drop the feathers and coifs that I'm unaware of?Ah, wasn't actually on and testing it out. Nevermind then on that idea. I'll try to make a script sometime this upcoming week that tells a little more in detail what I know about how to script and randomizing coordinates. Hopefully it's not too awful and bulky. I'll try to make it as readable for non-programmers like me as possible, but yet give some pointers about how to make really simple scripts that are very effective. @Stev, why did you just use the ctrlEsc to reset the variable? Why not use reload so that the script is brand new again? Does it really make a difference? I'm just curious because I like writing scripts but I'm not the best at it. Summoning help:[hide=Wio, lol][/hide] Link to comment Share on other sites More sharing options...
Stev Posted July 20, 2013 Share Posted July 20, 2013 Reloading the entire script is a waste when the entire script itself is controlled by a single variable. Reset the variable technically resets the script. Link to comment Share on other sites More sharing options...
Th e Doctor Posted July 20, 2013 Author Share Posted July 20, 2013 http://pastebin.com/....php?i=551iBXP0 Only works in resizable because I CBA to make it work in fixed. Functions included are edited from my RS_Functions.ahk library: _rs_get_inventory(), _rs_mouse_click(), _rs_mouse_move_inventory(), _rs_find_applet(), _rs_nrand(), _rs_rand(). This will handle everything except banking, is 1:1, and is random. Feathers should be in your first inventory space. The rest of your inventory filled with cowls. Script will automatically find your inventory and items 1-28. If you mess up, Ctrl-ESC will reset action to the beginning. Edit: Apparently Ctrl-ESC can not be set in AHK (on Windows 7 anyways). So you might want to change that hotkey to something else. Thank you so so so much. You've literally just given me hours of my life back. Also ctrl-esc is working for me but my banking script has a reload in it anyway so it's all good. You can have all my internets for the forseeable future. 2 Armadyl Drops : 4 Hilts; 3 Chestplates; 2 Chainskirts; 1 Helmet; 1 Buckler; 2 Shard 1; 2 Shard 2; 1 Shard 3Nex : 1 Zaryte BowKalphite King : 1 Drygore Rapier ; 1 Drygore Longsword : 1 Drygore Offhand Rapier : 1 Drygore Offhand Longsword Link to comment Share on other sites More sharing options...
X3EN Posted July 21, 2013 Share Posted July 21, 2013 Well it is legal, so yeah. Could it be mistaken by botwatch? Sure. Is it against the spirit of the game? Sure. Is it legal? 100% As a matter of fact, the need for such scripts (and lol @ incorporating rng) shows just how terrible RS UI design is. They could have done the action bar right, so that you could select which of many options you want to use in an action bar slot. They could have done that you are able to bank the inventory and repeat last withdraw (closing bank UI automatically) via one click (even if you would need to open the bank interface to use that button). But no. And now we have scripts to compensate for all of this. And when scripts become legal, people start pushing the boundaries. That's just the way it is. It is natural. P.S. I am aware that this post is not *directly* related to the topic, but it fits the general theme. R.I.P. oO000oO0oO00, RS2 range pure transformed to a maxed PvM char in EoC, ten years of time completely wasted.Good to be gone :) Link to comment Share on other sites More sharing options...
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