SRL Archive - Archive

vizzyy - SRL Member Application


vizzyy

2014-03-15 17:00:39

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


Are you affilated in anyway with Jagex LTD?
no

Were you Referred to SRL?



What is your general programming knowledge?
Java
Python
Pascal


Are you a member of any other communities?
no


Tell us about yourself…
From: vizzyy
Computer Science College student
21 years old now
second time applying for SRL Mem.
Enjoy making shitty ass music in my spare time
Enjoy Drawing, painting, biking, smoking pot, and banging bitches.
I wish to contribute to the community and feel that SRL membership would help immensely.

this is the main script i've been working on for a while now. it's pretty all encompassing for my needs. efficiently chops magics and banks at seers, tree/ent detection using reflection based objectID/npcID fetching. custom bank function randomizing bank location. Overall goal of script was to minimize all color methods, and to maximize human 'nature' of bot. There is an axe repair function, As well as death/axerepair run back accomodating rune teleports or teletabs. i wrote in my own birds nest function, as well as very simple frog+plant random to combat some simple common randoms that weren't being picked up by the srl/reflection anti-randoms.

Important:
a few functions are ported from other scripts, namely elfy's mouse and world switch, a few tutorial snippets + turnonrun + AL functions, I do not wish to take credit for these, but seeing as how they're publicly accessible and well written, I've taken the liberty of using them.

seers magic script posted below
http://villavu.com/forum/showthread.php?t=108407



Please show us one (or multiple) of your scripts.


program SeersMagics;
{$DEFINE SMART8}
{$I SRL-OSR/SRL.Simba}
{$I SRL-OSR/SRL/Reflection/Reflection.simba}
{$I SRL-OSR/SRL/misc/al_functions.simba}

var
CurTime, ProgTime,plantTime,birdsnest,timesswitched,worldtime,switchinterval,ents,ProgBank ,died, TreeFail, randoms, Lagg,brokentimes, TreeColor, BankColor1, spot: integer;
pin,axetype: string;
skiller: boolean;
toTrees,toBank,seersToTrees,toBob,fromBob,seersBanks:TPointArray;
myloc,currentTree:TPoint;
evacced,pickedPlant:boolean;
ent:tnpc;
entnpcs:tnpcarray;

Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active:=True;
pin:='';
skiller:=false;
SetScreenName(Players[CurrentPlayer].Nick);
End;

