Kingdoms History File - from then to now!

Ŀ
                         KINGDOMS VERSION 2.18                             
                   Public Release - October 15th, 1996                     


Following are the changes incorporated in Kingdoms version 2.18, the
previous public release being Kingdoms 2.17 Sysops - Please see readme.!!!
for installation information for this release.

Kingdoms 2.18 includes a full documentation update in the distribution
archive, covering all features in the game up to and including this release.

Changes affecting Players


* In the Realms>Food Production>Distribute Food (to Remote) Option :
  If you chose not to send food to the default realm and pressed cr without
  selecting an alternative realm, the game would terminate (hang) with a
  'bad record number' error. Fixed. If this happens, the original value is
  now restored.

* A D>eliver Note option has been added to the Courier Guild. This allows
  the player to send an online (immediate) message to another player who
  is in the game at the same time. If both (or more) players are in this
  option at the same time, they effectively enter a basic 'chat' facility.
  While in D>eliver note, a <cr> on a blank line will drop the player back
  to the Courier Guild menu. The '~' (tilde) character is special while
  D>elivering Notes. If used as the first character on the line, the second
  character will allow the player to perform special functions including :

  ~w - display who is in the game as well as you.
  ~c - choose another player to chat with.

  Points to note regarding this facility :

  - It IS a little rudimentary. This is a game, NOT a chat facility! :)
  - You can only chat to one other player at any one time.
  - Up to 99 simultaneous one-to-one conversations are supported.

* A 'B>rowse Agents' option is now available in the Realms>Agent menu. This
  will display any Agents you currently have in the entire Kingdoms network.
  In addition to location and level, basic stats are provided when Browsing
  your Agents. You no longer have to write down and/or remember where in the
  Realms you created those Agents :). This information is forwarded to you
  from any and all Agents each time the remote realm performs it's maintenance
  routines, which should be once each 24 hr period. You do not have to
  Request an Agent status to make this happen - it occurs automatically to
  ensure the latest core statistics are always available to you from your
  Agents. The Request Status option will still provide the normal extended
  summary of your Agent(s) through the Courier Guild messages.

* As has always been the case, an Agent cannot invade another player on
  the same realm as the Agent resides. Such orders were not being properly
  checked however and in some instances, the orders were being sent. When
  the orders reached the remote realm they were being detected (properly)
  as invalid however and the invading forces were lost. This caused some
  confusion, not to mention annoyance at players forces 'disappearing' after
  being sent, for the originating player. Kingdoms now checks all these
  conditions properly at the point of issuing the orders and will not permit
  the player/invasion to proceed.

* An error in the scoring routines was resulting in some players (who may
  actually be quite strong) having negative scores. Fixed.

Changes affecting Sysops


* Katnet (Zone 16) added to the domain list recognised by Kingdoms

* 2.17 contained a bug that systems caused it to crash on systems using
  COM3 or COM4 or non standard IRQ's. I am not acutally sure which of these
  caused the error as I was unable to reproduce it, but the problem is
  fixed :-). The crash occured when a remote player entered the game, though
  Kingdoms would work fine on a local logon.

* Fixed a bug in outbound processing that was disallowing recons requests to
  pass through a hub to a downlink. The result was that recons were not
  always being returned for certain realms, depending on the recon response
  dates for intervening realms. Fixed.

* Improved the intelligence of the Inbound Net manager when encountering
  an existing player when another player tries to remotely create a castle
  on the Realm. KNetIn now makes the distinction between a local player
  and an Agent when returning the "Can't create a Castle on this Realm"
  message and will inform the player who tried to build the castle of
  which type (Local or Agent) was found.

* Kingdoms uses the Julian format (ccyyddd) in all calcualtions regarding
  dates and displays the Julian date in several places during processing for
  informational purposes. Several Sysops requested an easy way to know what
  the current Julian date was and this has been provided. The system date
  and Julian day are now displayed at the bottom of the Manager screen at
  all times.

* Hold mail was not working properly. Ie, if you had a system marked with
  a mail type of 'Hold' in the Manager, the .MSG files did not have the Hold
  attribute properly set. Fixed.

Changes affecting Coordinators


* Realms which had been 'deleted' were still showing up in the Net
  Statistics option in the Manager, thus allowing recon requests to still
  be sent to those Realms. Fixed.

End of Update Information - Kingdoms v2.18.


Ŀ
 KINGDOMS VERSION 2.17 - Public Release September 1st, 1996                


Changes affecting Players


* Transferring gold in the Vault would crash or send the gold to the
  wrong player on occasion. Fixed.

* The <D>istribute Food (to Remote Realms) option in the Food Production
  menu has been considerably improved :

   - When you choose to this option, figures are now displayed along
     with the <D>istribute menu option showing your current settings, ie,
     how much you're sending and where you're sending it to. This makes
     it a lot easier to use as the player no longer has to do a
     <S>ummary first and remember these settings before distributing
     food.

   - Some of the text in this area has been tidied up and the menu
     sequence changed so the player isn't thrown right back to the Food
     Production menu on completion of an action. This was a little
     confusing for some people.

   - When you choose to <D>istribute food from this menu, Kingdoms used
     to assume you wanted to send it to your default realm. The game now
     asks if you want to send it to the default by pressing 'y' or <cr>.
     If you don't, you may now select from a list of Realms rather than
     having to go back and change your default just to get food distributed.

   - The number of Land Titles held by the player are now displayed along-
     side the numer of rations on the Food Production menu. Saves
     referring to the Summary for this basic information.

   - When selecting an Amount of food to send in this menu, the current
     amount is now provided as the default value. Pressing <cr> simply
     keeps that value now. Prior to this release, no default was provided
     and the player had to retype the current amount if no change was
     desired. <cr> used to set the amount to zero, which was quite annoying.

* Previously, if you left a player you had killed a message, there was
  no pause after saving or quitting the message, so the player recieved
  no confirmation of the action taken. A pause is now in place to
  confirm a message save or cancel after doing so.

