Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD General Discussion
symposes
Novice


Joined: 26 Apr 2006
Posts: 34

PostPosted: Thu May 13, 2010 2:01 pm   

advice for a mapping project
 
long story short, im doing something that will be 2 parts. in part 1 im going to be using automapper to map out an area of roughly 700 rooms.
the difficulty ill be facing comes from the area not using cardinal directions. instead its "enter CELL1" , " enter CELL200" etc.
i attempted this in zmud but it took considerable time because i was doing this entirely through the GUI.

ive seen some commands that sem to do what i need, that will speed this up for me, such as #makeroom and %roomlink

im wondering if anyone has any advice on how to make this as painless as possible.

in part 2. i would like to take this area and using the mapper create paths from each room back to a certain room, and back. these i plan to store in arrays so i wont need to load the mapper just to navigate this area with speedwalks.

I sort of have this now, in that the paths are stored as strings in array subsets, ie 118|101|90 ... etc etc and my scripts process it into a true set of commands to navigate.

creating the map is the only thing i really want to do, via commands, but it would be nice to generate the arrays that I need via scripts as well.


also, does cmud have the array problem that zmud had where it would forget subsets?
Reply with quote
Rahab
Wizard


Joined: 22 Mar 2007
Posts: 2320

PostPosted: Thu May 13, 2010 8:29 pm   
 
Well, #makeroom and %roomlink are the functions you will need, along with possibly some of the other %roomXXX functions. But without further details of what the mud looks like or what you are doing, there's not a lot more we can say.

For part 2, you could do it that way. But you should be aware of two things. First, in the next public version, the mapper will be completely changed, and you will be able to do speedwalks without having the mapper displayed. Second, perhaps an easier way of doing what you want is with Cmud paths. Third, you shouldn't use "arrays" in Cmud for this. What you want is either a stringlist or a database variable. Arrays are specifically designed for COM functions, and really shouldn't be used for anything else.
Reply with quote
MattLofton
GURU


Joined: 23 Dec 2000
Posts: 4834
Location: USA

PostPosted: Thu May 13, 2010 9:35 pm   
 
1)Is this for area building (you are filling in the room info), or just as a player exploring an already-available area (the game is sending you room info)?

If it's the latter, don't bother trying to script room creation and simply use the MapDir character:

>command>direction
>enter cell1>n

command = the command you want to send to the game to walk into this room
direction = compass position (relative to the current room) to draw the room on the map

2)to generate paths, use the %pathfrom() function. You'll need to get the room numbers of the rooms you want to generate paths to, but %mapfilter() and %find() with %roomnum() should get those easily enough.
_________________
EDIT: I didn't like my old signature
Reply with quote
symposes
Novice


Joined: 26 Apr 2006
Posts: 34

PostPosted: Fri May 14, 2010 3:09 am   
 
Ask and ye shall recieve.

I am a player on the mud in question.

The area is a special area, accessible to 1 guild, and anyone else who completes a quest.

My character is a member of the guild.

when i enter the area, I have to send a command, "scan" to see the room

this is what i see

Code:
-------------------------------------------------------------------------
Ixian Cells   <<>>           Cell Number: 134
           / <<**   <<**   <<**   /     In Beyond cells
          / (__))  (__))  (__))  /
         / /Blu// /Red// /Blu// /      Blu   CELL135   Multi Decell
        /  (__))  (__))  (__)) /       Red   CELL117   Channel cell
       /                      /        Blu   CELL152   Multi Decell
      /                      /         Blu   CELL118   Multi Decell
     / <<**                 /         
    / (__))                /           
   / /Blu//               /           
  /  (__))               /             
 /______________________/
-------------------------------------------------------------------------


The cells are 135, 117, 152, and 118
to move to those cells, i dont use n, w, e, s, etc i type enter and give it the cell name as an argument

so enter cell135, or enter cell117

I am told there is a graphical map made by the wizard that coded it, and that this area is a 3d map, but yea, heck if i can figure it out.

In Zmud, i attempted to do this, and it was working, i was manually creating rooms in automapper, and their exits, and the links involved, and then testing each link, however i only got about 120 cells mapped out, in about 2-4 hours, but i was making progress.. it was working great. but i was told the rooms are "chaotic" and the exits change every time the mud reboots, so i scrapped it, then i found out its only certain ones, and there are very few.

later another player of the guild, created a note on a guild board that showed every cell, and the "path" from that cell back to the cell that exits into the guild. at this time there was 280-300 cells, now however there are 700 or so, and starting around 250 they have been changed, so i have to figure out those paths. that is why i want to use commands instead of gui for this, because i hope to save a significant amount of time.

The way i did this script the first time, was to take the paths he provided, and punch them into an array, using the cell number as the subset of the array, so cell1 was subset1, cell200 was subset 200, etcetc.
I used his list also, to get a path to the rooms that exit out into other areas of the mud, and with a little work, ended up with a script that would grab from 2 arrays, and send me from point A to point B.

