Would appreciate it if a mod could change the title of this thread to | Runespan - Al's All-Esswraith Siphoners (Node Support) |.
[May 21st, 2012] I have finally gotten a Soul Wraith script up! Sorry for the delay everyone. Please report any bugs as I am not lvl 90 Runecrafting and unable to test it for myself.
As I have been progressing through Runespan from Runecrafting level 54, I have been writing scripts for the monster I am going to camp and siphon from. If you are below Runecrafting level 66 then you can go here to use my Runespan Law Esshound script to get to level 66 Runecrafting.
Death Wraith Script
If you are level 66 Runecrafting then you are ready to give my Death esswraith script a go.
Features
- Checks if you have essence upon log in and if not collects some from floating essence. (Have essence in first inventory slot)
- Checks for nodes (chaotic to skulls) and siphons if any are up
- If there are no nodes up then it will siphon a Death esswraith (searches for node with highest xp first)
- If a node appears during a Death esswraith siphon then it will switch to the node
- Checks for randoms and preforms antiban while siphoning
- Checks for siphoning by searching for the white "puffs" in a box around your character (does not work as well on a highly populated island)
- Debug box proggy that shows time running, xp gained, and xp per hour (have your first counter set to Runecrafting and reset it to zero before starting to ensure accurate xp display)
I believe that are all the features. So far I have used this script from 66 to 75. I will be tweaking it for Blood esswraiths as soon as I hit 77!
So start on an island that has a Death esswraith spawn, essence in your first slot if you have any, hit start, and enjoy!
http://i.imgur.com/q9JSL.png
Sample progress report!
Simba Code:
Program DeathWraithSiphon;
{$DEFINE SMART}
{$i srl/srl.simba}
Const
World = 00; /// Find a world where there is a less populated Death Esswraith.
AttackTimer = 6500; /// Wouldn't touch this unless you know what you're doing.
Var
X,Y,XPO,XPN,XPH,TimeGone,K,EA,AntiBan_C:Integer;
Area1,Area2: Tbox;
last_antiban: String;
Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :=''; // Enter your username here.
Players[0].Pass :=''; // Enter your password here.
Players[0].Nick :=''; // Enter nickname for progres report.
Players[0].Active:=True;
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins'];
Players[0].WorldInfo := [False, World];
End;
/// Courtesy of Oleaa ///
Procedure AntiBan;
Begin
Case Random(20000) Of
100..199: begin
SleepAndMoveMouse(RandomRange(500,750));
Antiban_C := Antiban_C + 1;
last_antiban := 'Sleep and Move Mouse';
end;
200..250: begin
HoverSkill('Runecrafting',False);
Wait(1500);
Wait(Random(12000));
Antiban_C := Antiban_C + 1;
last_antiban := 'Hover Skill "runecrafting"';
end;
251..390: begin
RandomRClick;
Antiban_C := Antiban_C + 1;
last_antiban := 'Random Right Click"';
end;
391..450: begin
HoverSkill('random',False);
Wait(3400);
Wait(Random(12000));
GameTab(25);
Antiban_C := Antiban_C + 1;
last_antiban := 'Hover random skill.';
end;
End;
Wait(1000);
End;
Procedure IfRandoms;
Begin
FindNormalRandoms;
AntiBan;
End;
Procedure Proggy;
Begin
ClearDebug;
K := (0)
TimeGone := (GetTimeRunning/1000);
XPN := ((GetXPBar(1))-XPO);
XPH := ((3600*(XPN))/(TimeGone));
Writeln('Time Ran : '+MsToTime(GetTimeRunning,Time_Bare));
Writeln('Gained Xp : '+IntToStr(XPN));
Writeln('Exp/hr : '+IntToStr(XPH));
End;
Function FloatingEss(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.00, 0.10);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4342853, MSX1, MSY1, MSX2, MSY2, 5);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Floa','ting','ng es','ess','ence'],1500)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Procedure CheckEss;
Begin
MMouse(576,230,5,5);
If (WaitUpTextMulti(['ess','ssen','senc','ence'],3000)) Then
Begin
Writeln('Found ess in first slot, commence the siphoning!');
Exit;
End Else
Repeat
IncEx(EA,1);
If (FloatingEss(X,Y)) Then ClickMouse2(True) Else Exit;
Until(DidRedClick or (EA>=5));
End;
Function IsAttack: Boolean;
Var
CTS: Integer;
TPA: TPointArray;
Begin
CTS := GetColorToleranceSpeed;
Begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.20, 0.82);
FindColorsSpiralTolerance(x, y, TPA, 13812937, 250, 135, 275, 170, 12);
ColorToleranceSpeed(CTS);
result := (Length(TPA) > 0);
If result Then
Exit;
End;
End;
Function FindSkulls(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 1.84);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 8435917, MSX1, MSY1, MSX2, MSY2, 11);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Sku', 'ulls'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindChoatic(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(1.97, 3.46);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1510943, MSX1, MSY1, MSX2, MSY2, 4);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Chao', 'tic cl', 'cloud', 'chaotic'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindJumper(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.01, 3.52);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 15967304, MSX1, MSY1, MSX2, MSY2, 3);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Siphon Jumper', 'on Jum', 'Jumper', 'mper'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindNebula(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.56, 2.05);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 8985730, MSX1, MSY1, MSX2, MSY2, 4);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Siphon Nebula', 'on Neb', 'Nebula', 'bula'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindShifter(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 1.70);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1830421, MSX1, MSY1, MSX2, MSY2, 7);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Siphon Shifter', 'on Shi', 'Shifter', 'ifter'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindMonster(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.07, 0.57);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 5672059, MSX1, MSY1, MSX2, MSY2, 20);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Dea','eath','th ess','wrai','aith'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Procedure AttackWait;
Var
T: Integer;
Begin
Writeln('Waiting until node is destroyed!');
Marktime(T);
Repeat
If (K>=3) Then Proggy;
If IsAttack Then Marktime(T);;
AntiBan;
IfRandoms;
Until(TimeFromMark(T) >= (AttackTimer+(RandomRange(300,600))));
End;
Procedure AttackNode;
Begin;
If FindSkulls(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If FindJumper(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If FindShifter(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If FindNebula(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If FindChoatic(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
Exit;
End;
Procedure AttackWait2;
Var
T: Integer;
Begin
Writeln('Waiting until wraith is destroyed or high level node spawns!');
Marktime(T);
Repeat
If (K>=3) Then Proggy;
If IsAttack Then Marktime(T);
AttackNode;
AntiBan;
IfRandoms;
Until(TimeFromMark(T) >= (AttackTimer+(RandomRange(300,600))));
End;
Procedure AttackMonster;
Begin
If FindMonster(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait2;
End;
End;
End;
Procedure MainLoop;
Begin
Area1 := IntToBox(10,25,55,180);
Area2 := IntToBox(245,135,290,185);
CheckEss;
MakeCompass('N');
SetAngle(0);
Repeat
AttackNode;
AttackMonster;
Until (False);
End;
Begin;
ClearDebug;
MouseSpeed := RandomRange(10,20);
Smart_Server := 00;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False
SetupSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
XPO := GetXpBar(1);
K := (0);
MakeCompass('N');
SetAngle(0);
ClearDebug;
MainLoop;
End.
Blood Wraith Script
If you are level 77 Runecrafting then you are ready to give my Blood esswraith script a go.
Features
- Checks if you have essence upon log in and if not collects some from floating essence. (Have essence in first inventory slot)
- Checks for nodes (nebula to bloody skulls) and siphons if any are up
- If there are no nodes up then it will siphon a Blood esswraith (searches for node with highest xp first)
- If a node appears during a Blood esswraith siphon then it will switch to the node
- Checks for randoms and preforms antiban while siphoning
- Checks for siphoning by searching for the white "puffs" in a box around your character (does not work as well on a highly populated island)
- Debug box proggy that shows time running, xp gained, and xp per hour (have your first counter set to Runecrafting and reset it to zero before starting to ensure accurate xp display)
http://i.imgur.com/rrp1J.png
A sample proggy!
Simba Code:
Program BloodWraithSiphon;
{$DEFINE SMART}
{$i srl/srl.simba}
Const
World = 00; /// Find a world where there is a less populated Blood Esswraith.
AttackTimer = 6500; /// Wouldn't touch this unless you know what you're doing.
Var
X,Y,XPO,XPN,XPH,TimeGone,K,EA,AntiBan_C:Integer;
Area1,Area2: Tbox;
last_antiban: String;
Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :=''; // Enter your username here.
Players[0].Pass :=''; // Enter your password here.
Players[0].Nick :=''; // Enter nickname for progres report.
Players[0].Active:=True;
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins'];
Players[0].WorldInfo := [False, World];
End;
/// Courtesy of Oleaa ///
Procedure AntiBan;
Begin
Case Random(20000) Of
100..199: begin
SleepAndMoveMouse(RandomRange(500,750));
Antiban_C := Antiban_C + 1;
last_antiban := 'Sleep and Move Mouse';
end;
200..250: begin
HoverSkill('Runecrafting',False);
Wait(1500);
Wait(Random(12000));
Antiban_C := Antiban_C + 1;
last_antiban := 'Hover Skill "runecrafting"';
end;
251..390: begin
RandomRClick;
Antiban_C := Antiban_C + 1;
last_antiban := 'Random Right Click"';
end;
391..450: begin
HoverSkill('random',False);
Wait(3400);
Wait(Random(12000));
GameTab(25);
Antiban_C := Antiban_C + 1;
last_antiban := 'Hover random skill.';
end;
End;
Wait(1000);
End;
Procedure IfRandoms;
Begin
FindNormalRandoms;
AntiBan;
End;
Procedure Proggy;
Begin
ClearDebug;
K := (0)
TimeGone := (GetTimeRunning/1000);
XPN := ((GetXPBar(1))-XPO);
XPH := ((3600*(XPN))/(TimeGone));
Writeln('Time Ran : '+MsToTime(GetTimeRunning,Time_Bare));
Writeln('Gained Xp : '+IntToStr(XPN));
Writeln('Exp/hr : '+IntToStr(XPH));
End;
Function FloatingEss(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.00, 0.10);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4342853, MSX1, MSY1, MSX2, MSY2, 5);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Floa','ting','ng es','ess','ence'],1500)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Procedure CheckEss;
Begin
MMouse(576,230,5,5);
If (WaitUpTextMulti(['ess','ssen','senc','ence'],3000)) Then
Begin
Writeln('Found ess in first slot, commence the siphoning!');
Exit;
End Else
Repeat
IncEx(EA,1);
If (FloatingEss(X,Y)) Then ClickMouse2(True) Else Exit;
Until(DidRedClick or (EA>=5));
End;
Function IsAttack: Boolean;
Var
CTS: Integer;
TPA: TPointArray;
Begin
CTS := GetColorToleranceSpeed;
Begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.25, 1.02);
FindColorsSpiralTolerance(x, y, TPA, 14471124, 250, 135, 275, 170, 8);
ColorToleranceSpeed(CTS);
result := (Length(TPA) > 0);
If result Then
Exit;
End;
End;
Function FindBSkulls(x, y: Integer): Boolean;
Var
CTS,I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.15, 1.52);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 396358, MSX1, MSY1, MSX2, MSY2, 2);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Bloody', 'skulls', 'oody', 'kulls'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindBPool(x, y: Integer): Boolean;
Var
CTS,I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 1.70);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1252488, MSX1, MSY1, MSX2, MSY2, 3);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 1.84);
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Blo','ood','poo','ool'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindSkulls(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 1.84);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 8435917, MSX1, MSY1, MSX2, MSY2, 11);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Sku', 'ulls'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindChoatic(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(1.97, 3.46);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1510943, MSX1, MSY1, MSX2, MSY2, 4);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Chao', 'tic cl', 'cloud', 'chaotic'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindJumper(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.01, 3.52);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 15967304, MSX1, MSY1, MSX2, MSY2, 3);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Jum', 'ump', 'umper'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindNebula(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.56, 2.05);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 8985730, MSX1, MSY1, MSX2, MSY2, 4);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Nebu', 'bula'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindShifter(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 1.70);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1830421, MSX1, MSY1, MSX2, MSY2, 7);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Shif', 'ifter', 'ift'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindMonster(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.12, 0.72);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 6263962, MSX1, MSY1, MSX2, MSY2, 15);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Bloo','ood','od ess','wrai','aith'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Procedure AttackWait;
Var
T: Integer;
Begin
Writeln('Waiting until node is destroyed!');
Marktime(T);
Repeat
If (K>=3) Then Proggy;
If IsAttack Then Marktime(T);;
AntiBan;
IfRandoms;
Until(TimeFromMark(T) >= (AttackTimer+(RandomRange(300,600))));
End;
Procedure AttackNode;
Begin;
If FindBSkulls(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If FindBPool(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If FindSkulls(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If FindJumper(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If FindShifter(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If FindNebula(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
IfRandoms;
Exit;
End;
Procedure AttackWait2;
Var
T: Integer;
Begin
Writeln('Waiting until wraith is destroyed or high level node spawns!');
Marktime(T);
Repeat
If (K>=3) Then Proggy;
If IsAttack Then Marktime(T);
AttackNode;
AntiBan;
IfRandoms;
Until(TimeFromMark(T) >= (AttackTimer+(RandomRange(300,600))));
End;
Procedure AttackMonster;
Begin
If FindMonster(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait2;
End;
End;
IfRandoms;
End;
Procedure MainLoop;
Begin
Area1 := IntToBox(10,25,55,180);
Area2 := IntToBox(215,135,290,190);
CheckEss;
MakeCompass('N');
SetAngle(0);
Repeat
AttackNode;
AttackMonster;
Until (False);
End;
Begin;
ClearDebug;
MouseSpeed := RandomRange(10,20);
Smart_Server := 00;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False
SetupSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
XPO := GetXpBar(1);
K := (0);
MakeCompass('N');
SetAngle(0);
ClearDebug;
GameTab(25);
MainLoop;
End.
Soul Wraith Script
If you are level 90 Runecrafting then you are ready to give my Blood esswraith script a go.
Features
- Checks if you have essence upon log in and if not collects some from floating essence. (Have essence in first inventory slot)
- Checks for nodes (jumper to undead souls) and siphons if any are up
- If there are no nodes up then it will siphon a Blood esswraith (searches for node with highest xp first)
- If a node appears during a Blood esswraith siphon then it will switch to the node
- Checks for randoms and preforms antiban while siphoning
- Checks for siphoning by searching for the white "puffs" in a box around your character (does not work as well on a highly populated island)
- Debug box proggy that shows time running, xp gained, and xp per hour (have your first counter set to Runecrafting and reset it to zero before starting to ensure accurate xp display)
(Someone get me one please!)
A sample proggy!
Simba Code:
Program SoulWraithSiphon;
{$DEFINE SMART}
{$i srl/srl.simba}
Const
World = 00; /// Find a world where there is a less populated Blood Esswraith.
AttackTimer = 6500; /// Wouldn't touch this unless you know what you're doing.
Var
X,Y,XPO,XPN,XPH,TimeGone,K,EA,AntiBan_C:Integer;
Area1,Area2: Tbox;
last_antiban: String;
Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :=''; // Enter your username here.
Players[0].Pass :=''; // Enter your password here.
Players[0].Nick :=''; // Enter nickname for progres report.
Players[0].Active:=True;
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins'];
Players[0].WorldInfo := [False, World];
End;
/// Courtesy of Oleaa ///
Procedure AntiBan;
Begin
Case Random(20000) Of
100..199: begin
SleepAndMoveMouse(RandomRange(500,750));
Antiban_C := Antiban_C + 1;
last_antiban := 'Sleep and Move Mouse';
end;
200..250: begin
HoverSkill('Runecrafting',False);
Wait(1500);
Wait(Random(12000));
Antiban_C := Antiban_C + 1;
last_antiban := 'Hover Skill "runecrafting"';
end;
251..390: begin
RandomRClick;
Antiban_C := Antiban_C + 1;
last_antiban := 'Random Right Click"';
end;
391..450: begin
HoverSkill('random',False);
Wait(3400);
Wait(Random(12000));
GameTab(25);
Antiban_C := Antiban_C + 1;
last_antiban := 'Hover random skill.';
end;
End;
Wait(1000);
End;
Procedure IfRandoms;
Begin
FindNormalRandoms;
AntiBan;
End;
Procedure Proggy;
Begin
ClearDebug;
K := (0)
TimeGone := (GetTimeRunning/1000);
XPN := ((GetXPBar(1))-XPO);
XPH := ((3600*(XPN))/(TimeGone));
Writeln('Time Ran : '+MsToTime(GetTimeRunning,Time_Bare));
Writeln('Gained Xp : '+IntToStr(XPN));
Writeln('Exp/hr : '+IntToStr(XPH));
End;
Function FloatingEss(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.00, 0.10);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4342853, MSX1, MSY1, MSX2, MSY2, 5);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Floa','ting','ng es','ess','ence'],1500)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Procedure CheckEss;
Begin
MMouse(576,230,5,5);
If (WaitUpTextMulti(['ess','ssen','senc','ence'],3000)) Then
Begin
Writeln('Found ess in first slot, commence the siphoning!');
Exit;
End Else
Repeat
IncEx(EA,1);
If (FloatingEss(X,Y)) Then ClickMouse2(True) Else Exit;
Until(DidRedClick or (EA>=5));
End;
Function IsAttack: Boolean;
Var
CTS: Integer;
TPA: TPointArray;
Begin
CTS := GetColorToleranceSpeed;
Begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.25, 1.02);
FindColorsSpiralTolerance(x, y, TPA, 14471124, 250, 135, 275, 170, 8);
ColorToleranceSpeed(CTS);
result := (Length(TPA) > 0);
If result Then
Exit;
End;
End;
Function USoul(x, y: Integer): Boolean;
Var
CTS,I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.48, 0.61);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 10979231, MSX1, MSY1, MSX2, MSY2, 4);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['ndead', 'oul', 'ndead So', 'd Soul'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function LSoul(x, y: Integer): Boolean;
Var
CTS,I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.51, 0.99);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 12867973, MSX1, MSY1, MSX2, MSY2, 9);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Siphon Living', 'on Liv', 'iving', 'oul'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindBSkulls(x, y: Integer): Boolean;
Var
CTS,I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.15, 1.52);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 396358, MSX1, MSY1, MSX2, MSY2, 2);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Bloody', 'skulls', 'oody', 'kulls'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindBPool(x, y: Integer): Boolean;
Var
CTS,I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 1.70);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1252488, MSX1, MSY1, MSX2, MSY2, 3);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 1.84);
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Blo','ood','poo','ool'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindSkulls(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 1.84);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 8435917, MSX1, MSY1, MSX2, MSY2, 11);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Sku', 'ulls'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindJumper(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.01, 3.52);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 15967304, MSX1, MSY1, MSX2, MSY2, 3);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['Jum', 'ump', 'umper'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Function FindMonster(x, y: Integer): Boolean;
Var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.25, 1.01);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 6251056, MSX1, MSY1, MSX2, MSY2, 24);
ColorToleranceSpeed(CTS);
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area1));
TPA:= ClearTPAFromTPA(TPA, TPAFromBox(Area2));
ATPA := TPAToATPAEx(TPA, 30, 30);
For I := 0 To High(ATPA) Do
Begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
If(WaitUpTextMulti(['oul ess', 'iphon So', 'oul essw', 'Siphon Soul esswraith'],800)) Then
Begin
Result := True;
GetMousePos(x, y);
Break;
End;
End;
End;
Procedure AttackWait;
Var
T: Integer;
Begin
Writeln('Waiting until node is destroyed!');
Marktime(T);
Repeat
If (K>=3) Then Proggy;
If IsAttack Then Marktime(T);;
AntiBan;
IfRandoms;
Until(TimeFromMark(T) >= (AttackTimer+(RandomRange(300,600))));
End;
Procedure AttackNode;
Begin;
If USoul(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If LSoul(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If FindBSkulls(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If FindBPool(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If FindSkulls(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
If FindJumper(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait;
AttackNode;
End;
End;
IfRandoms;
Exit;
End;
Procedure AttackWait2;
Var
T: Integer;
Begin
Writeln('Waiting until wraith is destroyed or high level node spawns!');
Marktime(T);
Repeat
If (K>=3) Then Proggy;
If IsAttack Then Marktime(T);
AttackNode;
AntiBan;
IfRandoms;
Until(TimeFromMark(T) >= (AttackTimer+(RandomRange(300,600))));
End;
Procedure AttackMonster;
Begin
If FindMonster(X,Y) Then
Begin
ClickMouse2(True)
If DidRedClick Then
Begin
IncEx(K,1);
AttackWait2;
End;
End;
IfRandoms;
End;
Procedure MainLoop;
Begin
Area1 := IntToBox(10,25,55,180);
Area2 := IntToBox(215,135,290,190);
CheckEss;
MakeCompass('N');
SetAngle(0);
Repeat
AttackNode;
AttackMonster;
Until (False);
End;
Begin;
ClearDebug;
MouseSpeed := RandomRange(10,20);
Smart_Server := 00;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False
SetupSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
XPO := GetXpBar(1);
K := (0);
MakeCompass('N');
SetAngle(0);
ClearDebug;
GameTab(25);
MainLoop;
End.