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

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » zMUD General Discussion
Tanatloc
Newbie


Joined: 10 May 2003
Posts: 9

PostPosted: 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.
    Reply with quote
    Vijilante
    SubAdmin


    Joined: 18 Nov 2001
    Posts: 5182

    PostPosted: 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.
    Reply with quote
    Tanatloc
    Newbie


    Joined: 10 May 2003
    Posts: 9

    PostPosted: 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.
    Reply with quote
    Kjata
    GURU


    Joined: 10 Oct 2000
    Posts: 4379
    Location: USA

    PostPosted: 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
    Reply with quote
    Display posts from previous:   
    Post new topic   Reply to topic     Home » Forums » zMUD General Discussion All times are GMT
    Page 1 of 1

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

    © 2009 Zugg Software. Hosted by Wolfpaw.net