SRL Archive - Archive

Rasta Magician - SRL Member Application Form


Sir R. M8gic1an

2007-12-03 14:06:45

<!– BEGIN TEMPLATE: formanswers –>
Rasta Magician - SRL Member Application Form
Rasta Magician

What is the meaning to life?
Living it to the fullest.
Accepting Death is the start of Freedom.


Where you Referred to SRL? If yes, by whom?
I wasn't.


Programming Knowledge
PHP

Other Communitys
KYAB ( just started there)

How Long have You Played Runescape
2 years

Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.

Hi, I go around as Rasta Magician and hopefully some of you have noticed me around. I've developed the annoying habit of going through the First Scripts section and reviewing some of the scripts over there, and I'm proud to say I actually got to know one of the Scripters and we are now developing a script together :)
I'm 16 and I've been into web making and programming from about the age of 8. I know some people around here have been doing it for longer and it seriously surprised me because i used to think it was quite rare for someone to start at that age. My first programming language, and the only one i dare say I'm quite familiar with is PHP. I've also had some javascript and PSP programming phases but didn't go too deep into it.
Runescape is not the only online game i play, i also spend much time at TTAdvance, an online version of the FF8 game Triple Triad, and at Conquer Club, an online version of Risk. But i enjoy programming in scar for Runescape because jagex is an ever changing opponent.

PS: I am fully aware that my script is not complete, but i was hoping for some open minds, because it is an auto merchant that has been rendered pretty useless since the grand exchange update and player to player trading isn't as common anymore. Please note how well (i hope) it is coded, although it doesn't get to actually merchant. I also left many possibilities for updates, with a little bit of tweaking i could merchant anything and if we(I) get a bit creative it can even be used for things such as trading cuts for uncuts and cooked for uncooked, another option that was sort of ruined by the assist system.

Yours truly,
Rasta Magician

——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted



