SRL Archive - Reflection Development

Reflection Anti-Randoms - We Need YOU!


Nava2

2008-12-08 16:55:44

Well, Method and I were working on some reflection anti-randoms, and we got bored.

So, I attached the files I had into the SVN.

This thread will act as a Public Helping kind of deal. You help us, we put your functions into the include, (after testing) and you get YOUR name put into the Reflection include!

Just Post up code, or PM me.

Good, luck, and I hope we can get these finished! :)

Thinking of contributing?

If you are posting code, please make sure it is in full standards, and compiles.

Want to just do a small part? Test out our anti-randoms! :)

To test add the following to anywhere you find FindNormalRandoms:
R_FindRandoms
Make sure this one goes before FindNormalRandoms!

Also, if you are going to test, make sure to add R_RandomsReport in the Progress report part. Make sure its after the ClearDebug (if there is one) so you can see it! :)

Please post all the random reports so that we can see how we are doing. Lets solve them all! :)

Nava2

2008-12-08 16:58:50

Anti-Random Information - Yet to be implemented:

Prison Pete:

Good Key ID(inv)= 6966
LeverID = 26191
PeteID= 3118
Exit floor object ID (its an object on the floor next to the exit) = 10823

DogID= 3119
CatId= 3120
Hippo ID = 3121
RAM id = 3122

~ Credits to Pwnaz0r

Animal to look for: ModelID of the Floating animal - 7630

~ n3ss3s

Freaky Forester:

Freaky Forester (NPC ID):
1 Tail(s): 2459
2 Tail(s): 2460
3 Tail(s): 2461
4 Tail(s): 2462
~ Timer

Random Event Item ID's

  // Random Item IDs.
ID_Baguette = 6961;
ID_FrogToken = 6183;
ID_SpinachRoll = 1970;
ID_TriangleSandwich = 6962;
ID_SquareSandwich = 6965;
ID_Kebab = 1971;
ID_Beer = 1917;
ID_StrangeFruit = 464;

~ Nava2

Miles etc.

Miles: 8634.
Portal in Miles: 11368.
You automatically talk to him.
Answer Question(idk how though).
Clicktocontinue one time.
Click portal.

PinBall!

Pinball Score:
index = 263
sorry i forgot to get childinterface...phail
text = Score: *whateveritis*
Poles have same ids.
NPC chat says "Congratulations. You may now"...

Cap'n Arrnav!

Capn Arnav: 2308.
Portal: 11369.
PS: i have account in it for someone to solve!

~mormonman

To get information, use RSBots debug information. It is superb for completing things such as this. There is also the Interface explorer which is necessary! :)

Nava2

2008-12-08 17:02:35

Random Statuses:

Situational:

Molly - Solving!

Freaky Forester - Testing! ~ Drags111

Quiz - Unsolved

Certer - Solving!

Leo - Unsolved

Pillory - Testing! ~ Drags111

Evil Bob Island - Unsolved

Prison Pete - Solving!

Mime - Testing! ~ Seroko/Drags111

Abyss Random - Unsolved

Pinball - Testing! ~ lordsaturn

Maze - Unsolved

Frog - Testing! ~ Nava2

Demon - Testing! ~ lordsaturn


NPC:

Mysterious Old Man - Unsolved

Strange Plant - Unsolved

Dwarf - Unsolved


Inventory:

Box - Solved! ~ Nava2

Lamp - Unsolved


Currently Impossible:

Mordaut - Impossible!

tarajunky

2008-12-08 17:19:10

If anyone needs players stuck in randoms, pm me.

Nava2

2008-12-08 17:22:27

Now that we have records of failed and solved ones, here are the ones to fix!

Randoms to Fix:

Empty! - Let's hope this stays.


Contributors:

  • Pwnaz0r
  • Method
  • Timer
  • lordsaturn
  • n3ss3s
  • Seroko

Thanks, folks! Keep it up!

Timer

2008-12-08 19:20:34

Freaky Forester (NPC ID):
1 Tail(s): 2459
2 Tail(s): 2460
3 Tail(s): 2461
4 Tail(s): 2462

:D

Evil Bobs Prison:
case (Interface_NPC_ID) of
10749:
AnimalID := 3119;
10750:
AnimalID := 3120;
10751:
AnimalID := 3121;
10752:
AnimalID := 3122;
end;

tarajunky

2008-12-08 21:03:15

But do you have the new and improved list??

I have a few more, let me know what you need.

Nava2

2008-12-09 16:51:39

Thank you who contributed. :)

Tara, would you mind sending me the the new ones? :)

NiCbaZ

2008-12-09 17:13:25

{*******************************************************************************
function R_SolveMime: Boolean;
by: Seroko
Description: Checks for and solves the mime random.
*******************************************************************************}
function R_SolveMime: Boolean;
var
Mime : TNPC;
i, mx, my : Integer;
Animation : String;
Emotes : TIntegerArray;
begin
Result := False;
if not FindNPC('Mime', Mime) then
Exit;
Emotes := [857, 860, 861, 866, 1128, 1128, 1130, 1131];
repeat
i := Mime.Animation;
if InIntArray(Emotes, i) then
begin
case i of // Set our Animation text
857: Animation := 'Think';
860: Animation := 'Cry';
861: Animation := 'Laugh';
866: Animation := 'Dance';
1128: Animation := 'Glass Wall';
1128: Animation := 'Lean on air';
1130: Animation := 'Climb Rope';
1131: Animation := 'Glass Box';
end;
while not(FindColorTolerance(mx, my, 1122502, MCX1, MCY1, MCX2, MCY2, 40)) do // Drags111
Wait(100 + Random(100));
Wait(1000 + Random(1000));
FindTextTpaEx(11503238, 10, MCX1, MCY1, MCX2, MCY2, mx, my, Animation, npcchars, ClickLeft)
end;
until(not(FindNPC('Mime', Mime)));
Result := True;
end;

Thats mine solved by Seroko , i think it still works, hope he doesnt mind me posting it.

P1nky

2008-12-09 19:00:17

hey i may want to help out, by doing a random :P ill see if i can with Reflection :)
gonna have to ask questions with the reflection masters tho :P(METHOD!)

Nava2

2008-12-10 08:41:20

From: ~~Joker~~
hey i may want to help out, by doing a random :P ill see if i can with Reflection :)
gonna have to ask questions with the reflection masters tho :P(METHOD!)


Don't always bother Method, you can ask me as well haha.

He does know significantly more though :)

From: NiCbaZ
{*******************************************************************************
function R_SolveMime: Boolean;
by: Seroko
Description: Checks for and solves the mime random.
*******************************************************************************}
function R_SolveMime: Boolean;
var
Mime : TNPC;
i, mx, my : Integer;
Animation : String;
Emotes : TIntegerArray;
begin
Result := False;
if not FindNPC('Mime', Mime) then
Exit;
Emotes := [857, 860, 861, 866, 1128, 1128, 1130, 1131];
repeat
i := Mime.Animation;
if InIntArray(Emotes, i) then
begin
case i of // Set our Animation text
857: Animation := 'Think';
860: Animation := 'Cry';
861: Animation := 'Laugh';
866: Animation := 'Dance';
1128: Animation := 'Glass Wall';
1128: Animation := 'Lean on air';
1130: Animation := 'Climb Rope';
1131: Animation := 'Glass Box';
end;
while not(FindColorTolerance(mx, my, 1122502, MCX1, MCY1, MCX2, MCY2, 40)) do // Drags111
Wait(100 + Random(100));
Wait(1000 + Random(1000));
FindTextTpaEx(11503238, 10, MCX1, MCY1, MCX2, MCY2, mx, my, Animation, npcchars, ClickLeft)
end;
until(not(FindNPC('Mime', Mime)));
Result := True;
end;


Has this been tested?

Nava2

2008-12-13 14:51:52

Updated some things, added the new randoms from the SVN. I also wrote out some new procedures, and re-organized this topic.

I wish some others would post.

lordsaturn

2008-12-13 14:54:02

If I had some characters in randoms, I would gladly help.

SirPa

2008-12-13 15:00:08

I would really like to help but i can't get Smart to work >_<
There is no way of using Reflection without smart right? If so, tell me and i'll be happy to help, my bots get spammed with randoms :p

~Sir

Nava2

2008-12-13 15:54:35

From: lordsaturn
If I had some characters in randoms, I would gladly help.


I sent you some characters via MSN :)

From: SirPa
I would really like to help but i can't get Smart to work >_<
There is no way of using Reflection without smart right? If so, tell me and i'll be happy to help, my bots get spammed with randoms :p

~Sir


