PDA

View Full Version : Lich MapDB Changelog



SashaFierce
08-05-2015, 05:22 AM
Would it be helpful to have a changelog here on the PC for MapDB changes?

I attempted to checkout the mapdb but it's currently saying it's checked out by someone. I'd like to make the following changes to Ta'Vaalor.

This will stow anything in the left hand, so you can go through the gate and avoid the 15 seconds of RT, and then get the item back out. (It uses the left hand so that bards do not lose mana for a sonic weapon, if you use both a weapon and shield, I don't have a solution for that at the moment, except for walking all the way around through the catacombs possibly.)


FROM: (Room 5906)
[exec1: {"3523"=>StringProc.new("fput 'unhide' if invisible?; move 'go gate'"), "10494"=>"southeast"}]
TO:
;e Room[5906].wayto['3523'] = StringProc.new("fput 'unhide' if invisible?; empty_left_hand; move 'go gate'; fill_left_hand")

FROM: (Room 5827)
[exec1: {"5828"=>"northeast", "3490"=>StringProc.new("fput 'unhide' if invisible?; move 'go gate'")}]
TO:
;e Room[5827].wayto['3490'] = StringProc.new("fput 'unhide' if invisible?; empty_left_hand; move 'go gate'; fill_left_hand")

FROM: (Room 3727)
[exec1: {"6104"=>"northwest", "3483"=>StringProc.new("fput 'unhide' if invisible?; move 'go gate'")}]
TO:
;e Room[3727].wayto['3483'] = StringProc.new("fput 'unhide' if invisible?; empty_left_hand; move 'go gate'; fill_left_hand")

FROM: (5907)
[exec1: {"3516"=>StringProc.new("fput 'unhide' if invisible?; move 'go gate'"), "5948"=>"southwest"}]
TO:
;e Room[5907].wayto['3516'] = StringProc.new("fput 'unhide' if invisible?; empty_left_hand; move 'go gate'; fill_left_hand")


-------------------------


I also attempted the following but it did not work: (To change the 10.0 to 0.2)


FROM: (Room 5906)
;e echo Room.current.timeto
[exec1: {"3523"=>StringProc.new("if (UserVars.mapdb_have_vaalor_papers == 'yes') or GameObj.inv.any? { |i| (i.name == 'eahnor wyvern badge') or i.contents.any? { |o| o.name == 'ivory vellum document' } }; 0.2; else; 10.0; end"), "10494"=>0.2}]

TO:
;e Room[5906].timeto[3523] = StringProc.new("if (UserVars.mapdb_have_vaalor_papers == 'yes') or GameObj.inv.any? { |i| (i.name == 'eahnor wyvern badge') or i.contents.any? { |o| o.name == 'ivory vellum document' } }; 0.2; else; 0.2; end")



>;go2 3523
--- Lich: go2 active.
[go2: error: failed to find a path between your current room (5906) and destination room (3523)]

Tillmen
08-05-2015, 12:47 PM
It should probably use empty_hand instead of empty_left_hand. If you're holding a sonic weapon and shield, both methods do the same thing (wear your shield), but if you have nothing in your right hand, empty_left_hand will still empty your left hand, even though it isn't needed. Also, if your left arm is missing and you can't put away the thing in your left hand, empty_left_hand will fail but empty_hand will still work.

I've heard people talking about the need for an empty hand before, but when I tested it, I couldn't find any difference between having your hands full or empty.

I don't understand the change to the timeto. If you want it to always be 0.2, just use ;e Room[5906].timeto[3523] = 0.2
There's not much point in saying if (lots of stuff); 0.2; else; 0.2; end

Of course, this change will probably annoy people who have no documents and will now have to wait an extra 10 seconds.