SRL Archive - RS3 Script Requests

Grand Exhange Merchant


Mister Snow

2011-07-04 10:47:25

Would need to price check every few minutes, be able to read the prices, and be able to set those prices for the next few minutes.


If anyone thinks they are up for it, PM me and I can give more information.

Coh3n

2011-07-04 11:45:17

From: antti mies
I made one in another bot but i'm not willing to share it. It does exactly what you said.
Only got it making 1-3M/hr. Of course it depends on the items you choose.
What was the point in posting if you aren't going to share it? You just told everyone you have one that makes 1-3M/hour, but doesn't matter because you won't share it.

BazzBarrett

2011-07-04 12:25:26

like item flipping? i might be interested what exactly would it do?

Overtime

2011-07-04 12:38:27

Thiers two on RSBuddy, at least the creators share >_>

BazzBarrett

2011-07-04 12:49:35

i wouldn't trust ether of the ones on rsbuddy :L i think he wants a bit more advanced than them like one that will find the prices to buy/sell itself :)

weequ

2011-07-04 14:00:28

From: Coh3n
What was the point in posting if you aren't going to share it? You just told everyone you have one that makes 1-3M/hour, but doesn't matter because you won't share it.
If I knew I could only make up to 3m/hr I wouldn't have made it in the first place. There is a point for ya.

Timothegreat

2011-07-04 16:22:27

im slightly interested, I have made a similar script in the past

TomTuff

2011-07-04 18:59:24

From: antti mies
If I knew I could only make up to 3m/hr I wouldn't have made it in the first place. There is a point for ya.


I think what he was saying is that you shouldn't try and make others jealous of your private scripts - it's ok not to share, but you don't have to tell everyone you're not.

Huthaifah

2011-07-04 19:43:15

What does this script do? Find low prices, buy and sell? I really don't understand the concept of this.. Help a brutha out ;)

HarryJames

2011-07-04 19:50:29

I believe he wants one that finds trends that happen every few hours and actively flips, could be a nice one that is managed from a database to be honest.

cause

2011-07-04 20:24:31

This would be a sweet script. I don't really merch but would it follow daily trends, weekly or…monthly? Are there hourly trends?

Smarter Child

2011-07-04 21:32:40

From: cause
This would be a sweet script. I don't really merch but would it follow daily trends, weekly or…monthly? Are there hourly trends?


No there's : Trends by: Day, 30-day, 90-day, 180-day.(Averages)

Sex

2011-07-05 02:35:15

From: antti mies
I made one in another bot but i'm not willing to share it. It does exactly what you said.
Only got it making 1-3M/hr. Of course it depends on the items you choose.

You got that Timer swag going there…

TomTuff

2011-07-05 03:42:00

Actually, it's much faster; it buys and sells every few minutes. What it does is buy 1 of the item 5% over, record how much it buys for, sells 5% under, records that, then buys lots of the item at the low number and sells them at the high number as it comes in. THATS flipping.

E: Also, a good idea would be to have a timer failsafe. If an item doesn't buy/sell at all within 5 (maybe 10?) minutes, redo the price checking - prices could have changed.

weequ

2011-07-05 10:50:34

Guys I deleted my message. I'm sorry if it was bothering you.

Previously known as "antti mies"

Mister Snow

2011-07-21 23:20:17

Sorry, been a while since I checked back… but here is what I am looking for:

no, heres how it would work:
owner types in the full name of the item they want to merch
bot does the typical "high and low" check, using the prices it sees;
that would be the hardest part, methinks, tho could probably be done if you used an even cash stack in the invent

then it flips the item at the prices it "found" for like 10 minutes, pause 1 minute, does price check again… repeat.

