нужна помощь в сортировке.
хотел сделать, чтоб выгружалась руда в отдельные сумки, вышка - в одну сумку, обычная - в другую, внутри основного сундука.
казалось бы все тривиально, но руду бросает под ноги.
пытаюсь кликнуть по руде, но, видимо, не находит ее, клика не видно в журнале, хотя насколько я вижу, в коде все правильно
сумки перед этим все открываю как нужно..
Code: Select all
// Переместим руду
tmpcnt := 0;
repeat
tmpid := Findtype(Ore1,backpack);
if tmpid = 0 then tmpid := Findtype(Ore2,backpack);
if tmpid = 0 then tmpid := Findtype(Ore3,backpack);
if tmpid = 0 then tmpid := Findtype(Ore4,backpack);
if tmpid = 0 then break;
tmpcnt := tmpcnt + 1;
if tmpcnt > 15 then
begin
addtosystemjournal('Ошибка: не могу переместить руду!');
Result := false;
exit;
ctime:=now;
ClickOnObject(tmpid);
if InJournalBetweenTimes('Gorgan|Dragon|Kynite|Elvin|Obsidian|Plutonium|Sand Rock|Aqua|Eldar|Acid|Vulcan',ctime,now) <> -1 then tmp_sunduk:=Sunduk_viha
else tmp_sunduk:=Sunduk_ruda;
tmpstack := FindtypeEx(Ore1,GetColor(tmpid),tmp_sunduk,False);
end;
repeat
if tmpstack = 0 then tmpstack := FindtypeEx(Ore2,GetColor(tmpid),tmp_sunduk,False);
if tmpstack = 0 then tmpstack := FindtypeEx(Ore3,GetColor(tmpid),tmp_sunduk,False);
if tmpstack = 0 then tmpstack := FindtypeEx(Ore4,GetColor(tmpid),tmp_sunduk,False);
if GetQuantity(tmpstack) >= 65000 then Ignore(tmpstack);
until (tmpstack = 0) OR (GetQuantity(tmpstack) < 65000);
// Если не найден в сундуке - тогда просто в контейнер
if tmpstack = 0 then tmpstack := tmp_sunduk;
waitconnection(1000);
MoveItem(tmpid,GetQuantity(tmpid),tmpstack,0,0,0);
wait(1000);
CheckState;
until tmpid = 0;