program NewScript; {.include SRL/SRL.scar} var x, y: integer; xB,yB,xBH,yBH:integer; function InventFullBH: boolean; var zx, zy: integer; begin Gametab(4); if not (findcolor(zx, zy, 3818059, 701, 439, 714, 449)) then Result := True else Result := false; end; function GetSymbolColorBox(var rx, ry: Integer; Name: string): Integer; begin //Right Side of MM Result := GetSymbolColorIn(rx, ry, LowerCase(Name), 632, 83, 651, 102); end; function FindSymbolBox(var rx, ry: Integer; Name: string): Boolean; begin //Right Side of MM Result := (GetSymbolColorBox(rx, ry, LowerCase(Name)) > 0); end; function GetSymbolColorRightHalfMM(var rx, ry: Integer; Name: string): Integer; begin //Right Side of MM Result := GetSymbolColorIn(rx, ry, LowerCase(Name), 643, 8, 723, 155); end; function FindSymbolR(var rx, ry: Integer; Name: string): Boolean; begin //Right Side of MM Result := (GetSymbolColorRightHalfMM(rx, ry, LowerCase(Name)) > 0); end; function GetSymbolColorLeftHalfMM(var rx, ry: Integer; Name: string): Integer; begin //Left Side of MM Result := GetSymbolColorIn(rx, ry, LowerCase(Name), 558, 5, 642, 165); end; function FindSymbolL(var rx, ry: Integer; Name: string): Boolean; begin //Left Side of MM Result := (GetSymbolColorLeftHalfMM(rx, ry, LowerCase(Name)) > 0); end; procedure ClickLeft; begin if FindSymbolL(x, y, 'Tree') then begin mouse(x, y, 5, 5, true); FFlag(1); end else Mouse(601, 84, 7, 7, true); FFlag(0); if FindSymbolL(x, y, 'Tree') then begin mouse(x, y, 5, 5, true); FFlag(1); end; end; procedure ClickRight; begin if FindSymbolR(x, y, 'Tree') then begin mouse(x, y, 5, 5, true); FFlag(1); end else Mouse(683, 78, 7, 7, true); FFlag(0); if FindSymbolR(x, y, 'Tree') then begin mouse(x, y, 5, 5, true); FFlag(1); end; end; function LoadFallyRoadWalk(WalkNumber: Integer): Integer; var dtmMainPoint: TDTMPointDef; dtmSubPoints: array[0..4] of TDTMPointDef; TempTDTM: TDTM; begin case WalkNumber of 1: begin //Walk To Yews Begins dtmMainPoint.x := 655; dtmMainPoint.y := 32; dtmMainPoint.AreaSize := 2; dtmMainPoint.AreaShape := 0; dtmMainPoint.Color := FindFallyRoadColor; dtmMainPoint.Tolerance := 0; dtmSubPoints[0].x := 644; dtmSubPoints[0].y := 36; dtmSubPoints[0].AreaSize := 2; dtmSubPoints[0].AreaShape := 0; dtmSubPoints[0].Color := FindFallyRoadColor; dtmSubPoints[0].Tolerance := 0; dtmSubPoints[1].x := 657; dtmSubPoints[1].y := 38; dtmSubPoints[1].AreaSize := 2; dtmSubPoints[1].AreaShape := 0; dtmSubPoints[1].Color := FindFallyRoadColor; dtmSubPoints[1].Tolerance := 0; dtmSubPoints[2].x := 654; dtmSubPoints[2].y := 14; dtmSubPoints[2].AreaSize := 2; dtmSubPoints[2].AreaShape := 0; dtmSubPoints[2].Color := FindFallyRoadColor; dtmSubPoints[2].Tolerance := 0; dtmSubPoints[3].x := 658; dtmSubPoints[3].y := 48; dtmSubPoints[3].AreaSize := 2; dtmSubPoints[3].AreaShape := 0; dtmSubPoints[3].Color := FindFallyRoadColor; dtmSubPoints[3].Tolerance := 0; TempTDTM.MainPoint := dtmMainPoint; TempTDTM.SubPoints := dtmSubPoints; Result := AddDTM(TempTDTM); end; 2: begin dtmMainPoint.x := 653; dtmMainPoint.y := 21; dtmMainPoint.AreaSize := 0; dtmMainPoint.AreaShape := 0; dtmMainPoint.Color := FindFallyRoadColor; dtmMainPoint.Tolerance := 0; dtmSubPoints[0].x := 647; dtmSubPoints[0].y := 32; dtmSubPoints[0].AreaSize := 2; dtmSubPoints[0].AreaShape := 0; dtmSubPoints[0].Color := FindFallyRoadColor; dtmSubPoints[0].Tolerance := 0; dtmSubPoints[1].x := 643; dtmSubPoints[1].y := 41; dtmSubPoints[1].AreaSize := 2; dtmSubPoints[1].AreaShape := 0; dtmSubPoints[1].Color := FindFallyRoadColor; dtmSubPoints[1].Tolerance := 0; dtmSubPoints[2].x := 653; dtmSubPoints[2].y := 15; dtmSubPoints[2].AreaSize := 2; dtmSubPoints[2].AreaShape := 0; dtmSubPoints[2].Color := FindFallyRoadColor; dtmSubPoints[2].Tolerance := 0; TempTDTM.MainPoint := dtmMainPoint; TempTDTM.SubPoints := dtmSubPoints; Result := AddDTM(TempTDTM); end; 3: begin dtmMainPoint.x := 625; dtmMainPoint.y := 40; dtmMainPoint.AreaSize := 0; dtmMainPoint.AreaShape := 0; dtmMainPoint.Color := FindRoadColor; dtmMainPoint.Tolerance := 0; dtmSubPoints[0].x := 629; dtmSubPoints[0].y := 21; dtmSubPoints[0].AreaSize := 2; dtmSubPoints[0].AreaShape := 0; dtmSubPoints[0].Color := FindRoadColor; dtmSubPoints[0].Tolerance := 0; dtmSubPoints[1].x := 628; dtmSubPoints[1].y := 46; dtmSubPoints[1].AreaSize := 2; dtmSubPoints[1].AreaShape := 0; dtmSubPoints[1].Color := FindRoadColor; dtmSubPoints[1].Tolerance := 0; dtmSubPoints[2].x := 621; dtmSubPoints[2].y := 39; dtmSubPoints[2].AreaSize := 2; dtmSubPoints[2].AreaShape := 0; dtmSubPoints[2].Color := FindRoadColor; dtmSubPoints[2].Tolerance := 0; dtmSubPoints[3].x := 633; dtmSubPoints[3].y := 15; dtmSubPoints[3].AreaSize := 2; dtmSubPoints[3].AreaShape := 0; dtmSubPoints[3].Color := FindRoadColor; dtmSubPoints[3].Tolerance := 0; TempTDTM.MainPoint := dtmMainPoint; TempTDTM.SubPoints := dtmSubPoints; Result := AddDTM(TempTDTM); end; //Walk To Yews ends. 4: begin //Walk to bank begins. dtmMainPoint.x := 662; dtmMainPoint.y := 113; dtmMainPoint.AreaSize := 2; dtmMainPoint.AreaShape := 0; dtmMainPoint.Color := FindFallyRoadColor; dtmMainPoint.Tolerance := 0; dtmSubPoints[0].x := 648; dtmSubPoints[0].y := 102; dtmSubPoints[0].AreaSize := 2; dtmSubPoints[0].AreaShape := 0; dtmSubPoints[0].Color := FindFallyRoadColor; dtmSubPoints[0].Tolerance := 0; dtmSubPoints[1].x := 668; dtmSubPoints[1].y := 111; dtmSubPoints[1].AreaSize := 2; dtmSubPoints[1].AreaShape := 0; dtmSubPoints[1].Color := FindFallyRoadColor; dtmSubPoints[1].Tolerance := 0; dtmSubPoints[2].x := 659; dtmSubPoints[2].y := 122; dtmSubPoints[2].AreaSize := 2; dtmSubPoints[2].AreaShape := 0; dtmSubPoints[2].Color := FindFallyRoadColor; dtmSubPoints[2].Tolerance := 0; TempTDTM.MainPoint := dtmMainPoint; TempTDTM.SubPoints := dtmSubPoints; Result := AddDTM(TempTDTM); end; 5: begin dtmMainPoint.x := 635; dtmMainPoint.y := 128; dtmMainPoint.AreaSize := 0; dtmMainPoint.AreaShape := 0; dtmMainPoint.Color := FindFallyRoadColor; dtmMainPoint.Tolerance := 0; dtmSubPoints[0].x := 635; dtmSubPoints[0].y := 112; dtmSubPoints[0].AreaSize := 1; dtmSubPoints[0].AreaShape := 0; dtmSubPoints[0].Color := FindFallyRoadColor; dtmSubPoints[0].Tolerance := 0; dtmSubPoints[1].x := 635; dtmSubPoints[1].y := 141; dtmSubPoints[1].AreaSize := 1; dtmSubPoints[1].AreaShape := 0; dtmSubPoints[1].Color := FindFallyRoadColor; dtmSubPoints[1].Tolerance := 0; dtmSubPoints[2].x := 632; dtmSubPoints[2].y := 146; dtmSubPoints[2].AreaSize := 1; dtmSubPoints[2].AreaShape := 0; dtmSubPoints[2].Color := FindFallyRoadColor; dtmSubPoints[2].Tolerance := 0; dtmSubPoints[3].x := 636; dtmSubPoints[3].y := 145; dtmSubPoints[3].AreaSize := 1; dtmSubPoints[3].AreaShape := 0; dtmSubPoints[3].Color := FindFallyRoadColor; dtmSubPoints[3].Tolerance := 0; TempTDTM.MainPoint := dtmMainPoint; TempTDTM.SubPoints := dtmSubPoints; Result := AddDTM(TempTDTM); end; 6: begin dtmMainPoint.x := 647; dtmMainPoint.y := 138; dtmMainPoint.AreaSize := 0; dtmMainPoint.AreaShape := 0; dtmMainPoint.Color := FindFallyRoadColor; dtmMainPoint.Tolerance := 0; dtmSubPoints[0].x := 643; dtmSubPoints[0].y := 124; dtmSubPoints[0].AreaSize := 2; dtmSubPoints[0].AreaShape := 0; dtmSubPoints[0].Color := FindFallyRoadColor; dtmSubPoints[0].Tolerance := 0; dtmSubPoints[1].x := 653; dtmSubPoints[1].y := 149; dtmSubPoints[1].AreaSize := 2; dtmSubPoints[1].AreaShape := 0; dtmSubPoints[1].Color := FindFallyRoadColor; dtmSubPoints[1].Tolerance := 0; dtmSubPoints[2].x := 644; dtmSubPoints[2].y := 118; dtmSubPoints[2].AreaSize := 2; dtmSubPoints[2].AreaShape := 0; dtmSubPoints[2].Color := FindFallyRoadColor; dtmSubPoints[2].Tolerance := 0; dtmSubPoints[3].x := 653; dtmSubPoints[3].y := 144; dtmSubPoints[3].AreaSize := 2; dtmSubPoints[3].AreaShape := 0; dtmSubPoints[3].Color := FindFallyRoadColor; dtmSubPoints[3].Tolerance := 0; TempTDTM.MainPoint := dtmMainPoint; TempTDTM.SubPoints := dtmSubPoints; Result := AddDTM(TempTDTM); end; end end; function WalkToYews: Boolean; var WalkAngle: Extended; WalkDTM, FRC: integer; begin WalkDTM := LoadFallyRoadWalk(1); FRC := FindFallyRoadColor; if FindDTM(WalkDTM, X, Y, 561, 1, 717, 78) then begin Mouse(X, Y, 3, 3, True); WriteLn('Walk Main 1. - Complete.'); Wait(6500); FFlag(0); Result := True; end else if RadialRoadWalk(FindWaterColor, 330, 423, 53, -7, 1) then begin Writeln(' Walk Backup 1. - Complete.'); Result := True; end else Writeln(' Walk Backup 1. - Failed. Changing Player.'); Result := False; FreeDTM(WalkDTM); WalkDTM := LoadFallyRoadWalk(2); if FindDTM(WalkDTM, X, Y, 561, 1, 717, 78) then begin Mouse(X, Y, 3, 3, True); WriteLn('Walk Main 2. - Complete.'); FFlag(0); Result := True; end else if RadialRoadWalk(FindWaterColor, 1, 66, 68, -28, 1) then begin WriteLn('Walk BackUp 2. - Complete.'); FFlag(0); Result := True; end else Writeln(' Walk Backup 2. - Failed. Changing Player.'); Result := False FreeDTM(WalkDTM); WalkDTM := LoadFallyRoadWalk(3); if FindDTM(WalkDTM, X, Y, MMX1, MMY1, MMX2, MMY2) then begin Mouse(X, Y, 3, 3, True); WriteLn('Walk Main 3. - Complete.'); FFlag(1); Result := True; end else if RadialRoadWalk(FindRoadColor, 306, 367, 59, 1, 1) then begin WriteLn('Walk Backup 3. - Complete.'); FFlag(1); end else Result := False; ClickLeft; end; function WalkToBank: boolean; var WalkDTM, BankDTM: integer; begin if FindColorTolerance(x, y, FindRoadColor, 567, 81, 719, 132, 0) then begin mouse(x, y, 4, 4, true); FFlag(0); end; WalkDTM := LoadFallyRoadWalk(4); if FindDTM(WalkDTM, X, Y, MMx1, MMy1, MMx2, MMy2) then begin Mouse(X, Y, 3, 3, True); WriteLn('Walk Main 4. - Complete.'); FFlag(0); Result := True; end else if RadialRoadWalk(FindFallyRoadColor, 214, 142, 45, 1, 1) then begin Writeln(' Walk Backup 4. - Complete.'); Result := True; end else Writeln(' Walk Backup 4. - Failed. Changing Player.'); Result := False; FreeDTM(WalkDTM); WalkDTM := LoadFallyRoadWalk(5); if FindDTM(WalkDTM, X, Y, MMx1, MMy1, MMx2, MMy2) then begin Mouse(X, Y, 3, 3, True); WriteLn('Walk Main 5. - Complete.'); FFlag(0); Result := True; end else if RadialRoadWalk(FindWaterColor, 201, 113, 53, -7, 1) then begin Writeln(' Walk Backup 5. - Complete.'); Result := True; end else Writeln(' Walk Backup 5. - Failed. Changing Player.'); Result := False; FreeDTM(WalkDTM); WalkDTM := LoadFallyRoadWalk(6); if FindDTM(WalkDTM, X, Y, MMx1, MMy1, MMx2, MMy2) then begin Mouse(X, Y, 3, 3, True); WriteLn('Walk Main 6. - Complete.'); FFlag(0); Result := True; end else if RadialRoadWalk(FindFallyRoadcolor, 232, 148, 49, 1, 1) then begin Writeln(' Walk Backup 6. - Complete.'); FFlag(0); Result := True; end else Writeln(' Walk Backup 6. - Failed. Changing Player.'); Result := False; FreeDTM(WalkDTM); BankDTM := DTMFromString('78DA635CC3C4C0A0CB8002FEFC61623002D28' + 'C40FC1F081837E05703028C1B816A7450D57CFDCA80AA66256135' + '00404F1005'); if FindDTM(BankDTM, X, Y, MMx1, MMy1, MMx2, MMy2) then begin Mouse(x, y + 10, 3, 2, true); FFlag(0); FreeDTM(BankDTM); end; end; function FindYewTreeBH: Boolean; begin repeat if FindObjTPA(xB,yB, 3116158, 10, 25, 35, 35, 3, 'Yew') then begin GetMousePos(xB,yB); GetColor(xBH,yBH); Result := True; Break; Exit; end; until (Result = True); end; function Chop: Boolean; var lol: integer; begin If FindYewTreeBH then Begin Writeln('Found yew, Clicked IT!'); end; end; Function YewThere:boolean; begin If FindColor(xBH, yBH, function FindMe: boolean; begin if not FindSymbolBox(x, y, 'Tree') then begin if FindSymbol(x, y, 'tree') then Mouse(x, y, 1, 1, true); FFlag(1); end; end; function GetFarmColour: boolean; var Farm, FarmColour: Integer; begin if not LoggedIn then Exit; Farm := BitmapFromString(2, 1, 'beNp79j/b1/AlAA5DA7g='); FarmColour := AutoColorThis(Farm, 255, 635, 6, 564, 80); WriteLn('Farm Colour: ' + IntToStr(FarmColour)); Result := True; if Farmcolour = 0 then Result := false; FreeBitmap(Farm); end; function YewLocation(Location: integer): boolean; begin case Location of 1: begin // Near Guards if FindColorTolerance(x, y, FindRoadColor, 553, 7, 650, 159, 0) then begin Writeln('We are on the Westest yew tree'); Result := true; RoadColor := 0; end else Result := false; end; 2: begin // In between Guards and Farm if FindColorTolerance(x, y, FindRoadColor, 656, 8, 725, 157, 0) then begin Writeln('We are at the middle tree'); Result := true; RoadColor := 0; end else Result := false; end; 3: begin // Near farm symbol if RoadColor = 0 then begin Writeln('At Very End Tree (Near Farm Symbol)'); Result := true; end else Result := false; end; end; end; function CheckPlace: boolean; begin if Yewlocation(1) then begin Writeln('1 done'); end else Writeln('1 Not done.'); if Yewlocation(2) then begin Writeln('2 done'); end else Writeln('2 Not done.'); if Yewlocation(3) then begin Writeln('3 done'); end else Writeln('3 Not done.'); end; procedure Setup; begin SetupSRL; ActivateClient; MakeCompass('S'); end; begin Setup; Repeat WalkToYews; repeat FindYewTreeBH; Until(InventFullBH); end.