procedure initVars;
begin
lampskill:='woodcutting';
AxeType:='Drag';
TreeColor:= 7579819;
evacced:=false;
pickedPlant:=false;
BankColor1:=8555406;
MarkTime(ProgTime);
MarkTime(worldtime);
switchinterval:=randomrange(450,700);
treefail:=0;
ProgBank := 0;
R_RunAwayDirection := 'random';
R_Reincarnate := True;
R_CombatRandoms := True;
timesswitched:=0;
died:=0;
ents:=0;
brokentimes:=0;
randoms:=0;
birdsnest:=0;
seersbanks:=[point(2721,3494),point(2722,3494),point(2724,3494),point(2727,3494),point(2728,3494),point(2729,3494)];
toTrees := [Point(2725 + RandomRange(-2, 2), 3492 + RandomRange(-2, 2)), Point(2726 + RandomRange(-2, 2), 3480 + RandomRange(-2, 2)), Point(2724 + RandomRange(-2, 2), 3464 + RandomRange(-2, 2)), Point(2718 + RandomRange(-2, 2), 3449 + RandomRange(-2, 2)), Point(2717 + RandomRange(-2, 2), 3433 + RandomRange(-2, 2)), Point(2716 + RandomRange(-2, 2), 3417 + RandomRange(-2, 2)), Point(2715 + RandomRange(-2, 2), 3402 + RandomRange(-2, 2)), Point(2701 + RandomRange(-2, 2), 3395 + RandomRange(-2, 2)),point(2703 + RandomRange(-2, 2),3397 + RandomRange(-2, 2))];
toBank:=[Point(2702 + RandomRange(-2, 2), 3398 + RandomRange(-2, 2)), Point(2703 + RandomRange(-2, 2), 3393 + RandomRange(-2, 2)), Point(2708 + RandomRange(-2, 2), 3392 + RandomRange(-2, 2)), Point(2713 + RandomRange(-2, 2), 3392 + RandomRange(-2, 2)), Point(2714 + RandomRange(-2, 2), 3397 + RandomRange(-2, 2)), Point(2716 + RandomRange(-2, 2), 3402 + RandomRange(-2, 2)), Point(2715 + RandomRange(-2, 2), 3407 + RandomRange(-2, 2)), Point(2715 + RandomRange(-2, 2), 3412 + RandomRange(-2, 2)), Point(2715 + RandomRange(-2, 2), 3417 + RandomRange(-2, 2)), Point(2714 + RandomRange(-2, 2), 3422 + RandomRange(-2, 2)), Point(2713 + RandomRange(-2, 2), 3427 + RandomRange(-2, 2)), Point(2713 + RandomRange(-2, 2), 3432 + RandomRange(-2, 2)), Point(2713 + RandomRange(-2, 2), 3437 + RandomRange(-2, 2)), Point(2710 + RandomRange(-2, 2), 3442 + RandomRange(-2, 2)), Point(2712 + RandomRange(-2, 2), 3447 + RandomRange(-2, 2)), Point(2714 + RandomRange(-2, 2), 3452 + RandomRange(-2, 2)), Point(2718 + RandomRange(-2, 2), 3456 + RandomRange(-2, 2)), Point(2718 + RandomRange(-2, 2), 3461 + RandomRange(-2, 2)), Point(2718 + RandomRange(-2, 2), 3466 + RandomRange(-2, 2)), Point(2720 + RandomRange(-2, 2), 3471 + RandomRange(-2, 2)), Point(2724 + RandomRange(-2, 2), 3475 + RandomRange(-2, 2)), Point(2726 + RandomRange(-2, 2), 3480 + RandomRange(-2, 2)), Point(2727 + RandomRange(-2, 2), 3485 + RandomRange(-2, 2)), Point(2726 + RandomRange(-2, 2), 3490 + RandomRange(-2, 2))];
end;

procedure ElfMouse(x, y: integer);//AntiBan Mouse Function
var
Cx, Cy: Integer;
begin
GetMousePos(Cx, Cy);
AL_SetMouseSpeed(20);
case Random(5) of
0: AL_BrakeWindMouse(Cx, Cy, x, y, 15 + Random(10), 5 + Random(15), 5, 10, 5, True);
1: AL_HumanWindMouse(Cx, Cy, x, y, 15 + Random(10), 5 + Random(15), 5, 10, 5);
2: AL_AccurateMMouse(IntToPoint(x, y), 2, 2);
3: AL_HumanMMouse(IntToPoint(x, y), 2, 2);
4: AL_ShiftWindMouse(Cx, Cy, x, y, 15 + Random(10), 5 + Random(15), 5, 10, 20, 5);
5: AL_MissMouse(IntToPoint(x, y), 2, 2);
end;
end;

procedure ProgressReport;
begin
cleardebug;
MarkTime(CurTime);
writeln('Banked ' + inttostr(ProgBank) + ' invs in ' + inttostr(((TimeFromMark(ProgTime) / 1000) / 60)) + ' mins.');
writeln('Birds Nests: '+inttostr(birdsnest)+'. Died: '+inttostr(died)+', Ents: '+inttostr(ents));
writeln('Times Axe Broken: '+inttostr(brokentimes)+'. Random Events: '+inttostr(randoms)+', WorldSwitches: '+inttostr(timesswitched));
writeln(entnpcs);
end;

procedure Release;
begin
srl_freebitmaps;
freebitmap(bmpAdmin);
freebitmap(bmpMinimapMask);
freedtm(Lamp);
freedtm(BookOfKnowledge);
//progressreport;
end;

function withinZone(topLeft,botRight: tpoint): boolean;
begin
MyLoc:=R_GetTileGlobal;
result:=((myloc.x>topLeft.x) and (myloc.x<botRight.x) and (myloc.y<topLeft.y) and (myloc.y>botRight.y));
end;

function isAtTrees: boolean;
begin
result:=withinZone(Point(2696, 3402), Point(2707, 3394));
end;

function isInBank: boolean;
begin
result:=withinZone(Point(2720, 3494), Point(2730, 3486));
end;

function isAtLumby: boolean;
begin
result:=withinZone(Point(3200, 3236), Point(3226, 3200));
end;

