The Wiki for Tale 4 is in read-only mode and is available for archival and reference purposes only. Please visit the current Tale 11 Wiki in the meantime.
If you have any issues with this Wiki, please post in #wiki-editing on Discord or contact Brad in-game.
User:Kinslayer/Macros/KinsBarrelMonkey
From A Tale in the Desert
< User:Kinslayer | Macros
Jump to navigationJump to searchThis is my Barrel Vice macro for SCAR Divi. If you like this macro, or have any problems, let me know! I love feedback.
TODO:
- Seriously clean up the code
- Add a GUI for options/debug/info
- Add support for multiple barrel vices running at once.
{.Script Info:
# ScriptName = Kin's Barrel Monkey
# Author = Kinslayer
# Description = Barrel Vice Macro
# Version = 0.1
# Date = 9/4/2009
# Comments = [email protected]
# Ingame: Kinslayer
# Newest version available at http://www.atitd.org/wiki/tale4/User:Kinslayer/Macros
# Instruction = Pin Barrel vice window anywhere, have all materials you need on you.
# If barrel has been started already, only wood is needed, otherwise
make sure you have straps and boards as well. Try to have 100+ wood
at all times.
/Script Info}
program BarrelMonkey;
//---------
//Settings
//---------
Const
//Amount of time in milleseconds to wait before rescanning
//If in doubt, leave this alone.
CheckTime = 200;
//This will track the Barrel vice window, so you can move it around
//But it uses extra CPU
//false = off (Default)
//True = on
UseActiveScan = False;
//This tells the script whether to add a bundle at once when starting,
//to decrease the amount used overall. You can disable this if you
//Already have fuel in the barrel vice when starting the script
//(Eg. You had to restart the script) Otherwise, leave this on.
UseFastlane = True;
//At what flame height 2 wood will not be added.
MaxFlameHeight = 90;
var
Fuel: Integer;
Fuelx: Integer;
Fuely: Integer;
Flame: Integer;
Flamex: Integer;
Flamey:Integer;
Heat: Integer;
Heatx: Integer;
Heaty:Integer;
Progress: Integer;
Progressx: Integer;
Progressy:Integer;
Stoke: Integer;
Stokex: Integer;
Stokey:Integer;
Tick: Integer;
RedTick: Integer;
NoWood: Integer;
MakeBarrel: Integer;
MakeBarrelx: Integer;
MakeBarrely: Integer;
Ticks: Integer;
Stop: Boolean;
i: Integer;
LastAction: String;
SaveX: Integer;
SaveY: Integer;
AlmostDone: Boolean;
WoodUsed: Integer;
procedure LoadMasks;
begin
Fuel := BitmapFromString(24, 9, 'beNpdUUty00AQ9XEgsCMklI8B4' +
'RAhqwSKHRU2UBwhqVCxPpY8kiJbSYBDkFilz8zIssuSNfqMZVucgR' +
'45K09NTfXn9evuN53OzuFEX0VmGer1xEoeegtXLbBRYlQEehlq6Vh' +
'JHqWKoNzXODUBnwfa7G9vMVbBBkBNLWBgvlpTtJqYYK9ndvrYy1wF' +
'kGXYr7DGico8OR1fl0TLfXVJkajFeupK4ILNPCi3AAw863gEkTqy/' +
'qX3qauwYABuRUzo3n29d3r87vDVsxvpaw4TEqNNWTk2t7vknrSOjC' +
'KQC1/mpC+yWGuSEczD2kZFoJ19eDuUz6GvfvH5zf7zzFczX9nulbW' +
'YnbPEIsux3MyNbHyV+5KgDcVbU5W5V+nDpSj3r8s2yLyfCwGTRbsQ' +
'lVhjngTyruKbVrF+k9xlrlxRC9z1zNlpV1F7GdmCBxsFscAVVQRVV' +
'M99Bf5lM78X81CrWfwGfj4ZCp42uJqO6tjOCaqnt8BftjqzcAB21W' +
'oFGoL44kfoYDMfdg/2htKXJnFAjY8nR4Ihtj6dvB8p55zqLFC7By8' +
'4RTxC7WAwA3rSJHKAClbjkV3Hzq3+DZDblKN/h3eT/GrSP93Dl9vg' +
'HfpRTx24TwtOnM5/X2hroA==');
Flame := BitmapFromString(33, 9, 'beNplkuuK00AUx/s4ovvNS3Ef' +
'QhDW9fIGWkHcVUERFVF2P/gEgrht2jSZNJe2u7Lr+gpC2yQzuZg0S' +
'Zt7UvoInpnKfliHYfjz58w5c35zGo1LK8V8YYkgYqO3mHHRtJ0Y3a' +
'XeXs64DPdLW8wwXzpyOOFik88sofbVOhiVrpxhIYIYa1C6SukMEiy' +
'kZADZEtyDbPNJd2kKsBOMUiLmFgJzMesGEyjBJZiPjW5uS4Wj1L6W' +
'4H5uSdGES7GUElR5ShUMa3+YEyGadlIila5a+RoItkWoBdn+/O4uD' +
'DGm+WUa4yhgRno/xvJFd2r7Y25rIPZb9zaO0v6033qw0aP+YW4rC0' +
'O4ffPaq2ePtptb0tH7BEMv4iYgmvWg/YwImQVVUGlLFJQpxiaCvuD' +
'90rfX4FSOykrsFLYifH3D9P3KOz5GX0CXzuj5k12VO1iH5xp/2Lxx' +
'dWkOFjrf+G9BwvV8CCIjCCoCbUCRE4pu5dGmMqtf+wr8EYVpcKU7q' +
'HyFfSLHbgmVKxXskanZARNiQAczFJNhao0SDKDUdfgTzCVW5PbnF0' +
'8fXlSvwx9wFs649k/DCSWwwFo9P11Fv2jXevfSawt3nLuj2KJ4gyk' +
'X6TyQTLC0xGjlj2kJEzEUuxmwwqyL4ORfifA8mFInMtVqflrOz0An' +
'BhsSXciwlBE5mPZSouXeSWpTJuG0HekcHTnSB1ArBgrGBk756G2Ou' +
'Zetu6DXAfUrT4UN38dGokfnx2NgMdpr7SidD3AxMYXm9Svw3QV7Le' +
'uiBxMVGighcu7ABFI/tTSNP9gE7D2+Q0Exv/KPS28czRCDqRbeeB2' +
'ese40ILB9a2tzBX1/B8OZu3LjL8Xl8kc=');
Heat := BitmapFromString(26, 9, 'beNp1UduK1EAQzd/4oPgkXtbvE' +
'NQX/QAVkV1RHwR3QRf0F5TVcTLXTDLJJJMZXcFPWHV7kg6d+066O5' +
'0h8wdWJyoiWIRQdbrqVNUpRQErA6tO3SpxqtguVjogInK29KuI5iJ' +
'e0MDmgS2i5SY7FrFbZ5+rxD5DwzXqZd86kLxG4wIbhaczYkPI/YEI' +
'RgXqsFWXom7Dr9WFWxIDCplvUE8TsQU+IJvUFqGen3YZ1rMfMvkM9' +
'Qt/DN8ajSBk/ohjvUB9inoUfZT8WIfanSsXHj+8vXP5vPZhH0IRmc' +
'pv0zsHIpwqfxnDRuts0kWdH9fZUnYPJVhF7tPdu7PhmypxDfUV0ML' +
'K4FehXWcLc3Ao1SAT6hnNphonFgtmyn+MB7LvNl+K2K6SuUQIbOpw' +
'bNSp0w5ZkmmOhg0baDgB3WhDWHgmDCPITBBLNDwcm//wg9SG+nL33' +
's0/iAjnhS/Tsu9dUIljizZhibUq0DdEr6OpIEazheTcRCaEfDXIT9' +
'61suw9uAV3B2Xka7Jg2Go3pagPx2JYVrGVVuIJ88YV0bkn71L62t7' +
'9G6a6L4IJnObapXPwl+K/f17iETyBT1e9ogEHb5+tT9X05KidGdas' +
'008idLb5F+gokdCpk+X1qxfbhPHRCxDHHLxuwyeP7jRK2pw4hnr4S' +
'wpPU34CX4yHLg==');
Progress := BitmapFromString(47, 11, 'beNpVVGuT02QU5u8siHzZ' +
'hb34J3RUdHR0/MbIjCA7rHxAQWXRD46OnxgvAwvZpm2SNpduS7vl4' +
'sogIAvD9pLrNkmTtLlnuusf8HnTlcFM5p33nLx5zznPeZ6jVQ+98p' +
'w/86GnSJ7M211m2GVGcjXURLfHxuZGqIuBIaR2MzHr6bCROe09737' +
'qbIZaNbVuT5wWPmVuOx22E7OxHz7aj57sh4/3gofp8O7E+yMyW5m7' +
'lbn3cSC1626v5MkMfkzNxkgRcHk4qEdmEzmM1FpgSKnTXpo/ujB3x' +
'JPZ3eeUtVN0ZW6ssPZOwVe4QK2M+6WxzPoKGw9qkVlH0MQSR731UO' +
'Myu5YMqrFeiTU2VJlkIGZOfeK29vx2MsDNLZyfuHcyZzNzkFXL7eH' +
'Ocmo30mELaSR2K7aa0aCOZGLnz8DcnPiPM28LptevYHVkAWtg1EeK' +
'tHji6BS6xfljgSaiQJy8cO6TA+fcEazpkNSVmiLWzLkz8e6+sXDsw' +
'rmPFo+/JtHf+UqFX786PY+S3W6h/PvK1JyfOxwNxNAQp6av150+G+' +
'i10NiAOezQWKlrK0636PXLZ0+9xa19BXC8fomnriyffjtU2fOfvSf' +
'Qq6m9MZKL3NqXOJ8MeKwS/XWsc8mgdmH54zr30553Vyp+vzT/eqCT' +
'myUGnq169eexJsHkqW8y9x5HXd0LHqTD+9Nk0L5hpzBWK/OzM8un3' +
'3E7FJzqX784HQp4Yj+WS4HKen3aV0lEtCyPXsucBpIZyyT5xCRIhj' +
'Ll92+GCvHEejHRy7HGkBA94hHoK2hx5t52+yWYqCLSKoEuTLw7iXU' +
'bmL9K4LOfnvQ1yXqxnrepFlttgEbAd++RvbaReQ/yuKRM8HM/eBgo' +
'wpR4E4+UFhtiZIiT0dah/z8jmWXXLi3kDeWpS9az66VfVxZmZ2Cya' +
'xfBsXggjPLCI3PTU8TYarmQj1EzttfgtDtFMNmTy1MofJWDBCAoYu' +
'bO2KolZg37SOdzoEhdE7cJWUFNJNv06T/Z89Ru7422QqOJF8qSSj/' +
'ktOSIVAdNqfxjXgjadA8mSVsRdl8UfE1w+8xYLuvbN+Hcfb7u9sqo' +
'aPn0SZ5aDfC1x1QIZ96FnFfOfCCsX4VS+JuXpwSOdDZPqRrIxXjAf' +
'/H5+1LpSmbxgUwvzh12u9TZU29GegX0y5Mp4p6xXOHpVYK83YTc/u' +
'NMxe4WERflj2VGf3qdINMtQMhEy2pl8fiRA+bPzgQqE2osgi6eIM6' +
'FuRlu7SIBSsvhMrhILePrxJGWThz8JdGrGAhQzdQU6W9BxZdmlbqc' +
'mCIKJNrpMw7eHmnKWK6Cq8qj3/RtCqMmVxODToF10BoGDjwHGSpcq' +
'FRjg/dlmiNkOIwh4ytMavLJgMxGTLbYqGRDIVLpSKHHcsHZuYU1IF' +
'MIIBedbgH9xc2x2cCIi4w6ojuyNOxxu88KdqeE0PYO1XtwTXlyQ/3' +
'7xu4zCglYLyhkCMIY27ecXhl9dDoEtJfknJ9FF4qRXgW1MtSoshit' +
'mdWIdAFyC+RShMwJB1CCgMkG/jvdMmQSajxejCBwD7QP/wUHbL2a');
Stoke := BitmapFromString(29, 9, 'beNpVUttu00AQzd9QnL40V76' +
'jDagSrzSiNG3hEakoVQn0DwqNUpI2iXdr594HxBcQ23FkO77F8SUi' +
'fAhnbSrBarSamd2dOefM3nz09X4xn07FK595WimXljMaLfoIlzNiS' +
'21zeofMUiWO3IHvqdSV2jgNFzTUiK92YKFO1wsh0LpBEmqkmNt+d/' +
'QyNEaBMbj7el7IpoPYx0NH4l1FNKfUkXvuTLQlavwkjtJ3lR5rqvC' +
'uTDxV8LWeP+/7qhDp4lJGo17yfOM8hEYfkCxWR1jNe6l/liXRfIZ7' +
'pMN5qGCMGFpjEMRWyKX5m4tAHz7Lb1cOSsDJN2rFXBohaV6AnSN1b' +
'QmMepEh4KE97bgKrRzs3X754MrQ4b5Tr568fr6aU5yuzVFkjk4PX/' +
'i6COftm33h9jOwkSarGZnjk8P9BEwhwzWvzgBgbQ5jnAQiJIAdmXr' +
'zYWBMYvoEO21+oq3LaMEU27g/kPntffe1/toaMy66GMAM0deF43Ip' +
't7MVsu6sGpB7cwbblXlr+s1TeV9jYTLQQo7rNqrwkdxYD6n/F34CL' +
'FwMsAMeMoHOfFZNEbx5PDuZ2rEIq7gLKCcP+WaNtmq+Jkax2pgRHK' +
'BdW5NClmtfV0OdNT16tYsQThCXbderK20AbZtX723p3tMGyOAOkjE' +
'FAi6YV6dxjhanTNvLX+ZkbY4xtePyHko9DnoLTG2p5amkfX2WJN1p' +
'Pbfz5K/4WQ5zXOnJr2YfeKVRJKEGpMOkkmvkD12DojM=');
Tick := BitmapFromString(1, 12, 'beNqr/8fC3MTKepmN7S9WpK//t' +
'x4A46sNBg==');
RedTick := BitmapFromString(1, 11, 'beNqrr7/KyvKfjRUT/QMifb' +
'1/ANIFDIU=');
NoWood := BitmapFromString(46, 9, 'beNo9lNty2lYYhf0yre3cdYw' +
'TO+/QxuC4h+vOdGwg4xiwEy46vuor1HXBAqEDCHEY+6bvkNqMQNKW' +
'BEWAzkjgySN0STRlNJq9f0l7f/9aayNRW1tbS729NERXZdt3ZUxDv' +
'R2NxWjcDgiPKe6uwgR6e232PMKFhrDUW8+z/mf7YWX2A9JyVc4l7N' +
'JoRhMxINxSb7oqE2hNFOPVxqKjMFjcGjG2wvua4JLmatoPtNZBavc' +
'gtXORzbza2zE+VUr5k6vzH8NxNxp3C9ljfHv57odo0l9N7/GomDvx' +
'Ce8TIdA7a/PeI2DuATsad55nD6HR8dQWiq4CWnapibh7hEfRUVuWz' +
'MWN6KKjNj0izofsTGIdVcDU10Ts9f40PZeYhcSc/3KU//nbwtnRZf' +
'7YU5lQ40HYZ65LueNQFyKjXcq9LebeYl80fpja3Up+h/sv0E406a7' +
'M3uuXL/4rpnZcuRZovCNTxVx6U3x/erSR1FMYDGZPlPlYtUe0DwG1' +
'FioLqT4bULbcMB8rL7/5CnixQUYPImAXqBHfjU5kdFF3FQ79gl+4K' +
'wekCf5u/RpCraY9KHnP/2aNeFvmhOpVMZsGcCGbOdzfdWTakZkvJK' +
'wzrMX7Dqh/Pt24ckJCYjZLurUGVVTmAypJRRyG0OAf+OvC2ZtQZ0v' +
'5zNoUns2YMDKaQWK3TyAa5wyrnkJjup4246eTNvpyZcYe1ZOlhE3q' +
'7BFjJVfSC+uMaE/lFkMKF/SE3Zs3UbelO5BYUi1h5i7fwYX0ZT5jS' +
'dWAIGzsh/OTD+ffwyafQBMmsbu5mvUQRTBj+jxvxzyzrjWigYokJ+' +
'EUEjzBI6ybXAkYtzS4QEMeKtawutQaS0KHWrymM7y1h7e+WoM4CTP' +
'To3/FprgwDsdtHI2PFz+BBFI7iKLKJev3Prt/ebqIhMQMG8XGwlyq' +
'A8NLNkULuHuEQe+OQpuDSiImDQyPNGyZdgmDTwC8Njsb4/ByoPNuc' +
'kiBuhEcRsNfhAE+QqV4TYWxhnV7WC+cpTu1j+uJ4IyoXr0MEz25Ws' +
'q96dfLs79hfU2krkq5dOxsLt2hyvOnCr56tbe98T0ax/l0CedrGOM' +
'vQlhPRbhQzB65ch0hx6m5OP1u9njrydRB6mtXrs4ff1883VjSH4FS' +
'TUhqzugO0iEeB6ntL2dnF8fKh006/3p/Z1PEU9gKEsj+/5vcTSHWR' +
'EV3DQzmT38m7iOxjRBSEPZgbxsMpVwGR2/xL1zd4HU=');
MakeBarrel := BitmapFromString(80, 10, 'beNplVllzFNcV1p9xwD' +
'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' +
'');
end;
procedure FindBmps;
begin
FindBitmap(Fuel,Fuelx,Fuely);
FindBitmap(Flame,Flamex,Flamey);
FindBitmap(Heat,Heatx,Heaty);
FindBitmap(Progress,Progressx,Progressy);
FindBitmap(Stoke,Stokex,Stokey);
FindBitmap(MakeBarrel,MakeBarrelX,MakeBarrelY);
end;
//Tick Counting functions, Perform all the code to convert
//blue/red bars to something we can work with easily
Function ReturnFuel: Integer;
begin
Ticks:= CountBitmapTolerance(Tick,Fuelx + 28 ,Fuely - 4, Fuelx + 154,Fuely + 11,2);
if (Ticks = 0) then
begin
Result:= 0;
end;
if (Ticks = 3) then
begin
Result:= 1;
end;
if (Ticks = 10) then
begin
Result:= 2;
end;
if (Ticks = 16) then
begin
Result:= 3;
end;
if (Ticks = 22) then
begin
Result:= 4;
end;
if (Ticks = 28) then
begin;
Result:= 5;
end;
if (Ticks = 35) then
begin;
Result:= 6;
end;
if (Ticks = 41) then
begin;
Result:= 7;
if (Ticks >= 42) then
Result:= 8;
end;
end;
Function ReturnFlame: Integer;
begin
Ticks:= CountBitMapTolerance(Tick,Flamex + 38, Flamey - 4,Flamex + 162,Flamey + 11,3);
Result:= Ticks;
end;
Function ReturnHeat: Integer;
begin
if((CountBitMapTolerance(RedTick,Heatx + 31, Heaty - 4,Heatx + 155,Heaty + 11,3)) <= 0) then
begin
Ticks:= CountBitMapTolerance(Tick,Heatx + 31, Heaty - 4,Heatx + 155,Heaty + 11,3);
Result:= Ticks;
end else
Ticks:= CountBitMapTolerance(RedTick,Heatx + 31, Heaty - 4,Heatx + 155,Heaty + 11,3);
Result:= Ticks;
end;
Function ReturnProgress: Integer;
begin
Ticks:= CountBitMapTolerance(Tick,Progressx + 52, Progressy - 4,Progressx + 176,Progressy + 11,3);
Result:= Ticks;
end;
Function ReturnBarrel: Boolean;
begin
if (CountBitmap(MakeBarrel,0,0,2000,2000) >= 1) then
begin
Result:= True;
end;
if (CountBitmap(MakeBarrel,0,0,2000,2000) <= 0) then
begin
Result:= False;
end;
end;
procedure Setup;
begin
LoadMasks();
FindBmps();
Stop:= False;
end;
procedure Debug;
begin
//i:= i + 1;
ClearDebug();
Writeln('Kins Barrel Monkey Debug Output')
Writeln('/Chat Kinslayer if you have any problems')
Writeln('------------------');
Writeln('FuelLoc ' + IntToStr(Fuelx) + ' ' + IntToStr(Fuely));
Writeln('FlameLoc ' + IntToStr(Flamex) + ' ' + IntToStr(Flamey));
Writeln('HeatLoc ' + IntToStr(Heatx) + ' ' + IntToStr(Heaty));
Writeln('ProgressLoc ' + IntToStr(Progressx) + ' ' + IntToStr(Progressy));
Writeln('StokeLoc ' + IntToStr(Stokex) + ' ' + IntToStr(Stokey));
Writeln('------------------');
Writeln('Fuel: ' + IntToStr(ReturnFuel()));
Writeln('Flame: ' + IntToStr(ReturnFlame()));
Writeln('Heat: ' + IntToStr(ReturnHeat()));
Writeln('Progress: ' + IntToStr(ReturnProgress()));
Writeln('Time: ' + IntToStr(GetTickCount()));
Writeln('Last: ' + LastAction);
Writeln('WoodUsed: ' + IntToStr(WoodUsed));
Writeln('------------------');
end;
Procedure SilentMouseClick(x: Integer; y: Integer; left: boolean);
begin
GetMousePos(SaveX,SaveY);
MoveMouse(x,y);
ClickMouse(x,y,left);
MoveMouse(SaveX,SaveY);
end;
Procedure StokeFire(count: Integer);
begin
for i:= 1 to count do
begin
SilentMouseClick(Stokex,stokey,true);
end;
WoodUsed:= WoodUsed + count;
LastAction:= 'Stoked Fire ' + IntToStr(count) + ' times';
end;
begin
Setup();
LastAction:= 'Setup';
Debug();
if (ReturnBarrel = True) then
begin
SilentMouseClick(MakeBarrelx + 10, MakeBarrely + 3, True);
end;
if (UseFastLane = True) then
begin
StokeFire(7);
sleep(10000);
end;
while(Stop = False) do
begin
Debug();
if (UseActiveScan = True) then
begin
FindBmps();
end;
if (ReturnProgress >= 70) then
begin
AlmostDone:= True;
end;
if (AlmostDone = True) then
begin
if (ReturnProgress = 0) then
begin
if (ReturnFlame = 0) then
begin
Stop:= True
end;
end;
end;
// No fuel
if(ReturnFuel <= 0) then
begin
if (Stop = False) then
begin
if (ReturnFlame >= MaxFlameHeight) then
begin
StokeFire(1);
end;
if (ReturnFlame <= MaxFlameHeight) then
begin
StokeFire(2);
end;
end;
end;
//1 Fuel
if (ReturnFuel = 1) then
begin
if (Stop = False) then
begin
if (ReturnFlame >= MaxFlameHeight) then
begin
LastAction:= 'Fire Hot. Waiting';
end;
if (ReturnFlame <= MaxFlameHeight) then
begin
StokeFire(1);
end;
end;
end;
//2 Fuel
if (ReturnFuel = 2 ) then
begin
if (Stop = False) then
begin
LastAction:= 'Lots of fuel, waiting';
end;
end;
Sleep(CheckTime);
end;
end.