Results 1 to 3 of 3

Thread: How Are These DTM's Not Being Freed....

  1. #1
    Join Date
    Feb 2011
    Location
    Earth
    Posts
    1,784
    Mentioned
    1 Post(s)
    Quoted
    0 Post(s)

    Default How Are These DTM's Not Being Freed....

    Well they keep building up in memory, and I have no idea how they are not being freed....

    The only place I use them.
    Simba Code:
    function AttackAv:Boolean;
    var
      x,y,Con:Integer;
      aFound:Extended;
    begin
      if not LoggedIn then
        Exit;
      Av_Top:=DTMFromString('mLgAAAHicY2JgYOgH4l4gbgfifCCuqiplCHbTY+ACskGYEYoZGACA7ARb');
      Av_Back:=DTMFromString('mQwAAAHicY2ZgYJjAyMDQCMRLgbgQyM8G4iwgXrduGUN5hj9DQoQXAz+QD8OMSBgIADlzB2U=');
      Av_Wing:=DTMFromString('mWAAAAHicY2FgYFBjZGBQB2J7IFYB4kSgWBAQZwFxKRCHBjgxFKZ5M1QWxjIkhJox8APFkDEjGgYBAF7nBsY=');
      SetDTMName(Av_Top,'Av Top');
      SetDTMName(Av_Back,'Av Back');
      SetDTMName(Av_Wing,'Av Wing');

      if FindDTMRotated(Av_Top,x,y,MSX1,MSY1,MSX2,MSY2,-Pi,Pi,Pi/30,aFound) or
      FindDTMRotated(Av_Back,x,y,MSX1,MSY1,MSX2,MSY2,-Pi,Pi,Pi/30,aFound) or
      FindDTMRotated(Av_Wing,x,y,MSX1,MSY1,MSX2,MSY2,-Pi,Pi,Pi/30,aFound) then
      begin
        HumanMMouse(x,y,4,4);
        Mouse(x,y,0,0,false);
        if ChooseOption('ians') then
          if DidRedClick then
          begin
            Writeln('Found Av');
            Result:=True;
            Miss:=False;
            FreeDTM(Av_Top);
            FreeDTM(Av_Back);
            FreeDTM(Av_Wing);
            Exit;
          end;
          if DidYellowClick then
            Writeln('missed av');
      end else
      begin
        Result:=False;
        FreeDTM(Av_Top);
      FreeDTM(Av_Back);
      FreeDTM(Av_Wing);
        Inc(Con);
        if (Con = 1) then
          MakeCompass(135);
        if (Con > 1) then
        begin
          Con:=0;
          MakeCompass(310);
        end;
        Exit;
      end;
    end;

    After ~40 minutes of running I get

    Progress Report:
    =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
    =+=+=+ Auto Aviansie Pro 1.0 by PatDuffy
    =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
    Time Running: 49 Minutes and 9 Seconds
    Cash Gained: 163200
    Cash/Hour: 195840
    Range Exp Gained: 18300
    Range/Hour: 21960
    SRL_Stats: Wrong info for variable
    Successfully executed.
    The following DTMs were not freed: [Av Wing, Av Back, Av Top, Av Back, Av Wing, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Top, Av Back, Av Wing, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Top, Av Back, Av Wing, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Top, Av Back, Av Wing, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Back, Av Wing, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Top, Av Back, Av Top, Av Back, Av Wing, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Top, Av Back, Av Wing, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Top, Av Back, Av Wing, Av Top, Av Back, Av Wing, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Top, Av Back, Av Wing, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Av Top, Av Back, Av Wing, Av Wing, Av Back, Av Top, Av Top, Av Back, Av Wing, Av Wing, Av Back, Av Top, Av Wing, Av Back, Av Top, Monk, Sword, Peach]


    There is also a spoiler for my new script hidden above that spam.

    Any help would be appreciated....

    Currently: Working on Defending&Attacking in my Castle-Wars Script
    Project Rebuild: 90M/170M

  2. #2
    Join Date
    Jan 2008
    Location
    10° north of Hell
    Posts
    2,035
    Mentioned
    65 Post(s)
    Quoted
    164 Post(s)

    Default

    Use a try..finally and they should all ways be freed. (unless there is an exception inside the try.)

    Simba Code:
    function AttackAv: boolean;
    var
      x, y, Con: integer;
      aFound: extended;
    begin
      Result := False;
      if (not (LoggedIn())) then
        Exit;

      Av_Top := DTMFromString('mLgAAAHicY2JgYOgH4l4gbgfifCCuqiplCHbTY+ACskGYEYoZGACA7ARb');
      Av_Back := DTMFromString('mQwAAAHicY2ZgYJjAyMDQCMRLgbgQyM8G4iwgXrduGUN5hj9DQoQXAz+QD8OMSBgIADlzB2U=');
      Av_Wing := DTMFromString('mWAAAAHicY2FgYFBjZGBQB2J7IFYB4kSgWBAQZwFxKRCHBjgxFKZ5M1QWxjIkhJox8APFkDEjGgYBAF7nBsY=');

      try
        SetDTMName(Av_Top, 'Av Top');
        SetDTMName(Av_Back, 'Av Back');
        SetDTMName(Av_Wing, 'Av Wing');

        if (FindDTMRotated(Av_Top, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi / 30, aFound) or
            FindDTMRotated(Av_Back, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi / 30, aFound) or
            FindDTMRotated(Av_Wing, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi / 30, aFound)) then
        begin
          HumanMMouse(x, y, 4, 4);
          Mouse(x, y, 0, 0, false);
          if (ChooseOption('ians')) then
            if (DidRedClick()) then
            begin
              Writeln('Found Av');
              Result := True;
              Miss := False;
            end else
              if (DidYellowClick) then
                Writeln('Missed av');
        end else
        begin
          Inc(Con);
          if (Con = 1) then
            MakeCompass(135);
          if (Con > 1) then
          begin
            Con := 0;
            MakeCompass(310);
          end;
        end;
      finally
        FreeDTM(Av_Top);
        FreeDTM(Av_Back);
        FreeDTM(Av_Wing);
      end;
    end;

    Dg's Small Procedures | IRC Quotes
    Thank Wishlah for my nice new avatar!
    Quote Originally Posted by IRC
    [22:12:05] <Dgby714> Im agnostic
    [22:12:36] <Blumblebee> :O ...you can read minds

  3. #3
    Join Date
    Feb 2011
    Location
    Earth
    Posts
    1,784
    Mentioned
    1 Post(s)
    Quoted
    0 Post(s)

    Default

    I didn't even think of using a "Try" there.....thanks!

    Currently: Working on Defending&Attacking in my Castle-Wars Script
    Project Rebuild: 90M/170M

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
  •