SRL Archive - Archive

Laimonas171 - SRL Member Application *


Laimonas171

2009-07-30 08:19:38

How Long have You Played Runescape?
3 Year(s)


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
A little bit PHP, VB6, HTML, CSS and scar basics (learning now)


Are you a member of any other communities?
no


Tell us about yourself…
From: Laimonas171
I am Student of Business Informatics, i like Graphics Photoshop for example, also i like html, css, at exam i got 10/10 *giggle*, programing, but just in way if i need someone can help me, this community is for it i think :)



Please show us one (or multiple) of your scripts.
Code:
[LEFT]

program superDuperExtraMinerSellerAuoterTool;
{.include SRL/SRL.scar}
{.Include SRL/SRL/Skill/Mining.Scar}
//-----------------------------------------------
// setup iron color on line 86 if do not mines.
//
//
//-----------------------------------------------
Const
sellOre = False; //True - sell ores and gems (works just with iron at rimington)
//False - will drop ores/gams at the mining spot.




Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
CurrentPlayer := 0;
NumberOfPlayers(HowManyPlayers);
Players[0].Name := 'username'; //Username
Players[0].Pass := 'password'; //Password
Players[0].Nick := 'rnam'; //sern
Players[0].Active := true; //leave it
{
Players[1].Name := 'xxxx'; //Username
Players[1].Pass := 'xxxx'; //Password
Players[1].Nick := 'xxxx'; //sern
Players[1].Active := false; //leave it }
end;
procedure FindRandoms;
begin
FindNormalRandoms;
if FindFight then
RunAway('n', True, 1, 3000);
end;
procedure AntiBan;
begin
case random(53) of
0,1: HoverSkill('Mining', False);
2,3: GameTab(1 + Random(7));
4,5,6: RandomMovement;
7: HoverSkill('Mining', False);
8: BoredHuman;
9: PickUpMouse;
10,11,12,13: SetRun(True);
14:
end;
end;
procedure miningTime;
var
T: Integer;
begin
if not (LoggedIn) then NextPlayer(False);
MarkTime(T);
begin
While (TimeFromMark(t)) < 4000 do
begin
FindRandoms;
AntiBan;
if FindBlackChatMessage('no ore') then
begin
exit;
end else
if FindBlackChatMessage('anage') then
begin
Exit; //Wait(200+random(700));
end;
end;
end;
end;

procedure DropAllExcept(W : Array of Integer);
var i: Integer;
begin
For I:=1 To 28 Do
if not(InIntArray(w, i)) then
DropItem(i);
end;
procedure DropingOre;
begin
Disguise('Droping ores');
DropAllExcept([1]);
end;

procedure mineOre;
var X, Y: Integer;
begin
if FindColorSpiral(X, Y, 2437713, MSX1, MSY1, MSX2, MSY2) then
begin
Disguise('mining ore');
mmouse( x, y, 5, 5);
wait(200+random(360));
if isuptext('ine') then
begin
GetMousePos(X, Y);
Wait(70+random(150));
Mouse(X, Y, 5, 5, True);
Wait(500+random(1350));
end;
end;
end;
Procedure checkpickaxe;
var pickaxe, x, y :integer;
begin
//start load
gametab(5)
pickaxe := DTMFromString('78DA63B463626078C68002F4E459197E01694' +
'620FE0F048C7E4035F718D000231209A45D816AAE115063025473' +
'9B801A4BA09A4F04D4D800D5DCC0AF0600194B0C1F');
if not FindDTM(pickaxe, x, y, MIX1, MIY1, MIX2, MIY2) then //finds DTM
begin
gameTab(6)
if not FindDTM(pickaxe, x, y, MIX1, MIY1, MIX2, MIY2) then //finds DTM
begin
WriteLn('you do not have an pickaxe');
terminatescript;
end;
gameTab(5)
end;
end;



Procedure DTMSdrop;
var ore, clay, gems, x, y :integer;
begin
//start load
ore := DTMFromString('78DA639CC9C4C0F0940105F81BA830FC02D28' +
'C40FC1F08189702D5DC6340038C48249006997383809A3E22CC69' +
'07AA794D40CD22C26A005A5F0E94');
clay := DTMFromString('78DA639CC6C4C050CEC8800CA6D68530FC02D' +
'220D1FF40C00852938FAA06220B2381F442A09A12026AFA806A4A' +
'09A801D955835F0D00F0ED0BB7');
gems := DTMFromString('78DA6374666260D8C7C8800C664E99C2F00B4' +
'88344FF0301A32750CD56543510591809A42D89547390801A6FA0' +
'9A63F8D5000003DA0BCD');
if FindDTM(ore, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 5, 5, false)
Wait(100+random(250));
ChooseOption('rop');
WriteLn('Droping Ore.');
FreeDTM(ore);
end;
if FindDTM(clay, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 5, 5, false)
Wait(100+random(250));
ChooseOption('rop');
WriteLn('Droping clay.');
FreeDTM(clay);
end;
if FindDTM(gems, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 5, 5, false)
Wait(100+random(250));
ChooseOption('rop');
WriteLn('Droping gems.');
FreeDTM(gems);
end;
end;

Procedure DTMSSell;
var ore, clay, gems, x, y :integer;
begin
//start load
ore := DTMFromString('78DA639CC9C4C0F0940105F81BA830FC02D28' +
'C40FC1F08189702D5DC6340038C48249006997383809A3E22CC69' +
'07AA794D40CD22C26A005A5F0E94');
clay := DTMFromString('78DA639CC6C4C050CEC8800CA6D68530FC02D' +
'220D1FF40C00852938FAA06220B2381F442A09A12026AFA806A4A' +
'09A801D955835F0D00F0ED0BB7');
gems := DTMFromString('78DA6374666260D8C7C8800C664E99C2F00B4' +
'88344FF0301A32750CD56543510591809A42D89547390801A6FA0' +
'9A63F8D5000003DA0BCD');

if FindDTM(ore, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 5, 5, false)
Wait(100+random(250));
ChooseOption('50');
WriteLn('selling Ore.');
FreeDTM(ore);
Wait(1000+random(250));
end;
if FindDTM(clay, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 5, 5, false)
Wait(100+random(250));
ChooseOption('50');
WriteLn('selling clay.');
FreeDTM(clay);
Wait(1000+random(250));
end;
if FindDTM(gems, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 5, 5, false)
Wait(100+random(250));
ChooseOption('50');
WriteLn('selling gems.');
FreeDTM(gems);
Wait(1000+random(250));
end;
end;


Procedure tradeShopAssistent;
var x, y: integer;
begin
if not FindObj(x, y, 'hop', 5206412, 5) then exit;
if FindObj(x, y, 'hop', 5206412, 5) then
begin
Mouse(x, y, 3, 3, False);
if ChooseOption('rade') then
begin
Disguise('Trying to trade shop worker');
//sell
end;
end;
end;

Procedure goEndSold;
var walkDtm,x,y: integer;
begin
MakeCompass('N');
Disguise('Going to shop');
makecompass('s');
if RadialRoadWalk(FindRoadColor, 80, 360, 65, 1, 1) then
begin
Writeln(' Main walking 2. - Complete.');
flag;
// Result := True;
end else
begin
WalkDTM := DTMFromString('78DA632C6562602861400149D131609A11CA6' +
'76C04AA494555936CC283AA2607A8A68E08736AD1CC094033270D' +
'A8261B554DBCBF048A1A0076EC08F7');
if FindDTM(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2) then
begin
Mouse(X, Y, 8, 8, True);
WriteLn('Walk backup 2. - Complete.');
FFlag(0);
end else
begin
Writeln(' Walk Backup 2. - Failed. Logging Out.');
FreeDTM(WalkDTM);
terminatescript;//Logout;
end;
end
end;

Procedure findRoadToShop;
var roadColour, c:integer;
begin
repeat
c := c + 1;
if (not(RadialWalk(RoadColour, 145, 250, 70, 1, 0))) then
begin
RoadColour := FindRoadColor;
c := c - 1;
end;
until(c >= 1);
end;
Procedure findRoadFromShop;
var roadColour,x ,y , c:integer;
begin
if FindSymbol(x, y, 'portal') then
begin
Mouse(X, Y, 5, 5, True);
FFlag(0)
repeat
c := c + 1;
if (not(RadialWalk(RoadColour, 45, 135, 70, 1, 0))) then
begin
RoadColour := FindRoadColor;
c := c - 1;
end;
until(c >= 1);
end;
end;
{Procedure findWater;
var x, y: integer;
Begin
if FindSymbol(x, y, 'water') then
begin
Mouse(X, Y, 5, 5, True);
WriteLn('FindWaterSymbol. - Complete.');
FFlag(0);
end else
if not FindSymbol(x, y, 'water') then
begin
if FindSymbol(x, y, 'store') then
begin
Mouse(X, Y, 5, 5, True);
WriteLn('FindStoreSymbol. - Complete.');
FFlag(0);
end else
if not FindSymbol(x, y, 'store') then
begin
WriteLn('You are lost.');
NextPlayer(False);
Exit;
end;
end;
end; }
Procedure findShop;
var x, y: integer;
Begin
if FindSymbol(x, y, 'store') then
begin
Mouse(X, Y, 5, 5, True);
WriteLn('FindStoreSymbol. - Complete.');
FFlag(0);
end else
if not FindSymbol(x, y, 'store') then
begin
if FindSymbol(x, y, 'water') then
begin
Mouse(X, Y, 5, 5, True);
FFlag(0);
if FindSymbol(x, y, 'store') then
begin
Mouse(X, Y, 5, 5, True);
WriteLn('FindStoreSymbol. - Complete.');
FFlag(0);
end;
end else
if not FindSymbol(x, y, 'water') then
begin
if FindSymbol(x, y, 'portal') then
begin
Mouse(X, Y, 5, 5, True);
FFlag(0);
if FindSymbol(x, y, 'store') then
begin
Mouse(X, Y, 5, 5, True);
WriteLn('FindStoreSymbol. - Complete.');
FFlag(0);
end;
end else
if not FindSymbol(x, y, 'portal') then
begin
WriteLn('You are lost.');
NextPlayer(False);
Exit;
end;
end;
end;
end;
Procedure tradeShopkeeper;
var x, y, c: integer;
begin
if FindObj(x, y, 'hop', 5206412, 5) then
begin
Mouse(x, y, 3, 3, False);
if ChooseOption('rade') then
begin
WriteLn('Trading Shopkeeper');
Wait(7000);
repeat
c := c + 1;
begin
DTMSSell;
end;
until(c >= 10);
end;
end;
end;
procedure goToSellAndGoBack;
begin
MakeCompass('N');
Disguise('Goes To Shop');
findRoadToShop;
FFlag(0);
findShop;
Wait(100+random(250));
findShop;
Disguise('You are in Shop');
tradeShopkeeper;
Disguise('Goes To Mine');
ClearDebug;
Wait(100+random(250));
findRoadFromShop;
FFlag(0);
mineOre;
end;
Procedure choosenProcedure;
begin
if(sellOre = False)then
begin
DropingOre;
end else
if(sellOre = True)then
begin
goToSellAndGoBack;
end else
begin
terminatescript;
Disguise('Check parameters');
end;
end;
Procedure MainLoop;
begin
repeat
checkpickaxe;
repeat
SetRun(True);
MineOre;
miningTime;
until InvFull;
if invfull then
begin
choosenProcedure;
end;
Until False
end;
Begin
Disguise('Laimonas171 PowerMiner');
SetupSRL;
DeclarePlayers;
LoginPlayer;
ClearDebug;
MainLoop;
end.


EDITED: fixed falesafes, and antiban
[/LEFT]

Wanted

2009-07-30 08:52:08

Standards are horrible, but you know SCAR well enough in my opinion to be a member. Work on those standards!

ian.

2009-07-30 09:45:41

From: IceFire908
Standards are horrible, but you know SCAR well enough in my opinion to be a member. Work on those standards!


I wouldn't say they're horrible. Just not very good. Most of it is small things like too many spaces and stuff like that. And capitilization. Seems pretty simple to me. Holding my vote for now.

Coh3n

2009-07-30 10:19:51

I'm going to vote no, sorry.

Why? The following:
  • I didn't see any failsafes throughout the script, which is huge if you actually want the script to run for more than 5 minutes. Failsafes are not hard to make, they just improve your script significantly.
  • I don't see any arrays, let alone TPAs. For example, your DTMs can easily be made into one function and be made into an array.
  • No multiplayer. Multiplayer is just a simple concept that should be incorporated into every script.
  • Your sell gems functions can all be made into one function, using variables.
  • Standards aren't bad, in my opinion, but can be improved.
  • Script is too short. If you shorten it as much as possible, it would be around 200 lines, which isn't enough space to really show us what you can do.

What I suggest:
  • Reading some more advanced tutorials on DDTMs, TPAs, etc.
  • Look that this thread, it will help you a lot. :)