(the even cash stack in invent would be what the bot would read if it couldn't read the price the GE said you bought at… I dunno if it can read that stuff).

I know that sell/buying scripts is not allowed here, but I am sure we can work out some sort of agreement for anyone who is willing to put in the effort for a good script that follows the guidelines I set.

ry0240

2011-07-21 23:32:00

Wouldn't it be easier to just have the bot buy at the price you want to set rather than the G.E high/low Like name of the item, and then set the price you tell it to but and once completed sell at the price you set it at. whether that be the market price or a few gp higher or lower..seems like it would be simpler that way and allow for more user control on the profit you could make.

Edit- like the 5%higher/lower way would probably work for low cost items like food/runes but when you try to merch 1mil+ items 5%higher/lower does'nt really work out and you need more of a defined price to buy/sell.

Edit again- I think I know what the above poster means so maybe a choice to a defined price or have a variable price of the market price if it changes. like if the item is 160,000 have it buy at 140,000 but if the market price drops in an hour to 150,000 then have it buy at 130,000. like -negative a certain amount to what ever the market price is.

Mister Snow

2011-07-22 10:25:13

I really think the best way is for the bot to do a market check every 10 minutes. The prices of almost everything besides maybe essence/shards is constantly changing.

smurg

2011-07-25 13:16:38

I was thinking of doing this.

Is the character set from the GE supported?

Home

2011-08-02 08:23:22

Tell me if I'm wrong. but is this what you wan't.

1. Check Prices for Specific item.
2. Buy them.
3. every 10 min sell them if prices are high?
4. Repeat ?

~Home

josh81193

2011-08-03 00:01:37

From: Home
Tell me if I'm wrong. but is this what you wan't.

1. Check Prices for Specific item.
2. Buy them.
3. every 10 min sell them if prices are high?
4. Repeat ?

~Home


Doesn't wait to sell the item. It checks what the buying price and what the selling price is, and that's what your buying/selling price will be. It puts an offer in GE for the price you want, takes item out of GE and immediately puts it back in to sell for the selling price. Continues buying/selling, etc.

Mister Snow

2011-10-28 08:34:25

Found someone making this script, but now it is no more thanks to jagex.

So…. I need another one.

Mr. Bottomtooth

2011-10-28 09:20:43

From: Mister Snow
Found someone making this script, but now it is no more thanks to jagex.

So…. I need another one.


Was the script you were using a success? A well written script flipping multiple items simultaneously 24/7 could make some serious buck. At the moment with, let's say 700m, you can make 5m/hour if you flip actively.

But the danger here is if a script like this gets out there and becomes widely used, it would destroy flipping margins completely on most items due to constant undercutting.

Edit. And yes I realize that this is a gravedig, but as the person who continued the thread happens to be the OP I don't see a problem here.

Sir R. M8gic1an

2011-10-28 11:53:27

Quickly wiped this up

function CheckPrice(Item: string; HPrice, LPrice, Profit: integer): boolean;
var
rest, LoopBreaker: integer;
begin
if not InGE then exit;

Result := BuyItem(Item, EXTRA_5, HPrice);

// in case it doesn't manage to proceed...
if not Result then exit;

StartTimer(LoopBreaker);
repeat
Result := CollectItem(Item, rest);
until(Result)or(TimeoutTimer(LoopBreaker, 10*60*1000))

if not Result then exit;

HPrice := HPrice - rest;

Result := SellItem(Item, LESS_5, LPrice);

if not Result then exit;

StartTimer(LoopBreaker);
repeat
Result := CollectItem(Item, LPrice);
until(Result)or(TimeoutTimer(LoopBreaker, 10*60*1000))

if not Result then exit;

Profit := HPrice - LPrice;
end;

Flipping the item will essentially be very similar to the above function. SRL has a GE.simba, so you can check that for useful functions..

Things like 'buyItem' should already exist within the include, so just make sure you find the correct one ;)

-RM

blabla7

2011-10-29 11:20:01

From: Sir R. M8gic1an
Quickly wiped this up

function CheckPrice(Item: string; HPrice, LPrice, Profit: integer): boolean;
var
rest, LoopBreaker: integer;
begin
if not InGE then exit;

Result := BuyItem(Item, EXTRA_5, HPrice);

// in case it doesn't manage to proceed...
if not Result then exit;

StartTimer(LoopBreaker);
repeat
Result := CollectItem(Item, rest);
until(Result)or(TimeoutTimer(LoopBreaker, 10*60*1000))

if not Result then exit;

HPrice := HPrice - rest;

Result := SellItem(Item, LESS_5, LPrice);

if not Result then exit;