* Prior to this release, Kingdoms wasn't very smart when encountering
  missing files for display such as news, menus and recon scoreboards.
  If an expected file did not exist, Kingdoms just crashed and left the
  player hanging. With v2.17, it now verifies the existence of any file
  it tries to display, informing the player with a descriptive
  "'Filename.ext' not found, please inform the Sysop.' message and
  allowing the player to continue without trying to display the file and
  crashing.

* A bug a lot of people got to enjoy for a while. If a player used the
  Vault to transfer gold to another player and entered a negative
  amount, the player would actually be given that amount of gold as a
  positive amount and the recipient would recieve a debt of that amount.
  Obviously, this is an undesirable outcome for the recipient as an
  amount of 99 million is the transfer limit. :-) Fixed.

* At the request of numerous players, the <S>tastics option has been
  removed from the fight options and a statistics line is now displayed
  along with the options and fight text. This applies both in the
  Proving Grounds and in the Colloseum.

* I have removed low intensity blue from several display points and made
  them high intensity instead. Some people with old and/or dim monitors
  couldn't see the text displayed in that color without getting about
  2cm away from the screen :-)

                            * Please note *

This version was also to include the facility for players to display the
     realms on which their agents reside for ease of reference and
  communication with those agents. Due to the problem described below
regarding outbound processing however, I wanted to get this release out
asap. As the agent realm display is going to take a bit of work, I have
put off that facility for the next release, 2.18. Apologies to those who
                    were hanging out for it in 2.17!


Changes affecting Sysops


* The information created by Outbound processing (KNetOut) was very verbose.
  Particularly for Realms which exchanged mail with a lot of other systems,
  this meant very long KNET.LOG files. You might, for example, be used to
  seeing something like ...

     Transit Destination 1:23/5 - Fractured Files.
     Updating existing outbound F:\DOORS\KING\OUT\KN001005.01Y
     Transit Destination 1:23/6 - Astro's World.
     Updating existing outbound F:\DOORS\KING\OUT\KN001006.01M

     ... in your KNET.LOG, each set of two lines repeated over and over if
  there were many transits going out. By default, KNetOut now produces
  only summary information in KNET.LOG. It will list, for each outbound
  file, the number of transits tossed to it, rather than chew up two log
  lines for every transit. A long KNetOut run might therefore produce ...

      KNETOUT v2.17  LogDate 08-21-1996 at 01:06:06. (Parms - None)
        Redirected 0 messages from the local message base.
        Outbounds Updated this run :
           F:\DOORS\KING\OUT\KN001007.01M : 4 time(s).
           F:\DOORS\KING\OUT\KN001004.01C : 2 time(s).
           F:\DOORS\KING\OUT\KN001006.01M : 35 time(s).
           F:\DOORS\KING\OUT\KN001005.01Y : 79 time(s).
           F:\DOORS\KING\OUT\KN001003.01B : 0 time(s).
           F:\DOORS\KING\OUT\KN001008.01J : 2 time(s).
           F:\DOORS\KING\OUT\KN001002.01G : 2 time(s).
     ;
      KNETOUT ended normally - 08-21-1996 at 01:06:19.

     ... that, rather than the 252 lines it would generate in previous
  releases. This also has the advantage of drastically speeding up outbound
  processing overall as all this log information is no longer written. Please
  note also the (Parms - None) at the end of the log start line. Parameters
  used when running KNetOut are now included in the log for informational
  purposes. If, for example, KNetOut was running in a Squish/Blinkey
  environment, that line would look like ...

      KNETOUT v2.17  LogDate 08-21-1996 at 01:06:06. (Parms - /SB)

  The long log format can still be produced through use of the /F parameter
  when running KNetOut. (F stands for Full Log). This format is still
  available for the Sysop to see in detail what is going where, to see
  what redirections are taking place for informational purposes or to
  assist if required for network problem resolution.

* /F has been added to the help screen for KNetOut and a prompt added
  when KNetOut exits as a reminder that a help screen is available.

* Improved the recon salvaging process. It is now quite unlikely that
  cannot corrent a recon file that has become corrupt during transfer
  for some reason.

* When sorting the Realm Scoreboards a spinning line is now used to
  indicate activity rather than progressive dots. This just saves some
  screen space so more fits on the page rather than scrolling off.

* Found a major problem with outbound processing thanks Peter Connerty
  of MAX in SA, Australia. It was related to processing outbounds on a
  system with over 10 outbound files waiting in the outbound directory
  when it (KNetOut) ran. This casued quite an interesting display of
  ANSI graphic characters to appear on the console which would scroll
  off to oblivion for a while then hang the task or, if you tried it
  another time or two (probably to enjoy the effect :-)), hang the
  entire machine and require a hardware reset to recover from. I believe
  this is also the likely reason the Battlenet League (69) was
  experiencing the occasional corrupt recon to float through the system
  and cause chaos, though I have been unable to duplicate that error.
  Fixed. Kingdoms now supports up to and including 200 outbound
  nodes/files defined/existing on any realm(s) in a network.

* Thanks to Stewart Gay on the Warehouse BBS in San Antonio, Tx, a bug
  regarding the QMail tosser in a Blinkey environment has been fixed.
  QMail is quite careful when examining what mail it's going to toss and
  was identifying Kingdoms .MSG files as 'grunged', or invalid.
  Investigation revealed the date format in Kingdoms .MSG files was
  indeed not according to expected standard, though the vast majority of
  mail systems (eg, FrontDoor) didn't seem to mind the variation. Fixed
  & tested fine under QMail now.

Changes affecting Coordinators
  

* Fixed a nasty bug in the bowels of redirection processing. Thanks Rob
  Wilson on Restless BBS in NSW, Australia, for the files that let me
  track THIS one down! It occured if a coordinator deleted a node &
  reactivated it in the same Manager session and that node was greater
  than the 10th relative record in the Index file. Yeah - it took me a
  while to work this one out!. If all these conditions were satisfied,
  knetout out would do some really weird things. Garbage would be
  written to a large proportion of the KNET.LOG file and would
  occasionally scroll across the screen as well. Fixed.

End of Update Information - Kingdoms v2.17.

Ŀ
 KINGDOMS VERSION 2.16 - Public Release August 3rd, 1996.               


