SRL Archive - RS3 Script Requests

400K Combat XP/Hr Free [Easy method]


mxtrix

2012-11-26 02:15:34

Hey, I have recently discovered a method of obtaining 400k melee xp/hr which would require a simple script. Basically, all the script has to do is turn on protect from magic, teleport to a gate stone, create and drop a new one and activate momentum when its lit up.

This method involved finding a Skeletal Horde boss in dungeoneering in floor 12. Before starting the script the user would have to sell the resources and buy bulk astral runes to be in the 1st inv spot. They would then go to the boss room, turn on protect from magic and autoretaliate and drop a gatestone. Once they have died the script could start.

All the script needs to do is a) wait to the player has died and then double click the quick prayer icon, cast teleport to group gatestone, create a new gatestone in inv spot 2 and then drop it and b) click momentum when it is able to be reactivated.

The reason for creating new gatestones is because once every five minutes they disappear and recreating them each time keeps the script running smoothly. ATM I am doing this with ghost-mouse but it is fairly unstable as there is a leeway in the amount of time your character lasts in the boss room. Doing this generates 400k xp/hr melee, 250k xp/hr range and 150k xp/hr mage at no cost at all and can be done in ftp and p2p.

If anyone could be bothered to make this (it seems fairly easy) then I would be highly grateful and if it was SRL members only then I would understand. Cheers, mxtrix.

Lord

2012-11-26 02:26:07

Do the skeletons keep spawning if you don't block off the corrididors?

mxtrix

2012-11-26 02:33:54

Yes, you just afk while you are in the room. I have done it legit for a few hours so it seems there is no time limit, the only limit which comes to mind would be the six hour relog but im sure if you gain 400k xp/hr logging it every six hours manually would not be an issue. If you want I can lend you my account.

Benny

2012-11-26 02:37:09

Wow nice method. This would be pretty beaut.

J J

2012-11-26 02:39:09

You meant stocking up cosmic runes instead of astral? And single clicking on quick prayer turns protect from mage on. Double clicking would turn it on and off. I'll look into this later today :)

The_Dude

2012-11-26 02:39:42

You know I thought about doing this legit once, didn't think it would get that much xp though! How does your character die with the skinweaver healing you?

mxtrix

2012-11-26 02:41:02

I have a few more ideas on how to script it now I have had a good think about it. You could recognize when you are in the starting room by the minimap only having one yellow dot in the center of the you are dead text in the chatbox. I assume you could script it so when it identifies that the momentum symbol is lit up it clicks it or presses a key to activate it. I have my last exam tomorrow for the year and if nobody has started on it I might give it a go and learn how to script myself.

EDIT: And for the quick prayers when you die it appears as activated but no prayers are in use. It might be a bug or something but to reactivate your prayers you have to click it twice.

mxtrix

2012-11-26 02:43:33

And you get dragged towards the edges of the room with auto-retaliate set on. It would be easier to script it to teleport back and drop a new gate-stone then repetitively trying to walk back near the healer.

J J

2012-11-26 02:49:34

From: mxtrix
I have a few more ideas on how to script it now I have had a good think about it. You could recognize when you are in the starting room by the minimap only having one yellow dot in the center of the you are dead text in the chatbox. I assume you could script it so when it identifies that the momentum symbol is lit up it clicks it or presses a key to activate it. I have my last exam tomorrow for the year and if nobody has started on it I might give it a go and learn how to script myself.

EDIT: And for the quick prayers when you die it appears as activated but no prayers are in use. It might be a bug or something but to reactivate your prayers you have to click it twice.

Very possible to detect the boss room and starting room.
Ill test it in like 2 hours from now, if it gets good xp then I will make the script.

iskill4u

2012-11-26 03:03:43

interesting i think i might try it out.

The_Dude

2012-11-26 04:00:57

This script would be as simple as clicking the dark area here on the mini-map whenever health was low.


Unfortunately it appears that auto-retaliate has an anti-afk feature which will sometimes not initiate combat on its own when you run back to the healer.


To be honest I didn't see how it could get anywhere near the xp you've stated anyway, but then again I'm a bit farther from max combat than you are (80's stats) and I didn't know the xp drops rise up to those amounts.

TehNeonFishy

2012-11-26 04:23:06

I never Dung so I have no idea what this horde thing is, however it sounds promising. :D

John

2012-11-26 04:23:13

From: mxtrix
Yes, you just afk while you are in the room. I have done it legit for a few hours so it seems there is no time limit, the only limit which comes to mind would be the six hour relog but im sure if you gain 400k xp/hr logging it every six hours manually would not be an issue. If you want I can lend you my account.


I actually was thinking of making this when I was dunging the other day..

mxtrix

2012-11-26 04:32:36

The XP is so high because the monsters are extremely weak for their level. Some of the 130's give you 2k xp per kill. The XP is relative to your combat level. I was doing this on my main which is 93/94/93, I am unsure on how much the XP varies with your combat level. It should be relatively high though, as you get more xp when the things you kill are higher leveled and dung automatically creates enemies with combat levels suited to your stats.

J J

2012-11-26 05:47:09

From: mxtrix
The XP is so high because the monsters are extremely weak for their level. Some of the 130's give you 2k xp per kill. The XP is relative to your combat level. I was doing this on my main which is 93/94/93, I am unsure on how much the XP varies with your combat level. It should be relatively high though, as you get more xp when the things you kill are higher leveled and dung automatically creates enemies with combat levels suited to your stats.

Currently training prayer from 1 to 43 on my main.. He is 200 combat though, used to be my staking account. Now with the EOC I'm 200 combat anyways so I might aswell get summoning and prayer :bart:

About to test this, 39 prayer currently. This account has a prom 2h/plate so we will see how much xp/h it can get. I'll update this post later :stirthepot:

EDIT: Got 43 prayer and nearly finished dung but realised I can do 3 binds now and that my prom spear is pretty bad now. So I'm getting a prom 2h/legs now (already have prom pl8)

Edit 2: 12 runecrafting so I can't make cosmics, I'll write the script to act like we have cosmics. Then I'll make cosmics on another acc and bind them :P

Edit 3: Started a complexity 6 dungeon going to try out the group gatestone.

Edit 4: Done 3 dungs so far no skeletal horde

Edit 5: Got it now getting some nice 700 xp drops sometimes. Can start scripting now :)

Edit 6: Detection of starting room done
program SkeletalHordeAbuser;
{$DEFINE SMART}
{$i srl/srl.simba}