my script would check the cell number against a list using ismember, and if it wasnt one with a list, it would force me out of the area, and back in. exit while in this area will force you back out to the room you entered from, very handy if you get lost.

What im trying to do is rig this up with as few aliases, triggers, and variables as i can get away with, and arrays let me do that in zmud simply enough.

Im finding that it may work the same way in Cmud, but importing the settings, corrupts the array or something, and %arrget only returns null values, however I can create a fresh array and it works.

What I was hoping, and i didn't know how at the time, was that I could create a couple of aliases, and by using command line commands, i could create all these manual rooms, and exits, and links, etc.
Then i found that pathfrom command, or whatever, and thought that would allow me to capture the paths from each cell, etc.

I ended up storing the lists of cells as well, lists, inside an array, maybe that was the problem. subset 1 for example, to get from cell 1 to cell 129, is "16|15|14|13|29|45|62|79|96|113|129" then with a little zmud magic, #forall destination {enter cell%i} would spit out enter cell16;enter cell15;enter cell14; perfectly concatinated, and it worked like a dream.

I am not dead set on keeping this as an array, but i would still like to make this as simple as possible, I did take a look at database variables a moment ago, they look almost identical to arrays, atleast from my perspective. with little to no computer programming experience.

with further play, string list does exactly what i was using array for, so that now solves part 2 of my project. But i still need to find a solution for part 1, While i am not looking to make a script that automaps out the whole area, I would like to get a simple setup going that will allow me to map it out, that way i can start getting these to work.

The reason I want to map it out and make speed walks, is because those Decell cells, allow me to exit to various areas of the mud, namely astroports. however each decell changes the astroport it deposits you on every reboot. my script would catalog the exits (which you can find out before using the decell), and store that in a list, and it would send me to the right decells, i literally could type "go cal" and be deposited on caladan, or "go arr" and be put on arrakis, and this worked every time, once i cataloged the decells.

Sorry if i meander around with that post, thank you for making it to the end :)
Reply with quote
MattLofton
GURU


Joined: 23 Dec 2000
Posts: 4834
Location: USA

PostPosted: Fri May 14, 2010 3:48 am   
 
Ok, that didn't really help much. Post up an exact log of you moving around this area (no explanations or commentary, you can post that separately). If you want to narrate the log, do so using your in-game speech commands.
_________________
EDIT: I didn't like my old signature
Reply with quote
symposes
Novice


Joined: 26 Apr 2006
Posts: 34

PostPosted: Fri May 14, 2010 10:36 am   
 
Code:
>'I will be showing each command, hopefully
You say: I will be showing each command, hopefully.
>enter cells
>Material is used by your nano-assembly to craft an ICTS Entrance port.
[IDISP] IMG member successfully entered the ICTS!
'I have entered, I am not parsing or #gagging
You say: I have entered, I am not parsing or #gagging.
>scan

-------------------------------------------------------------------------
Ixian Cells   <<>>           Cell Number: 69
           / <<**   <<**   <<**   /     In Channel cell
          / (__))  (__))  (__))  /
         / /Blu// /Sec// /Sec// /      Blu   CELL68   Multi Decell
        /  (__))  (__))  (__)) /       Sec   CELL86   Secure cell
       /                      /        Sec   CELL87   Secure cell
      /                      /         Blu   CELL85   Multi Decell
     / <<**   <<**   <<**   /          Red   CELL53   Channel cell
    / (__))  (__))  (__))  /           Blu   CELL51   Multi Decell
   / /Blu// /Red// /Blu// /           
  /  (__))  (__))  (__)) /             
 /______________________/
-------------------------------------------------------------------------
>enter CELL68
 <<>> You transfer to Multi Decell <<>>
>scan

-------------------------------------------------------------------------
Ixian Cells   <<>>           Cell Number: 68
           / <<**   <<**   <<**   /     In Multi Decell
          / (__))  (__))  (__))  /
         / /Blu// /Blu// /Blu// /      Blu   CELL67   Multi Decell
        /  (__))  (__))  (__)) /       Blu   CELL85   Multi Decell
       /                      /        Blu   CELL51   Multi Decell
      /                      /         Sec   CELL86   Secure cell
     / <<**   <<**   <<**   /          Blu   CELL84   Multi Decell
    / (__))  (__))  (__))  /           Blu   CELL50   Multi Decell
   / /Sec// /Blu// /Blu// /           
  /  (__))  (__))  (__)) /             
 /______________________/
-------------------------------------------------------------------------
>read decell
A steel gray message is scrolling across the face of the
Steel gray ball. It reads: <decell> to exit the Ixian Cell System
and enter the Bene Gesserit Station.
>decell
-[ Wallach IX Astro Port ]-
Wallach Spacing Guild Astroport. The night, together with the dark shapes
of the mountains against the cloudless sky, make this place look fairy and
magnificent. The spot lights above the landing pad shine down upon you. You
are almost alone, here and there you notice some movement, but very, very
few. There is a glowing display terminal near the exit of the astroport,
and a dark path to the east. A road goes to the north, south and west. You
notice a blurred figure which seems to flow and move constantly.

    Four obvious exits: north, south, west and east.