Changes affecting Players


- Indexed Player Documentation is now available online from the <M>isc
  menu.

- The dates displayed in Kingdoms itself (ie, in the game, not those in
  the various utilities which support Kingdoms) were being shown as one
  day in the future - eg, the 'Soldiers last fed' date. Fixed.

- In the Miscellaneous menu, there is now an option for <S>upport and
  contact information. Amongst other things, this will give you the
  address of the Kingdoms support page on the Internet!

- If a player WIMPed out while raiding and encountering a monster in
  a Castle room, both that player and the player being raided would
  effectively be locked out of the game as the 'In Combat' flag was
  not being reset in this particular situation. Fixed.

- If a player has exceeded WIMPouts, they are (and were) no longer
  permitted to Prove in the game. A message wasn't being provided
  however - the player was just being put back to the main menu which
  was a little confusing. An appropriate message is now issued if this
  happens.

- When soldiers attacked from a remote realm, the strength of the force
  was not given, only the originator of the attack in a message from the
  Castle defensives. The number of enemy soldiers are now also included
  in the message information.

- In some of the fight options, ANSI bleeds were still evident if the
  person being attacked had background colors set in their handle. I
  _think_ I have them all fixed now!

- In the same way as monster levels are retained between fights in the
  colloseum, Player names are now retained between Proves and Raids in
  the game. As always, typing any character will erase the old name to
  make way for a new, so there is no need for the player to backspace
  over the name provided if he/she wants to attack/select someone else.

- If a player on one realm happened to have the same name as a player
  on another realm, it was possible for either player to use the Agent
  options to request the complete status of the other player. It would
  work for both. Knetin now checks castle type (local or agent) after
  a user name is verified against a remote request to ensure an agent
  is being reported, not a local user.

- Gold earned when defeating monsters has doubled for all monsters.

- Special attack damage by high level monsters has doubled for all
  monsters.

- UNDERCOVER (Covert) OPERATIONS are now provided for Agents.

  This is a really great new feature for Players! In the Agent menu,
  there is now the option for 'Undercover Operations'. Selecting this
  option will allow you to send an undercover operative to spy on any
  other player on the Agent's Realm. Several operatives can be chosen
  from the Thieves Guild, the cost of each being a good indication of
  their chance of success. In addition to the skill of the operative
  hired, the following aspects of the player who is the target for the
  operation will affect the operatives chances for success :

     1. The number and strength of Monsters defending castle rooms. It
        is quite possible for an Operative to be eaten!
     2. The number of Soldiers owned by the target player. The more
        soldiers there are, the harder it will be to get into the Castle
        undetected.
     3. The level of the target player him or her self. A high level
        player is assumed to be that much more 'on the ball!'.
     4. When it comes down to it, some luck is required to make it as
        well :-).

  Should an operative be caught, he will be eaten or hung, depending on
  who or what it is that captures him! In this case, the target player
  WILL be informed by Castle Security of the attempted infiltration. If
  an operative is successful however, it means he has escaped completely
  undetected and no indication will be available to the target to show
  that the operative has 'visited' at all. The report returned by a
  successful operative is a complete listing of statistics of the target
  player showing strengths, weaknesses, holdings etc. It is the same
  data that is provided by an Agent Query Status report, thus it is
  quite comprehensive!

  This facility adds quite a dimension to the game, particularly to the
  use and value of Agents. If a player plans to attack another Realm, it
  is advisable first (though not, of course, necessary!) to have an
  Agent on that Realm to supply Intelligence reports on the other
  players there. As an example, it would be exceedingly handy to know
  the troop deployment (and strengths) of soldiers on an enemy Kingdom
  before deciding where best to attack that person, would it not? :-)

- Page pausing is now honored properly in Recon player lists/displays.

- Until now, selecting a local player from a list was done by string
  and/or name, whereas selecting a player from a remote (recon) list was
  done by number. This was confusing and worse, annoying, as players had
  to remember where they were to respond properly to the prompt
  provided. ALL selections are now based on a name, or a string within a
  name, for both local and remote player selection.

- Player lists, both local and realm based, no longer show the player
  numbers. Numbers are not used anymore as all searches are now standardised
  on string based selection making the number display redundant (and
  confusing for some!).

- If you selected the Coordinator Realm as your default Kingdom for InterBBS
  options, your default would be ignored and you'd have to keep selecting it
  when you choose Realm options in future. Fixed.

- Score calculation ratified. Land, Food, Soldier weapons and armor are
  now taken into the calculation. Personal weapons and armor have more
  weight when calculating scores and gold in hand/vault less as it is a
  far more 'risky', and thus less valuable, asset.

- In a player selection list, the name of the player online (ie, the one
  viewing the list) is in low intensity to differentiate it from the other
  names. This makes it easier to pick yourself out of a list.


Changes affecting Sysops


- Pending nodes weren't being reported correctly in verify information.
  Fixed.

- Compression is now supported on and and all packets to outbound nodes.
  To set this for any outbound, simply enter the Manager, Network,
  Preferences option (which is new in this release) and select the
  archiver you wish to use for any outbound nodes. To work, the archiver
  you select must be available to Kingdoms in the current directory or
  somewhere on the path. ZIP, ARJ and RAR compression formats are
  supported. It is NOT necessary for two nodes who are communicating
  with compressed packets to specify the same archiver. During INBOUND
  processing, Kingdoms scans and will detect the compression type being
  used in a Kingdoms game packet directly from the archived file. KNetin
  will decompress the archive accordingly then check it to see if it is
  to be processed. If not (eg, it is an inbound but for another netid)
  it will simply restore the original archive and continue on to the
  next, assuming it finds another inbound. During OUTBOUND processing,
  Kingdoms identifies the desination for each outbound file and will
  pack it according to the Manager specified compression type.

  Compression type can also be changed on the fly, regardless of whether
  there is a compressed outbound file already waiting to be sent in the
  outbound directory. In the same fashion as knetin, knetout will
  detect the compression type in existing outbound files and use that
  type when decompressing them for addition of data in a later run of
  knetout. Should the type change midstream, Kingdoms will therefore
  make the change on the fly without a difficulty.

  Systems using 2.16 can still (obviously!) communicate with systems
  running a prior release but if you are doing so, you shoud NOT turn
  compression on for a system which is running a prior release. A
  system running earlier than release 2.16 will simply not understand
  the compressed file and will not process the data in it unless the
  Sysop manually decompresses the inbound files.


- Created the 'Preferences' option under 'Network' in the Manager. This
  brings together all the options available for outbound nodes into one
  screen making the whole process of choosing how you want to communicate
  with outbound nodes a lot clearer. When on this panel, the mail type,
  crash status and compression formats for each outbound can be specified
  using the appropriate function keys to toggle through the options. As
  crashmail is now selectable on this screen for any outbound, the toggle
  has been removed from the 'Your Routing' panel.

- Crash status set on nodes sometimes lost any values entered by the Sysop
  previously. Fixed. Moved to Preferences panel.

- Some problems have been experienced in the Battlenet League (netid 69)
  with a bad recon record getting into the system and floating around.
  When maintenance processed it to generate the Realm Scoreboards, it
  crashed or hung on some systems. Maintenance now verifies the contents
  of Recon files being processed and, if it finds problems or errors in
  them, will attempt to salvage the other (correct) data in them. If it
  cannot (though it should ... I have tested it using a few examples of
  a bad recon from the Bnet League and it completely resolves the error
  and salvages the valid recon data perfectly in each instance), it will
  simply mark the realm as having 'No Players' and request another recon
  update in due course.

- The routine that generates the Realm Scoreboards has been completely
  re-written. They are now much more efficient and will sort the
  scoreboard in about 1/2 the time. Progressive dots are now provided
  during the processing to ensure the Sysop that 'something' is
  happening rather than have the machine just 'sit' there while sorting
  takes place. Several hundred players can still take a short while to
  sort on disk.

- The format of .MSG files created as file attaches has been changed.
  Prior to this release, .MSG files were a standard 250 chars. This files
  are now created as variable length depending on the information in them.
  Before, extra characters were being set to nulls which I believe was
  causing the pmail processor on some sites to have problems with them.
  In this file, dates are now set without the century and a full 6 digit
  time field is supplied, whereas only hh:mm was recorded before. I've
  made these changes after examining the .MSG files created by three
  other InterBBS game systems and comparing the differences between
  those and the ones created by Kingdoms. Kingdoms now follows the other
  formats which seem to be standard amongst themselves, even though I
  created the Kingdoms .MSG formats directly from the Fidonet Technical
  Standards Committee definition I obtained. Sigh. I am hoping the
  date/time being supplied in the new format will fix the date problems
  being experienced on some systems as I have been completely unable to
  duplicate the problem even though I've gone to the extent of
  configuring complete machines now (Yeah - Win 95 & all (sigh :-)) to
  have a test environment as close as possible to a site where the
  problem is reported to be happening. If someone could let me know if
  the problem of the date being greater than it should be is solved (or
  not), I'd greatly appreciate it!

- The Squish/Blinkey code to mark a kill/sent message wasn't being set
  properly when the /SB parm was used. Fixed.

- A new parameter is available in the Manager, Other options : Days
  to keep log data. If set to a value above zero, the default being 10,
  Maintenance will automatically remove data from the logs which is
  older than that number of days, keeping the logs a manageable size. A
  zero value will never trim the log files. The logs affected include
  KNET.LOG, KMNT.LOG, KERR.LOG and KDOM.LOG. The Coordinator log,
  KCOORD.LOG is never trimmed automatically.

- Considerable (and unnecessary) network traffic was being generated due
  to multiple recon requests arriving at any given node. Particularly
  for those who call STD or International to exchange Kingdoms data,
  this was very undesirable. I have done a lot of work to see this fixed!
  Both Kingdoms Inbound and Outbound processing now maintain a complete
  record of past Recon requests and responses and will refer to that
  data when processing inbound or outbound Recon requests from this
  point on.

  Should Knetout come across a recon request for forwarding to a realm
  who has already had a recon sent on the same day, Knetout will ignore
  that (and all subsequent) request until the date changes. This applies
  whether or not the previous request was made in the same or a
  different processing run on Knetout - only the day is pertinent.

  Should Knetin recieve a request from a realm for a recon it has
  already responded to on the same day, it will not send another
  response on that day, regardless of how many requests it recieves.
  This will also solve recon request 'build-ups' if a link goes down
  somewhere for a few days and requests pile up. Only one will be
  acknowledged by Kingdoms.

  As a side-benefit, removing duplicate recons from the network should
  also get rid of the annoying repeats in the news files for players
  telling them that 'A new recon has arrived from RealmName'.

  The 'Zero Net Times' option in the Manager will reset these data
  should you wish to have all recons honored in the next processing runs
  of Knetin and Knetout.

- To support many of the features above, file format changes and updates
  were required. A conversion utility, 215to216.exe, is provided with
  the distribution archive to do the necessary updates. By using the
  conversion utility a game reset is NOT required to install Kingdoms
  v2.16.

End of Update Information - Kingdoms v2.16.

Ŀ
 KINGDOMS VERSION 2.15 - Public Release July 3rd, 1996.                 


Changes affecting Players


- Color wasn't resetting properly in the scoreboard (local and
  realm) displays if a player had a background color set in their name.
  Fixed.

- Kingdoms wasn't honoring the 'n' in response to a page length
  pause with (y/n) to continue. It does now.

- If a player dropped carrier at the logon screen to Kingdoms, the
  game would abnormally terminate with a 'Bad Record Number' error and
  lock out the player. Fixed. This would also happen if a user entered
  Kingdoms without enough time left to play - 3 mins minimum.

- Agent experience training changed :

   - now requires a five day period between each level gain. additional
     exp transferred will be lost - the Agent can't absorb it.

   - Previously, only character experience was limited in unregistered
     versions of Kingdoms. Now Agents are also restricted in the same
     manner. An Agent is no longer permitted to achieve a level greater
     than level 10, if the Player's BBS (NOT the Agents' BBS!) is
     running an unregistered version of Kingdoms.