{* Instructions
- Start a Floor 12 Dungeon
- Finish the floor and make as much cosmics as possible
- Make sure you have protect from magic set as quick prayer
- Drop a gatestone in the boss room with the Skeletal Horde
*}

function SmugglerRoom: boolean;
var
NPCs: TPointArray;
L, i: Integer;
s: String;
DeadText: boolean;

begin
NPCs := GetMiniMapDots('npc');
L := Length(NPCs);

for i:= 8 downto 1 do
begin
s := GetChatBoxText(i, clBlack);
if Pos('dead', s) > 0 then
begin
DeadText := True;
break;
end;
end;

Result := (L = 1) and (DeadText);
end;

begin
SetupSRL;
if SmugglerRoom then writeln('in the starting room');
end.

Edit 5?: Can now debug our own room

mxtrix

2012-11-26 06:06:40

All good, if you want I can lend you my main to try it on. I just found a thread about using abilities http://villavu.com/forum/showthread.php?p=1130640.

mxtrix

2012-11-26 06:17:45

Usually it takes ~3 dungeons to get him, just make sure you are on floor 12. I love when you get a 2.5k xp drop :)

EDIT: Wow, nice work. I am off for the night, better get a good nights sleep before my final exam. After I am done tomorrow I should be able to help out (if needed).

Swifte

2012-11-26 06:36:09

Cool thing to know… Script development… Eta… Soon hopefully.

Sin

2012-11-26 06:54:34

http://www.youtube.com/watch?v=otJn9XQ2zw0&feature=g-user-u

J J

2012-11-26 06:58:52

From: mxtrix
Usually it takes ~3 dungeons to get him, just make sure you are on floor 12. I love when you get a 2.5k xp drop :)

EDIT: Wow, nice work. I am off for the night, better get a good nights sleep before my final exam. After I am done tomorrow I should be able to help out (if needed).

Okay, I have around 1,5 hours of script time until I have to leave for school so we'll see how far I can get :P

Script so far:
program SkeletalHordeAbuser;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i SRL/srl/misc/smartgraphics.simba}

{* Instructions
- Start a Floor 12 Dungeon
- Finish the floor and make as much cosmics as possible
- Make sure you have protect from magic set as quick prayer
- Drop a gatestone in the boss room with the Skeletal Horde
*}

// Gets all the points from our dungeoneering room
function GetRoom: TPointArray;
var
i, j, X, Y, nearest, room: Integer;
dist: Extended;
Rooms: T2DPointArray;

begin
for i:=MMX1 to MMX2 do
for j:=MMY1 to MMY2 do
begin
dist := Pow((MMCX-i), 2) + Pow((MMCY-j), 2);
if (dist < Pow(((MMX2-MMX1)/2), 2)) then
if not(FindColorTolerance(X, Y, 0, i, j, i, j, 10)) then
begin
SetLength(Result, Length(Result)+1);
Result[Length(Result)-1] := Point(i, j);
end;
end;

nearest := 1000;
Rooms := SplitTPA(Result, 3);
if (Length(Rooms) > 0) then
for i := 0 to high(Rooms) do
begin
MiddleTPAEx(Rooms[i], X, Y)
dist := Abs(MMCX - X) + Abs(MMCY - Y);
if (dist < nearest) then
begin
nearest := Round(dist);
room := i;
end;
end;

SetLength(Result, Length(Rooms[room]));
Result := Rooms[room];
SMART_DrawDotsEx(True, Result, clRed);
end;

// Checks if there are any npc's in our room
function NPCInRoom: boolean;
var
NPCs, RoomPoints: TPointArray;
L, i: Integer;
B: TBox;

begin
NPCs := GetMiniMapDots('npc');
L := Length(NPCs);
if L > 0 then
begin
RoomPoints := GetRoom;
B := GetTPABounds(RoomPoints);
for i:=0 to L do
if PointInBox(NPCs[i], B) then
begin
Result := True;
break;
end;
end;
end;

// Checks if we died
function WeDied: boolean;
var
i: Integer;
s: String;
DeadText: boolean;

begin
for i:=8 downto 1 do
begin
s := GetChatBoxText(i, clBlack);
if Pos('dead', s) > 0 then
begin
Result := True;
break;
end;
end;
end;

// Checks if you are in the starting room
function StartingRoom: boolean;
begin
Result := NPCInRoom and WeDied;
writeln('Are we in the starting room? ' + BoolToStr(Result));
end;

// Searches for the gatestone portal
function GatestonePortal: boolean;
var
TPA: TPointArray;
ATPA: T2DPointArray;
i, L, LL: Integer;
P: TPoint;

begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.01, 0.61);

FindColorsSpiralTolerance(MSCX, MSCY, TPA, 12041486, MSX1, MSY1, MSX2, MSY2, 17);
L := Length(TPA);
if L > 0 then
begin
SplitTPAWrap(TPA, 5, ATPA);
SortATPASize(ATPA, True);
LL := Length(ATPA[0]);
if LL > 50 then
begin
P := MiddleTPA(ATPA[0]);
MMouse(P.x, P.y, RandomRange(-5, 5), RandomRange(-5, 5));
//ClickMouse2(1);
Result := True;
writeln('Did we find the portal? ' + BoolToStr(Result));
end;
end;
end;

// Checks if we can use Momentum
function FullAdrenaline: boolean;
var
Percent: Integer;

begin
Percent := GetAdrenalinePercent;
writeln('Our adrenaline: ' + IntToStr(Percent));
Result := GetAdrenalinePercent >= 98;
writeln('Can we use our ultimate ability? ' + BoolToStr(Result));
end;



begin
SetupSRL;
StartingRoom;
FullAdrenaline;
GatestonePortal;
end.

Result:

Debug:
Paired with SMART[8132]
Are we in the starting room? True
Our adrenaline: 0
Can we use our ultimate ability? False
Did we find the portal? True
Successfully executed.

EDIT: Can now find the gatestone portal and enter it, took me longer than expected :O
program SkeletalHordeAbuser;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i SRL/srl/misc/smartgraphics.simba}

{* Instructions
- Start a Floor 12 Dungeon
- Finish the floor and make as much cosmics as possible
- Make sure you have protect from magic set as quick prayer
- Drop a gatestone in the boss room with the Skeletal Horde
*}

// Gets all the points from our dungeoneering room
function GetRoom: TPointArray;
var
Nearest, Room, C1, C2, i, L: Integer;
Dist: Extended;
RoomATPA: T2DPointArray;
MMBox, MMCircle, RoomTPA: TPointArray;
P: TPoint;