No, there isn't. But, you can use RSBot to find all the reflection information you need. :)

If you need help with that, feel free to ask me :)

Method

2008-12-13 19:20:13

I'd help more if SMART was actually usable for scripting right now, but unfortunately it isn't. If you need me to grab any IDs or information, feel free to let me know and I'll go ahead and do that (if you give me some accounts :p).

NiCbaZ

2008-12-14 15:28:02

I plan on solving a few today, i need accounts..

Mime
FreakFroster
etc.

Anyone with accounts please help,

Method

2008-12-14 15:32:13

Both of those are already done (see the SVN for more information).

NiCbaZ

2008-12-14 16:01:38

Ohh nice.

I was just starting on froster….

program New;

function Froster_FindFreakyFoster: Boolean;
var
FreakyNPC: TNPC;
FT : TPoint;

begin
NPCs := SortNPCs(GetNPCs);
SortNPCsByNames(['Freaky Froster'], FreakyNPC);
If Length(FreakyNPC) = 0 then
begin
Result:= False;
Writeln('Failed To Find Freaky Froster');
Exit;
end;
if (DistanceFrom(FreakyNPC.Tile) > 6) then
begin
WalkToTile(FreakyNPC.Tile, 0, 0);
FFlag(0);
Wait(400+random(200));
end;
If TileOnMS(FreakyNPC.Tile, Round(FreakyNPC.Height / 2)) then
begin
FT := TileToMS(FreakyNPC.Tile, Round(FreakyNPC.Height / 2));
MMouse(FT.x, FT.y, 3, 3);
If IsUpText('alk-to') then
begin
Mouse(FT.x, FT.y, 3, 3,True);
Result:= True;
Exit;
end else
begin
if FreakyNPC.IsMoving then
begin
MMouse(FT.x, FT.y, 3, 3);
if IsUpText('alk-to') then
begin
Mouse(FT.x, FT.y, 0, 0, false)
wait(75+random(25));
Result := ChooseOption('alk-to');
end;
end;
end;
end;
end;


function Froster_FindPhesent: Boolean;
var
PhesantNPC : TNPC;
PhesantID : Integer

begin
case{WaterevrTexzt} of
'kill the one' : PhesantID = 2459;
'kill the two' : PhesantID := 2460;
'kill the three': PhesantID := 2461;
'kill the four' : PhesantID := 2362;
end;
If FindNPCByID(PhesantID,PhesantNPC) then
begin
If TileOnMS(PhesantNPC, Round(PhesantNPC / 2)) then
begin
FT := TileToMS(PhesantNPC, Round(PhesantNPC / 2);
MMouse(FT.x, FT.y, 3, 3);
If IsUpText('fesant') then
begin
Mouse(FT.x, FT.y, 3, 3,True);
Result:= True;
Exit;
end else
begin
if PhesantNPC.IsMoving then
begin
MMouse(FT.x, FT.y, 3, 3);
if IsUpText('fesant') then
begin
Mouse(FT.x, FT.y, 0, 0, false)
wait(75+random(25));
Result := ChooseOption('fesant');
end;
end;
end;
end;
end;
end;



function Froster_GetToPortal: boolean;
var
xx : TPoint;

begin
if FindObject(xx,111) then
begin
SetAngle(True);
if (DistanceFrom(xx) > 6) then
begin
WalkToTile(xx, 0, 0);
FFlag(0);
Wait(400);
end;
XX:= TileToMS(XX, 0);
Mouse(xX.X + 5, xX.Y - 14, 5, 5, false);
Wait(200 + Random(10));
Result:= ChooseOption('o-t');
Flag;
Exit;
end;
Result:= False;
end;


begin
end.

oh and i thing the Randoms Froster file in the include needs to be changed so it looks like therest you know with the

//------------------------------------------------------------------\\
//-- Scar Non-Standard Resource Library --||
//-- » Reflection Routines - Interfaces --||
//------------------------------------------------------------------//
// * function GetInterface(Index, ChildIndex: Integer): Integer; // * by Bobarkinator
// * function GetInterfaceText(ParentI, ChildI: Integer): String; // * by Method
// * function ValidInterface(ParentI: Integer): Boolean; // * by Method
// * function GetModelID(ParentI, ChildI: Integer): Integer; // * by Method
// * function GetModelType(ParentI, ChildI: Integer): Integer; // * by Method
// * function GetEquippedItems : TItemArray; // * by Nava2
// * function IsItemEquippedAt(P, ID : Integer) : Boolean; // * by Nava2
// * function GetEquippedItemAmountAt(P : Integer) : Integer; // * by Nava2

@ the top


Edit:

This works 100%

Function FindEnt: boolean;
var
Id : TStringArray;
I : Integer;
p : TNpc;

begin
iD:= ['Willow','Yew','Magic','Maple','Oak','Normal']
for I:= 0 to Length(Id) - 1 do
begin
Result:=FindNPC(Id[I],p);
if result then
begin
WritelN(Players[CurrentPlayer].Name + (': Ent Found'));
MFNF(MMCX, MMCY, -1, 1);
wait(10000);
Break;
end;
end;
end;

Method

2008-12-14 16:49:37

The NPC's name is the Freaky Forester, not the Freaky Froster. Also, your ent finding procedure will activate even if your player is not chopping the tree that's an ent, making it not very useful.

NiCbaZ

2008-12-14 16:53:31

From: Method
The NPC's name is the Freaky Forester, not the Freaky Froster. Also, your ent finding procedure will activate even if your player is not chopping the tree that's an ent, making it not very useful.


I relased all my NPC names and everything would be wrong i was just writing a base for it as i thought you would of picked up, as i dont have an account in there ;)

Also the ent one is usefull, it stops cutting an ent, evan if your not cutting the tree, it could be done so it just will avoid if your cutting the tree , that could be done with a simple distance check..

Method

2008-12-14 16:57:06

A distance check is still inaccurate, especially if you have multiples trees near you, like in Draynor. The best way is to use the getInteracting hooks (which aren't in Hooks.scar, but I'll add them next time probably) to see what the ID of the NPC you're interacting with is. If it's a known ent ID, you know you're chopping an ent and should stop.

NiCbaZ

2008-12-14 17:01:42

Ok great that should be really good.

TheChineseMan

2008-12-14 22:30:04

do u need a prison pete acc cus i got 1 just PM me and ill give u pass and stuff

D1zl3

2008-12-15 01:54:18

I got one account in freaky forester, pm me if you need it

Nava2

2008-12-15 08:19:45

From: thechineseman
do u need a prison pete acc cus i got 1 just PM me and ill give u pass and stuff


From: D1zl3
I got one account in freaky forester, pm me if you need it


Both would be useful :)

mormonman

2008-12-15 14:49:08

i am currently working on getting the id's for the grave digging random… will post em here( i can just use rsbot's id finder can't I?)

sorry that i am not that great at scripting or i would try to solve it…

Nava2

2008-12-15 15:23:53

Yeah! you can, just log in with a player in it. Then run the debugging! :)

mormonman

2008-12-15 15:59:59

From: Nava2
Yeah! you can, just log in with a player in it. Then run the debugging! :)


awesome… i have 2 of em in it… just waiting til i get back from school

Nava2

2008-12-15 17:02:40

Awesome, if you know how, you could also look for the interface things :)

mormonman

2008-12-15 18:16:03

… sorry… i have one in the pinball random… has it been solved? i got most of the id's… working on the rest right now and will post after i get back from basketball practice!

Nava2

2008-12-15 19:36:19

From now on, any code submitted will be modified as we get it.

It must also folow SRL standards, as well as compile on first attempt.

Generally, global variables are frowned upon, please make sure you make every attempt to make then local.

We will mod it as we see fit, never removing your name from the credits, as long as they are still necessary.

Thanks! :)

Method

2008-12-15 19:54:58

Removed the Forester and Certer files until we can fix Timer's "Phailed" boolean issues and get some better logic in there.

Forester:

//------------------------------------------------------------------\\
//-- Scar Non-Standard Resource Library --||
//-- » Forester Solver --||
//------------------------------------------------------------------//
// * function R_InForester: Boolean; // * by Timer
// * function TalkToForester: Boolean; // * by Timer
// * function ForesterKillPheasent: Boolean; // * by Timer
// * function ForesterPickUpDead: Boolean; // * by Timer
// * function ExitForester: Boolean; // * by Timer
// * function GetTask: Integer; // * by Timer
// * function R_SolveForester: Boolean; // * by Timer

{*******************************************************************************
function R_InForester: Boolean;
by: Timer
Description: Results if in forester
*******************************************************************************}
function R_InForester: Boolean;
begin
Result := ValidNPC('Freaky Forester');
end;