An automatic bank teller machine
Illya, the Bene Gesserit
>'I have just left the area, and transfered to another planet on the mud
You say: I have just left the area, and transfered to another planet on the mud.
>enter cells
>Material is used by your nano-assembly to craft an ICTS Entrance port.
[IDISP] IMG member successfully entered the ICTS!
'I have returned to the area.
You say: I have returned to the area.
>scan

-------------------------------------------------------------------------
Ixian Cells   <<>>           Cell Number: 163
           / <<**   <<**   <<**   /     In Multi Decell
          / (__))  (__))  (__))  /
         / /Blu// /Blu// /Blu// /      Blu   CELL162   Multi Decell
        /  (__))  (__))  (__)) /       Blu   CELL180   Multi Decell
       /                      /        Blu   CELL146   Multi Decell
      /                      /         Blu   CELL179   Multi Decell
     / <<**   <<**          /          Blu   CELL145   Multi Decell
    / (__))  (__))         /           
   / /Blu// /Blu//        /           
  /  (__))  (__))        /             
 /______________________/
-------------------------------------------------------------------------
>Demon sharpens a hair very quickly.
exit
You exit from the ICTS unseen.
>look
-[ Wallach IX Astro Port ]-
Wallach Spacing Guild Astroport. The night, together with the dark shapes
of the mountains against the cloudless sky, make this place look fairy and
magnificent. The spot lights above the landing pad shine down upon you. You
are almost alone, here and there you notice some movement, but very, very
few. There is a glowing display terminal near the exit of the astroport,
and a dark path to the east. A road goes to the north, south and west. You
notice a blurred figure which seems to flow and move constantly.

    Four obvious exits: north, south, west and east.
An automatic bank teller machine
Illya, the Bene Gesserit
>'Using exit, i return to the point i entered from.
You say: Using exit, i return to the point i entered from.
>


One thing to point out, is that scan only shows 6 cell exits, if there are 7 or 8, as some cells do have that many, it will not show them all,
but the enter command by itself will show them, here is an example

Code:

[Viewer] Shutdown notice: Cell exits > 6/This is only beta copy
[Viewer] Number of exits to be displayed set to 6
[Viewer] Info: Use 'enter' command to display all exits
[Viewer] Number of exits found in current cell: 8

-------------------------------------------------------------------------
Ixian Cells   <<>>           Cell Number: 107
           / <<**   <<**   <<**   /     In Special cell
          / (__))  (__))  (__))  /
         / /Sec// /Gre// /Blu// /      Sec   CELL108   Secure cell
        /  (__))  (__))  (__)) /       Gre   CELL106   Middle route
       /                      /        Blu   CELL124   Special cell
      /                      /         Sec   CELL90   Secure cell
     / <<**   <<**   <<**   /          Sec   CELL125   Secure cell
    / (__))  (__))  (__))  /           Yel   CELL123   Connect cell
   / /Sec// /Sec// /Yel// /           
  /  (__))  (__))  (__)) /             
 /______________________/
-------------------------------------------------------------------------

enter
        ********************************************************
                Access  Cell Id                 Code
        ********************************************************
                [83]    CELL108 :               Security
                [6]     CELL106 :               Green
                [47]    CELL124 :               Blue
                [65]    CELL90 :                Security
                [87]    CELL125 :               Security
                [64]    CELL123 :               Yellow
                [46]    CELL91 :                Security
                [45]    CELL89 :                Security
        ********************************************************


I am honestly just looking for a way to speed up manual creation of the map, at this point I have figured out enough with everyone's suggestions, to be able to rewrite the script i need, for the speedwalking application.

I was concerned that because all exits will be "other" instead of cardinal directions, that the commands wouldnt function correctly, or that i would have to make sure to run the link command from each side to connect 2 rooms completely, etc.
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4689
Location: Pensacola, FL, USA

PostPosted: Sat May 15, 2010 2:11 am   
 
You can use a cardinal exit if you want, just use the 'Name' field on the exits tab of room properties window to input the command used to go that way.
_________________
Discord: Shalimarwildcat
Reply with quote
symposes
Novice


Joined: 26 Apr 2006
Posts: 34

PostPosted: Sat May 15, 2010 6:02 am   
 
shalimar wrote:
You can use a cardinal exit if you want, just use the 'Name' field on the exits tab of room properties window to input the command used to go that way.


Ive done this on another map, i set it up so i could push north and it would send door.

Only reason im staying away from cardinals, is because I have no clue how the ICTS area is laid out, so my map would start to get ugly fast. When i first did this, i just created rows of rooms, left to right, top to bottom, about 15-20 rooms wide.

I do not plan on using the automapper in the end. no special reason.

Thank you for the advice everyone :)
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD General Discussion All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© 2009 Zugg Software. Hosted by Wolfpaw.net