{===================================================================]
[ Rasta Magicians Coal Merchant ]
[ ]
[ NAME : RM Coal Merchant ]
[ WRITER : Rasta Magician ]
[ CATEGORY : Buy/Sell ]
[ DESCRIPTION : Buys and sells coal, makes money ]
[ USAGE : Start prefaribly in a bank ]
[ SRL Used : 4 rev #5 ]
[ Version : 1.0 ]
[ Released : Not Yet ]
[ ]
[===================================================================]
[ Instructions. ]
[===================================================================]
[ 1. Use SRL 4 rev #5 and SCAR 3.12 ]
[ 2. Setup from line 80 to the big restricted sign you'll see it, ]
[ no need to worry about missing it ]
[ 4. Position your player wherever there is a crowd ]
[ 5. Hit run! ]
[ 6. Post proggies and feedback please! :) ]
[ 7. ONLY USE THIS ON LEVEL 40'S MORE!!!! ]
[===================================================================]
[ Information ]
[===================================================================]
[ This buys and sells coal, so I suggest you use it in Fally. ]
[ Please have at least 50k in each of your players, otherwise ]
[ it'll take a really long time to make a remarkable profit, ]
[ and it'll be buying and selling coal in ridiculously small ]
[ amounts. This will buy coal until you're out of money, and ]
[ then it'll sell it, and restart buying when you're out of coal ]
[ ~RMagician ]
[===================================================================]
[ Future Updates ]
[===================================================================]
[ 1. World Switch ]
[ 2. Buy/Sell ANYTHING ]
[ 3. Your Suggestion? ]
[===================================================================]
[ Credits ]
[===================================================================]
[ The Claw, for this nice looking layout, and Randoms ]
[ The Dev Team, for Srl ]
[ cathering_, i used his/her making typo idea ]
[ Salmoneus, [url]http://runescape.salmoneus.net/[/url] - chat effect guide ]
[ Rogeruk, for helping me with amount.scar ]
[ Fakawi for FindFastRandoms and comment on my first version :) ]
[===================================================================]
~RMagician }


{
OreDTM := DTMFromString('78DA635CCFC4C0A0CAC8800CAC2C35C0344C9' +
'4713E508D3AAA1A982C5CCD6AA01A71026AF601D5281050B30BA8' +
'469B809A35403546F8D50000E6AA05BC');

NotedOreDtm := DTMFromString('78DA637CC2C4C0B09E910119589AAB8169982' +
'8E323A09AA5A86A60B270356F816A561150F301A8661B013520BB' +
'7610507313A8663301350F806A961150F30AA86621116E5E47843' +
'97B08A8B90A54B39D809A5B4035BB08A8B90654B31ABF1A00455B' +
'1557');


}
{ this is for the selling part

b := Trunc(315/150); it'll round down the number
writeln(IntToStr(b));


}
program RMagicianCoalMerchant;
{.include srl.scar}
{.include srl/srl/misc/trade.scar}

type
thingy2 = record
buytxt: string;
item: string;
price: string;
effect: string;
end;
type
blacklist = record
name: string;
wlvl: integer;
end;


var
theMessage: array of thingy2;
Trader: array of blacklist;
timesTalked,
OpenTrade, Declined, TotalTrades, TTraders,
MarkStart, MarkLastTrade, MarkOpen, MarkItemCheck,
i: integer;
ThisTrader: string;

const
TotalPlayers = 1; // does this need an explanation?
useEffect = False; // use runescape chat effects
Change = 7; //change character after x mins (i suggest 5-7 mins)

Procedure DeclarePlayers;
Var
I: Integer;
Begin
CurrentPlayer := 0;
HowManyPlayers := TotalPlayers;
NumberOfPlayers(HowManyPlayers);

Players[0].Name :=''; //username
Players[0].Pass :=''; // password
Players[0].Nick :=''; // 3-4 letters of username
Players[0].Active:=True; // do you want to use this player?
players[0].Strings[3] := '150'; // eg: '1k' or '1000' or '1.5k'
players[0].Integers[0] := 150; // real buy price eg: 1000
players[0].Strings[4] := '200'; // eg: '5k' or '5000' or '5.5k'
players[0].Integers[1] := 200; // real sell price eg: 5000
players[0].Booleans[0] := True; // buying=True, Selling=False

{
Players[1].Name :=''; //username
Players[1].Pass :=''; // password
Players[1].Nick :=''; // 3-4 letters of username
Players[1].Active:=True; // do you want to use this player?
players[1].Strings[3] := ''; // eg: '1k' or '1000' or '1.5k'
players[1].Integers[0] := 0; // real buy price eg: 1000
players[1].Strings[4] := ''; // eg: '5k' or '5000' or '5.5k'
players[1].Integers[1] := 0; // real sell price eg: 5000
players[1].Booleans[0] := True; // buying=True, Selling=False

Players[2].Name :=''; //username
Players[2].Pass :=''; // password
Players[2].Nick :=''; // 3-4 letters of username
Players[2].Active:=True; // do you want to use this player?
players[2].Strings[3] := ''; // eg: '1k' or '1000' or '1.5k'
players[2].Integers[0] := 0; // real buy price eg: 1000
players[2].Strings[4] := ''; // eg: '5k' or '5000' or '5.5k'
players[2].Integers[1] := 0; // real sell price eg: 5000
players[2].Booleans[0] := True; // buying=True, Selling=False

Players[3].Name :=''; //username
Players[3].Pass :=''; // password
Players[3].Nick :=''; // 3-4 letters of username
Players[3].Active:=True; // do you want to use this player?
players[3].Strings[3] := ''; // eg: '1k' or '1000' or '1.5k'
players[3].Integers[0] := 0; // real buy price eg: 1000
players[3].Strings[4] := ''; // eg: '5k' or '5000' or '5.5k'
players[3].Integers[1] := 0; // real sell price eg: 5000
players[3].Booleans[0] := True; // buying=True, Selling=False

}
// LoadPlayerArray;

For I := 0 To HowManyPlayers - 1 Do
begin
SetLength(Players[I].Integers, 2);
SetLength(Players[I].Booleans, 1);
SetLength(Players[I].Strings, 5);
// players[I].Booleans[1] := True; // is the item your buying notable? eg: coal, iron NOT: runes, arrows
// players[I].Booleans[2] := False; // Are you selling this 1 by 1?
players[I].Strings[0] := 'coal'; // objet name
players[I].Strings[1] := 'caol'; // typo
players[I].Strings[2] := 'col'; // another typo
end;
Writeln( IntToStr ( HowManyPlayers ) + ' Players' );

NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
End;

////////////////////////////////////////////////////////////////////////////////////////////////////
// This area is //
// ( ) //
// RRRRRRRR EEEEEEEE SSSSSSSS TTTTTTTTTTTT RRRRRRRR II CCCCCC TTTTTTTTT EEEEEEEE DDDD //
// RR RR EE SS TT RR RR II CCC TT EE DD DD //
// RR RR EEEEE SSSSSSSS TT RR RR II CC TT EEEEE DD DD //
// RR RR EE SS TT RR RR II CCC TT EE DD DD //
// RR RR EEEEEEEE SSSSSSSS TT RR RR II CCCCCC TT EEEEEEEE DDDD //
// //
// //
// For your Own Macroing //
// Stop HERE if You Don't Know How to Program //
// //
////////////////////////////////////////////////////////////////////////////////////////////////////









// ARE YOU SURE YOU READ THE SIGN UP THERE?

function SuperTradeScreen(screen: integer): Boolean; // By RMagician (me)
var
foundGreen, foundRed, foundBlue :boolean;
a, b:integer;

begin
if screen = 1 then
begin
if (TabExists(2))and(TabExists(3))and(TabExists(8)) then
begin
writeln('tabs still there, we are not in trade')
Result := False;
end else
begin
writeln('no tabs');
foundGreen := FindColorTolerance(a, b, 49152, 218, 168, 297, 212, 5);
foundRed := FindColorTolerance(a, b, 192, 222, 248, 294, 286, 5);
if (foundGreen)and(foundRed) then
begin
Result:= True;
writeln('we are in trade screen 1');
end else
Result := False;
end;
end;

if screen = 2 then
begin
foundGreen := FindColorTolerance(a, b, 49152, 195, 305, 250, 320, 5);
foundRed := FindColorTolerance(a, b, 192, 268, 305, 321, 320, 5);
foundBlue := FindColorTolerance(a, b, 16776960, 369, 285, 458, 315, 5);
if (foundGreen)and(foundRed)and(foundBlue) then
begin
Result:= True;
writeln('we are in trade screen 2');
end else
Result := False;
end;

end;


Function FindFastRandoms: Boolean; // By WT-Fakawi.

Var
i: Integer;

Begin
For I := 1 To 10 Do
Begin
Case I Of
1: If FindDead Then
Result := True;
2: If FindMod Then
Result := True;
3: If FindMime Then
Result := True;
4: If FindMaze Then
Result := True;
5: If FindQuiz Then
Result := True;
6: If FindDemon Then
Result := True;
7: Begin
If NoGameTab Then
Begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
End;
End;
8 : If RC Then
Result := True;
9 : If FindFight Then
Begin
Result := True;
RunTo('N', True);
End;
10: If FindTalk Then
Result := True;
End;
Wait(1);
End;
End;

procedure AntiRandoms; //taken nearly directly of The Claw's VWM
begin
FindTalk;
FindNormalRandoms;
FindFastRandoms;
FindLamp('smithing');
SolvePinball;
if FindFight then
begin
RunTo('N', True);
Wait(15000 + random(5000));
RunBack;
end;
end;

Procedure NoBan;
var
NBan: Integer;
begin
NBan:= 1+Random(10);
case NBan of
1: HoverSkill('mining', False);
2: MMouse(0, 0, 500, 300);
3: PickUpMouse;
4, 10: GameTab(1 + Random(14));
5: AlmostLogout;
6: BoredHuman;
7: HoverSkill('smithing', False);
8, 9: HoverSkill('random', False);
end;
if (NBan = 4)or(NBan = 10) then wait(1000+Random(500));
GameTab(4);
end;

Function FindLastTrade: Boolean; // this is basically Wizzup? and WT-Fakawi's
var // but used only for the last line
x, y:integer;
begin
Result := FindColorTolerance(x, y, 8388736, 30, 447, 100, 457, 5);
end;

function RMBlackList(action, who:string; lvl:integer):boolean; //by me
var
name: string;
textP: TPoint;
found:boolean;
p:integer;
begin

//getting this trader's name
if (action = 'check') then
begin
textP := TextCoords(8);
name := LowerCase(Trim(GetTextAtEx(textP.x - 2, textP.y - 2, 0, SmallChars, False, False, 0, 1,
8388736, 60, False, tr_allChars)))
ThisTrader := TrimTradeName(name);
//checking if it's an ok person
for p:=0 to TTraders - 1 do
begin
if (who = Trader[p].name) then
if (Trader[p].wlvl >= 3) then
Result := False;
end;

end;

//adding a warn to the trader
if (action = 'warn') then
begin
for p:=0 to TTraders - 1 do
begin
if (who = Trader[p].name) then
begin
Trader[p].wlvl := Trader[p].wlvl + lvl;
found := True;
result := True;
break;
end;
end;

if not found then //we gotta add him to the list
begin
SetArrayLength(Trader, TTraders + 1);
Trader[TTraders].name := who;
Trader[TTraders].wlvl := lvl;
Inc(TTraders);
end;
end;
end;

Function MyOpenTrade: Boolean; // By RMagician, (me)
var
aMark: integer;
x, y, xtra, a:integer;
begin
a:= 0;
MarkTime(aMark);
if FindLastTrade then
begin
repeat
xtra := 10*a;
FindColorTolerance(x, y, 8388736, 30, 447, 100+xtra, 457+xtra, 5);
MMouse(x, y, 53, 3);
wait(1000+Random(1000));
if IsUpTextMulti('ccept','trade','t trade') then
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
wait(2000+Random(500));
Inc(a);
until(SuperTradeScreen(1))or(TimeFromMark(aMark) >= 7000);

if SuperTradeScreen(1) then
Result := True
else
Result := False;

end else
Result := False;
end;

procedure MyAccept; //only used SuperTradeScreen isntead of tradescreen
begin
if not LoggedIn then Exit;
if (SuperTradeScreen(1)) then
begin
Mouse(264, 194, 20, 10, True);
Wait(1000 + Random(500));
end else
if (SuperTradeScreen(2)) then
begin
Mouse(228, 310, 20, 4, True);
Wait(1000 + Random(500));
end
end;

procedure MyDecline; //only used SuperTradeScreen isntead of tradescreen
begin
if not LoggedIn then Exit;
if (SuperTradeScreen(1)) then
begin
Mouse(259, 264, 20, 10, True);
Wait(1000 + Random(500));
end else
if (SuperTradeScreen(2)) then
begin
Mouse(296, 308, 20, 4, True);
Wait(1000 + Random(500));
end
end;

function CheckScam:Boolean; //by RMagician (me)
var //if false your NOT being scammed
x, y:integer;
begin

if SuperTradeScreen(1) then
Result := FindColorTolerance(x, y, 255, 330, 300, 455, 315, 5);

if SuperTradeScreen(2) then
Result := FindColorTolerance(x, y, 255, 350, 270, 475, 290, 5);

end;

procedure SayThanks;
var
j:integer;
Begin
if FindBlackChatMessage('Accepted trade') then
begin
j := Random(16);
case j of
0: TypeSend('Thanks');
1: TypeSend('Thank you');
2: TypeSend('thanks vm');
3: TypeSend('thanks man :D');
4: TypeSend('cheers');
5: TypeSend('thx');
6: TypeSend('thanks mate');
7: TypeSend('thx mate');
8: TypeSend('thx man');
9: TypeSend('thx vm');
10: TypeSend('gracias');
11: TypeSend('thank you mate');
12: TypeSend('thank you dude');
13: TypeSend('thx dude');
14: TypeSend('thx, ill see you around');
15: TypeSend('tyvm');
end;
wait (1000+Random(500));
Inc(TotalTrades);
end;
end;

procedure Talking; // will do all the necessary talking
var
buytypo, color, effect: string;
x, b: integer;
begin
if not LoggedIn then Exit;
x:= Random(10);
if(Players[CurrentPlayer].Booleans[0]) then
begin

if (x > 3) then
begin
buytypo := 'buying';
end else
if (x <= 3)and(x >= 2) then
begin
buytypo := 'buyin';
end else
if (x < 2) then
buytypo := 'bying';

end else
begin

if (x > 3) then
begin
buytypo := 'selling';
end else
if (x <= 3)and(x >= 2) then
begin
buytypo := 'seling';
end else
if (x < 2) then
buytypo := 'sellin';

end;
theMessage[CurrentPlayer].buytxt := buytypo;

if not LoggedIn then Exit;
if useEffect = True then
begin
x := random(12)+1;
case x of
1:color := 'flash1:';
2:color := 'flash2:';
3:color := 'flash3:';
4:color := 'glow1:';
5:color := 'glow3:';
6:color := 'green:';
7:color := 'cyan:';
8:color := 'white:';
end;
if x <= 5 then
begin
b := Random (3)+1;
if b = 1 then
effect := 'wave2:';
end else
// begin
if x > 5 then
begin
b := Random(5)+1;
case b of
1:effect := 'shake:'
2:effect := 'wave:'
3:effect := 'wave2:'
end;
end;
// end;
end;
theMessage[CurrentPlayer].effect := color+effect;

if not LoggedIn then Exit;
x := random(10);

if (x > 2) then theMessage[CurrentPlayer].item := players[CurrentPlayer].Strings[0];
if (x = 2) then theMessage[CurrentPlayer].item := players[CurrentPlayer].Strings[1];
if (x <= 1) then theMessage[CurrentPlayer].item := players[CurrentPlayer].Strings[2];

if not LoggedIn then Exit;
x:= random(100)+1;
if x > 45 then
begin
if players[CurrentPlayer].Booleans[0] then
theMessage[CurrentPlayer].price :=', '+players[CurrentPlayer].Strings[3]+' ea'
else
theMessage[CurrentPlayer].price :=', '+players[CurrentPlayer].Strings[4]+' ea'
end else
theMessage[CurrentPlayer].price := '';


TypeSend(theMessage[CurrentPlayer].effect+theMessage[CurrentPlayer].buytxt+' '+theMessage[CurrentPlayer].item+ theMessage[CurrentPlayer].price);
end;






//this is just here for testing purposes
procedure DoFStuff;
var
GiveAmount:integer;
begin
// accept + decline + give money + add to black list
if not LoggedIn then Exit;

if isFKeyDown(1) then //accepts trade
MyAccept;


if isFKeyDown(2) then // declines trade
begin
MyDecline;
RMBlackList('warn', ThisTrader, 1);
Inc(Declined);
end;

if isFKeyDown(3) then //will offer the right amount
begin
i := Amount('trade', 1)
GiveAmount := players[0].Integers[0] * i;
Mouse (577, 230, 0, 0, False);
wait(300+Random(500));
ChooseOption('ffer-X');
wait(300+Random(300));
TypeSend(IntToStr(GiveAmount));
end;

if isFKeyDown(4) then //will add trader to blacklist, so you dont trade him anymore
RMBlackList('warn', ThisTrader, 3);
end;

procedure ScriptSetup;
begin
SetupSRL;
ClearDebug;
DeclarePlayers;
ActivateClient;
LoginPlayer;
SetLength(theMessage, HowManyPlayers);
ClearDebug;
end;

procedure PlayerSetup;
begin
SetBar('Brightness', 4);
wait(500+Random(700));
Mouse(362,492, 3, 3, True); //set trade chat to view | will update it to the srl function
wait(500+Random(100));
SetChat('friends', 2);
HighestAngle;
wait(100+Random(300));
GameTab(4);
writeln('coin amount: '+ IntToStr(CoinAmount('inv')));
writeln('you got this much coal:'+IntToStr(Amount('inv', 2)));
MarkTime(MarkStart);
end;

Procedure Proggie;
begin
if not LoggedIn then Exit;

writeln('\///////////////////////////////////////////\/');
writeln('\/ RMagician Auto-Merchant v0.7 \/');
writeln('\///////////////////////////////////////////\/');
writeln('\/ Talked: '+IntToStr(timesTalked));
writeln('\/ Trades: '+IntToStr(TotalTrades));
writeln('\/ Declined: '+IntToStr(Declined));{
writeln('\/ Avoided Scam: 48');
writeln('\/ Sold: 58, Bought: 13');
writeln('\/ Money earned: 10000');
writeln('\/ Money used: 5000');
writeln('\/ Total Money: 5000'); }
writeln('\///////////////////////////////////////////\/');
writeln('\/ Running For: '+TimeRunning);
writeln('\///////////////////////////////////////////\/');

end;

//main loop
begin
ScriptSetup;
repeat {for multiplayer}
if not LoggedIn then Break;
PlayerSetup;
repeat
if not LoggedIn then Break;
{talking}
AntiRandoms;
Talking;
Inc(TimesTalked);
if (Random(10) = 1) then NoBan; //10% chance
if not LoggedIn then Break;

{checking if someone wants to trade}
if FindLastTrade then
begin
if RMBlackList('check', '', 0) then //if he's not in black list then
begin
writeln('someone wants to trade!');
if not LoggedIn then Exit;

{trying to open the trade}
MarkTime(MarkOpen);
repeat
if MyOpenTrade then
begin
Inc(OpenTrade);
if players[CurrentPlayer].Booleans[0] then
begin
repeat
if not LoggedIn then break;
if SuperTradeScreen(1) then //make sure we are still in trade
begin
writeln('in trade screen 1');
wait(1000+Random(500));
//check for items/ore
////ore - tell them to note it, Deny, add 1 to blacklist
////not ore -check amount in 1st slot, check if coal
//////coal - give money, move to accept, check scam
//////not coal - add 1 to black list, say coal only, Deny
////////scam - add 3 to black list, Deny
////////no scam - accept
DoFStuff;//for testing purposes
end else
if SuperTradeScreen(2) then
begin
writeln('in trade screen 2');
wait(1000+Random(500));
//check scam
////Scam - add 3 to BlackList, Deny
////no scam - accept, Inc(Trades)
DoFStuff; //for testing purposes
end else
break;
until(False) //this is NOT an infinite loop
wait(1000+Random(500));
SayThanks;
//check how much money they have
////if money < 100*coal price stop buying, change the boolean to False, change player
{ end else
// begin --> not needed, but helps me stay sane
repeat
if not LoggedIn then break;
if SuperTradeScreen(1) then //make sure we are still in trade
begin
writeln('in trade screen 1');
wait(Random(1500));
//Offer all 2nd inv slot
//wait for money, max 30 secs
//check if enought money, if not
//reduce coal amount. Trunc(money/CoalSellPrice)
//wait 7
//check for scam
//if no scam accept
end else
//begin
if SuperTradeScreen(2) then
begin
writeln('in trade screen 2');
wait(1000+Random(500));
//if no scam accept
end else
break;
//end
until(False) //this is NOT an infinite loop
wait(1000+Random(500));
SayThanks;
if coal < 100 price start buying, change player
//end;
}end else
writeln('couldnt open trade');

until(TimeFromMark(MarkOpen)>= 7000)
end else
writeln('he is in black list, not trading');
end;
wait(1000+Random(1000));
ClearDebug;
Proggie;
until(TimeFromMark(MarkStart) >= Change*60*1000)or(not LoggedIn)
if not LoggedIn then Players[CurrentPlayer].Active:= False;
NextPlayer(Players[CurrentPlayer].Active);
until(False) {for multiplayer}
writeln('script stopping'); //actually it'll never reach this....
end.

——————————————————
<!– END TEMPLATE: formanswers –>

munk

2007-12-03 14:19:35

the script looks much better than most of the apps nowadays. good standards, complex. Does it compile?

ill save my vote for a little bit and see what others saying, but leanin towards yes.

Wizzup?

2007-12-03 14:20:35

Yes from me. Good job!

munk

2007-12-03 14:29:15

From: Wizzup?
Yes from me. Good job!


haha, ^that's all i needed to hear.

yes

I really like how you implented the typos.

Sir R. M8gic1an

2007-12-03 14:31:35

From: munk
the script looks much better than most of the apps nowadays. good standards, complex. Does it compile?

ill save my vote for a little bit and see what others saying, but leanin towards yes.


Due to much of the scripting in the mainloop being in comments it does not compile because of some of the If's not being ended. However before i added in all the comments it did compiled and i had it running many times to sell my coal without having to do much work.

From: Wizzup?

Yes from me. Good job!


Thank you very much :)

edit: Thank you for the vote too munk :)

n3ss3s

2007-12-03 14:49:19

Definite yes from me!

Its always nice to see an applicant which didn't get in last time, but walked in next time :)

Sir R. M8gic1an

2007-12-03 14:53:41

From: n3ss3s
Definite yes from me!

Its always nice to see an applicant which didn't get in last time, but walked in next time :)


Thank you for the yes, and it seems to me you're under the impression i applied before? I didn't, i think you might be mistaking me for someone else? :p

Ruroken

2007-12-03 14:57:27

Best app I've seen in a while. Good stuff my man!

I like the scam protection, its a good idea. :)

P1nky

2007-12-03 15:14:49

uhhh YuH!!!!!! dude those the scripts that are unusaul GJ WISH I THOUGHT ABOUT THAT 1 NICE yeah like the scam protection once again WONDERFUL JOB!

Macrosoft

2007-12-03 15:48:53

in please!
nice script! You can see from it that you know what ur doing

lol yes from wizzup means yes from everyone :)

Sir R. M8gic1an

2007-12-03 16:08:53

From: Macrosoft
in please!
nice script! You can see from it that you know what ur doing

lol yes from wizzup means yes from everyone :)


