Up to Main Index                           Up to Journal for October, 2018

                   JOURNAL FOR WEDNESDAY 31ST OCTOBER, 2018

SUBJECT: WolfMUD v0.0.11 released
   DATE: Wed 31 Oct 19:27:58 GMT 2018

The next release of WolfMUD, v0.0.11, is now available for download[1].

I Thought this was going to be quite a small release, mostly behind the scene
changes. As can been seen from the release notes below this was actually quite
a big release with a number of fixes.

This release also introduces one big new feature that players will notice.

Mobiles (non-player characters, creatures and critters) can now roam around
all over the place. In fact they can use any player or scripting command. This
has required a compatibility breaking change to the OnAction field, used in
zone files. See below for details. If you have created or modified any zone
files you may need to take some action to manually update them.

Time to get out the pumpkin again!


                                /  __    __  \
                                   \/ __ \/
                                   _  \/  _
                                 \  \/\/\/  /

                               HAPPY  HALLOWEEN

Main highlights from the release notes:


    The OnAction field in zone files previously used a list of strings.  When
    the Action fired one of the strings was picked at random and displayed. For
    example, the frog was defined using the old syntax as:

           Ref: M3
          Name: a small frog
         Alias: FROG
         Reset: AFTER→1m
       OnReset: A frog hops into view.
        Action: AFTER→10s JITTER→20s
      OnAction: The frog croaks a bit.
              : The little frog leaps high into the air.
              : The frog hops around a bit.

    With this update OnAction expects a list of commands. The new $ACT command
    can be used in place of the old strings list. However, the $ACT command
    will add the actors name to the beginning of the supplied text.
    Furthermore, if the actor's name starts with 'a ' it will be changed to
    'the ' - as this tends to produce better messages. For example, "$ACT
    croaks a bit." would display "The small frog croaks a bit". The definition
    for the frog using the new syntax, with additional movement commands so the
    frog will wander around, is:

           Ref: M3
          Name: a small frog
         Alias: FROG
         Reset: AFTER→1m
       OnReset: A frog hops into view.
        Action: AFTER→10s JITTER→20s
      OnAction: $ACT croaks a bit.
              : $ACT leaps high into the air.
              : $ACT hops around a bit.
              : N
              : S
              : E
              : W

    The supply zone files have been updated for the new OnAction syntax. User
    supplied or modified zone files will need to be manually updated. Until
    then the strings will be processed, but most likely result in trying to
    execute invalid player or scripting commands.


  - recordjar: new and improved encode/decode tests and benchmarks.
  - New $ACT scripting command for performing actions via Action/OnAction.
  - Barkeep added back into the tavern (in data/zones/zinara.wrj).
  - Flower girl added back outside the pawn shop (in data/zones/zinara.wrj).
  - Giant spider added back into the shed (in data/zones/zinara.wrj).
  - Street vendor added back at crossroads (in data/zones/zinara.wrj).
  - The frog and rabbit (in data/zones/zinara.wrj) now move around from
    location to location.
  - The fireplace in the tavern (in data/zones/zinara.wrj) now has a separate
    fire narrative.
  - Added a fast moving mouse to the tavern (in data/zones/zinara.wrj). This is
    useful for triggering any locking bug or data races quickly in the changed
    Action/OnAction processing.
  - Make sure all players have a  PLAYER alias. Existing players will have the
    alias added when next loaded.


  - recordjar: package documentation improved.
  - recordjar: encoded StringList and KeyedStringList fields now starts each
    item in the list on its own line.
  - Logging now uses UTC instead of local time zone.
  - recordjar: encode/decode DateTime uses UTC for result.
  - The attr.Description Marshal method now uses encode.Bytes.
  - recordjar: encode and decode now expect date/time values in RFC1123Z. Will
    fallback to RFC1123 to support date/time values in the old format.
  - recordjar: non-exported indexSeparator returns the separator starting index
    and the length of the separator rune found. Previously  returned a bool.
  - recordjar: encode/decode KayedString function dropped.
  - The OnAction attribute now takes a list of commands instead of a list of
    strings to display.


  - recordjar: Write method rewritten to clean up code. Fixes issue with
    trailing white space after a field name with no values. Field name are now
    written with consistent ordering.
  - recordjar: encode/decode String trims leading/trailing white space.
  - recordjar: encode/decode Keyword removes ALL white space.
  - recordjar: encode/decode KeywordList orders the list items consistently.
    Any list entries with empty or duplicate field names are dropped.
  - recordjar: encode.PairList removes ALL white space from field names and
    values. List is sorted consistently.
  - recordjar: encode.StringList trims leading/trailing white space from
    values.  List is sorted consistently.
  - recordjar: encode.KeyedStringList removes ALL white space from keys and
    trims leading/trailing white space from values.  List is sorted
  - recordjar: encode/decode Duration rounds seconds (half up).
  - recordjar: encode.KeyedString omit delimiter after field name if no value.
  - recordjar: encode/decode Bytes trims leading/trailing white space up to the
    first/last line feed found.
  - recordjar: decode.Duration strips ALL white space.
  - recordjar: encode/decode PairList will ignore values where no field name
  - recordjar: decode.DateTime trims leading/trailing white space.
  - event: when event logging is turned on only log events actually cancelled.
  - cmd: Uppercase first letter of speakers name for SAY command.
  - cmd: Uppercase first letter of item examined for EXAMINE command.
  - Nil pointer panic fixed in attr.Alias.SetParent method.
  - Can now use 'Veto' or 'Vetoes' in zone files. Updated provided zone files
    where only one veto defined.
  - Don't stop processing when using the SAY command and there is nobody else
    at the location. Otherwise players in nearby locations will not hear
    someone talking to themself.


  [1] Download area: ../../../downloads/

  Up to Main Index                           Up to Journal for October, 2018