SRL Archive - RS3 Script Requests

Dungeoneering


HarryJames

2011-03-18 21:11:17

I'm making a Dungeoneering script.
It's going to take a lot of time, so I'm asking for a helper (or two :3)!

If you'd be interested in helping, post here and PM me!
I'd prefer if you had an IM client and a reasonably decent script ;)

Thanks, Harry.

Santa

2011-03-18 22:02:59

I'll do what I can to contribute! Can't wait to see this up and running. :D

HarryJames

2011-03-19 22:46:44

*pm'd*

rogeruk

2011-03-20 00:27:05

Would be interesting to see a development blog on this.

Floors coded, etc.

HarryJames

2011-03-20 08:03:13

I'll start a tumblr for it if you'd like ;)

rogeruk

2011-03-20 08:15:17

That or a simple thread kept up to date :).

Gonna be a big project lol.

HarryJames

2011-03-20 08:15:51

The Tumblr (It's a blogging website incase you didn't know)

I'd prefer a blog tbh, as it's easier with dates and progressions etc etc.

rogeruk

2011-03-20 08:18:12

Looks good :thumbsup:. Keep it updated on what you have done, not done, having trouble with etc.

If you get stuck ask for help

HarryJames

2011-03-20 10:53:28

I'm a bit stuck at the moment, I need to assess new rooms and 'get' their data for things like items and interactables (such as a furnace for instance.

Troll

2011-03-20 11:07:33

From: HarryJames
I'm a bit stuck at the moment, I need to assess new rooms and 'get' their data for things like items and interactables (such as a furnace for instance.

Have a big ID list and scan though them, if found at it to the record. Speed is not everything as its not a speed game ;)

HarryJames

2011-03-20 11:28:13

>DIDs.SIMBA[PHP]const

// Spawn area
SPAWN_TABLE = 51577;
TOOLKIT = 19560;


// Skill stuff
RUNECRAFTING_ALTER = 50035;
SPINNING_WHEEL = 49934;
ANVIL = 50195;
FURNCE = 50191;
WATER_TROUGH = 49937;
SUMMONING_OBELISK = 50205;
FARMING_PATCH = 50152;
COOKING_RANGE_NO_WOOD = 49971;

CHEST = 49896;
CHEST2 = 49887;
CHEST3 = 49889;

// Fishing
// Tier 5
FISHING_TIER5 = 49927;


// Trees
// Tier 5
TREE_TIER5 = 49753;


// BOSSES
ASTEA_FROSTWEB = 9980;


// Doors
GUARDIAN_DOOR = 50346;
DUNGEON_EXIT = 51156;
DOOR = 50342;
BROKEN_KEY_DOOR = 80308;
FIXED_KEY_DOOR = 50311;
DARK_SPIRIT = 50332;


ORANGE_CRESENT_DOOR = 50358;
ORANGE_CRESENT_DOOR_LOCK = 50213;
ORANGE_CRESENT_KEY = 18212;

YELLOW_TRIANGLE_DOOR = 50369;
YELLOW_TRIANGLE_DOOR_LOCK = 50224;
YELLOW_TRIANGLE_KEY = 18234;

PURPLE_CRESENT_DOOR = 50398;
PURPLE_CRESENT_DOOR_LOCK = 50253;
PURPLE_CRESENT_KEY = 18292;

BLUE_RECTANGLE_DOOR = 50387;
BLUE_RECTANGLE_DOOR_LOCK = 50242;

SLIVER_TRIANGLE_DOOR = 50361;
SILVER_TRIANGLE_KEY = 18218;

SILVER_CORNER_DOOR = 50365;
SILVER_CORNER_DOOR_LOCK = 50220;

GOLD_TRIANGLE_DOOR = 50409;
GOLD_TRIANGLE_DOOR_LOCK = 50264;
GOLD_TRIANGLE_KEY = 18314;

ORANGE_DIAMOND_DOOR = 50354;
ORANGE_DIAMOND_DOOR_LOCK = 50209;
ORANGE_DIAMOND_KEY = 18204;

GREEN_DIAMOND_KEY = 18252;



// Dungeoneering General Items
COINS = 18201;
// Food
FOOD_DUSK_EEL = 18163;
FOOD_SHORTFINNED_EEL = 18167;
FOOD_HEIM_CRAB = 18159;
FOOD_RED_EYE = 18161;
FOOD_GIANT_FLATFISH = 18165;