I apologize if I seemed too tough on you, I had the exact opposite intention. I want you to improve and learn more advanced techniques. I think your script isn't bad, and can be improved on a lot. Keep it up. :)

Cheers! :)

cycrosism

2009-07-30 10:32:03

No. Doesn't compile.

ian.

2009-07-30 10:34:15

From: cycrosism
No. Doesn't compile.


He forgot a single end quote so you vote no? :/

cycrosism

2009-07-30 10:38:01

It didn't compile. That's not my fault he made a mistake, lots of people make mistakes but you should always check your script before uploading it (In this case applying with it). Fix up any errors that come up when you compile before releasing the script

ian.

2009-07-30 10:41:59

From: cycrosism
It didn't compile. That's not my fault he made a mistake, lots of people make mistakes but you should always check your script before uploading it (In this case applying with it). Fix up any errors that come up when you compile before releasing the script


Maybe he wrote some of it on the forums. Again, voting no because he missed one small end quote is pretty ridiculous if you ask me. But whatever. You can do whatever you want, I suppose.

cycrosism

2009-07-30 10:44:06

Oh, and it was to simple to (In my opinion), there were no fail safes. very bad

a lot of dtm procedures which are unneccesary

Naum

2009-07-30 10:45:29

Good Good,

1)
Mouse(x, y, 5, 5, True);
FFlag(0);