begin
MMBox := TPAFromBox(IntToBox(MMX1, MMY1, MMX2, MMY2));
MMCircle := RemoveDistTPointArray(MMCX, MMCY, 75, MMBox, True);

C2 := clBlack;
for i:=0 to high(MMCircle) do
begin
P := MMCircle[i];
C1 := GetColor(P.x, P.y);
if not(SimilarColors(C1, C2, 10)) then
begin
L := Length(RoomTPA);
SetLength(RoomTPA, L+1);
RoomTPA[L] := P;
end;
end;

Nearest := 1000;
RoomATPA := SplitTPA(RoomTPA, 2);
if Length(RoomATPA) > 0 then
for i:=0 to high(RoomATPA) do
begin
P := MiddleTPA(RoomATPA[i]);
//SMART_DrawDot(False, P, clRed);
Dist := Distance(MMCX, MMCY, P.x, P.y);
writeln('Room ' + IntToStr(i) + ' distance: ' + ToStr(Dist));
if (Dist < Nearest) then
begin
Nearest := Round(Dist);
Room := i;
end;
end;

Result := RoomATPA[room];
SMART_DrawDotsEx(True, Result, clGreen);
end;

// Checks if there are any npc's in our room
function NPCInRoom: boolean;
var
NPCs, RoomPoints: TPointArray;
L, i: Integer;

begin
NPCs := GetMiniMapDots('npc');
L := Length(NPCs);
if L > 0 then
begin
RoomPoints := GetRoom;
for i:=0 to L-1 do
if PointInTPA(NPCs[i], RoomPoints) then
begin
Result := True;
break;
end;
end;
end;

// Checks if we died
function WeDied: boolean;
var
i: Integer;
s: String;

begin
for i:=8 downto 1 do
begin
s := GetChatBoxText(i, clBlack);
if Pos('dead', s) > 0 then
begin
Result := True;
break;
end;
end;
end;

// Checks if you are in the starting room
function StartingRoom: boolean;
begin
Result := NPCInRoom and WeDied;
writeln('Are we in the starting room? ' + BoolToStr(Result));
Result := True;
end;

// Searches for the gatestone portal
function GatestonePortal: boolean;
var
TPA: TPointArray;
ATPA: T2DPointArray;
L, LL: Integer;
P: TPoint;

begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.01, 0.61);

FindColorsSpiralTolerance(MSCX, MSCY, TPA, 12041486, MSX1, MSY1, MSX2, MSY2, 17);
L := Length(TPA);
writeln('Portal color matches: ' + IntToStr(L));
if L > 0 then
begin
SplitTPAWrap(TPA, 5, ATPA);
SortATPASize(ATPA, True);
LL := Length(ATPA[0]);
writeln('Portal points: ' + IntToStr(LL));
if LL > 250 then
begin
P := MiddleTPA(ATPA[0]);
MMouse(P.x, P.y, RandomRange(-5, 5), RandomRange(-5, 5));
ClickMouse2(1);
Wait(RandomRange(3000, 4000));
Result := True;
end;
end;

writeln('Did we find the portal? ' + BoolToStr(Result));
end;

// Checks if we can use Momentum
function FullAdrenaline: boolean;
var
Percent: Integer;

begin
Percent := GetAdrenalinePercent;
writeln('Our adrenaline: ' + IntToStr(Percent));
Result := GetAdrenalinePercent >= 98;
writeln('Can we use our ultimate ability? ' + BoolToStr(Result));
end;

// Walks around the room trying to find the portal, time out after 30 secs
function FindPortal: boolean;
var
RoomPoints: TPointArray;
P: TPoint;
T, R, Dg: Integer;

begin
if StartingRoom then
begin
MarkTime(T);
SetAngle(SRL_ANGLE_LOW);
while not(Result) do
begin
Dg := Round(rs_GetCompassAngleDegrees);
MakeCompass(RandomRange(Dg, Dg+90));
writeln('TimeFromMark(T) => ' + IntToStr(TimeFromMark(T)));
if (TimeFromMark(T) > 60000) then
break;

writeln('Possibly walking to the middle of the room');
RoomPoints := GetRoom;
P := MiddleTPA(RoomPoints);
writeln('P: ' + ToStr(P));
if Distance(P.x, P.y, MMCX, MMCY) > 10 then
begin
writeln('We are not near the middle, walking there');
MMouse(P.x, P.y, RandomRange(-3, 3), RandomRange(-3, 3));
ClickMouse2(1);
while IsMoving do
Wait(RandomRange(300, 600));
Wait(RandomRange(1000, 2000));
end;

if GatestonePortal then
Result := True;
end;
Writeln('Did we find the portal? ' + BoolToStr(Result));
end;

ClickNorth(SRL_ANGLE_HIGH);
end;



begin
SetupSRL;
ClickNorth(SRL_ANGLE_HIGH);
//GetRoom;
//StartingRoom;
//FullAdrenaline;
//GatestonePortal;
FindPortal;
end.

The_Dude

2012-11-26 07:13:35

From: J J
Okay, I have around 1,5 hours of script time until I have to leave for school so we'll see how far I can get :P



Haha J J! Fix the GOP script :P

J J

2012-11-26 08:35:09

From: The_Dude
Haha J J! Fix the GOP script :P

Forgot about that, it's just a simple DTM change most likely :P

This does work pretty well already:
Kills skeletons if we are in the boss room.
If we are in the starting room then it will try to find the group gatestone portal.

program SkeletalHordeAbuser;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i SRL/srl/misc/smartgraphics.simba}

{* Instructions
- You need to get the boss "Skeletal Skinweaver", the following way:
= Start a floor 12 complexity 6 dungeon
= Complete the floor and if you have the boss then enter the room and drop
your gatestone somewhere
= Make sure that:
~ Your auto retaliate is ON
~ Your quick prayer is set to protect from magic
~ Your action bar is open
~ You have the constitution ability "Momentum" set in the action bar
= Once everything is setup wait until you die

- Edit the keys below to make sure they match your ability's
= DO NOT ADD MOMENTUM

- Once you have set everything up, start the script
*}

// Gets all the points from our dungeoneering room
function GetRoom: TPointArray;
var
Nearest, Room, C1, C2, i, L: Integer;
Dist: Extended;
RoomATPA: T2DPointArray;
MMBox, MMCircle, RoomTPA: TPointArray;
P: TPoint;

