Page 1 of 1

Нужна помощ=)

Posted: 19.04.2008 1:57
by proZak
Собствено пыталсо заделать макросик на переработку хлопка в нитки с ниток в рулоны а рулоны резать на тряпки но шото нехочет роботать помогите кто может, сам скриптик:

Code: Select all

Program cut_triapki;
{ 
Описание:
1
2
3
}
// v.2.01b (c) proZak 

var stime : TDateTime; 
q,c : Integer; 

Const 
CottonsType = $0DF9; {Шерсть} 
SpoolsType = $0FA0; {Катушки} 
BoltsType = $0F95; {Рулоны} 
ClothsType = $1766; {Тряпки}
WheelID = $631BE616; {Колесо} 
LoomID = $631BB8B9;  {Прялка} 


{$Include 'all.inc'} 


procedure MakeSpool; 
begin 
FindType(CottonsType, BackPack); 
q := FindQuantity; 
while q >= 0 do 
    begin 
    checksave; 
    WaitConnection(5000); 
    stime := Now; 
   useobject(FindType($0DF9,backpack));
   WaitForTarget(500);
       {указать айди колеса.}
   TargetToObject($631BE616);
    WaitJournalLine(stime, 'You use some thread and create a bolt of cloth', 20000); 
    wait(200); 
    FindType(CottonsType, BackPack); 
    q := FindQuantity; 
    end; 
end; 



procedure MakeBolt; 
begin 
FindType(SpoolsType, BackPack); 
q := FindQuantity; 
while q >= 5 do 
    begin 
    checksave; 
    WaitConnection(5000); 
    stime := Now; 
   useobject(FindType($0FA0,backpack));
   WaitForTarget(500);
       {указать айди колеса.}
   TargetToObject($631BB8B9);
    WaitJournalLine(stime, 'You use some thread and create a bolt of cloth', 20000); 
    wait(200); 
    FindType(SpoolsType, BackPack); 
    q := FindQuantity; 
    end; 
end; 



procedure MakeCloth;

VAR 
  Tryapki: Cardinal; 
 
begin
  FindType($0F95, backpack); 
      while FindQuantity > 0 do 
      begin 
        if FindType($0F95, backpack) = -1 then useobject(backpack); 
        Tryapki := finditem; 
        FindType($0F9E, backpack); 
        WaitTargetObject(Tryapki); 
        UseObject(finditem); 
        Wait(3100); 
        FindType($0F95, backpack); 
      end;
end; 
       

BEGIN 
  AddToSystemJournal('Запускаю макрос...'); 
  Wait(1000); 
  UOSay(Chr(39)+'resend'); 
  Wait(5000); 
  UseObject(Backpack); 
  Wait(1000);
  AddToSystemJournal('Макрос готов к работе.'); 
  MakeSpool; 
  if FindType($0DF9, backpack) = 0 then
   begin
   MakeBolt;
   FindType(SpoolsType, BackPack); 
   c := FindQuantity; 
   if c < 6 then 
    begin 
    MakeCloth;
    end;
   end;
End.
вот шо пишет :

Code: Select all

2:59:33 [Slade]: Character Elvira  Connected.
2:59:49 [Slade]: UseObject error: Object not finded.
2:59:51 [Slade]: Character Elvira  Disconnected.
Собствено я так понял он не может наити прялку для юза хлопка на нево ток непоиму почему стою прямо перед колесом(прялкои) и аиди вроде правельно вписал но чевото неочет юзать=)

Posted: 19.04.2008 10:31
by -=JoKeR=-
Скрипт кривоват немного. Напиши алгоритм всей переработки я попробую написать тебе.

Posted: 19.04.2008 13:35
by grundick
Чар стоит на улице или в доме? Если не на земле, попробуй расширить диапозон вертикального поиска командой FindVertical:= ...

Posted: 19.04.2008 14:41
by proZak
grundick wrote:Чар стоит на улице или в доме? Если не на земле, попробуй расширить диапозон вертикального поиска командой FindVertical:= ...
В доме=)

Posted: 19.04.2008 15:33
by grundick
Тогда на закладке main посмотри координату Z чара и расширь фандвертикал до этого значения.По умолчанию FindVertical:=2