From: p1nky

uhhh YuH!!!!!! dude those the scripts that are unusaul GJ WISH I THOUGHT ABOUT THAT 1 NICE yeah like the scam protection once again WONDERFUL JOB!


From: Ruroken

Best app I've seen in a while. Good stuff my man!

I like the scam protection, its a good idea.


Heh thank you very much everyone, I'm of to bed with hopes pretty high :)

Rasta Magician

gerauchert

2007-12-03 16:16:46

Hah very nice! I too created a merchanter that never was completed due to amount.scar + grand exchange + my laziness :p

YES FROM ME! :D

Macrosoft

2007-12-03 16:17:23

From: Rasta Magician
Heh thank you very much everyone, I'm of to bed with hopes pretty high :)

Rasta Magician


yeah, i remember my application…
I was so happy that first night :)

RAM

2007-12-03 16:41:20

Good Introduction, pretty extensive script…one question… typing the colors…. Wouldn't ":" need "ctrl" + ?

Best Regards,

~RAM

Sir R. M8gic1an

2007-12-03 16:51:23

From: RAM
Good Introduction, pretty extensive script…one question… typing the colors…. Wouldn't ":" need "ctrl" + ?

Best Regards,

~RAM


as in "red:" ? No, using TypeSend you don't need to add anything else to it.