begin
MMBox := TPAFromBox(IntToBox(MMX1, MMY1, MMX2, MMY2));
MMCircle := RemoveDistTPointArray(MMCX, MMCY, 75, MMBox, True);

C2 := clBlack;
for i:=0 to high(MMCircle) do
begin
P := MMCircle[i];
C1 := GetColor(P.x, P.y);
if not(SimilarColors(C1, C2, 10)) then
begin
L := Length(RoomTPA);
SetLength(RoomTPA, L+1);
RoomTPA[L] := P;
end;
end;

Nearest := 1000;
RoomATPA := SplitTPA(RoomTPA, 2);
if Length(RoomATPA) > 0 then
for i:=0 to high(RoomATPA) do
begin
P := MiddleTPA(RoomATPA[i]);
//SMART_DrawDot(False, P, clRed);
Dist := Distance(MMCX, MMCY, P.x, P.y);
//writeln('Room ' + IntToStr(i) + ' distance: ' + ToStr(Dist));
if (Dist < Nearest) then
begin
Nearest := Round(Dist);
Room := i;
end;
end;

Result := RoomATPA[room];
SMART_DrawDotsEx(True, Result, clGreen);
end;

// Checks if there is one NPC in our room
function SmugglerInRoom: boolean;
var
NPCs, RoomPoints: TPointArray;
L, i, Count: Integer;

begin
NPCs := GetMiniMapDots('npc');
L := Length(NPCs);
if L > 0 then
begin
RoomPoints := GetRoom;
for i:=0 to L-1 do
if PointInTPA(NPCs[i], RoomPoints) then
Inc(Count);
end;

Result := Count = 1;
end;

// Checks if we died
function WeDied: boolean;
var
i: Integer;
s: String;

begin
for i:=8 downto 1 do
begin
s := GetChatBoxText(i, clBlack);
if Pos('dead', s) > 0 then
begin
Result := True;
break;
end;
end;
end;

// Checks if you are in the starting room
function StartingRoom: boolean;
begin
Result := (SmugglerInRoom and WeDied);
writeln('Are we in the starting room? ' + BoolToStr(Result));
end;

// Searches for the gatestone portal
function GatestonePortal: boolean;
var
TPA: TPointArray;
ATPA: T2DPointArray;
L, LL: Integer;
P: TPoint;

begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.01, 0.61);

FindColorsSpiralTolerance(MSCX, MSCY, TPA, 12041486, MSX1, MSY1, MSX2, MSY2, 17);
L := Length(TPA);
writeln('Portal color matches: ' + IntToStr(L));
if L > 0 then
begin
SplitTPAWrap(TPA, 5, ATPA);
SortATPASize(ATPA, True);
LL := Length(ATPA[0]);
writeln('Portal points: ' + IntToStr(LL));
if LL > 250 then
begin
P := MiddleTPA(ATPA[0]);
MMouse(P.x, P.y, RandomRange(-5, 5), RandomRange(-5, 5));
ClickMouse2(1);
Wait(RandomRange(3000, 4000));
Result := True;
end;
end;

writeln('Did we find the portal? ' + BoolToStr(Result));
end;

// Checks if we can use Momentum
function UseMomentum: boolean;
var
L, LL: Integer;
TPA: TPointArray;
ATPA: T2DPointArray;
P: TPoint;

begin
FindColorsTolerance(TPA, 66, 47, 345 - SRL_NAVBAR_INGAME_Y, 478, 379 - SRL_NAVBAR_INGAME_Y, 25);
L := Length(TPA);
if L > 0 then
begin
SplitTPAWrap(TPA, 5, ATPA);
SortATPASize(ATPA, True);
LL := Length(ATPA[0]);
writeln('Momentum colors: ' + IntToStr(LL));
if LL > 100 then
begin
P := MiddleTPA(ATPA[0]);
MMouse(P.x, P.y, 10, 10);
ClickMouse2(1);
Result := True;
end;
end;
end;

// Walks around the room trying to find the portal, time out after 30 secs
function FindPortal: boolean;
var
RoomPoints: TPointArray;
P: TPoint;
T, Dg: Integer;

begin
if StartingRoom then
begin
MarkTime(T);
SetAngle(SRL_ANGLE_LOW);
while not(Result) do
begin
Dg := Round(rs_GetCompassAngleDegrees);
MakeCompass(RandomRange(Dg, Dg+90));
writeln('TimeFromMark(T) => ' + IntToStr(TimeFromMark(T)));
if (TimeFromMark(T) > 60000) then
break;

writeln('Possibly walking to the middle of the room');
RoomPoints := GetRoom;
P := MiddleTPA(RoomPoints);
writeln('P: ' + ToStr(P));
if Distance(P.x, P.y, MMCX, MMCY) > 10 then
begin
writeln('We are not near the middle, walking there');
MMouse(P.x, P.y, RandomRange(-3, 3), RandomRange(-3, 3));
ClickMouse2(1);
while IsMoving do
Wait(RandomRange(300, 600));
Wait(RandomRange(1000, 2000));
end;

if GatestonePortal then
Result := True;
end;
Writeln('Did we find the portal? ' + BoolToStr(Result));
end;

ClickNorth(SRL_ANGLE_HIGH);
end;

procedure UseRandomAbility;
begin
TypeSendEx(IntToStr(Random(11)), False);
end;

// MAINLOOP
begin
SetupSRL;
ClickNorth(SRL_ANGLE_HIGH);
repeat
case StartingRoom of
false: begin
writeln('Fighting skeletons...');
UseMomentum;
UseRandomAbility;
Wait(RandomRange(1000, 2000));
end;
true: if not(FindPortal) then
begin
WriteLn('We failed to find the gatestone portal');
WriteLn('Terminating the script');
TerminateScript;
end;
end;
until(false);
end.

Still in bèta, if anyone feels like finishing it:
- Add proper ability using
- Add quick prayer
- More failsafes

I'm off to college now, will be back in around 5 hours from now.

Let me know if you decide to finish it in the meantime.

mxtrix

2012-11-26 16:30:11

For the whole gatestone thing its easier to use the spell, as its on the same tab in which you cast the spell to create a new one.

nokkasiili

2012-11-26 16:34:55

Thanks for sharing i will abuse this tomorrow

Mr[S]

2012-11-26 16:48:00

I've never known what those gatestones are for? Only started dunging

John

2012-11-26 17:15:47

From: Mr[S]
I've never known what those gatestones are for? Only started dunging


You can create one then place it and teleport back to it later.