function FindBirdsNest1: Boolean;
var // seed nest [(5073, 1, (2726, 3492)), ring nest (5074, 1, (2726, 3493))]
i: Integer;
itemsInArea:TGroundItemArray;
begin
itemsInArea:=R_GetGroundItemsDistance(10);
for i:=0 to high(itemsInArea) do
begin
if((itemsInArea[i].ID = 5073) or (itemsInArea[i].ID = 5074)) then
begin
birdsnest:=birdsnest+1;
Writeln('Birds Nest Found.');
Result:=R_ChooseOptionTile('Take',itemsInArea[i].Tile);
end;
end;
end;

function AmIDead1: boolean;
begin
if(R_GetHealth = 0) then
begin
result:=true;
end
else
result:=false;
end;

procedure teleWalkTrees;
begin
wait(2000+random(100));
if(skiller) then
invmouse(3,1);
if(not skiller) then
CastSpellByNumber(27);
wait(6000+random(300));
seersToTrees:=[Point(2756, 3476), Point(2748, 3465), Point(2734, 3456), Point(2727, 3441), Point(2728, 3423), Point(2728, 3407), Point(2715, 3397), Point(2703, 3397)];
R_WalkPath(seersToTrees);
end;

procedure RepairAxe;
var
Guard: TNPC;
Tp : Tpoint;
begin
brokentimes:=brokentimes+1;
MyLoc:=R_GetTileGlobal;
toBob:=[Point(3225, 3218), Point(3234, 3214), Point(3230, 3203)];
fromBob:=[Point(3235, 3203), Point(3232, 3216), Point(3218, 3218), Point(3206, 3210)];

if(not skiller) then
begin
gametab(tab_equip)
wait(randomrange(700,900));
elfMouse(592,303);//,3,3,true);
ClickMouse2(Mouse_Left);
end;

for spot:=1 to 28 do
begin
invmouse(spot,3);
wait(randomrange(150,250));
if(isuptext(AxeType) or isuptext('roken')) then
begin
invmouse(spot,3);
Break;
end;
end;
if(isUpText('roken')) then
begin
Writeln('Excercising RepairAxe');
R_WalkPath(toBob);
repeat
repeat
if R_FindNpc('Bob', Guard) then // Loads the record for Guard.
begin
Tp := Guard.Tile; //Get guard tile location
Tp := R_TileToMs(Tp); //Changes Tile into a Onscreen Point
elfmouse(Tp.x, Tp.y);
if waituptext('Bob', 200) then
begin
InvMouse(spot,1);
elfmouse(Tp.x, Tp.y);
ClickMouse2(Mouse_Left);
wait(randomrange(1500,2000));
end;
end;
until(aretalking);

if(areTalking()) then
begin
ClickContinueEx(true,true);
elfmouse(261,401);//,3,3,true);
ClickMouse2(Mouse_Left);
ClickContinueEx(true,true);
ClickContinueEx(true,true);
wait(randomrange(1500,2000));
end;

for spot:=1 to 28 do
begin
invmouse(spot,3);
wait(randomrange(150,250));
if(isuptext(AxeType)) then
begin
invmouse(spot,3);
Break;
end;
end;

until(isUpText(AxeType));
end;
if(isuptext(AxeType)) then
begin
writeln('Axe is good.');
if(not skiller) then
invmouse(spot,1);
teleWalkTrees;
end;
end;

procedure BankLogs;
begin
writeln('Bank logs');
wait(lagg);
if(BankScreen) then
begin
if(not Skiller) then
QuickDeposit('inv');
if(skiller) then
Deposit(2,28,true);
end;
ProgBank := ProgBank + 1;
end;


function turnonrun: Boolean;
var
x,y : Integer;
enable:boolean;
begin
Result := False;
enable:=true;
if not loggedin() then
Exit;

if Enable then
begin
if findColorTolerance(x, y, 28552, 571, 127, 595, 152, 20) then
begin
result := true;
exit;
end else
begin
mouseBox(545, 130, 590, 150, MOUSE_LEFT);
result := true;
exit;
end;
end else if not Enable then
if findColorTolerance(x, y, 28552, 571, 127, 595, 152, 20) then
begin
mouseBox(545, 130, 590, 150, MOUSE_LEFT);
Result := True;
end;
end;

