Решил сделать такой скрипт :
есть булк ордер в паке, узнаётся кол-во итемов, куётся и добавлется в булк ордер (допустим мы заведомо знаем что это например катаны, пока что) , если предмет не эксепт - переплавляется
Проблема: Не понятно себя ведут гампы, у молотка свой гамп , у булк ордера свой. Как только переплавяется итем, то перестаёт срабатывать гамп на добавление в булк ордер, а вместо него срабатывает гамп молотка со значением которое в гампе булк ордер.
привожу свой код:
Code: Select all
Program New;
const
instrum = $13E3; // молтоток (тип)
bulk_type = $2258; // bulk order (тип)
procedure craft_item (cat : integer; item : integer);  // куём нужный итем (передаётся  гамп категории и гамп итема)
begin
  waitgump(IntToStr(cat));
  UseType(instrum, 0);
  wait(500);
  CloseSimpleGump(cat);
  waitgump(IntToStr(item));
  wait(1500);
  CloseSimpleGump(item);
end;
procedure selmet_item (item_type : cardinal); // добавляем эксепт в булк ордер если не эксепт - плавим
var
str : string;
begin
str := GetCliloc(FindType(item_type,backpack));
if (FindType(item_type, backpack) <> 0) And (pos('exceptional',str)=0)  then 
   begin
    uosay('плавлю');
    waitgump('14');
    WaitTargetObject(FindType(item_type,backpack));
    UseObject(FindType(instrum,backpack));
    wait(2000);
    CloseSimpleGump(14);
   //ignore(FindItem); 
   end;
if (FindType(item_type, backpack) <> 0) And (pos('exceptional',str)>0)  then
   begin
    uosay('добавляю');
    waitgump('2');
    UseObject(FindType(bulk_type,backpack));
    WaitTargetObject(FindType(item_type,backpack));
    wait(2000);
    CloseSimpleGump(2);
   end;    
end;  
var
str,count : string;
fnd,i : integer;
begin
// узнаём из клилока сколько вещей в bulk order
str := GetCliloc(FindType(bulk_type,backpack)); fnd := pos('make:',str); count := Copy(str,fnd+6,2); fnd := StrToInt(count);
for i :=1 to fnd do
  begin
   craft_item(22,100);
   wait(1000);
   selmet_item($13FF);
  end;
   
end.



