T
tehkiller
Guest
Code:
SpellDummy;
begin {.include SRL\SRL.scar}
{.include SRL\SRL\skill\magic.scar}
var
NumOfCurses:Integer;
AntiBann:Integer;
AB:Integer;
StartXP,EndXP,TotalXP:Integer;
zx,zy:Integer;
{CurBMP,CruBMP:Integer; (for a future update}
{---------------------------------------------------------}
{ SETUP }
{---------------------------------------------------------}
const
RunAwayDir = 'S'; // Direction to run away. N,S,E or W (Choose Well)
CursesToDo = 942; // Set this properly,
DummyColor = 1327702; // Colour of your dummy
DummyName = 'Chicken'; // Dummys name eg. 'Chicken'
CrumbleUndead = False; // Use Crumble Undead?
MouseSpeeed = 7; // Lower is Faster, (idea from fours)
{---------------------------------------------------------}
{ Declare Players }
{---------------------------------------------------------}
Procedure DeclarePlayers;
begin
Status('Loading Players')
HowManyPlayers := 1;
NumberOfPlayers( HowManyPlayers );
CurrentPlayer := 0;
Players[0].Name := '-------';
Players[0].Pass := '----------';
Players[0].Nick := '----'; // 3-4 letters of username
Players[0].Active := True;
end;
{---------------------------------------------------------}
{ Find Talk + Fights }
{---------------------------------------------------------}
//WT-Fakawi
Function FindFastRandoms: Boolean;
var
i: Integer;
begin
for i:=1 to 8 do
begin
case I of
1: If FindDead then
Result := True;
2: If FindMod then
Result := True;
3: If FindMime then
Result := True;
4: If FindMaze then
Result := True;
5: If FindQuiz then
Result := True;
6: If FindDemon then
Result := True;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
end;
end;
8: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
8: RC;
end;
wait(1);
end;
end;
{---------------------------------------------------------}
{ Find Talk + Fights }
{---------------------------------------------------------}
procedure TalkingRandoms;
begin
FindTalk;
wait(10)
FindFastRandoms;
wait(10);
if (FindFight = true) then
begin
RunAwayDirection('N');
Wait(10000 + random(2000));
RunBack;
end;
FindTalk;
end;
{---------------------------------------------------------}
{ Load BMPS (future update) }
{---------------------------------------------------------}
{procedure LoadBMPS;
begin
CurBMP := BitmapFromString(8, 8, 'z78DA3330000243537' +
'3537347375CA401580D26895FA5A3A58199AB0B84C46502A6CAC1' +
'4312EF36FC7EC1197A26268EC64E00195D5483');
CruBMP := BitmapFromString(6, 6, 'z78DA7335733577337' +
'3C5200D40C0104242440C4D0DCD0D2C2124A64A4C35C82A495583' +
'DF3D105D4ECECE46CE0698B2A666262E26460024D32EFF');
end;}
{---------------------------------------------------------}
{ Antiban Case }
{---------------------------------------------------------}
Procedure AntiBannage; //Got examples from Chamrz
begin
AB:= Random(8)+1;
FindTalk;
Case AB of
1 : SleepAndMoveMouse(750+Random(2000));
2 : SendArrowSilentWait(((Random(2)*2)), 1000+Random(200));
3 : SendArrowSilentWait(((Random(2)*2) + 1), 200+Random(200));
4 : SendArrowSilentWait(((Random(2)*2)), 200+Random(200));
5 : SendArrowSilentWait(((Random(2)*2) + 1), 20+Random(20));
6 : begin GameTab(1+Random(7)) Wait(Random(300)) GameTab(4) end;
7 : IdleTime(500, 500, 1.0);
8 : begin GameTab(1+Random(7)) Wait(Random(300)) GameTab(4) end;
9 : IdleTime(300, 200, 2.0);
end;
FindTalk;
end;
{---------------------------------------------------------}
{ Random Case Randoms }
{---------------------------------------------------------}
Procedure NormalRandoms;
begin
if(not(LoggedIn))then Exit;
AntiBann:= 1 + Random(9)
case AntiBann of
1: FindNormalRandoms;
2: AntiBannage;
3: AntiBannage;
4: AntiBannage;
5: AntiBannage;
end;
end;
{---------------------------------------------------------}
{ PROGRESS REPORT }
{---------------------------------------------------------}
procedure Report;
begin
ClearDebug;
SRLRandomsReport;
WriteLn('>--------------------<>--------------------<')
WriteLn('> neGs Dummy Curser - Progress Report ')
WriteLn('> ')
WriteLn('> Running Time: ' + (TimeRunning) +'')
WriteLn('> Curses Cast: ' + IntToStr (NumOfCurses) +'')
WriteLn('> XP Gained: ' + IntToStr (TotalXP) +'')
WriteLn('>--------------------<>--------------------<')
end;
{---------------------------------------------------------}
{ CURSING PROCEDURE }
{---------------------------------------------------------}
var i,tries:integer;
procedure CurseDummy;
begin
GameTab(7);
if(not(LoggedIn))then Exit;
if(CrumbleUndead)then
begin
GameTab(7);
wait(300)
if (GetColor(599,307)=15533737)then
begin
Cast('Crumble Undead');
TalkingRandoms;
FindObj(zx,zy,DummyName,DummyColor,10);
MMouse(zx,zy,0,0)
if (IsUpText(DummyName))then
begin
Mouse(zx,zy,0,0,true)
end else
begin
CurseDummy;
end;
TalkingRandoms;
NumOfCurses:=NumOfCurses+1
i:=i+1
end else
begin
WriteLn('Not enough runes for cast.'); Wait(500);
WriteLn('Logging out.');
Logout;
Exit;
end;
end else
begin
GameTab(7);
wait(300)
if (GetColor(669,265)=15533737)then
begin
Cast('Curse');
TalkingRandoms;
FindObj(zx,zy,DummyName,DummyColor,10);
MMouse(zx,zy,0,0)
if (IsUpText(DummyName))then
begin
Mouse(zx,zy,0,0,true)
end else
begin
CurseDummy;
end;
TalkingRandoms;
NumOfCurses:=NumOfCurses+1
i:=i+1
end else
begin
WriteLn('Not enough runes for cast.'); Wait(500);
WriteLn('Logging out.');
Logout;
Exit;
end;
end;
if (i>13+random(4)) then
begin
EndXP := GetXp('Magic')
wait(10);
TotalXP := (EndXP - StartXP) + (TotalXP)
wait(10)
Report;
i:=0
end;
end;
{---------------------------------------------------------}
{ MAIN LOOP }
{---------------------------------------------------------}
begin
SetupSRL;
ActivateClient;
DeclarePlayers;
Newline := Newline;
MouseSpeed:=MouseSpeeed+random(2);
begin
if(not(LoggedIn))then
begin
Status('Logging In')
Loginplayer;
HighestAngle;
MouseSpeed:=MouseSpeeed+random(2);
end;
end;
repeat
StartXP := GetXp('Magic')
repeat
MouseSpeed:=MouseSpeeed+random(2);
CurseDummy;
NormalRandoms;
if(not(LoggedIn))then NextPlayer(False)
until(NumOfCurses=CursesToDo);
LogOut;
NextPlayer(True);
NumOfCurses := 0;
HighestAngle;
StartXP := GetXp('Magic')
If(Not(LoggedIn))Then NextPlayer(False)
until(false);