procedure GoToBank;
begin
writeln('gotobank');
if(BankScreen) then
begin
BankLogs;
end;
TurnOnRun;
R_WalkPath(toBank);
if(not IsInBank) then
R_BlindWalk(Point(2726, 3491));
writeln('Walk to bank successful.');
wait (lagg);
end;

function Banker(spot: tpoint): boolean;
var
tile:tpoint;
begin
Tile:= R_TileToMs(spot);
elfmouse(tile.x,tile.y);
wait(randomrange(500,600));
if(random(2) = 1) then
begin
ClickMouse2(Mouse_Left);
wait(2000+random(100));
end
else
begin
ClickMouse2(Mouse_Right);
ChooseOptionMulti(['ank','ooth']);
wait(2000+random(100));
end;
if(pinpending) then
confirmpin;
if(pinscreen) then
inpin(pin);
if(bankscreen) then
begin
result:=true;
end
else
result:=false;
end;

procedure OpenBank1;
begin
makecompass('n');
myloc:=R_gettileGlobal;
writeln('openbank ('+inttostr(myloc.x)+','+inttostr(myloc.y)+')');
Repeat
Banker(seersbanks[randomrange(0,5)]);
wait (1000+random(2000));
if(not isInBank) then
begin
writeln('Bank Contingency');
R_BlindWalk(Point(2726, 3492));
end;
until(BankScreen)
end;

procedure CheckAxeBroken;
begin
if(skiller)then
begin
invmouse(1,3);
end
else
begin
ftab(tab_Equip);
wait(1000+random(100));
elfMouse(592,303);//,3,3);
wait(1000+random(100));
end;
if(isuptext(AxeType)) then
writeln('Axe good.');
if(isUpText('Broken')) then
begin
writeln('Axe broken.');
gotobank;
openbank1;
banklogs;
if(bankscreen) then
begin
writeln('Withdrawing');
if(skiller) then
begin
wait(randomrange(500,600)); //coins in first bank slot
Withdraw(0, 0, 1800);//, ['Coins']);
wait(randomrange(500,600)); //Cammy in second slot
Withdraw(1, 0, 1); //['Cammy Tele']);
wait(randomrange(500,600));
end
else
begin
wait(randomrange(500,600)); //coins in first bank slot
Withdraw(0, 0, 1800);//, ['Coins']);
wait(randomrange(500,600)); //airs in second slot
Withdraw(1, 0, 5); //['Air Rune']);
wait(randomrange(500,600)); //laws in third slot
Withdraw(2, 0, 1);//, ['Law Rune']);
wait(randomrange(500,600));
end;
end;
closebank;
wait(2000+random(1000));
elfmouse (644,91);//,3,3,true);
ClickMouse2(Mouse_Left);
wait(randomrange(600,800));
CastSpellByNumber(1);
wait(randomrange(600,800));
if(findchatboxtext('need to wait',8,0)) then //skill on cooldown then use reagents
begin
openbank1;
if(skiller) then
begin
wait(randomrange(500,600));
Withdraw(2, 0, 1); //['Lumby Tab']);
wait(randomrange(500,600));
closebank;
wait(randomrange(600,800));
invmouse(4,1);
end
else
begin
wait(randomrange(500,600));
Withdraw(3, 0, 1);//, ['Earth Rune']);
wait(randomrange(500,600));
Withdraw(2, 0, 1);//, ['Law Rune']);
wait(randomrange(500,600)); //airs in second slot
Withdraw(1, 0, 3); //['Air Rune']);
wait(randomrange(500,600));
closebank;
wait(randomrange(600,800));
CastSpellByNumber(19);
end;
end;
wait(15000+random(300));
RepairAxe;
Exit;
end;
end;

Function FindEnt: tpoint;
begin
if (R_Findnpc('Magic tree',ent)) then
begin
entnpcs:=r_getallnpcs;
result:=ent.tile;
if(ent.tile = currentTree) then
begin
if(not evacced) then
begin
Writeln ('An ent has been detected...');
ents:=ents+1;
R_BlindWalkMS(point(2702+randomrange(-1,1),3398+randomrange(-1,1)));
evacced:=true
end;
end;
end
else
begin
evacced:=false;
result:=point(0,0);
end;
end;

