warxperiment
2008-05-19 09:55:50
Could someone make a script that kills hill giants and picks up the bones?:confused:
2008-05-19 09:55:50
2008-05-19 09:58:02
program BigGiantBoneCollecter;
//{.include SRL/SRL/Misc/Smart.scar}
{.include srl\srl.scar}
{.include srl\srl\skill\fighting.scar}
const
Number=5; {Number of food to bring on each round}
var
bigbone,food,Roadddtm,WaterDTM,LadderDTM:integer;
nomorefood:boolean;
{-------------------------------------------------------
Player Setup
--------------------------------------------------------}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //username
Players[0].Pass := ''; //password
Players[0].Nick := ''; //3-4 letters from your username
Players[0].strings[0] := 'trout'; // food name
Players[0].Active := True;
end;
{----------------------------Do Not Edit Below This----------------------------}
procedure DTMBMPsetup;
begin
Bigbone := DTMFromString('78DA63E46764607000622410151CCCA003140' +
'289FE0702462120CB03550D44164602697120CB8E801A0120CB8A' +
'801A3122D47003596604D47000599604D4700259B604D4B00059C' +
'E04D430638621861A1E20CB89801A4920CB8588F071C7AF0600DA' +
'56095C');
WaterDTM := DTMFromString('78DA63BCC9C4C07091010574B41B318800694' +
'620FE0F048CBB806A181951D4D4CFD80557030260354204D45C03' +
'AA11465553DDA182A206000ABE0E84');
LadderDTM:= DTMFromString('78DA637464646078C680025CACD419E480345' +
'086E13F10307A01591F19B0024618ED03643D21A0C61CC87A4C40' +
'8D1961BB0028EC0AA2');
case Lowercase(Players[CurrentPlayer].Strings[0]) of
'lobster': food:= DTMFromString('78DA631464646088076224B03F459C4107280' +
'412FD0F048C12405610AA1A882C8C04D2D24056380135E2405632' +
'0135C240562E0135FC40562A01359C40563A01358C44A861C20C1' +
'F0C353C40562C0135A0708EC2AF0600E4290A61');
'trout': food:= DTMFromString('78DA63EC6162603063644006EDF9D90C46401' +
'A24FA1F08186700D5A8A3AA81C8C24820DD0B54A34D404D33A65D' +
'186A1A806AEC89506345404D1F508D35013533816AF48950A34B4' +
'04D27508D2D116A0CF1AB010004EA0E13');
'salmon': food:= DTMFromString('78DA637CC7C4C0D0C4C8800CAEBA4B32A4006' +
'990E87F2060BC0F54D389AA06220B2381F413A09A1E026ADE02D5' +
'741150F303A8A69608352544D8554140CD534CBF63A8B94FA49BA' +
'B08A8790954534F40CD27A09A66FC6A0089771701');
'meat': food:= DTMFromString('78DA63B465646048026224D09099CA9002A44' +
'1A2FF8180D103C80A41550391859140DA1DC88A23A00664571601' +
'350640560E01354640560A01355640560C01354E405632013520B' +
'F471050634E849B416A12F0AB0100F7380CB3');
end;
end;
procedure LoadRoad;
var
roadMPbank: TDTMPointDef;
roadSPbank: array of TDTMPointDef;
RoadDDTM: TDTM;
begin
SetArrayLength(roadSPBank, 3);
roadMPBank.x := 573;
roadMPBank.y := 104;
roadMPBank.areasize := 1;
roadMPBank.areashape := 0;
roadMPbank.color := 8752527;
roadMPbank.tolerance := 10;
roadSPbank[0].x := 572;
roadSPbank[0].y := 93;
roadSPbank[0].areasize := 1;
roadSPbank[0].areashape := 0;
roadSPbank[0].color := 8752527;
roadSPbank[0].tolerance := 10;
roadSPbank[1].x := 591;
roadSPbank[1].y := 108;
roadSPbank[1].areasize := 1;
roadSPbank[1].areashape := 0;
roadSPbank[1].color := 8752527;
roadSPbank[1].tolerance := 10;
roadSPbank[2].x := 637;
roadSPbank[2].y := 72;
roadSPbank[2].areasize := 1;
roadSPbank[2].areashape := 0;
roadSPbank[2].color := 4682620;
roadSPbank[2].tolerance := 10;
roadDDTM.MainPoint := roadMPbank;
roadDDTM.SubPoints := roadSPbank;
AddDTM(roadDDTM);
end;
procedure AntiBan;
begin
end;
function AntiRandom:boolean;
begin
findnormalrandoms;
result:=true;
end;
function checkforfood:boolean;
var
i,x,y:integer;
begin
while (HPpercent<75) and not(i=15) do
begin
gametab(4);
inc(i);
if finddtm(food,x,y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x,y,5,5,False);
Result:=True;
end else
begin
Nomorefood:=True;
Result:=True;
Writeln('No more food, going back to bank');
Exit;
end;
end;
end;
procedure WithdrawFromBank;
var
x,y:integer;
begin
case random(2) of
1: if not(Openbankquiet('vew')) then
Openbankfast('vew');
0: if not(Openbankfast('vew')) then
Openbankquiet('vew');
end;
if FindDTM(Food, x, y, 0, 0, 800, 600) then
begin
Mouse(x, y, 5, 5,false);
ChooseOption('ithdraw X');
wait(1000+random(1000));
Typesend(inttostr(Number));
Antiban;
Antirandom;
end else
writeln('Food not found. Requesting another DTM from you');
end;
procedure GoToDoor; {At the bank}
var
i,gay,gax,spx,spy,ifs,its,reps,tempx,tempy:integer;
TPARoad,TPARoad2,TPARoad3,TPARoad4,TPAWater:TPointArray;
begin
if Finddtm(roadddtm,gax,gay,MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(gax,gay,5,5,True);
FFlag(5);
end else
begin
if RadialWalkEx(tparoad2, MMCX, MMCY, 8621197, 25, 300, 220, 65) then {Ripped the following off Radialwalk and changed the tolerance}
for i := 0 to High(tparoad2) do
if MFNF(tparoad2[i].x, tparoad2[i].y, 2, 2) then
begin
FFlag(10+random(2));
Break;
end;
end;
repeat
reps:=reps+1;
writeln('2');
if RadialWalkEx(tparoad, MMCX, MMCY, 8621197, 18, 195, 255, 65) then
for i := 0 to High(tparoad) do
if MFNF(tparoad[i].x, tparoad[i].y, 2, 2) then
begin
FFlag(10+random(2));
Break;
end;
until(reps=2)
writeln('3');
if RadialWalkEx(tparoad3, MMCX, MMCY, 8621197, 18, 240, 300, 65) then
for i := 0 to High(tparoad3) do
if MFNF(tparoad3[i].x, tparoad3[i].y, 2, 2) then
begin
FFlag(10+random(2));
Break;
end;
spx:=595
spy:=50
if FindColorSpiralTolerance(spx,spy, 2527604, MMX1, MMY1, MMX2, MMY2,15)then
begin
Mouse(spx,spy,10,10,true);
FFlag(5);
spx:=595
spy:=50
FindColorSpiralTolerance(spx,spy, 2527604, MMX1, MMY1, MMX2, MMY2,15);
Mouse(spx,spy,10,10,true);
DTMRotated(waterdtm,tempx, tempy,MMX1, MMY1, MMX2, MMY2);
MMouse(tempx,tempy,1,1);
end else
begin
repeat
ifs:=ifs+1
if RadialWalkEx(tparoad4, MMCX, MMCY, 7435130, 18, 240, 300, 65) then
for i := 0 to High(tparoad4) do
if MFNF(tparoad4[i].x, tparoad4[i].y, 2, 2) then
begin
FFlag(10+random(2));
Break;
end;
until(ifs=2)
end;
if DTMRotated(waterdtm,tempx, tempy,MMX1, MMY1, MMX2, MMY2) then
begin
MMouse(tempx,tempy,1,1);
end;
repeat
its:=its+1
if RadialWalkEx(tpawater, MMCX, MMCY, 2261365, 20, 0, 45, 65) then
for i := 0 to High(tpawater) do
if MFNF(tpawater[i].x, tpawater[i].y, 2, 2) then
begin
FFlag(10+random(2));
Break;
end;
until(its=2);
end;
procedure GotoHillgiant;
var
GTx,GTy,objy,objx,nagrx,nagry,xpt,i:integer;
NumbrArray : Array [0..3] of Integer;
Doorpoint,Butpa:TpointArray;
DP,butp:Tpoint;
inside:boolean;
label
Backtostart;
begin
Numbrarray[0]:=2320775;
Numbrarray[1]:=2121338;
numbrarray[2]:=602948;
Numbrarray[3]:=2651543;
gtx:=596;
gty:=19;
if FindColorSpiralTolerance(gtx, gty, 238, MMX1, MMY1, MMX2, MMY2,20) then
begin
Mouse(gtx,gty,5,5,true);
Flag;
end else
begin
FindColorSpiralTolerance(gtx, gty, 238, MMX1, MMY1, MMX2, MMY2,30);
Mouse(gtx,gty,5,5,true);
Flag;
end;
i:=0;
backtostart:
//objx:=233;
//objy:=135;
inside:=false;
for i:=0 to 3 do
begin
if FindObjTPA(objx, objy,Numbrarray[i], 19, -1, 15, 15, 60,['pen','oor','Open Door']) then
//FindColorsSpiralTolerance( MSCX, MSCY,Doorpoint,Numbrarray[i], MSX1, MSY1, MSX2, MSY2 ,30);
writeln('Wewt');
//DP:=Middletpa(Doorpoint);
//Mouse(dp.x,dp.y,1,1,false)
Mouse(objx,objy,1,1,false);
if chooseoption('pen') then
inside:=true;
break;
end;
xpt:=xpt+1
if xpt=4 then {Tries to find door three times, incase it was open when finding}
begin
Writeln('Lost door, Exiting/Next Player');
nextplayer(false);
Exit;
end;
if not(inside) then
begin
goto backtostart;
end;
wait(2000+random(1000));
if DTMRotated(ladderdtm,gtx, gty,MSX1, MSY1, MSX2, MSY2) then
begin
nagrx:=3;
nagry:=3;
Mouse(gtx,gty,nagrx,nagry,false);
if (not(chooseoption('limb'))) then
begin
nagrx:=2;
nagry:=2;
Mouse(gtx,gty,nagrx,nagry,false);
chooseoption('limb');
end;
end else
begin
for i:=0 to 2 do
begin
case i of
0:Makecompass('0');
2:Makecompass(inttostr(3+random(3)));
1:Makecompass(inttostr(355+random(2)));
end;
Writeln('Didnt find ladder using Dtm, trying color 0 now.');
Findcolorstolerance(BuTPA,0,MSX1,MSY1,MSX2,MSY2,0);
BuTP:=MiddleTPA(BuTPA);
Mouse(Butp.x,Butp.y,1,1,false);
if chooseoption('limb') then
begin
inside:=true;
break;
end;
end;
end;
if inside then
Mouse(610,145,10,10,true); {I know im using coordinates, but its the fastest
method I can currently think of. Maybe I should use colorspiraltotolerance...}
end;
function FightNPCFindMob(Color:TintegerArray; tol: integer;Uptext:TStringArray): integer; //My first function, so...
var
x,y,fcolx,fcoly,ftd:integer;
bebs:integer;
npccolortpa,npccolortpa2:Tpointarray;
begin
if (not (LoggedIn)) or (FindDead) or (InFight) then Exit;
for ftd:=0 to high(color) do //Thanks to troll for pointing out the forgotten begin and end;
begin
x:=MSCX;
y:=MSCY;
if FindObjTPA(x, y, color[ftd], tol, -1, 15, 15, 25,Uptext)and
not(FindColor(fcolx, fcoly, 65280, x - 20, y, x + 20, y + 80)) then
begin
Mouse(x,y,2,2,true);
flag;
wait(500 + random(200));
if infight then
begin
Result:=1;
Wait(1000+random(500));
Exit;
Writeln('Haven''t Exited');
end;
end;
end;
begin
FindColorsSpiralTolerance(MMCX, MMCY,npccolorTPA, 195836, MMX1, MMY1, MMX2, MMY2,3);
npccolortpa2:=ReArrangeandShortenArray(npccolorTPA,2);
for bebs:=0 to high(npccolorTPA2) do
begin
if not(FindColorTolerance(x, y, 16711422, npccolorTPA2[bebs].x - 2, npccolorTPA2[bebs].y - 2, npccolorTPA2[bebs].x + 2,npccolorTPA2[bebs].y + 2, 5)) then
begin
Mouse(npccolorTPA2[bebs].x,npccolortpa2[bebs].y,3,3,true);
Result:=2;
FFlag(3);
exit;
end;
end;
end;
begin
Findcolorspie(npccolorTPA, 195836, 3, 0, 360, 0, 60, MMX1, MMY1, MMX2, MMY2, MMCX, MMCY);
npccolortpa2:=ReArrangeandShortenArray(npccolorTPA,2);
if (npccolorTPA[0].x <> 0 )then
begin
try
for bebs:=random(2) to high(npccolorTPA2) do
begin
Mouse(npccolorTPA2[bebs].x,npccolortpa2[bebs].y,3,3,true);
Result:=3;
FFlag(3+random(2));
Exit;
end;
except
Writeln('Wow, we must be lost or something, there are less than 1 npc dots on the minimap!');
result:=5;
exit;
finally
end;
end else
result:=4;
end;
end;
procedure pickup;
begin
end;
procedure AttackHillgiantLoop;
var
dex,dey,Timemark,x,y:integer;
tamplor:tpointarray;
endcave:Tpoint;
label
Backtostart,FightingFS1,Fight;
begin
if not(loggedin) then Exit;
Backtostart:
checkforfood;
if (invfull) or (nomorefood) then
begin
Exit;
end;
While not(invfull) or (nomorefood) do
begin;
Writeln('Looped once');
if not(loggedin) then Exit;
case random(4) of
2: Antiban;
0: begin
Antirandom;
pickup;
end;
3,1:Pickup;
end;
Fight:
Setrun(true);
case FightNPCFindMob([7578827,10535646,9615833,6458284],5,['ill']) of {Custom made function, if 1, it fights, 2,3 it ran to a minimap dot, 5, it has found less than one minimap dot}
1:begin
Writeln('1');
FightingFS1:
repeat
Wait(2000);
MarkTime(Timemark);
if checkforfood then
begin
Exit;
end;
antirandom;
until not(infight) or (timefrommark(timemark)<30000)
if timefrommark(timemark)<30000 then
begin
if infight then
begin
dex:=MSCX;
dey:=MSCY;
if FindColorSpiralTolerance(dex,dey,65280,MSX1, MSY1, MSX2, MSY2,3) then
begin
MMouse(dex,dey,2,2);
if not(Isuptextmulticustom(['ill'])) then
begin
Antirandom;
end else
goto fightingfs1;
end;
end else
end;
end;
3,2:begin
if not(infight) then
begin
Writeln('2,3');
case random(6) of
0,4: pickup;
2,3: AntiRandom;
5: AntiBan;
end;
wait(100+random(300));
end else
begin
dex:=MSCX;
dey:=MSCY;
if FindColorSpiralTolerance(dex,dey,65280,MSCX - 20, MSY1 - 20, MSX2 + 20, MSY2 + 20,3) then
begin
MMouse(dex,dey,2,2);
if not(Isuptextmulticustom(['ill'])) then
begin
Antirandom;
end;
end else
begin
repeat
if checkforfood then
begin
Exit;
end;
until not(infight) or (nomorefood);
end;
end;
end;
5:begin
Antirandom;
x:=MMCX
y:=MMCY
case random(2) of
1:begin
if FindColorsTolerance(tamplor,65536, 560, 62,697, 155,3) then
begin
Endcave:=middletpa(tamplor);
Mouse(endcave.x + random(6),endcave.y + Random(6),2,2,true);
end else
begin
Writeln('We are lost in a place that is not a dungeon.');
Players[currentplayer].active:=false;
Logout;
Exit;
end;
Antiban;
end;
2:begin
if FindColorsTolerance(tamplor,6058377, MSX1, MSY1, MSX2, MSY2,9) then
begin
Endcave:=middletpa(tamplor);
Mouse(endcave.x,endcave.y,5,5,true);
end else
begin
Writeln('We are not in the hill giant cave.');
Players[currentplayer].active:=false;
logout;
Exit;
end;
Antiban;
end;
end;
end;
end;{This is the end for the case statement}
end;{end for while statement}
end;
procedure GoToBank;
begin
end;
begin
{SmartSetupEx(21, False, True);
SetTargetDC(SmartGetDC);
while not(smartready) do
begin
wait(100);
end; }
setupsrl;
activateclient;
cleardebug;
declareplayers;
loadroad;
loginplayer;
//fightnpcfindmob([0],5,['']);
dtmbmpsetup;
//withdrawfrombank;
//gotohillgiant;
attackhillgiantloop;
{case checkforfood of
true: writeln('1');
false:writeln('2');
end;}
end.
2008-05-19 15:57:09
2008-05-20 10:01:15
2008-05-21 14:23:13
From: leelokhin
I tried to, but the legits respond way to fast.
Here it is before I gave up.program BigGiantBoneCollecter;
//{.include SRL/SRL/Misc/Smart.scar}
{.include srl\srl.scar}
{.include srl\srl\skill\fighting.scar}
const
Number=5; {Number of food to bring on each round}
var
bigbone,food,Roadddtm,WaterDTM,LadderDTM:integer;
nomorefood:boolean;
{-------------------------------------------------------
Player Setup
--------------------------------------------------------}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //username
Players[0].Pass := ''; //password
Players[0].Nick := ''; //3-4 letters from your username
Players[0].strings[0] := 'trout'; // food name
Players[0].Active := True;
end;
{----------------------------Do Not Edit Below This----------------------------}
procedure DTMBMPsetup;
begin
Bigbone := DTMFromString('78DA63E46764607000622410151CCCA003140' +
'289FE0702462120CB03550D44164602697120CB8E801A0120CB8A' +
'801A3122D47003596604D47000599604D4700259B604D4B00059C' +
'E04D430638621861A1E20CB89801A4920CB8588F071C7AF0600DA' +
'56095C');
WaterDTM := DTMFromString('78DA63BCC9C4C07091010574B41B318800694' +
'620FE0F048CBB806A181951D4D4CFD80557030260354204D45C03' +
'AA11465553DDA182A206000ABE0E84');
LadderDTM:= DTMFromString('78DA637464646078C680025CACD419E480345' +
'086E13F10307A01591F19B0024618ED03643D21A0C61CC87A4C40' +
'8D1961BB0028EC0AA2');
case Lowercase(Players[CurrentPlayer].Strings[0]) of
'lobster': food:= DTMFromString('78DA631464646088076224B03F459C4107280' +
'412FD0F048C12405610AA1A882C8C04D2D24056380135E2405632' +
'0135C240562E0135FC40562A01359C40563A01358C44A861C20C1' +
'F0C353C40562C0135A0708EC2AF0600E4290A61');
'trout': food:= DTMFromString('78DA63EC6162603063644006EDF9D90C46401' +
'A24FA1F08186700D5A8A3AA81C8C24820DD0B54A34D404D33A65D' +
'186A1A806AEC89506345404D1F508D35013533816AF48950A34B4' +
'04D27508D2D116A0CF1AB010004EA0E13');
'salmon': food:= DTMFromString('78DA637CC7C4C0D0C4C8800CAEBA4B32A4006' +
'990E87F2060BC0F54D389AA06220B2381F413A09A1E026ADE02D5' +
'741150F303A8A69608352544D8554140CD534CBF63A8B94FA49BA' +
'B08A8790954534F40CD27A09A66FC6A0089771701');
'meat': food:= DTMFromString('78DA63B465646048026224D09099CA9002A44' +
'1A2FF8180D103C80A41550391859140DA1DC88A23A00664571601' +
'350640560E01354640560A01355640560C01354E405632013520B' +
'F471050634E849B416A12F0AB0100F7380CB3');
end;
end;
procedure LoadRoad;
var
roadMPbank: TDTMPointDef;
roadSPbank: array of TDTMPointDef;
RoadDDTM: TDTM;
begin
SetArrayLength(roadSPBank, 3);
roadMPBank.x := 573;
roadMPBank.y := 104;
roadMPBank.areasize := 1;
roadMPBank.areashape := 0;
roadMPbank.color := 8752527;
roadMPbank.tolerance := 10;
roadSPbank[0].x := 572;
roadSPbank[0].y := 93;
roadSPbank[0].areasize := 1;
roadSPbank[0].areashape := 0;
roadSPbank[0].color := 8752527;
roadSPbank[0].tolerance := 10;
roadSPbank[1].x := 591;
roadSPbank[1].y := 108;
roadSPbank[1].areasize := 1;
roadSPbank[1].areashape := 0;
roadSPbank[1].color := 8752527;
roadSPbank[1].tolerance := 10;
roadSPbank[2].x := 637;
roadSPbank[2].y := 72;
roadSPbank[2].areasize := 1;
roadSPbank[2].areashape := 0;
roadSPbank[2].color := 4682620;
roadSPbank[2].tolerance := 10;
roadDDTM.MainPoint := roadMPbank;
roadDDTM.SubPoints := roadSPbank;
AddDTM(roadDDTM);
end;
procedure AntiBan;
begin
end;
function AntiRandom:boolean;
begin
findnormalrandoms;
result:=true;
end;
function checkforfood:boolean;
var
i,x,y:integer;
begin
while (HPpercent<75) and not(i=15) do
begin
gametab(4);
inc(i);
if finddtm(food,x,y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x,y,5,5,False);
Result:=True;
end else
begin
Nomorefood:=True;
Result:=True;
Writeln('No more food, going back to bank');
Exit;
end;
end;
end;
procedure WithdrawFromBank;
var
x,y:integer;
begin
case random(2) of
1: if not(Openbankquiet('vew')) then
Openbankfast('vew');
0: if not(Openbankfast('vew')) then
Openbankquiet('vew');
end;
if FindDTM(Food, x, y, 0, 0, 800, 600) then
begin
Mouse(x, y, 5, 5,false);
ChooseOption('ithdraw X');
wait(1000+random(1000));
Typesend(inttostr(Number));
Antiban;
Antirandom;
end else
writeln('Food not found. Requesting another DTM from you');
end;
procedure GoToDoor; {At the bank}
var
i,gay,gax,spx,spy,ifs,its,reps,tempx,tempy:integer;
TPARoad,TPARoad2,TPARoad3,TPARoad4,TPAWater:TPointArray;
begin
if Finddtm(roadddtm,gax,gay,MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(gax,gay,5,5,True);
FFlag(5);
end else
begin
if RadialWalkEx(tparoad2, MMCX, MMCY, 8621197, 25, 300, 220, 65) then {Ripped the following off Radialwalk and changed the tolerance}
for i := 0 to High(tparoad2) do
if MFNF(tparoad2[i].x, tparoad2[i].y, 2, 2) then
begin
FFlag(10+random(2));
Break;
end;
end;
repeat
reps:=reps+1;
writeln('2');
if RadialWalkEx(tparoad, MMCX, MMCY, 8621197, 18, 195, 255, 65) then
for i := 0 to High(tparoad) do
if MFNF(tparoad[i].x, tparoad[i].y, 2, 2) then
begin
FFlag(10+random(2));
Break;
end;
until(reps=2)
writeln('3');
if RadialWalkEx(tparoad3, MMCX, MMCY, 8621197, 18, 240, 300, 65) then
for i := 0 to High(tparoad3) do
if MFNF(tparoad3[i].x, tparoad3[i].y, 2, 2) then
begin
FFlag(10+random(2));
Break;
end;
spx:=595
spy:=50
if FindColorSpiralTolerance(spx,spy, 2527604, MMX1, MMY1, MMX2, MMY2,15)then
begin
Mouse(spx,spy,10,10,true);
FFlag(5);
spx:=595
spy:=50
FindColorSpiralTolerance(spx,spy, 2527604, MMX1, MMY1, MMX2, MMY2,15);
Mouse(spx,spy,10,10,true);
DTMRotated(waterdtm,tempx, tempy,MMX1, MMY1, MMX2, MMY2);
MMouse(tempx,tempy,1,1);
end else
begin
repeat
ifs:=ifs+1
if RadialWalkEx(tparoad4, MMCX, MMCY, 7435130, 18, 240, 300, 65) then
for i := 0 to High(tparoad4) do
if MFNF(tparoad4[i].x, tparoad4[i].y, 2, 2) then
begin
FFlag(10+random(2));
Break;
end;
until(ifs=2)
end;
if DTMRotated(waterdtm,tempx, tempy,MMX1, MMY1, MMX2, MMY2) then
begin
MMouse(tempx,tempy,1,1);
end;
repeat
its:=its+1
if RadialWalkEx(tpawater, MMCX, MMCY, 2261365, 20, 0, 45, 65) then
for i := 0 to High(tpawater) do
if MFNF(tpawater[i].x, tpawater[i].y, 2, 2) then
begin
FFlag(10+random(2));
Break;
end;
until(its=2);
end;
procedure GotoHillgiant;
var
GTx,GTy,objy,objx,nagrx,nagry,xpt,i:integer;
NumbrArray : Array [0..3] of Integer;
Doorpoint,Butpa:TpointArray;
DP,butp:Tpoint;
inside:boolean;
label
Backtostart;
begin
Numbrarray[0]:=2320775;
Numbrarray[1]:=2121338;
numbrarray[2]:=602948;
Numbrarray[3]:=2651543;
gtx:=596;
gty:=19;
if FindColorSpiralTolerance(gtx, gty, 238, MMX1, MMY1, MMX2, MMY2,20) then
begin
Mouse(gtx,gty,5,5,true);
Flag;
end else
begin
FindColorSpiralTolerance(gtx, gty, 238, MMX1, MMY1, MMX2, MMY2,30);
Mouse(gtx,gty,5,5,true);
Flag;
end;
i:=0;
backtostart:
//objx:=233;
//objy:=135;
inside:=false;
for i:=0 to 3 do
begin
if FindObjTPA(objx, objy,Numbrarray[i], 19, -1, 15, 15, 60,['pen','oor','Open Door']) then
//FindColorsSpiralTolerance( MSCX, MSCY,Doorpoint,Numbrarray[i], MSX1, MSY1, MSX2, MSY2 ,30);
writeln('Wewt');
//DP:=Middletpa(Doorpoint);
//Mouse(dp.x,dp.y,1,1,false)
Mouse(objx,objy,1,1,false);
if chooseoption('pen') then
inside:=true;
break;
end;
xpt:=xpt+1
if xpt=4 then {Tries to find door three times, incase it was open when finding}
begin
Writeln('Lost door, Exiting/Next Player');
nextplayer(false);
Exit;
end;
if not(inside) then
begin
goto backtostart;
end;
wait(2000+random(1000));
if DTMRotated(ladderdtm,gtx, gty,MSX1, MSY1, MSX2, MSY2) then
begin
nagrx:=3;
nagry:=3;
Mouse(gtx,gty,nagrx,nagry,false);
if (not(chooseoption('limb'))) then
begin
nagrx:=2;
nagry:=2;
Mouse(gtx,gty,nagrx,nagry,false);
chooseoption('limb');
end;
end else
begin
for i:=0 to 2 do
begin
case i of
0:Makecompass('0');
2:Makecompass(inttostr(3+random(3)));
1:Makecompass(inttostr(355+random(2)));
end;
Writeln('Didnt find ladder using Dtm, trying color 0 now.');
Findcolorstolerance(BuTPA,0,MSX1,MSY1,MSX2,MSY2,0);
BuTP:=MiddleTPA(BuTPA);
Mouse(Butp.x,Butp.y,1,1,false);
if chooseoption('limb') then
begin
inside:=true;
break;
end;
end;
end;
if inside then
Mouse(610,145,10,10,true); {I know im using coordinates, but its the fastest
method I can currently think of. Maybe I should use colorspiraltotolerance...}
end;
function FightNPCFindMob(Color:TintegerArray; tol: integer;Uptext:TStringArray): integer; //My first function, so...
var
x,y,fcolx,fcoly,ftd:integer;
bebs:integer;
npccolortpa,npccolortpa2:Tpointarray;
begin
if (not (LoggedIn)) or (FindDead) or (InFight) then Exit;
for ftd:=0 to high(color) do //Thanks to troll for pointing out the forgotten begin and end;
begin
x:=MSCX;
y:=MSCY;
if FindObjTPA(x, y, color[ftd], tol, -1, 15, 15, 25,Uptext)and
not(FindColor(fcolx, fcoly, 65280, x - 20, y, x + 20, y + 80)) then
begin
Mouse(x,y,2,2,true);
flag;
wait(500 + random(200));
if infight then
begin
Result:=1;
Wait(1000+random(500));
Exit;
Writeln('Haven''t Exited');
end;
end;
end;
begin
FindColorsSpiralTolerance(MMCX, MMCY,npccolorTPA, 195836, MMX1, MMY1, MMX2, MMY2,3);
npccolortpa2:=ReArrangeandShortenArray(npccolorTPA,2);
for bebs:=0 to high(npccolorTPA2) do
begin
if not(FindColorTolerance(x, y, 16711422, npccolorTPA2[bebs].x - 2, npccolorTPA2[bebs].y - 2, npccolorTPA2[bebs].x + 2,npccolorTPA2[bebs].y + 2, 5)) then
begin
Mouse(npccolorTPA2[bebs].x,npccolortpa2[bebs].y,3,3,true);
Result:=2;
FFlag(3);
exit;
end;
end;
end;
begin
Findcolorspie(npccolorTPA, 195836, 3, 0, 360, 0, 60, MMX1, MMY1, MMX2, MMY2, MMCX, MMCY);
npccolortpa2:=ReArrangeandShortenArray(npccolorTPA,2);
if (npccolorTPA[0].x <> 0 )then
begin
try
for bebs:=random(2) to high(npccolorTPA2) do
begin
Mouse(npccolorTPA2[bebs].x,npccolortpa2[bebs].y,3,3,true);
Result:=3;
FFlag(3+random(2));
Exit;
end;
except
Writeln('Wow, we must be lost or something, there are less than 1 npc dots on the minimap!');
result:=5;
exit;
finally
end;
end else
result:=4;
end;
end;
procedure pickup;
begin
end;
procedure AttackHillgiantLoop;
var
dex,dey,Timemark,x,y:integer;
tamplor:tpointarray;
endcave:Tpoint;
label
Backtostart,FightingFS1,Fight;
begin
if not(loggedin) then Exit;
Backtostart:
checkforfood;
if (invfull) or (nomorefood) then
begin
Exit;
end;
While not(invfull) or (nomorefood) do
begin;
Writeln('Looped once');
if not(loggedin) then Exit;
case random(4) of
2: Antiban;
0: begin
Antirandom;
pickup;
end;
3,1:Pickup;
end;
Fight:
Setrun(true);
case FightNPCFindMob([7578827,10535646,9615833,6458284],5,['ill']) of {Custom made function, if 1, it fights, 2,3 it ran to a minimap dot, 5, it has found less than one minimap dot}
1:begin
Writeln('1');
FightingFS1:
repeat
Wait(2000);
MarkTime(Timemark);
if checkforfood then
begin
Exit;
end;
antirandom;
until not(infight) or (timefrommark(timemark)<30000)
if timefrommark(timemark)<30000 then
begin
if infight then
begin
dex:=MSCX;
dey:=MSCY;
if FindColorSpiralTolerance(dex,dey,65280,MSX1, MSY1, MSX2, MSY2,3) then
begin
MMouse(dex,dey,2,2);
if not(Isuptextmulticustom(['ill'])) then
begin
Antirandom;
end else
goto fightingfs1;
end;
end else
end;
end;
3,2:begin
if not(infight) then
begin
Writeln('2,3');
case random(6) of
0,4: pickup;
2,3: AntiRandom;
5: AntiBan;
end;
wait(100+random(300));
end else
begin
dex:=MSCX;
dey:=MSCY;
if FindColorSpiralTolerance(dex,dey,65280,MSCX - 20, MSY1 - 20, MSX2 + 20, MSY2 + 20,3) then
begin
MMouse(dex,dey,2,2);
if not(Isuptextmulticustom(['ill'])) then
begin
Antirandom;
end;
end else
begin
repeat
if checkforfood then
begin
Exit;
end;
until not(infight) or (nomorefood);
end;
end;
end;
5:begin
Antirandom;
x:=MMCX
y:=MMCY
case random(2) of
1:begin
if FindColorsTolerance(tamplor,65536, 560, 62,697, 155,3) then
begin
Endcave:=middletpa(tamplor);
Mouse(endcave.x + random(6),endcave.y + Random(6),2,2,true);
end else
begin
Writeln('We are lost in a place that is not a dungeon.');
Players[currentplayer].active:=false;
Logout;
Exit;
end;
Antiban;
end;
2:begin
if FindColorsTolerance(tamplor,6058377, MSX1, MSY1, MSX2, MSY2,9) then
begin
Endcave:=middletpa(tamplor);
Mouse(endcave.x,endcave.y,5,5,true);
end else
begin
Writeln('We are not in the hill giant cave.');
Players[currentplayer].active:=false;
logout;
Exit;
end;
Antiban;
end;
end;
end;
end;{This is the end for the case statement}
end;{end for while statement}
end;
procedure GoToBank;
begin
end;
begin
{SmartSetupEx(21, False, True);
SetTargetDC(SmartGetDC);
while not(smartready) do
begin
wait(100);
end; }
setupsrl;
activateclient;
cleardebug;
declareplayers;
loadroad;
loginplayer;
//fightnpcfindmob([0],5,['']);
dtmbmpsetup;
//withdrawfrombank;
//gotohillgiant;
attackhillgiantloop;
{case checkforfood of
true: writeln('1');
false:writeln('2');
end;}
end.
DONT GIVE UP!
2008-05-21 14:28:58