SCAR Code:
Function FindLamp(Skill: String): Boolean;
Label Finish;
Var
LampTime, x, y, Msk, MS, Col, Row : Integer;
Skills : Array Of Array Of String;
Begin
GameTab(4);
Skills := [TStringArray(['']), TStringArray(['attack', 'atk']), TStringArray(['strength', 'str']), TStringArray(['range', 'ranged']),
TStringArray(['magic']), TStringArray(['defence', 'def']), TStringArray(['crafting', 'craft']), TStringArray(['hitpoints', 'hp']),
TStringArray(['prayer', 'pray']), TStringArray(['agility']), TStringArray(['herblore', 'herb']), TStringArray(['thieving', 'thief']),
TStringArray(['fishing', 'fish']), TStringArray(['runecraft', 'runecrafting']), TStringArray(['slayer', 'slay']), TStringArray(['farming', 'farm']),
TStringArray(['mining', 'mine']), TStringArray(['smithing', 'smith']), TStringArray(['hunting', 'hunt', 'hunter']),
TStringArray(['cooking', 'cook']), TStringArray(['firemaking', 'fire']), TStringArray(['woodcutting', 'wc']), TStringArray(['']),
TStringArray(['']), TStringArray(['fletching', 'fletch']), TStringArray(['construction']), TStringArray(['summoning', 'summon'])];
For Msk := 0 to High(Skills) Do
For MS := 0 to High(Skills[Msk]) Do
If Skill = '' Then Begin Msk := 7; Break End Else
Try
If (Lowercase(Skill) = (Skills[Msk][MS])) Then
Begin
Row := Trunc(Msk / 7) + 1;
Col := (Msk - 1) Mod 7 + 1; //Bullzeye skills.
End;
Except Continue;
End;
If Row Xor 0 = 0 Then Exit;
If (Msk Mod 4) = 0 Then Dec(Row);
If Col = 0 Then Col := 7;
If FindColorTolerance(x, y, 1084300, MIX1, MIY1, MIX2, MIY2, 40) Then
If (FindTransparentBitmapTolerance(Lamp, x, y, clBlack, MIX1, MIY1, MIX2, MIY2, 40)) Then
Begin
Inc(RandSolved[rand_Lamp]);
TakeScreen('Lamp Random Solved');
AddToSRLLog('******** SOLVED LAMP RANDOM ********');
WriteLn('******** SOLVED LAMP RANDOM ********');
Mouse(x, y, 1, 1, True);
Wait(1500 + Random(500));
MarkTime(LampTime);
End;
If GetColor(115, 74) = 6325658 Then Goto Finish Else
If (TimeFromMark(LampTime) > 10000) Then
Begin
LogOut;
Players[CurrentPlayer].Rand := 'Lamp';
End;
Finish :
Begin
Mouse(51 + (55 * (Col - 1)), 84 + (55 * (Row - 1)), 45, 45, True);
Wait(1500 + Random(500));
Mouse(416, 281, 7, 1, True);
Result := True;
End;
Exit;
End;