SRL has a handy feature of two-in-one its called
MouseFlag(x, y, 5, 5, 0


2) You should declare all your DTM's Bitmaps in one procedure. Load them and free them as you go along :).


3) No begin and end; clause needed here:

if invfull then
begin
DropingOre;
end;

to:

if invfull then
DropingOre;

This is because SCAR reads one line down from an 'If' statement, if there is only 1 action to perform then it's that exact line that SCAR will read.


4) Endless loop?
until false


Maybe you should add another constant of 'loads', since you seem to like them :).



5) Script could do with some failsafes, such as:
If Not Blah Then
If Not Blah Then
If Not Blah1 Then
Exit;


Great attempt :). I will vote yes mainly because of your attitude and activity around the forums, you will make a good member :)

Naike

2009-07-30 16:49:53

Yes.

One missing end, is not worth waiting another 30 days for.

Laimonas171

2009-07-30 17:13:36

added multiplayer and falesafe and i hope fixed standarts, becouse i dont know where they are really :)

[php]program superDuperExtraMinerSellerAuoterTool;
//{.include SRL\SRL\misc\SMART.SCAR}
{.include SRL/SRL.scar}
{.Include SRL/SRL/Skill/Mining.Scar}
//———————————————–
// I am not perfect but still trying! :)
//———————————————–
Const
youWillSellOre = True; //True - ores/gems sell to shop near mining spot
//False - will drop ores/gams at the mining spot.
OreColor = 2437714; //Change just in case if it do not mining at all.
//Drop slots can be checked in line 107
SmartWorld = 152; //World to load.
Members = False; //Members?
SignedClient = True;//Used signed client?
HighDetail = False;//Use high detail?


procedure DeclarePlayers;

begin
HowManyPlayers := 2;
CurrentPlayer := 0;
NumberOfPlayers(HowManyPlayers);
Players[0].Name := 'Cxxxx'; //Username
Players[0].Pass := 'xxxx'; //Password
Players[0].Nick := 'xxxx'; //sern
Players[0].Active := true; //leave it