procedure GoToTrees;
begin
writeln('gototrees');
myloc:= R_GetTileGlobal;
if(not isattrees and not isatlumby) then //if outside tree zone reflection walk to tree zone
begin
TurnOnRun;
R_WalkPath(toTrees);
if(not isattrees) then
R_BlindWalk(point(2702,3398));
writeln('Walk to trees successfully');
end;
wait (lagg);
end;

function plant:boolean;
var
Ivy:tnpc;
begin
if(R_Findnpc('Strange plant',ivy)) then
begin
if(R_NearTile(ivy.tile,5) and (not pickedPlant))then
begin
ElfMouse(R_Tiletoms(ivy.tile).x,R_Tiletoms(ivy.tile).y);
ClickMouse2(Mouse_Left);
pickedPlant:=true;
MarkTime(plantTime);
if(IsChatBoxTextAnyLine('fruit',0)) then
pickedPlant:=false;
end;
end;
end;

function froggieRandom: boolean;
var
Frogs:tnpcArray;
Peach:Tnpc;
i:integer;
begin
result:=false;
if(withinZone(point(2450,4797),point(2480,4760))) then
begin
R_FindNPC(1329,Peach);
frogs:=R_GetAllNpcs;
writeln(Peach);
for i:=0 to high(frogs) do
begin
if(frogs[i].Index = 1329) then
Peach:=frogs[i];
end;
R_BlindWalk(Peach.tile);
for i:=0 to 5 do
begin
R_FindNPC(1329,Peach);
Mouse(R_TiletoMs(Peach.tile).x,R_TiletoMS(Peach.Tile).y,3,3,true);
wait(2000+random(1000));
if(aretalking)then
break;
end;
if(aretalking) then
begin
ClickContinueEx(true,true);
ClickText('back','CharsNPC07',MCX1,MCY1,MCX2,MCY2,true);
wait(randomrange(600,800));
ClickContinueEx(true,true);
ClickContinueEx(true,true);
result:=true;
end;
end;
end;

function pointNotOnScreen(point:tpoint): boolean;
begin
result:=false;
if((point.x<MSX1)
or (point.x>MSX2)
or (point.y<MSY1)
or (point.y>MSY2)) then
result:=true;
end;

procedure ChopTree;
var
i,treeID:integer;
treespots: tpointarray;
mouseGo,mouseGo2:tpoint;
begin
treespots:=[point(2706, 3397),point(2706, 3399),point(2699, 3399),point(2699, 3397)];
if(not isatTrees) then
gototrees;
for i:=0 to high(treespots) do
begin
if(findent = treespots[i]) then
continue;
treeID:=R_GetObjectAt(0,treespots[i]).ID;
writeln(treeID);
if(treeID = 2120) then
begin
if(not r_iswalking) then
begin
mouseGo:=point(treespots[i].x-1,treespots[i].y-1);
mouseGo2:=point(treespots[i].x,treespots[i].y);
mouseGo:=point((R_TileToMsHeight(mouseGo,R_GetTileHeight(mouseGo)).x+R_TileToMsHeight(mouseGo2,R_GetTileHeight(mouseGo2)).x)/2,
(R_TileToMsHeight(mouseGo,R_GetTileHeight(mouseGo)).y+R_TileToMsHeight(mouseGo2,R_GetTileHeight(mouseGo2)).y)/2);
if(pointNotOnScreen(mouseGo)) then
begin
R_BlindWalkMS(point(2702+randomrange(-1,1),3398+randomrange(-1,1)));
//compassmovement(45,90,false);
end;
elfmouse(mouseGo.x,mouseGo.y);
wait(randomrange(400,600));
if(R_Isuptext('Magic tree')) then
begin
ClickMouse2(Mouse_Left);
AL_HumanRandomMouse;
currentTree:=treespots[i];
R_FNRwait(randomrange(900,1400),300);
break;
end;
end;
end
else
continue;
end;
end;