// NPCS
SMUGGLER = 11226;


// RUNES
RUNES_AIR = 17780;
RUNES_CHAOS = 17785;
RUNES_ESSENCE = 17776;
RUNES_EARTH = 17782;

// WEAPONS
//RANGE

//TIER 3
WEAPON_RANGE_TIER3_BOW = 16871;

// ARMOUR
//MAGIC

//TIER 3
ARMOUR_MAGE_TIER3_HOOD = 16738; // Blightleaf Hood[/PHP]

I've been making a list of everything, it just takes time :)

HarryJames

2011-03-20 11:58:39

How would I compensate for it finding these objects in other rooms though?

rogeruk

2011-03-20 12:52:22

From: HarryJames
How would I compensate for it finding these objects in other rooms though?


Search for the objects within tile distance. Doesn't matter what room it is.

Remember you need to tile the rooms. So once it finds a "Green triangle" room, record it. Once it has the key goto it and do it? etc.

HarryJames

2011-03-20 13:44:05

Different rooms are different sized though, and to my knowledge, getting a corner of a square, will take more tiles.


The vertical and horizontal lines will be 2 (4/2).

The diagonal will be sqrt(2(2^2)) which is rougly 3. So then if I make the tileDistance to 3, I will get an extra square of RS Tiles.

Unless I am grossly misunderstanding you, or how tileDistance works.

rogeruk

2011-03-20 14:27:24

Just search directly for the objects? and walk to them on MM

Brandon

2011-03-20 14:32:23

Well I was going to say use MeInBox function but then I realized u need the tiles of the room… as far as I know, rooms only have a certain size.. U can test my theory and see if im right or not.. but They dont go over a certain amount of tiles.. meaning each room might be about 30 tiles squared.. 30 for length, 30 for width.. not SURE though.

Possible problem I see with using distance.. It u search too large of a length, it might search the room next to it aswell..

Example: Room is 10 by 10.. u search for a distance of 30.. it would search the room that is unlocked already and next to the one your in aswell.. and probably try to click a chest in that room without entering it.

rogeruk

2011-03-20 14:40:39

The search is ordered by closest object. So it will always get the closest door?

HarryJames

2011-03-20 14:48:02

Then would that not break if a room has two doors, and does it search radially, tile by tile or by some other means?

Unless I told it to ignore the door at tile(x,y), but then it could still find another door.

rogeruk

2011-03-20 15:18:23

You don't get it lol.

Search for objects within DOORIDs. Find the closest one, do a check > is it a locked door? (by object id), Do i have the key? if not, goto next one > repeat check

HarryJames

2011-03-20 15:25:32

Ohh, I now understand you ;)

I didn't think you were on about between doors, and that's what confused me. I'll try and get this whole procedure done in the week, flawless (as without this, the whole script can break).

Emaziz

2011-03-20 15:35:45

Make a record of each room and door, like this

Type
TDoor = record
Tile: ttile;
Locked: integer; // use constants defining every key, 0 if open
End;

tRoom = record
Doors: array of TDoor; // 0: north, 1: east etc.
Monsters: array of tnpc; // would also contain fishing spots i think?
Objects: array of trsobject; // resources etc
Box: tbox; // defining the area of the room
End;

Having this you could easily detect whether the object is in the same room as you, and you could also find which room it is in and whether you can access it or not. God this took forever to write on iPhone :p

HarryJames

2011-03-20 15:44:58

I'm sorry to say, Emaziz, but the time spent writing all of that :/


type TDoor = record
id : integer;
locked : boolean;
doorLocations : TPoint;
shape, colour : string;
end;

type TRoom = record
id : integer;
doors : array of TDoor;
objects : array of TRSObject;
end;

I decided not to add Monsters for a room, cause they were gonna be killed anyway.

I'll definately go and read about tbox's, as I've never even heard of them!

Emaziz

2011-03-20 15:49:04

Hehe was just an example :p But you may want to include monsters after all in order to know if you should get a weapon and armor before entering (dont know how advanced you want it to be?)

HarryJames

2011-03-20 16:02:24

Oh, I never thought about that!