Players[1].Name := 'xxxx'; //Username
Players[1].Pass := 'xxxx'; //Password
Players[1].Nick := 'xxxx'; //sern
Players[1].Active := true; //leave it


end;

Procedure roadClick;
begin
ColorToleranceSpeed(2);
RadialRoadWalk(FindRoadColor, 45, 90, 65, 2, 2);
ColorToleranceSpeed(1);
Mouse(MMCX - 20, MMCY + 60, 5, 5, True);
FFlag(0);
end;
procedure screenprint;
var
bmpScreen, x, y: Integer;
begin
ActivateClient;
wait(1800+Random(200))
Disguise('doing screenshot');
GetClientDimensions(x, y);
bmpScreen := BitmapFromString(x, y, '');
CopyClientToBitmap(bmpScreen, 0, 0, x, y);
SaveBitmap(bmpScreen, ScriptPath +'screenshot.bmp');
Disguise('screenshot done!');
end;
Procedure portalClick;
var x, y: integer;
begin
if not FindSymbol(x, y, 'portal') then
if not FindSymbol(x, y, 'store') then
begin
screenprint;
WriteLn('Symbol not find');
NextPlayer(False);
Exit;
end;
if(FindSymbol(x, y, 'portal'))then
begin
Disguise('Going near portal');
Mouse(x, y, 5, 5, True);
FFlag(0);
SetRun(True);
end;
end;

Procedure shopClick;
var x, y: integer;
begin
if not FindSymbol(x, y, 'portal') then
if not FindSymbol(x, y, 'store') then
begin
screenprint;
WriteLn('Symbol not find');
NextPlayer(False);
Exit;
end;
if(FindSymbol(x, y, 'store'))then
begin
Disguise('Going into shop');
Mouse(x, y, 5, 5, True);
FFlag(0);
end;
end;

Procedure miningSpotClick;
var x, y:integer;
begin
if (FindSymbol(x, y, 'mining spot'))then
begin
Disguise('Found mining spot');
Mouse(x, y, 5, 5, True);
FFlag(0);
end;
end;

procedure FindRandoms;
begin
FindNormalRandoms;
if FindFight then
RunAway('n', True, 1, 3000);
end;

procedure AntiBan;
begin
case random(53) of
0: HoverSkill('Mining', False);
1: HoverSkill('Mining', False);
2: GameTab(1 + Random(7));
3: GameTab(9 + Random(3));
4:
end;
end;
procedure miningTime;
var
T: Integer;
begin
if not (LoggedIn) then Exit;
MarkTime(T);
begin
While (TimeFromMark(t)) < 4000 do
begin
FindRandoms;
AntiBan;
Wait(200+random(700));
if FindBlackChatMessage('anage') then
Exit;
end;
end;
end;

procedure DropAllExcept(W : Array of Integer);
var i: Integer;
begin
For I:=1 To 28 Do
if not(InIntArray(w, i)) then
DropItem(i);
end;

procedure DropingOre;
begin
Disguise('Droping ores');
DropAllExcept([1,2,3,4,5]);
end;

procedure mineIron;
var X, Y: Integer;
begin
if not LoggedIn then exit;
if FindColorSpiral(X, Y, OreColor, MSX1, MSY1, MSX2, MSY2) then
begin
Disguise('mining iron ore');
mmouse( x, y, 5, 5);
wait(200+random(360));
if isuptext('ine') then
begin
GetMousePos(X, Y);
Wait(70+random(150));
Mouse(X, Y, 5, 5, True);
Wait(500+random(1350));
end;
end;
end;
procedure LoadDTMIron;
var iron: integer;
begin
iron := DTMFromString('78DA639CC9C4C0F09C0105041AA9816946289' +
'FB107A8E629AA9AB4602B543553806A6EA1AAA948744555B318A8' +
'E611AA9AB65C1F543553816A3EA0AA69C8F0445103009CDC0CA8');
End;
procedure LoadDTMsapphire;
var sapphire: integer;
begin
sapphire := DTMFromString('78DA639CCEC4C07080910119F0F0278369982' +
'8E364A09AEDA86A84C427A3AA9980698E90F8245435D3806A4EA0' +
'AA81C9C2D5CC05AA394AC03DB3816A76A3AAE1132A45510300316' +
'C0B2F');
end;
procedure LoadDTMemerald;
var emerald: integer;
begin
emerald := DTMFromString('78DA633CC4C4C0B08F910119F0950A8169982' +
'8E371A09A1DA86A7892F951D5EC04AAD986AA46B05B1455CD2EA0' +
'9A636876E50BA2AA3981A9863B16D52E00110B0A5F');
end;
procedure LoadDTMruby;
var ruby: integer;
begin
ruby := DTMFromString('78DA6374606260E06264400619623C601A26C' +
'AE80A54C386AA265C880B558D35500D0BAA9A4A297E5435364035' +
'FC04D47800D508A1AA0914E4445103008F25043F');
end;
procedure LoadDTMdiamond;
var diamond: integer;
begin
diamond := DTMFromString('78DA639CC1C4C0C0CDC8800CEACB4AC1344C9' +
'4712E500D2BAA9AF2FC7C54357D40352CA86AB66ED982AA663250' +
'8D20AA9AC9BDBDA86AE600D508A0AA69AFAB4351030001350B4D');
end;