procedure haveDied;
begin
if(not skiller) then
begin
for spot:=1 to 28 do
begin
invmouse(spot,3);
wait(randomrange(150,250));
if(isuptext(AxeType) or isuptext('roken')) then
begin
invmouse(spot,1);
Break;
end;
end;
end;
repeat
R_BlindWalk(point(3206, 3209));
wait(randomrange(800,1000));
if(R_getplane=0) then
R_ChooseOptionTile('Climb-up',point(3205, 3208));
wait(randomrange(800,1000));
until((R_getplane=1) or (R_getplane=2));
repeat
if(R_getplane=1) then
R_ChooseOptionTile('Climb-up',point(3205, 3208));
wait(randomrange(800,1000));
until(R_getplane=2);
if(R_getplane=2) then
begin
repeat
R_BlindWalk(Point(3209, 3219));
wait(randomrange(800,1000));
Banker(point(3208, 3221));
wait(randomrange(800,1100));
until(bankscreen);
BankLogs;
wait(randomrange(800,1100));
if(skiller) then
begin
Withdraw(1, 0, 1); //['Cammy Tele']);
end
else
begin
wait(randomrange(500,600)); //airs in second slot
Withdraw(1, 0, 5); //['Air Rune']);
wait(randomrange(500,600)); //laws in third slot
Withdraw(2, 0, 1);//, ['Law Rune']);
end;
wait(randomrange(800,1100));
closebank;
wait(randomrange(600,1000));
if(skiller) then
invmouse(2,1);
wait(randomrange(2500,3000));
telewalktrees;
end;
end;

procedure MyWorld(W: Integer);//Pick World On WOrld Screen
var
WArray: array of Integer;
I: Integer;
begin
Warray := [302, 303, 304, 305, 306, 309, 310, 311, 312, 313, 314, 317, 318, 319, 320, 321, 322, 326, 327, 328, 329, 330, 333, 334, 335, 336, 338, 341, 342, 343, 344, 345, 346, 349, 350, 351, 352, 353, 354, 357, 358, 359, 360, 361, 362, 366, 367, 368, 369, 370, 373, 374, 375, 376, 377, 378];
if InIntArrayEx(WArray, i, W) then
begin
ElfMouse(250 + ((i / 16) * 90), 80 + (24 * (i mod 16)));
Wait(1000)
ClickMouse2(Mouse_Left);
Exit;
end
else
i := 28;
ElfMouse(250 + ((i / 16) * 90), 80 + (24 * (i mod 16)));
Wait(1000)
ClickMouse2(Mouse_Left);
Exit;
end;

function OpenWScreen: Boolean;
var
x, y: integer;
begin
Result := False;
if findcolortolerance(x, y, 3166829, 350, 190, 435, 220, 10) then
Result := True;
if Loggedin then
Exit;
if not result then
begin
Mmouse(54, 475, 1, 1);
wait(200);
ClickMouse2(Mouse_Left);
Wait(1500);
Result := True;
end;
end;

procedure SwitchWorldTo;
var
WArray: array of Integer;
num: integer;
begin
num:= Randomrange(2,50);
Warray := [302, 303, 304, 305, 306, 309, 310, 311, 312, 313, 314, 317, 318, 319, 320, 321, 322, 326, 327, 328, 329, 330, 333, 334, 335, 336, 338, 341, 342, 343, 344, 345, 346, 349, 350, 351, 352, 353, 354, 357, 358, 359, 360, 361, 362, 366, 367, 368, 369, 370, 373, 374, 375, 376, 377, 378];
Logout;
OpenWScreen;
MyWorld(WArray[num]);
writeln(warray[num]);
LoginPlayer;
end;

Procedure Antiban;
begin
R_FindNormalRandoms;
findent;
if(r_isanimating) then
begin
case random(45) of
1: HoverSkill(randomrange(1,23), False);
2: HoverOnlineFriend;
//3: compassmovement(100,150,false);
4: BoredHuman;
8: Turnonrun;
9: RandomFKeys(false);
10: MMouseOffClient('random');
//11: PressKey(randomrange(1,4));
12..15: AL_HumanRandomMouse;
end;
Wait(randomrange(800,1000));
end;
end;

begin
SetupSRL();
DeclarePlayers;
SetScreenName(Players[CurrentPlayer].Nick);
ActivateClient;
SetupReflection;
ClearDebug;
writeln('Welcome to Vizzyy Seers Magic Bot.');
initVars;
AddOnTerminate('Release');
If (Not LoggedIn) Then
begin
LogInPlayer;
end;
makecompass('n');
setAngle(Srl_angle_high);

repeat

