|
Tanatloc Newbie
Joined: 10 May 2003 Posts: 9
|
Posted: Sat May 10, 2003 1:00 am
Fleescript - zMapper plugin not installed |
I'm posting here some Charbal's scripts that were meant to reset the position on the map after a flee on wotmud.org .
The first script is:
quote:
For 6.40+:
#CLASS {FleeScript}
#VARIABLE OldFilter {}
#VARIABLE OldMode {}
#TRIGGER {^You flee head over heels.$} {}
#CONDITION {^(*)$} {}
#CONDITION {^(*)$} {#VARIABLE OldFilter %mapfilter( );#VARIABLE OldMode %roommode( );#NOOP %mapfilter( {Name = '%replace( "%t1", "'", "''")' and [Desc] LIKE '%replace( "%t2", "'", "''")%'});#NOOP %roommode( 1);#IF (%numrooms( ) >= 1) {#SAY Room found on map;#TELEPORT %mapvnum( 1)} {#SAY Room not found on map.};#NOOP %mapfilter( @OldFilter);#NOOP %roommode( @OldMode)}
#CLASS 0
- Charbal
It also worked well with v6.61 but it had the major drawback that #TELE erases the room queue when we want to preserve it for spamming to safety during flee lag.
quote:
So we use a bit of low-level COM manipulation...
#CLASS {FleeScript}
#VARIABLE Room %null
#VARIABLE OldFilter {}
#VARIABLE OldMode {}
#TRIGGER {^You flee head over heels.$} {}
#CONDITION {^(*)$} {}
#CONDITION {^(*)$} {#VARIABLE OldFilter %mapfilter( );#VARIABLE OldMode %roommode( );#NOOP %mapfilter( {Name = '%replace( "%t1", "'", "''")' and [Desc] LIKE '%replace( "%t2", "'", "''")%'});#NOOP %roommode( 1);#IF (%numrooms( ) >= 1) {#SAY Room found on map;#VARIABLE Map %session.Map;#NOOP %comset(Map, CurRoomID, %mapvnum( 1))} {#SAY Room not found on map.};#NOOP %mapfilter( @OldFilter);#NOOP %roommode( @OldMode)}
#CLASS 0
- Charbal
That second script sends the error message below in all situations that I could test:
zMapper Plugin not installed - Error parsing: #SAY Room found on map;#NOOP %comset(%session.Map, CurRoomID, %mapvnum( 1))
Message: Access violation at address 006EF873 in module 'Zmud.exe'. Read of address 00000000
I've tried to fix the script but I'm afraid my knowledge in COM programming is limited, although I've gone through all the FAQ and help I could found on zuggsoft.com .
It seemed to me that the problem occurred when parsing the "#VARIABLE Map %session.Map" because the script was calling a session from the zMapper plugin that was not installed on my comp.
So I installed the latest unregistered version of zMAPPER, but I could not find out how to declare it as a plugin in zMUD.
I've also remarked that Charbal declared a new variable ("Room") in the second script that did not exist in the first one but he did not use it...
My questions now :
Will the problem be resolved by declaring zMapper as a zMud plugin?
Does zMAPPER have to be registered to work as a plugin?
Is it possible to rewrite the script so that it does not ask for a zMAPPER COM but for the zMUD Map COM included in zMUD?
Recently, Charbal has had a laptop crash and he's not as active as before on the wotmud IT forums...
So I thought maybe I could post here and have some kind of answer as many of us are waiting for this script to be fixed.
Thanks for your help.
|
|
|
|
Vijilante SubAdmin
Joined: 18 Nov 2001 Posts: 5182
|
Posted: Sat May 10, 2003 4:31 am |
It would appear that the line in question does the same thing as the #TELEPORT command. So you can replace that with "#TELEPORT 1". This change will effectively eliminate the need for zMapper, as the rest of the functions are standard to zMud.
|
|
|
|
Tanatloc Newbie
Joined: 10 May 2003 Posts: 9
|
Posted: Sat May 10, 2003 8:08 pm |
Yes, the first script is using the #TELEPORT command and I said it was working correctly without zMAPPER.
But it does not work as intended though, because the #TELEPORT command erases the room queue (I don't know why by the way) in the mapper...
Let me rephrase: what I would like is to be able, during combat, to type, for instance "flee, n, e, e, e, e, n" and have the mapper find the room where I ended after the flee and parse the spams I issued to be able to get to safety. |
|
|
|
Kjata GURU
Joined: 10 Oct 2000 Posts: 4379 Location: USA
|
Posted: Sat May 10, 2003 11:48 pm |
If you flee in a random direction, how do you know that the room you fled into has a north exit and furthermore that you can continue to do another four easts and one north?
Anyway, what you want to do would probably be done best by having it flee, putting the rest of the commands into a variable, and having the script execute these commands after it has found the room you fled into.
Kjata |
|
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|