Log in

View Full Version : clicking stuff in inventory slot



grats
03-24-2011, 05:29 PM
Well I wanted to create a script to enchant rings, I wasn't sure what I should use for it? I was thinking bitmap because inventory stuff doesn't change?

I know how to do the stuff with TPA's for like MSCX, MSCY is it MICX for main inventory? main screen C = MSC (not sure what the C stands for)
does MIC = main inventory C or is it something different?


here are some bitmaps (hosting sites change them to png..)
http://i.imgur.com/CfRDp.jpg

http://i.imgur.com/KvF5t.png

http://i.imgur.com/Yn4qJ.png

I should be getting my new motherboard today so I'll be able to get on at home again..

thanks for any help on which I should use / how I should do it, this will probably be my first script I put in the public scripts.. because I don't think we have anything to enchant rings right now.. (will add other colors)





whoops sorry meant to put this in scripting help if someone can move this, hard to figure stuff out on a small ipod screen lol

Floor66
03-24-2011, 05:49 PM
Use DTMs/Bitmaps. I don't see why/how you'd use TPA's for this :P

PatDuffy
03-24-2011, 06:10 PM
I would use a universal ring dtm, so that later when you added other rings you wouldn't need more bitmaps. For finding the dtm the foods would be MIX1,MIY1,MIX2, MIY2. The C in the other coords stands for Center, and is used when searching outwards from the center, which shouldn't be needed for the inventory.

As for spell selection bitmaps will work fine, and you could easily use a case of statement to determine which rings to enchant, then create a function to find the universal ring bitmap I mentioned.

Typing this from my Android so if you still need help I could offer better advice in a few hours when I get home.

Brandon
03-24-2011, 06:20 PM
Actually what I don't like about using dtm's and bitmaps for this is that u would also have to use uptext because after a ring is enchanted, it will look exactly the same and will be clicked again unless u make an array of the invent and cluck every slot once..

I say do something like R_ClickItemBy(2552, true, '') where 2552 would be the emerald ring ID.. That way it will never click a ring that Is already enchanted.. True is left click, false is right click.. '' means use.. Or whatever option you want.. Maybe u can do 'cast spell'

masterBB
03-24-2011, 06:26 PM
From the SRL-include
{ const MIX1, MIY1, MIX2, MIY2;
Description: Inventory EdgePoints. }
const
MIX1 = 547;
MIY1 = 202;
MIX2 = 737;
MIY2 = 466;

{ const MICX, MICY;
Description: Inventory Centre Points. }
const
MICX = 642;
MICY = 334;

I also suggest DTM over Bitmap. DTM's work pretty good with invs.

**BANNED The Man
03-24-2011, 06:39 PM
Check out how SRL's DropItem works?
Then just modify it :)

PatDuffy
03-24-2011, 07:03 PM
Thanks ggzz, I didn't even think of that when I offered my suggestion. So then you could still use a bitmap for the spell, then do a type of click inv by position and cycle through the positions.

Of course that is a non reflection alternative.

grats
03-25-2011, 12:03 AM
I would use a universal ring dtm, so that later when you added other rings you wouldn't need more bitmaps. For finding the dtm the foods would be MIX1,MIY1,MIX2, MIY2. The C in the other coords stands for Center, and is used when searching outwards from the center, which shouldn't be needed for the inventory.

As for spell selection bitmaps will work fine, and you could easily use a case of statement to determine which rings to enchant, then create a function to find the universal ring bitmap I mentioned.

Typing this from my Android so if you still need help I could offer better advice in a few hours when I get home.

Alright yea, so dtms are kind of like tpa's with the coords etc? and from what ggzz said, I'd have to have some type of uptext line to make sure it isn't enchanting a ring that's already enchanted

if you could help me later with that, thanks a bunch.




Actually what I don't like about using dtm's and bitmaps for this is that u would also have to use uptext because after a ring is enchanted, it will look exactly the same and will be clicked again unless u make an array of the invent and cluck every slot once..

I say do something like R_ClickItemBy(2552, true, '') where 2552 would be the emerald ring ID.. That way it will never click a ring that Is already enchanted.. True is left click, false is right click.. '' means use.. Or whatever option you want.. Maybe u can do 'cast spell'