StartTimer(LoopBreaker);
repeat
Result := CollectItem(Item, LPrice);
until(Result)or(TimeoutTimer(LoopBreaker, 10*60*1000))

if not Result then exit;

Profit := HPrice - LPrice;
end;

Flipping the item will essentially be very similar to the above function. SRL has a GE.simba, so you can check that for useful functions..

Things like 'buyItem' should already exist within the include, so just make sure you find the correct one ;)

-RM


In the grandexchange.scar functions there is no way to check the amount of money received back, neiter is there in text.scar.
Could you please explain me how to do this?

DeSnob

2011-10-29 11:31:55

From: blabla7
In the grandexchange.scar functions there is no way to check the amount of money received back, neiter is there in text.scar.
Could you please explain me how to do this?


It may be a bit challenging to get it to work properly, but you could use the fonts to search for text on the screen.

blabla7

2011-10-29 11:47:25

From: DeSnob
It may be a bit challenging to get it to work properly, but you could use the fonts to search for text on the screen.


I tried doing that, but Ibelieve none of the standard ported fonts were the same :(

mormonman

2011-10-29 13:39:44

I made one of these with reflection….

blabla7

2011-10-30 05:34:18

From: mormonman
I made one of these with reflection….


So did I, its easy when you can use interfaces etc. to get these numbers, but without them; it ain't.

Sir R. M8gic1an

2011-10-30 18:33:12

check amount.simba for coin related functions

-RM

blabla7

2011-10-30 19:04:58

From: Sir R. M8gic1an
check amount.simba for coin related functions

-RM


Is this function also able to calculate the amount of coins in millions?
For example, 4145000 coins would show up as 4m coins.

EDIT:

Tried it and this function will not return the exact amount of coins when you have more then 1000 gp.
It will round it to 1000's and 1000000's of coins :(

Is there any other way I can check the amount of coins I received back?


EDIT: Tried using:


B := IntToBox(402, 280, 435, 315);
writeln(GetAmountBox(B));

But it is always returning me 0.
Even though the amount of gold received back is not 0….
The coords in Tbox B are the coords of the box where the gold is returned.

blabla7

2011-10-31 07:02:49

I think I found a way.
I've tried messing around with text.scar, but I need some help.

Is there any way to check the chatbox's last message for a specific part of that string?

I would examine the coins, so it will for example say
619237109 x Coins.
I will want to do something like this:

 
r : String;
r:=GetLastChatMessage('Coins');
r := r - substring(-7) (to remove the last 7 digits).

Something similar can be done in java, wondering how to do it in pascalscript…

Home

2011-10-31 07:10:37

From: blabla7
I think I found a way.
I've tried messing around with text.scar, but I need some help.

Is there any way to check the chatbox's last message for a specific part of that string?

I would examine the coins, so it will for example say
619237109 x Coins.
I will want to do something like this:

 
r : String;
r:=GetLastChatMessage('Coins');
r := r - substring(-7) (to remove the last 7 digits).

Something similar can be done in java, wondering how to do it in pascalscript…




function TrimLetters(s : string) : string;
var
LetterArray: TStringArray;
i: Integer;
begin
LetterArray := ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z', '.'];
result := s;
for i := 0 to Length(LetterArray) - 1 do
result := Replace(result, LetterArray[i], '', [rfReplaceAll, rfIgnoreCase]);
end;

begin
Writeln(TrimLetters('619237109 x Coins.'));
end.
Can you post what you wan't the result be?

~Home

blabla7

2011-10-31 07:25:01

From: Home
function TrimLetters(s : string) : string;
var
LetterArray: TStringArray;
i: Integer;
begin
LetterArray := ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z', '.'];
result := s;
for i := 0 to Length(LetterArray) - 1 do
result := Replace(result, LetterArray[i], '', [rfReplaceAll, rfIgnoreCase]);
end;

begin
Writeln(TrimLetters('619237109 x Coins.'));
end.
Can you post what you wan't the result be?

~Home


Thanks a lot for your imput.

I'd like to examine the coins, so the chatmessage would become:

6917239 x Coins.

I'd like to store this message into a string and remove the
 x Coins.
from this string, so that the only part left is 6917239. I will then use
strtoint(thestring)
to store the amount of cash into an integer.


EDIT: when I edit your
LetterArray := ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z', '.'];
to
[LetterArray := ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z', '.', ' '];[
(note that I added the spaces) I will only have the numbers left. Now is there any way I can read the last message and store it in a string?

I know that FindBlackChatMessage('') does not return the string but just checks it…

Sir R. M8gic1an

2011-10-31 07:27:05

i believe theres a function in simba to retrieve just the numbers from a string

-RM

blabla7

2011-10-31 07:44:39

From: Sir R. M8gic1an
i believe theres a function in simba to retrieve just the numbers from a string

-RM


That doesn't really matter as that problem is resolved now.
But I would still like to know how to copy the last servermessage into a string…
Please?:D

Home

2011-10-31 08:02:31

From: blabla7
That doesn't really matter as that problem is resolved now.
But I would still like to know how to copy the last servermessage into a string…
Please?:D


Use GetChatBoxText :)



~Home

blabla7

2011-10-31 08:12:05

Thanks a lot! Rep++'ed!
You really helped me out!

Flight

2011-10-31 08:14:01

From: Home
Use GetChatBoxText :)



~Home


Careful, there's been some very recent reports of the OCR not working correctly.

blabla7

2011-10-31 08:23:00

From: Home
function TrimLetters(s : string) : string;
var
LetterArray: TStringArray;
i: Integer;
begin
LetterArray := ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z', '.'];
result := s;
for i := 0 to Length(LetterArray) - 1 do
result := Replace(result, LetterArray[i], '', [rfReplaceAll, rfIgnoreCase]);
end;

begin
Writeln(TrimLetters('619237109 x Coins.'));
end.
Can you post what you wan't the result be?

~Home


The replace method seems to be overriden in SRL.

Compiled successfully in 15 ms.
619237109
Successfully executed.

But as soon as I include
{.Include SRL/SRL.SCAR}
I get

[Error] (13:80): Invalid number of parameters at line 12
Compiling failed.

EDIT1:
Nevermind figured it out.

EDIT2:
Now thats great… GetChatBoxText seems to be broken.

function TrimLetters(s : string) : string;
var
LetterArray: TStringArray;
i: Integer;
begin
LetterArray := ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z', '.', ' ', 'A', 'B', 'C', 'D', 'E',
'F', 'G','H','I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'X', 'Y', 'Z'];
result := s;
for i := 0 to Length(LetterArray) - 1 do
result := Replace(result, LetterArray[i], '');
end;

Function CountMoney: boolean;
var
r : string;
x: integer;

begin
MouseItem(1,false);
wait(1000+random(200));
Chooseoption('Examine');
wait(1000+random(2000));
r := GetChatBoxText(8,clBlack);
x:= strtoint(TrimLetters(r));
writeln(x);
end;

Returns this:
Error: Exception: "?'??'4??" is an invalid integer at line 49
I do understand the error. (by the way the 4 is correct).
But since GetChatBoxText does not return the correct amount of money and cannot identify the numbers this method is useless :(

blabla7

2011-11-01 08:24:50

BUMP with the same question.

Mr. Bottomtooth

2011-11-01 09:37:59

From: blabla7
BUMP with the same question.


Double post. >.< You don't have to bump a thread you posted in yesterday…

Yours truly,
Forum Police

Gu3st...

2011-11-01 10:02:48

blabla7: Yes, unfortunately there is some troubles with Simba's OCR at the moment :(
Either that or the coordinates passed on to FindTextTPA in GetChatBoxText is off by some pixels..

If it's the OCR then there isn't much you can do, I'm afraid…

blabla7

2011-11-01 10:19:14

From: Zyt3x
blabla7: Yes, unfortunately there is some troubles with Simba's OCR at the moment :(
Either that or the coordinates passed on to FindTextTPA in GetChatBoxText is off by some pixels..

If it's the OCR then there isn't much you can do, I'm afraid…


It does return some of the number correctly so I don't think those coordinates are off.

And I thought you were allowed to BUMP every day if no-one has responded since. At least thats at most forums.

anth_

2011-11-01 10:29:47

I made one of these in reflection a few years ago. It would be great to make one again. Just need to get into Pascalscript :L

blabla7

2011-11-01 10:34:07

From: divina commedia
I made one of these in reflection a few years ago. It would be great to make one again. Just need to get into Pascalscript :L


Reflection is way easier with hooks and interfaces than using color..
Nevertheless I got it all in my head. I know exactly how to make it and got quite some experience with pascalscript, its just all functions that I could use are broken…

Markus

2011-11-01 11:46:57

From: blabla7
its just all functions that I could use are broken…


http://villavu.com/forum/showthread.php?p=838177#post838177 report them pleaaasee, I'd love to fill the entire list with red :D

Sir R. M8gic1an

2011-12-05 07:33:30

Ok so yesterday I was flipping for a bit, mithril ores, to test out the concept and see how this works. I got dragged in into I guess what might've been a big mistake…. I was both buying (cheap) ABOVE MED PRICE and selling high, above med price.

Someone came, dumped ores at market price and I got f*cked. I'm guessing never buy above market price? Mithril Ores are on the rise, so I was like… yeh fair enough that they're buying above mid price… but then I saw through action the big flaw in that.

Should it be a sort of rule that if they're buying above market price then it's no good to flip? On the other hand, the price I as buying them at is now Market Price, so I'm all profit. What I'm thinking is that there might be a need to keep a few ores behind to monitor the market, cus we don't want to have goods sitting still in a script, and keeping some behind would allow us to know when the market is no longer favorable, switch items, and get back to that one later.

So an f2p version would probably merchant 3/4 items, and a p2p version would probably merchant 10 - 12 items, rotating them as the market floats.

~RM

shstiger2009

2011-12-05 13:50:41

From: Sir R. M8gic1an
Ok so yesterday I was flipping for a bit, mithril ores, to test out the concept and see how this works. I got dragged in into I guess what might've been a big mistake…. I was both buying (cheap) ABOVE MED PRICE and selling high, above med price.

Someone came, dumped ores at market price and I got f*cked. I'm guessing never buy above market price? Mithril Ores are on the rise, so I was like… yeh fair enough that they're buying above mid price… but then I saw through action the big flaw in that.

Should it be a sort of rule that if they're buying above market price then it's no good to flip? On the other hand, the price I as buying them at is now Market Price, so I'm all profit. What I'm thinking is that there might be a need to keep a few ores behind to monitor the market, cus we don't want to have goods sitting still in a script, and keeping some behind would allow us to know when the market is no longer favorable, switch items, and get back to that one later.

So an f2p version would probably merchant 3/4 items, and a p2p version would probably merchant 10 - 12 items, rotating them as the market floats.

~RM


You've got it pretty much, but I know when I flip, all I do is this.

1. Buy high.
2. Sell low.
At this point, you're going to lose money, whatever you're flipping.
3. Check my "history" and see what I bought and sold for. If I bought for 3,400 and sold for 2,800, there's my window. I then know I can buy at 2,850 and sell at 3,350. Those numbers are both 50 + and - the original values.
4. Buy whatever item it is at the low price, and sell at the high price.

What you said about buying above market price…sometimes it's actually good and means the item is rising. The key for a script would just be recognizing the number you buy high at and the number you sell low at, and buy at the low number and sell at the high number.

smurg

2011-12-05 21:11:57

From: shstiger2009
You've got it pretty much, but I know when I flip, all I do is this.

1. Buy high.
2. Sell low.
At this point, you're going to lose money, whatever you're flipping.
3. Check my "history" and see what I bought and sold for. If I bought for 3,400 and sold for 2,800, there's my window. I then know I can buy at 2,850 and sell at 3,350. Those numbers are both 50 + and - the original values.
4. Buy whatever item it is at the low price, and sell at the high price.

What you said about buying above market price…sometimes it's actually good and means the item is rising. The key for a script would just be recognizing the number you buy high at and the number you sell low at, and buy at the low number and sell at the high number.


That undercut is ridiculous, wtf.

Either cut it by 1gp or stay the same price.

shstiger2009

2011-12-05 22:13:31

From: smurg
That undercut is ridiculous, wtf.

Either cut it by 1gp or stay the same price.


Not really. Everything you start flipping will close in margin after a short while, so you might as well get the fastest buying and selling while you can, and not be undercut by other people.