|
Andromeda Beginner
Joined: 29 Aug 2003 Posts: 25 Location: USA
|
Posted: Tue Oct 28, 2003 1:45 am
onwalkend problems |
I need to cause an action when a speed walk is complete. I am trying to see how to use %inwalk or alias onwalkend to detect this condition.
In the game I play slow walking is the only option. more than two lines type ahead is rejected.
When I use %lastdir() or %inwalk either for a room script or the onroomenter alias I get blank.
When I use %nextdir I get the direction used to enter the room unless I give the #pause command first.
Finally the onwalkend alias works only if there are no #pause commands in the course of executing the path. Otherwise it doesn't fire.
Any suggestions what the problem may be and what technique might detect the end of a speedwalk? |
|
|
|
Vijilante SubAdmin
Joined: 18 Nov 2001 Posts: 5182
|
Posted: Wed Oct 29, 2003 2:35 am |
Speedwalking doesn't seem to be the issue, so my speed walking system that shifts the execution of direction commands down to the prompt line would be useless. What exactly do you want to do?
%lastdir is only populated when a direction is awaiting #OK, when in map mode all commands are captured.
%inwalk also is set to 1 only when a direction is awaiting #OK, I haven't checked but might also be set 1 when in map mode, and the mapper is awaiting data that looks to be a room.
%nextdir simply return the next direction on the path. If the movement hasn't been #OKed then it stands to reason it is still the next direction on the path, so you are probably right there, I never tested this either.
onwalkend is activated when the walk ends, whether this occurs when a #STEP is issued and no further movements are available is yet again untested. It seems logical that this is where Zugg would put it, so #PAUSE would not cause a #STEP to be issued, which would exhibit exactly what you state.
All that said it again comes down to what do you really want to do? With zMud there are ussually at least 5 different ways to do anything, in some rare instances even Zugg doesn't know that a way is there. This is the benefit of user suggestions being implemented, it provides many subltely different methods to achieve the same end. Perhaps I can suggest a slightly different method then the one you thought of. |
|
|
|
Andromeda Beginner
Joined: 29 Aug 2003 Posts: 25 Location: USA
|
Posted: Thu Oct 30, 2003 12:03 am |
Thanks for the reply. The specific problem I am addressing is training swimming.
I want to execute a path and when the path is complete re-execute the path until a condition is reached (mind locked in swiming).
The key problem I am having is detecting when the path execution is complete. There are I am sure a number of ways to address this. It would be nice if the onwalkend alias would fire so that my command (alias) that initiated the process could just define it appropriately. The problem is that it doesn't fire if #pause was used in the course of the path.
I tested this by executing a simple path after which the the onwalkend alias did fire. Then I added the following the the room script for an intermediate room:
#pause
#step
This time it did not fire.
Another approach might be to test %nextdir as blank. This might work if it is tested after a pause command. As it happens there is a delay on entering a room swimming called roundtime. Until this roundtime is complete further movement is not allowed. I have a gsl trigger to detect room movement. If round time is in progress it pauses the path and then uses an alarm to issue step after the time remaining has elapsed. So this approach might work.
Thanks for the insights on how %lastdir() and %inwalk are used. |
|
|
|
|
|