So it would be really easy to do the R_ClickItemBy(EmeraldRingID, true, '')
and then runescape auto switches from your magic tab to your bag each time you enchant/click the magic spell





Thanks ggzz, I didn't even think of that when I offered my suggestion. So then you could still use a bitmap for the spell, then do a type of click inv by position and cycle through the positions.

Of course that is a non reflection alternative.

I don't like to use smart & reflection if I don't have to.. but if it's way easier to do that then I guess I could, I don't really know where to start with reflection though.





Use DTMs/Bitmaps. I don't see why/how you'd use TPA's for this :P

Yea, I don't even know what I'm doing lol :bart:

Brandon
03-25-2011, 12:24 AM
Guessing If ur gunna use pure colour and no reflection at all, then you need U may want to look at ClickAllItemsExcept and make it click only 1 item... so you click enchant then ClickItemExcept enchanted ring, click spell again and repeat.. until Emerald rings no longer exist in the invent..

So basically While (FindItem(Emerald Rings....) = true) do ClickItemExcept wait(random(100)) Click spell

grats
03-25-2011, 01:54 AM
Guessing If ur gunna use pure colour and no reflection at all, then you need U may want to look at ClickAllItemsExcept and make it click only 1 item... so you click enchant then ClickItemExcept enchanted ring, click spell again and repeat.. until Emerald rings no longer exist in the invent..

So basically While (FindItem(Emerald Rings....) = true) do ClickItemExcept wait(random(100)) Click spell

Alright seems too complex for me, I'll probably go with reflection then lol

Echo_
03-25-2011, 05:19 PM
You should take a peek at Inventory.scar in the SRL core, it has some great functions for reading the locations of items and interacting with them (even if the items are all similar in appearance, which seems to be your dilemma).

tom99
03-25-2011, 07:50 PM
Here is a procedure i made with the information you gave,hopefully works.


var ryggsekk,ringamount,magibok,ring,loopconf,x,y:inte ger;