Mr[S]

2012-11-26 18:01:58

Shit no way?! Ive been running like a noob for the last 3 days then -_-

Rincewind

2012-11-26 18:05:30

From: Mr[S]
Shit no way?! Ive been running like a noob for the last 3 days then -_-


Yep, theres a group gatestone (ggs) which the leader usually carries and you can make your own gatestone which breaks when you teleport to it.

mxtrix

2012-11-27 00:45:42

Officially finished school for the year and got straight A's on all of my marked exams. Now I will try contribute to the script.

Prometheus

2012-11-27 00:50:32

I found this dungeon boss annoying, but I never knew it could rake in this much exp :O

mxtrix

2012-11-27 05:33:16

I have just scripted the quick prayer thing but am having problems scripting the creation of the new gatestone, I have figured out how to switch to the mage tab, back to the inv tab but am trying to figure out what to use to identify the spell icon and gatestone in my inv. This is my first time trying to script :P

Benny

2012-11-27 06:20:57

From: mxtrix
Officially finished school for the year and got straight A's on all of my marked exams. Now I will try contribute to the script.


congratulations on that!

How goes the rest of your scripting?

mxtrix

2012-11-27 06:35:06

Can you please add my MSN [email]nzbru@hotmail.co.nz[/email]. I am going ok I am now having a bit of trouble using bitmaps to identify if a gatestone is in my inventory. I have followed guide but for some reason my script is not recognizing that it is there when it is. Here is the procedure relating to the dropping of the gatestone:

Procedure FindCast;
Var //Variables
Gatestone, X, Y:Integer; //Declare bitmaps as Integers


Begin
SetupSRL; //This sets up SRL
Gatestone := BitmapFromString(14, 9, 'meJwzs9V087TX1leBIBl58YBIm7y' +
'yaCtbEyBSVJXMKYnKKAiPy3BDVgZEXgF2QJVAKYhiuEogQlYGMRCC' +
'MFVKSAvBEZpKIAKqnLmqKKsoAojgykTF+Xn5OF08LeAovcgXKDJ5c' +
'R6mSiDCrrLMH1MlsmIUlWX+hiYa9i6m8Wn+QCehKYarhCgGKoOrhC' +
'BkxUCV8kriEJUA4N1cAg==');
If (FindBitmapToleranceIn(Gatestone, X, Y, 0, 0, 100, 100, 25)) Then
Mouse(X, Y, 5, 5, True);
End;

I am trying to find a way to let the script recognize an icon and move the mouse to it.

Laimonas171

2012-11-27 06:39:00

From: mxtrix
Can you please add my MSN [email]nzbru@hotmail.co.nz[/email]. I am going ok I am now having a bit of trouble using bitmaps to identify if a gatestone is in my inventory. I have followed guide but for some reason my script is not recognizing that it is there when it is


Post Gatestone image, i will create procedure for that if you able use *.BMP image, for better quality

mxtrix

2012-11-27 06:43:03

http://i.imgur.com/JShgP.png In the tutorial I followed it said that you should crop the image further to a part of the centre of the object. Maybe I did something wrong when cropping :L

Laimonas171

2012-11-27 06:50:41

From: mxtrix
http://i.imgur.com/JShgP.png In the tutorial I followed it said that you should crop the image further to a part of the centre of the object. Maybe I did something wrong when cropping :L


Yeah but it should be not similar to other staff, and tolerance is the best for inv :D

btw, it should find and drop i guess?

mxtrix

2012-11-27 06:52:50

Yes, that what I was aiming at achieving. Once I see the correct method of dropping it I should be able to figure out all of the rest myself (all that needs done after that is the casting of the spell which I will give a go and some more fail-safes).

Laimonas171

2012-11-27 06:54:05

From: mxtrix
Yes, that what I was aiming at achieving. Once I see the correct method of dropping it I should be able to figure out all of the rest myself (all that needs done after that is the casting of the spell which I will give a go and some more fail-safes).


Can you say exact item name?

mxtrix

2012-11-27 06:55:14

"Group gatestone"

Laimonas171

2012-11-27 07:01:14

Didn't tested
edit: should work I used quite high tolerance since i don't know what item more you have at inventory it may fail but not so much about that. try use bitmap method in first place.

//bitmap search
Procedure FindStoneBMP;
var stonebmp, x, y: integer;
begin
stonebmp := BitmapFromString(19, 2, 'meJxjYmDQUZJwMVMLdjWHIBNNWSC' +
'KdDNqSPVwt9YHIk0F8bpkdyDKC7erywwBIiYGBiAC6oJohGgBIlVZ' +
'0QQfMzSNFfEuQI1AVJMRDNQFANkPGx4=');
if(FindBitmapToleranceIn(stonebmp, x, y, MIX1, MIY1, MIX2, MIY2, 20)) then
begin
mouse(x, y, 5, 5, false);
wait(200+random(150));
WaitOption('Drop G', 500);
end else
writeln('did not find bitmap, try increase tolerance current should be 20');
freeDTM(stonebmp);
end;




//dtm search
Procedure FindStoneDTM;
var stonedtm, x, y: integer;
begin
stonedtm := DTMFromString('m1gAAAHicjcq5CYBAGEThMTDwV4T12kDxQPBILcIerMImLNwXCKY78EXzTNIQSxNWzGhRo0AJjw4DrceEFTs2LBi/r8RxXnK+lysapZlTW1dyea7UEpllssR03Y8q2hBRoH8vfAcG8A==');
if(FindDTM(stonedtm, x, y, MiX1, MiY1, MiX2, MiY2)) then
begin
mouse(x, y, 5, 5, false);
wait(200+random(150));
WaitOption('Drop G', 500);
freeDTM(stonedtm);
end else
writeln('didnot find dtm');
freebitmap(stonedtm);
end;

mxtrix

2012-11-27 07:04:59

Tested it and it works great, thanks a lot. The Bitmap procedure works fine by itself. Before importing the bmp into simba what modifications did you make to it (I am unsure weather to crop it down further and cut out some of the image or just to leave it as it is).

Laimonas171

2012-11-27 07:14:24


XXXXLarge version. I take item 2rows, from left to right. throe whole item
It's possible to make it more smaller, but it requires much testing though

mxtrix

2012-11-27 07:14:43

Got it to cast the spell :P