Procedure sellSapphire;
var sapphire, x , y: integer;
begin
LoadDTMsapphire;
If FindDTM(sapphire, x, y, MIX1, MIY1, MIX2, MIY2) Then
begin
Disguise('Selling sapphire');
Mouse(x, y, 5, 5, false)
Wait(700+random(1300));
ChooseOption('50');
FreeDTM(sapphire);
end;
end;
Procedure sellIron;
var iron, x , y: integer;
begin
LoadDTMiron;
if not FindDTM(iron, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
WriteLn('Renew Iron ore DTM!');
NextPlayer(False);
Exit;
end;
If FindDTM(iron, x, y, MIX1, MIY1, MIX2, MIY2) Then
begin
Disguise('Selling Iron');
Mouse(x, y, 5, 5, false)
Wait(700+random(1300));
ChooseOption('50');
FreeDTM(iron);
end;
end;
Procedure sellemerald;
var emerald, x , y: integer;
begin
LoadDTMemerald;
If FindDTM(emerald, x, y, MIX1, MIY1, MIX2, MIY2) Then
begin
Disguise('Selling emerald');
Mouse(x, y, 5, 5, false)
Wait(700+random(1300));
ChooseOption('50');
FreeDTM(emerald);
end;
end;
Procedure sellruby;
var ruby, x , y: integer;
begin
LoadDTMruby;
If FindDTM(ruby, x, y, MIX1, MIY1, MIX2, MIY2) Then
begin
Disguise('Selling ruby');
Mouse(x, y, 5, 5, false)
Wait(700+random(1300));
ChooseOption('50');
FreeDTM(ruby);
end;
end;
Procedure selldiamond;
var diamond, x , y: integer;
begin
LoadDTMdiamond;
If FindDTM(diamond, x, y, MIX1, MIY1, MIX2, MIY2) Then
begin
Disguise('Selling diamond');
Mouse(x, y, 5, 5, false)
Wait(700+random(1300));
ChooseOption('50');
FreeDTM(diamond);
end;
end;

Procedure goToMine;
Begin
Disguise('Going to Mine');
portalClick;
MakeCompass('N');
mouse(684, 40, 3, 3, true);
Wait(100+random(150));
mouse(684, 40, 3, 3, true);
FFlag(0);
// miningSpotClick;
End;

procedure sellAll;
begin
sellIron;
Wait(700+random(1300));
sellSapphire;
Wait(700+random(1300));
sellEmerald;
Wait(700+random(1300));
sellruby;
Wait(700+random(1300));
selldiamond;
MakeCompass('S');
Wait(700+random(1300));
goToMine;
end;

Procedure trade;
var x, y: integer;
begin
if not FindObj(x, y, 'hop', 5206412, 5) then exit;
if FindObj(x, y, 'hop', 5206412, 5) then
begin
Mouse(x, y, 3, 3, False);
if ChooseOption('rade') then
begin
Disguise('Trying to trade shop worker');
wait(6000);
sellAll;
end;
end;
end;

Procedure goEndSold;
begin
MakeCompass('N');
Disguise('Going to shop');
wait(2000+random(1000));
roadClick;
portalClick;
shopClick;
wait(2000+random(1000));
trade;
end;

Procedure MainloopDrop;
begin
repeat
repeat
Disguise('Droping Mainloop');
SetRun(True);
MineIron;
miningTime;
until InvFull;
if invfull then
begin
DropingOre;
end;
Until False
end;

Procedure MainloopSell;
begin
repeat
repeat
Disguise('Selling main loop');
SetRun(True);
MineIron;
miningTime;
until InvFull;
if invfull then
begin
goEndSold;
end;
Until False
end;

procedure MainLoop;

begin
ClearDebug;
begin
if(youWillSellOre = True)then
begin
repeat
Writeln('Ores and gems goes to shop.');
if not (LoggedIn) then break;
MainloopSell;
until false
end else
begin
repeat
Writeln('Ores and gems will be droped.');
if not (LoggedIn) then break;
MainloopDrop;
until false
end;
end;
end;
begin
Disguise('Laimonas171');
//Smart_Server := SmartWorld;
//Smart_Members := Members;
//Smart_Signed := SignedClient;
//Smart_SuperDetail := HighDetail;
SetupSRL;
DeclarePlayers;
LoginPlayer;
MainLoop;
end.[/php]EDIT: falesafe screenshot then logout.
I got 2 no for bad pasting or something "end;" :( sad. i tested after posting in compiled correctly for me. :?

noidea

2009-07-30 18:21:25

Very nice attempt Laimonas!
You have grown alot in the last little bit. (scripting wise)

However, I have said no for hte following reasons.
1) Lack of failsafes
2) Lack of Complex Object finding.
3) Lack of "Proper Walking Technic"

Object Finding - In my opinion, FindColorSpiral does not cut it for the specificness of which you want. It could continuously miss ect.

Mapwalking - Check out Zephs mapwalking tut. It's massive. [From begginer, to expert.]. Click mouse is very detectable, and unreliable. With just a randomness of 3, that doesnt work very well.

Failsafes - Every script requires failsafes, inorder to be successfull. Yours doesnt have failsafes, in the most important parts, like mapwalking. Thats where most scripts stop, wrivvle up, and die.

Nice attmept!
Good luck next time :)

marpis

2009-07-31 08:40:01