- When in their Vaults, players now have the option to Transfer
  Gold to any other player on the local Realm. To effect a transfer, you
  must withdraw Gold from your Vault and/or have it in hand.

- In the Courier Guild when a player sends a missive, several
  selections are required to dictate who the missive is for, and from
  whom (the player or a player's Agent). When message text was entered,
  a few players were apparently forgetting on occasion who the message
  was for! Immediately before giving the player the message editor,
  Kingdoms now displays the destination and addressee of the message as
  a reminder & confirmation.

- Maximum missive length has been increased to 15 lines per
  missive as compared to 10 lines max in previous releases.

- At points in Kingdoms where a player was required to identify
  another player, such as when sending missives, proving, raiding, etc,
  the means of selecting the other player was not consistent. In some
  options, a user number was required, in others a name. All these
  prompts have been standardised to accept a player's name, or string
  which matches some part of a player's name, upon which a search will
  be conducted for the desired other player. This also eliminates the
  problem some people were having where they got used to typing in a
  number for someone and finding they're suddenly sending to or
  attacking the wrong person if maintenance runs and compresses the user
  file and changes the user number(s) they're used to using. Some
  additional checking has been built into this selection also :

   - The player him or herself will be ignored when searching for a
     player name or string. This means the player doesn't have to keep
     saying <n>o to his or her own name during selection of a name.

   - Deleted players (deleted by the Sysop or maintenance routines) will
     no longer appear as selectable players, only to be told by Kingdoms
     when such a player was selected that the player does not exist!
     That caused a little confusion! :-)

- Gold in hand is now checked before <H>ealing in the Temple of
  Lathander. This gets rid of the annoying loop that happens if the
  player doesn't have any gold in hand, ie, can't afford the healing.

- Net Statistics display in the Realms options now honors page
  length pausing where needed. Aligned the display properly also. For
  player information, the network id of the game currently being played
  is now displayed in the heading of the Net Statistics.

- The Food production summary display was not correctly displaying
  production status, though the correct figures were being displayed in
  the Increase/Decrease production option. This amounted to some
  confusion as it appeared to players that production
  increases/decreases were not being actioned by Kingdoms in the summary
  information. Fixed.

- The opening ANSI screen wasn't displaying the shield & sword
   graphic properly on remote terminals. Fixed.

- Added another opening ANSI display for a little variety!

- Fixed a bug in Food Production orders on local and remote realms. In
  some instances, changes to food production orders would not be
  processed. Added the ability to 'auto withdraw' from your Vault if
  there wasn't enough gold in hand to complete a transaction while I was
  there.

- Maximum normal bet in Acey Ducey has increased from 100 to 400gp.
  Maximum Big Bet in Acey Ducey has increased from 1000 to 2000gp.
  Maximum bet in High_low has increased from 100 to 200gp.


Changes affecting Sysops


- Added ausnet to those Domains recognised by Kingdoms

- Removed the 'Unknown Domain' displayed if Kingdoms comes across
  a network it doesn't know the domain name of when the Sysop is in the
  Manager. It caused too much confusion being there.

- Fixed a problem with Maximum BBS running under OS/2 using the
  dorinfo type dropfile. Maximus appends a space for some reason to the
  com port line in it's dorinfo dropfile, making Kingdoms always assume
  a local logon. Any spaces there are now stripped when reading the
  dorinfo file before Kingdoms works out which com port a use is logged
  onto, or if it actually is a local logon.

- Long DOOR.SYS dropfile support has been added to Kingdoms. There
  are four forms of DOOR.SYS I have identified - the 6 line doorway
  compatible version, a 32 line version created by Maximus under OS/2, a
  35 line version produced by Ezycom and the 45 line+ (variable, it
  seems!) version produced by Wildcat BBS. Don't you just love
  standards?? :-). Kingdoms now supports them all and will automatically
  identify the format when it loads. Ie, there are no special parameters
  required to tell Kingdoms which type you happen to be using.
  Personally I recommend using the short (doorway compatible) version if
  you can as there is simply less system overhead (because it's smaller)
  for the BBS to create it and for Kingdoms to read it. If you want/need
  to use another however, you are now able to do so!

- ANSI generation of local scoreboard in KMNT wasn't inserting a
  line feed after the title line, throwing the display out out whack.
  Fixed.

- Option positioning on the primary Manager menus is now
  maintained when flipping between menus. If you move from a menu then
  return there later, the option you used most recently on that menu
  will still be highlighted rather than jumping back to the first option
  each time and having to specifically re-select the one you're after.

- Maintenance now supports the /S parameter, which will perform
  scoreboard generation only and no other normal Maintenance functions.
  You can run Maintenance using this option any time, and as many times
  per day as desired, without using the /O(verride) option. This option
  has been added for those Sysops who requested the ability to generate
  scoreboards on the fly, particularly after inbound and outbound
  processing has taken place and the scoreboards may have become out of
  date. The only other processing that KMNT will permit when /s is used
  is ASCII/ANSI file creation by using /a. Thus, 'KMNT /S /A' (case and
  option order are not significant) will run KMNT, only generating game
  scoreboards and .ASC and .ANS equivalents. Just using /s will only
  create the .KDI game scoreboards. Only using /A will, of course, run
  maintenance normally (all maintenance functions) and still create
  ASC/ANS versions of the scoreboard and news files as per normal.

- In generation of the local scoreboard, a line feed was missing
  on the first line after the heading in the .ASC and .ANS files, making
  the display skewed. Fixed. These files now also support high and low
  intensity display in the .ANS version, making them exact copies of the
  display as it is seen in the game itself.

- Some (few) 'out of string space' errors were being reported in the
  Manager on occasion. Some things have been shuffled about to reduce
  string requirements in the Manager and I hope this will see this
  problem eliminated!

- Level names and scores were being incorrectly displayed/calculated in
  maintenance. As a result, levels displayed on the external game score-
  boards didn't match those being displayed in the game itself. Fixed.

Changes affecting Coordinators


Coordinators please note. You should also read the changes affecting
Sysops if you have not already! They have an impact on you too in some
cases!

- Default network links on the local Index weren't being updated
  if the Coordinator modified an address on a node with downlinks. The
  same link changes were also not being updated across the network.
  Thus, if the Coordinator made a node address change to a Realm, then
  the actual Index record for the Realm would be updated, but any nodes
  that were linked to it would still be recording the old address of the
  Realm that had changed. Though this was technically an error though,
  any transit data arriving for that node would still be directed to the
  right place because of the Alias records Knetin would have created
  when it performed the Realm address change. This was exceedingly
  inefficient however as the Index first needed to be searched then the
  Alias file then, when the Alias was found, the Index file again to
  pick up the correct (Aliased) Index record. In any case, the Alias
  records would ultimately become redundant after several (11, actually)
  node address changes were distributed to the network. After that
  point, inbound Transit data would be discarded due to an unresolvable
  destination or return address. That was not only very efficient, it
  would be exceedingly sad for any node whose address had changed to
  find themselves effectively deleted from all Indexes network wide in
  time, and quite suddenly! <g>. On a Realm address change, Kingdoms now
  fully resolves network links based on the original and updated
  addresses and matches those changes to network address links for
  downlinks to that node, network wide. Should even this fail, Alias
  records will still get the data to the correct node based on their own
  routing data. In addition to this backup routing scheme,
  Self-Correction also fully resolves the network links in Kingdoms 2.15
  in the same manner. In short, Network Link addresses now permanently
  maintain three levels of redundancy, each of which is capable of
  either compensating for and/or correcting routing errors that may
  arise at any time in the network.

- Kingdoms now accepts '0' for Net and Node values (in
  zone:net/node) when the Coordinator is adding or modifying Realm
  network addresses in the Manager.

Ŀ
 KINGDOMS VERSION 2.10 - Public Release May 25th, 1996.                 


Changes affecting Players


1.  When land titles were received at a remote realm, the return message
    wasn't being 'signed' by the agent properly. Fixed.

2.  Some spurious text was being inserted into a return message from an
    Invasion Commander who was reporting the results of a successful
    agent. Fixed.

3.  In the fight statistics, opponent hit points were being displayed in
    dark blue, which was very hard to read. (Impossible on some
    monitors, apparently!). This now displays in white.

4.  If a player attempted to transfer experience to a realm on which
    they didn't have an Agent, a KNetIn error code 5 would result.
    Fixed.

5.  Automatic food transfers from a local player to a remote agent were
    working fine, but the return message to the player to inform him/her
    that the transfer completed was not being processed due to an
    incorrect return address name. This error made itself known by
    displaying a 'User not Found' error while Knetin was processing the
    inbound missive. Fixed.

6.  When raiding a castle and defeating an opponent, the opportunity is
    available to leave the 'dead' person a private message. If the person
    had previously left a message to someone on a remote realm, the
    message they posted to a player after a raiding victory would be
    incorrectly addressed to the right player, but on the realm to which
    they posted the previous message. In other circumstances, the message
    would be posted on the right (local) realm, but would be tagged to all
    players rather being private. Both problems have been corrected.

7.  Found a pretty obscure error in the message editor. It takes a while to
    occur and requires the player entering a message to do several edits
    (specifically, several delete and insert lines) before it happens, but
    would eventually crash the editor with a 'String Space Corrupt' or
    'Out of String Space' message, depending on the order in which the
    user did their edits. When it DID occur, it was unrecoverable and
    would hang both Kingdoms and the machine on which it was running.
    Fixed.

8.  If a user had defined a background color in their handle, that color was
    not being reset to black for the remaining display in a scoreboard listing
    or at other places in the game. Fixed.

9.  Bank interest rate on positive balances is now a flat 5% daily up to level
    15 characters. Characters 15th level & over earn no interest on deposited
    funds though they do, of course, still enjoy the protections offered by
    placing funds in their vaults. Interest is earned during normal
    maintenance runs overnight. Though the Sysop can force maintenance to run
    more than once by an override on the command line, interest will not be
    accrued for players when this is done.

10. Fixed a 'feature' that was allowing players to earn unlimited gold by
    decreasing food production in lots less than 500gp. (Effectively, the
    player would just be given the gold and production would not be affected).
    Production increases now MUST be a multiple of 1000gp, decreases a
    multiple of 500gp. This affected both Local and Agent food production
    operations.

11. Intelligence training was not working properly for Agents. On occasion it
    would crash KNetin, the Kingdoms inbound mail handler, or it may not have
    processed the requested intelligence training at all. Fixed.

12. Fixed up some minor display inconsistencies in messages returning from
    remote realms.

13. Tidied up the colors in the Development Centre.

14. Changed the basis for calculating training costs. Previous to 2.10,
    training costed 50gp per player level to increase any statistic. Training
    cost is no longer dependant on level, but is based on the actual attribute
    being increased. It now costs 5gp for each point of an attribute a player
    has, to train in that attribute. Eg, it will cost 50gp for a player with
    10 Strength to train (for another point) in Strength. It will cost 500gp
    for a player with 100 Strength to train for another Strength point.

15. Added display of gold in hand and gold in Vault to the Development Centre
    menu so players know how much they've got when they're considering
    training options.

16. Added automatic (confirmed by player) withdrawal options to the
    Development centre if the player doesn't have enough gold in hand to cover
    training, but has enough in their Vault. This saves the player having to
    leave the Development Centre to go to the Vault and withdraw more if they
    want to do more training.

17. Added Magician class character levels. At present these are only in name
    though the file structures are now starting to support the addition of
    magic and magical items in the game. These will be enabled in future
    releases of Kingdoms.

18. Bowing to player demand, the delay in place when training in any
    attribute has been decreased. Only one iteration, rather than three, of
    each of the activities required to train is displayed under 2.10.

19. When viewing troop morale in the Food Production menu, no pause was
    provided before the screen cleared and the menu was redisplayed. The
    display now pauses allowing you to read it before it is cleared!
 
Changes affecting Sysops


1.  All scrollable lists containing network information in the Manager
    are now sorted by Realm Name rather than network address. As most
    Sysops remember and use a BBS name rather than an address when
    finding a node they're interested in, this makes it easier to get to
    where you want to be!

2.  Prior to this v2.10, the selection bar on a scrollable list would
    always return to the top entry of a list when it was redisplayed
    after some processing was done. This was a pain as it made you lose
    your place in the list you're viewing and you had to scroll down to
    the place you were in order to view differences & changes you'd
    made. After processing any entry on a list, the Manager now retains
    current positioning and screen display to return you to where you
    were in the list, rather than back up to the top.

3.  Crashmail is now an option on netmail messages created for any
    outbound (Default or Normal) node. Simply select the node in 'Your
    Routing' and press F3 on the entry to flip between crash (immediate
    send) and normal message creation. The help line at the bottom of
    the display reflects this new option.

4.  When modifying routing on a Realm, a scrollable list used to pop up
    asking you to select which node you wanted another node's data
    routed to. That list displayed every Realm on the Index which was
    pretty silly, as you can only route a node's data to an outbound
    node. You cannot, for example, route one node's data to another
    routed node. The selection list displayed now only shows outbound
    nodes for selection to route data to making the process of routing
    selection a lot clearer!

5.  Resized and shifted a few displays in the Manager to take account of
    additional data displayed and/or to make viewing background displays
    easier.

6.  Corrected a KMNT error 55 which was generated if ASC/ANS file (/A)
    generation was requested and self correction was not enabled, or was
    not due on the day.

7.  In the Manager, Agent records on the Realm were not displaying
    properly in the User menu. The display has been expanded and the
    problem fixed - Agent records are now shown with their home realm
    listed in place of the normal local user password. Agent passwords
    can be viewed by selecting the Agent record from the scrollable user
    list.

8.  Some door converters have been found that don't uppercase user
    names. This was causing duplicate players in Kingdoms for the same
    user. Names are now uppercased automatically when read by Kingdoms,
    so any converter can be used to generate the door files for Kingdoms
    now.

9.  Added door.sys (doorway compatible) support. If no override is given
    using the /D runtime parameter, Kingdoms will still default to using
    dorinfo1.def in the BBS directory you've specified in the Manager,
    KM.EXE. To use a DOOR.SYS dropfile, simply override the Manager
    default by supplying '/DC:\BBS\LINE\DOOR.SYS' on your Kingdoms
    command line in the same way as described in the documentation for
    multinode dorinfo? support.

10. Removed MSGID line from outbound file attach messages to correct
    problems with Blinkey mailers.

11. Added Network ID to the status line so Sysops can see what Net game
    a player is in at any time.

12. Previously, when a new node was being set up, Sysops would recieve a
    distribution index file and enter the Manager Network>Routing
    option. From there they could define their node to the Index, then
    had to define their default outbound, then had to go further,
    particularly in the case of a network hub, and route information to
    various nodes depending on the structure of the network itself. This
    wasn't too hard for a small network, but the complexities involved
    in doing this for a large network were begging for routing errors to
    occur on individual nodes. Quite simply, it was unreasonable to
    expect that every Sysop in a Kingdoms network knows every other
    connection in the network. This procedure has been virtually
    re-written to take advantage of the 'connect to' node information
    now contained within each Index file and distribution Indexs created
    by the Coordinator for new nodes. When selecting the option now,
    Sysops still must have the distribution Index before they enter
    Network>Routing. The only thing required from this point however is
    to identify their node to the Index. Having done this, the Manager
    will take the connection information it has for each node and
    completely configure the routing information for EVERY node
    automatically. The Sysop is completely freed from needing to know
    the network links him or her self as the Manager now handles all of
    it by itself. Sysops wishing to change the links specified for them
    by the Manager can override the default, but should not do so
    without first consulting the Coordinator.

13. Fixed an error in Knetin which was causing Knetin to terminate with
    error code 5. A formatting error occured when a status request was
    made and the agent owned an weapon or armor item with a description
    greater than 18 characters.

14. Fixed several error messages produced by the game to make them more
    meaningful.

15. Swapped around the domain name in the Network>Verify list against
    nodes. It was printing in reverse to normal zone:net/node@domain
    standards.

16. Added battlenet, darknet and gamenet to the domains identified by
    the Manager.

17. Discovered a really weird bug while working on all these changes! If
    the last record on an inbound transit file was a routed record (not
    destined for the local realm), was not a worm, and headers in that
    same file were previously processed, the record would not be marked
    as processed. It would continue to be forwarded to the node forever
    and would never be removed from the transit. Fixed.

18. If an node address change came in for processing and an alias needed
    creating, knetin would terminate with a type 63 error if the Manager
    Alias functions had never been entered (initialised). Fixed.

19. Added Self Correction functions to the Manager, Knetin, Knetout and
    KMnt. Self Correction is a powerful Kingdoms Network function which
    polls an uplink periodically (frequency determined by the Sysop) to
    verify the status and other information of nodes on their Index
    against the same nodes on the uplink BBS. An uplink, by definition,
    is (and must be, for Self Correction to work) the most direct path
    to the Coordinator node. The uplink for each Realm is that Realm's
    Default Outbound node. IF FOR SOME REASON A REALM CHANGES THEIR
    DEFAULT TO NO LONGER BE THE DIRECT PATH TO THE COORDINATOR NODE,
    SELF CORRECTION SHOULD BE DISABLED ON THAT NODE. Assuming the
    defaults are in place, and were you to follow the chains of uplinks
    to their end, you would find yourself at the Kingdoms Coordinator
    node.

    Corrections will be performed automatically if, upon analysis,
    Kingdoms can determine that the local index contains data which is
    not up-to-date with the uplink. That uplink's Self Correction will,
    of course, be verifying IT'S index data with IT'S uplink, right back
    up to the Coordinator node. This function on each Realm provides,
    for the first time in an InterBBS game I believe, a reliable method
    of ensuring network integrity without continual (and infrequently
    performed) manual checking and intervention by the Sysops of each
    Realm. Should, for example, a node addition sent by the Coordinator
    not reach a Realm as the BBS is down temporarily or the mail is lost
    in transit for some reason, Kingdoms can now AUTOMATICALLY correct
    the situation itself in time without the Sysop or Coordinator ever
    needing to be aware of the problem.

    To set Self Correction on, enter the 'Other' section of the Manager
    and specify the frequency at which you want it to occur. I recommend
    Daily (a value of '1') Self Correction be enabled for primary
    Kingdoms hubs and perhaps weekly for Realms at the far end of a
    network. A value of Zero disables this feature. COORDINATORS NOTE!!!
    The Coordinator node should NEVER enable self correction and the
    Coordinator node cannot select this to change. A message, "Coord -
    No update allowed", will appear by the option to this effect on the
    Coordinator node. By definition, the coordinator node's network
    definitions should ALWAYS be correct. If they are not, the network
    can never work properly!

    As stated, at the frequency of days specified by the Self-Correction
    setting, a Realm will poll it's immediate uplink (it's Default
    Outbound) and retrieve a full copy of the uplink's Index file. When
    retrieved, the local node will compare that data against it's own
    and :

    * Compare uplink Index Sysop names against the local Index.
      Modifications will be updated locally to reflect the uplink data.
    * Compare uplink Index Realm (BBS) names against the local Index.
      Modifications will be updated locally to reflect the uplink data.
    * Compare the status of each node on the uplink to that recorded
      locally. The following actions will take place depending on the
      compare results:

      Ŀ
       Local node    Uplink (!)    Action                          
      Ĵ
       Active        Active        No action                       
       Active        Pending       Set local Realm to Pending      
       Active        Inactive      Set local Realm to Inactive     
       Active        Deleted       Set local Realm to Inactive     
       Inactive      Active        Set local Realm to Active       
       Deleted       Active        Set local Realm to Active       
      
      (!) - If the uplink is the Coordinator, it's always assumed Active.

    * Identify nodes on the uplink which do not exist locally. Kingdoms
      will add the node locally with the same status as the uplink.
    * Identify nodes locally which do not exist on the uplink.
      Kingdoms will set the local node inactive.
    * Identify loops in routing definitions where the local node and the
      uplink send data for a node to each other. Ie, data for the node
      in question never escapes the 'loop'.

      This situation can only occur when the Sysop of the local realm,
      or the Sysop of the uplink has changed routing definitions
      manually, overriding the defaults distributed in the Index by the
      Coordinator node. Kingdoms will not therefore alter the routing
      definitions to conform to the default automatically as it's
      presumed it has been done for a reason! The self correction
      routines will however inform the Sysop of the local realm of the
      situation (and keep informing the Sysop as long as the loop
      exists!) to ensure the loop is not forgotten and can be attended
      to, ie, corrected.

20. Added Self Correction status (enabled or disabled) to the Routing
    report detail.

21. Added 'Maint Flag' and 'User On Flag' to the File menu in the
    Manager. These options allow the Sysop to turn off the flag that
    indicates Maintenance is running and turn off all User Online flags
    respectively.

22. If Kingdoms tells a user that maintenance is running and to wait
    until it finishes, pressing any key will drop the user back to the
    BBS rather than having them unable to exit.

23. Added a 'Defaults' option to the Manager Network menu. Should you
    have reason at any time to change your routing to something other
    than the Coordinator specified defaults, this option can be used to
    restore the net default settings automatically.

24. Fixed a small display error on the local status line if the user
    had > 99 minutes remaining in the game.

25. Fixed an error introduced in v2.00 (I have _no_ idea how I managed
    to do this!) that sent a scrolling cursor across the remote user
    portion of the screen while in chat, making it impossible to read
    anything the remote user typed. Fixed.

Changes affecting Coordinators


Coordinators please note. You should also read the changes affecting
Sysops if you have not already! They have an impact on you too in some
cases!

1.  Found a misnamed variable in the guts of alias processing which
    resulted in Knetin terminating with error code 63 in certain
    circumstances when the coordinator attempted to change the network
    address of a Realm. Fixed.

2.  Found a nasty bug in the Coordinator 'Modify Node' function. When
    the address of a node was changed, and that node had both uplinks
    and downlinks, knetin would lose the plot completely when it tried
    to process the change and re-establish the node routing. Depending
    on several factors, this would cause Knetin to abend with error code
    63 or Knetout to abend with error code 62. Fixed.

3.  The Sysop name and BBS name were not being recorded correctly in the
    Coordinator log when a new Pending node was created. Fixed. The log
    also now shows the 'connect to' node for reference should the
    Coordinator need it.

4.  When a Coordinator adds a new Pending node, a 'connect to' node is
    also required so Kingdoms can distribute routing information for the
    new node to all other nodes in the network. Once applied however,
    this data was not being saved in any place. The 'connect to' node is
    now kept on all index records on all nodes for each Realm on the
    Index.

5.  Added a new Coordinator option, Network Connections. This option
    allows the coordinator to view current connection details and to
    modify (and distribute automatically) link details network wide.

6.  Coordinator Change and Release node functions modified to carry
    direct connection information across the network in accordance to
    the 'connect to' changes described above.

7.  Coordinator Add Node function modified to record direct connection
    information in the Coordinator Index file. Distribution Indexes now
    carry the same information.

8.  Index records now carry network ID for validity checking during
    Index add/change/deletes.

9.  Duplicate checking has been added to the Coordinator 'Add Node'
    function. It was previously possible to add a node whose address
    already existed on the index.

10. Realm change functions would waste processing if only one of
    sysop/bbs name were entered. KNetin now checks the original to
    ensure only changes that need doing are performed.

11. Added the 'Link Diagram' option to the Coordinator and Network menus
    in the Manager. Selecting this will generate and, optionally,
    display a diagram of the links of each node in the network. While
    primarily implemented to assist Coordinators keep control of their
    network, the option is also available in the Network menu for Sysops
    who wish to see who connects to who in their Kingdoms net. The
    diagram is displayed in the editor configured in the Other section
    of the Manager. Should you wish to quickly view links for any given
    node, simply select the option and view the diagram, then use your
    editors search functions to locate the desired node, BBS name or
    Sysop name.


Ŀ
 KINGDOMS VERSION 2.00 - First Public Release - March 31st, 1996        