Procedure FindTelBMP;
var telbmp, x, y: integer;
begin
telbmp := BitmapFromString(11, 10, 'meJxzDrT1jrIJiLeOzjYPSjIJSz' +
'OOyLTwjbUOzzL3jrWw9rQBysYVWMXlWbr56zl4K1k6qQXHG0flmCW' +
'XWnlGWQYkmYelW2XXmwXFGZZ2Wu++o7n0vHJApHpyoVlapVVSqUVg' +
'snles2VWlXVirtau24ob7mgB0fwTEt7B+hkV1tn1lr5xFnkNlpEpZ' +
'kDBtTdl1pxVBZLLLwj2r5eLzTLLa7QGoowys+xK4z0PRIAmABUA0e' +
'xD/EA1SfmahU1WrTPdQuKMgPZuuSQFRHN2iy4/qAlkAA0EslNynFq' +
'nebeu1gTaC9TYskociCasEJ20l2fSHnGgOTmVxuXtLkBLgQioJWeS' +
'UEGPcNUkoarFvEAFnbsFGmaLNfWFTb/CB9EClAWKTFytDTSzeC5X6' +
'2axylU8Wfl+AOiShxU=');
if(FindBitmapToleranceIn(telbmp, x, y, MIX1, MIY1, MIX2, MIY2, 20)) then
begin
mouse(x, y, 5, 5, false);
wait(200+random(150));
WaitOption('Cast Create Gatestone', 500);
end else
writeln('did not find bitmap, try increase tolerance current should be 20');
freebitmap(telbmp);
end;

Laimonas171

2012-11-27 07:19:28

From: mxtrix
Got it to cast the spell :P

Procedure FindTelBMP;
var telbmp, x, y: integer;
begin
telbmp := BitmapFromString(11, 10, 'meJxzDrT1jrIJiLeOzjYPSjIJSz' +
'OOyLTwjbUOzzL3jrWw9rQBysYVWMXlWbr56zl4K1k6qQXHG0flmCW' +
'XWnlGWQYkmYelW2XXmwXFGZZ2Wu++o7n0vHJApHpyoVlapVVSqUVg' +
'snles2VWlXVirtau24ob7mgB0fwTEt7B+hkV1tn1lr5xFnkNlpEpZ' +
'kDBtTdl1pxVBZLLLwj2r5eLzTLLa7QGoowys+xK4z0PRIAmABUA0e' +
'xD/EA1SfmahU1WrTPdQuKMgPZuuSQFRHN2iy4/qAlkAA0EslNynFq' +
'nebeu1gTaC9TYskociCasEJ20l2fSHnGgOTmVxuXtLkBLgQioJWeS' +
'UEGPcNUkoarFvEAFnbsFGmaLNfWFTb/CB9EClAWKTFytDTSzeC5X6' +
'2axylU8Wfl+AOiShxU=');
if(FindBitmapToleranceIn(telbmp, x, y, MIX1, MIY1, MIX2, MIY2, 20)) then
begin
mouse(x, y, 5, 5, false);
wait(200+random(150));
WaitOption('Cast Create Gatestone', 500);
end else
writeln('did not find bitmap, try increase tolerance current should be 20');
freebitmap(telbmp);
end;

Please use simba tags next time :)
edit: your image looks quite big probably you should use DTM's if here is similar skills icons in Magic tab instead of big bitmap

mxtrix

2012-11-27 07:26:38

Hmm I might try use a DTM for it. My bad about the tags, when I coppied it from my script to my comment they were removed. Well, I have now got it to fix quick prayers, teleport to the created gate-stone, create and drop a new one and check for momentum (of course barely any of it is mine as you guys have helped substantially). I am off for the night but tomorrow I will add fail-safes, anti-ban and finish the script off.

The Killer

2012-11-27 10:42:24

might try this. How much xp/hr in f2p? :P

Ixilisi

2012-11-27 11:49:58

Hello there!
Since I have recently become free from school I have just started scripting, so to try and help the community I thought I would give this ago as well.

Its not nearly complete, but I hope it gives a rough outline on where it could go

I've left a lot of function/procedures blank as its 3:48 am here and I need to sleep :duh:

It's based off J J's (I think) and includes some other stuff, I think I missed some of the conversation as I worked on this for awhile without refreshing the page, also I had it in mind for soloing so it might not be as intended.
Anyhow, check it out and tell me what you think.


program SkeletalHordeAbuser;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i SRL/srl/misc/smartgraphics.simba}

{* Instructions
- You need to get the boss "Skeletal Skinweaver", the following way:
= Start a floor 12 complexity 6 dungeon
= Complete the floor and if you have the boss then enter the room and drop
your gatestone somewhere
= Make sure that:
~ Your auto retaliate is ON
~ Your quick prayer is set to protect from magic/whatever you want
~ Your action bar is open
~ You have the constitution ability "Momentum" set in the action bar
~ All other abilities are BASIC performable abilities with your equipment
~ Put Gatestone Teleport AND create into your action bar, and in the settings
= Once everything is setup wait until you die

- Edit the keys below to make sure they match your ability's


- Once you have set everything up, start the script
*}
var
MomentumKey,MakeGateStoneKey,TeleportKey:string;
Percentage:Integer;
const
TeleportKey := '11'; //What slot is it in?
MakeGateStoneKey := '10'; //What slot is it in?
MomentumKey := '5'; //What slot is it in?
Percentage := '20'; // When to go heal at
HowLong := 12000; //how long will it run for?

{These Need doing (and there are more bits below (easier bits though))}
{LowHealth, HighHealth, SwitchAutoAttack, AutoAttacking, QuickPrayer, inMomentum}

// Gets all the points from our dungeoneering room
function GetRoom: TPointArray;
var
Nearest, Room, C1, C2, i, L: Integer;
Dist: Extended;
RoomATPA: T2DPointArray;
MMBox, MMCircle, RoomTPA: TPointArray;
P: TPoint;

begin
MMBox := TPAFromBox(IntToBox(MMX1, MMY1, MMX2, MMY2));
MMCircle := RemoveDistTPointArray(MMCX, MMCY, 75, MMBox, True);

C2 := clBlack;
for i:=0 to high(MMCircle) do
begin
P := MMCircle[i];
C1 := GetColor(P.x, P.y);
if not(SimilarColors(C1, C2, 10)) then
begin
L := Length(RoomTPA);
SetLength(RoomTPA, L+1);
RoomTPA[L] := P;
end;
end;

