SRL Archive - Archive

trifonius - SRL Member Application Form


Trifonius

2008-01-22 19:03:00

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

What is the meaning to life?


Where you Referred to SRL? If yes, by whom?
no


Programming Knowledge
Java

Other Communitys
www.gghacks.com (moderator)

How Long have You Played Runescape
2 years

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

Hello,

I am Trifonius, a very motivated scripter. My ASL: 18, Male, Belgium(dutch). I'm on the internet alot, except when i have to go the university. On Forums i act very calm, if I feel the urge to start flaming i just close the topic/play a game. I always try to help people asking questions, but i constantly ask myself: 'will my reply be useful?', so 1/2 I don't post, that's why my postcount won't reach crazy hights.

I started learning scar and SRL about one month ago, creating little autotalkers, some autowalkers(using both DTM's(example: for finding the 5 yellow bank dots) and radialwalk(i wrote my own 'waterwalk', didn't know SRL had one ^^)), and i'm almost done with my awesome 'QuizMaster'-Script, which asks questions and then auto trades a prize to the winner.
I've also Updated all the scripts i use to rev10 myself, even posted an updated version of MasterKiller's VarrockWest Iron miner, but MK removed it(I respect his choice).

I've learned java on school this year, so I know (more than) the basics of java. I've programmed some cool stuff for java ( http://www.trifonius.gghacks.com/java/snake/ and http://www.trifonius.gghacks.com/java/driedee.html).

About the script i apply with:
This is the second autocooker i made, the first one was in lumbridge, but because it was my first 'real' script, it contained some nooby functions, so I decided to remake it. Then I decided to change the location to Al-Kharid, because the range is closer to the bank.
At first i made the script for SCSS, but one out of 10 banks the script would crash(because the kebab and the range symbol move over eachother). In ScarScape the Symbols have a fixed position, which solved my problem.
The script is a little slow, but i did this as a failsafe. The main reason of the script is not to run very fast, but to run long and do many loads.

Okay, that's about it…
If you have any questions, you're more than welcome to pm me!

Thank you for reading!
-Trifonius

EDIT: If you vote no, please post an explaination, so i know how to improve.

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

{______________________________________________________________________________
|____The Cookalizationor by Trifonius - Readme_________________________________|
| |
| Instructions: |
| -Use Scarscape, with low detail and highest brightness! |
| -Put your players in the Al-Kharid bank |
| -Make sure your players have a) empty bags |
| b) enough place in bank to empty the bags |
| -Use a low mousespeed (I use 7-13) |
| => configure this in the SRL.scar file |
| -Configure the script here: line 47 - 63 and line 23 - 33 |
| -Post lots of feedback, proggies and suggestions on the SRL forums! |
| -Love me long time |
| |
| Thx for using my script! |
| -Trifonius |
|____________________________________________________________________________|
|______________________________________________________________________________|
}

program Cookalizationor;
{.include SRL/SRL.Scar}
{.include SRL/SRL/skill/Cooking.Scar}
var
Loads, PlayersNotReady : Integer;


//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!IMPORTANT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



const YourSRLId=''; {<========================PUT YOUR SRL ID HERE!!!!!!}
const YourSRLPassword=''; {<=========PUT YOUR SRL PASSWORD HERE!!!!!!}



//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!IMPORTANT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



{______________________________________________________________________________
|_____Declare Players__________________________________________________________|
}

procedure DeclarePlayers;
begin
HowManyPlayers := 2;
numberOfPlayers(howManyPlayers);
CurrentPlayer := 0;

Players[0].Name := ''; //username
Players[0].Pass := ''; //password
Players[0].Nick := ''; //3-4 letters from your username(helps anti-randoms)
Players[0].Integers[0] := 1; //Switch player after # Loads
Players[0].Integers[1] := 2; //How many bankslots contain food?
Players[0].Active := True;

Players[1].Name := ''; //username
Players[1].Pass := ''; //password
Players[1].Nick := ''; //3-4 letters from your username(helps anti-randoms)
Players[1].Integers[0] := 1; //Switch player after # Loads
Players[1].Integers[1] := 1; //How many bankslots contain food?
Players[1].Active := True;
end;

{______________________________________________________________________________
|_____Find Randoms_____________________________________________________________|
}

