Here are a few of the scripts that I wrote for Eternal Lands. Most of them are around 80% done, with mostly fine tuning and failsafes left to implement.
These are my first scripts and critism is welcome
This one is to Create Matter Essence.
SCAR Code:
program MatterEssies_V3;
{.include SRL/SRL.scar}
var
{ Iron,}
Scrll, //Scrollbar selection
x, y, //x,y = Coords
Width, Hight : Integer; //For client dimensions
const
FoodBar = 3389367;
{
procedure LoadDTMs;
begin
Scrll := DTMFromString('78DA639CC6C0C0F08E01051C99980CA619A17' +
'C46909A6704D44C05123F09A89941849A9944B8672611EE9942A4' +
'1A0276010029A019F2');
end;
}
function FoodLow:Boolean;
begin
Result := False;
if (GetColor(222, 704) <> FoodBar) then
begin
WriteLn('Food Low!')
Result := True
end;
{ else
begin
WriteLn('Food still OK!')
exit
end}
end;
procedure Click20;
var
Inv20 : Integer;
begin
Inv20 := DTMFromString('78DA63D4656660B8C6C4800C4C23368069462' +
'89F5103A8E62A116AEE105003B2EB36AA1A5DEFE9A86A0C806A6E' +
'1130C708D32EEFDA9FA86A4C8930C718A8E60AAA1AE3D055286A0' +
'0AB0312A6');
if FindDTM(Inv20, x, y, 780, 720, 845, 735) then
begin
MMouse(x, y, 5, 5) //Move mouse to found coords
WriteLn('Moved to 20')
Mouse(x, y, 5, 5, True)
WriteLn('20 Clicked!')
end
else
begin
WriteLn('20 DTM not found') //Write if DTM not found
FreeDTM(Inv20)
Exit //Exit script as item not found
end;
Wait(1000+random(500)); //Wait to make it look more natural
FreeDTM(Inv20);
end;
procedure GetQuartz;
var
Quartz : Integer;
begin
Quartz := DTMFromString('78DA636463606060624001FF7FDF01D38C503' +
'E233B90904455F3F1F5295435BC986A7EBDDB8EAA460048B0A3AA' +
'F9FBF72DA61A0134F7FCFB84AA06E45E0954358766E562AAE1435' +
'5F3F9D1024C3568EEF9FFFF3FA67B84D1D4FCB889A98617CD5FBF' +
'DFA1A801004F5A1BEF');
if FindDTM(Quartz, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 5, 5) //Move mouse to found coords
Wait(500 + random(200))
WriteLn('Moved to Quartz')
Mouse(x, y, 5, 5, True)
Wait(500 + random(200))
WriteLn('Quartz Clicked!')
MMouse(650, 420, 0,0)
Wait(600 + random(200))
Mouse(650, 420, 5, 5, True)
WriteLn('Dropped Quartz in Inventory!');
Wait(500 + random(200))
end
else
begin
WriteLn('Quartz DTM not found') //Write if DTM not found
FreeDTM(Quartz)
Exit //Exit script as item not found
end;
Wait(1000+random(500)); //Wait to make it look more natural
FreeDTM(Quartz);
end;
procedure GetRQuartz;
var
RQuartz : Integer;
begin
RQuartz := DTMFromString('78DA6364676060E06340017FDF2D06D38C503' +
'E231B90604255F3FFD74B5435424082154DCDBB27A86A40F648A2' +
'AA591E618EAA86054848A0AA79D3E983AA06E416215435FFFEBCC' +
'654C38EE69EFFFF51D50802097E34BFFF3E88A2060036A01498');
if FindDTM(RQuartz, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 5, 5) //Move mouse to found coords
Wait(500 + random(200))
WriteLn('Moved to Rose Quartz')
Mouse(x, y, 5, 5, True)
Wait(500 + random(200))
WriteLn('Rose Quartz clicked!')
MMouse(650, 420, 0,0)
Wait(600 + random(200))
Mouse(650, 420, 5, 5, True)
WriteLn('Dropped Rose Quartz in Inventory!');
Wait(500 + random(200))
end
else
begin
WriteLn('Rose Quartz DTM not found') //Write if DTM not found
FreeDTM(RQuartz)
Exit //Exit script as item not found
end;
Wait(1000+random(500)); //Wait to make it look more natural
FreeDTM(RQuartz);
end;
procedure GetBQuartz;
var
BQuartz : Integer;
begin
BQuartz := DTMFromString('78DA6364636060E06740017D3B2F836946289' +
'F11A4860955CDB1D7FF51D588030976543537BEA0A911011242A8' +
'6A26EEBD81AA46004848A1AA49AA9B80AA86154848A2AA718B6B4' +
'055036208A0AAA9BCF809550DC84FACA86AEAA6CF425103003782' +
'110C');
if FindDTM(BQuartz, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 5, 5) //Move mouse to found coords
Wait(500 + random(200))
WriteLn('Moved to Blue Quartz')
Mouse(x, y, 5, 5, True)
Wait(500 + random(200))
WriteLn('Blue Quartz clicked!')
MMouse(650, 420, 0,0)
Wait(600 + random(200))
Mouse(650, 420, 5, 5, True)
WriteLn('Dropped Blue Quartz in Inventory!')
Wait(500 + random(200))
Mouse(650, 420, 5, 5, False)
end
else
begin
WriteLn('Blue Quartz DTM not found') //Write if DTM not found
FreeDTM(BQuartz)
Exit //Exit script as item not found
end;
Wait(1000+random(500)); //Wait to make it look more natural
FreeDTM(BQuartz);
end;
procedure TransferQuartz;
begin
MMouse(55, 513, 0,0)
Wait(600 + random(200))
Mouse(55 + random(5), 513 + random(5), 5, 5, True)
WriteLn('Added Quartz in Manu Window!');
Wait(500 + random(200))
end;
procedure TransferRQuartz;
begin
MMouse(85, 513, 0,0)
Wait(600 + random(200))
Mouse(85 + random(5), 513 + random(5), 5, 5, True)
WriteLn('Added Rose Quartz in Manu Window!');
Wait(500 + random(200))
end;
procedure TransferBQuartz;
begin
MMouse(115, 513, 0,0)
Wait(600 + random(200))
Mouse(115 + random(5), 513 + random(5), 5, 5, True)
WriteLn('Added Blue Quartz in Manu Window!');
Wait(500 + random(200))
end;
procedure GetIngredients;
begin
Click20;
GetQuartz;
GetRQuartz;
GetBQuartz;
end;
procedure GetManuIngreds;
begin
TransferQuartz;
TransferRQuartz;
TransferBQuartz;
end;
procedure StartManu;
var
ManuAll : Integer;
begin
ManuAll := DTMFromString('78DA634C676460E0626640064726268369462' +
'89F3101C862475563A9258BA98697809A6C22D510B2AB88B09B01' +
'93580840');
if FindDTM(ManuAll, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 5, 5) //Move mouse to found coords
Wait(500 + random(200))
WriteLn('Moved to Manu All Button')
Mouse(x, y, 5, 5, True)
WriteLn('Manu All Button pressed!');
Wait(500 + random(200))
end
else
begin
WriteLn('Manu All Button DTM not found') //Write if DTM not found
FreeDTM(ManuAll)
Exit //Exit script as item not found
end;
Wait(1000+random(500)); //Wait to make it look more natural
FreeDTM(ManuAll);
end;
function ManuStopped:Boolean;
var
Stopped : Integer;
begin
Result := False
Stopped := DTMFromString('78DA630C61606038CFC4800C363B388069462' +
'89F3108489C465573D5D717554D04A69AE53636A86A40765D4655' +
'F32D3212554D38A69A95B6B6A86A6230D57C898840550332F602A' +
'A9A2C35355435B140E22CAA9A7B0101A86AE231CD99666686AA26' +
'01D31C1880AB4902129750D5ACB1B34355934A84BF3230D564A0F' +
'B2B1DD3CD1876A563BA79B685058A1A008B8F22FA');
if FindDTM(Stopped, x, y, 7, 600, 35, 620) then
begin
MMouse(x, y, 5, 5) //Move mouse to found coords
Wait(500 + random(200))
WriteLn('Stopped Manu')
StartManu;
Wait(500 + random(200))
Result := True
end
else
begin
WriteLn('Stopped DTM not found') //Write if DTM not found
FreeDTM(Stopped)
Exit //Exit script as item not found
end;
Wait(1000+random(500)); //Wait to make it look more natural
FreeDTM(Stopped);
end;
begin
SetupSRL;
ClearDebug;
ActivateClient;
GetClientDimensions(Width, Hight);
GetIngredients;
GetManuIngreds;
StartManu;
While (FoodLow <> True) do
begin
while (ManuStopped <> True) do
StartManu;
end;
WriteLn('Done!');
end.
This one is the money maker script. It harvest lilacs and sell them at the flower seller.
SCAR Code:
program HarvestLilacs_V3;
{.include SRL/SRL.scar}
var
x, y, //x,y = Coords
Width, Hight : Integer; //For client dimensions
const
LilacsColor = 8735080;
FoodBar = 3389367;
procedure FlowerShop;
var
FlowerShopDot : Integer;
begin
FlowerShopDot := DTMFromString('78DA636461646038C38002BEB75D63E002D24' +
'01986FF40C0C801645D465523C0CB03A619A17C461E20EB14AA1A' +
'05513E543520BB8EA2AA6161624455F31F489C4555C3C18EAA060' +
'0BEF20C01');
if FindDTM(FlowerShopDot, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 0, 0) //Move mouse to found coords
Wait(500 + random(200))
WriteLn('Moved to FlowerShop Dot')
Mouse(x + 13, y + 13, 3, 3 , True)
Wait(500 + random(200))
WriteLn('FlowerShop Dot Clicked!')
Wait(500 + random(200))
end
else
begin
WriteLn('FlowerShop Dot DTM not found') //Write if DTM not found
FreeDTM(FlowerShopDot)
Exit //Exit script as item not found
end;
Wait(1000+random(500)); //Wait to make it look more natural
FreeDTM(FlowerShopDot);
end;
procedure LilacsMap;
var
Lilacs : Integer;
begin
Lilacs := DTMFromString('78DA63B4626460F0674001E21AFC0C5C401A2' +
'8C3F01F0818416A2A51D5D467E9826946289FB10CC8F245555363' +
'C38DAA461AD32EF9D06A5435A940563AAA1A135B0954351298EEC' +
'9D7F342510300754C0C65');
if FindDTM(Lilacs, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 0, 0) //Move mouse to found coords
Wait(500 + random(200))
Mouse(x, y, 5, 5, True)
Wait(500 + random(200))
end
else
begin
WriteLn('Lilacs DTM not found') //Write if DTM not found
FreeDTM(Lilacs)
Exit //Exit script as item not found
end;
Wait(1000+random(500)); //Wait to make it look more natural
FreeDTM(Lilacs);
end;
function Full:Boolean;
begin
Result := False;
if(GetColor(545, 708) = 5263491) then //Checl to see if EMU bar full
Result := True
else
Result := False;
end;
Procedure HarvestLilacs;
var
x, y : Integer;
begin
if(FindColorTolerance(x, y, LilacsColor, 0, 0, Width, Hight, 20)) then
begin
MoveMouseSmoothEx(x, y + random(5), 20, 40, 45, 25, 20)
Wait(500 + random(100))
Mouse(x, y, 5, 5, True)
end
else
WriteLn('Lilacs not found :(');
repeat
Wait(10000 + random(500))
WriteLn('GetColor = ' + IntToStr(GetColor(546, 708)))
until (Full = True);
end;
procedure EnterFlowerShop;
var
x, y : Integer;
begin
//9212562 3179952 if (FindColorTolerance(x, y, 5914628, 370, 220, 555, 318, 10)) then
if (FindColoredAreaTolerance(x, y, 13159886, 333, 333, 510, 400, 2, 5)) then
begin
MoveMouseSmoothEx(x, y, 20, 40, 45, 25, 20)
Wait(1000 + random(100))
Mouse(x , y + 10, 5, 2, True)
end
else
WriteLn('Awning not found!');
end;
procedure WalkToCounter;
var
FlowerShopCntr : Integer;
begin
FlowerShopCntr := DTMFromString('78DA633462626030606440064ADC0C0C5C401' +
'A24FA1F08184D816AFC51D5F059B2C3D58000A314508D3EAA1A43' +
'510654352E98766909A1A93104AA514455E32C87A6460EA826005' +
'58D480A1FAA1A2F4C357CBE9C286A001C2F09AB');
if FindDTM(FlowerShopCntr, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 0, 0) //Move mouse to found coords
Wait(500 + random(200))
WriteLn('Moved to FlowerShop Counter')
Mouse(x + 13, y + 13, 3, 3 , True)
Wait(500 + random(200))
WriteLn('FlowerShop Counter Clicked!')
Wait(500 + random(200))
end
else
begin
WriteLn('FlowerShop Counter DTM not found') //Write if DTM not found
FreeDTM(FlowerShopCntr)
Exit //Exit script as item not found
end;
Wait(1000+random(500)); //Wait to make it look more natural
FreeDTM(FlowerShopCntr);
end;
procedure ExitFlowerShop;
var
FlowerShopDoor : Integer;
begin
FlowerShopDoor := DTMFromString('78DA635CC4C8C0D00CC448A0B2AE81811F488' +
'344FF0301E30C20AB09554D6A560E5C0D0830CE04B24A51D50405' +
'07A3AA01D95586AA2630201055CD5A20AB1E558DB18A14AA9A894' +
'0561DAA1A3521765435AB81AC7654359EEECEA86AA66151E3E181' +
'A206004D41147C');
if FindDTM(FlowerShopDoor, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 0, 0) //Move mouse to found coords
Wait(500 + random(200))
WriteLn('Moved to FlowerShopDoor')
Mouse(x + 13, y + 13, 3, 3 , True)
Wait(500 + random(200))
WriteLn('FlowerShopDoor Clicked!')
Wait(500 + random(200))
end
else
begin
WriteLn('FlowerShopDoor DTM not found') //Write if DTM not found
FreeDTM(FlowerShopDoor)
Exit //Exit script as item not found
end;
Wait(1000+random(500)); //Wait to make it look more natural
FreeDTM(FlowerShopDoor);
end;
begin
ClearDebug;
SetupSRL;
ActivateClient;
GetClientDimensions(Width, Hight);
SendKeys(chr(9));
Wait(2000 + random(500));
LilacsMap;
SendKeys(chr(9));
Wait(25000 + random(2000));
HarvestLilacs
Wait(1000 + random(500));
ActivateClient;
SendKeys(chr(9));
Wait(2000 + random(500));
FlowerShop;
SendKeys(chr(9));
Wait(25000 + random(2000));
ActivateClient;
EnterFlowerShop;
Wait(4000 + random(500));
WalkToCounter;
WriteLn('Done!');
WriteLn('Worked for : ' + TimeRunning);
end.
This one is a magic trainer. Uses Matter Essence to cast the shield spell
SCAR Code:
program MagicTrainerIP;
{.include SRL/SRL.scar}
var
Width,Hight,
x, y, Cast : Integer;
procedure OpenInv;
var
InvButton : integer;
begin
InvButton := DTMFromString('78DA63FCC2C0C0708F890119246B708069462' +
'89F11A4E612AA9AA38B2250D580587751D564B8C8A1AA7906241E' +
'A2AAB19747B3EB33907883AAC64D851755CD7F20F11C55CDC4546' +
'D143500F1350F35');
if FindDTM(InvButton, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 0, 0)
Mouse(x, y, 5, 5, True)
Exit
end
else
WriteLn('InvButton not found!');
FreeDTM(InvButton);
end;
procedure CloseInv;
var
InvButton2 : integer;
begin
InvButton2 := DTMFromString('78DA63FCCAC0C0708789011944E93030F0036' +
'94620FE0F048C8C40D63D54354E2A1C609A11CA67FC02245EA3AA' +
'6971634255F38C01C31C4B053473DE00898BA86A1AA2D451D5FCC' +
'654F37296138A1A00FD5812E8');
if FindDTM(InvButton2, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 0, 0)
Mouse(x, y, 5, 5, True)
Exit
end
else
WriteLn('InvButton not found!');
FreeDTM(InvButton2);
end;
procedure CheckFastRegen;
var
FastRegenCloak : Integer;
begin
FastRegenCloak := DTMFromString('78DA639CC2CCC07090910119DCBC7593811F4' +
'88344FF0301E33CA09AF3A86AE6CF9F0F5703028C1D4035E750D5' +
'64E767A3AAE906AAD986AAA6ACA20C55CD6C4C35354D35986AD0D' +
'C0C7426AA9A4EA09AFDA86A6000260A001D501958');
if FindDTM(FastRegenCloak, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 0, 0)
// Mouse(x, y, 5, 5, True)
Exit
end
else
WriteLn('FastRegen Cloak not equipt!');
FreeDTM(FastRegenCloak);
end;
procedure Select20;
var
Inv20 : Integer;
begin
Inv20 := DTMFromString('78DA63D467666078C0C4800CECD2CF31F0036' +
'94620FE0F048CC64035F751D598466C00D38C503E23C89C27A86A' +
'BC6B7FA1AA31C5A6E627AA1A6DA09ABB04ECB2C054A3E9D289A20' +
'6009E461306');
if FindDTM(Inv20, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 0, 0)
Mouse(x, y, 5, 5, True)
Exit
end
else
WriteLn('20 not found!');
FreeDTM(Inv20);
end;
procedure FindFood;
var
Word_Food : Integer;
begin
Word_Food := BitmapFromString(31, 12, 'beNpTkGKgJYhyt6pM8EN' +
'GDsaalBiY7OcANCTawwrILovz+Xhg9tLmLAg6Mb8xM9iZEsNbMkNX' +
'teeuas8DsvVV5d7snmGpqwpkS4sJTSlLgBuupyILlAUiPRU5ZO14x' +
'E00FV3NdIKdTCGGayhIAQ03VFcAsm0N1eGGm2opXVrWfmddLxBdWt' +
'4O5EJMIEYczXBfWyMgAjLcLfSATgLaBZQNdDBxNdcFoiBH05VtuUY' +
'aCsSIu1noAsMZ2fCLy9qACMgAcoGCQMcDvaAiIw5xFZAB8RGR4mgu' +
'tzfSMNNWXtGaoyQtBjccOTyRDSEojjXMZcSEILIQxXCuDCyiiRSHG' +
'26uoww03NlUGxIgEGBroA5Mlt7WBhY6KkDkZW2wrCXbxkCdGHE7I4' +
'3LKzqAhgMNBMp+PzIfGAU1yQHI/gUG1PPtU4DiQPRix1Q7Qw3ixcN' +
'dLb4cmpse5GSkrgC0Goh0lGXQsoO1vhpECsggSVxNTgJIagAA+/nx' +
'Sw==');
if FindBitMap(Word_Food, x, y) then
begin
MMouse(x, y, 0, 0)
Mouse(x, y, 5, 5, True)
end
else
WriteLn('Food not found!');
FreeBitmap(Word_Food);
end;
procedure GetVeggies;
var
Veggies : Integer;
begin
Veggies := DTMFromString('78DA63FCC2C0C0F08201057C9FA7C8C00FA41' +
'981F83F10307E06323EA3AAB99F2A015703028CAF80C433543539' +
'5AECA86A9880ACC7A86A1AF79BA3AA01D9730F558DB9353FAA9AF' +
'F40E203AA9A092A0AA86A5E038937A86A3A6D0450D4000052F917' +
'D3');
if FindDTM(Veggies, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 0, 0)
Mouse(x, y, 5, 5, True)
MoveMouseSmoothEx(686 + random(20), 418 + random(20), 1, 3, 45, 20, 10)
GetMousePos(x, y)
Mouse(x, y, 15, 15, True)
end
else
WriteLn('Veggies not found!');
FreeDTM(Veggies);
end;
procedure FindEssence;
var
Word_Essence : Integer;
begin
Word_Essence := BitmapFromString(64, 11, 'beNrVVEtrE1EYzU/Q' +
'2ibmHZNJMmmS6WRs8yCZmEabaOzDtIuqtFoMKAqN+ECIkIWITaAKI' +
'i2+daONdiHuFHFRsnInttvuK7hSdO+pH1yGYebWbYeP4X5nzpzv3H' +
'u/ey2WghJpzI3ronAwYtklz3he2ei0V1v117cvUXx5eevi1OHd4t/' +
'euwfmp4pDlDqtPUs35ph/SXAPBD0UYa+d/bUjLgkeQrz2XqRu2z4d' +
'ruODwNfh1GX+h/r9IY+d+Ue6vtLafHeP4vHNGvH/B1/vtJACPDuqI' +
'h1TEzpcxx9VE3wdTl34nx5Jj6lK90mzlIono37Mjs3raEYqpyUMkG' +
'rnq8MTYR8Gk8PbOAL424V5RfRBCvivtWeldHwkFdfxq4VBgPj0c+0' +
'pX4fvZ+NN+9vKwo9PD48kY2yzHlw/c22mUp8uA0QhpBwcW7bamgfI' +
'ArK0j9r+ZHXxCRstuGyEH8/KO+qY+SF9OeS9e/l0diA0W8mVMxJwj' +
'CH1fvHKo8a5xfoppMQ3xFHi66s7ALWBKnz/bK0cfXsDLitfx8wP08' +
'dZxpv1f7N2YiKvJKMBzPr+1dlmrUp8Q5z8YHPpMKZiAsZYE75/l7W' +
'H8KjfGfi3Fxwdw7oRn4P00zEBkYkHmf/tvuq0hwf7S5q+NcNVOYy7' +
'F02YT4jQqWRljGeO5Zg+GvuAo4/4os9BfLQNyHlFBJn6wUzHrO75a' +
'vFP9wWOD4vf3efM/8lShsDvH5chyPwb4ocUEZcAwzGGZ6b/ebmBc4' +
'eDDP0Lk0Xib31YIj7IfB2zulifnBzWBdYHn5SwL+jZTwhrNg6Ox++' +
'06nCmj9tPcNu0+tTShOBHvo5x3b/0nfBl');
if FindBitMap(Word_Essence, x, y) then
begin
MMouse(x, y, 0, 0)
Mouse(x, y, 5, 5, True)
end
else
WriteLn('Essence not found!');
FreeBitmap(Word_Essence);
end;
procedure GetMatterEssies;
var
MatterEssies : Integer;
begin
MatterEssies := DTMFromString('78DA63BCCAC0C0F0980105B0B2F233F003694' +
'620FE0F048CB7808CB7A86AD6AC580EA619A17CC68740E225AA1A' +
'F3A7CB50D580CCB98BAAE61CC71C5435E780C42D5435D23DAEA86' +
'ACE0089A7A86A3A7B3A51D40000D6491643');
if FindDTM(MatterEssies, x, y, 0, 0, Width, Hight) then
begin
MMouse(x, y, 0, 0)
Mouse(x, y, 5, 5, True)
MoveMouseSmoothEx(686 + random(20), 418 + random(20), 1, 3, 45, 20, 10)
GetMousePos(x, y)
Mouse(x, y, 15, 15, True)
end
else
WriteLn('Matter Essies not found!');
FreeDTM(MatterEssies);
end;
procedure GoToFastHeal;
var
FastHeal : Integer;
begin
FastHeal := DTMFromString('78DA63BCCDC0C0F0910105CC6FB166E007D28' +
'C40FC1F08181F00197F50D518450A806946289FF10A90F882AA26' +
'3F5A1D55CD1320F101554D76A42AAA9A5B40E215AA9A804809543' +
'57F81C4775435A58BF550D400008E7914EE');
if FindDTM(FastHeal, x, y, 0, 0, Width, hight) then
begin
MMouse(x, y, 0, 0)
Mouse(x, y, 5, 5, True)
FreeDTM(FastHeal)
Exit
end
else
WriteLn('Fast Heal Spot not found!');
FreeDTM(FastHeal);
end;
procedure QS_Shield;
var
Shield : Integer;
begin
Shield := DTMFromString('78DA635CCFCCC0B08C01055C5C58CFC00FA41' +
'981F83F103082D46C405533B934124C3342F98CDB806A16A0AA99' +
'DB9C8DAA6605A69A4B6B7A50D56C05AA5983AA26DB5519D39CD5A' +
'86A222C1451D40000C936149B');
if FindDTM(Shield, x, y, 0, 0, Width, hight) then
begin
MMouse(x, y, 0, 0)
Mouse(x, y, 5, 5, True)
FreeDTM(Shield)
Exit
end
else
WriteLn('Quick Spell - Shield not found!');
FreeDTM(Shield);
end;
procedure PressTab;
begin
SendKeys(chr(9));
Wait(2000 + random(500));
WriteLn('Tab button pressed');
end;
procedure BeamMe;
begin
SendKeysWait('#beam me', 20, 500);
SendKeys(chr(13));
WriteLn('Just Beamed');
end;
procedure SitDown;
begin
KeyDown(18); //Press Alt
sendkeys(chr(115)); //Press S
KeyUp(18); //Let go Alt
WriteLn('Sit Down');
end;
procedure GoToIP;
begin
BeamMe;
Wait(4000 + random(1000));
PressTab;
GoTofastHeal;
PressTab;
Wait(35000 + random(5000));
SitDown;
end;
procedure CastShield;
begin
Cast := 0;
repeat
QS_Shield;
Wait(1000 + random(200));
Cast := Cast + 1;
WriteLn(IntToStr(GetColor(42, 709)));
MMouse(x, y, 20, 20)
until (GetColor(42, 709) <> 12006195) or (Cast > 15);
end;
procedure RestoreMana;
begin
Cast := 0;
repeat
Wait(30000 + random(200));
Cast := Cast + 1;
WriteLn(IntToStr(GetColor(42, 709)));
MMouse(x, y, 20, 20)
until (GetColor(125, 709) = 12006195) or (Cast > 15);
end;
begin
SetupSRL;
ActivateClient;
GetClientDimensions(Width, Hight);
Cast := 0;
Wait(1000 + random(500));
OpenInv;
Wait(1000 + random(500));
CheckFastRegen;
Wait(1000 + random(500));
Select20;
Wait(1000 + random(500));
FindFood;
Wait(1000 + random(500));
GetVeggies;
Wait(1000 + random(500));
FindEssence;
Wait(1000 + random(500));
GetMatterEssies;
MMouse(x, y, 50, 50);
Wait(1000 + random(500));
CloseInv;
Wait(1000 + random(500));
GoToIP;
CastShield;
RestoreMana;
WriteLn('Restored');
end.