here: this will work perfectly fine

program MiniTalk;
{.include srl.scar}
begin
SetupSRL;
TypeSend('James:how are you? Harry: Amazing!');
end.

~Rasta Magician :)

LordGregGreg

2007-12-04 03:49:53

i can dig it.
Yes

Dan Cardin

2007-12-04 07:02:14

first app i've voted yes on in a while :)

Rikje

2007-12-04 07:03:37

its a yes from me! :)

ZephyrsFury

2007-12-04 07:25:43

Yes! Your script is kinda like what I was trying to do… I failed miserably… ;)

Mr.Klean

2007-12-04 08:13:53

Yes from me.

n3ss3s

2007-12-04 08:41:34

Thank you for the yes, and it seems to me you're under the impression i applied before? I didn't, i think you might be mistaking me for someone else?


Well then you have showed good attitude somewhere else in the forums :)

the scar noob

2007-12-04 10:51:23

hhmm, I never saw something else from you, so I want to ask you something:)

Did you made the records? if so, would you please make another example of the usage of records?

I'm holdin gmy vote until you did;)

-Tsn.

n3ss3s

2007-12-04 11:04:52

I don't wanna interrupt anyones opinion or check whatever, but whats so special in a record type type?

DDTMs are way more complex…

Sir R. M8gic1an