procedure FindRandoms;
begin
FindNormalRandoms;
if InBlack then begin Logout; Exit; end;
Wait(5);
if NoGameTab then begin Logout; Exit; end;
Wait(5);
end;

{______________________________________________________________________________
|_____SetUp Player_____________________________________________________________|
}

procedure SetUpPlayer;
begin
if not LoggedIn then Exit;
GameTab(2);
Wait(300+Random(300));
GameTab(4);
SetRun(True);
SetAngle(True);
MakeCompass('n');
Wait(1000+Random(500));
end;

{______________________________________________________________________________
|_____Open Door And Walk To Bank/Cook__________________________________________|
}

procedure OpenDoorAndWalkTo(TheSymbol : String);
var
x, y, a, I : Integer;
Label FindSymbolLoop;
begin
if not LoggedIn then Exit;
Wait2( 5000+Random(1000), True);
y:=50;
x:=250;
a:=5;
SetAngle(False);
MakeCompass('w');
Flag;
Wait(200+Random(200));
I:=0;
repeat
x:=x+5;
y:=y+a;
MMouse( x, y, 0, 0);
if (y = 200) and (x = 400) then begin a:=-5; x:=250; end;
if (y = 50) and (x = 400) then begin a:= 5; x:=149; end;
if (y = 200) and (x = 299) then begin a:=-5; x:=149; end;
if (y = 50) and (x = 299) then begin a:= 5; x:=250; end;
if (I = 3) then begin Logout; exit; end;
Inc(I);
until(IsUpText('oor'));
if IsUpText('pen') then
begin
Mouse( x, y, 0, 0, False);
ChooseOption('pen');
end;
FindRandoms;
Wait( 2000+Random(1000));
if (TheSymbol='bank') then Mouse( MMCX-10, MMCY-2, 1, 1, True);
FindSymbolLoop:
if FindSymbol( x, y, TheSymbol) then Mouse( x+5, y+5, 0, 0, True)
else begin
Flag;
if (TheSymbol='cook') then MakeCompass('w');
if not (TheSymbol='bank') then Goto FindSymbolLoop;
FindSymbol( x, y, 'cook');
Mouse( x-51, y-6, 1, 1, True);
FindRandoms;
Wait( 2000+Random(1000));
end;
MakeCompass('n');
SetAngle(True);
Flag;
end;

{______________________________________________________________________________
|_____Walk To Range____________________________________________________________|
}

procedure WalkToRange;
var
x, y, I : Integer;
Label FindSymbolLoop;
begin
if not LoggedIn then Exit;
I:=0;
FindSymbolLoop:
if I=25 then begin Logout; Exit; end;
Inc(I);
if FindSymbol( x, y, 'cook') then Mouse( x+30, y, 1, 1, True)
else begin
Writeln('Could not find the Symbol(cook)');
Wait2( 2000+Random(1000), True);
Goto FindSymbolLoop;
end;
FindRandoms;
OpenDoorAndWalkTo('cook');
end;

{______________________________________________________________________________
|_____Walk To Bank_____________________________________________________________|
}

procedure WalkToBank;
var
x, y, I :Integer;
Label FindSymbolLoop;
begin
if not LoggedIn then Exit;
I:=0;
FindSymbolLoop:
If I=25 then begin Logout; Exit; end;
Inc(I);
if FindSymbol( x, y, 'cook') then Mouse( x+30, y, 1, 1, True)
else begin
Writeln('Could not find the Symbol(cook)');
Mouse( MMCX+3, MMCY, 1, 1, True);
Wait2( 2000+Random(1000), True);
Flag;
Goto FindSymbolLoop;
end;
FindRandoms;
OpenDoorAndWalkTo('bank');
end;

{______________________________________________________________________________
|_____Bank_____________________________________________________________________|
}

procedure Bank;
var
It : Integer;
begin
if not LoggedIn then Exit;
FindRandoms;
OpenBankQuiet('akb');
FixBank;
if not InvEmpty then DepositAll;
if not InvEmpty then
begin
Writeln('Bank too full to Empty Inventory, Script may be unstable now');
end;
if not BankScreen then OpenBankQuiet('akb');
if not BankScreen then begin Logout; Exit; end;
repeat
It:=Players[CurrentPlayer].Integers[1];
if (It=0) then break;
Withdraw( (It Mod 8), Trunc((It/8) + 1), 0);
Wait2( 1500+Random(500), True);
if (Amount( 'bank', It) = 0) then Dec(Players[CurrentPlayer].Integers[1]);
Wait2( 1500+Random(500), True);
until(InvFull);
CloseBank;
end;