I was going to make it buy a weapon at the start (if there's no shop, you get given some basic stuff anyway).

I've added it.

rogeruk

2011-03-20 16:10:18

At low levels you'll get weapon at start. Make script automatically bind the best item its got.

Monsters need to be targeted in order of "danger".

HarryJames

2011-03-20 17:22:09

What does binding an item actually do?

I'll just make it equip an item, and if we get a better on then equip that!

Troll

2011-03-20 17:29:35

I thinking binding makes you have the item every time you enter a dungeon, so say you bind a high tier sword, every time you do dungeronering you will have that sword

rogeruk

2011-03-20 17:34:35

From: Troll
I thinking binding makes you have the item every time you enter a dungeon, so say you bind a high tier sword, every time you do dungeronering you will have that sword


Yeap exactly.

Harry

2011-03-20 17:55:58

I tried Dungeoneering legit today….. lamest skill ever, so boring. Would be nice to have a script for it, but what do you "earn" out of it? All the stuff I picked up (like I had 100k GP on one level) is lost once the round ends..

footballjds

2011-03-20 18:13:44

by the looks of it your knowledge of srl/ref are going to DRASTICALLY inhibit you making this script. if i can, i would suggest starting with a smaller script… :p
however, if you do stick to it, although this script could likely take you months. by the end, you knowledge of EVERY function should be pretty robust.

good luck

HarryJames

2011-03-20 18:26:10

Yeah, I'm literally just going throgh the SRL Core stuff atm, reading through functions and how they work etc etc.
I reckon it will take atleast a month to get off the ground, if I've not given up by then.

Harry, to my knowledge you only gain new areas. So I think it could be quite useful actually, there's a bit in the Dwarven mines, and pretty much a new lesser demon place (that's connected to the old one). That's two of quite a lot.

List

smurg

2011-03-21 01:55:19

From: Harry
I tried Dungeoneering legit today….. lamest skill ever, so boring. Would be nice to have a script for it, but what do you "earn" out of it? All the stuff I picked up (like I had 100k GP on one level) is lost once the round ends..


The tokens you get, you buy rewards. Basically chaotic weapons for members, granite for f2p.

Best weapons in game bar totally degradable ones. These degrade, but you just pay for fix them, last like 10 hours of gameplay.

Brandon

2011-03-21 04:03:22

[PHP]
const

// Skill stuff
NOVITE_PICKAXE = 16295;



// BOSSES
DIVINE_SKINWEAVER = 10058;
HOLE_1 = 50599; //The holes u plug up/fix so the monsters don't keep coming out
HOLE_2 = 40290; //Skeletons that mage n range come out of these holes.. U plug them to beat this boss..
HOLE_3 = 49289;

UNHOLY_CURSEBEARER = 10115; //Atk Style - Melee
BULWARK_BEAST_ARMORED = 10085; //Bulwark has multiple forms, therefore two ID's.. (Pickaxe needed to weaken him)
BULWARK_BEAST_NORMAL = 10086; //Magic atk style
HOBGLOBLIN_GEOMANCER = 10063; //Magic + Melee atk styles!
ASTEA_FROSTWEB = 9980;
LUMINESENT_ICE_FIEND = 9918; //main atk style = Range, Special Animation = 13338
ICY_BONES = 10049; // Atk style = Melee..
PLANE-FREEZER_LAKHRAHNAZ = 9936; //Atk Style = Range;
PLANE-FREEZER_LAKHRAHNAZ_ARMORED?? = 9935; //NOT SURE WHY.. BUT I SAW TWO ID's FOR THIS GUY..
GLUTTONOUS_BEHEMOTH = 9953;
GLUTTONOUS_BEHEMOTH_FOOD = 49283; //THE FOOD THAT U GUARD!