{*******************************************************************************
function TalkToForester: Boolean;
by: Timer
Description: Talks to forester
*******************************************************************************}
function talkToForester: Boolean;
var
NPC: TNPC;
my_Pos: TPoint;
fx, fy: Integer;
begin
my_Pos := GetMyPos;
if (FindNPC('Freaky Forester', NPC)) then
begin
if (Distance(NPC.MM.x, NPC.MM.y, my_Pos.x, my_Pos.y) > 3) then
begin
WalkToTile(NPC.MM, 2, 0);
Wait(500 + Random(700));
FindNPC('Freaky Forester', NPC);
MMouse(NPC.MS.x, NPC.MS.y, 5, 5);
Wait(50 + Random(50));
if (IsUpText('alk-to')) then
begin
GetMousePos(fx, fy);
Mouse(fx, fy, 0, 0, False);
Wait(50 + Random(100));
if (ChooseOption('alk')) then
begin
Wait(500 + Random(700));
Result := True;
Exit;
end;
end;
end;
end;
end;

{*******************************************************************************
function foresterKillPheasent: Boolean;
by: Timer
Description: Kills according Pheasent
*******************************************************************************}
function foresterKillPheasent(Task : Integer): Boolean;
var
pheasentID, revertMouseSpeed, Tries: Integer;
NPCEx: TNPCEx;
B: TBox;
foresterTPA: TPointArray;
begin
case (Task) of
1: pheasentID := 2459;
2: pheasentID := 2460;
3: pheasentID := 2461;
4: pheasentID := 2462;
end;
if (FindNPCByIDEx(pheasentID, NPCEx)) then
if (NPCEx.MS.x > MSx1) and (NPCEx.MS.x < MSx2) and (NPCEx.MS.y > MSy1) and (NPCEx.MS.y < MSy2) then
begin
revertMouseSpeed := MouseSpeed;
MouseSpeed := 30;
Mouse(NPCEx.MS.x, NPCEx.MS.y, 5, 5, False);
Wait(50 + Random(50));
MouseSpeed := revertMouseSpeed;
GetClientDimensions(B.X2, B.Y2);
B.x1 := 0;
B.y1 := 0;
FindColorsTolerance(foresterTPA, 4674653, B.x1, B.y1, B.x2, B.y2, 0);
if (Length(foresterTPA) < 10) then
begin
Inc(Tries);
if (Tries <= 7) then
Result := foresterKillPheasent(Task);
Exit;
end else
if (ChooseOption('ttack')) then
begin
r_Flag;
Wait(3000 + Random(700));
end;
end else
begin
Inc(Tries);
if (Tries <= 7) then
Result := foresterKillPheasent(Task);
Exit;
end;
Result := True;
end;

{*******************************************************************************
function foresterPickUpDead: Boolean;
by: Timer
Description: Picks up raw pheasent.
*******************************************************************************}
function foresterPickUpDead: Boolean;
var
fPheasent: array of TGroundItem;
fP: Integer;
begin
r_Flag;
if (FindGroundItems(fPheasent, [6178], 20)) then
begin
Mouse(fPheasent[0].MS.x, fPheasent[0].MS.y, 5, 5, True);
r_Flag;
Wait(700 + Random(500));
if (InventoryContainsEx(6178, fP)) then
Result := True;
end;
end;

{*******************************************************************************
function exitForester: Boolean;
by: Timer
Description: Exits arena.
*******************************************************************************}
function ExitForester: Boolean;
var
portalCoords, pT: TPoint;
begin
if (FindObject(pT, 8972)) then
begin
WalkToTile(pT, 2, 0);
r_Flag;
FindObject(pT, 8972);
portalCoords := TileToMS(pT, 0);
Mouse(portalCoords.x, portalCoords.y, 5, 5, True);
r_Flag;
Wait(2000 + Random(1000));
Result := DistanceFrom(pT) > 5;
end;
end;

{*******************************************************************************
function GetTask: Integer;
by: Timer
Description: Gets foresters task. (Kill a _ tailed pheasent)
*******************************************************************************}
function GetTask: Integer;
var
t: Integer;
begin
if (not TalkToForester) then
begin
Writeln('[Forester] Unable to locate Forester - Please contact Timer about this error');
Players[CurrentPlayer].Active := False;
LogOut;
Phailed := True;
end;
Result := 0;
if (FindNPCChatText('one', Nothing)) then
Result := 1;
if (FindNPCChatText('two', Nothing)) then
Result := 2;
if (FindNPCChatText('three', Nothing)) then
Result := 3;
if (FindNPCChatText('four', Nothing)) then
Result := 4;
MarkTime(t);
while ClickContinue(True, True) and (TimeFromMark(t) < 5000) do
Wait(700 + random(500));
Writeln('[Forester] Got Task!!! - Kill The ' + IntToStr(Result) + ' Tailed Pheasant!');
end;

{*******************************************************************************
function R_SolveForester: Boolean;
by: Timer
Description: Solves Freaky Forester.
*******************************************************************************}
function R_SolveForester: Boolean;
var
T, Task : Integer;
begin
if (R_InForester) then
begin
SetAngle(True);
Writeln('[Forester] Forester Detected!!!');
Task := getTask;
if (Task = 0) then
Phailed := True;
if (Phailed) then
begin
Phailed := False;
Exit;
end;
if (not ForesterKillPheasent(Task)) then
begin
Writeln('[Forester] Unable to Kill a Pheasent');
Phailed := True;
end;
if (not ForesterPickUpDead) and (not Phailed) then
begin
Writeln('[Forester] Unable to pick-up dead Pheasent');
Phailed := True;
end;
if (not talkToForester) and (not Phailed) then
begin
Writeln('[Forester] Unable to locate Forester');
Phailed := True;
end;
MarkTime(t);
while ClickContinue(True, True) and (TimeFromMark(t) < 5000) do
Wait(700 + random(500));
if (not exitForester) and (not Phailed) then
begin
Writeln('[Forester] Unable to Exit Forester');
Phailed := True;
end;
if (R_InForester) then
begin
WriteLn('[Forester] Failed to Solve Forester - Please contact Timer about this error');
Phailed := True;
end;
if (Phailed) then
begin
Phailed := False;
Players[CurrentPlayer].Active := False;
LogOut;
Exit;
end;
Result := True;
end;
end;

Certer:

//------------------------------------------------------------------\\
//-- Scar Non-Standard Resource Library --||
//-- » Certer Solver --||
//------------------------------------------------------------------//
// * function DetectCerter : Boolean; // * by Timer
// * function TalkToCerter : Boolean; // * by Timer
// * function GetCerterItem : string; // * by Timer
// * function AnswerCerter : Boolean; // * by Timer
// * function R_SolveCerter : Boolean; // * by Timer

{*******************************************************************************
function DetectCerter: Boolean;
by: Timer
Description: Returns if _iles is a validNPC...
*******************************************************************************}
function DetectCerter: Boolean;
begin
Result := ValidNPC('iles');
end;

{*******************************************************************************
function talkTo_iles: Boolean;
by: Timer
Description: Talks to _iles.
*******************************************************************************}
function TalkToCerter: Boolean;
var
NPC: TNPC;
my_Pos: TPoint;
fx, fy, t: Integer;
begin
my_Pos := GetMyPos;
if (FindNPC('iles', NPC)) then
begin
r_Flag;
FindNPC('iles', NPC);
MMouse(NPC.MS.x, NPC.MS.y, 5, 5);
Wait(50 + Random(50));
if (IsUpText('alk-to')) then
begin
GetMousePos(fx, fy);
Mouse(fx, fy, 0, 0, False);
Wait(50 + Random(100));
if (ChooseOption('alk')) then
begin
r_Flag;
Wait(500 + Random(700));
while ClickContinue(True, True) and (TimeFromMark(t) < 5000) do
Wait(700 + random(500));
Result := True;
Wait(2000 + Random(500));
Exit;
end;
end;
end;
end;

{*******************************************************************************
function GetCerterItem: string;
by: Timer
Description: Gets the spinning item id.
*******************************************************************************}
function GetCerterItem : string;
begin
case (GetModelID(184, 7)) of
2807: Result := 'bowl';
8828: Result := 'axe';
8829: Result := 'fish';
8832: Result := 'shield';
8833: Result := 'helmet';
8834: Result := 'ring';
8835: Result := 'shears';
8836: Result := 'sword';
8837: Result := 'spade';
else
begin
WriteLn('[Certer] Unable to detect interface object ID!');
Result := '';
Phailed := True;
end;
end;
end;