{______________________________________________________________________________
|_____Cook_____________________________________________________________________|
}

procedure Cook;
var
x, y, I : Integer;
InvFoodStat : array of String;
TimeMarkerFood : Integer;
begin
if not LoggedIn then Exit;
InvFoodStat:=['0','raw','raw','raw','raw','raw','raw','raw','raw','raw','raw',
'raw','raw','raw','raw','raw','raw','raw','raw','raw','raw',
'raw','raw','raw','raw','raw','raw','raw','raw']
for I:=1 to InvCount do
begin
InvFoodStat[I]:='Isnt Food';
Wait(100+Random(100));
MMouseItem(I);
Wait(100+Random(100));
if IsUpText('Raw') then
begin
MarkTime(TimeMarkerFood);
repeat
FindRandoms;
Wait( 3000+Random(1000));
until((TimeMarkerFood > 30000) or (IsUpText('Eat')) or (IsUpText('Burnt')));
if IsUpText('Raw') then
begin
MouseItem(I, True);
SetAngle(True);
if not IsUpText('ange') then FindRange( x, y, MSX1, MSY1, MSX2, MSY2);
if not IsUpText('ange') then FindRange( x, y, MSX1, MSY1, MSX2, MSY2);
GetMousePos( x, y);
Mouse( x, y, 1, 1, False);
Wait(300+Random(200));
ChooseOption('ange');
Wait( 2000+Random(200));
FindRandoms;
Mouse( 253, 407, 10, 10, False);
Wait(2000+Random(500));
ChooseOption('All');
end;
end;
MMouseItem(I);
Wait(500+Random(500));
if IsUpText('Eat') then InvFoodStat[I]:='cooked';
if IsUpText('Burnt') then InvFoodStat[I]:='burnt';
Writeln(IntToStr(I) + ' : ' +InvFoodStat[I]);
Wait(100+Random(100));
end;
for I:=1 to InvCount do
begin
if (InvFoodStat[I]='burnt') then
begin
DropItem(I);
Inc(Players[CurrentPlayer].Integers[2]);
ReportVars[0]:= ReportVars[0]+1;
SendSRLReport;
end;
if (InvFoodStat[I]='cooked') then
begin
Inc(Players[CurrentPlayer].Integers[3]);
ReportVars[1]:= ReportVars[1]+1;
SendSRLReport;
end;
end;
end;

{______________________________________________________________________________
|_____PrintReport______________________________________________________________|
}

procedure PrintReport;
var
I, TotalLoads, TotalBurnt, TotalCooked : Integer;
begin
ClearDeBug;
for I:=0 to (HowManyPlayers-1) do
begin
TotalLoads:=Players[I].Integers[4] + TotalLoads;
TotalBurnt:=Players[I].Integers[2] + TotalBurnt;
TotalCooked:=Players[I].Integers[3] + TotalCooked;
end;
Writeln(' ________________________________________________________________ ');
Writeln('|____Trifonius´ Report___________________________________________|');
Writeln(' | Cooked for: ' + TimeRunning);
Writeln(' | Loads: ' + IntToStr(TotalLoads));
Writeln(' | Burnt: ' + IntToStr(TotalBurnt));
Writeln(' | Cooked: ' + IntToStr(TotalCooked));
for I:=0 to (HowManyPlayers-1) do
begin
Writeln(' | |'+Players[I].Nick
+ ' | Loads:' + IntToStr(Players[I].Integers[4])
+ ' | Burnt:' + IntToStr(Players[I].Integers[2])
+ ' | Cooked:' + IntToStr(Players[I].Integers[3]));
end;
Writeln(' |_______________________________________________________________ ');
Writeln('|_____________________Thanks for using my script! - Trifonius____|');
end;

{______________________________________________________________________________
|_____Main Loop________________________________________________________________|
}