procedure ringenchantinginprogress;
begin
ringamount:=26;//Change this to your amounts of rings -1
Writeln('Commiting magic training');
Ryggsekk := BitmapFromString(22, 22, 'beNolVGtTGlcYfg0a5SIg' +
'oKLcWe4XFRaWOyogKwKroC4ICiyygMpdTWJtnbb50E5t0sw00 04/JW3T' +
'NplO+ws67df+rB7pzJkz58N5n/Pc5lQSw3p2yO72GKrD7J4ze+dMnj1K' +
'n5Wps+PMqJ4XAQgB5gAWARbG61mzxJT2GrWDViXL0InaUWpYy 1w2clet' +
'A7ZItss77XK6X6FMMpABKDjQzXvOMrabI/fX9eB91T9KO+QACPaimutU' +
'M+3yNkK4Pt3tVzKdcuqitN0/SVkkYJmFPuX8gvV/VV95WTf+dO36eeT8' +
'pef888rz9tz27mm0R1nmx6zO9sPVQmxQTT9rHaLxUXXPIIKQl m/lAe0W' +
'fl6w/Tggfhut/HFtez8wfrjE3488H0arv46I+xrxTZvsb5sVACy9jkzo' +
'1qlhY38WwDQ/FTLIwlq+7THQdu6XBce7fuj3AXG7PecSwroatlXwWc5K' +
'KuC+Gn5RcVd8YglAr7l/0ch12TxyLGheyIes63pxSDHpEsAlabglNd+f' +
'OF/XXN2M3SmBlInHeJfvcmsZJXzLrN0zPoTwZFBvnua5E0CFTT7Nd MIi' +
'PiCUMbMAaTlyzz8lsR8Y93cV+4tT1+nGAi6EtF7AeCW7GGR1M MgaxQCj' +
'9nG3ecAD2AuZglousfwIgewHtJsmvoMHZbfkyZbydX31FWPtJ KQnfrV1' +
'CnYw+PdtF61qbFkhgNtzGvGnt1xJXI9y96qFIZ04igkPA7qI6 rF1+sHV' +
'u4LjFYs4r/bSzpAS/nkzUAL8/aZNETw+wN3ZAeoJko9wYm4jyprQSmKm' +
'uWJQH1BwElYhCpcldZ3kUj0iLYX1Ac3kX++evXy6lXVzZBMQ8 +k+PqdR' +
'eXI+E5odskcI06MWbxnmSIMwpJraNAsNAsjg8wdeOe1Xp3Cjf m4i6VVs' +
'OEULExC0iqYnHkrr10kPIqvIimZlfwYJMcgSmHjbIEQqihF9w iowC8A0' +
'A9g0qKZBOi65YgriNpnfJEH30WDArKIi+GOAem0f7WuYBAW6Y 5SE5I/Y' +
'uLlLYmkM0sYJEuOm7VobF2hC55FAZ2c1bpEKAAQTgOsViHzU7 2ix9AwH' +
'7OrZpHWRNMxFFVP1dawfV1+Rqv6WYkQ5OqTPI54sEVoXan7aF TdLUA8R' +
'DcKoRoeLeq7TelCB64UxoxQhRNTckl95SeqfFyy3tP6maO9l8 DURIJds' +
'PCiEjFHzPJLABXBp5QjhslVo17KIjBcTIRVJpEI5TXvkn+Rsn +Z1z4vY' +
'R3ldb8dieQx2PtBBIx0xI0OiXtOYg8prUCK02UlAUAQm2cBQF uKoeqrs' +
'l7ci0jtKfZdcvInPX20ttTeXj0PLdEi7YZOiFBg6FsHN/Af3FG6r3q5X' +
'4CbVilIcNy/FMFFUyakE5aOU6klSfhtX38Q1zYCkFpYfBlWbdhlKf4vA' +
'Toux2z4T9dh4HOAAcB7BJEIzavzGxTDSopk58s6f4Nx+YrkZ1 BwTulLI' +
'tGFdRE+jR9dxY7tKNSupq3Zx2D6K+OwBz0rQ644S+PT4gkst8 qj4qNvl' +
'4FIpsJywymTjHw/JDLut615Hr1HsNHLtWrrH7I1a++iLuG4XepXd7sle' +
'0KGJug3/V4U3RuOPIwt59BsBc9iLXTCHQ7YwYKjLRrZTS54dpzonyT5D' +
'9o6TnVKyW0r1q7tD9jDitUWItbDHFcSdUZ8z6DOx9d1Wneqw+ VGT7lSp' +
'q0b2o/Nc7z/RlDvn');
magibok := BitmapFromString(21, 22, 'beNolVGlPG1cUfSwNKFtDH' +
'YpIFIUYMFuIA94dFrN5Ga/MeLexPR6Px/aMPYsHg20oIeybSIAkhLgpU' +
'qJmoyWVElXqt35IP0RV+5f6SKX78Z177jnn3Us5RdLFRG180p 2NO1LhU' +
'SZmJKeQ8wB8C0AjAN8BUEz6coSdpVx0zMERKINbYaXDViZso7 zjIuHMJ' +
'5wc6UxMjRFhQ4Yw1leBn5/PL+UmXbpr07EJ2OcSABcAmKH806Q/F8OKT' +
'Bhi2aiTdI/yMZtAOKjQRCZqSeJWPDRyoQqcHs/kA2pTdz3n71+kjauiY' +
'6PghZM0ACCpAnzMkYvaqKApFRiHw4sElgvZ6aCLTUUg9fsjdp UeMEpBU' +
'H2Vw7oWSOUao1lKKXaEib2CYz1nkQBwGQAoMBU2CrhTiLpmcG 82iOFBV' +
'z0Anyr5oq/LIaspofJNemA13beMd6wnujfTitWkYi8/viUgi4InPHkPK' +
'hJxdDruLhAeqAViT14slQJqaxuIaa8uxbRrac0yKY9qarlxyb T92mZSu' +
'ZVRbXMjUeedN5Vl6Mk8E+ajk7AKJNZQDVZZZ9GjsraCGbRzMS pfpfoYi' +
'+RYHHs5Y84ZJXnn9e20Yq9gDBjb31dWoKuFtJcjsNnMVMtlsM nZywGlS' +
'Vo3pW5aT2pXiZ4NXHZcGHiRN2zh8gJ2I41Idjk9bmz+8sezkF MH2WcZL' +
'49PQgnSOnDA2eY8dyxtdXHDjVK4c43qFm2XZ61XRGuTaGvOIA 0bGcWBO' +
'JFxdLw9nIPCx5Xts2n3fdrbdQnsZbFFt8ohBSGdRPT1rGfVG9 k7m2kZa' +
'7vIIo1ZS+ODKdljfjBjafnyYTfm0kDnE17LbNo7T6G3z4ND1r mAquzS6' +
'qK/936ifzOrWqfl29nelaRsJ9P/VBw6YPUHnIGyyk6P5uHYBmVbwmudI' +
'QPNtWCbNpf9/XDsoKZpIdK3kpCvk707mbswrB1G/VTUH7Da/ewQg7R9+' +
'fQk6FBeBCDuNRMeW5EKNVWBXQEVsbuhwVu8W53Huh/xQ5Bxn9Pu8QMPI' +
'SmveSwMPMqNJy1dv/y0DPMdVkohHMcQ+A/XuJhZ3oz0XxtsvViMjP2AD' +
'89FFZuM9iGvPeB1eyzE6veFYQqRnh6Vw6iurgpkcNf/8CsA0N4xk6ZFw' +
'E0LlN0gu6CTVndJQNbXuULr94SRHfreLmugkJbB9pqT54tn1F oZFbFDe' +
'NLvhCYMK66z1NjJcelDpXx6WBQToyXGopbVdjWCYSngsb4tDh tsPf/3x' +
'0oYUcK86DgGlzfhh+zmMc1NuCaoo4dNT5y+WH73bOG3V8uvK3 Ovn80VU' +
'7Z50qqX1g91Nmikl94/WYJKR1QdOdKbT7lhh7jbVGZ92rvXv6kG574uk' +
'cekf3X44F1l8cPLpbdH5c8fj2CJxMSvPy7izntnSuOTDImKaS wTMacDi' +
'JhCS3xsUH1br5IPq/tgB0nN2T6yhOXP3yv//HX67+eTN0fzOKY9k9nXl' +
'ktiWdIxQ09OpydTfnOJieapEJ8I0bgvE/cMKlvHFbeG5TehRedqQVUNY' +
'GjvFDqkkH0PO3NEUIijQgIpZ1GesOTjLi7u4Ql/NooKSS9LuZMRSzaMF' +
'JI+XX+nRtOj1nXW1oD6r8dqVNUL4VzUPk1YhbhZTCD5uIMJnb 3n4046Y' +
'k2GTHTMBg8RPInQXob0wDLoOob6paOqdjriyEzZRBLlcQSmPE vZi/8Bx' +
'168pg==');
ring := BitmapFromString(19, 22, 'beNodlOtvFFUYxt/uVrrQbbfd' +
'dnuh7XYvM7Odnd3udq7b2bnPznVLkWpAQVEgRqEIsaXWWoFCI W0h1LKx' +
'MV4AIdzCxUgigYAGDFYT4weCifGD8W/xlORkMpmc35n3fZ/nORrjaEVb' +
'Kzoq7aisq5ZcVXTksj7MW7JoSnxF5owKDyGAjetLcxndYC2F9 TWhotNo' +
'2RrrKJwrCltUyZIEU+csrwSbAMIAzdDn9vT7/WkjgU6QtAICt2jiOviS' +
'8mVhVCo5w0W/wooOCRGQp3h+jus9nOw9iLe83t3t9zTnGxHr26I9zNgq' +
'Z6vCS5AblfkRhTMVSvQJiAF3spheJjbNtrZN98XGE/j7WaAAgRje6am8' +
'ryi2KFoq45mcI7MIdzVGcfPQDsYXKnkxB3MN4dlodKIrtL2xc 7QTGgEn' +
'uyy14EtSVVU9o2TKBUdmfIW2y6Rhp6EFti6xYg2jan3UMpY7k w2+8Urr' +
'tnbCxCAI63+ReFvmUbWWxIxobCNAdAM01UN4IxyeTu061C7uq Weneopz' +
'JHFsoGE0HBmMQACYgZSncqaUG6nkw0FoAjj1sbcwU1o9xV9b4 b49jZ+b' +
'7Z6cbNtxZDO3vyN3iGAOCkgUgoiT8S5bQvPBmxrg/GJ5fiq7OI3XTiau' +
'nEs8upT9+TL26HLq4bXc/PG2sV0hpAuaDEHGqUzcNzhPZZqCUDujLhxL' +
'Tu1v++zDrpUTxO1vpCc3rD/vuX//ZP37zLp/aWBxuqcxAAOp9jzW46p8' +
'RRmsqmQkAPMz7MF9XQf2xOc/NVtDsCkAkTpoqYM/Hoz/88ubz38cvrWc' +
'OP4BHgWoKpQlF01tCPX18NbM3BFx92s9jajNBiBTUQqLUzhOp TsQ3lkP' +
'/z17a+2mdvE0d2gnjvZ7mmDpPKrzwd2Jw+/RqJIi1pxPxmi8zxJZR+e8' +
'ypCjYUwGogF48fST2nxx744YsuEgTrim2lwPP1zfvXdHdwSAw VqrklBV' +
'SkhQSxm0tDx6eiqx1Yi1BuHEDPH29ijyO97b7+lKRwieP91/92vpo93R' +
'GIBfQjsZ12BtZaiqMttMccwkokH48qwwM5EascPhOqAzuKuwz UF4/uzI' +
'0++Nq8vkxM74evuVjGNmtVJ6q0ZtU0n05cp5/fR0//i+lKN2oVJpLGkK' +
'lGVmww3w12/vPrnD36zllqbTyDYh5JwgNNdBex1cWKp8PosdHe/fNUah' +
'OvOp+GCi71VD0HXBtYjIBnix9s7v973Ht4yrq9rxSXJ1Sf+u5 l08V145' +
'lj01iU/szTStU4kCjqHAWuWhakWqmryr42i8a/cPrN0b+/WO8uQ6fXsV' +
'v7FKri4mFo4OzE6UEcWl2ujkZuRqpUy7KJLI4XLJ0URXyyMnx ALw+Ir9' +
'6FLp3lfchTO5hVl8cjwbCkCBiLGpjpEyEog3TUFRaBRhRxHQb YPunBG9' +
'kEtsQIZB0iDpUY8oLKE6GEi2MlTCKhV8mfV05DcaqWzL7Et2H a+U2apR' +
'rpT5YiaViXfnsX70kk32Mtm0Jgwii6LDbYlGgXL/B54zLWA=');
ringamount:=loopconf;