{*******************************************************************************
function AnswerCerter : Boolean;
by: Timer
Description: Answers accordingly.
*******************************************************************************}
function AnswerCerter : Boolean;

var
itemMilesNilesGiles: string;

begin
itemMilesNilesGiles := GetCerterItem;
if (not itemMilesNilesGiles <> '') then
Exit;
if (Pos(itemMilesNilesGiles, Lowercase(GetInterfaceText(184, 1))) <> 0) then
begin
Mouse(0, 0, 5, 5, True);
Wait(2000 + Random(500));
end else
if (Pos(itemMilesNilesGiles, Lowercase(GetInterfaceText(184, 2))) <> 0) then
begin
Mouse(0, 0, 5, 5, True);
Wait(2000 + Random(500));
end else
if (Pos(itemMilesNilesGiles, Lowercase(GetInterfaceText(184, 2))) <> 0) then
begin
Mouse(0, 0, 5, 5, True);
Wait(2000 + Random(500));
end else
begin
WriteLn('[Certer] Unable to detect interface answer!');
end;
Result := True;
end;

{*******************************************************************************
function R_SolveCerter: Boolean;
by: Timer
Description: Solves Miles / Niles / Giles.
*******************************************************************************}
function R_SolveCerter : Boolean;
var
t: Integer;
begin
if (DetectCerter) then
begin
SetAngle(True);
Writeln('[Certer] Found Certer!!!');
if (not TalkToCerter) then
begin
Writeln('[Certer] Unable to locate Miles / Niles / Giles ');
Phailed := True;
end;
if (not AnswerCerter) and (not Phailed) then
begin
Writeln('[Certer] Unable to answer Miles / Niles / Giles');
Phailed := True;
end;
MarkTime(t);
while ClickContinue(True, True) and (TimeFromMark(t) < 5000) do
Wait(700 + random(500));
if (Phailed) then
begin
Phailed := False;
Players[CurrentPlayer].Active := False;
LogOut;
Exit;
end;
Result := True;
end;
end;

mormonman

2008-12-15 21:29:38

here you go

Pinball Random I.D.'s
Post Not Ringed Ringed

Air 15001 15000
Earth 15003 15002
Fire 15005 15004
Nature 15007 15006
Water 15009 15008

If anybody needs an account in the random so that they can solve, I have one. Just ask and I will pm it to you!

TheChineseMan

2008-12-15 22:01:18

ok i just sent my prison pete acc to lordsaturn hope it will help:)

NiCbaZ

2008-12-16 01:08:47

May i ask something..?

  case (GetModelID(184, 7)) of

how do you get the right id's from that do they come up in debug on rsbot?

lordsaturn

2008-12-16 01:27:57

Here's Drill Demon:


function InDemon: Boolean;
begin
Result := ValidNPCID(2790);
end;

function GetAnimation: integer;
var
P: integer;
begin
P := SmartGetFieldObject(0, MyPlayer);
Result := SmartGetFieldInt(P, CharAnim);
SmartFreeObject(P);
end;

function GetMats: TIntegerArray;
var
Pt: TPoint;
a, anim, i: integer;
begin
SetLength(Result, 4);
for i := 0 to 3 do
begin
Pt := TileToMSEx(Tile(3160+i*2, 4819.5), 0);
Mouse(Pt.x, Pt.y, 3, 8, True);
R_Flag;
a := GetSystemTime;
anim := GetAnimation;
while anim = -1 do
begin
if GetSystemTime - a > 7500 then Exit;
anim := GetAnimation;
end;
Result[i] := anim;
while GetAnimation <> -1 do
Wait(100+Random(100));
end;
end;

function GetJob: string;
var
ms, a, i: integer;
NPC: TNPC;
Pt: TPoint;
s: string;
sA: TStringArray;
begin
if ValidInterface(241) then
begin
if Pos('Damien', GetInterfaceText(241, 3)) <> 0 then
s := GetInterfaceText(241, 4);
end else
begin
ms := MouseSpeed;
MouseSpeed := 30;
FindNPCByID(2790, NPC);
if not TileOnMS(NPC.Tile, NPC.Height/2) then
begin
WalkToTile(Point(3163, 4820), 2, 2);
FindNPCByID(2790, NPC);
end;
Pt := TileToMS(NPC.Tile, NPC.Height/2);
Mouse(Pt.x, Pt.y, 4, 4, True);
R_Flag;
a := GetSystemTime;
while not ValidInterface(241) do
if GetSystemTime - a > 3000 then Exit;
s := GetInterfaceText(241, 4);
MouseSpeed := ms;
end;
sA := ['jump', 'push', 'sit', 'jog'];
for i := 0 to 3 do
if Pos(sA[i], s) <> 0 then
begin
Result := sA[i];
Break;
end;
end;

procedure R_SolveDemon;
var
Mats: array[0..3] of integer;
a, i, Todo: integer;
Pt: TPoint;
s: string;
begin
if not InDemon then Exit;
Mats := GetMats;
while InDemon do
begin
s := GetJob;
case s of
'jump': Todo := 2761;
'push': Todo := 2762;
'sit': Todo := 2763;
'jog': Todo := 2764;
else if Pos('ctual', s) <> 0 then
begin
if not FindNPCChatText('ck h', ClickLeft) then
ClickToContinue;
Break;
end else Exit;
end;
for i := 0 to 3 do
if Todo = Mats[i] then
Pt := TileToMSEx(Tile(3160+i*2, 4819.5), 0);
Mouse(Pt.x, Pt.y, 3, 8, True);
R_Flag;
a := GetSystemTime;
while not ValidInterface(241) do
if GetSystemTime - a > 15000 then Exit;
end;
end;

and if someone could send me another Prison Pete account i could finish that one up..


Edit: Small update.

NiCbaZ

2008-12-16 05:34:41

I just finshed drill as well, but yours looks nice :)

Nava2

2008-12-16 08:37:50

Looks great Saturn, You have some nesting errors, I will fix those and add it to the first post. But for now, its school time :)

Method

2008-12-16 09:36:59

It's unfortunate that you have to actually do the actions in order to find out which mat is which in the Drill Demon random. Good work on the random, lordsaturn! :)

lordsaturn

2008-12-16 11:52:18

From: Nava2
Looks great Saturn, You have some nesting errors, I will fix those and add it to the first post. But for now, its school time :)


Yeah, sorry if its a bit error prone, usually I test the functions I create as I go along, but there was no way to test this.

Btw, check my last post for an update.

Nava2

2008-12-16 21:56:08

New things now added to SVN! :)

If anyone would like a new project, please let me know!

I would like to setup a php database for which ones are solved, and which ones are failed, so we can test accurately.

Want to help out, that would be a golden way to help :)

Thanks!

Btw, Thanks lordsaturn for the Damien solver!

NiCbaZ

2008-12-16 22:09:31

Il be happy to solve pin ball just need an account ;)

mormonman

2008-12-16 23:48:42

From: NiCbaZ
Il be happy to solve pin ball just need an account ;)


lordsaturn has it… you could ask him about it!

NiCbaZ

2008-12-17 00:48:04

From: mormonman
lordsaturn has it… you could ask him about it!


Ok thanks, so il do pinball, just pmed him.

mormonman

2008-12-17 00:52:13

From: NiCbaZ
Ok thanks, so il do pinball, just pmed him.


whenever you are done i wouldn't mind that account back… cuz i was using him for my rimmington miner…

NiCbaZ

2008-12-17 00:59:12

I still dont have the details, could you pm them for me?

lordsaturn

2008-12-17 01:36:18

Here's pinball:


function InPinball: Boolean;
begin
Result := ValidNPCID(3912);
end;

function GetScore: integer;
var
s: string;
begin
s := GetInterfaceText(263, 1);
Delete(s, 1, 7);
Result := StrToIntDef(s, 11);
end;