2007-12-04 15:54:31

From: the scar noob
hhmm, I never saw something else from you, so I want to ask you something:)

Did you made the records? if so, would you please make another example of the usage of records?

I'm holdin gmy vote until you did;)

-Tsn.


Yes, i made the records myself. It's only the second time i've used them, and the first time i did it was on the previous version of this script, so they're pretty similar.



{===================================================================]
[ Rasta Magicians Word Eater ]
[ ]
[ NAME : RMagician's Word Eater ]
[ WRITER : Rasta Magician ]
[ CATEGORY : cloaking / Merchanting ]
[ DESCRIPTION : Talks like a human, makes typos ]
[ USAGE : Start prefaribly in a bank ]
[ AUTOCOLOR : No Need ]
[ SRL Used : 4 BETA ]
[ Version : 0.5 ]
[ Released : 9/9/2007 ]
[ ]
[===================================================================]
[ Instructions. ]
[===================================================================]
[ 1. Use SRL 4 BETA and SCAR 3.11. ]
[ 2. Setup from line 80 to the big restricted sign you'll see it, ]
[ no need to worry about missing it ]
[ 4. Position your player wherever there is a crowd ]
[ 5. Hit run! ]
[ 6. Hold F5 to stop it, F6 to restart, ]
[ Hold F7 to say Thanks + Restart ]
[ 7. Post proggies and feedback please! :) ]
[===================================================================]
[ Information ]
[===================================================================]
[ This was designed to buy and sell items, therefore it works best ]
[ if used for those purposes. if you know some coding, you can ]
[ tweak it, to be used as a normal auto talker. chat effects make ]
[ the talking take longer. use smartly, for example if you want ]
[ coal use this in falador. ]
[===================================================================]
[ Next Version - 1.0 ]
[===================================================================]
[ 1. Auto Trade ]
[ 2. World Switch ]
[ 3. Buying until x amount, start selling at x amount ]
[ 4. Fast Mode / Human Mode ]
[ 5. Anti-Randoms ]
[===================================================================]
[ Credits ]
[===================================================================]
[ The Claw, for this nice looking layout ]
[ The Dev Team, for Srl ]
[ All the wonderful people whose tutorials i learnt from ]
[ cathering_, i used his/her making typo idea ]
[ Salmoneus, [url]http://runescape.salmoneus.net/[/url] - chat effect guide ]
[ Rasta Magician (me), for makign this ]
[===================================================================]
~RMagician }

program RMagiciansWordEater;
{.include srl/srl.scar}

type
thingy = record
buyprice: string;
sellprice: string;
buying: Boolean;
name: string;
typo1:string;
typo2:string;
end;

type
thingy2 = record
buytxt: string;
item: string;
price: string;
effect: string;
end;

var
objecto: array of thingy;
theMessage: array of thingy2;
timesTalked, mistakes, pricesaid, pausedTimes, thankTimes: integer;
h, i, j: integer;

const
timesToTalk = 500; // Total times to talk [5 messages, 100 times ea = 500]
howManyItems = 1; // how many objects are you selling / buying
useEffect = False; // use runescape chat effects


procedure objSetup; //this is to set up the items, make sure to get this right!
begin
SetLength(objecto, howManyItems);
SetLength(theMessage, HowManyItems);

objecto[0].name := 'coal'; // object name: "5k airs runes " or "50 str pots" works
objecto[0].typo1 := 'col'; // typo - ea: objet name
objecto[0].typo2 := 'caol'; // second typo
objecto[0].buyprice := '150'; // price you want to buy it for ||you can use values like
objecto[0].sellprice := '200'; // price you want to sell it for || 1k, 3.5k, a thoushand gp
objecto[0].buying := True; // if your (Buying - True) if your (Selling - False)


end;

////////////////////////////////////////////////////////////////////////////////////////////////////
// This area is //
// ( ) //
// RRRRRRRR EEEEEEEE SSSSSSSS TTTTTTTTTTTT RRRRRRRR II CCCCCC TTTTTTTTT EEEEEEEE DDDD //
// RR RR EE SS TT RR RR II CCC TT EE DD DD //
// RR RR EEEEE SSSSSSSS TT RR RR II CC TT EEEEE DD DD //
// RR RR EE SS TT RR RR II CCC TT EE DD DD //
// RR RR EEEEEEEE SSSSSSSS TT RR RR II CCCCCC TT EEEEEEEE DDDD //
// //
// //
// For your Own Macroing //
// Stop HERE if You Don't Know How to Program //
// //
////////////////////////////////////////////////////////////////////////////////////////////////////









// ARE YOU SURE YOU READ THE SIGN UP THERE?

function AcceptTrade: Boolean; // by masquerader, edited by Rasta Magician(me)
//only works with last line, turn public chat off
var
timeout: Integer;
fx, fy: Integer;
begin
if FindColorTolerance(Fx, Fy, 8388736, 21, 444, 138, 457, 5) then
begin
Mouse(Fx + 2, Fy + 12, 2, 7, True);
MarkTime(timeout);
repeat
Wait(500 + Random(100))
if (TimeFromMark(timeout) > 10000) then
Exit;
until (TradeScreen);
Result := True;
end;
end;



procedure rBuySell; // buying or selling?
var // this is where we choose
buytypo: string; // if we either spell
x: integer; // buying right or if
begin // we make a typo
x:= Random(10);
if (objecto[h].buying) then
begin
case x of
0: buytypo := 'bying';
1: buytypo := 'buyin';
2: buytypo := 'buyin';
3: buytypo := 'bying';
4: buytypo := 'buying';
5: buytypo := 'buying';
6: buytypo := 'buying';
7: buytypo := 'buying';
8: buytypo := 'buying';
9: buytypo := 'buying';
end;
end else
case x of
0: buytypo := 'sellin';
1: buytypo := 'seling';
2: buytypo := 'seling';
3: buytypo := 'sellin';
4: buytypo := 'selling';
5: buytypo := 'selling';
6: buytypo := 'selling';
7: buytypo := 'selling';
8: buytypo := 'selling';
9: buytypo := 'selling';
end;

theMessage[h].buytxt := buytypo;
if x < 4 then
mistakes := mistakes + 1;
end;

procedure rEffects; // Yay chat effects!
var // If you chose to use them,
a, b: integer; // this is where we'll randomly chose one of them
color, effect: string; // normal text might also come up
begin
if useEffect = True then
begin
a := random(12)+1;
case a of
1:color := 'flash1:';
2:color := 'flash2:';
3:color := 'flash3:';
4:color := 'glow1:';
5:color := 'glow3:';
6:color := 'green:';
7:color := 'cyan:';
8:color := 'white:';
end;
if a <= 5 then
begin
b := Random (3)+1;
if b = 1 then
effect := 'wave2:';
end else
if a > 5 then
begin
b := Random(5)+1;
case b of
1:effect := 'shake:'
2:effect := 'wave:'
3:effect := 'wave2:'
end;
end;
end;
theMessage[h].effect := color+effect;
end;

procedure rName; // shall we spell the name right
var // or shall we make a typo?
y:integer;
begin
y := random(10);
case y of
0: theMessage[h].item := objecto[h].typo2;
1: theMessage[h].item := objecto[h].typo1;
2: theMessage[h].item := objecto[h].typo2;
3: theMessage[h].item := objecto[h].typo1;
4: theMessage[h].item := objecto[h].name;
5: theMessage[h].item := objecto[h].name;
6: theMessage[h].item := objecto[h].name;
7: theMessage[h].item := objecto[h].name;
8: theMessage[h].item := objecto[h].name;
9: theMessage[h].item := objecto[h].name;
end;
if y < 3 then
mistakes := mistakes + 1;
end;

procedure rPrice; // randomizes to see if we'll say the price
var // 55% chances we will
z:integer;
begin
z:= random(100)+1;
if z > 45 then
begin
pricesaid := pricesaid + 1;
if objecto[h].buying then
theMessage[h].price :=', '+objecto[h].buyprice+' ea'
else
theMessage[h].price :=', '+objecto[h].sellprice+' ea';
end else
theMessage[h].price := '';
end;

procedure doFStuff;
begin
// pausing + restart + thanks
if isFKeyDown(5) then
begin
repeat
wait(5000+Random(1000));
if isFKeyDown(7) then
begin
j := Random(5);
case j of
0:TypeSend('Thanks');
1:TypeSend('Thank you');
2:TypeSend('thanks vm');
3:TypeSend('thanks man :)');
4:TypeSend('cheers');
5:TypeSend('thx');
end;
wait (1000+Random(500));
thankTimes := thankTimes + 1
break;
end;
if isFKeyDown(8) then
begin
if AcceptTrade then
writeln('tradescreen should pop up')
else
writeln('couldnt open trade');
end;
until(isFKeyDown(6))
pausedTimes := pausedTimes + 1;
end;
end;


//main loop
begin
SetupSRL;
ClearDebug;
objSetup;
ActivateClient;
SetBar('Brightness', 4);
wait(500+Random(700));
Mouse(362,492, 3, 3, True); //set trade chat to view
repeat
for h:= 0 to howManyItems-1 do
begin
rBuySell;
rName;
rPrice;
rEffects;
doFStuff;
TypeSend(theMessage[h].effect+theMessage[h].buytxt+' '+theMessage[h].item+ theMessage[h].price);
ClearDebug;
timesTalked:= timesTalked +1;
writeln('talked '+IntToStr(timesTalked)+' times, made '+IntToStr(mistakes)+' mistakes and said price '+IntToStr(pricesaid)+' times.');
writeln('Paused '+IntToStr(pausedTimes)+' times, and thanked '+IntToStr(thankTimes)+' times.');
wait(1000+Random(1000));
end;
until(timesTalked >= timesToTalk)
end.

And n3ss3s from what I've seen from DDTM's they didn't sound that complicated.. but I've never tried them, so my opinion of them is like a chair with only two feet. My opinion isn't really reliable.

RMagician

Macrosoft

2007-12-04 16:33:23

dont all chairs have 2 feet? (lol)

lol, can somebody let this guy in already? 14 yes, 0 no

[-jesus-]

2007-12-04 22:10:15

look good! Yes from me :)