begin ringamount:=loopconf;
repeat
repeat
if findbitmaptolerancein(magibok,x,y,0, 0,1200,800,50) then break;
until(false)
wait(80);
clickmouse(x+8,y+15,true);
repeat
if(findcolorspiraltolerance(x,y,6082161,0, 0,1200,800,150)) then break;
until(false)
wait(240);
clickmouse(x,y,true);
wait(2500);

repeat
if findbitmaptolerancein(ryggsekk,x,y,0, 0,1200,800,50) then break;
until(false)
wait(80);
clickmouse(x+8,y+15,true);
wait(2500);

repeat
if findbitmaptolerancein(ring,x,y,0, 0,1200,800,50) then break;
until(false)
clickmouse(x+5,y+3,true);
loopconf:=loopconf-1;
until(loopconf=0)
end;
end;

procedure freeinvimg;
begin
freebitmap(ryggsekk);
freebitmap(ringamount);
freebitmap(magibok);
end;

begin
ringenchantinginprogress;
freeinvimg;
end.

grats
03-26-2011, 06:30 AM
All the ClickMouse 's were having problems compiling

I don't have any machine to run simba on right now, in a few days hopefully I can get my stuff up and running.

Thanks for the procedure though, I definitely learned from it, I'll check it out more tomorrow at my bros where I can run simba

cycrosism
03-26-2011, 06:59 AM
MouseInv I believe the function is.

Use bitmaps if you want to find something in particular. Check my signiture for the link for my Ultimate Bitmap Tutorial