// Doors
CRIMSON_PENTAGON_KEY = 18305;
CRIMSON_CRESENT_KEY = 18308;
CRIMSON_CRESENT_DOOR = 50261;
CRIMSON_RECTANGLE_KEY = 18302;
CRIMSON_RECTANGLE_DOOR = 50258;
YELLOW_SHIELD_KEY = 18248;
YELLOW_SHIELD_DOOR = 50231;
YELLOW_DIAMOND_KEY = 18236;
SILVER_RECTANGLE_KEY = 18222;
SILVER_RECTANGLE_DOOR = 50218;
SILVER_CORNER_KEY = 18226;
SILVER_CRESENT_DOOR = 50221;
SILVER_CRESENT_KEY = 18228;
SILVER_TRIANGLE_KEY = 50216;
SILVER_DIAMOND_KEY = 18220;
SILVER_DIAMOND_DOOR =
BLUE_RECTANGLE_KEY = 18270;
BLUE_DIAMOND_DOOR_LOCKED = 50241;
BLUE_DIAMOND_KEY = 18268;
BLUE_RECTANGLE_KEY = 18270;
BLUE_RECTANGLE_DOOR = 50242;
GOLD_CRESENT_KEY = //Opened the door again :( Ty MSN ppl for distractions
GOLD_CORNER_KEY = 18322;
GOLD_CORNER_DOOR = 50268;
GOLD_RECTANGLE_KEY = 18318;
GOLD_RECTANGLE_DOOR =
GOLD_PENTAGON_KEY = 18320;
GOLD_PENTAGON_DOOR = 50267;
GOLD_WEDGE_DOOR = 50270;
GOLD_WEDGE_KEY = 18326;
ORANGE_PENTAGON_KEY = 18208;
ORANGE_PENTAGON_DOOR = 50211;
ORANGE_SHIELD_KEY = 18216;
PURPLE_WEDGE_DOOR =
PURPLE_WEDGE_KEY = 18294;
PURPLE_CORNER_KEY = 18290;
PURPLE_CORNER_DOOR = 50252;
PURPLE_DIAMOND_KEY = 18284;
PURPLE_DIAMOND_DOOR = 50249;
GREEN_SHIELD_KEY = 18264;
GREEN_SHIELD_DOOR = 50239;
GREEN_RECTANGLE_KEY = 18254;
GREEN_RECTANGLE_DOOR =
GREEN_SHIELD_KEY = 18264;
GREEN_SHIELD_DOOR = 50239;
GREEN_CRESENT_KEY = 18260;
GREEN_WEDGE_KEY = 18262;
GREEN_WEDGE_DOOR = 50238;


// Dungeoneering General Items
COINS = 18201;
// Food
FOOD_Bouldabass = 18171
FOOD_Salve_Eel = 18173
FOOD_BLUE_CRAB = 18175;


// NPCS




// RUNES


// WEAPONS
Sagitarian_Arrows(Bound) = 15957;
Promethium_Rapier(Bound) = 16044;

//ARMOR

Promethium_PlateBody(Bound) = 16022;
Katagon_PlateBody = 17253;
Katagon_Gauntlets = 16287;
NOVITE_PLATEBODY = 17239;
NOTVITE_GAUNTLETS = 16273;
MARMAMOS_PLATEBODY = 17243;

//OTHER
Dungeon_Exit_Ladder(OPENED) = 49696;
Dungeon_Exit_Ladder(CLOSED) = 49695;
SKINWEAVER_Dungeon_Exit_Ladder(Closed) = 49697;
SKINWEAVER_Dungeon_Exit_Ladder(OPENED) = 49698;

PRAYER_ALTAR = 51609;
Katagon_Ore_Resource = 49800;
SNOW_LAHKRAHNAZ_ROOM = 49334; (Can be used to get room size, 1-per/corner);

WALL_ID >= 50606; //Someone Confirm this.. (Wall ID's)
RING_OF_KINSHIP(Berserker) = 18819;

[/PHP]

doublex8

2011-03-21 11:57:56

From: Harry
I tried Dungeoneering legit today….. lamest skill ever, so boring. Would be nice to have a script for it, but what do you "earn" out of it? All the stuff I picked up (like I had 100k GP on one level) is lost once the round ends..


I thought it was lame when I first started doing it too. I only trained so I could use the resource dungeon in the dwarven mine. It gets kinda addicting though trying to get through all the floors. And there are some pretty cool rewards.

Good luck with trying to finish this. I know powerbot has one, but I've never been interested since I enjoy doing this legit. I would try this out though if you finished it.

HarryJames

2011-03-21 19:38:31

I've not been able to get anything done today.

PC problems <3

TomTuff

2011-03-29 10:23:26

Bump to this thread :)

Also, an idea for getting room bounds: Get a TPA of the white color on the MM and do a flood fill, or do the same with reflection objects (Walls.). You would need a seperate function for reflection flood fill, though.

Gu3st...

2011-03-29 10:58:13

Simba has it's own FloodFill procedure

TomTuff

2011-03-29 20:47:00

From: Zyt3x
Simba has it's own FloodFill procedure


Yes, but reflection axes are different. For on screen coordinates, the y axis increases top down. Reflection tiles increase bottom up. i.e., Reflection is like quadrant I on a 4 quadrant graph, and onscreen coords/simba coords are like quardrant IV. Therefore the simba floodfill procedures wouldn't work with reflection tiles (TPoints).