Dumpin

2007-12-05 01:56:46

Yepz0r :)

Sir R. M8gic1an

2007-12-05 10:12:36

thank you everyone for your votes, i'm glad to see no one's wanted to turn me down so far :)

~Rasta Magician

edit: 24 hours and no no's :)

the scar noob

2007-12-05 14:19:14

I don't know buddyu, very personaly I don't think this is enough to get in:(
You don't use DTMs or MapWalk or Symbol Finiding, I know it's not nteeded with this script, that's why I think it's not enough to get in.
Were are all the poeple who always say at other applications that their script has to include mapwalking/dtm/symbol finding and clicking/etc…?

Btw, instead of making it only for coal, why don't you make it so you can use it for multiple things, then you have to use dtms;)

Don't get me wrong, the script aprox. does what it has to do, nice, but not enough to get in in my opinion, I hope everyone can accept my own opinion?

-Tsn.

n3ss3s

2007-12-05 14:25:03

Exactly Rasta, and glad you feel they are easy, they aren't complicated - types are even easier :)

the scar noob

2007-12-05 14:30:33

From: n3ss3s
Exactly Rasta, and glad you feel they are easy, they aren't complicated - types are even easier :)


I dunno how to say it in english, so I say it in dutch:) *dikke nek*:p

-Tsn.:p

Sir R. M8gic1an

2007-12-05 15:33:52

From: the scar noob
I don't know buddyu, very personaly I don't think this is enough to get in:(
You don't use DTMs or MapWalk or Symbol Finiding, I know it's not nteeded with this script, that's why I think it's not enough to get in.
Were are all the poeple who always say at other applications that their script has to include mapwalking/dtm/symbol finding and clicking/etc…?

Btw, instead of making it only for coal, why don't you make it so you can use it for multiple things, then you have to use dtms;)

Don't get me wrong, the script aprox. does what it has to do, nice, but not enough to get in in my opinion, I hope everyone can accept my own opinion?

-Tsn.


well i accept your opinion, i was surprised b the number of people who said yes :) i didn't get to use the dtms because as i said i didn't finish the script, but if you look at the beginning i do have the dtm's over there, and in the mainloop under comments i do mention them ;)

~Rasta Magician

Sir R. M8gic1an

2007-12-06 14:19:26

24h without a post or a vote…

~RMagician:)

WT-Fakawi

2007-12-06 15:23:30

Innah!