function R_SolvePinball: Boolean;
var
P: TPointArray;
i, ms, s, x, y, a: integer;
Pt: TPoint;
begin
if not InPinball then Exit;
P := [Point(7239, 1614), Point(7241, 1617), Point(7244, 1618),
Point(7247, 1617), Point(7429, 1614)];
ms := MouseSpeed;
SetRun(True);
try
while GetScore < 10 do
begin
MouseSpeed := 25+Random(5);
for i := 0 to 4 do
if GetObjectType(GetObjectAt(P[i].x, P[i].y)) mod 2 = 0 then
Break;
if i = 5 then Exit;
a := GetSystemTime;
while not TileOnMS(P[i], 15) do
begin
if GetSystemTime - a < 1000 then
begin
Pt := TileToMS(Point(7244, 1614), 0);
Mouse(Pt.x, Pt.y, 4, 4);
R_Flag;
Wait(1000);
end;
Wait(100);
end;
Pt := TileToMS(P[i], 5+Random(30));
Mouse(Pt.x, Pt.y, 2, 2, True);
s := GetScore;
R_Flag;
while s = GetScore do
Wait(100);
end;
s := GetScore;
if (s < 10) or (s = 11) then Exit;
finally
MouseSpeed := ms;
end;
while not(TileOnMS(Point(9931, 3141), 0) or TileOnMS(Point(9932, 3141), 0) or
TileOnMS(Point(9933, 3141), 0)) do
begin
MMouse(MSCX, (MSCY+MMY2)/2, 10, 20);
Wait(50+Random(50));
GetMousePos(x, y);
if Pos('here', GetUpText) <> 0 then
Mouse(x, y, 0, 0, True)
else
begin
Mouse(x, y, 0, 0, False);
Wait(50+Random(50));
ChooseOption('here');
end;
R_FFlag(3+Random(5));
end;
R_Flag;
if not TileOnMS(Point(9932, 3141), 0) then
begin
if GetMyPos.x - 9932 < 0 then
x := (MSCX+MMX2)/2
else
x := (MMX1+MSCX)/2;
Mouse(X, MSCY, 20, 10, True);
R_Flag;
end;
Pt := TileToMS(Point(9932, 3141), 0);
MMouse(Pt.x, Pt.y, 10, 3);
Wait(50+Random(50));
GetMousePos(x, y);
if IsUpTextMultiCustom(['xit', 'ave']) then
begin
Mouse(x, y, 0, 0, True);
R_Flag;
a := GetSystemTime;
while InPinball do
begin
Wait(100);
if GetSystemTime - a > 20000 then Break;
end;
end;
Result := not InPinball;
end;
Walking was a little tedious because of the lack of a minimap..

@Nava
I'll do headers tomorrow.

@mormonman
Thanks for the account man :) You can have it back now.

@NiCbaZ
Sorry, I started creating it before you posted. :p

NiCbaZ

2008-12-17 01:54:32

Can you tell me how this works and how you got the ID's for it?

function GetScore: integer;
var
s: string;
begin
s := GetInterfaceText(263, 1);
Delete(s, 1, 7);
Result := StrToIntDef(s, 11);
end;



ok i figured out how to find the parent id but how do you find the indivual on the de-bugger is it

Nava2

2008-12-17 08:20:02

From: NiCbaZ
Can you tell me how this works and how you got the ID's for it?



ok i figured out how to find the parent id but how do you find the indivual on the de-bugger is it


On RSBot, you just need to expand the columns :)

Edit: Thanks again lordsaturn! :)


Okay here are some changes and questions:

  while not(TileOnMS(Point(9931, 3141), 0) or TileOnMS(Point(9932, 3141), 0) or
TileOnMS(Point(9933, 3141), 0)) do
begin
MMouse(MSCX, (MSCY+MMY2)/2, 10, 20);
Wait(50+Random(50));
GetMousePos(x, y);
if Pos('here', GetUpText) <> 0 then
Mouse(x, y, 0, 0, True)
else
begin
Mouse(x, y, 0, 0, False);
Wait(50+Random(50));
ChooseOption('here');
end;
R_FFlag(3+Random(5));
end;

What is this doing, is it kinda walking around aimlessly? I understand it, but would it not make more sense todo a TileToMS then walk to that tile? That way there is no randomness, and no chance of walking in an annoying circle :)

          Break;
if i = 5 then Exit;
while not TileOnMS(P[i], 15) do

Was the i = 5 supposed to be a different number than 5? Because it shouldn't go over 4.

Looking at it again, is this what you meant?

      MouseSpeed := 25+Random(5);
repeat
if GetObjectType(GetObjectAt(P[I].x, P[I].y)) mod 2 = 0 then
Break;
Inc(I);
until I = 5;
if I = 5 then Exit;

This way, it will cycle through 0..4 but at 5 it will break, and if its 5 it will exit as it didn't find the necessary ID.

Have you tried checking if TileToMS(Tile, 0) produces a runtime error? It might comeback with a "Cannot divide by zero". That I'm not sure of!

Well, here is my version, I didn't change the TileToMS(Tile, 0)'s as I have no idea if I'm right! :)

function R_InPinball: Boolean;
begin
Result := ValidNPCID(3912);
end;

function GetScore: integer;
var
s: string;
begin
s := GetInterfaceText(263, 1);
Delete(s, 1, 7);
Result := StrToIntDef(s, 11);
end;

function R_SolvePinball: Boolean;
var
P: array of TPoint;
i, ms, s, x, y, a: integer;
Pt: TPoint;
begin
Result := False;
if not R_InPinball then Exit;
P := [Point(7239, 1614), Point(7241, 1617), Point(7244, 1618),
Point(7247, 1617), Point(7429, 1614)];
ms := MouseSpeed;
SetRun(True);
try
while GetScore < 10 do
begin
MouseSpeed := 25+Random(5);
I := 0;
repeat
if GetObjectType(GetObjectAt(P[i].x, P[i].y)) mod 2 = 0 then
Break;
Inc(I);
until I = 5;
if i = 5 then Exit;
while not TileOnMS(P[i], 15) do
Wait(100);
Pt := TileToMS(P[i], 5+Random(30));
Mouse(Pt.x, Pt.y, 2, 2, True);
s := GetScore;
R_Flag;
while s = GetScore do
Wait(100);
end;
s := GetScore;
if (s <= 11) then Exit;
finally
MouseSpeed := ms;
end;
while not(TileOnMS(Point(9931, 3141), 0) or TileOnMS(Point(9932, 3141), 0) or
TileOnMS(Point(9933, 3141), 0)) do
begin
MMouse(MSCX, (MSCY+MMY2)/2, 10, 20);
Wait(50+Random(50));
GetMousePos(x, y);
if Pos('here', GetUpText) <> 0 then
Mouse(x, y, 0, 0, True)
else
begin
Mouse(x, y, 0, 0, False);
Wait(50+Random(50));
ChooseOption('here');
end;
R_FFlag(3+Random(5));
end;
R_Flag;
if not TileOnMS(Point(9932, 3141), 0) then
begin
Pt := GetMyPos;
if Pt.x - 9932 < 0 then
x := (MSCX+MMX2)/2
else
x := (MMX1+MSCX)/2;
Mouse(X, MSCY, 20, 10, True);
R_Flag;
end;
Pt := TileToMS(Point(9932, 3141), 0);
MMouse(Pt.x, Pt.y, 10, 3);
Wait(80+Random(50));
GetMousePos(x, y);
if IsUpTextMultiCustom(['xit', 'ave']) then
begin
Mouse(x, y, 0, 0, True);
R_Flag;
a := GetSystemTime;
while R_InPinball do
begin
Wait(100);
if GetSystemTime - a > 20000 then Break;
end;
end;
Result := not R_InPinball;
end;

If you could add tags etc, I would love you :)

P.S. You cant declare an array as array[0..xx] of, unless you don't declare it in the script as arrI := [43, 56, 78, 91]; It causes errors for some odd reason. Declaring length twice I guess.

TheChineseMan

2008-12-17 09:13:58

does anyone need a molly account? PM me

lordsaturn

2008-12-17 13:39:26

@Nava

the for loop will work fine..

From: Nava2

This way, it will cycle through 0..4 but at 5 it will break, and if its 5 it will exit as it didn't find the necessary ID.


Thats exactly what it's doing. It should always find an ID, which is always going to be 0-4. But if it didn't find an ID then i would be 5, after running through 0-4 and not breaking out of the loop. It's unnecessary really, since there's no reason it should ever not find an ID, but just to be safe i added it in.

And the walking, all it is is just a random click on the bottom half on the mainscreen, because eventually one of those 3 tiles will be on the screen. Then, once it finds one of the three, if the center one isn't on the mainscreen, then it walks towards it using another random click.
I guess you could use tiles, it'd probably be more secure. It's just a nuisance having to check whether or not the tile is on the mainscreen every time you click, so I thought this would be fine.

Btw, TileToMS with a height of 0 doesn't result in a runtime error, because the function never divides by height.

And i edited in an updated version in my last post.

NiCbaZ

2008-12-17 16:02:25

On RSBot, you just need to expand the columns


Yes i know but the exspanded ones dont have numbers, they got numbers , but mosly 4 and 5 , how can they share the same idea's?? plesase exsplain in detail how you get the second number please?!

Timer

2008-12-17 16:21:28

I fixed my Certer and Forester, can I re upload them now..? :D

Nava2

2008-12-17 16:57:10

