View Full Version : lrn2map
Tillmen
12-15-2010, 01:27 AM
There are currently four map databases. One for Prime, Platinum, Shattered, and DragonRealms.
There is no way to merge map databases. That means, if two people are working on the Prime map database at the same time, they each end up with a different map database, and only one of them can be distributed to everyone else. To avoid this, you need to use the repository script to checkout the map database before you start mapping.
Step 1: Type ;repository checkout-mapdb
If this command succeeds, then it will download the current map database, overwriting any changes you may have saved before doing this command. This should ensure that the changes done by the last person to update the map database aren't lost. If the command fails because someone else has already checked out the map database, you'll have to wait. You won't be able to upload the map database until you've checked it out.
Step 2: Download the mapmap script if you don't already have it (;repository download mapmap)
Step 3: Set up mapmap
3a. Clear the tracking info such as boundaries, pending rooms, and finished rooms (type ;mapmap clear).
3b. Set up boundaries to keep the mapper in a specific area (go to as many rooms as needed and type ;mapmap boundary).
3c. Set the map to lazy mode so that it doesn't ignore the boundaries (type ;mapmap set lazy on).
Step 4: Go to a room inside your boundaries and start the mapper in map mode (type ;mapmap map). In this mode, the mapper searches out new exits, and is quite spamy.
Step 5: Start the mapper in fix mode (type ;mapmap fix). This mode tests exits discovered in map mode. If a movement fails, it deletes it. If the movement leads to a room other than what was expected, it will ask you if the two rooms are the same. This often happens because of changing day/night room descriptions. If the rooms are the same, tell the script (type ;send yes) and it will combine the rooms into one room number. If the rooms are not the same, tell the script (type ;send no) and it will delete the incorrect movement and add the newly discovered movement. If you are unsure, there's also the option to do nothing (type ;send ignore). Combining two rooms that are not really the same is a pain to fix.
Step 6: Add to narost (if needed or wanted)
6a. Add the image to the map database. Narost will only display images that are already in the map database. If the image is already in the map database because it's used by other rooms, move on to 6b. If not, save the image in the lich\maps directory, go to a room that will use the image, and type ;e Room.current.image = 'filename' # substitute the actual filename of the image, including the file extension, but without the path.
6b. Start narost in fix mode (;type ;narost fix)
6c. Bring up the image in narost. Right-click in the narost window, click on “view map” in the popup menu, and click on the image name that you'll be adding to.
6d. Move the image around to find where your current room goes.
6e. Hold down the Shift and Ctrl keys, click on the top left and bottom right corners of the room on the image, let go of Shift and Ctrl.
6f. If there are more rooms to add, move to the next room in game, go to step 6d.
6g. Save the map database (type ;e Map.save). While the mapmap script saves the map database every time it closes, narost does not. You can save the map database as often as you like if you are worried about losing your progress.
Step 7: type ;repository upload-mapdb
There... wasn't that easy?
Now, to make it more complicated..
Setting up boundaries really just marks the room as done. When the mapper ends up in that room, it will use go2 to find a room that has exits marked as pending. If the mapper is in lazy mode, it will exit when there are no more pending rooms. This can happen because of boundaries, or because it doesn't test, and usually can't discover mini-script movements. If the mapper is not in lazy mode, and it runs out of pending rooms, it will use go2 to find the nearest unchecked room, and continue from there. If you start the mapper in Wehnimer's, it's quite possible you could end up in The Rift or OTF. However, it would take a very long time to get there, since it will not get on the ferry towards EN or pass the ice towards Icemule (mini-script movements) until all of Wehnimer's is done (or as much of it as it can get to without using mini-script movements).
Mini-scripts are required for any movement that can't be done with a single command. Look at the known exits for some random room:
;e echo Room.current.wayto.inspect
--- Lich: exec2 active.
[exec2: {"6337"=>"south"}]
--- Lich: exec2 has exited.
From this room, there is only one exit. Moving south takes you to room number 6337. This is not a mini-script movement. The map database also needs to know how long it takes to get there, so it knows that the 15 movements it takes to get from Solhaven to the River's Rest bank is not closer than the 20 movements it takes to get to the Solhaven bank.
;e echo Room.current.timeto.inspect
--- Lich: exec2 active.
[exec2: {"6337"=>0.2}]
--- Lich: exec2 has exited.
This shows moving south takes 0.2 seconds. That's the default for simple movements. It's somewhat accurate when not using typeahead lines. It's more important that all the simple movements (assuming the movement doesn't cause roundtime or something) have equal weight than it is for them to be accurate to a hundredth of a second.
Now consider a movement where you have to search for something before you can move. The mapmap script is not going to discover new movements by searching. This sort of thing you have to add by hand.
First, find the room number of the room you'll end up in.
;e echo Room.current
--- Lich: exec2 active.
#1220:
[Vipershroud, Mossy Trail]
Huge conifers mixed with spreading deciduous trees block out most of the moonlight. Moss grows thickly on the tree trunks and carpets the barely discernible trail that pushes through the thorny undergrowth. To the southeast, the Vipershroud appears to thin, revealing patches of starry sky.
Obvious paths: north, southeast
--- Lich: exec2 has exited.
Then, go to the room where the movement will start. In this case:
;e echo Room.current
[exec2: #1219:
[Vipershroud, Edge of Settlement]
Cicadas and crickets fill the night air with insectile song. Moonlight illuminates a small path meandering southwest through the blackberry bushes toward the Elven Settlement, civilization and safety. To the northwest, the living wall of the Vipershroud forest presents an impenetrable blackness.
Obvious paths: southwest]
--- Lich: exec2 has exited.
All we need to do to get from one room to the other is search, and go path.
;e Room.current.wayto['1220'] = StringProc.new(“fput 'search'; move 'go path'”)
If it takes three seconds to search, and the standard 0.2 seconds for 'go path', set the timeto like this:
;e Room.current.timeto['1220'] = 3.2
If you're not standing in the starting room, you could also add the movement by specifying both room numbers:
;e Room[1219].wayto['1220'] = StringProc.new(“fput 'search'; move 'go path'”)
;e Room[1219].timeto['1220'] = 3.2
It is important that 1220 is in quotes. wayto and timeto are just hashes here, and the keys to these hashes need to be strings.
The quotes inside the StringProc.new might cause you problems. You're sticking code into a string. The code generally has strings of its own. Here you see double quotes on the outside, and single quotes on the inside. For simple things, it's good to stick to that.
You can test a StringProc before sticking it into the map database by doing something like:
;e StringProc.new("put 'look'").call
or
;e StringProc.new("haste = Spell[506]; haste.cast if haste.known? and haste.affordable? and not haste.active?; empty_hands; move 'climb boulder'; fill_hands").call
Just remember to remove the ;e from the front and the .call from the end before putting it in the map database.
When adding movements by hand like this, you are only changing the map database in memory. Remember to type:
;e Map.save
to save your changes.
Mini-scripts are also needed when there are two identical rooms right next to each other. The solution might be as simple as StringProc.new("move 'east' while checkpaths.include?('e')"), but it can become quite complicated.
You'll notice that mapper is using the location verb.. a lot. There are two reasons for this. The one you might guess is that this information might eventually be used by bounty scripts. The other is to deal with duplicate rooms in different towns, such as the training cauldron room in most guilds. Using only the room title, description, and obvious exits/paths, you can't tell what town you're in, or what room you'll be in if you move out. But, knowing the results of the location verb of the room allows these rooms to get different room numbers and to be connected to the rest map database.
There is also a spot in the map database to save climate and terrain information for each room. At this point, I don't have a ranger and I'm not too worried about filling in that data.
You can ignore most of the rest of this thread. It was used to organize who was working on the map database, which is now done with the repository script.
Tillmen
12-15-2010, 01:28 AM
And now... tags! Each room can now have tags associated with it. The tags are basically just an array of strings. The purpose of the tags are to remove hard coded room numbers from scripts. The Prime and Shattered map databases already have many room numbers that refer to different rooms depending on which map database is being used. All the built-in targets from go2 have already been converted to tags. Also, nearly all the room numbers from the alchemy script (mostly herb locations) have been converted to tags.
What this means for go2 is, you can now type “;go2 some acantha leaf” and it will take you to the nearest room that you can forage for acantha leaf. Or, you can type “;go2 wizard alchemy workshop”.
The new alchemy script uses tags to find all the nearest room to forage for something that are within your max travel time setting, and forage in each room in order of closeness until it finds enough. It also uses tags to know where creatures are set up wander boundaries so it can collect skins.
Basically, any script that used hard coded room numbers should try to use tags so the that the script can be used in Prime, Platinum, and Shattered as the map databases become more and more different.
There are a whole lot of tags to add, but luckily anyone can add them. It's not as technical as mapping. If for example, you're using the alchemy script and you need to forage for some luckbloom blossom, but tags haven't been added for that item in your town, simply find the room using virilneus.com or something, then go to the room and type:
;e Room.current.tags.push('luckbloom blossom')
The room is now tagged in your map database in memory. When you're done with all the tagging, remember to type:
;e Map.save
Then, come to this form and post the game instance, room number, and tag name. I'll try to include it in any map update before uploading. That means, you can use the tags immediately, and still have them there after the next map update. Or, if you don't need to use the tags right away, you can skip adding them to your own map database and just post them here.
If the name starts with “a” or “an”, leave that out. If it starts with “some”, include it. This is because “some” in included in the item name when using GameObj, and if a script is looking for an exact match, the “some” need to be there.
Tillmen
12-15-2010, 01:37 AM
To start it off, all map databases have been uploaded, and no one is currently working on them.
Tillmen
12-15-2010, 03:32 AM
Alright.. I'm working on the Shattered map database.
Tillmen
12-15-2010, 07:08 AM
Shattered map database is uploaded.
Jace Solo
12-15-2010, 08:23 AM
You're the man, looks like I've gotta lotta reading to do.
Vanatar
12-15-2010, 08:47 AM
I don't have anything constructive to add yet, but I have to say... This is fantastic. Nice work, Tillmen.
--Vanatar
Drunken Durfin
12-15-2010, 01:12 PM
The more you know...
Gibreficul
12-15-2010, 09:21 PM
Tillmen rocks.
I have spoken.
Sheikh
12-15-2010, 10:35 PM
The more you know...
Knowing is half the battle!!
Tordane
12-17-2010, 08:27 PM
Working on map file for Shattered Instance for the next couple hours, will post when done.
Tordane
12-17-2010, 09:07 PM
Working on map file for Shattered Instance for the next couple hours, will post when done.
Done until I talk to Tillmen.
Tillmen
12-17-2010, 10:05 PM
It doesn't matter when you're done! It only matters when I upload it.
If you finish, and someone else starts before downloading your changes that I upload, someone's work is getting lost.
Jennyfer
12-18-2010, 12:00 AM
Mapping Ta'Vaalor Sorcerer Guild in Prime (or at least trying to!)
Lysani
12-18-2010, 12:05 PM
Temple of Love in Plat needs night mapping. Daytime is fine. Night rooms error.
I can check if Shattered and Prime need it also tomorrow. Tonight I have a party to go to. So if nobody wants to try this awesome method before then...
I'll do it tomorrow.
Thanks Tillmen! This is great. I have other Plat-only mapping I'll do later too.
Tillmen
12-20-2010, 03:56 AM
Uploaded the Prime map database.
I put in a mini-script to get into the Vaalor sorcerer guild. I have no idea if it works. Also, the guild is missing many rooms and movements, so it won't be of any use until it's mapped again.
I should start by saying I haven't done any map updating before.. Is there any easy way to update my map so I can use go2 to get into my house ("get key", "unlock door", etc.. ) without changing the map database, and without losing my customizations when a new map DB comes out?
Vanatar
12-20-2010, 09:06 AM
I should start by saying I haven't done any map updating before.. Is there any easy way to update my map so I can use go2 to get into my house ("get key", "unlock door", etc.. ) without changing the map database, and without losing my customizations when a new map DB comes out?
You might might better served writing your own script that uses go2 to take you to the room right outside your house, then issue whatever other commands you need to enter your house, etc...
--Vanatar
You might might better served writing your own script that uses go2 to take you to the room right outside your house, then issue whatever other commands you need to enter your house, etc...
--Vanatar
That's what I'm doing now, and it's a reasonable solution, since I can just do ;gohome and it'll call up both scripts to get inside and lock the door.
The bigger issue is that I can't ;go2 <anywhere> from my house, 'cause the rooms aren't in the database. I guess I could just add the rooms/directions to the global map database and let it fail for anyone who doesn't have the right key.
Gibreficul
12-20-2010, 05:50 PM
if checkroom =~ /HOUSE ROOM TITLE/
multifput("unlock door", "open door","go door")
end
That's how I managed to deal with unmapped rooms in my movement method. I have a few unmapped rooms accounted for that way.
Gnomad
12-20-2010, 11:34 PM
Working on Prime.
sellies
12-21-2010, 09:39 AM
I'd like to get into the queue for the prime database.
Tillmen
12-21-2010, 01:46 PM
Prime map database is uploaded.
sellies
12-21-2010, 04:06 PM
I am working on Prime.
Gibreficul
12-27-2010, 12:29 AM
So Tillmen, if I make a script that mods the Map Database, can I send THAT to you instead of waiting for an open queue? You can update at your leisure that way, or would that be bad for the multiple copies of the map?
Tillmen
12-27-2010, 02:44 PM
Prime map database is uploaded.
Tillmen
12-27-2010, 02:46 PM
So Tillmen, if I make a script that mods the Map Database, can I send THAT to you instead of waiting for an open queue? You can update at your leisure that way, or would that be bad for the multiple copies of the map?
That could possibly work, or it could screw everything up. It all depends on what's different between the map database you wrote the script for and the map database it will be applied to.
Aethor
01-02-2011, 06:34 PM
mapped prime teras empath guild
mapped prime landing empath guild
WRoss
01-02-2011, 06:51 PM
I'd like to get in the queue for Prime. I'll finish all the fun stuff in the broken lands.
Tillmen
01-06-2011, 03:36 AM
Prime map database is uploaded.
Gnomad
01-06-2011, 05:47 PM
Quick question: Can(/should) you use a string proc for timeto? The example I'm thinking of is checking whether you can take a shortcut via Water Walking.
BigWorm
01-06-2011, 06:11 PM
Quick question: Can(/should) you use a string proc for timeto? The example I'm thinking of is checking whether you can take a shortcut via Water Walking.
Tillmen can answer definitively, but I would expect that you cannot.
Tillmen
01-06-2011, 07:38 PM
Quick question: Can(/should) you use a string proc for timeto? The example I'm thinking of is checking whether you can take a shortcut via Water Walking.
Can't be done. It would likely slow the dijkstra algorithm to a crawl. It might be doable in the future, if I add something I've been thinking of, but even then probably not.
Tillmen
01-06-2011, 07:50 PM
Ok.. I tested it out and adding the option to use a stringprocs for a timeto only increased the time to find a path by 15%. That's with no timeto's actually using a stringproc, just the option to. It would get slower each time a stringproc was added to a timeto.
But you still can't do it.
Gnomad
01-06-2011, 07:58 PM
Can't be done.Figured, but also figured it was worth asking. Thanks for running the check.
Aethor
01-11-2011, 11:38 AM
mapping wizard guild in prime in Illistim
completed 1-11-11 at 10:56am
Aethor
01-11-2011, 01:14 PM
<vaalor><empath> alchemy adminstrator 18758
<vaalor><empath> alchemy guildmaster 18775
<vaalor><empath> alchemy cleaning supplies 18766
<vaalor><empath> alchemy masters 18767
<vaalor><empath> alchemy training cauldron 18769
<vaalor><empath> alchemy workshop 18795, 18789, 18790, 18786
<vaalor><empath> alchemy shop 18759
BigWorm
01-11-2011, 01:19 PM
mapping wizard guild in prime in Illistim
completed 1-11-11 at 10:56am
It doesn't matter when you finish, only when Tillmen uploads your updated version.
Tillmen
01-11-2011, 01:39 PM
Prime map database is uploaded.
Aethor
01-11-2011, 05:48 PM
Prime Vaalor Cleric guild mapped
Aethor
01-11-2011, 07:46 PM
PRIME:
mapped illistim cleric guild
Tillmen
01-12-2011, 12:47 AM
Ok.. so.. I had two prime map databases sent to me at the same time, which means I could only upload one of them and the other person would lose their work. Luckily, both map databases were broken so I don't have to pick.
Both databases had a room inside a guild that was a duplicate of a room in a guild in another town. It makes it look like you can enter that room from Vaalor, and walk out of the room and be in Solhaven or Teras or whatever.
You can check for these errors by typing:
;go2 shortcut=off
;mapmap check
You may be able to fix this type of error by running mapmap in fix mode (which you should do even if this error doesn't show up). If that isn't enough, you'll have to remap the guild in the other town.
Also, to prevent people losing their work from mapping at the same time as someone else, check steps 1-3 in the first post. Post before you start mapping, not after you've already sent me the database.
Nothing getting uploaded this time. Go ahead and post if you want to map prime.
Aethor
01-12-2011, 09:54 AM
PRIME Illistim Empath guild
Gnomad
01-12-2011, 01:11 PM
I'd like to start tagging stuff in warrior guilds, and I think I'm just going to ape the Alchemy format, e.g.
warrior guild administrator
warrior guild masters
warrior guild leaves
etc.
If there's a problem with these tags, let me know.
edit: I'm obviously not doing this now because I know how to read a first post
Tillmen
01-12-2011, 04:55 PM
Prime map database is uploaded.
I did not include the Ta'Illistim empath guild because of lots of crazy errors. I fixed the Ta'Illistim wizard guild, added location information for a couple thousand rooms in the EN area, and fixed some random errors.
Gnomad
01-12-2011, 05:47 PM
working on prime
Aethor
01-14-2011, 09:42 AM
tillmen please remove wizard alchemy training cauldron from room #15906, i do not know of a way to remove a tag its tagged outside the training cauldrons and yanks out your cauldron and tries to do reps right there, must remove tag from that spot
Gnomad
01-15-2011, 10:49 AM
tillmen please remove wizard alchemy training cauldron from room #15906, i do not know of a way to remove a tag its tagged outside the training cauldrons and yanks out your cauldron and tries to do reps right there, must remove tag from that spot
I haven't finished working on the prime map yet; I'll take care of it.
edit: pretty sure 15906 is a cauldron
;eq echo Room['15906']
[exec1: #15906:
[Wizard Guild, Cauldron]
An enormous cast iron cauldron with thick, hinged ring handles dominates the training room. Sturdy metal hanging arms attached to a trammel are positioned above the fire pit, ready to adjust the height of the cauldron. Rough wooden stirring paddles, spyders, pokers, and hooks are neatly arranged along the wall, within easy reach.
Obvious exits: out]
Gnomad
01-25-2011, 08:25 PM
Did I do something wrong/did the map not get there?
Tillmen
01-29-2011, 02:23 AM
Prime map database is uploaded.
There were three or four sent to me. I don't even know whose I uploaded.
Gnomad
01-29-2011, 10:51 AM
Looks like mine (Sorcerer's Isle in Vaalor, other little things.) Thanks, it's a big help.
edit: Now one of you other folks can work on the map. And post in this thread. And read the first post.
sellies
01-31-2011, 12:57 PM
Working on Prime.
RR empath guild re-work
Beacon Hall locker room miniscript
Twilight Hall
Tillmen
02-01-2011, 03:47 AM
Prime map database is uploaded.
sellies
02-23-2011, 10:08 AM
I am working on the prime database.
Tillmen
02-23-2011, 02:34 PM
Shattered map database is uploaded.
Jayvn
02-23-2011, 05:59 PM
I can't get updater to find lich.rbw or rb :( I hate vista more every day... it makes no sense because I've had lich up and running on this machine before.. formatted and reset up and now lich is like.. FUUUUUU
sellies
02-27-2011, 05:02 PM
just an FYI, still working on the Prime database.
Tillmen
03-02-2011, 05:31 PM
Prime database is uploaded.
sellies
03-04-2011, 02:25 PM
Working on prime.
You know, I brought this up with Jamus before too back when psinet was relevant.
But consider this... why can't 1 room have multiple roomids?
That suddenly fixes a whole lot of problems with multiple people working, with merging, with hard coded roomids in scripts.
It isn't as if you need to go to a store and buy more roomids when you run out. There is no reason you can't end up with 6 figure or even 7 figure numbers.
Granted, an XML file is not quite a database, but with a database this kind of one :: many relationship would be no big deal. I imagine it wouldn't be with XML storage either.
Alorn15
03-05-2011, 10:33 AM
I fail to see how multiple ID's for each room simplifies the problem.
Crb maps WL, ID's on the right:
TSC - 1
TSE - 2
TSNE - 3
TSNW - 4
TSW - 5
TSSE - 6
I map it too:
TSC - 1
TSW - 2
TSNW - 3
TSNE - 4
TSE - 5
TSSW - 6
There are a couple of problems here.
1) We have to identify which rooms from each log match and assign an identifier that is unique to the new merged db. Sure this identifier could be composite... but why?
2) When we add the rooms to the new merged db, we have to replace their exits with the new unique identifiers as well. The exit ID's from the logs can no longer be trusted. Composite doesn't help us here either.
To be super-explicit, if you just merge the two logs and allow multiple ID's per room, you get the following:
TSC - 1
TSE - 2, 5
TSNE - 3, 4
TSNW - 4, 3
TSW - 5, 2
TSSE - 6
TSSE - 6
Maybe you had envisioned a step beyond that?
Oh, I guess I didn't fully explain it.
When someone maps it, the map script would query lnet for the next unused roomid. So you'd never have one roomid for a different room.
You would, eventually, have many unused and redundant roomids, but as I said, it isn't as if they cost you anything.
But this way you ensure nothing ever breaks because any update is fully backwards compatible.
It is a standard one::many relationship. Halfway between the current roomid setup (one::one relationship) and the tag system (many::many relationship)
The other thing, if you were worried about all the calls to get unused roomids, you could issue them in blocks of say 50, and then before dying have the script return any unused blocks.
ThatDamnTep
03-05-2011, 01:11 PM
Speaking of multiple room ids, the purser's office in River's Rest does seem to have that issue. ;e respond Room[10915] brings up the old room with the old exits and ;go2 10915 will still take you to the right room. The new room id is 18894 however. Oversight?
Tep
sellies
03-05-2011, 01:53 PM
A mapmap fix, which was done, should have corrected that..
imo, its mostly harmless, but the next time I work on the map I'll correct it.
by the way, in most recent update:
RR drawbridge for non-citizens fix
RR rogue guild fixes
Path to Moonstone Abbey fix
Tunnel to sea caves in RR: You will now try to swim the tunnel again after .5 seconds if you fail, instead of go2 timing out each time and trying again.
Stone Eye tables all mapped
BHA tables all mapped
RR sorcerer guild seems to be behaving properly now!! YAY!
If anyone notices an issue with the RR guild or any other sorcerer guild, poke me.
Alorn15
03-05-2011, 08:33 PM
Hmmm, maybe I'm a bit slow...
If you were to query the server for an id when you map a room, wouldn't you write the server in such a way as to guarantee uniqueness on that id? E.g. even if two people query the server simultaneously it is not possible for two invocations of the internal 'get id' method to interleave.
It seems to me that this solution does solve the problem of overlapping room ID's. I just don't see how it requires or recommends a change in the relationship of ID's to rooms.
Perhaps you can walk me through the scenario I gave above - mapping TSC - with the system you have in mind?
Okay, right now Roomids can change. If you hard code roomids into scripts, which many do (boundaries in bigshot or wander, etc), and they change, your script breaks. People remap and rooms can get new ids assigned.
This way, any new mapping work is completely backwards compatible.
If you redid the entire landing, you could still go to TSC by typing ;go2 223 but you could also use the new roomid of say ;go2 22870 because each roomid would be pointing to the same room. Each single room can have many roomids referenced to it. one :: many relationship
http://onlamp.com/pub/a/onlamp/2001/03/20/aboutSQL.html
Now, you get how querying lich for a roomid or a block of roomids at a time would aleviate the problem of having to lock down mapping for everyone but 1 person at a time.
So suppose you did that, and now anyone can map at anytime. But suppose two people are mapping at the same time AND doing the same area? They both turn in their results and you have duplicates for many many rooms.
Right now, it borks things. But if you had a one :: many relationship as described, you could just use roomids from BOTH players, nothing breaks, everything smoothly merges.
roomids are free, so no need to be conservative with them. The only question then becomes one of performance. That I cannot answer. I know with a database it really is no big deal, but I'm unsure how it would affect go2 performance wise since it is doing XML parsing.
I guess it'd be the performance difference of just a straight variable conditional statement vs. an array lookup.
Alorn15
03-06-2011, 11:35 AM
Hmm. It strikes me that if you're going to write server code - which does seem like a reasonable solution - there are better ways to solve the problem than a change that would require rewriting go2 and fundamentally changing the map db.
One that comes to mind is a web API method that basically takes all the info associated with a room and returns an ID. The server is responsible for adding this info a central db, and for ensuring the uniqueness of the id. If two people push the same info twice, the room only gets created once, and the same id gets returned to both people. Other people get the room when they re-download the remote db. This side-steps the merge problem.
But it doesn't necessarily fix the changing roomid and backwards compatibility problem.
I don't know if would be a fundamental change either. You'd go from having roomid = 898 to roomid = 898,78797,98908
Just change your comparison operations then, not a huge deal I think.
Alorn15
03-06-2011, 01:46 PM
How does it not address those problems? You would only ever have one ID for a room. A local db would never be out of sync with the remote db. I'm not entirely sure what you mean by backwards compatibility in this instance, however.
As far as it being a fundamental change, perhaps you can explain how a lookup would occur in your system. In other words, what data structure(s) does the map db live in when in memory? How are rooms indexed? What steps need to be taken to locate a room by ID using these data structures/indexes? The example you gave is not a lookup, it is a comparison.
For reference, here is a current room object:
>;e echo Room.current.inspect
--- Lich: exec2 active.
[exec2: @id=9804
@image="en-tower-1264234799.png"
@climate=nil
@title=["[Maaghara Labyrinth]"]
@check_location=nil
@timeto={"9768"=>0.2, "9803"=>0.2}
@location=nil
@tags=[]
@wayto={"9768"=>"southwest", "9803"=>"north"}
@paths=["Obvious exits: north, southwest"]
@image_coords=[1150, 571, 1160, 581]
@terrain=nil
@description=["The scent of moistened clay and dirt permeates the air and lingers, perhaps due to the high volume of condensation. Water droplets hitting the dampened clay floor echo all around the tunnel."]]
I know how I would implement the one-many relationship you're suggesting, and it add unnecessarily complexity to the current system, in addition to a performance loss for lookups. But maybe you've thought of an implementation that I haven't.
I'm not that versed in ruby, I'm a php database applications guy. I can tell you how I'd do it in that. But you'd store the roomid's in an array, and so to check things
so something like
Room.current.id.include?(452)
instead of
Room.current.id == '452'
But again, I'm no where near as ruby versed as you.
The other way would be to store it as a list and scan it for a pattern match
On the backwards compatibility thing. Roomids sometimes change with map updates because a room gets overwritten with a new id. Happened to me recently, had to change a script.
Alorn15
03-06-2011, 05:45 PM
I'm not that versed in ruby, I'm a php database applications guy. I can tell you how I'd do it in that.
That's okay, this is pretty language-agnostic stuff.
But you'd store the roomid's in an array, and so to check things.
so something like
Room.current.id.include?(452)
instead of
Room.current.id == '452'
Once again, this is a comparison, not a lookup. I think that what you're getting at is that when looking for an ID (say 5), you would iterate through the array of rooms and examine each to see if it contains an ID of 5. This is profoundly slow compared to a system where 5 is used as an index to find the record you're looking for. Almost certainly this is how the map db is currently used.
If I absolutely had to implement the system you're describing, I'd do it like this:
1) 1/several ID's are attached to each room in the flat-file db (or xml, or whatever you have on disk)
2) At the start of a session, when you load the file into memory, you load the db into memory as it is now (I'm guessing an array)
3) While populating this structure, you also load a second data structure into memory that functions as a one-to-many lookup table. In other words, if room A has an id of 5 and 6, the first data structure would index it as 5 and the lookup structure would return 5 when given either 5 or 6.
Pretty much exactly how a DB implements it. But, once again, this is a lot of unnecessary complexity to side-step a problem that can be solved with either:
A) A smart merge algorithm (e.g. throw intelligence at the problem)
B) A web API that manages a central map intelligently enough to prevent duplicates in the first place (e.g. throw technology at the problem)
I'd go with B, but that's because I'm not smart enough to write that algorithm.
On the backwards compatibility thing. Roomids sometimes change with map updates because a room gets overwritten with a new id. Happened to me recently, had to change a script.
I don't understand. You mentioned that a shortcoming of the server-side management I mentioned is lack of backwards compatibility. But this is an example where the current system failed, not the system I've described.
Well, with a database, you'd have two tables. Putting it all in one table would be an unnormalized design.
If you wanted to make it the equivalent of a DB lookup (which wouldn't be resource intensive, it requires just a simple join in your SQL), you'd make it two tables.
the room info table would have a key
then there would be a roomids table that would have a field for that key, and a field for a roomid. You'd make an index based on the combination of the two.
select rooms.*, roomids.id from rooms, roomids, where rooms.key = roomids.key
course... now that I read the rest of your post, you basically said that.
I don't understand. You mentioned that a shortcoming of the server-side management I mentioned is lack of backwards compatibility. But this is an example where the current system failed, not the system I've described.
I guess I missed the part where you covered backward compatibility.
Alorn15
03-06-2011, 06:08 PM
Out of curiosity, I added attribute foo to all the rooms in my local db. Foo was set to an array containing the room's id and the room's id plus one.
Then I benchmarked finding room 17000 using two different strategies. The first one uses the array index 17000. The second one iterates through the list of rooms and returns the first one where foo contains 17000.
1.
>;e start = Time.now; 1000.times { bar = Room.list[17000] }; echo Time.now - start;
--- Lich: exec2 active.
[exec2: 0.001329702]
--- Lich: exec2 has exited.
2.
;e start = Time.now; 1000.times { bar = Map.list.find { |room| room.foo.include?(17000) }; }; echo Time.now - start;
--- Lich: exec1 active.
>[exec1: 25.669039583]
--- Lich: exec1 has exited.
Yes that is a big performance difference.
Store the roomids as a delimited string and try a regex match, I'm curious.
Alorn15
03-06-2011, 11:43 PM
>;e start = Time.now; 1000.times { bar = Room.list.find { |room| room.foo =~ /17000/ }; }; echo Time.now - start;
--- Lich: exec2 active.
>
[exec2: 31.192925812]
--- Lich: exec2 has exited.
But even if the conditional is very fast, as in the following case, iteration is still far slower than indexing:
;e start = Time.now; 1000.times { bar = Room.list.find { |room| 1 == 0 }; }; echo Time.now - start;
--- Lich: exec2 active.
[exec2: 4.877438514]
--- Lich: exec2 has exited.
But as mentioned before, even if you did implement a multiple ID per room system, you could still use indexing. In fact, it occurred to me that you wouldn't even need/want two data structures. You could just use a single structure where some indexes contained duplicate references.
I still don't think it's a good idea though.
Tillmen
03-12-2011, 09:36 PM
Prime map database is uploaded.
drinkmore
03-20-2011, 11:20 PM
working on mapping sorcerer guilds in prime.
so far, fixed a few issues with the existing landing and RR guild maps, and mapped solhavens guild.
am going to continue till all the damn things are done.
not adding to narost.
~Moredin
drinkmore
03-21-2011, 11:13 PM
status update on what I've done so far. I'm waiting for a GM to fix the Vaalor guild before sending to Tillmen. Aizaraii said someone is working on it.
-specific changes to existing map data:
added landing sorcerer guild shop
landing summoning chamber wasnt mapped right..now should be
fixed landing guild training cauldron and nearby rooms...some missing timetos and waytos
landing guild rooms "location" data added
added tag 'trash' to room in landing guild with receptacle
tagged RR guild shop
-general additions:
solhaven sorcerer guild mapped/tagged
icemule sorcerer guild mapped/tagged
zul logoth sorcerer guild mapped/tagged
teras sorcerer guild mapped/tagged
illistim sorcerer guild updated...tags were all wrong...it was weird. added locations too.
-things I tagged:
trash
sorcerer alchemy cleaning supplies
sorcerer alchemy shop
sorcerer alchemy training cauldron
sorcerer alchemy workshop
sorcerer alchemy guildmaster
sorcerer alchemy administrator
sorcerer alchemy masters
summoning chamber
sorcerer guild node
sorcerer guild shop
sorcerer guild (as close as the general public can get)
-Simu's fault:
no trash bin in Zul, Solhaven, Ta'Illistim, or Teras; they have DUST bins...but you cant put trash in those (for alchemy.lic); label your own in a place you can get to.
no Solhaven guild shop
no DEMON runestones sold in Zul or Teras (for use with 725.lic) so did not tag the Zul one...who lives there anyway? added the room without waytos just to keep the room numbers 'close'.
no cleaning supplies in the Teras supply room the way I saw them in the others I mapped...the cabinet is empty.
the Ta'Vaalor guild is so FUBAR I couldn't even get in with 3 different scripts, including go2. so the GM has to fix it first.
anything else needing doing while I wait on that guild to be fixed?
~Moredin
drinkmore
03-22-2011, 01:23 AM
Strathspey fixed the Vaalor guild very quickly, so that is now mapped/tagged.
also fixed the wayto for getting into the guild since it was broken after strathspey fiddled with stuff.
sent your way tillmen.
Tillmen
03-22-2011, 02:45 AM
Prime map database is uploaded.
sellies
03-24-2011, 10:21 PM
working on prime
sellies
04-04-2011, 10:45 AM
I didn't forget. I'm still working.
subzero
04-04-2011, 05:51 PM
Can we get Moredin's sorcerer guild updates imported into the Shattered database or does it need to be remapped there also?
Tillmen
04-04-2011, 05:59 PM
Has to be remapped. Even if I had a way of importing it, none of the room numbers would line up.
subzero
04-05-2011, 02:47 AM
Bummer. Maybe I'll take a look one of these days then.
GodSatan
04-08-2011, 04:00 PM
checking out shattered for landing sorc guild updates...
GodSatan
04-08-2011, 04:31 PM
done with shattered and sent the result back to Tillmen. Landing sorc guild appears to be working for alchemy finally!
done with shattered and sent the result back to Tillmen. Landing sorc guild appears to be working for alchemy finally!
That may be the single best thing I have heard since I have been back :thanx:
Tillmen
04-09-2011, 02:00 PM
Shattered map database is uploaded.
Tillmen
04-15-2011, 05:34 PM
Map databases for Plat, Prime, and Shattered have been uploaded with Spitfire stuffs.
Room numbers for Spitfire are different for each game instance. There's an area I couldn't map for lack of swimming skillz. Narost info was added, but the image isn't exactly correct.
Franknozly
05-06-2011, 03:25 AM
228, 288, 318 = ayana leaf
9400, 8671, 8754, 6929, 7562, 8666, 8667, 8668, 7544, 17793, 3365, 6882 = node
7983, 8754 = some cactacae spine
2948, 2947, 2949 = moonflower
294, 293, 292, 291, 290 = pepperthorn root
Tillmen
05-06-2011, 09:34 AM
228, 288, 318 = ayana leaf
9400, 8671, 8754, 6929, 7562, 8666, 8667, 8668, 7544, 17793, 3365, 6882 = node
7983, 8754 = some cactacae spine
2948, 2947, 2949 = moonflower
294, 293, 292, 291, 290 = pepperthorn root
What game instance is that for?
Franknozly
05-06-2011, 03:57 PM
What game instance is that for?
oops. GSIV
euginer
05-08-2011, 02:26 AM
Tagged prime with 'forest troll' for alchemy. Rooms 8432, 8433, 8434, 8540, 8516-8532, 1288-1292.
PS- does it help if I list each room individually?
Veneyeth
05-08-2011, 04:19 AM
sounds like the prime landing empath guild was said to be done earlier but the ;e echo string doesn't work right. and im assuming that ;go2 228 from within would also work. can i get in the queue to redo it?
Franknozly
05-08-2011, 06:08 AM
GSIV
410, 3600, 6960, 6317 - ayana leaf
Hazado
05-14-2011, 12:47 AM
I went to the solhaven rogue's guild today, found that it was mapped inside, but the entrance was not mapped. The exit out of the guild is mapped though. ;go2 won't go directly there. How do i fix this?
Edit: Okay fixed it, and added a map for narost...Now how do I share that? <---Needs to learn how to read, its in the OP.
Tillmen
05-15-2011, 02:24 AM
Prime map database is uploaded.
Veneyeth
05-16-2011, 11:41 PM
working on prime map mapping empath guild landing
Tillmen
05-19-2011, 08:59 PM
I'm working on the Shattered map database.
Veneyeth
05-20-2011, 03:53 AM
finished the prime landing empath guild, added the narost and tags for all rooms. sent the files.
Tillmen
05-20-2011, 06:51 PM
Prime map database is uploaded.
I also converted all the minotaur maze code from Shattered over and added some fixes for the rift. The minotaur maze code is.. awesome. You should go play with it just to see how awesome it is, even if you don't hunt there.
sellies
05-20-2011, 06:54 PM
working on prime
Tillmen
05-21-2011, 01:11 AM
Shattered map database is uploaded.
Prime map database is uploaded.
I also converted all the minotaur maze code from Shattered over and added some fixes for the rift. The minotaur maze code is.. awesome. You should go play with it just to see how awesome it is, even if you don't hunt there.
Oh, cool I just left the area, would like to see how an updated version works.
Franknozly
05-21-2011, 01:30 PM
Don't know who the hell added this but room 298 is retarded with a procedure.
{"285"=>StringProc.new("move 'east'\nmove 'north'\nmove 'north'\nmove 'west'\nmove 'north'"), "296"=>"west", "1776"=>"go shop", "299"=>"east"}
Mind deleting that stringproc from the 298 which makes it THINK that it's a shortcut to tsc, slows down people with typeaheads. Not to mention it's redundant.
Nattor
05-22-2011, 03:59 AM
sorcerer guild in Ta'Illistim in prime is mapped already, and it has tags for the most part but theres 1 tag thats wrong in there. There are two rooms apparently marked sorcerer alchemy shop in this guild. (18171 is the correct room)
Room #18158
;e echo Room.current.tags
--- Lich: exec1 active.
[exec1: sorcerer alchemy shop]
That room is not the Alchemy shop.
Hazado
05-22-2011, 03:38 PM
;e Room[8214].wayto['8197'] = "north"
;e Room[8214].timeto['8197'] = 0.2
Needs fixed on prime
sellies
05-22-2011, 04:01 PM
sorcerer guild in Ta'Illistim in prime is mapped already, and it has tags for the most part but theres 1 tag thats wrong in there. There are two rooms apparently marked sorcerer alchemy shop in this guild. (18171 is the correct room)
Room #18158
;e echo Room.current.tags
--- Lich: exec1 active.
[exec1: sorcerer alchemy shop]
That room is not the Alchemy shop.
Its mapped, but the entrance wayto was never done. I'm working on that now.
Nattor
05-23-2011, 12:59 AM
Its mapped, but the entrance wayto was never done. I'm working on that now.
Yeah I realized that. I wanted to do it but I really don't have the time.
sellies
05-23-2011, 01:30 PM
>checkwayto
--- Lich: exec2 active.
[exec2: {"18150"=>StringProc.new("result = dothistimeout 'look pillar', 5, /dark cloud|dark eye|hazy black|slate grey|blood-drop|dark cloud|radiating circle|consist of/;if result =~ /dark eye/;\tloop{;\t\twait_until{Spell[717].affordable?};\t\tresult = cast(717, 'pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /hazy black/;\tloop{;\t\twait_until{Spell[704].affordable?};\t\tresult = cast(704, 'pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /slate grey/;\tloop{;\t\twait_until{Spell[705].affordable?};\t\tresult = cast(705, 'pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /blood-drop/;\tloop{;\t\twait_until{Spell[701].affordable?};\t\tresult = cast(701, 'pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak\t\tend;\t};elsif result =~ /radiating circle/;\tloop{;\t\twait_until{Spell[702].affordable?};\t\tresult = cast(702, 'pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /dark cloud/;\tloop{;\t\twait_until{Spell[703].affordable?};\t\tresult = cast(703, 'pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};end;result = dothistimeout 'look other pillar', 5, /dark cloud|dark eye|hazy black|slate grey|blood-drop|dark cloud|radiating circle|consist of/;if result =~ /dark eye/;\tloop{;\t\twait_until{Spell[717].affordable?};\t\tresult = cast(717, 'other pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /hazy black/;\tloop{;\t\twait_until{Spell[704].affordable?};\t\tresult = cast(704, 'other pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /slate grey/;\tloop{;\t\twait_until{Spell[705].affordable?};\t\tresult = cast(705, 'other pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /blood-drop/;\tloop{;\t\twait_until{Spell[701].affordable?};\t\tresult = cast(701, 'other pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /radiating circle/;\tloop{;\t\twait_until{Spell[702].affordable?};\t\tresult = cast(702, 'other pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /dark cloud/;\tloop{;\t\twait_until{Spell[703].affordable?};\t\tresult = cast(703, 'other pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};end;result = dothistimeout 'look third pillar', 5, /dark cloud|dark eye|hazy black|slate grey|blood-drop|dark cloud|radiating circle|consist of/;if result =~ /dark eye/;\tloop{;\t\twait_until{Spell[717].affordable?};\t\tresult = cast(717, 'third pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /hazy black/;\tloop{;\t\twait_until{Spell[704].affordable?};\t\tresult = cast(704, 'third pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /slate grey/;\tloop{;\t\twait_until{Spell[705].affordable?};\t\tresult = cast(705, 'third pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /blood-drop/;\tloop{;\t\twait_until{Spell[701].affordable?};\t\tresult = cast(701, 'third pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /radiating circle/;\tloop{;\t\twait_until{Spell[702].affordable?};\t\tresult = cast(702, 'third pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /dark cloud/;\tloop{;\t\twait_until{Spell[703].affordable?};\t\tresult = cast(703, 'third pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};end;result = dothistimeout 'look fourth pillar', 5, /dark cloud|dark eye|hazy black|slate grey|blood-drop|dark cloud|radiating circle|consist of/;if result =~ /dark eye/;\tloop{;\t\twait_until{Spell[717].affordable?};\t\tresult = cast(717, 'fourth pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /hazy black/;\tloop{;\t\twait_until{Spell[704].affordable?};\t\tresult = cast(704, 'fourth pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /slate grey/;\tloop{;\t\twait_until{Spell[705].affordable?};\t\tresult = cast(705, 'fourth pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /blood-drop/;\tloop{;\t\twait_until{Spell[701].affordable?};\t\tresult = cast(701, 'fourth pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /radiating circle/;\tloop{;\t\twait_until{Spell[702].affordable?};\t\tresult = cast(702, 'fourth pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};elsif result =~ /dark cloud/;\tloop{;\t\twait_until{Spell[703].affordable?};\t\tresult = cast(703, 'fourth pillar');\t\tif result =~ /Cast Roundtime/;\t\t\tbreak;\t\tend;\t};end"), "4715"=>"south"}]
--- Lich: exec2 has exited.
That was fun
sellies
05-23-2011, 01:33 PM
;e Room[8214].wayto['8197'] = "north"
;e Room[8214].timeto['8197'] = 0.2
Needs fixed on prime
fixed
sellies
05-23-2011, 01:37 PM
sorcerer guild in Ta'Illistim in prime is mapped already, and it has tags for the most part but theres 1 tag thats wrong in there. There are two rooms apparently marked sorcerer alchemy shop in this guild. (18171 is the correct room)
Room #18158
;e echo Room.current.tags
--- Lich: exec1 active.
[exec1: sorcerer alchemy shop]
That room is not the Alchemy shop.
fixed
Tillmen
05-23-2011, 03:19 PM
Prime map database is uploaded.
Franknozly
05-23-2011, 04:19 PM
working on prime.
Hazado
05-23-2011, 05:08 PM
For Landing West Gate Ballista Tower
;e Room[13245].wayto['291'] = "climb ladder"
;e Room[13245].timeto['291'] = 0.2
;e Room[291].wayto['13245'] = "climb ladder"
;e Room[291].timeto['13245'] = 0.2
Franknozly
05-25-2011, 12:18 AM
map files uploaded. Waiting for tillmen to update.
Franknozly
05-25-2011, 12:25 AM
For Landing West Gate Ballista Tower
;e Room[13245].wayto['291'] = "climb ladder"
;e Room[13245].timeto['291'] = 0.2
;e Room[291].wayto['13245'] = "climb ladder"
;e Room[291].timeto['13245'] = 0.2
I included those too. And moot hall, mount aentumgana, all of broken lands, and tags for craptons of areas, supernodes, and twilight hall's area in imt. etc.
sellies
05-25-2011, 12:40 AM
I'd like to call dibs on next update if possible.
Tillmen
05-25-2011, 02:14 AM
Prime map database is uploaded.
sellies
05-25-2011, 02:32 AM
working on prime
Franknozly
05-25-2011, 11:33 PM
TSC needs to be retagged, someone spelled supernode wrong
[exec1: supdernode]
room 228
sellies
05-27-2011, 02:19 AM
hey folks, I decided to take a last minute camping trip for mem day weekend, won't be finishing my mapping till I get back
If anyone else wants to jump on the prime DB, go right ahead, I don't mind redoing the little I've done, I've got it all in a notepad.
Nattor
05-30-2011, 12:41 PM
hey guys, quick addition for you.
in prime room 1270 should be tagged as alchemy sea water
That way it doesn't run from solhaven to the landing to get water.
Fallen
05-30-2011, 01:03 PM
Could whoever updated Prime Ta'Illistim to run you all the way to the Sylvarraend herbalist as opposed to going to Jhesith's place in town please change it back?
Aethor
05-30-2011, 08:03 PM
if a tag is wrong you use these commands
;e Room[room#].tags = nil
;e Room.current.tags.push('luckbloom blossom')
;e Map.save
then go to your lich folder, data folder/gsiv folder and find the last
map-9102834.dat file add it to an email to tillmen@lichproject.org and send him the room number updated and tell him why it was updated
Tillmen
05-30-2011, 08:19 PM
;e Room[room#].tags = nil
;e Room.current.tags.push('luckbloom blossom')
;e Map.save
That won't actually work. If you set the tags to nil, you can't push anything onto it. It just stays nil. It would be better to just delete the tag that is wrong
;e Room.current.tags.delete('wrong tag name')
After fixing a tag on your own map database, I'd rather just have the change post here instead of dealing with having the whole map database e-mailed to me. There's some checks I have to run on a database that anyone sends me, and it takes longer than just fixing a few tags on a known good database. Also, it would keep other people from working on the map database until I get around to uploading it.
sellies
05-30-2011, 08:24 PM
I wouldn't use ;e Room[room#].tags = nil because you're going to delete all of the tags, not just the incorrect tag.
You want to target the specific tag.
;e Room.current.tags.delete("supdernode")
Working on prime again.
Aylien
06-01-2011, 01:19 PM
prime, room 19252, tagged "empath alchemy shop" (Wehnimer's landing)
BigWorm
06-01-2011, 01:42 PM
Could whoever updated Prime Ta'Illistim to run you all the way to the Sylvarraend herbalist as opposed to going to Jhesith's place in town please change it back?
Agreed. This is super annoying.
sellies
06-01-2011, 03:00 PM
I should be finished today.
ThatDamnTep
06-01-2011, 03:38 PM
I should be finished today.
Check your e-mail later for a new list.
sellies
06-01-2011, 03:58 PM
got it.
Tillmen
06-02-2011, 10:52 PM
Prime map database is uploaded.
Hazado
06-05-2011, 03:03 PM
think we could start using the west gate of landing for go2 if we have citizenship with landing?
Gibreficul
06-05-2011, 08:28 PM
Prime map being worked on... Namely adding Ravelin map, and possibly fix the clusterfuck that is the current map job of the Ta'Vaalor rogue guild if I find the time. (Again, whoever did that map job, thanks for fucking shit up worse than if it wasn't done at all.)
Gibreficul
06-05-2011, 11:52 PM
I lied, I spent a ton of time adding a map to Narost and the clicky room shit, only to find the map (the image) was bad. Had a few extra rooms on it. Instead of complicating things with a bad image, I'm going to hold off until a better map image can be added. That said, if anyone had any mapping aspirations, CARRY ON.
there's always next time
wandererjs
06-05-2011, 11:59 PM
Working on prime map. (Empath wants to use ;alchemy in Ta'Illistim)
wandererjs
06-06-2011, 01:40 AM
Disregard. Accidentally completed my training cauldron task earlier, and already tired of doing this manually (even with quickie scripts to help).
Nattor
06-06-2011, 09:40 PM
working on the prime map.
Nattor
06-06-2011, 09:52 PM
sent to Tillmen.
Tillmen
06-07-2011, 05:07 AM
Prime map database is uploaded.
Nattor
06-07-2011, 11:06 AM
working on the prime db again
Nattor
06-07-2011, 12:40 PM
for anyone that cares I just mapped the Icemule empaths guild, added the map into narost, and connected all the rooms. Also tagged all the rooms for alchemy.
Also, I mapped the eastern half of FWI, but didn't add them into Narost.
Tillmen
06-08-2011, 12:02 AM
Prime map database is uploaded.
sellies
06-09-2011, 05:25 PM
working on prime
Gibreficul
06-10-2011, 06:17 AM
http://a7.sphotos.ak.fbcdn.net/hphotos-ak-ash4/251086_1687776606218_1591786654_31254910_7509992_n .jpg
Dibs on next map session, gunna add that to Narost.
sellies
06-10-2011, 11:36 AM
I'm all done, and the map has been submitted.
a smattering of new tags.
a supernode tag was removed because it was inside a private CHE
a workshop tag was removed because it was inside a private CHE
all sunfist superintendents are now tagged "superintendent"
sunfist grandmaster is "sunfist grandmaster"
Tillmen
06-10-2011, 04:22 PM
Prime map database is uploaded.
Gibreficul
06-10-2011, 05:13 PM
WORKING ON PRIME
YAY!
Gibreficul
06-10-2011, 07:35 PM
Map.dat sent to Tillmen, along with en-aradhul-road.png.
Not only did I add the visual map, but I also added uses of SIGIL OF RESOLVE for climb and swim attempts on that trail, and also added SIGIL OF RESOLVE to the swim to and from the OTF approach.
(EXAMPLE OF THE STRING PROC)
Room[16733].wayto['16732'] = StringProc.new("Spell[9704].cast if !checkspell(9704) and checkstamina(5) and Spell[9704].known?;fput 'incant 506' if !checkspell(506) and Spells.wizard >= 6 and checkmana(6); move 'climb rope'; waitrt?")
Gibreficul
06-10-2011, 11:32 PM
Tillmen, hope you see this.. new Map.dat sent. Original I sent had one room with an error I just corrected. Image file from the first e-mail is still valid.
Franknozly
06-13-2011, 04:08 AM
IN PRIME:
let's start tagging shrines for different arkati..
marlu = 4620, 2350
sheru = 2350
voln = 3365
Zelia = 2337
node = 4142, 4195, 7331, 7229
and the path between 3433 and 19258 got removed for some reason.
Room['3433'].wayto['19258']='go blackberry arch'
Gibreficul
06-13-2011, 01:27 PM
I'm still waiting for Tillmen to update with the Aradhul Road map I sent. My next mapping mission is going to be Ravelin and Sorcerer's Isle, along with re-mapping the Vaalor guild because it's been pissing me off for well over a year now.
Nattor
06-14-2011, 04:33 PM
I've got a couple of maps to add when everyone else is done.
Gibreficul
06-14-2011, 04:46 PM
I'm getting the feeling Tillmen doesn't like my map. :(
Tillmen
06-16-2011, 12:18 AM
Prime map database is uploaded.
Horray!
Nattor
06-16-2011, 12:46 AM
Hey Tillmen, or anyone else who knows. If a map is wrong, and I have/make/someone else makes a correct map, will adding the new map to Narost make the other go away, or is there something else that needs done?
Also, prime db is mine for a bit :)
Hazado
06-16-2011, 01:15 AM
Hey Tillmen, or anyone else who knows. If a map is wrong, and I have/make/someone else makes a correct map, will adding the new map to Narost make the other go away, or is there something else that needs done?
Also, prime db is mine for a bit :)
It there is still a room for it, it will stick around. If it isn't need anymore you can always delete it from the map folder in the lich directory.
Nattor
06-16-2011, 01:31 AM
Completely added a map someone had sent me and ask me to add. Sent it all to Tillmen.
Franknozly
06-16-2011, 05:53 AM
IN PRIME:
let's start tagging shrines for different arkati..
marlu = 4620, 2350
sheru = 2350
voln = 3365
Zelia = 2337
node = 4142, 4195, 7331, 7229
and the path between 3433 and 19258 got removed for some reason.
Room['3433'].wayto['19258']='go blackberry arch'
Still have not been added. I'm taking ownership of prime map db to make some changes...
Franknozly
06-16-2011, 06:24 AM
sending map to Tillmen.
Nattor
06-16-2011, 10:55 AM
yeah, I think you are going to have to do it again, after Tillmen updates the mapdb there Frank
sellies
06-16-2011, 01:26 PM
Did someone tag the Ta'Illistim tinctureshop as herbalist for a reason?
Was previously tagged as herbalist2
Blackmagic
06-16-2011, 01:33 PM
Probably changed the tag to fix that issue in herbheal
Tillmen
06-18-2011, 06:38 PM
Prime map database is uploaded.
Franknozly
06-18-2011, 08:33 PM
okay, now I'll redo the updates and send another file.
wandererjs
06-19-2011, 12:39 AM
Are you done yet?
Have some time tonight; wanted to add and tag a few guilds.
Just to verify... I can update the map via multiple characters, right?
Gibreficul
06-19-2011, 07:56 AM
Hey Tillmen, nice job on modding the sigil of resolve code on Aradhul Road. Way more compact your way. Next time, I'll do it your way off the bat. I feel guilty you did all that extra work. You rock man. Just curious, did you add that sigil of resolve to any other climb/swim attempts?
Franknozly
06-19-2011, 10:55 AM
Are you done yet?
Have some time tonight; wanted to add and tag a few guilds.
Just to verify... I can update the map via multiple characters, right?
It doesn't matter if I'm done, you have to wait till tillmen says updated.
Then you gotta download the update before trying to change anything.
But yes, I sent the file within minutes of posting that message. I had all my changes saved in a script.
sellies
06-19-2011, 07:42 PM
Are you done yet?
Have some time tonight; wanted to add and tag a few guilds.
Just to verify... I can update the map via multiple characters, right?
Yes to the second question
;e Map.save
is your friend for doing such things.
Tillmen
06-22-2011, 02:32 AM
Prime map database is uploaded.
wandererjs
06-25-2011, 02:03 PM
Working on prime
wandererjs
06-25-2011, 06:11 PM
Done, and sent to Tillmen. Updates are mapping of Ta'Illistim empath guild, tagging for alchemy, and updating ta'vaalor empath guild maps (daytime) and finishing/fixing alchemy tags.
Hazado
06-27-2011, 08:48 PM
Not sure what to put for if your not a citizen of landing...
But this should let you use the west gate instead of running around to the north gate.
;e Room[420].wayto['291'] = StringProc.new("if Char.citizenship == 'Wehnimer\'s Landing';move 'go gate';")
;e Room[420].timeto['291'] = 0.2
Tillmen
06-30-2011, 04:55 PM
Prime map database is uploaded.
Hazado
06-30-2011, 05:39 PM
Well i figured out a way to use the west gate of landing
;e Room[420].wayto['291'] = "go gate"
;e Room[420].timeto['291'] = 0.2
Modifications to go2.lic
Below line 443 add
west_gate_citizenship_check = proc {
if Char.citizenship == "Wehnimer's Landing"
Room[420].timeto['291'] = 0.2
else
Room[420].timeto['291'] = 15000
end
}
Below line 669 add
west_gate_citizenship_check.call()
WRoss
07-01-2011, 02:36 AM
Whoever changed the maps around Illistim, you messed up a room somewhere around the swim into OTF so that it is messing up ;go2. Please fix!
Tillmen
07-01-2011, 02:48 AM
Whoever changed the maps around Illistim, you messed up a room somewhere around the swim into OTF so that it is messing up ;go2. Please fix!
Fixed.
WRoss
07-01-2011, 03:22 AM
thank you
Geijon Khyree
07-01-2011, 09:59 AM
This is actually a request for mapping:
Can someone map House Phoenix in Wehnimer's Landing please? I can let you in and show you around if needed.
-Geij
Nattor
07-02-2011, 12:50 PM
Working on the prime map db..
Nattor
07-02-2011, 05:09 PM
updated and sent to Tillmen..
I sent it twice because I sent the wrong map db the first time. Thats what I get for saving as I go I suppose.
Tillmen
07-09-2011, 02:11 PM
Prime map database is uploaded.
Aethor
07-10-2011, 11:40 PM
working in prime in cavernhold
Hazado
07-11-2011, 12:08 AM
Added line for WL graveyard gate if it is pushed open
;e Room[4140].wayto['4141'] = StringProc.new("unlock = Spell[407]; purify = Spell[1604]; neutralize_curse = Spell[309]; until dothistimeout('go gate', 5, /^The bronze gate appears to be closed\\.$|^Obvious (?:paths|exits)\\: northeast, northwest$/) =~ /^Obvious/; if unlock.known? and unlock.affordable?; unlock.cast('gate'); elsif purify.known? and purify.affordable?; purify.cast('gate'); elsif neutralize_curse.known? and neutralize_curse.affordable?; neutralize_curse.cast('gate'); elsif (Char.prof == 'Warrior') and (Stats.level >= 15); fput 'batter gate'; waitrt?; elsif Skills.climbing >= [percentencumbrance/1.25,12].max; move 'climb gate'; move 'jump'; break; else; echo 'waiting for gate to open...'; nil until get =~ /^(?:With a shocking lack of resistance, t|T)he (?:huge|bronze) gate .* open|^The ancient hinges of the gate creak loudly as they give way\.|wide enough|it suddenly crashes open/; end; end")
;e Room[4141].wayto['4140'] = StringProc.new("unlock = Spell[407]; purify = Spell[1604]; neutralize_curse = Spell[309]; until dothistimeout('go gate', 5, /^The bronze gate appears to be closed\\.$|^Obvious (?:paths|exits)\\: none$/) =~ /^Obvious/; if unlock.known? and unlock.affordable?; unlock.cast('gate'); elsif purify.known? and purify.affordable?; purify.cast('gate'); elsif neutralize_curse.known? and neutralize_curse.affordable?; neutralize_curse.cast('gate'); elsif (Char.prof == 'Warrior') and (Stats.level >= 15); fput 'batter gate'; waitrt?; else; echo 'waiting for gate to open...'; nil until get =~ /^(?:With a shocking lack of resistance, t|T)he (?:huge|bronze) gate .* open|^The ancient hinges of the gate creak loudly as they give way\.|wide enough|it suddenly crashes open/; end; end")
Edit: Improved this a bit more
Edit 2: Found another string
Hazado
07-13-2011, 01:59 PM
Fixes WL Voln gate
;e Room.current.wayto["3683"] = "go gate"
;e Room.current.timeto["3683"] = 0.2
Tillmen
07-16-2011, 01:39 AM
Prime map database is uploaded.
wandererjs
07-27-2011, 07:57 PM
Working on prime
wandererjs
07-29-2011, 02:48 AM
Tillmen,
I'm having a problem mapping the cleric guild in Ta'Vaalor. The six alchemy workshops use only two descriptions for the rooms. While the exits use unique doors, the rest of the room description is identical, and I think the map database ignores everything after "You also see a", as that could be critters, npcs, etc.
I thought that ;mapmap fix would catch this, but it doesn't. I think it's still usable, but there will effectively be only two useful workshops for alchemy, as it will always take the closest.
Any suggestions?
[Cleric Guild, Master's Hall]
Polished walls of honey and black oak inlaid in a pattern of interlocking chevrons define the hallway of the annex that leads to the cauldron practice rooms. Water flows slowly over a sheet of glass overlaying the woodwork in the corner, with occasional ripples betraying the presence of etchings in the glass. You also see Master Hierophant Riqriarn, Master Hierophant Roscethia, Master Hierophant Divogme, Master Hierophant Ezalaina and Master Hierophant Wocabes.
Obvious exits: north, east
>
[uberbar]>location
You carefully survey your surroundings and guess that your current location is Ta'Vaalor or somewhere close to it.
>n
[Cleric Guild, Alchemy Wing]
Several training rooms completely equipped with cauldrons, beakers, measures, and other supplies are accessible around the perimeter of this room, their arched entryways carefully positioned so that no room looks directly into the entrance of another. A bundle of dried herbs is hung above each archway. Rippling in each entryway, the air wavers and dances, as if thicker in the archways than elsewhere. You also see some large training cauldrons and an unadorned oak door.
Obvious exits: north, south
>;e echo Room.current.wayto.inspect()
--- Lich: exec1 active.
[exec1: {"19829"=>"go door", "19830"=>"go cauldrons", "19831"=>"north", "19827"=>"south"}]
--- Lich: exec1 has exited.
>go door
[Cleric Guild, Closet]
This narrow room is thoroughly unremarkable. Its wooden plank floor is heavily worn, though immaculately swept. A shallow supplies closet stands near the door, while a large dust bin occupies the far end of the room.
Obvious exits: out
>out
[Cleric Guild, Alchemy Wing]
Several training rooms completely equipped with cauldrons, beakers, measures, and other supplies are accessible around the perimeter of this room, their arched entryways carefully positioned so that no room looks directly into the entrance of another. A bundle of dried herbs is hung above each archway. Rippling in each entryway, the air wavers and dances, as if thicker in the archways than elsewhere. You also see some large training cauldrons and an unadorned oak door.
Obvious exits: north, south
>n
[Cleric Guild, Alchemy Wing]
A slight chill touches the air of this long, grey stone hallway, its austerity a sharp contrast to the opulent woods of the hall to the south. Stout columns support the barrel-vaulted ceiling; on each is affixed a torch mounted in wrought iron, their flickering light and dusky soot mingled on the pale stone overhead. No tapestry or ornament relieves the starkness of the stone blocks, pierced occasionally by a door on either side. You also see a pale birch door and a dark ebony door.
Obvious exits: north, south
>s
[Cleric Guild, Alchemy Wing]
Several training rooms completely equipped with cauldrons, beakers, measures, and other supplies are accessible around the perimeter of this room, their arched entryways carefully positioned so that no room looks directly into the entrance of another. A bundle of dried herbs is hung above each archway. Rippling in each entryway, the air wavers and dances, as if thicker in the archways than elsewhere. You also see some large training cauldrons and an unadorned oak door.
Obvious exits: north, south
>s
[Cleric Guild, Master's Hall]
Polished walls of honey and black oak inlaid in a pattern of interlocking chevrons define the hallway of the annex that leads to the cauldron practice rooms. Water flows slowly over a sheet of glass overlaying the woodwork in the corner, with occasional ripples betraying the presence of etchings in the glass. You also see Master Hierophant Riqriarn, Master Hierophant Roscethia, Master Hierophant Divogme, Master Hierophant Ezalaina and Master Hierophant Wocabes.
Obvious exits: north, east
>
[uberbar]>location
You carefully survey your surroundings and guess that your current location is Ta'Vaalor or somewhere close to it.
>;e echo Room.current.wayto.inspect()
--- Lich: exec1 active.
[exec1: {"19828"=>"north", "19812"=>"east"}]
--- Lich: exec1 has exited.
>n
[Cleric Guild, Alchemy Wing]
Several training rooms completely equipped with cauldrons, beakers, measures, and other supplies are accessible around the perimeter of this room, their arched entryways carefully positioned so that no room looks directly into the entrance of another. A bundle of dried herbs is hung above each archway. Rippling in each entryway, the air wavers and dances, as if thicker in the archways than elsewhere. You also see some large training cauldrons and an unadorned oak door.
Obvious exits: north, south
>;e echo Room.current.wayto.inspect()
--- Lich: exec1 active.
[exec1: {"19829"=>"go door", "19830"=>"go cauldrons", "19831"=>"north", "19827"=>"south"}]
--- Lich: exec1 has exited.
>n
[Cleric Guild, Alchemy Wing]
A slight chill touches the air of this long, grey stone hallway, its austerity a sharp contrast to the opulent woods of the hall to the south. Stout columns support the barrel-vaulted ceiling; on each is affixed a torch mounted in wrought iron, their flickering light and dusky soot mingled on the pale stone overhead. No tapestry or ornament relieves the starkness of the stone blocks, pierced occasionally by a door on either side. You also see a pale birch door and a dark ebony door.
Obvious exits: north, south
>;e echo Room.current.wayto.inspect()
--- Lich: exec1 active.
[exec1: {"19828"=>"south", "19832"=>"go ebony door", "19833"=>"go birch door", "19834"=>"north"}]
--- Lich: exec1 has exited.
>go door
[Cleric Guild, Alchemy Workshop]
In this amply sized workroom are mingled the chill of stone and the faint but acrid odors of sulfurous potions. The unadorned walls transition smoothly into a perfect dome, pierced by a large crystalline skylight. Directly beneath the skylight stands a pale grey marble workbench, on which rests an array of instruments and artifacts needed by an alchemist. You also see a silver gem lens assembly, a white chalcedony crucible, a large glass alembic and a pale birch door.
Obvious exits: none
>;e echo Room.current.wayto.inspect()
--- Lich: exec1 active.
[exec1: {"19835"=>"go door"}]
--- Lich: exec1 has exited.
>go door
[Cleric Guild, Alchemy Wing]
A slight chill touches the air of this long, grey stone hallway, its austerity a sharp contrast to the opulent woods of the hall to the south. Stout columns support the barrel-vaulted ceiling; on each is affixed a torch mounted in wrought iron, their flickering light and dusky soot mingled on the pale stone overhead. No tapestry or ornament relieves the starkness of the stone blocks, pierced occasionally by a door on either side. You also see a pale birch door and a dark ebony door.
Obvious exits: north, south
>go second door
[Cleric Guild, Alchemy Workshop]
In this amply sized workroom are mingled the chill of stone and the faint but acrid odors of sulfurous potions. The unadorned walls transition smoothly into a perfect dome, pierced by a large crystalline skylight. Directly beneath the skylight stands a black basalt workbench, on which rests an array of instruments and artifacts needed by an alchemist. You also see an invar gem lens assembly, a dark grey chalcedony crucible, a large glass alembic and a dark ebony door.
Obvious exits: none
>;e echo Room.current.wayto.inspect()
--- Lich: exec1 active.
[exec1: {"19835"=>"go door"}]
--- Lich: exec1 has exited.
>go second door
Where are you trying to go?
>go door
[Cleric Guild, Alchemy Wing]
A slight chill touches the air of this long, grey stone hallway, its austerity a sharp contrast to the opulent woods of the hall to the south. Stout columns support the barrel-vaulted ceiling; on each is affixed a torch mounted in wrought iron, their flickering light and dusky soot mingled on the pale stone overhead. No tapestry or ornament relieves the starkness of the stone blocks, pierced occasionally by a door on either side. You also see a pale birch door and a dark ebony door.
Obvious exits: north, south
>n
[Cleric Guild, Alchemy Wing]
The long, grey stone hallway extends out of sight in either direction. Long ranks of torches, set on columns supporting the barrel-vaulted ceiling, flicker and smoke erratically. The only break in the plain-cut stone walls is a pair of doors, one on either side of the hallway. You also see a golden oak door and a dusky witchwood door.
Obvious exits: north, south
>;e echo Room.current.wayto.inspect()
--- Lich: exec1 active.
[exec1: {"19831"=>"south", "19832"=>"go witchwood door", "19833"=>"go oak door", "19835"=>"north"}]
--- Lich: exec1 has exited.
>go door
[Cleric Guild, Alchemy Workshop]
In this amply sized workroom are mingled the chill of stone and the faint but acrid odors of sulfurous potions. The unadorned walls transition smoothly into a perfect dome, pierced by a large crystalline skylight. Directly beneath the skylight stands a pale grey marble workbench, on which rests an array of instruments and artifacts needed by an alchemist. You also see a silver gem lens assembly, a white chalcedony crucible, a large glass alembic and a golden oak door.
Obvious exits: none
>;e echo Room.current.wayto.inspect()
--- Lich: exec1 active.
[exec1: {"19835"=>"go door"}]
--- Lich: exec1 has exited.
>go door
[Cleric Guild, Alchemy Wing]
The long, grey stone hallway extends out of sight in either direction. Long ranks of torches, set on columns supporting the barrel-vaulted ceiling, flicker and smoke erratically. The only break in the plain-cut stone walls is a pair of doors, one on either side of the hallway. You also see a golden oak door and a dusky witchwood door.
Obvious exits: north, south
>go second door
[Cleric Guild, Alchemy Workshop]
In this amply sized workroom are mingled the chill of stone and the faint but acrid odors of sulfurous potions. The unadorned walls transition smoothly into a perfect dome, pierced by a large crystalline skylight. Directly beneath the skylight stands a black basalt workbench, on which rests an array of instruments and artifacts needed by an alchemist. You also see an invar gem lens assembly, a dark grey chalcedony crucible, a large glass alembic and a dusky witchwood door.
Obvious exits: none
>;e echo Room.current.wayto.inspect()
--- Lich: exec1 active.
[exec1: {"19835"=>"go door"}]
--- Lich: exec1 has exited.
>go door
[Cleric Guild, Alchemy Wing]
The long, grey stone hallway extends out of sight in either direction. Long ranks of torches, set on columns supporting the barrel-vaulted ceiling, flicker and smoke erratically. The only break in the plain-cut stone walls is a pair of doors, one on either side of the hallway. You also see a golden oak door and a dusky witchwood door.
Obvious exits: north, south
>n
[Cleric Guild, Alchemy Wing]
The hallway reaches its end here at a small shrine carved into the grey granite of the northern wall and lit by scores of small candles. A pair of doors on either side of the hallway are the only other relief in the stark stone of the hall, which extends out of sight to the south. You also see a vaalorn-bound ironwood door and an iron-trimmed fel door.
Obvious exits: south
>;e echo Room.current.wayto.inspect()
--- Lich: exec1 active.
[exec1: {"19832"=>"go fel door", "19833"=>"go ironwood door", "19834"=>"south"}]
--- Lich: exec1 has exited.
>go door
[Cleric Guild, Alchemy Workshop]
In this amply sized workroom are mingled the chill of stone and the faint but acrid odors of sulfurous potions. The unadorned walls transition smoothly into a perfect dome, pierced by a large crystalline skylight. Directly beneath the skylight stands a pale grey marble workbench, on which rests an array of instruments and artifacts needed by an alchemist. You also see a silver gem lens assembly, a white chalcedony crucible, a large glass alembic and a vaalorn-bound ironwood door.
Obvious exits: none
>;e echo Room.current.wayto.inspect()
--- Lich: exec1 active.
[exec1: {"19835"=>"go door"}]
--- Lich: exec1 has exited.
>go door
[Cleric Guild, Alchemy Wing]
The hallway reaches its end here at a small shrine carved into the grey granite of the northern wall and lit by scores of small candles. A pair of doors on either side of the hallway are the only other relief in the stark stone of the hall, which extends out of sight to the south. You also see a vaalorn-bound ironwood door and an iron-trimmed fel door.
Obvious exits: south
>s
[Cleric Guild, Alchemy Wing]
The long, grey stone hallway extends out of sight in either direction. Long ranks of torches, set on columns supporting the barrel-vaulted ceiling, flicker and smoke erratically. The only break in the plain-cut stone walls is a pair of doors, one on either side of the hallway. You also see a golden oak door and a dusky witchwood door.
Obvious exits: north, south
>go door
[Cleric Guild, Alchemy Workshop]
In this amply sized workroom are mingled the chill of stone and the faint but acrid odors of sulfurous potions. The unadorned walls transition smoothly into a perfect dome, pierced by a large crystalline skylight. Directly beneath the skylight stands a pale grey marble workbench, on which rests an array of instruments and artifacts needed by an alchemist. You also see a silver gem lens assembly, a white chalcedony crucible, a large glass alembic and a golden oak door.
Obvious exits: none
>;e echo Room.current.wayto.inspect()
--- Lich: exec1 active.
[exec1: {"19835"=>"go door"}]
--- Lich: exec1 has exited.
>go door
[Cleric Guild, Alchemy Wing]
The long, grey stone hallway extends out of sight in either direction. Long ranks of torches, set on columns supporting the barrel-vaulted ceiling, flicker and smoke erratically. The only break in the plain-cut stone walls is a pair of doors, one on either side of the hallway. You also see a golden oak door and a dusky witchwood door.
Obvious exits: north, south
>;mapmap fix
--- Lich: mapmap active.
[mapmap: Done. 31 rooms checked.]
* Atlawk just bit the dust!
Tillmen
07-29-2011, 03:38 PM
There's a couple options to deal with that, but neither of them are any good. It's probably best to let it just use two workshops for a while. When I get around to it I'll change the map database format again so it can tell the difference between rooms with unique loot in them.
wandererjs
07-29-2011, 04:37 PM
There's a couple options to deal with that, but neither of them are any good. It's probably best to let it just use two workshops for a while. When I get around to it I'll change the map database format again so it can tell the difference between rooms with unique loot in them.
I will probably just do that, as I don't plan to use the Vaalor cleric guild anyway :)
However, if I feel ambitious.. and I may have noticed this issue in another guild... couldn't I create the rooms (somehow get a unique ID without clobbering anything else) and do the waypoints manually?
Get a room ID, copy old room to new room (minus ID, of course), and manually add the waypoints? I haven't poked at the mapmap script to see how it pulls the new rooms, and since you've made it so easy to use... I expect you don't want people poking at it.
I would do that as a separate update, though.. I think I'm adding ~200 rooms so far, plus tagging, and I don't want to screw it up and start over. (I suppose I could manually rollback my map to a previous one and continue from there, though)
Thanks,
Kad
Tillmen
07-31-2011, 01:57 AM
Prime map database is uploaded.
Also added 1967 herb tags. Hooray!
wandererjs
07-31-2011, 12:51 PM
Tillmen,
Did you upload mine (map-1312071088) or someone else's?
The one that's being downloaded in prime is map-1312091587.dat, and seems to be about 5 megs too small.
Kadishmal
Tillmen
07-31-2011, 02:32 PM
I uploaded yours. The timestamp is different because I added tags to it. The file is the right size and works, but you must have had an error when downloading it. Just trying it again with ";updater update forcemap" may fix it. Since someone else had the same problem, I tweaked the updater script to lower a buffer size which seems to help with a bug with extracting large files on Windows.
wandererjs
07-31-2011, 06:58 PM
The buffer error is what I get when I try to forcemap; This system is on Windows (Windows7 64).
>;updater update forcemap
--- Lich: updater active.
[updater: downloading map database...]
[updater: writing map database to C:/Users/BillyBob/lich-4.2.7/lich/data/GSIV/map-1312153088.dat...]
[updater: failed to update map.dat. (buffer error)]
--- Lich: updater has exited.
Nattor
07-31-2011, 07:18 PM
same here.
Tillmen
07-31-2011, 11:42 PM
Should be fixed now.
wandererjs
08-01-2011, 12:18 AM
Yep.
Franknozly
08-03-2011, 11:10 PM
going to take ownership of the map file. Going to add a few workshops. IN PRIME
edit:
-added tags for all wizard guild workshops EXCEPT: rr and teras isle. The tag is 'wizard workshop'
-also added the entrance and workshop to narost for Illistim guild.
-added annoying miniscript for the illistim workshop to get into the workshop
-added to supernode to Zul logoth
-added tags for rooms that have tables under the tag 'table'
-added a public 'workshop' tag + miniscript in landing
here's the miniscript for future editing if it's broken or something:
Room['15571'].wayto['17721'] = StringProc.new('
elements = {
"air" => { "grey orb" => 505,
"blue orb" => 914,
"white orb" => 912
},
"fire" => { "blue flame" => 908,
"scarlet flame" => 519,
"white flame" => 906
},
"earth" => { "blue crystal" => 520,
"black crystal" => 510,
"violet crystal" => 909
}
}
direction = {
"air" => "north",
"fire" => "west",
"earth" => "south"
}
determine_element = proc {
result = nil
order = ["air", "fire", "earth"]
order.each{|element|
truth_table = elements[element].to_a.collect{|pillar, spellnum| Spell[spellnum].known? }
if truth_table[0] && truth_table[1] && truth_table[2]
result = element
break
end
}
return result
}
element = determine_element.call
if element.nil?
echo "You don\'t know enough spells to get into the workshop"
exit
end
2.times{move direction[element]}
elements[element].each{|pillar, spellnum|
if !Spell[spellnum].affordable?
echo "Waiting for mana"
wait_until{ Spell[spellnum].affordable? }
end
Spell[spellnum].cast(pillar)
}
')
before you ask me why didn't I add water to the elemental list, it's because they made the water pillars extremely retarded as the adjective for all 3 pillars is marble raindrop. Ontop of that retardedness, 2 of the pillars have the exact same name 'green marble raindrop' so there's no way to distinguish the difference between them and you just have to guess and get lucky or waste mana trying. Rather than making another huge section just to account for that exception I just left it out.
Done .. just waiting for Tillmen to upload.
KausticUSMC
08-04-2011, 01:52 AM
This is rather surprising, but it appears the map glitches quite a bit in the south-central and southeastern portions of none other than the Wehnimer's Landing map. Funny, that's the very last map I would have expected to be incomplete. I'd attempt to fix it but I'm a super-n00b and I'm afraid I'll royally screw something up. It starts glitching out down around the boutique, and around much of that entire area it either doesn't recognize the room you're in or in many places, it completely mistakes you for being in another room in another part of the landing.
EDIT: This is on the platinum server, btw.
kookiegod
08-04-2011, 07:52 PM
Heya Tillmen,
No one new to lich can get ;go2 to work
Heck, lots of errors even for me.
;go2 town--- Lich: go2 active.--- error: failed to load C:/Program Files/lich/data/GSIV/map-1312500653.dat: marshal data too short--- error: failed to load C:/Program Files/lich/data/GSIV/map-1312500537.dat: marshal data too short--- error: failed to load C:/Program Files/lich/data/GSIV/map-1312091587.dat: marshal data too short[go2: error: your current room was not found in the map database]--- Lich: go2 has exited.
Help for new folks!
Franknozly
08-04-2011, 11:18 PM
Heya Tillmen,
No one new to lich can get ;go2 to work
Heck, lots of errors even for me.
;go2 town--- Lich: go2 active.--- error: failed to load C:/Program Files/lich/data/GSIV/map-1312500653.dat: marshal data too short--- error: failed to load C:/Program Files/lich/data/GSIV/map-1312500537.dat: marshal data too short--- error: failed to load C:/Program Files/lich/data/GSIV/map-1312091587.dat: marshal data too short[go2: error: your current room was not found in the map database]--- Lich: go2 has exited.
Help for new folks!
marshal data too short = the file is incomplete.
Delete C:/Program Files/lich/data/GSIV/map-1312500653.dat and map-1312500537.dat.
Then ;repo download updater
;updater update forcemap
That should fix it
Endaar
08-07-2011, 12:46 PM
doing River's Rest cleric guild in prime now; thanks.
Franknozly
08-07-2011, 08:18 PM
You can't yet, tillmen hasn't uploaded the changes.
doing River's Rest cleric guild in prime now; thanks.
Tillmen
08-08-2011, 01:46 PM
Prime map database is uploaded.
Endaar
08-08-2011, 03:27 PM
Prime map database is uploaded.
OK so... I'll take it now then :-)
Endaar
08-09-2011, 12:16 AM
Completed my edits, waiting for Tillmen to upload.
Cheers...
-E.
Tillmen
08-09-2011, 01:53 AM
Prime map database is uploaded.
Franknozly
08-09-2011, 03:46 AM
small update, Tillmen could you add this small change
;e Room['2403'].wayto['2406']="go cottage"; Room['2403'].wayto.delete('2405')
the cottage now leads to 2406 instead of 2405. The npchealer instead of the npccleric.
Vindicate
08-09-2011, 08:31 PM
woodlands in Prime updated
Tillmen
08-16-2011, 01:18 AM
Prime map database is uploaded.
Also.. spam folders are fun.
Tillmen
08-16-2011, 03:33 PM
Prime map database is on hold while I try to figure out another workaround for Windows.
Tillmen
08-19-2011, 01:28 AM
Prime map database should be uploaded and working now.
Shattered map database is also uploaded. Added 3,619 tags.
Tillmen
08-19-2011, 09:09 PM
Prime map database is uploaded again.
Franknozly
08-20-2011, 01:56 AM
small update, Tillmen could you add this small change
;e Room['2403'].wayto['2406']="go cottage"; Room['2403'].wayto.delete('2405')
the cottage now leads to 2406 instead of 2405. The npchealer instead of the npccleric.
still has not been added yet.. <--
Tillmen
08-20-2011, 02:01 AM
the cottage now leads to 2406 instead of 2405. The npchealer instead of the npccleric.
still has not been added yet.. <--
Weird. I thought I added that.
sprklstr
08-20-2011, 09:08 PM
Tillmen,
In prime, could you add:
;e Room[2388].wayto['17749'] = StringProc.new("move 'go gate'")
go2 doesn't work into the Icemule Warrior Guild. Thanks!
masterdtwin
08-22-2011, 12:49 PM
Two quick questions...
1. When was the last time the Platinum DB was updated
2. Do we know if anyone is currently working on it (any regions)?
Tillmen
08-22-2011, 12:54 PM
Two quick questions...
1. When was the last time the Platinum DB was updated
2. Do we know if anyone is currently working on it (any regions)?
It was last updated April 15. No one is working on it.
wandererjs
08-22-2011, 07:40 PM
Tillmen,
Is there any datamining underway to learn foraging locations and feed that back to you in an automated way? Is there a script we can volunteer for to do so?
I noticed that whenever I forage, a tag is automatically added to the room, but that gets wiped on the next map download.
Tillmen
08-22-2011, 07:49 PM
Tillmen,
Is there any datamining underway to learn foraging locations and feed that back to you in an automated way? Is there a script we can volunteer for to do so?
I noticed that whenever I forage, a tag is automatically added to the room, but that gets wiped on the next map download.
Yes, and I already volunteered you for it. lnet is the script adding forage tags to your map database. It also uploads it to the server to be added to the public map database whenever that gets updated.
masterdtwin
08-23-2011, 10:05 AM
Okay - I got some feedback from the plat community on what needs changing and I will be working on the Platinum maps. I'll keep you guys posted.
wandererjs
08-23-2011, 01:13 PM
Yes, and I already volunteered you for it. lnet is the script adding forage tags to your map database. It also uploads it to the server to be added to the public map database whenever that gets updated.
Tillmen,
By volunteered... do you mean everyone is volunteered when they forage, or you flagged something for me? (GS4: Kadishmal).
You're more than welcome to flag me, but if if it was supposed to already be working, it seems to not be. It looks like there was a map update in the last 12 hours, and the golden asters I foraged are no longer tagged.
Thanks,
Kadishmal
Tillmen
08-23-2011, 01:18 PM
It should be working for everyone that has lnet running.
The last Prime map update was four days ago.
wandererjs
08-23-2011, 04:57 PM
It should be working for everyone that has lnet running.
The last Prime map update was four days ago.
Ahh.. I think I got it. duh.
It automatically updates my map (in memory), and uploads the tags to the server, but does not save my map, so when I log, I lose what I did recently.
an ;e Map.save() will save my tags for my use until the next push.
Kad
GodSatan
09-01-2011, 10:39 PM
nothing to see here, move along.
Franknozly
09-05-2011, 11:34 PM
I'm taking the database for some updates.
Franknozly
09-06-2011, 12:36 AM
sent, waiting for Tillmen to update.
Added bathhouse in prime, fixed talon street infront of bathhouse, fixed weapon shop workshop, fixed the npchealer and npccleric rooms in IMT, removed the stupid stringproc from TSNE to TSSE. <-- who the hell added that
Tillmen
09-07-2011, 04:15 PM
Here's some notes for editing the map database manually.
If you set a wayto, set a timeto. If you delete a wayto, delete a timeto.
Room numbers shouldn't change. If you use ";e echo Room.current_or_new" to add a room whose description has changed, it'll give you a new room number. Use ";mapmap combine <old room number> <new room number>" to add the new title/description/obvious exits to the old room number. It will also combine any wayto/timeto pointing to or from the new room number with the old room number. Or you can use ";mapmap fix" to do all this automatically.
Use ";mapmap check" when you're done to see what you broke. It will point out wayto's with no timeto, and timeto's with no wayto, and other random things.
Tillmen
09-07-2011, 04:43 PM
Prime map database is uploaded.
masterdtwin
09-07-2011, 07:24 PM
Okay... So while working on the Platinum maps I came to the conclusion that I actually messed up relatively bad, and need to figure out how to fix it.
In nelemar with all the swim directions, I ended up forcibly modifying them all into fput strings using swim (direction)... Specifically:
;e Room[12987].wayto['12664'] = StringProc.new("fput 'swim south'")
;e Room[12987].timeto['12664'] = 3.2
Now, after testing it I came to the conclusion that the RT calculator doesn't track fput strings for success... I'm not sure if this is an issue where I need to add in a success string into the fput, or I need to change it specifically to a 'swimdir'.
I'm going to be taking a look at the code for prime's version to see if maybe that will give me hints on what to do, but I am uncertain if it will help me.
So, if you know the answer it would be greatly appreciated.
Franknozly
09-11-2011, 08:22 AM
Here's some notes for editing the map database manually.
If you set a wayto, set a timeto. If you delete a wayto, delete a timeto.
Room numbers shouldn't change. If you use ";e echo Room.current_or_new" to add a room whose description has changed, it'll give you a new room number. Use ";mapmap combine <old room number> <new room number>" to add the new title/description/obvious exits to the old room number. It will also combine any wayto/timeto pointing to or from the new room number with the old room number. Or you can use ";mapmap fix" to do all this automatically.
Use ";mapmap check" when you're done to see what you broke. It will point out wayto's with no timeto, and timeto's with no wayto, and other random things.
so apparently I've been doing it wrong.
Franknozly
09-11-2011, 08:25 AM
oops anyways I'm taking prime map database for a quick update to fix all the crap the right way then.
Tillmen
09-11-2011, 11:18 AM
That post was just for future reference. I fixed everything I could find before I uploaded it.
Tillmen
09-11-2011, 11:30 AM
Okay... So while working on the Platinum maps I came to the conclusion that I actually messed up relatively bad, and need to figure out how to fix it.
In nelemar with all the swim directions, I ended up forcibly modifying them all into fput strings using swim (direction)... Specifically:
;e Room[12987].wayto['12664'] = StringProc.new("fput 'swim south'")
;e Room[12987].timeto['12664'] = 3.2
Now, after testing it I came to the conclusion that the RT calculator doesn't track fput strings for success... I'm not sure if this is an issue where I need to add in a success string into the fput, or I need to change it specifically to a 'swimdir'.
I'm going to be taking a look at the code for prime's version to see if maybe that will give me hints on what to do, but I am uncertain if it will help me.
So, if you know the answer it would be greatly appreciated.
The nelemar swim needs the complicated StringProcs from Prime or Shattered, possibly with the room numbers changed. I'm not sure why they wouldn't already have it though.
Franknozly
09-11-2011, 10:38 PM
removed out exit from miracle worker in mule, combined thrak inn trophy room (old + new)
uploaded to tillmen
Tillmen
09-11-2011, 11:09 PM
Prime map database is uploaded.
Franknozly
09-15-2011, 12:31 PM
taking the prime database for another spin, adding narost coordinates to it.
Franknozly
09-16-2011, 02:50 AM
oh and finished a while back :p Hooray, cavernhold is mapped in completion with narost coordinates AND many little scripts to get you in and out of every room EXCEPT the dungeon.. which .. you can only get out if the waterfall stops or someone opens the door from the outside.
Tillmen
09-16-2011, 01:01 PM
Prime map database is uploaded.
Tillmen
09-17-2011, 01:53 AM
I changed the map database format... again. Lich 4.3.0 will be required for the new format.
I added support for a StringProc in a timeto, even though I said I wasn't going to. There's also a unique_loot variable for rooms now, which might help deal with identical rooms.
Here's an example of a use for a StringProc in a timeto:
;e Room[1550].wayto['18928'] = 'go gate'
;e Room[1550].timeto['18928'] = StringProc.new("if Char.prof == 'Sorcerer'; 0.2; else; nil; end")
When go2 or any script tries to find a path, and it's considering going into this sorcerer guild, it will check to see if you're a sorcerer. If you are, it figures it takes 0.2 seconds to go through the gate. If you're not, it acts as if there's no way in the gate.
Instead of using nil to show you can't get in, you could just use a higher number. Like you could check if you're a citizen of Vaalor and switch the timeto for entering town to 0.2 or 15.0.
One thing to keep in mind is, the check is done while finding a path, not when you actually get to the room.
unique_loot is nil by default. If it needs to be used, it should be an array of object names that will always be in the room. The object names need to be an exact match to the GameObj name (;e echo GameObj.loot.collect { |obj| obj.name }). So, if there are two rooms that have the same title, description, and obvious paths/exits, but one has an ugly green arch in the "You also see" line and the other has an ugly orange arch, you could stand in the room with the ugly green arch and type:
;e Room.current.unique_loot = [ 'ugly green arch' ]
Now, when you stand in the room with the ugly orange arch, Room.current will not give you the same room number as the first room. You can type:
;e echo Room.current_or_new
to create a new room number for it.
wandererjs
09-17-2011, 12:12 PM
Yay! I get to map guilds again!
err.. uh.. dammit. I have to map guilds again. :(
Thanks either way, Tillmen :)
Kad
wandererjs
09-17-2011, 08:15 PM
Working on prime
wandererjs
09-17-2011, 10:56 PM
Disregard. Not working on prime.
trueoutsoldier
09-19-2011, 12:40 AM
Ok wanting to map out Ta'vaalor rogue guild in prime. I read the guide to doing it and im ready for a night from hell. Ill wait 20 minutes before doing anything to make sure its ok to go ahead.(its 12:40 am EST)
trueoutsoldier
09-19-2011, 01:03 AM
so nevermind on tonights try. I broke my pick and im not dealing with having someone else pick it for me. Ill do it tomorrow
trueoutsoldier
09-19-2011, 11:51 AM
Ok making a go at mapping the vaalor rogues guild in prime
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.