Nearest := 1000;
RoomATPA := SplitTPA(RoomTPA, 2);
if Length(RoomATPA) > 0 then
for i:=0 to high(RoomATPA) do
begin
P := MiddleTPA(RoomATPA[i]);
//SMART_DrawDot(False, P, clRed);
Dist := Distance(MMCX, MMCY, P.x, P.y);
//writeln('Room ' + IntToStr(i) + ' distance: ' + ToStr(Dist));
if (Dist < Nearest) then
begin
Nearest := Round(Dist);
Room := i;
end;
end;

Result := RoomATPA[room];
SMART_DrawDotsEx(True, Result, clGreen);
end;




//Returns true when health(probably in Combat Tab) is below Threshold
Function LowHealth(Threshold: integer): boolean
begin
end;

//Returns true when health(probably in Combat Tab) is Above Threshold
Function HighHealth(Threshold: integer): boolean
begin
end;


function AutoAttacking: boolean;
begin
GameTab(TAB_COMBAT);
If {If you can find DTM of 'ON'} then
begin
return := true;
end;
else
return := false;
end;

function SwitchAutoAttack(switch: boolean): boolean;
begin
GameTab(TAB_COMBAT);
//put switch code here

If AutoAttacking() != switch then
begin
//If you can find DTM of 'ON' then
return := true; //returns true to indicate it attempted to switch
end;
else
return := false; //returns false to indicate it was already set correctly
end;

//Laimonas171's useActionKey (modified a little)
function useActionKey(KeyPosition: String): boolean;
begin

Case KeyPosition of
'1': begin
TypeSendEx('1',False);
result := true;
end;
'2': begin
TypeSendEx('2',False);
result := true;
end;
'3': begin
TypeSendEx('3',False);
result := true;
end;
'4': begin
TypeSendEx('4',False);
result := true;
end;
'5': begin
TypeSendEx('5',False);
result := true;
end;
'6': begin
TypeSendEx('6',False);
result := true;
end;
'7': begin
TypeSendEx('7',False);
result := true;
end;
'8': begin
TypeSendEx('8',False);
result := true;
end;
'9': begin
TypeSendEx('9',False);
result := true;
end;
'10': begin
TypeSendEx('0',False);
result := true;
end;
'11': begin
TypeSendEx('-',False);
result := true;
end;
'12': begin
TypeSendEx('=',False);
result := true;
end;
else
result := false;
end;
end;

// Checks if there is one NPC in our room
function SmugglerInRoom: boolean;
var
NPCs, RoomPoints: TPointArray;
L, i, Count: Integer;

begin
NPCs := GetMiniMapDots('npc');
L := Length(NPCs);
if L > 0 then
begin
RoomPoints := GetRoom;
for i:=0 to L-1 do
if PointInTPA(NPCs[i], RoomPoints) then
Inc(Count);
end;

Result := Count = 1;
end;

//Turn on/off QuickPrayer
function QuickPrayer(switch: boolean): boolean;
begin
//switch it on/off, this may exist somewhere
end;

// Checks if we died
function WeDied: boolean;
var
i: Integer;
s: String;

begin
for i:=8 downto 1 do
begin
s := GetChatBoxText(i, clBlack);
if Pos('dead', s) > 0 then
begin
Result := True;
break;
end;
end;
end;

// Checks if you are in the starting room
function StartingRoom: boolean;
begin
Result := (SmugglerInRoom and WeDied);
writeln('Are we in the starting room? ' + BoolToStr(Result));
end;

procedure Teleport;
begin
useActionKey(TeleportKey);
MarkTime(RandomRange(400,900));
end;

Procedure DropGateStone;
var
MX, MY: integer;
begin
GSDTM := DTMFromString('mwQAAAHic42RgYMhiYmDIAeIiIK4E4gQgTgXiQiAuBeJ0IBZnZGDgBGIVIJYFYkUgFoJiUSBWBmLLcD+GZQd2MKTO6GRwTAxn4BMVZpBUU2KYt309g010EAOvoACDINA+QpiRCAwHAPl2DqU=');//Gatestone DTM

ExistsItemDTM(GSDTM, MX,MY); //I need to put some failsafe here..
WriteLn('Yay we found It!');
FreeDTM();
DropItem(CoordsToItem(MX, MY));
GameTab(TAB_COMBAT);

end;

// Searches for the gatestone portal - dont need if we are soloing
{function GatestonePortal: boolean;
var
TPA: TPointArray;
ATPA: T2DPointArray;
L, LL: Integer;
P: TPoint;

begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.01, 0.61);

FindColorsSpiralTolerance(MSCX, MSCY, TPA, 12041486, MSX1, MSY1, MSX2, MSY2, 17);
L := Length(TPA);
writeln('Portal color matches: ' + IntToStr(L));
if L > 0 then
begin
SplitTPAWrap(TPA, 5, ATPA);
SortATPASize(ATPA, True);
LL := Length(ATPA[0]);
writeln('Portal points: ' + IntToStr(LL));
if LL > 250 then
begin
P := MiddleTPA(ATPA[0]);
MMouse(P.x, P.y, RandomRange(-5, 5), RandomRange(-5, 5));
ClickMouse2(1);
Wait(RandomRange(3000, 4000));
Result := True;
end;
end;

writeln('Did we find the portal? ' + BoolToStr(Result));
end;
}

// Checks if we can use Momentum - I believe there is a very simple version in the SRL subforum, haven't tested though
function UseMomentum: boolean;
var
L, LL: Integer;
TPA: TPointArray;
ATPA: T2DPointArray;
P: TPoint;

begin
FindColorsTolerance(TPA, 66, 47, 345 - SRL_NAVBAR_INGAME_Y, 478, 379 - SRL_NAVBAR_INGAME_Y, 25);
L := Length(TPA);
if L > 0 then
begin
SplitTPAWrap(TPA, 5, ATPA);
SortATPASize(ATPA, True);
LL := Length(ATPA[0]);
writeln('Momentum colors: ' + IntToStr(LL));
if LL > 100 then
begin
P := MiddleTPA(ATPA[0]);
MMouse(P.x, P.y, 10, 10);
ClickMouse2(1);
Result := True;
end;
end;
end;

function UsingMomentum: boolean;
begin
//some findDTM here
end;

// Tries to use your gatestone teleport
function FindTeleport: boolean;
begin
useActionKey(TeleportKey);
//fail safe needed (change of colour in the action bar)
end;