From: NiCbaZ
Yes i know but the exspanded ones dont have numbers, they got numbers , but mosly 4 and 5 , how can they share the same idea's?? plesase exsplain in detail how you get the second number please?!


The model ID's are in the Model ID column, and the Children are all the numbers down the left once you expand a parent.

Make sure you stretch the columns :)

NiCbaZ

2008-12-17 17:34:32

From: Nava2
The model ID's are in the Model ID column, and the Children are all the numbers down the left once you expand a parent.

Make sure you stretch the columns :)


Thank you :)

Also when i try to writeln you interferance text it comes up with really different symbols?

Nava2

2008-12-17 20:14:43

Reflection Anti-Randoms are now officially included!

Thanks to all who are still contributing, and have contributed.

Now, any reflection script can have these included.

Just make sure, in the scripts progress report section, you include the Randoms report and please, please post them up! Its the only way we will know if they have been solved or not.

Update your SVN and enjoy :)

P.S. lordsaturn I did the tags and stuffs :)

NiCbaZ

2008-12-18 00:13:54

Is molly finished?


Btw i can do evil bob island if theres any accounts.

mormonman

2008-12-18 00:17:13

From: NiCbaZ
Is molly finished?


Btw i can do evil bob island if theres any accounts.


did you already finish with the pinball?

NiCbaZ

2008-12-18 00:22:22

From: mormonman
did you already finish with the pinball?


Someone already solved it before me sorry should of told you.

mormonman

2008-12-18 00:23:49

what randoms are left? i will try to get them if people tell me which ones you need?

NiCbaZ

2008-12-18 00:26:45

Evil Bob island, Maze, Leo ?

mormonman

2008-12-18 00:28:25

i will try to get leo… i have a bunch of big bones to bury anyways…(on that same account)

D1zl3

2008-12-18 01:30:48

Wow its amazing to see how fast these are getting solved. So once smart is fixed, and these are all solved, then there would be no worry about randoms?

TheChineseMan

2008-12-18 01:45:31

i got a prison pete acc pls PM me to say who i give 2 thx!

senrath

2008-12-18 01:51:40

From: D1zl3
Wow its amazing to see how fast these are getting solved. So once smart is fixed, and these are all solved, then there would be no worry about randoms?


Only if you're using a script that uses reflection. Otherwise, sorry.

mormonman

2008-12-18 08:25:21

From: senrath
Only if you're using a script that uses reflection. Otherwise, sorry.


you could just include reflection for the randoms… it wouldn't be that hard!

Nava2

2008-12-18 08:28:21

Uhm, we still need:

Maze, Molly (Finish it, I did most of it already), Leo, Evil Bob's Island, ScapeRune needs to be finished I think…

Thats all I can think of atm!

We have lots of Leo accounts btw :).

mormonman

2008-12-18 11:01:40

From: Nava2
Uhm, we still need:

Maze, Molly (Finish it, I did most of it already), Leo, Evil Bob's Island, ScapeRune needs to be finished I think…

Thats all I can think of atm!

We have lots of Leo accounts btw :).


so what accounts do you need?

NiCbaZ

2008-12-18 15:36:26

Nava2, open up RSBot on your Prison Pete character, go to the screen it spins the wanted animal in and run the Interface Explorer script. Then, first try searching (or filtering, can't remember), any text it says there. When you found the right class, click the children until the yellow frame is on the animal. Remember to extend the Interface Explorer script quite a lot to the right or you'll miss the index I think. Then in SCAR, keep in mind the Parent and Child, do GetModelID(Parent, Child) and voila. Then! Substract 7630 from the ModelID and you get the animal's NPC ID (Or Object type, try this after NPC ID)


Im looking into this for leo but the problem is there no text so what do i search for?


////////ModleID's///////////////////
///////////13403////////////////////
/////////// -7630 = 5773

Ok i got this but the modle ID is the same for each coffin headstone?

Nava2

2008-12-18 15:47:55

From: NiCbaZ
Im looking into this for leo but the problem is there no text so what do i search for?


////////ModleID's///////////////////
///////////13403////////////////////
/////////// -7630 = 5773

Ok i got this but the modle ID is the same for each coffin headstone?


Hmm, then it might not be possible.

Are you sure you have the right interface child?

NiCbaZ

2008-12-18 15:52:12

Yes i do, i do this on every coffin and it returns the same…

Oh and this doesnt work either…

  if findObject(XX,5773)  then
Writeln('Hi');
if FindNPCById(5773,zp) then
Writeln('hey');

You could have a look but im very sure t=there the same for each head stone.

mormonman

2008-12-18 15:53:11

do the things on the inside have id's? cuz you could just use that…

NiCbaZ

2008-12-18 16:04:52

From: mormonman
do the things on the inside have id's? cuz you could just use that…


No you need to use the coffin heads to find out who was bured there…
here is my infomation…




{ leo }

/////////InvCoffin///////////////////
// Coffin 1 : ID: 7587 : Pots
// Coffin 2 : ID: 7589 : Cooking
// Coffin 3 : ID: 7591 : Wood/Fire
// Coffin 4 : ID: 7588 : Mine/Craft
// Coffin 5 : ID: 7590 : Gandening.
/////////////////////////////////////

/////////ObjCoffin///////////////////
// Coffin 1 : ID: 12717
// Coffin 2 : ID: 12719
// Coffin 3 : ID: 12716
// Coffin 4 : ID: 12718
// Coffin 5 : ID: 12720
/////////////////////////////////////


////////ModleID's///////////////////
///////////13403////////////////////
/////////// -7630 = 5773
///////////13399////////////////////


mormonman

2008-12-18 16:07:27

no i mean you could just click a random headstone and check on the inside to see if it matches any coffins… then put the coffin in that one.(except i don't know how you would distinguish that you just clicked that one…)

NiCbaZ

2008-12-18 16:50:25

Thats the problem you carnt cheak what the headstone is .. you mean just try each coffin on each headstone till it matches?

mormonman

2008-12-18 19:02:38

From: NiCbaZ
Thats the problem you carnt cheak what the headstone is .. you mean just try each coffin on each headstone till it matches?


well like you would just choose a headstone… when it shows whats on it(if it has an id) then you would choose the coffin that matched the item…but i don't think it will work as i can't think of a way that you could make sure that you put it in the right grave even after you find out if it is the right one

NiCbaZ

2008-12-18 19:07:49

thats the probelm it dodnt have an id..

mormonman

2008-12-18 19:09:13

i thought so…dangit. so there is no way to do the leo one?

NiCbaZ

2008-12-18 19:27:31

Well if rsbot has doen it i can look @ how they did it…

EDIT: No rsbot just stops when you get that random.

Nava2

2008-12-18 20:28:32

lordsaturn is also working on leo, why not talk to him? :)

NiCbaZ

2008-12-19 04:21:49

Reflection Solved the box :) .. But failed to exit the procedure thus making it useless…

I made a temporay fix in my includes folder you should update it ASAP.

Well my fixed didnt work :p anyway.. It solves 1 box then just sits there in the box procedure, doesnt exit if there any left doesnt go onto the next one if theres 1 there , Hmm

Nava2

2008-12-19 07:35:42

I just added some timer Failsafes, committed.

Nava2

2008-12-20 22:18:05

Bumpity Bump Bump Bumpity Bump Bump Look at frosty go!

D1zl3

2008-12-22 04:22:23

I gave my freaky forester acc about a week ago and no ones tested on it yet if you still need it.

Torrent of Flame

2008-12-22 04:35:30

I have an acc in Mordaut if anyone needs that.

Nava2

2008-12-22 09:55:17

From: D1zl3
I gave my freaky forester acc about a week ago and no ones tested on it yet if you still need it.


Uhm, no one has taken the initiative to solve it. Except for Timer, but it wasn't… extremely well done.

From: ToF
I have an acc in Mordaut if anyone needs that.