if (((TimeFromMark(PlantTime) / 1000) / 60) > 2) then
begin
pickedPlant:=false;
end;

if (((TimeFromMark(WorldTime) / 1000) / 60) > switchinterval) then
begin
Writeln('Switching World');
SwitchWorldTo;
MarkTime(WorldTime);
switchinterval:=randomrange(450,700);
timesswitched:=timesswitched+1;
end;

if(not R_NearTile(point(2705,3397),400) and (not isatlumby))then
begin
writeln('Somethings fucked, we are too far.');
CastSpellByNumber(1);
wait(15000);
end;
//main loop
if(findchatboxtext('You do not have',8,0))then
begin
checkaxebroken;
end;
progressreport;

plant;
froggieRandom;
FindEnt;

if(R_FindNormalRandoms) then
randoms:=randoms+1; ;
if(solvebox) then
randoms:=randoms+1;

AntiBan;

if(FindBirdsNest1) then
Birdsnest := Birdsnest + 1;

if(AmIDead1 or isatlumby) then
begin
writeln('Died/lumby, resetting');
died:=died+1;
haveDied;
end;

if(InvFull) then
begin
GoToBank;
OpenBank1;
BankLogs;
closebank;
GoToTrees;
end
else
begin
if((not R_IsAnimating) and (not Al_playerwalking)) then
begin
ChopTree;
end;
end;
until (Not LoggedIn)
TerminateScript;
end.


NKN

2014-03-15 21:26:47

It's a no.


If you're going to use reflection, you'd better make sure the rest of the script is flawless. It should be used as a supplement, not the entree.

You show lack of failsafes, and lack of general logic flow.

Sorry bud.

Olly

2014-03-15 21:54:02

I'm not sure where we even stand on relfection… Didn't before the script needed to at-least have color backups?

Sk1nyNerd

2014-03-15 22:08:16

voted no, scripts mostly reflection. yes i like the use of reflection but for a members application it should be mostly color i feel as the core of Simba and its use is built around color. walking should be about the only thing reflection as the unstabaility in sps and the complications of dtm walking.

the tree finding could have been done in color with the use of atpas and pixel shift
the bank finding could have been done in color with the use of atpas. easily
ent detection could be done with a search box and pixel shift
the failsafes to fix the axe and walk back are good but you need more. at no point will the script log out if something fails to happen which is bad news if something does happen

you clearly have a conceptual understanding of how Simba works and what needs to be done in a script but there is an abscense in the ability to show you can script color functions.

fix the above and it's a yes next time :) gl

rj

2014-03-15 22:21:47

TBH I think using reflection for randoms & tile walking are fine. But if your going to use reflection, it should show some complexity to compensate :p

riwu

2014-03-15 22:39:01


Withdraw(3, 0, 1);//, ['Earth Rune']);
wait(randomrange(500,600));
Withdraw(2, 0, 1);//, ['Law Rune']);
wait(randomrange(500,600)); //airs in second slot
Withdraw(1, 0, 3); //['Air Rune']);
wait(randomrange(500,600));

Could be simplified to

arr:=[1, 1, 3];
for i:=0 to High(arr) do
begin
Withdraw(3-i, 0, arr[i]);//, ['Earth Rune']);
wait(randomrange(500,600));
end;

Would like to see the use of more arrays (tpa/atpa etc).

vizzyy

2014-03-15 23:28:36

First of all, I want to thank you all for your time and feedback. It is much appreciated.

Secondly, I want to say, that although I do not feel discouraged from trying again in the future, I'm disappointed in the lack of general consensus, and clarity on the part of the membership, on use of reflection based functions for the majority of my script, as I feel such distinctions are poorly represented to the community at this time (namely the SRL membership guide). Just the other day I received several messages pointing out I had mistakenly contributed reflection based work to the SRL-OSR randoms thread, which focuses only on color-based solvers. I believe, perhaps naively, that all efforts, color and reflection and whatever else those of you whom are much more intelligent than I have thought up, should be conglomerated and not, as i feel, divided.

I look forward to redoubling my efforts, and furthering my experience, and will now take the opportunity to respond to some comments.

@NKN :
It should be used as a supplement, not the entree.
Tell me why please. if it works and is simplistic? Should not the functional outweigh the engrained? I acknowledge and respect your point of view on my lack of failsafes; I have found that without anti randoms, I am usually babysitting the script anyways, which should be by no means an excuse on my part. Thanks for your feedback.