No.

  1. You dont use ANY functions, only procedures! Functions are like procedures, but they return some value. They can return true/false, integer, string, etc.

  2. program FunctionExample;
    {.include srl/srl.scar}

    function BooleanFunc(MyNumber: integer): boolean; // This will return either True or False
    begin
    Result := (MyNumber > 3); // If MyNumber is greater than 3, the function will result True. Else it will return False.
    end;

    function IntegerFunc(ReturnBigNumber: boolean): Integer; // This will return some number
    begin
    if ReturnBigNumber then
    Result := 10000
    else
    Result := 2;
    end;

    // YOU CAN USE THESE FUNCTIONS LIKE THIS:
    var // Global variables
    MyBool: boolean;
    MyIntg: integer;
    begin
    MyBool := BooleanFunc(5); // See the parameters in function BooleanFunc
    writeln('MyBool = '+BoolToStr(MyBool));

    MyIntg := IntegerFunc(MyVariable); // See the parameters in function IntegerFunc
    writeln('MyIntg = '+IntToStr(MyIntg));
    end.
  3. procedure LoadDTMIron;
    var iron: integer;
    begin
    iron := DTMFromString('78DA639CC9C4C0F09C0105041AA9816946289' +
    'FB107A8E629AA9AB4602B543553806A6EA1AAA948744555B318A8' +
    'E611AA9AB65C1F543553816A3EA0AA69C8F0445103009CDC0CA8');
    End;
    Here you have declared the variable 'iron' locally, so you can't use this procedure like this:

    LoadDTMIron;
    FindDTM(iron, x, y, MIX1, MIY1, MIX2, MIY2);
    because it will most likely say "unknown identifier: iron" You should do it like this:

    function LoadDTM(Which: string): integer; // Returns integer, because DTMs are declared as integers
    begin
    case lowercase(Which) of
    'iron': Result := DTMFromString('SDFASDASD');
    'ruby': Result := DTMFromString('FGKJDLKJFDG');
    'diamond': Result := DTMFromString('KJBHSFDKJSFDH');
    end;
    end;

    function SellItem(Which: string): boolean; // Return True/False
    var
    LocalDTM, x, y: Integer;
    begin
    LocalDTM := LoadDTM(Which);
    if FindDTM(LocalDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
    begin
    Mouse(x, y, 2, 2, false);
    ...
    ...
    end;
    FreeDTM(LocalDTM);
    end;
  4. Wait(700+random(1300)); ChooseOption('50'); In the latest revision of SRL there are a few new functions like this:

    WaitOption('50', 1500);
    This will wait until option '50' is available, OR until it has waited 1500 milliseconds. Whichever occurs first. This will save alot of time in the long run.
  5. You should learn about TPAa. FinObj really sucks.
  6. Not enough failsafes
  7. Your walking is very likely to fail

+ You free your DTMs

bugger0001

2009-07-31 10:58:48

I voted NO, here are some reasons why and some minor suggestions:
  • if(youWillSellOre = True)then   <=>   if youwillsellore then 
    [INDENT]no need for the '= True'[/INDENT]
  • Your multiplayer won't work the way it's supposed to, because after you switch players, you exit one procedure, but the next player continues from the next procedure in your loops rather than starting the loop over.
  • As mentioned before: all your DTMs and selling procedures could be integrated into one procedure. Here's an example of how to do it:
  • [INDENT]Lets say you have 3 DTMs and you are going to use the three DTMs the exact same way:[/INDENT]
    function GetDTM(Gem: string): integer;
    begin
    case Gem of
    'diamond': Result := DTMFromString('78DA639CC1C4C0C0CDC8800CEACB4AC1344C9' +
    '4712E500D2BAA9AF2FC7C54357D40352CA86AB66ED982AA663250' +
    '8D20AA9AC9BDBDA86AE600D508A0AA69AFAB4351030001350B4D');
    'ruby': Result := DTMFromString('78DA6374606260E06264400619623C601A26C' +
    'AE80A54C386AA265C880B558D35500D0BAA9A4A297E5435364035' +
    'FC04D47800D508A1AA0914E4445103008F25043F');
    'sapphire': Result := DTMFromString('78DA633CC4C4C0B08F910119F0950A8169982' +
    '8E371A09A1DA86A7892F951D5EC04AAD986AA46B05B1455CD2EA0' +
    '9A636876E50BA2AA3981A9863B16D52E00110B0A5F');
    end;
    end;

    procedure SellGem(Gem: string);
    var
    DTM, x , y: integer;
    begin
    DTM := GetDTM(Gem);
    If FindDTM(DTM, x, y, MIX1, MIY1, MIX2, MIY2) Then
    begin
    Disguise('Selling' + Gem);
    Mouse(x, y, 5, 5, false)
    Wait(700+random(1300));
    ChooseOption('50');
    FreeDTM(DTM);
    end;
    end;
  • procedure miningTime;
    var
    T: Integer;
    begin
    if not (LoggedIn) then Exit;
    MarkTime(T);
    begin
    While (TimeFromMark(t)) < 4000 do
    begin
    FindRandoms;
    AntiBan;
    Wait(200+random(700));
    if FindBlackChatMessage('anage') then
    Exit;
    end;
    end;
    end;
    [INDENT]No begin end; clause needed before the While do thing.[/INDENT]
  • Procedure roadClick;
    begin
    ColorToleranceSpeed(2);
    RadialRoadWalk(FindRoadColor, 45, 90, 65, 2, 2);
    ColorToleranceSpeed(1);
    Mouse(MMCX - 20, MMCY + 60, 5, 5, True);
    FFlag(0);
    end;
    [INDENT]Why on earth do you have the ColorToleranceSpeeds there?[/INDENT]

All in all you are on your way to SRL Members. If you don't get in this time, write a new script considering all that had been told in this thread and then you'll most probably going to get in ;)
Good luck, mate!