Nah, thats not necessary. Thanks though, but its impossible :(

Iroki

2008-12-22 10:02:49

From: Nava2


Nah, thats not necessary. Thanks though, but its impossible :(



Why it'simpossible??

Nava2

2008-12-22 10:10:28

There is nothing in the integers for the answers, no unique model id's. Its impossible via reflection.

Torrent of Flame

2008-12-22 10:21:58

Well if you ever need a mordaut then it'll be in there till I make a new script :o

jakeyboy29

2008-12-22 11:04:06

y cant the id's be made?

senrath

2008-12-22 11:17:33

From: jakeyboy29
y cant the id's be made?


Because in Mordaut all of the (important) IDs are identical. No way to distinguish one item from another.

Nava2

2008-12-22 15:14:50

Senrath beat me to it.

Timer

2008-12-22 15:20:35

Could i have that Forester account?

lordsaturn

2008-12-26 00:51:21

I would have leo and pete finished, if not for my damn family that lives 800 miles away…*grumbles incoherently*

Floor66

2008-12-26 05:50:18

It looks like that after pinball it doesn't find the exit

Nava2

2008-12-26 11:33:49

From: Floor66
It looks like that after pinball it doesn't find the exit


I can probably fix that one :)

From: lordsaturn
I would have leo and pete finished, if not for my damn family that lives 800 miles away…*grumbles incoherently*


*grumbles back!*

Don't worry about it. You have done soo much already. Thanks :)

jakeyboy29

2008-12-26 13:31:15

pinball is working on rsbot, anyway of stealing that?

mormonman

2008-12-26 13:35:01

From: jakeyboy29
pinball is working on rsbot, anyway of stealing that?


… no because it is written in java…

n3ss3s

2008-12-26 13:37:20

NOTICE

Damien exercise mat IDs are NOT static. If the solver has a way around this then no problem, but I didn't view the source so…

mormonman

2008-12-26 13:39:45

From: n3ss3s
NOTICE

Damien exercise mat IDs are NOT static. If the solver has a way around this then no problem, but I didn't view the source so…


i think he does it where it actually does the exercise and uses the animation id and then gives that id the name of the animation… and does that to each mat.

Nava2

2008-12-27 00:02:40

He makes the script do each mat, kinda slower. But it allows it to be solved. It was smart on his part ;).

Btw, it also stores the IDs per animation ask. Its a good solver, should work well. :)

jdb

2009-01-03 15:18:16

Hi guy i'm sorry maybe i'm just sow but i don't get how i'm supposed to work this whole thing


I've added R_RandomsReport to my termination script and added R_FindRandoms before ever FindNormalRandoms and nothing happenz when randoms appear.

[qoute]
—————————————————————-
Reflection Randoms Report!

Total Solved: 0; Total Failed: 0
—————————————————————-
[/qoute]


do i still have to add all the anti-randoms little script sections into my script for R_FindRandom to do anything?

Nava2

2009-01-04 15:07:26

Nah, you probably just didn't get any randoms which reflection can solve atm.



Note to all developing:
All checks for randoms must be done with tiles if possible. We are having issues with the NPCs as scripts are detecting other folks randoms! So, to solve this try doing things like so:
function R_InMime : Boolean;
begin
Result := TileInBox(GetMyPos, IntToBox(3456, 3456, 4567, 4567));
end;
This way, there is no chance of detecting others randoms! :) By the way, if we can't use positions, NPCs would still work.

NiCbaZ

2009-01-04 15:17:55

Use Music, like in srl but with inteferances.

Widget

2009-01-04 22:16:18

For demon solver, can't you use the IDs of the wood signs behind the mats? If I remember right, there's either 1 or 2 possible IDs for each.

Also, doesn't SkyScripter's leo solver work?

Nava2

2009-01-05 16:31:04

Afaik it doesn't. :(

TheChineseMan

2009-01-06 09:07:46

molly random here pls pm quickly

BanditX

2009-01-08 22:32:44

Is drill demon still not working? If not, do u need a char stuck on him? I got one, pm me.

randy marsh

2009-01-08 22:36:03

why is mordaut impossible?

Method

2009-01-08 22:59:49

From: djcheater
why is mordaut impossible?


Because we don't have the hooks (or the correct techniques) required to figure it out.

Seroko

2009-01-09 15:48:54

Howdy guys, been a while eh? WOTLK didn't last long enough all content cleared nothing to aim for till the next patch 2~ months down the road. So how're you guys doing?

Anyway just wanted to stop by and say I am skimming through everything catching up on what I missed and I'll contribute to this project to the best of my ability.

Eh, quick edit. any you want me to focus on? pretty sure with the updates on reflection I can do all except mord~

almost

2009-01-11 18:36:01

R_SolveBox was working as of 3 days ago but in the past 2 days I have gotten 3 boxes and it has messed up on them.
It solves it and then in the spot where the box was it will keep clicking over and over on the item you got for solving it.
I just checked back on my autoer and he had been clicking on an emerald for about 30 minutes.

Anyone who needs a temp fix for this, comment out the line in R_SolveBox that starts the while loop, so it only tries one time.
And I think it might not get stuck.
I can't figure out why it does this either…

lordsaturn

2009-01-11 20:40:04

Temp fix for box: change line 69 to

end else Break;

It'll be updated in the next revision.

Edit: The cause of the bug is actually in the function InventoryContainsEx, will be fixed next revision. That fix will also be unnecessary next rev.

Edit2: Fixed :)

Nava2

2009-01-12 20:30:13

From: lordsaturn
Temp fix for box: change line 69 to

end else Break;

It'll be updated in the next revision.

Edit: The cause of the bug is actually in the function InventoryContainsEx, will be fixed next revision. That fix will also be unnecessary next rev.

Edit2: Fixed :)


ily :)

Thanks.

Simtoon

2009-01-20 22:22:36

wow the only thing solved is Box

Nava2

2009-01-21 06:47:18

Meaning…

almost

2009-01-23 23:19:46

wow the only thing solved is Box

Umm no.

Nava, or anyone, not sure if any of you guys have seen my post on my thread, but IsInteractingWithMe doesn't work anymore.
But can't this be updated?
Also Rick Turpentine needs to be added to the names (I found out it is "Rick")
And one last thing, the 'rog' should be taken out of the names because it makes SRL try to solve it and it has failed for me every time.
The reflection one is working, just it doesn't get a chance at trying to solve it.

Method

2009-01-23 23:25:40

IsInteractingWithMe isn't working because whoever updated the hooks didn't completely know what they were doing. The SelfInteracting hook should be 'hd.m' instead of just 'm' (I don't have svn on this computer, so I can't update the hooks right now).

mormonman

2009-01-23 23:28:45

From: Method
IsInteractingWithMe isn't working because whoever updated the hooks didn't completely know what they were doing. The SelfInteracting hook should be 'hd.m' instead of just 'm' (I don't have svn on this computer, so I can't update the hooks right now).


omgeez… thank you method! I was working on my tut runner and couldn't figure out why it wasn't working when I tried IsInteractionWithMe. Will be helpful when they get the hook right.(But I will have to redo the procedure I just made!)

almost

2009-01-23 23:46:09

Tested and works, thanks Method.
If anyone is going to use R_FindTalk it's a pretty easy fix.
Open hooks.scar and change
SelfInteracting = 'm';
to
SelfInteracting = 'hd.m';

Then if you also want the other fixes, change the NPCs array to
NPCNames:= ['ighw', 'ick', 'iles', 'and', 'kyll', 'warf', 'erter', 'enie', 'eriou', 'urity', 'andwi'];
inside FindTalkingNPC (antirandoms.scar)

n3ss3s

2009-01-24 06:28:16

Why do you shorten the names of the random NPCs since you aren't using color?

Widget

2009-01-24 19:58:41

I guess it's just a force of habit for scar people :p

Uppercase letters work fine in reflection ;)

almost

2009-01-24 20:36:00

I guess it's just a force of habit for scar people

Uppercase letters work fine in reflection


REALLY?
I am in the habit of it.
That means you don't have to use Pos or anything, you can just to a check for the name!
But I don't know the exact name for a lot of them…

Nava2

2009-01-26 21:39:59

From: almost
REALLY?
I am in the habit of it.
That means you don't have to use Pos or anything, you can just to a check for the name!
But I don't know the exact name for a lot of them…


A Pos is probably just as accurate, as well as allows for errors on the scripting side. Not a big deal! :)

Nava2

2009-03-02 08:16:26

Bump, lets get these new randoms done.

mormonman

2009-03-05 18:35:46

Prison Pete info:
Gate to leave: 11178 and 11177
Pete: 3118
Lever: 10817
Dog with normal Tail: 3120
Dog with weird Tail: 3119
Ram: 3122
Sheep: 3121

Order of events:
Tele-ed to prison.
Pete talks automatically.
Repeat
Pull the lever.
Pop animal.
ClickToContinue.
Until Pete says that you can leave.
Open Gate, automatically tele-ed back.
Note: I never solved the random, but Pete said "you have served your sentence"… so i got to leave, but I was tele-ed to falador when i was in varrock. Does this mean there is a time limit now?

Nava2

2009-03-06 00:19:39