@Sk1nyNerd : I appreciate your specific feedback, it will be very helpful to me in the future.

@riwu : I reject your assertion that your example code is a simplification of the snippet you provided from my script. I utilize for-loops numerous times throughout my script, and I believe that your specific example, in withdrawing three items, although especially relevant if withdrawing lots of items, does not add merit to accomplishing this specific task, but is rather a stylistic choice on your part. I thank you and appreciate your comment none the less.

Daniel

2014-03-16 02:37:24

From: vizzyy
Secondly, I want to say, that although I do not feel discouraged from trying again in the future, I'm disappointed in the lack of general consensus, and clarity on the part of the membership, on use of reflection based functions for the majority of my script, as I feel such distinctions are poorly represented to the community at this time (namely the SRL membership guide). Just the other day I received several messages pointing out I had mistakenly contributed reflection based work to the SRL-OSR randoms thread, which focuses only on color-based solvers. I believe, perhaps naively, that all efforts, color and reflection and whatever else those of you whom are much more intelligent than I have thought up, should be conglomerated and not, as i feel, divided.


Reflection is and always has been considered separate from the official SRL include. It is oft discouraged for member applications as it significantly simplifies the process of script creation, thus not allowing us to properly gauge your scripting ability. If you do want to apply with a reflection script, then be sure to include additional colour finding and colour fail-safe techniques as well. I have updated the "How to Become an SRL Member" guide to reflect this recent iteration of reflection work and its inclusion in SRL membership applications, as it wasn't present when I initially wrote it.

The Mayor

2014-03-17 06:29:17

As mentioned, demonstrating your knowledge of TPAs/ATPAs for color finding is a must for membership applications. Good effort though ;)

P.S. Minor, but you do have quite a few unnecessary begins/ends. Not sure if these were left over from debugging.

masterBB

2014-03-17 09:52:47

Hi,

I can see you put some effort in this application. But the script and activity were slightly below what is needed imo. It is possible to get in with just reflection, it happened before. But that requires a complexer script. We just want to see a certain skill level in logic flow. With color you are forced to do that for a stable script. Tbh, I voted no because of activity. I don't really know you.

From: riwu
Could be simplified to

arr:=[1, 1, 3];
for i:=0 to High(arr) do
begin
Withdraw(3-i, 0, arr[i]);//, ['Earth Rune']);
wait(randomrange(500,600));
end;

Would like to see the use of more arrays (tpa/atpa etc).


He, how is that more simple than what he wrote :p

cause

2014-03-17 15:10:01

Only 38 posts, swearing in your location and self description (clear violation of SRL rules) and a script without particular colour requirements…no

King

2014-03-20 12:50:24

Voted no.

As stated the general flow of logic is off, it needs to be a bit more complex to properly demonstrate your knowledge. I feel that coulor finding is a must in a script, I would like to see more TPA / ATPA use, fail safes are lacking. I feel this is due to the fact that you have written the majority of the script in reflection. It is easier to get lazy, and this does not equate to a stable script.

Your responses are nice and show that you appear to have a good demeanor, however overall ability to script has not been shown here. If you are going to apply outside of the box, blow us out of the water.

Look forward to seeing you apply in the future,also try and be more active around the forums, it has helped several people become members (including me) to have votes right off the bat simply due to the fact that they knew me.

NKN

2014-03-20 14:09:19

From: vizzyy

@NKN : Tell me why please. if it works and is simplistic? Should not the functional outweigh the engrained? I acknowledge and respect your point of view on my lack of failsafes; I have found that without anti randoms, I am usually babysitting the script anyways, which should be by no means an excuse on my part. Thanks for your feedback.



The status of SRL Member isn't to show that you can create simple scripts using the easiest/fastest way possible. It's there to show that you've become accustomed to using the actual SRL include, and not just an off-branch. You need to be able to script functionally in color to show this. I'd rather not have an SRL Member who isn't aware how to use SRL.

Just my two cents.

The Mayor

2014-03-21 17:45:24

@vizzyy seeing what you've demonstrated already, I don't think it would be that hard for you to write a script using colour only. You should give it a go and submit that in your next app :)