//chooses a randomAbility excluding those not defined in constants above
procedure UseRandomAbility;
var
key: string;
i,s: integer;
UsableSlots[1..9]: Array of Integer;
begin //This is my attempt is probably pretty bad :/
s := 1
for i := 1 to 12 do
begin
if not (i = MomentumKey) OR (i = TeleportKey) OR (i = MakeGateStoneKey) then
begin
UsableSlots[s] := i;
s := 1 + s;
end;
end;
key := IntToStr(UsableSlots[RandomRange(1,9)]);

useActionKey(Key);
end;

Procedure CheckChangeHealth; //not sure how to do this one
var
HP1, HP2: integer; //use these to compare health values
begin
RunAway; //run to the healing zone
If ( then //check if health is increasing overall, if not try run away again
begin
end;
end;

// MAINLOOP
begin
SetupSRL;
Settings;
ClickNorth(SRL_ANGLE_HIGH);
repeat
//where are we?
if (StartingRoom) then
begin
SwitchAutoAttack(False); //turn off autoattack
Teleport;
WriteLn('We (should ve just teleported!');
If not (CreateGateStone) then //get back to the FIGHT!
begin
WriteLn('Looks like we ran out of cosmics!');
WriteLn('Terminating the script');
TerminateScript;
end;
WriteLn('We should ve made a gatestone');
DropGateStone;
SwitchAutoAttack(True);
QuickPrayer(True);
end;

//We assume you're in the right place & attacking otherwise... (FAILSAFE HERE!?)
//Check your Momentum Status in combat tab

//these last bits im not sure work out properly, it needs to be checking for health,
//but still checking now and then if we have died
if not (inMomentum) then
begin
UseRandomAbility;
Wait(RandomRange(1000, 2000));
UseMomentum;
end;
if (LowHealth(Percentage)) then
begin
writeln('Low Health, attempting to retreat');
repeat //I dont know how to do these!
SwitchAutoAttack(False);
CheckChangeHealth; //antiban would be cool here
until(HighHealth(90));
writeln('Healthy again, lets kill!');
SwitchAutoAttack(True);
end;
until (GetTimeRunning >= HowLong);

writeln('Time s up!');
TerminateScript;
end.


Laimonas171

2012-11-27 19:20:18

any guide for p2p how to get teleport stone?

mxtrix

2012-11-27 19:43:42

If you mean how to crate one, its a spell in your spellbook which is called "Create Gatestone"

Fascinate

2012-11-27 19:46:33

Instead of using momentum before you start the script you should block all tunnels manually except for the one closest to the skinweaver healing pad. Then drop the GGS on the square where they spawn and use the AoE abilities like Quake! Hits all of them for massive damage! And the script could just use send keys and enter numbers 1-8 with basics on 1-6 and the AoE's on 7-8! And upon death just use the teleport in the home room. No need for cosmics, better xp, just a little harder to script.

mxtrix

2012-11-27 20:06:42

The reason for the gate-stones is that when they are left on the ground they disappear after ~5 minutes so to stop them from disappearing the script makes a new one each time it dies.

EDIT: I now have everything working and I just need to put it all together. The detection of the starting room is done by the portal, if the portal is present it will go ahead and turn off/on quick prayers, teleport to the gate-stone, create a new one and drop the new one and turn on momentum when needed. I just need to put some things together and add more fail-safes and an initial release should be completed. I will release it later today as I am going out for a couple of hours now. When it is released everyone that helped will have full credits etc, it will be nice to see the dung section have a script in it (I think that would be the right place to put it).

Benny

2012-11-28 03:04:15

ok perfect :)

(or you could put it in the combat script section :o ;))

mxtrix

2012-11-28 04:00:31

Just finished and it seems to be working fine. I will now set it up again and see if I can get it to run for 30mins to make sure nothing is incorrectly setup (to check if it clicks momentum etc) and then I will release the first version (In the fighting section :P).

Mr[S]

2012-11-28 04:44:24

From: mxtrix
Just finished and it seems to be working fine. I will now set it up again and see if I can get it to run for 30mins to make sure nothing is incorrectly setup (to check if it clicks momentum etc) and then I will release the first version (In the fighting section :P).


Can you pm me the script you are using, for some reason I can't go back pages on my phone to see where it is :(

mxtrix

2012-11-28 04:51:09

The script I am using is not yet posted on this thread, the ones on previous pages are other members contributing to the script (thanks to them I have learnt how to script). I am just finalizing the use of momentum to work without any problems and then I will create a new thread in the Fighting section posting the first version of the completed script.

EDIT: Momentum is now working fine, now its just the gate-stone DTM is a bit buggy. Re-doing it now.
EDIT2: Got the DTM to work, everything seems to be fine been running for 15min and activates momentum fine (manually turned it off multiple times to check if it reactivates it). Just going to try start a new dung to double check everything.
EDIT3: Sometimes your prayer runs out before you die, I will have to set the script to read the subtext to determine how many times to click the quickprayer icon.
EDIT4: Fixed the prayer issue and am now running it to see if any more problems arise.
EDIT5: I appologize but I will release it tomorrow as it is 12AM :L I just need to change the way it checks if all of a characters prayer has been used up after dying.
EDIT6: Got prayer to work for all situations, now the only problem is the gatestone DTM is buggy. Will fix in morning.

Laimonas171

2012-11-28 08:06:39

From: mxtrix
If you mean how to crate one, its a spell in your spellbook which is called "Create Gatestone"


Yeah but I do not get runes for that + Guy do not sell them.
what difficulty I should choose. and IT may work for only ONE (SOLO) player playing, or it should be like 2 or more.

mxtrix

2012-11-28 08:12:56

Solo'ing is better XP (Someone said they tried it with a friend and got less xp). You simply have to buy rune essence and then craft a lot of cosmic runes. Choose C6 too as in the lower complexity floors the monsters are lower levels (the EoC gives a lot more xp if you are fighting higher level monsters).

I am basically done writing the script, I just need to test it on another account.

Itankbots

2012-11-28 15:23:15

They nerfed this method, you now get no xp from killing skele hoarde

The Killer

2012-11-28 15:37:58

From: Itankbots
They nerfed this method, you now get no xp from killing skele hoarde


l0l. O well, never got to try it out though :/

Laimonas171

2012-11-28 15:40:49

From: The Killer
l0l. O well, never got to try it out though :/


same here… wanted to finish my smithing leveling.

mxtrix

2012-11-28 19:21:25

God dammit, checking now to confirm it has been nerfed :L Well time to find a new method of obtaining fast melee xp

Sin

2012-11-28 19:23:19

B0aty made a video on it, it's been nerfed.

/thread

Praize

2012-11-28 22:25:34

Confirmed to be nerfed.