Yes, there is. It also means you failed the random. :(

E: It appears that the random itself is not changed much. Many of the ID's are the same!

mormonman

2009-03-06 02:32:17

Miles: 8634.
Portal in Miles: 11368.
You automatically talk to him.
Answer Question(idk how though).
Clicktocontinue one time.
Click portal.

Pinball Score:
index = 263
sorry i forgot to get childinterface…phail
text = Score: *whateveritis*
Poles have same ids.
NPC chat says "Congratulations. You may now"…

capn arnav was solved by n1ke!

Drakan

2009-03-06 18:20:32

I solved mime forester and pillory all tested multiple times and working great.

Nava2

2009-03-07 12:10:54

Added info from mormonman, added Drags' solvers into Dev SVN.

mormonman

2009-03-07 12:54:48

From: Nava2
Added info from mormonman, added Drags' solvers into Dev SVN.


hey that is just miles, not giles or niles… i get their ids and stuff are different, but i am working on getting randoms!

Nava2

2009-03-09 20:41:43

Thanks mormonman!

Turtle Dude

2009-03-11 02:53:32

Nava2 when will all of the random's be fixed, so that i can auto in peace again?

kabilie

2009-05-12 14:51:53

never? xD rs keeps updating too>?

P1nky

2009-05-12 18:46:56

From: kabilie
never? xD rs keeps updating too>?


eh A lot of them are solved… so don't say never, cause we once said the School random is quite impossible , and than naum and his partner popped up solving it….

so be patient

mormonman

2009-05-13 00:59:13

From: ~~Joker~~
eh A lot of them are solved… so don't say never, cause we once said the School random is quite impossible , and than naum and his partner popped up solving it….

so be patient


lol… mordaut reflection solver is in the development reflection revisions… drags111 made it(i think, because i lended him some accounts)

Capricorn

2009-05-21 01:54:06

I got a frog random and it wasn't working, so I found the ID of the frog princess and it was 391, and I believe originally you guys had it at 395. Was the frog anti-random working prior? Also, you no longer have to talk to the frog herald after, after you kiss the princess your teleported out.

Capricorn

2009-06-14 05:58:01

ScapeRune Island needs to be done. I have gotten it three times in a row now. I tried doing it but I fail and I didn't have time to leave my character in the random.


The Attachment below is what I got, but it lags like a beast and, it never picked up the fishing nets for me, and it never fished. It did however successfully find which spot to go (the one time I tested it, as it does not change until you get a new random). This is basically a shell I guess then, hopefully someone fixes it and it can be committed.

Hopefully someone can find some time and fix it.

marpis

2009-06-14 18:53:48

Btw, here's couple of Prison Pete IDs:
Animals on floor
  • cat 3120
  • hare 3122
  • fat dog 3121
  • dog 3119
Others
  • portal 11371 (4 tiles)
  • pete 3118
  • lever 10817

edit: oh, you alrdy knew all these ^^
edit: MIME NEWS
- Mime is currently ALMOST working, it didn't step in to the spotlight but once i put it there, the solver finished it prefectly :) This is a pretty small fix, but I need one account in mime so i can fix that :<

caused

2009-06-19 17:55:02

For me, R_FindRandoms, had Problems solving leo, and the mime.

Leo:
It went to the grave, and stood, there, while Leo says " Hey .. do you know what youre doing" .

After you manually cliked "continue", and "yes", the script went on smoothly…

So.. that should be easy to fix.

Mime:
It just stood there, and the client lagged out…

Capricorn

2009-06-19 18:01:14

Leo works fine for me when I have 6 slots open, otherwise it sits there trying to take up the coffins with a full inventory :(

mormonman

2009-06-19 18:10:16

well, if we make it deposit, then it might get rid of something you still want.

Capricorn

2009-06-19 18:15:16

It should do one at a time, that way you only ever need two slots.

caused

2009-06-19 18:16:29

We could make a script that
1. deposits some items,
2. saves the id's
3. and picks the items up again, when its done : )

mormonman

2009-08-22 11:36:02

Looking for the ID's of the prison pete random. Id's needed are all of the animals, the lever, and the gate. Thanks xD!

Bixby Sayz

2009-08-22 14:43:54

I have an account in Frog Random if you need it. Think I'm going to start collecting accounts in various randoms. Just because I can really.

rogeruk

2009-08-22 15:11:56

From: marpis
Btw, here's couple of Prison Pete IDs:
Animals on floor
  • cat 3120
  • hare 3122
  • fat dog 3121
  • dog 3119
Others
  • portal 11371 (4 tiles)
  • pete 3118
  • lever 10817


Confirmed.

mormonman

2009-08-22 18:03:13

From: rogeruk
Confirmed.


ok thanks i wasn't sure those were still good. working on it now

rogeruk

2009-08-22 18:16:34

Did have an account but it told me that i failed and threw me out lol

rogeruk

2009-08-24 03:24:17

Evil Bob:


NPC IDs
- Evil Bob 2479
- Servant 2481

Object IDs
- Uncooking Pot 8985
- North Statue 8992
- East Statue 8991
- South Statue 8990
- West Statue 8993
- Fishing Spots 8986
- Portal 8987

Inv Ids
- Fish Like Thing 6203
- Raw Fish Like Thing 6201

mormonman

2009-08-24 05:35:08

I don't know if those ids are static though.

rogeruk

2009-08-24 14:02:19

Ill see if i can get another one, if i do ill see. Else some1 else ?

Capricorn

2009-08-25 06:57:15

From: mormonman
I don't know if those ids are static though.


I have attached a very crappy version that doesn't solve the random, but you can compare the ID's to see if they are static.

Edit: its on the previous page.

mormonman

2009-08-25 06:58:46

From: Capricorn
I have attached a very crappy version that doesn't solve the random, but you can compare the ID's to see if they are static.


o wow, didn't see that thnx denebola.

Edit: yep they are constant… I might work on that later… gotta write an essay right now.

mormonman

2009-09-02 01:44:00

Bump-de-bump… anybody have troubles with the reflection randoms that are currently out. I have noticed that frog, prison pete, evil bob, drill demon, and pinball don't work correctly.

Ps - I would have edited but its a bump post… sorry for double post.

rogeruk

2009-09-02 02:15:02

Having a bit of a problem with the captain one? Sometimes it dont detect it. (One with the chest you got to unlock).

mormonman

2009-09-02 02:20:57

From: rogeruk
Having a bit of a problem with the captain one? Sometimes it dont detect it. (One with the chest you got to unlock).


hmm, ok that should be an easy fix :D

rogeruk

2009-09-02 02:24:30

Any progress on getting the ones that are not solvable atm?

mormonman

2009-09-02 02:25:43

There are none that are "not solve-able"… they just haven't been solved yet. Funny as it is, I am working on another essay, then I am going to finish the Evil Bob one.

rogeruk

2009-09-02 02:48:42

********FORESTER DETECTED********

Just logged out for me lol.

mormonman

2009-09-02 02:50:55

Ok, so I guess in a couple of hours I will request all accounts stuck in those randoms, so I can work on the solvers :>

rogeruk

2009-09-02 02:52:58

Actually, it did everything but walk to portal and leave. Logged back in and he said i can leave now. and i was returned back to location with reward box.

mormonman

2009-09-02 03:05:07

From: rogeruk
Actually, it did everything but walk to portal and leave. Logged back in and he said i can leave now. and i was returned back to location with reward box.


was he in the middle of the enclosure?

rogeruk

2009-09-02 03:09:44

Was right next to the forester. Like where you get teleported to.

Nava2

2009-09-02 03:41:41

Do the old math relationships not work anymore?

mormonman

2009-09-02 04:11:12

From: Nava2
Do the old math relationships not work anymore?


Guess not :P You could prolly just check it, I am almost done with my paper…

mormonman

2009-09-02 04:20:36

From: Trevor3443

It picked the right chicken amazingly, but then it just stood there. I paused script and moved it to where the portal was showing on the screen, and resumed the script and it exited the portal by itself.

Upon leaving the random, it used the reward (purple) box, and then scrolled down and picked the random orange (surprise?) box. But it never opened the surprise box!! I had to stop script and restart it.

Going to look now if its included, but I wanted it to choose the lamp so I don't get random items in my inventory / bank ;)


Did you set BoxRewards?

Boreas

2009-09-02 04:26:21

Anybody done any work on a maze solver?

mormonman

2009-09-02 04:42:23

Nah, but my guess is that it would be a lot easier than with color… just store tiles.

Boreas

2009-09-02 05:04:21

Yea if I can get a 2Dintarray with door/wall IDs for the tiles it should be pretty quick.

mormonman

2009-09-02 05:25:29

Players[].BoxRewards := ['ook', 'XP', 'oins'];

And that might work…

slackeru

2009-09-16 19:39:41

I will pm one of you as soon as I get a random.