Simba Code:
program Smithing;
{$i srl/srl.simba}
var
Q: Array [0..15] of Integer;
x,y,m,n,IronBar,BarWithAnvil,IronKnife,Make10sets,CBars:integer;
aFound: Extended;
procedure SetDTMs;
begin
Q[0]:= DTMFromString('mlwAAAHicY2dgYJjAzMAwBQlPQ8L7gfKTgLgLiJuAuAqIi4A4C4htDfkZ3r5lAOM/f5hQ2P+B8lw4MCMeDAUAnyQU+Q==');
Q[1]:= DTMFromString('mrAAAAHic42BgYFBlYmDQAGIVIFYGYnUgVkLCH4BqHgHxKyC+A8RvgfgNED8H4k9A7GZvz6CqqMhgaWzMYGdhwWBjZgamzQ0NGTwcHRhYgWrwYUYCGAYADDsN5A==');
IronBar:= BitmapFromString(10, 8, 'meJwzNDQ3xEAOjh4QhEcKiKSl5YE' +
'IqxRcFo7oIwt0Bi5ZiCMBzJwvBQ==');
BarWithAnvil:= BitmapFromString(88, 10, 'meJzlk+EOgCAIhH3/l7aa2QjOAz' +
'eLtRw/KAjuPletxynZp4Zl7F0t1q1ukcDBLg3KuAgsRPE5Dsr7KhQ' +
'vc5CL0jnIbyUHKAOWSH8xdnibJUMmC8G3gCXidzz23EssQMEDqRND' +
'IBlYhUYgB+Kd50QevCMCQVatowgHviJ417AtwNCXOsvBBfgfDipP5' +
'OC+kRyUZmUqzqH0PwLm9nEK9aMcNrQX6DQ=');
IronKnife:= BitmapFromString(20, 28, 'meJy90tsKQUEYxXFvsUUIOeTQds' +
'gxGxHa2OQsSd7/Kfxraq73mgvT3P5a3/pmEol/n3y+5Aar1YYbrNf' +
'9YrHiAJvNDtBhYL/V45bLNRV2u6N2ewBUQw3kqluyUA0FGksiW8pm' +
'CypkRSS6QUKxqVQmpu33JxaSCPS8pGT5DHwkCXLG4/nt/omiGzydz' +
'knWwNVqrw5soekrJR6PzzA80Zey8aGxu91lsznwRipkWix7lkItHA' +
'6nNJUgNbE0xVI2vj2dX8bysgwcH16ubywwCBaEStMaSy5Wmvbx+Bo' +
'7m63Vd7EzL5Zbqak9WBX+AFRRU6I=');
Make10sets:= BitmapFromString(85, 10, 'meJzFklEOgDAIQ73/pTF+uCyjdI' +
'Vh5GshUPuKZk9dU5nr+FJmsuv2Vlm2xcnX+BBzdBoT0EHGmHiCskm' +
'bCqo1/gMp/KXOlfX13/HhY/EDDSvDW2OzGrcd3ajWhFb9LaJ3RMER' +
'yvhKn3sodGBQqdxEfGU3FTvUWRR0Coi/DaoXn5jksUQKJ/hkQDdPB' +
'EWFaOUc/wqy5W8oCwfghxTD0PNW04/d3Z5T1w==');
end;
Procedure CountBarKnives;
begin
CBars:= CountItemsIn('inv', 'bmp', IronBar, [10]);
writeln('We found ' + toStr(CBars) + ' iron bars');
end;
procedure FreeD;
begin
FreeDTM(Q[0]);
FreeDTM(Q[1]);
FreeBitMap(IronBar);
FreeBitMap(BarWithAnvil);
FreeBitMap(IronKnife);
FreeBitMap(Make10sets);
end;
procedure BankToAnvil;
begin
if FindDTMRotated(Q[0], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
MoveMouse(x,y);
wait(200);
ClickMouse(x,y,1);
repeat
Wait(200);
Until(FindDTMRotated(Q[1], x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, aFound))
end;
end;
procedure Smith;
begin
if FindDTMRotated(Q[1], x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, aFound) and FindBitMapToleranceIn(IronBar,m,n,MIX1,MIY1,MIX2,MIY2,10) then
begin
MoveMouse(m,n);
Wait(300);
ClickMouse(m,n,1);
Wait(300);
MoveMouse(x,y);
Wait(300);
ClickMouse(x,y,0);
Wait(500);
if FindBitMapToleranceIn(BarWithAnvil,x,y,MSX1,MSY1,MSX2,MSY2,10)then
begin
MoveMouse(x,y);
Wait(300);
ClickMouse(x,y,1);
Wait(500);
repeat
Wait(100);
Until(FindColorTolerance(x,y,65535,159,31,206,49,3));
end;
if FindBitMapToleranceIn(IronKnife,x,y,MSX1,MSY1,MSX2,MSY2,10)then
begin
MoveMouse(x,y);
Wait(300);
Clickmouse(x,y,0);
wait(400);
if FindBitMapToleranceIn(Make10sets,x,y,MSX1,MSY1,MSX2,MSY2,10)then
begin
MoveMouse(x,y);
Wait(300);
Clickmouse(x,y,1);
wait(400);
end;
end;
end;
end;
procedure AnvilToBank;
begin
end;
procedure Banking;
begin
end;
begin
SetDTMs
BankToAnvil
Smith
CountBarKnives
FreeD
end.