begin
SetupSRL;
PrintReport;
SRLRandomsReport;
Disguise('The Cookalizationor');
ScriptId:= '594';
SRLId := YourSRLId;
SRLPassword:= YourSRLPassword;
DeclarePlayers;
ActivateClient;
PlayersNotReady:=HowManyPlayers;
LoginPlayer;
repeat
if (Players[CurrentPlayer].Integers[1]=0) then
begin
Dec(PlayersNotReady);
Continue;
NextPlayer(True);
end;
Loads:=Players[CurrentPlayer].Integers[0];
repeat
if(Loads=Players[CurrentPlayer].Integers[0]) then
begin
SetUpPlayer;
Bank;
end;
WalkToRange;
Cook;
WalkToBank;
bank;
Dec(Loads);
Inc(Players[CurrentPlayer].Integers[4]);
PrintReport;
SRLRandomsReport;
until(Loads=0);
NextPlayer(True);
until(PlayersNotReady=0);
Logout;
end.

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

gerauchert

2008-01-22 19:20:27

Yes.

Good standards, and you seem to know what you are doing with scar and srl.

good luck

Naike

2008-01-23 00:59:58

Yes from me.
like gerauchert said
" you seem to know what you are doing with scar and srl. "

Negaal

2008-01-23 02:49:42

Yes, standards needs bit working but else looks all okay.
Edit:Maybe get your activity higher:) Don't become inactive when you get it…

WT-Fakawi

2008-01-23 03:06:12

Yes. (almost typed "In." :) )

Psychor

2008-01-23 05:22:37

Not voting on this one.

I tryed it out actually, still had some raw salmon and trout in my bank that needed cooking.

First try: I did made a mistake though in the setup, you asked "How many bankslots contain food?" so i filled out 2, my bad was that they wheren't the first 2 bankslots, The script ended up withdrawing rune essence, you might wanne put in a failsafe for that.
Second try: Partly mistake of SRL i think, but it selected the one bankbooth that is empty and kept selecting that one untill it logged out, Maybe make a failsafe that checks your in the bank, move a few tiles and try again once?

- no bmp or dtm's, guess it would get huge to include all those raw food stuff.
- only symbol walking, guess that's stable enough for SS
- why setting mousespeed in SRL.scar, why not in the script, or doesn't that work in SS?

Santa_Clause

2008-01-23 06:22:49

This is all symbol finding and blind clicking in bank and inventory. Sorry. No.

n3ss3s

2008-01-23 06:29:59

Nop, sorry.

Sir R. M8gic1an

2008-01-23 07:38:43

Yes. Not totally sure why but yes. i like your introduction paragraph, shows you put some though into it. labels and goto's, we don't see those very often. i do not like your walking but i'm not much of a walker myself. I do not see a great use of SRL, but I do see a great use of pascal. Both are important, but i think the bigger things come from pascal.

Yes.
~RM

Wizzup?

2008-01-23 10:50:01

Yes. Nice.

MasterKill

2008-01-23 11:47:47

yes.

Naum

2008-01-23 11:49:52

Yes. Nice.

Yes. Very Nice.

Your second link was wrong http://www.trifonius.gghacks.com/java/driedee.html

Trifonius

2008-01-23 11:56:36

From: NaumanAkhlaq
Yes. Very Nice.

Your second link was wrong http://www.trifonius.gghacks.com/java/driedee.html


The link does work here… try another browser and click and drag your mouse a couple of times in a 200by200 px area at the upper-left corner of the browser

Thanks for all the positive votes!

ZephyrsFury

2008-01-23 19:25:55

Looks nice… I'll vote yes. :)

EDIT: Just a thing I noticed:


if IsUpText('Raw') then
begin
MarkTime(TimeMarkerFood);
repeat
FindRandoms;
Wait( 3000+Random(1000));
until((TimeMarkerFood > 30000) or (IsUpText('Eat')) or (IsUpText('Burnt')));

It doesn't cook the item? It only waits for 30 seconds?

Trifonius

2008-01-24 03:09:51

From: ZephyrsFury
Looks nice… I'll vote yes. :)

EDIT: Just a thing I noticed:


if IsUpText('Raw') then
begin
MarkTime(TimeMarkerFood);
repeat
FindRandoms;
Wait( 3000+Random(1000));
until((TimeMarkerFood > 30000) or (IsUpText('Eat')) or (IsUpText('Burnt')));

It doesn't cook the item? It only waits for 30 seconds?


Thx for the vote!
I'll explain the cooking cycle:
it's all based on hoovering every item in the inventory once. Then it checks the uptext, there are 3 possibility's : the uptext contains 'raw', 'eat', 'burnt' or non of the previous.

-if the uptext is 'raw' : It waits and checks if the status changes (which would mean the item was beeing cooked at the moment)
-if the uptext doesn't change and stays 'raw' for 30 seconds, it means our character isn't cooking anymore. this can be for various reasons : levelup, because he just arrived at the range, …. The script now selects the food and starts the cooking (cook all on range)
-if the uptext is 'eat', it changes the status of the inventory slot to 'cooked'
-if the uptext is 'burnt' it changes the status of the inventory slot to 'burnt'

(if the uptext of the food didn't contain burnt, eat or raw, that inventory slot gets the status 'isnt food')

at the end of the cooking loop it just moves the mouse to the next item.

I made this system because i wanted to make a script that works with every raw food item in the game, and i didn't want to make tons of dtm's etc….
It only hoovers every item in the inventory once, and it remembers which items were burnt, so at the end of the cooking cycle it throws out the burnt items without wrong clicks/movements, as a human would do.

I hope you understood this!

BobboHobbo

2008-01-24 03:45:24

Yep from BennEh :o

ZephyrsFury

2008-01-24 20:45:02

From: trifonius
Thx for the vote!
I'll explain the cooking cycle:
it's all based on hoovering every item in the inventory once. Then it checks the uptext, there are 3 possibility's : the uptext contains 'raw', 'eat', 'burnt' or non of the previous.

-if the uptext is 'raw' : It waits and checks if the status changes (which would mean the item was beeing cooked at the moment)
-if the uptext doesn't change and stays 'raw' for 30 seconds, it means our character isn't cooking anymore. this can be for various reasons : levelup, because he just arrived at the range, …. The script now selects the food and starts the cooking (cook all on range)
-if the uptext is 'eat', it changes the status of the inventory slot to 'cooked'
-if the uptext is 'burnt' it changes the status of the inventory slot to 'burnt'

(if the uptext of the food didn't contain burnt, eat or raw, that inventory slot gets the status 'isnt food')

at the end of the cooking loop it just moves the mouse to the next item.

I made this system because i wanted to make a script that works with every raw food item in the game, and i didn't want to make tons of dtm's etc….
It only hoovers every item in the inventory once, and it remembers which items were burnt, so at the end of the cooking cycle it throws out the burnt items without wrong clicks/movements, as a human would do.

I hope you understood this!


Oh I see, But isn't 30 seconds a bit to long? How long does it take to cook some food? 2 or 3 seconds at the most (unless you lag a lot). Shouldn't you change the 30 seconds to a 5 or something?

Trifonius

2008-01-24 21:24:38

From: ZephyrsFury
Oh I see, But isn't 30 seconds a bit to long? How long does it take to cook some food? 2 or 3 seconds at the most (unless you lag a lot). Shouldn't you change the 30 seconds to a 5 or something?


I'll take a look at it…

By the way, this is my latest project: http://www.villavu.com/forum/showthread.php?t=24753
If you're not a 100% if you like my work, this script could convince you.

R0b0t1

2008-01-24 21:30:59

I had too look it up on the web but trifonius is a corruption of Triphonius, a Greek/Latin God/Damian.


Just because I had to look more than 30 seconds for the definition, Yes.

Raskolnikov

2008-01-24 21:53:25

R0b0t = very random. Please don't post random things lol. Although, the we are all your bases thing was funny.
[/offtopic]

Very good job, and, I don't even know what a label is! I am holding my vote to see how others vote.

A few things:

if not InvEmpty then
begin
Writeln('Bank too full to Empty Inventory, Script may be unstable now');
end;

can be

if not InvEmpty then Writeln('Bank too full to Empty Inventory, Script may be unstable now');

Other than that you know what you are doing :D

Cut em2 it

WT-Fakawi

2008-01-25 03:19:04

Well, here it is….In!