Page 1 of 1

Скрипт на сортировку карт по лвлам.

Posted: 16.04.2012 12:42
by soulen
Доброго времени суток. Написал вот такой вот простенький скриптик:

Code: Select all

program sort;
{$Include 'all.inc'}
const
tmap = $14ED ;
tomap = $14EB ; 
lvl4 = $5DD0037D ;
lvl5 = $5DDB0C46 ;
trash = $6208561A ;
mysor = $61ED10F7 ;
Sunduk_With_Maps =  $5DDA79BA ;

var
stime : TDateTime; 
MapID : Cardinal;


procedure Get_Map;
begin
   FindType(TOmap,Backpack);
   if FindCount=0 then
     begin
       UseObject(Sunduk_With_Maps);
       wait(1000);
       FindType(TOMap,Sunduk_With_Maps);
       if FindCount>0 then
         begin
           MoveItem(FindItem,1,Backpack,0,0,0);
           wait(1000);
           UseObject(FindItem);
           wait(1000);
         end;
     end;
   MapID:=FindType(TOmap,Backpack);
end;


procedure checkmap;
begin
 Get_Map;
  ClickOnObject (MapID);
  wait (500);
   if Pos ('lvl 5', GetToolTip(MapID)) <> 1  then
    MoveItem (MapID,FindQuantity,lvl5,0,0,0)
     else        
      ClickOnObject (MapID);
       if GetToolTip(MapID) ='lvl4' then
        MoveItem (MapID,1,lvl4,0,0,0)   
          else 
           ClickOnObject (MapID);
            if GetToolTip(MapID) ='lvl3' then
             MoveItem (MapID,1,mysor,0,0,0)  
              else 
               ClickOnObject (MapID);
                if GetToolTip(MapID) ='lvl2' then
                 MoveItem (MapID,1,mysor,0,0,0)  
                  else 
                   ClickOnObject (MapID);
                    if GetToolTip(MapID) ='lvl1' then
                     MoveItem (MapID,1,mysor,0,0,0) 
end;
 

procedure opening;
begin
 repeat 
  checkmap;
  findtype (tmap,backpack);
  if findcount > 0 then
   begin
   checksave;
   useobject (Findtype($14ED,backpack));
   wait(200);
   end;
  until (false);
 end;


begin
 repeat
  opening;
 until (false);
End.
Собственно проблема в следующем, он у меня берет карту из сундука (хотя изначально хотелось чтоб он прям в паке открывал и сортировал) смотрит ее и кладет в сумку для 5 лвла, потом в сумку для 4 лвла потом перекладывает в мусор, независимо от лвла карты((( Перепробовал кучу вариантов... Либо вообще не кладет, либо перекидывает по сумкам( Помогите написать проверку выполнения условия.

Re: Скрипт на сортировку карт по лвлам.

Posted: 16.04.2012 15:58
by MuDaCk
То, что бросается в глаза:

Code: Select all

            if GetToolTip(MapID) ='lvl3' then
             MoveItem (MapID,1,mysor,0,0,0)  
              else 
               ClickOnObject (MapID);
                if GetToolTip(MapID) ='lvl2' then
                 MoveItem (MapID,1,mysor,0,0,0)  
                  else 
                   ClickOnObject (MapID);
                    if GetToolTip(MapID) ='lvl1' then
                     MoveItem (MapID,1,mysor,0,0,0)
Подозреваю что майсор это мусорный контейнер... Тогда что такое trash...

Re: Скрипт на сортировку карт по лвлам.

Posted: 16.04.2012 23:51
by soulen
да это не суть важно... я когда писал, сначала выкидывал сразу в треш... так он собака все карты 5 лвла повыкидывал))

Re: Скрипт на сортировку карт по лвлам.

Posted: 17.04.2012 8:17
by MuDaCk
Ты пробовал в сисжурнал выводить

Code: Select all

GetToolTip(MapID)
?

Re: Скрипт на сортировку карт по лвлам.

Posted: 18.04.2012 6:01
by soulen
не совсем понял, зачем в сисжурнал выводить?

Re: Скрипт на сортировку карт по лвлам.

Posted: 18.04.2012 7:35
by MuDaCk
Чтобы узнать это весь текст или только часть

Code: Select all

GetToolTip(MapID) ='lvl1' 
Если это только часть, то попробуй BMsearch