WT-Fakawi

2009-07-31 11:05:03

yes!

Laimonas171

2009-07-31 14:45:14

From: WT-Fakawi
yes!
thank you nice to hear yes from you.. :)
~~~~
i am so close together and so far, most annoying thing is because i get 2 NO for wrong pasting. (no End,
[LEFT]but due to fault i am guilty) before i uploaded it worked fine. :? it hurts really, I do not know scar, as you know guys. But i am in that way. i am active not spammer, also i try to be polite always at the forums .:) but this isn't a reason. also I created a number of VB threads. some other tuts. OK. i am not perfect, I really, like this community (This is the main reason why I am trying to become a member). I will probably never be so good SCAR scripter as most of you, but i have read some tutorials, but not everyone understand that,maybe my fault.

Have a nice day :)
[/LEFT]

Dynamite

2009-07-31 15:30:31

From: cycrosism
It didn't compile. That's not my fault he made a mistake, lots of people make mistakes but you should always check your script before uploading it (In this case applying with it). Fix up any errors that come up when you compile before releasing the script


Hmm, should we take a look at your app, first post:
''Holding my vote, You should consider learning failsafes for walking.
Atm you got none, at all.''
He held his for you, yet you don't hold yours for this guy….
:(
If you are going to be petty, I will play your game:
Yes from me, you made my signature
T~M

ian.

2009-07-31 15:32:41

I voted yes because of your minerShock thing and I think you'll be a good addition as a member. You seem really smart, and you know a bit about SCAR/SRL, but if you don't make it, don't worry! :) Make another, better script with TPA's/DDTM's because that's what a lot of these members want. :p

Awkwardsaw

2009-07-31 17:21:47

its a yes from me :) because of the reasons stated above from other members, and because i agree that the others shouldnt have voted no JUST because of a missing end;

although still take the feed back to make it better, since it can be improved(maby a tpa/ autocolor rock finding function) :p

Laimonas171

2009-07-31 17:25:55

From: Awkwardsaw
its a yes from me :) because of the reasons stated above from other members, and because i agree that the others shouldnt have voted no JUST because of a missing end;

although still take the feed back to make it better, since it can be improved(maby a tpa/ autocolor rock finding function) :p

thank you. :) i will do what i can :)

Kave

2009-08-01 02:22:25

yes from me (nice rsclient too)

Laimonas171

2009-08-01 04:32:32

From: Kave
yes from me (nice rsclient too)

thank you man. i am fixing this script, trying to make how ppl says on posts :)
Edit: changed script a little bit. :)

Macro_FTW

2009-08-03 00:18:55

Hello Laimonas171,

I have given your application a Yes. Congratulations. :)

Reasons:
  • Nice failsafes
  • Seems like a sound script
  • Though this falls under failsafes, 2 walking backups. Nice. :P
  • Handled randoms well (especially in the gems department)
  • Kept global variable use to a minimum
  • Has Antirandoms
  • Has Antiban
  • You seem to have a good attitude. I weigh that heavily.

Comments:
  • Your standards are a bit off. Try a little harder on them, please. :)
  • Your sell procedures could have been made with parameters to make the code far less repetitive.

Other than that, good job, and good luck. ;)

~Macro_FTW

Laimonas171

2009-08-03 00:45:01

From: Macro_FTW
Hello Laimonas171,

I have given your application a Yes. Congratulations. :)

Reasons:
  • Nice failsafes
  • Seems like a sound script
  • Though this falls under failsafes, 2 walking backups. Nice. :P
  • Handled randoms well (especially in the gems department)
  • Kept global variable use to a minimum
  • Has Antirandoms
  • Has Antiban
  • You seem to have a good attitude. I weigh that heavily.

Comments:
  • Your standards are a bit off. Try a little harder on them, please. :)
  • Your sell procedures could have been made with parameters to make the code far less repetitive.

Other than that, good job, and good luck. ;)

~Macro_FTW


Hello Macro_FTW, Falesafes is my strong side like i see,i never thought about it. :D and TY.

edit: Also if i know all procedures, functions. my attitude should be high i think. :) but i do just what i know + learning that what i can understand myself. also waiting extra tut from one of members (personally) then I'll learn scar more then know right now :)

~Laimonas

Pure1993

2009-08-05 02:46:43

If I were to base my vote on this script alone, then I would have said no, but since I have seen your attitude and your eagerness to learn new things, I'm going to vote yes. :)
Keep it up mate, you still have lots of potential you can put into action. :D

Laimonas171

2009-08-05 03:07:11

From: Pure1993
If I were to base my vote on this script alone, then I would have said no, but since I have seen your attitude and your eagerness to learn new things, I'm going to vote yes. :)
Keep it up mate, you still have lots of potential you can put into action. :D

TYvm. i learning very quick. just need someone to explain all things. learning by myself is hard really, not because is hard to understand scripting. Here is point what i can't speak perfectly in English. (also understand all tut's) so it makes hard to learn it quick . . . but this script show what i really can learn and myself, but if i got an teacher it will let my better to know scar, and point of scripting. it will make my attitude higher a lot in that side. . :)

~Laimonas

Naum

2009-08-06 23:33:06

Admins, I think this guy is getting in now.

Laimonas171

2009-08-07 14:26:36

From: NaumanAkhlaQ
Admins, I think this guy is getting in now.

nice to hear that from you! :) ty.
EDIT: omg i must read your TPA tut. this one look nice! i'll try to understand TPAs better
~Laimonas

0wn 4 skill

2009-08-07 14:52:37

Yes. Attitude is excellent and from what I've seen this guy seems like he will be a great addition to SRL Members.

Laimonas171

2009-08-07 15:23:11

From: 0wn 4 skill
Yes. Attitude is excellent and from what I've seen this guy seems like he will be a great addition to SRL Members.

TY to. :)

~Laimonas171

Sir R. M8gic1an

2009-08-08 17:23:30


Procedure DTMSSell;
var
i, x, y :integer;
TDTMA: array [0..2] of Integer;
begin
//start load
TDTMA[0] := DTMFromString('78DA639CC9C4C0F0940105F81BA830FC02D28' + //ore
'C40FC1F08189702D5DC6340038C48249006997383809A3E22CC69' +
'07AA794D40CD22C26A005A5F0E94');
TDTMA[1] := DTMFromString('78DA639CC6C4C050CEC8800CA6D68530FC02D' + //clay
'220D1FF40C00852938FAA06220B2381F442A09A12026AFA806A4A' +
'09A801D955835F0D00F0ED0BB7');
TDTMA[2] := DTMFromString('78DA6374666260D8C7C8800C664E99C2F00B4' + //gems
'88344FF0301A32750CD56543510591809A42D89547390801A6FA0' +
'9A63F8D5000003DA0BCD');
for i:= 0 to 2 do
if FindDTM(TDTMA[i], x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 5, 5, false)
Wait(100+random(250));
ChooseOption('50');
case i of
0: WriteLn('selling Ore.');
1: WriteLn('selling clay.');
2: WriteLn('selling gems.');
end;
FreeDTM(TDTMA[i]);
Wait(1000+random(250));
end;
end;

This would be a nice use of Arrays ;)
Also, you should load the DTMs once at the start of the script and free them once at the end of the script to increase efficiency and avoid memory leaks. You can use the ScriptTerminate procedure to free them.

You obviously have potenticial, although you miss some organization skills, but this to me shows that your scripting is rather more instinctive than thought out. The organizing of a script is something that comes with practice. I vote yes, as i believe you will be able to make very good scripts once you take that little extra time to think it through or revise your script.

~RM

Laimonas171

2009-08-08 17:45:56

From: Rasta Magician
Code:
[LEFT]Procedure DTMSSell;
var
i, x, y :integer;
TDTMA: array [0..2] of Integer;
begin
//start load
TDTMA[0] := DTMFromString('78DA639CC9C4C0F0940105F81BA830FC02D28' + //ore
'C40FC1F08189702D5DC6340038C48249006997383809A3E22CC69' +
'07AA794D40CD22C26A005A5F0E94');
TDTMA[1] := DTMFromString('78DA639CC6C4C050CEC8800CA6D68530FC02D' + //clay
'220D1FF40C00852938FAA06220B2381F442A09A12026AFA806A4A' +
'09A801D955835F0D00F0ED0BB7');
TDTMA[2] := DTMFromString('78DA6374666260D8C7C8800C664E99C2F00B4' + //gems
'88344FF0301A32750CD56543510591809A42D89547390801A6FA0' +
'9A63F8D5000003DA0BCD');
for i:= 0 to 2 do
if FindDTM(TDTMA, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 5, 5, false)
Wait(100+random(250));
ChooseOption('50');
case i of
0: WriteLn('selling Ore.');
1: WriteLn('selling clay.');
2: WriteLn('selling gems.');
end;
FreeDTM(TDTMA);
Wait(1000+random(250));
end;
end;
[/LEFT]


This would be a nice use of Arrays ;)
Also, you should load the DTMs once at the start of the script and free them once at the end of the script to increase efficiency and avoid memory leaks. You can use the ScriptTerminate procedure to free them.

You obviously have potenticial, although you miss some organization skills, but this to me shows that your scripting is rather more instinctive than thought out. The organizing of a script is something that comes with practice. I vote yes, as i believe you will be able to make very good scripts once you take that little extra time to think it through or revise your script.

~RM

TY, i need to learn a little bit more. i need figure out most of functions, procedures. i don't know everything. but i always can learn more.Also i like your edit. :) :)

EDIT: This Appliance is so long :(

Laur€ns

2009-08-12 00:17:54

Yes - just to get your percentage up ;)

Brain

2009-08-12 00:21:40

seem like a good guy, yes.

Laimonas171

2009-08-12 00:37:31

From: Laur€ns
Yes - just to get your percentage up ;)


Thank you very much!

From: Brain
seem like a good guy, yes.


I trying to be good I do not spam. I am pretty active ( i think. because here is a lot of Jr. Member who even don't post nothing at all.) I have made some tuts. apps. Not perfect but I' m learning a lot of things. then i share here with you guys. !

Brain

2009-08-12 00:38:54

also, happy birthday!

Laimonas171

2009-08-12 15:47:33

From: Brain
also, happy birthday!


Thank you Very much! 20

Camaro'

2009-08-13 03:38:47

Im gonna vote no (didnt vote yet), because lack of failsafes from the original script. Lack of failsafes, alot of bad organization , and nothing really, gives me the urge to say yes besides attitude and positive thinking.

Im not trying to offend you at all, im just trying to help you.

(Btw just want to mention this)
This applicant was odd.

5 people before wt-fawki voted yes, said no, it was consecutive.
after fawki voted yes, 9 consecutive yes's..

Sir R. M8gic1an

2009-08-13 04:43:16

Welcome to Jah People!

~RM