Results 1 to 2 of 2

Thread: quick question

  1. #1
    Join Date
    Feb 2009
    Posts
    2,155
    Mentioned
    4 Post(s)
    Quoted
    42 Post(s)

    Default quick question

    is there any code that will make this search for the ddtm in only the top half of the mini map

    Code:
    {.include srl/srl.scar}
    
    var
      x,y : integer;
    
    function SetDDTM(ddtm : integer): Integer;
    var
      acroad : integer;
      dtmMainPoint: TDTMPointDef;
      dtmSubPoints: Array [0..4] of TDTMPointDef;
      TempTDTM: TDTM;
    begin
        case DDTM of
      1: begin
      acroad := findvarrockroadcolor;
      dtmMainPoint.x := 784;
      dtmMainPoint.y := 196;
      dtmMainPoint.AreaSize := 0;
      dtmMainPoint.AreaShape := 0;
      dtmMainPoint.Color := acroad;
      dtmMainPoint.Tolerance := 0;
    
      dtmSubPoints[0].x := 784;
      dtmSubPoints[0].y := 196;
      dtmSubPoints[0].AreaSize := 0;
      dtmSubPoints[0].AreaShape := 0;
      dtmSubPoints[0].Color := acroad;
      dtmSubPoints[0].Tolerance := 0;
    
      dtmSubPoints[1].x := 788;
      dtmSubPoints[1].y := 196;
      dtmSubPoints[1].AreaSize := 0;
      dtmSubPoints[1].AreaShape := 0;
      dtmSubPoints[1].Color := acroad;
      dtmSubPoints[1].Tolerance := 0;
    
      dtmSubPoints[2].x := 788;
      dtmSubPoints[2].y := 205;
      dtmSubPoints[2].AreaSize := 0;
      dtmSubPoints[2].AreaShape := 0;
      dtmSubPoints[2].Color := acroad;
      dtmSubPoints[2].Tolerance := 0;
    
      dtmSubPoints[3].x := 783;
      dtmSubPoints[3].y := 204;
      dtmSubPoints[3].AreaSize := 0;
      dtmSubPoints[3].AreaShape := 0;
      dtmSubPoints[3].Color := acroad;
      dtmSubPoints[3].Tolerance := 0;
    
      dtmSubPoints[4].x := 788;
      dtmSubPoints[4].y := 200;
      dtmSubPoints[4].AreaSize := 0;
      dtmSubPoints[4].AreaShape := 0;
      dtmSubPoints[4].Color := acroad;
      dtmSubPoints[4].Tolerance := 0;
    
      TempTDTM.MainPoint := dtmMainPoint;
      TempTDTM.SubPoints := dtmSubPoints;
      Result := AddDTM(TempTDTM);
    end;
    2: begin
      dtmMainPoint.x := 627;
      dtmMainPoint.y := 145;
      dtmMainPoint.AreaSize := 0;
      dtmMainPoint.AreaShape := 0;
      dtmMainPoint.Color := 4209723;
      dtmMainPoint.Tolerance := 0;
    
      dtmSubPoints[0].x := 627;
      dtmSubPoints[0].y := 145;
      dtmSubPoints[0].AreaSize := 0;
      dtmSubPoints[0].AreaShape := 0;
      dtmSubPoints[0].Color := 4209723;
      dtmSubPoints[0].Tolerance := 0;
    
      dtmSubPoints[1].x := 629;
      dtmSubPoints[1].y := 139;
      dtmSubPoints[1].AreaSize := 0;
      dtmSubPoints[1].AreaShape := 0;
      dtmSubPoints[1].Color := 4607832;
      dtmSubPoints[1].Tolerance := 0;
    
      dtmSubPoints[2].x := 634;
      dtmSubPoints[2].y := 146;
      dtmSubPoints[2].AreaSize := 0;
      dtmSubPoints[2].AreaShape := 0;
      dtmSubPoints[2].Color := 4217695;
      dtmSubPoints[2].Tolerance := 0;
    
      dtmSubPoints[3].x := 629;
      dtmSubPoints[3].y := 152;
      dtmSubPoints[3].AreaSize := 0;
      dtmSubPoints[3].AreaShape := 0;
      dtmSubPoints[3].Color := 3816255;
      dtmSubPoints[3].Tolerance := 0;
    
      dtmSubPoints[4].x := 621;
      dtmSubPoints[4].y := 148;
      dtmSubPoints[4].AreaSize := 0;
      dtmSubPoints[4].AreaShape := 0;
      dtmSubPoints[4].Color := 2962232;
      dtmSubPoints[4].Tolerance := 0;
    
      TempTDTM.MainPoint := dtmMainPoint;
      TempTDTM.SubPoints := dtmSubPoints;
      Result := AddDTM(TempTDTM);
    end;
    end;
    end;
    
    function WalkTobank: Boolean;
    var
      WalkDTM, rockdtm: integer;
    begin
      WalkDTM := setddtm(1);
      RockDTM := setddtm(2);
      repeat
      if FindDTM(WalkDTM, X, Y, MMX1, MMY1, MMX2, MMY2) then
      begin
        makecompass('n')
        Mouse(X, Y, 8, 8, True);
        WriteLn('Main walker worked.');
        FFlag(0);
        Result := True;
      end else
        if RadialWalk(FindvarrockRoadColor, 0, 90, 55, 1, 1) then
        begin
          Writeln(' Back-Up worked.');
          Result := True;
        begin
          Result := False;
          Writeln(' Failed. Logging Out. Next Player');
          FreeDTM(WalkDTM);
          if not (Result) then
          begin
            Logout;
          end;
        end;
      end;
          until DTMRotated(rockdtm, x, y, MMX1, MMY1, MMX2, MMY2)
        freedtm(walkdtm);
        freedtm(rockdtm);
    end;
    
    
    
    begin
      setupsrl;
      activateclient;
      walktobank;
    end.
    EDIT: i only need the first on to lookk in the top half of the mini map

  2. #2
    Join Date
    Feb 2007
    Posts
    3,616
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Just do:

    if FindDTM(WalkDTM, X, Y, MMX1, MMY1, MMX2, MMCY) then

    MMCY is the center of the minimap, so if you use that as the y coordinate but the far right as the x2 still, it will only search the top half.
    Last edited by JAD; 05-24-2009 at 10:48 AM.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •